diff --git a/ayanova/devdocs/todo.txt b/ayanova/devdocs/todo.txt
index 5b563e59..1265674d 100644
--- a/ayanova/devdocs/todo.txt
+++ b/ayanova/devdocs/todo.txt
@@ -9,6 +9,10 @@ todo: Case 3595 Mass delete extension
Rights!!!!!
Do this early as it will be copied over and over again
+todo: extension needs ability to force closed the Extension control and refresh the underlying grid
+ for example when deleting and user loses their selections
+
+todo: on grid refresh it should confirm selected still relevant
todo: csv version of export is not exporting all records but a subset only for no apparent reason
json does all but csv only does some and seems to skip many
diff --git a/ayanova/src/components/extension-delete-control.vue b/ayanova/src/components/extension-delete-control.vue
index 81bbe052..662796be 100644
--- a/ayanova/src/components/extension-delete-control.vue
+++ b/ayanova/src/components/extension-delete-control.vue
@@ -46,7 +46,7 @@ export default {
return true;
},
async doAction() {
- dialogResult = await window.$gz.dialog.confirmGeneric(
+ let dialogResult = await window.$gz.dialog.confirmGeneric(
"EraseMultipleObjectsWarning",
"error"
);
@@ -55,19 +55,8 @@ export default {
}
//do the bulk action
let vm = this;
- let url = "tag-list/";
+ let url = "job-operations/bulk-delete";
let body = this.dataListSelection;
- switch (vm.action) {
- case "Add":
- url += `bulk-add/${vm.tag}`;
- break;
- case "Remove":
- url += `bulk-remove/${vm.tag}`;
- break;
- case "Replace":
- url += `bulk-replace/${vm.tag}?toTag=${vm.replace}`;
- break;
- }
try {
//call api route
@@ -116,40 +105,12 @@ export default {
}
//Here if it's completed successfully
window.$gz.eventBus.$emit("notify-success", vm.$ay.t("JobCompleted"));
+ vm.$emit("ext-close-refresh");
} catch (error) {
vm.jobActive = false;
window.$gz.errorHandler.handleFormError(error, vm);
window.$gz.eventBus.$emit("notify-error", vm.$ay.t("JobFailed"));
}
- },
- normalize(value) {
- if (!value) {
- return null;
- }
-
- //Must be lowercase per rules
- //This may be naive when we get international cust omers but for now supporting utf-8 and it appears it's safe to do this with unicode
- value = value.toLowerCase();
- //No spaces in tags, replace with dashes
-
- value = value.split(" ").join("-");
- //Remove multiple dash sequences
- value = value.replace(/-+/g, "-");
-
- //Ensure doesn't start or end with a dash
- value = value.replace(/^\-+-\-+$/g, "");
- // inObj = inObj.Trim("-");
- //No longer than 255 characters
- // inObj = StringUtil.MaxLength(inObj, 255);
- return value;
- },
- normalizeTag(value) {
- value = this.normalize(value);
- this.tag = value;
- },
- normalizeReplace(value) {
- value = this.normalize(value);
- this.replace = value;
}
},
props: {
diff --git a/ayanova/src/components/extensions-control.vue b/ayanova/src/components/extensions-control.vue
index 0579cb2c..47532863 100644
--- a/ayanova/src/components/extensions-control.vue
+++ b/ayanova/src/components/extensions-control.vue
@@ -7,7 +7,10 @@
-
+
@@ -49,6 +52,8 @@ export default {
}`;
},
open(dls) {
+ // console.log("OPEN", dls);
+ // this.$on("ext-close-refresh", this.close({ refresh: true }));
this.dataListSelection = dls;
this.isVisible = true;
return new Promise((resolve, reject) => {
@@ -56,9 +61,10 @@ export default {
this.reject = reject;
});
},
- close() {
+ close(ret) {
+ //this.$off("ext-close-refresh");
this.isVisible = false;
- this.resolve(null);
+ this.resolve(ret);
}
}
};
diff --git a/ayanova/src/views/widgets.vue b/ayanova/src/views/widgets.vue
index 158e2a83..17e5e695 100644
--- a/ayanova/src/views/widgets.vue
+++ b/ayanova/src/views/widgets.vue
@@ -67,9 +67,14 @@ async function clickHandler(menuItem) {
});
break;
case "extensions":
+ // console.log(
+ // "widgets:extensions dls: ",
+ // m.vm.$refs.gzdatatable.getDataListSelection(window.$gz.type.Widget)
+ // );
let res = await m.vm.$refs.extensions.open(
m.vm.$refs.gzdatatable.getDataListSelection(window.$gz.type.Widget)
);
+ console.log("widgets::extensions res=", res);
break;
case "report":
if (m.id != null) {