From 9087ea644b9717c9917b7f20a35211265c4e402e Mon Sep 17 00:00:00 2001 From: nathan Date: Thu, 17 Mar 2022 15:36:06 -0600 Subject: [PATCH] Admin: Switch from et2_dialog to Et2Dialog --- admin/js/app.ts | 155 ++++++++++++++++++++++++++++-------------------- 1 file changed, 91 insertions(+), 64 deletions(-) diff --git a/admin/js/app.ts b/admin/js/app.ts index 5d72cccbb3..44f2a5f0b8 100644 --- a/admin/js/app.ts +++ b/admin/js/app.ts @@ -14,19 +14,20 @@ import {EgwApp, PushData} from '../../api/js/jsapi/egw_app'; import {etemplate2} from "../../api/js/etemplate/etemplate2"; -import {et2_dialog} from "../../api/js/etemplate/et2_widget_dialog"; -import {et2_createWidget} from "../../api/js/etemplate/et2_core_widget"; +import {Et2Dialog} from "../../api/js/etemplate/Et2Dialog/Et2Dialog"; import {egw} from "../../api/js/jsapi/egw_global.js"; -import {egwActionObject, egwAction} from '../../api/js/egw_action/egw_action.js'; +import {egwAction, egwActionObject} from '../../api/js/egw_action/egw_action.js'; +import {LitElement} from "@lion/core"; + /** * UI for Admin * * @augments AppJS */ class AdminApp extends EgwApp -/** - * @lends app.classes.admin - */ + /** + * @lends app.classes.admin + */ { /** @@ -560,12 +561,19 @@ class AdminApp extends EgwApp _acl_delete(ids) { var app = egw.app_name(); // can be either admin or preferences! - if (app != 'admin') app = 'preferences'; - var className = app+'_acl'; - var callback = function(_button_id, _value) { - if(_button_id != et2_dialog.OK_BUTTON) return; + if(app != 'admin') + { + app = 'preferences'; + } + var className = app + '_acl'; + var callback = function(_button_id, _value) + { + if(_button_id != Et2Dialog.OK_BUTTON) + { + return; + } - var request = egw.json(className+'::ajax_change_acl', [ids, null, _value, this.et2._inst.etemplate_exec_id], this._acl_callback,this,false,this) + var request = egw.json(className + '::ajax_change_acl', [ids, null, _value, this.et2._inst.etemplate_exec_id], this._acl_callback, this, false, this) .sendRequest(); }.bind(this); @@ -573,32 +581,33 @@ class AdminApp extends EgwApp var dialog_options = { callback: callback, title: this.egw.lang('Delete'), - buttons: et2_dialog.BUTTONS_OK_CANCEL, + buttons: Et2Dialog.BUTTONS_OK_CANCEL, value: { content: {}, sel_options: {}, modifications: modifications, readonlys: {} }, - template: egw.webserverUrl+'/admin/templates/default/acl.delete.xet' + template: egw.webserverUrl + '/admin/templates/default/acl.delete.xet' }; // Handle policy documentation tab here if(this.egw.user('apps').policy) { dialog_options['width'] = 550; - dialog_options['height'] = 350, modifications.tabs = { - add_tabs: true, + add_tabs: true, tabs: [{ - label: egw.lang('Documentation'), + label: egw.lang('Documentation'), template: 'policy.admin_cmd', - prepend: false + prepend: false }] }; } // Create the dialog - this.acl_dialog = et2_createWidget("dialog", dialog_options, et2_dialog._create_parent(app)); + this.acl_dialog = new Et2Dialog(app); + this.acl_dialog.transformAttributes(dialog_options); + document.body.appendChild(this.acl_dialog); } /** @@ -710,12 +719,19 @@ class AdminApp extends EgwApp } var dialog_options = { - callback: jQuery.proxy(function(_button_id, _value) { + callback: (_button_id, _value) => + { this.acl_dialog = null; - if(_button_id != et2_dialog.OK_BUTTON) return; + if(_button_id != Et2Dialog.OK_BUTTON) + { + return; + } // Restore account if it's readonly in dialog - if(!_value.acl_account) _value.acl_account = content.acl_account; + if(!_value.acl_account) + { + _value.acl_account = content.acl_account; + } // Handle no applications selected if(typeof _value.apps == 'undefined' && content.acl_location == 'run') @@ -768,16 +784,16 @@ class AdminApp extends EgwApp // Remove any removed if(removed.length > 0) { - this.egw.json(className+'::ajax_change_acl', [removed, 0, [], this.et2._inst.etemplate_exec_id], callback ? callback : this._acl_callback,this,false,this) + this.egw.json(className + '::ajax_change_acl', [removed, 0, [], this.et2._inst.etemplate_exec_id], callback ? callback : this._acl_callback, this, false, this) .sendRequest(); } } - this.egw.json(className+'::ajax_change_acl', [id, rights, _value, this.et2._inst.etemplate_exec_id], callback ? callback : this._acl_callback,this,false,this) + this.egw.json(className + '::ajax_change_acl', [id, rights, _value, this.et2._inst.etemplate_exec_id], callback ? callback : this._acl_callback, this, false, this) .sendRequest(); } - },this), + }, title: this.egw.lang('Access control'), - buttons: et2_dialog.BUTTONS_OK_CANCEL, + buttons: Et2Dialog.BUTTONS_OK_CANCEL, value: { content: content, // @todo: we need to investigate more on et2_widget_selectbox type of apps @@ -787,7 +803,7 @@ class AdminApp extends EgwApp modifications: modifications, readonlys: readonlys }, - template: egw.webserverUrl+'/admin/templates/default/acl.edit.xet' + template: egw.webserverUrl + '/admin/templates/default/acl.edit.xet' }; // Handle policy documentation tab here @@ -796,17 +812,20 @@ class AdminApp extends EgwApp dialog_options['width'] = 550; dialog_options['height'] = 450, modifications.tabs = { - add_tabs: true, + add_tabs: true, tabs: [{ - label: egw.lang('Documentation'), + label: egw.lang('Documentation'), template: 'policy.admin_cmd', - prepend: false + prepend: false }] }; } // Create the dialog - this.acl_dialog = et2_createWidget("dialog", dialog_options, et2_dialog._create_parent(app)); + this.acl_dialog = new Et2Dialog(app); + this.acl_dialog.transformAttributes(dialog_options); + + document.body.appendChild(this.acl_dialog); } /** @@ -919,7 +938,7 @@ class AdminApp extends EgwApp if(removed_cat_label) { var msg = this.egw.lang('Removing access for groups may cause problems for data in this category. Are you sure? Users in these groups may no longer have access:'); - return et2_dialog.confirm(button,msg + removed_cat_label.join(',')); + return Et2Dialog.confirm(button, msg + removed_cat_label.join(',')); } } } @@ -1013,14 +1032,14 @@ class AdminApp extends EgwApp } else { - et2_dialog.show_dialog(function(_button) - { - if (_button == et2_dialog.YES_BUTTON) + Et2Dialog.show_dialog(function(_button) { - submit(); - } - }, this.egw.lang('Submit displayed information?'), '', {}, - et2_dialog.BUTTONS_YES_NO, et2_dialog.QUESTION_MESSAGE, undefined, egw); + if(_button == Et2Dialog.YES_BUTTON) + { + submit(); + } + }, this.egw.lang('Submit displayed information?'), '', {}, + Et2Dialog.BUTTONS_YES_NO, Et2Dialog.QUESTION_MESSAGE, undefined, egw); } return false; } @@ -1049,7 +1068,7 @@ class AdminApp extends EgwApp { var callback = function(button, value) { - if(button === et2_dialog.YES_BUTTON) + if(button === Et2Dialog.YES_BUTTON) { var values = jQuery.extend( {}, @@ -1081,27 +1100,29 @@ class AdminApp extends EgwApp if(egw.app('policy')) { - import(egw.link('/policy/js/app.min.js?'+((new Date).valueOf()/86400|0).toString())).then(() => { + import(egw.link('/policy/js/app.min.js?' + ((new Date).valueOf() / 86400 | 0).toString())).then(() => + { if(typeof app.policy === 'undefined' || typeof app.policy.confirm === 'undefined') { app.policy = new app.classes.policy(); } - var parent = et2_dialog._create_parent(widget.egw()); - var dialog = et2_createWidget("dialog", { + let dialog = new Et2Dialog(widget.egw()); + dialog.transformAttributes({ callback: callback, template: egw.link('/policy/templates/default/admin_cmd_narrow.xet'), - title: egw.lang('Delete'), - buttons: et2_dialog.BUTTONS_YES_NO, - value: {content:{}}, + title: 'Delete', + buttons: Et2Dialog.BUTTONS_YES_NO, + value: {content: {}}, width: 'auto' - }, parent); + }); + widget.egw().window.document.body.appendChild(dialog); dialog.egw().message("Entries with a deleted type can cause problems.\nCheck for entries with this type before deleting.", 'warning'); }); } else { - callback(et2_dialog.YES_BUTTON); + callback(Et2Dialog.YES_BUTTON); } return false; } @@ -1123,13 +1144,14 @@ class AdminApp extends EgwApp accounts[i] = [{id:_selected[i]['id'].split('::')[1],qouta:"", domain:"", status:_action.id == 'active'?_action.id:''}, this.et2._inst.etemplate_exec_id]; } var callbackDialog = function (btn){ - if (btn === et2_dialog.YES_BUTTON) + if(btn === Et2Dialog.YES_BUTTON) { // long task dialog for de/activation accounts - et2_dialog.long_task(function(_val, _resp){ - if (_val && _resp.type !== 'error') + Et2Dialog.long_task(function(_val, _resp) + { + if(_val && _resp.type !== 'error') { - console.log(_val,_resp); + console.log(_val, _resp); } else { @@ -1139,8 +1161,8 @@ class AdminApp extends EgwApp } }; // confirmation dialog - et2_dialog.show_dialog(callbackDialog, egw.lang('Are you sure you want to %1 mail for selected accounts?', egw.lang(_action.id)), egw.lang('Active Mail Accounts'), {}, - et2_dialog.BUTTONS_YES_NO, et2_dialog.WARNING_MESSAGE, undefined, egw); + Et2Dialog.show_dialog(callbackDialog, egw.lang('Are you sure you want to %1 mail for selected accounts?', egw.lang(_action.id)), 'Active Mail Accounts', {}, + Et2Dialog.BUTTONS_YES_NO, Et2Dialog.WARNING_MESSAGE, undefined, egw); } /** @@ -1432,19 +1454,22 @@ class AdminApp extends EgwApp smime_genCertificate() { var self = this; - et2_createWidget("dialog", - { + let dialog = new Et2Dialog("mail"); + dialog.transformAttributes({ callback(_button_id, _value) { - if (_button_id == 'create' && _value) + if(_button_id == 'create' && _value) { var isValid = true; var required = ['countryName', 'emailAddress']; var widget; // check the required fields - for (var i=0;idialog); } /**