case 4503

This commit is contained in:
2023-04-06 20:47:31 +00:00
parent 772b17fa43
commit fe84deb86b

View File

@@ -11,31 +11,6 @@
>{{ activeFilterNameAtOpen }} {{ activeFilterCreator }}</v-card-subtitle >{{ activeFilterNameAtOpen }} {{ activeFilterCreator }}</v-card-subtitle
> >
<v-card-text> <v-card-text>
<!-- ORIGINAL UI<template v-if="selectedSavedFilterToOverWrite == null">
<v-text-field
v-model="activeFilter.name"
:readonly="formState.readOnly"
:label="$ay.t('SaveAs')"
required
></v-text-field>
<v-checkbox
ref="public"
v-model="activeFilter.public"
:readonly="formState.readOnly"
:label="$ay.t('AnyUser')"
data-cy="public"
></v-checkbox>
</template>
<v-select
v-if="offerReplace"
v-model="selectedSavedFilterToOverWrite"
:items="selectLists.savedFilters"
item-text="name"
item-value="id"
:label="$ay.t('Replace')"
>
</v-select> -->
<!-- <!--
TASKS: TASKS:
save a default filter to a named filter save a default filter to a named filter
@@ -55,13 +30,7 @@
--> -->
<template v-if="isDefaultFilter"> <template v-if="isDefaultFilter">
<!-- <pre> <div v-if="selectedSavedFilterIdToOverWrite == null" class="mb-5">
- Default filter was selected
edit: name, all users, replace select
Options: cancel, delete (resets it), ["Save As" (was 'save a copy', only if replacement selection is NOT made) | "Replace" (if replace selection made)]
</pre
> -->
<div v-if="selectedSavedFilterToOverWrite == null" class="mb-5">
<!-- DEFAULT UN-NAMED FILTER BEING EDITED BLOCK --> <!-- DEFAULT UN-NAMED FILTER BEING EDITED BLOCK -->
<h2> <h2>
{{ $ay.t("SaveAs") }} {{ $ay.t("SaveAs") }}
@@ -84,7 +53,7 @@
<div v-if="offerReplace && !defaultFilterNameEdited" class="mb-5"> <div v-if="offerReplace && !defaultFilterNameEdited" class="mb-5">
<h2>{{ $ay.t("Replace") }}</h2> <h2>{{ $ay.t("Replace") }}</h2>
<v-select <v-select
v-model="selectedSavedFilterToOverWrite" v-model="selectedSavedFilterIdToOverWrite"
:items="selectLists.savedFilters" :items="selectLists.savedFilters"
item-text="name" item-text="name"
item-value="id" item-value="id"
@@ -98,7 +67,7 @@
}}</v-btn> }}</v-btn>
<v-spacer /> <v-spacer />
<template <template
v-if="isSelfOwned && selectedSavedFilterToOverWrite == null" v-if="isSelfOwned && selectedSavedFilterIdToOverWrite == null"
> >
<v-btn text color="primary" @click="deleteFilter()">{{ <v-btn text color="primary" @click="deleteFilter()">{{
$ay.t("Delete") $ay.t("Delete")
@@ -107,7 +76,7 @@
</template> </template>
<v-btn <v-btn
v-if="selectedSavedFilterToOverWrite == null" v-if="selectedSavedFilterIdToOverWrite == null"
text text
:disabled="!defaultFilterIsSavAsAble" :disabled="!defaultFilterIsSavAsAble"
color="primary" color="primary"
@@ -115,7 +84,7 @@
>{{ $ay.t("Save") }}</v-btn >{{ $ay.t("Save") }}</v-btn
> >
<v-btn <v-btn
v-if="selectedSavedFilterToOverWrite != null" v-if="selectedSavedFilterIdToOverWrite != null"
text text
color="primary" color="primary"
@click="saveAndExit('replace-column-filters')" @click="saveAndExit('replace-column-filters')"
@@ -187,7 +156,7 @@ export default {
activeFilterPublicAtOpen: null, activeFilterPublicAtOpen: null,
activeFilterCreator: "", activeFilterCreator: "",
isSelfOwned: true, isSelfOwned: true,
selectedSavedFilterToOverWrite: null, selectedSavedFilterIdToOverWrite: null,
selectLists: { selectLists: {
savedFilters: [] savedFilters: []
}, },
@@ -236,7 +205,7 @@ export default {
defaultFilterIsSavAsAble() { defaultFilterIsSavAsAble() {
if ( if (
this.defaultFilterNameEdited && this.defaultFilterNameEdited &&
this.selectedSavedFilterToOverWrite == null this.selectedSavedFilterIdToOverWrite == null
) { ) {
return true; return true;
} else { } else {
@@ -244,7 +213,7 @@ export default {
} }
}, },
defaultFilterIsOverWriteSavAble() { defaultFilterIsOverWriteSavAble() {
if (this.selectedSavedFilterToOverWrite != null) { if (this.selectedSavedFilterIdToOverWrite != null) {
return true; return true;
} else { } else {
return false; return false;
@@ -275,26 +244,11 @@ export default {
} }
}, },
async saveAndExit(saveMode) { async saveAndExit(saveMode) {
//TODO: if it's going to do a replace then it needs to get a fresh copy of the replacement filter and it's concurrency token etc
//otherwise saveAs is fine as is I think
switch (saveMode) { switch (saveMode) {
case "save-as-new": case "save-as-new":
{
//create new named filter with the column filter settings and selected name and all users settings of the current //create new named filter with the column filter settings and selected name and all users settings of the current
//default filter //default filter
break;
case "replace-column-filters":
//replace existing named filter with the column filter settings (only) of the current
//default filter
break;
case "update-name-all-users":
//update existing named filter with the name and / or all users settings of the current
//default filter, column filter settings ignored / kept as is
break;
}
if (saveAs) {
//SAVE AS //SAVE AS
//strip ID //strip ID
delete this.activeFilter.id; delete this.activeFilter.id;
@@ -319,7 +273,54 @@ export default {
} else { } else {
this.close({ refresh: true, newFilterId: res.data.id }); this.close({ refresh: true, newFilterId: res.data.id });
} }
}
break;
case "replace-column-filters":
{
//replace existing named filter with the column filter settings (only) of the current
//default filter
if (this.selectedSavedFilterIdToOverWrite == null) {
return;
}
//Fetch existing
let dataFilterToBeOverwritten = await window.$gz.api.get(
`data-list-filter/${this.selectedSavedFilterIdToOverWrite}`
);
if (dataFilterToBeOverwritten.error) {
throw new Error(
window.$gz.errorHandler.errorToString(
dataFilterToBeOverwritten,
this
)
);
} else { } else {
dataFilterToBeOverwritten = dataFilterToBeOverwritten.data;
}
//overwrite filter settings
dataFilterToBeOverwritten.filter = this.activeFilter.filter;
//save over existing
const res = await window.$gz.api.put(
"data-list-filter",
dataFilterToBeOverwritten
);
if (res.error) {
throw new Error(window.$gz.errorHandler.errorToString(res, this));
} else {
this.close({
refresh: true,
newFilterId: dataFilterToBeOverwritten.id
}); //switch to the new filter id
}
}
break;
case "update-name-all-users":
{
//update existing named filter with the name and / or all users settings of the current
//default filter, column filter settings ignored / kept as is
//SAVE //SAVE
const res = await window.$gz.api.put( const res = await window.$gz.api.put(
"data-list-filter", "data-list-filter",
@@ -331,10 +332,12 @@ export default {
this.close({ refresh: true }); this.close({ refresh: true });
} }
} }
break;
}
}, },
async open(tableColumnData) { async open(tableColumnData) {
this.tableColumnData = tableColumnData; this.tableColumnData = tableColumnData;
this.selectedSavedFilterToOverWrite = null; this.selectedSavedFilterIdToOverWrite = null;
await fetchActiveFilter(this); await fetchActiveFilter(this);
this.activeFilterNameAtOpen = this.activeFilter.name; this.activeFilterNameAtOpen = this.activeFilter.name;