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
>
<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:
save a default filter to a named filter
@@ -55,13 +30,7 @@
-->
<template v-if="isDefaultFilter">
<!-- <pre>
- 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">
<div v-if="selectedSavedFilterIdToOverWrite == null" class="mb-5">
<!-- DEFAULT UN-NAMED FILTER BEING EDITED BLOCK -->
<h2>
{{ $ay.t("SaveAs") }}
@@ -84,7 +53,7 @@
<div v-if="offerReplace && !defaultFilterNameEdited" class="mb-5">
<h2>{{ $ay.t("Replace") }}</h2>
<v-select
v-model="selectedSavedFilterToOverWrite"
v-model="selectedSavedFilterIdToOverWrite"
:items="selectLists.savedFilters"
item-text="name"
item-value="id"
@@ -98,7 +67,7 @@
}}</v-btn>
<v-spacer />
<template
v-if="isSelfOwned && selectedSavedFilterToOverWrite == null"
v-if="isSelfOwned && selectedSavedFilterIdToOverWrite == null"
>
<v-btn text color="primary" @click="deleteFilter()">{{
$ay.t("Delete")
@@ -107,7 +76,7 @@
</template>
<v-btn
v-if="selectedSavedFilterToOverWrite == null"
v-if="selectedSavedFilterIdToOverWrite == null"
text
:disabled="!defaultFilterIsSavAsAble"
color="primary"
@@ -115,7 +84,7 @@
>{{ $ay.t("Save") }}</v-btn
>
<v-btn
v-if="selectedSavedFilterToOverWrite != null"
v-if="selectedSavedFilterIdToOverWrite != null"
text
color="primary"
@click="saveAndExit('replace-column-filters')"
@@ -187,7 +156,7 @@ export default {
activeFilterPublicAtOpen: null,
activeFilterCreator: "",
isSelfOwned: true,
selectedSavedFilterToOverWrite: null,
selectedSavedFilterIdToOverWrite: null,
selectLists: {
savedFilters: []
},
@@ -236,7 +205,7 @@ export default {
defaultFilterIsSavAsAble() {
if (
this.defaultFilterNameEdited &&
this.selectedSavedFilterToOverWrite == null
this.selectedSavedFilterIdToOverWrite == null
) {
return true;
} else {
@@ -244,7 +213,7 @@ export default {
}
},
defaultFilterIsOverWriteSavAble() {
if (this.selectedSavedFilterToOverWrite != null) {
if (this.selectedSavedFilterIdToOverWrite != null) {
return true;
} else {
return false;
@@ -275,26 +244,11 @@ export default {
}
},
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) {
case "save-as-new":
{
//create new named filter with the column filter settings and selected name and all users settings of the current
//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
//strip ID
delete this.activeFilter.id;
@@ -319,7 +273,54 @@ export default {
} else {
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 {
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
const res = await window.$gz.api.put(
"data-list-filter",
@@ -331,10 +332,12 @@ export default {
this.close({ refresh: true });
}
}
break;
}
},
async open(tableColumnData) {
this.tableColumnData = tableColumnData;
this.selectedSavedFilterToOverWrite = null;
this.selectedSavedFilterIdToOverWrite = null;
await fetchActiveFilter(this);
this.activeFilterNameAtOpen = this.activeFilter.name;