diff --git a/projects/aca-content/assets/i18n/en.json b/projects/aca-content/assets/i18n/en.json
index ddd9e5b57..ac0a1030f 100644
--- a/projects/aca-content/assets/i18n/en.json
+++ b/projects/aca-content/assets/i18n/en.json
@@ -607,6 +607,7 @@
"KNOWLEDGE_RETRIEVAL": {
"SEARCH": {
"RESULTS_PAGE": {
+ "AGENT": "Agent",
"QUERY_INPUT_PLACEHOLDER": "Would you like to ask anything else?",
"REFERENCED_DOCUMENTS_HEADER": "Referenced documents",
"REGENERATION_BUTTON_LABEL": "Regenerate",
diff --git a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.html b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.html
index ab81e2b75..ce9bf4912 100644
--- a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.html
+++ b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.html
@@ -26,7 +26,9 @@
[value]="agent">
diff --git a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.scss b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.scss
index 327bf2220..72d963440 100644
--- a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.scss
+++ b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.scss
@@ -45,7 +45,14 @@ aca-agents-button.aca-agents-button {
&-content {
display: flex;
- align-items: baseline;
+ align-items: center;
+
+ &-name {
+ width: 120px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
}
adf-avatar {
diff --git a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.ts b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.ts
index 289821637..bb87e6b61 100644
--- a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.ts
+++ b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/agents-button/agents-button.component.ts
@@ -33,7 +33,7 @@ import { takeUntil } from 'rxjs/operators';
import { MatMenuModule } from '@angular/material/menu';
import { MatListModule, MatSelectionListChange } from '@angular/material/list';
import { TranslateModule, TranslateService } from '@ngx-translate/core';
-import { Agent } from '@alfresco/js-api';
+import { AgentWithAvatar } from '@alfresco/js-api';
import { AgentService, SearchAiService } from '@alfresco/adf-content-services';
@Component({
@@ -50,12 +50,12 @@ export class AgentsButtonComponent implements OnInit, OnDestroy {
data: { trigger: string };
private selectedNodesState: SelectionState;
- private _agents: Agent[] = [];
+ private _agents: AgentWithAvatar[] = [];
private onDestroy$ = new Subject();
private _disabled = true;
private _initialsByAgentId: { [key: string]: string } = {};
- get agents(): Agent[] {
+ get agents(): AgentWithAvatar[] {
return this._agents;
}
@@ -71,8 +71,8 @@ export class AgentsButtonComponent implements OnInit, OnDestroy {
private store: Store,
private notificationService: NotificationService,
private searchAiService: SearchAiService,
- private translateService: TranslateService,
- private agentService: AgentService
+ private agentService: AgentService,
+ private translateService: TranslateService
) {}
ngOnInit(): void {
@@ -82,12 +82,13 @@ export class AgentsButtonComponent implements OnInit, OnDestroy {
.subscribe((selection) => {
this.selectedNodesState = selection;
});
+
this.agentService
.getAgents()
.pipe(takeUntil(this.onDestroy$))
.subscribe(
- (paging) => {
- this._agents = paging.list.entries.map((agentEntry) => agentEntry.entry);
+ (agents: AgentWithAvatar[]) => {
+ this._agents = agents;
if (this.agents.length) {
this._initialsByAgentId = this.agents.reduce((initials, agent) => {
const words = agent.name.split(' ').filter((word) => !word.match(/[^a-zA-Z]+/g));
diff --git a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.html b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.html
index bad899e11..001b26560 100644
--- a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.html
+++ b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.html
@@ -8,7 +8,7 @@
[initials]="initialsByAgentId[agentControl.value.id]"
size="26px">
- {{ agentControl.value.name }}
+ {{ agentControl.value?.name }}
- {{ agent.name }}
+
{{ agent.name }}
diff --git a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.scss b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.scss
index 48c3d7483..df1956340 100644
--- a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.scss
+++ b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.scss
@@ -49,7 +49,7 @@ aca-search-ai-input {
&-displayed-value {
display: flex;
- align-items: baseline;
+ align-items: center;
}
adf-avatar {
@@ -71,6 +71,13 @@ aca-search-ai-input {
&-content {
display: flex;
align-items: baseline;
+
+ &-text {
+ width: 120px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
}
adf-avatar {
diff --git a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.ts b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.ts
index 54e074cb4..307782af3 100644
--- a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.ts
+++ b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-input/search-ai-input.component.ts
@@ -38,7 +38,7 @@ import { AiSearchByTermPayload, AppStore, getAppSelection, SearchByTermAiAction
import { takeUntil } from 'rxjs/operators';
import { SelectionState } from '@alfresco/adf-extensions';
import { MatSelectModule } from '@angular/material/select';
-import { Agent } from '@alfresco/js-api';
+import { AgentWithAvatar } from '@alfresco/js-api';
import { AgentService, SearchAiService } from '@alfresco/adf-content-services';
@Component({
@@ -75,18 +75,18 @@ export class SearchAiInputComponent implements OnInit, OnDestroy {
private readonly storedNodesKey = 'knowledgeRetrievalNodes';
- private _agentControl = new FormControl(null);
- private _agents: Agent[] = [];
+ private _agentControl = new FormControl(null);
+ private _agents: AgentWithAvatar[] = [];
private onDestroy$ = new Subject();
private selectedNodesState: SelectionState;
private _queryControl = new FormControl('');
private _initialsByAgentId: { [key: string]: string } = {};
- get agentControl(): FormControl {
+ get agentControl(): FormControl {
return this._agentControl;
}
- get agents(): Agent[] {
+ get agents(): AgentWithAvatar[] {
return this._agents;
}
@@ -103,8 +103,8 @@ export class SearchAiInputComponent implements OnInit, OnDestroy {
private searchAiService: SearchAiService,
private notificationService: NotificationService,
private agentService: AgentService,
- private translateService: TranslateService,
- private userPreferencesService: UserPreferencesService
+ private userPreferencesService: UserPreferencesService,
+ private translateService: TranslateService
) {}
ngOnInit(): void {
@@ -118,13 +118,14 @@ export class SearchAiInputComponent implements OnInit, OnDestroy {
} else {
this.selectedNodesState = JSON.parse(this.userPreferencesService.get(this.storedNodesKey));
}
+
this.agentService
.getAgents()
.pipe(takeUntil(this.onDestroy$))
.subscribe(
- (paging) => {
- this._agents = paging.list.entries.map((agentEntry) => agentEntry.entry);
- this.agentControl.setValue(this.agents.find((agent) => agent.id === this.agentId));
+ (agents: AgentWithAvatar[]) => {
+ this._agents = agents;
+ this.agentControl.setValue(agents.find((agent) => agent.id === this.agentId));
this._initialsByAgentId = this.agents.reduce((initials, agent) => {
const words = agent.name.split(' ').filter((word) => !word.match(/[^a-zA-Z]+/g));
initials[agent.id] = `${words[0][0]}${words[1][0] || ''}`;
diff --git a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.html b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.html
index 177ff34ee..c6e2327ff 100644
--- a/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.html
+++ b/projects/aca-content/src/lib/components/knowledge-retrieval/search-ai/search-ai-results/search-ai-results.component.html
@@ -18,6 +18,26 @@
+
+
+
+
{{ agent?.name }}
+
+
+
+
+ {{ agent?.name }}
+
+
+ {{ agent?.description }}
+
+
+
+
{
- this._agentId = params.agentId;
- this._searchQuery = params.query ? decodeURIComponent(params.query) : '';
- this.selectedNodesState = JSON.parse(this.userPreferencesService.get('knowledgeRetrievalNodes'));
- if (!this.searchQuery || !this.selectedNodesState?.nodes?.length || !this.agentId) {
- this._hasError = true;
- return;
- }
- this.performAiSearch();
- });
+ this.route.queryParams
+ .pipe(
+ switchMap((params) => {
+ this._agentId = params.agentId;
+ this._searchQuery = params.query ? decodeURIComponent(params.query) : '';
+ this.selectedNodesState = JSON.parse(this.userPreferencesService.get('knowledgeRetrievalNodes'));
+ if (!this.searchQuery || !this.selectedNodesState?.nodes?.length || !this.agentId) {
+ this._hasError = true;
+ return of([]);
+ }
+ this.performAiSearch();
+ return this.agentService.agentsList$;
+ }),
+ takeUntil(this.onDestroy$)
+ )
+ .subscribe((agents: AgentWithAvatar[]) => {
+ this.agent = agents.find((agent) => agent.id === this._agentId);
+ });
super.ngOnInit();
}