Skip to content

Commit 56377f6

Browse files
committed
feat(ui): list of summaries in personal settings
Signed-off-by: Jana Peper <[email protected]>
1 parent b652986 commit 56377f6

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

lib/Settings/Personal.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
namespace OCA\Assistant\Settings;
99

1010
use OCA\Assistant\AppInfo\Application;
11+
use OCA\Assistant\Db\ChattyLLM\SessionMapper;
1112
use OCP\AppFramework\Http\TemplateResponse;
1213
use OCP\AppFramework\Services\IInitialState;
1314
use OCP\IAppConfig;
@@ -27,6 +28,7 @@ public function __construct(
2728
private IInitialState $initialStateService,
2829
private ?string $userId,
2930
private ITaskProcessingManager $taskProcessingManager,
31+
private SessionMapper $sessionMapper,
3032
) {
3133
}
3234

@@ -61,6 +63,8 @@ public function getForm(): TemplateResponse {
6163
$speechToTextPickerAvailable = $speechToTextAvailable && $this->appConfig->getValueString(Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1';
6264
$speechToTextPickerEnabled = $this->config->getUserValue($this->userId, Application::APP_ID, 'speech_to_text_picker_enabled', '1') === '1';
6365

66+
67+
6468
$userConfig = [
6569
'task_processing_available' => $taskProcessingAvailable,
6670
'assistant_available' => $assistantAvailable,
@@ -91,6 +95,9 @@ public function getForm(): TemplateResponse {
9195
}
9296
}
9397
$this->initialStateService->provideInitialState('availableProviders', $availableProviders);
98+
99+
$rememberedSessions = $this->sessionMapper->getRememberedUserSessions($this->userId);
100+
$this->initialStateService->provideInitialState('rememberedSessions', $rememberedSessions);
94101
return new TemplateResponse(Application::APP_ID, 'personalSettings');
95102
}
96103

src/components/PersonalSettings.vue

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,20 @@
5858
{{ taskNames.join(', ') }}
5959
</div>
6060
</div>
61+
<div>
62+
<h3>{{ t('assistant', 'Remembered conversations') }}</h3>
63+
<p>{{ t('assistant', 'The following conversations are remembered by the Assistant Chat and will be taken into account for every new conversation:') }}</p>
64+
<NcFormBox>
65+
<NcFormBoxButton v-for="conversation in rememberedConversations"
66+
:key="conversation.id"
67+
:label="conversation.title"
68+
:description="conversation.summary">
69+
<template #icon>
70+
<MemoryIcon />
71+
</template>
72+
</NcFormBoxButton>
73+
</NcFormBox>
74+
</div>
6175
</div>
6276
</div>
6377
</template>
@@ -68,8 +82,11 @@ import AssistantIcon from './icons/AssistantIcon.vue'
6882
import NcFormGroup from '@nextcloud/vue/components/NcFormGroup'
6983
import NcFormBox from '@nextcloud/vue/components/NcFormBox'
7084
import NcFormBoxSwitch from '@nextcloud/vue/components/NcFormBoxSwitch'
85+
import NcFormBoxButton from '@nextcloud/vue/components/NcFormBoxButton'
7186
import NcNoteCard from '@nextcloud/vue/components/NcNoteCard'
7287
88+
import MemoryIcon from 'vue-material-design-icons/Memory.vue'
89+
7390
import { loadState } from '@nextcloud/initial-state'
7491
import { generateUrl } from '@nextcloud/router'
7592
import axios from '@nextcloud/axios'
@@ -83,7 +100,9 @@ export default {
83100
NcFormGroup,
84101
NcFormBox,
85102
NcFormBoxSwitch,
103+
NcFormBoxButton,
86104
NcNoteCard,
105+
MemoryIcon,
87106
},
88107
89108
props: [],
@@ -92,6 +111,7 @@ export default {
92111
return {
93112
state: loadState('assistant', 'config'),
94113
providers: loadState('assistant', 'availableProviders'),
114+
rememberedConversations: loadState('assistant', 'rememberedSessions'),
95115
}
96116
},
97117

0 commit comments

Comments
 (0)