Browse Source

AI admin settings: Add a draggable icon in UI for translation provider precedence

Signed-off-by: Marcel Klehr <mklehr@gmx.net>
tags/v28.0.0beta1
Marcel Klehr 11 months ago
parent
commit
2d29413d5d
No account linked to committer's email address
1 changed files with 13 additions and 2 deletions
  1. 13
    2
      apps/settings/src/components/AdminAI.vue

+ 13
- 2
apps/settings/src/components/AdminAI.vue View File

@@ -4,7 +4,7 @@
:description="t('settings', 'Machine translation can be implemented by different apps. Here you can define the precedence of the machine translation apps you have installed at the moment.')">
<draggable v-model="settings['ai.translation_provider_preferences']" @change="saveChanges">
<div v-for="(providerClass, i) in settings['ai.translation_provider_preferences']" :key="providerClass" class="draggable__item">
<span class="draggable__number">{{ i+1 }}</span> {{ translationProviders.find(p => p.class === providerClass)?.name }}
<DragVerticalIcon /> <span class="draggable__number">{{ i+1 }}</span> {{ translationProviders.find(p => p.class === providerClass)?.name }}
</div>
</draggable>
</NcSettingsSection>
@@ -58,6 +58,7 @@ import NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadi
import NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection.js'
import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js'
import draggable from 'vuedraggable'
import DragVerticalIcon from 'vue-material-design-icons/DragVertical.vue'
import { loadState } from '@nextcloud/initial-state'

import { generateUrl } from '@nextcloud/router'
@@ -69,6 +70,7 @@ export default {
NcSettingsSection,
NcSelect,
draggable,
DragVerticalIcon,
},
data() {
return {
@@ -86,7 +88,7 @@ export default {
methods: {
async saveChanges() {
this.loading = true
const data = this.settings
const data = {settings: this.settings}
try {
await axios.put(generateUrl('/settings/api/admin/ai'), data)
} catch (err) {
@@ -108,10 +110,19 @@ export default {
margin-bottom: 5px;
}

.draggable__item,
.draggable__item * {
cursor: grab;
}

.draggable__number {
border-radius: 20px;
border: 2px solid var(--color-primary-default);
color: var(--color-primary-default);
padding: 2px 7px;
}

.drag-vertical-icon {
float: left;
}
</style>

Loading…
Cancel
Save