Compare commits

...

2 Commits

Author SHA1 Message Date
d7964f6fc2 0.50.10 2026-06-17 00:10:28 +02:00
0394093407 Implemented row-level merge in actors admin panel. 2026-06-17 00:10:25 +02:00
3 changed files with 9 additions and 8 deletions

4
package-lock.json generated
View File

@@ -1,11 +1,11 @@
{ {
"name": "traxxx-web", "name": "traxxx-web",
"version": "0.50.9", "version": "0.50.10",
"lockfileVersion": 2, "lockfileVersion": 2,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"version": "0.50.9", "version": "0.50.10",
"dependencies": { "dependencies": {
"@brillout/json-serializer": "^0.5.8", "@brillout/json-serializer": "^0.5.8",
"@dicebear/collection": "^7.0.5", "@dicebear/collection": "^7.0.5",

View File

@@ -92,7 +92,7 @@
"overrides": { "overrides": {
"vite": "$vite" "vite": "$vite"
}, },
"version": "0.50.9", "version": "0.50.10",
"imports": { "imports": {
"#/*": "./*.js" "#/*": "./*.js"
} }

View File

@@ -88,13 +88,16 @@
v-tooltip="'Merge'" v-tooltip="'Merge'"
icon="make-group" icon="make-group"
class="actor-action action-merge" class="actor-action action-merge"
@click="activeActor = actor; showMergeDialog = true;"
/> />
<!--
<Icon <Icon
v-tooltip="'Delete'" v-tooltip="'Delete'"
icon="bin" icon="bin"
class="actor-action action-delete" class="actor-action action-delete"
/> />
-->
</div> </div>
</td> </td>
</tr> </tr>
@@ -103,9 +106,8 @@
<Merge <Merge
v-if="showMergeDialog" v-if="showMergeDialog"
:actor="actors[0]" :actors="activeActor ? [activeActor] : actors.filter((actor) => selectedActors.has(actor.id))"
:actors="actors.filter((actor) => selectedActors.has(actor.id))" @close="showMergeDialog = false; activeActor = null;"
@close="showMergeDialog = false"
/> />
</Admin> </Admin>
</template> </template>
@@ -125,14 +127,13 @@ const { pageProps, urlParsed } = inject('pageContext');
const actors = ref(pageProps.actors); const actors = ref(pageProps.actors);
const selectedActors = ref(new Set([])); const selectedActors = ref(new Set([]));
const activeActor = ref(null);
const actorQuery = ref(urlParsed.search.q || null); const actorQuery = ref(urlParsed.search.q || null);
const lastSelectedIndex = ref(null); const lastSelectedIndex = ref(null);
const holdingShift = ref(false); const holdingShift = ref(false);
const showMergeDialog = ref(false); const showMergeDialog = ref(false);
console.log(actors.value);
function selectActors(selectedActor, isChecked, index) { function selectActors(selectedActor, isChecked, index) {
const [start, end] = holdingShift.value const [start, end] = holdingShift.value
? [index, lastSelectedIndex.value].toSorted((indexA, indexB) => indexA - indexB) ? [index, lastSelectedIndex.value].toSorted((indexA, indexB) => indexA - indexB)