187 lines
5.1 KiB
JavaScript
187 lines
5.1 KiB
JavaScript
let VM_LOCAL = null;
|
|
|
|
//Calculate a reasonable time to show the alert based on the size of the message and some sane bounds
|
|
//https://ux.stackexchange.com/a/85898
|
|
function CalculateDelay(msg) {
|
|
//Min 2 seconds max 8 seconds
|
|
return Math.min(Math.max(msg.length * 50, 3000), 8000);
|
|
}
|
|
|
|
/////////////////////////////////
|
|
// Dialog, toast, notification
|
|
// utils and handlers
|
|
//
|
|
export default {
|
|
///////////////////////////////////
|
|
// WIRE UP DIALOG EVENTS
|
|
//
|
|
// called once from app.vue only
|
|
//
|
|
wireUpEventHandlers(vm) {
|
|
//###########################################
|
|
//Notifications: pops up and slowly disappears
|
|
//ACTUAL UI IN gznotify.vue
|
|
//###########################################
|
|
|
|
///////////
|
|
//ERROR
|
|
window.$gz.eventBus.$on("notify-error", function handleNotifyWarn(
|
|
msg,
|
|
helpUrl
|
|
) {
|
|
//log full message
|
|
window.$gz.store.commit("logItem", "notify-error: " + msg);
|
|
//trim really long message as it's likely useless beyond the first few lines (stack trace etc)
|
|
msg = msg.substring(0, 600);
|
|
vm.$root.$gznotify({
|
|
message: msg,
|
|
type: "error",
|
|
timeout: CalculateDelay(msg),
|
|
helpUrl: helpUrl
|
|
});
|
|
});
|
|
|
|
///////////
|
|
//WARNING
|
|
window.$gz.eventBus.$on("notify-warning", function handleNotifyWarn(
|
|
msg,
|
|
helpUrl
|
|
) {
|
|
window.$gz.store.commit("logItem", "notify-warning: " + msg);
|
|
msg = msg.substring(0, 600);
|
|
vm.$root.$gznotify({
|
|
message: msg,
|
|
type: "warning",
|
|
timeout: CalculateDelay(msg),
|
|
helpUrl: helpUrl
|
|
});
|
|
});
|
|
|
|
///////////
|
|
//INFO
|
|
window.$gz.eventBus.$on("notify-info", function handleNotifyInfo(
|
|
msg,
|
|
helpUrl
|
|
) {
|
|
window.$gz.store.commit("logItem", "notify-info: " + msg);
|
|
msg = msg.substring(0, 600);
|
|
vm.$root.$gznotify({
|
|
message: msg,
|
|
type: "info",
|
|
timeout: CalculateDelay(msg),
|
|
helpUrl: helpUrl
|
|
});
|
|
});
|
|
|
|
///////////
|
|
//SUCCESS
|
|
window.$gz.eventBus.$on("notify-success", function handleNotifySuccess(
|
|
msg,
|
|
helpUrl
|
|
) {
|
|
vm.$root.$gznotify({
|
|
message: msg,
|
|
type: "success",
|
|
timeout: CalculateDelay(msg),
|
|
helpUrl: helpUrl
|
|
});
|
|
});
|
|
|
|
VM_LOCAL = vm;
|
|
},
|
|
//###########################################
|
|
//CONFIRMATION DIALOGS
|
|
//ACTUAL UI IN gzconfirm.vue
|
|
//###########################################
|
|
/////////////////////////////////////
|
|
// Are you sure you want to delete?
|
|
//
|
|
confirmDelete() {
|
|
return VM_LOCAL.$root.$gzconfirm({
|
|
message: window.$gz.translation.get("DeletePrompt"),
|
|
yesButtonText: window.$gz.translation.get("Delete"),
|
|
noButtonText: window.$gz.translation.get("Cancel")
|
|
});
|
|
},
|
|
/////////////////////////////////////
|
|
// Are you sure you want to leave unsaved?
|
|
//
|
|
confirmLeaveUnsaved() {
|
|
return VM_LOCAL.$root.$gzconfirm({
|
|
message: window.$gz.translation.get("AreYouSureUnsavedChanges"),
|
|
yesButtonText: window.$gz.translation.get("Leave"),
|
|
noButtonText: window.$gz.translation.get("Cancel")
|
|
});
|
|
},
|
|
/////////////////////////////////////
|
|
// Display LT message with wait for ok
|
|
//
|
|
displayLTErrorMessage(tKeyText, tKeyTitle = undefined) {
|
|
return VM_LOCAL.$root.$gzconfirm({
|
|
message: tKeyText ? window.$gz.translation.get(tKeyText) : "",
|
|
title: tKeyTitle ? window.$gz.translation.get(tKeyTitle) : "",
|
|
yesButtonText: window.$gz.translation.get("OK"),
|
|
type: "error"
|
|
});
|
|
},
|
|
/////////////////////////////////////
|
|
// Display LT message with wait for ok
|
|
//
|
|
displayLTModalNotificationMessage(
|
|
tKeyText,
|
|
tKeyTitle = undefined,
|
|
ttype = "info",
|
|
tHelpUrl = undefined
|
|
) {
|
|
return VM_LOCAL.$root.$gzconfirm({
|
|
message: tKeyText ? window.$gz.translation.get(tKeyText) : "",
|
|
title: tKeyTitle ? window.$gz.translation.get(tKeyTitle) : "",
|
|
yesButtonText: window.$gz.translation.get("OK"),
|
|
type: ttype,
|
|
helpUrl: tHelpUrl
|
|
});
|
|
},
|
|
/////////////////////////////////////
|
|
// Custom confirmation
|
|
//
|
|
confirmGeneric(tKey, ttype = "info") {
|
|
return VM_LOCAL.$root.$gzconfirm({
|
|
message: window.$gz.translation.get(tKey),
|
|
yesButtonText: window.$gz.translation.get("OK"),
|
|
noButtonText: window.$gz.translation.get("Cancel"),
|
|
type: ttype
|
|
});
|
|
},
|
|
/////////////////////////////////////
|
|
// Custom confirmation pre-translated
|
|
//
|
|
confirmGenericPreTranslated(msg, ttype = "info") {
|
|
return VM_LOCAL.$root.$gzconfirm({
|
|
message: msg,
|
|
yesButtonText: window.$gz.translation.get("OK"),
|
|
noButtonText: window.$gz.translation.get("Cancel"),
|
|
type: ttype
|
|
});
|
|
},
|
|
/////////////////////////////////////
|
|
// Custom confirmation no translation
|
|
// with all options available
|
|
//
|
|
displayNoTranslationModalNotificationMessage(
|
|
tKeyText,
|
|
tKeyTitle = undefined,
|
|
ttype = "info",
|
|
tHelpUrl = undefined
|
|
) {
|
|
return VM_LOCAL.$root.$gzconfirm({
|
|
message: tKeyText,
|
|
title: tKeyTitle,
|
|
yesButtonText: window.$gz.translation.get("OK"),
|
|
type: ttype,
|
|
helpUrl: tHelpUrl
|
|
});
|
|
}
|
|
|
|
//new functions above here
|
|
};
|