Index: main/kernel/resources/js/Ametys/data/ServerComm.i18n.js =================================================================== --- main/kernel/resources/js/Ametys/data/ServerComm.i18n.js (revision 28600) +++ main/kernel/resources/js/Ametys/data/ServerComm.i18n.js (working copy) @@ -253,7 +253,7 @@ if (Ext.isObject(oldMessage.waitMessage)) { - oldMessage.waitMessage.hide(); + oldMessage.bodyMasked ? Ext.getBody().unmask() : oldMessage.waitMessage.hide(); } } } @@ -298,12 +298,20 @@ } if (Ext.isObject(message.waitMessage)) { - message.waitMessage = Ext.applyIf(message.waitMessage, { - target: Ext.getBody() - }); - - message.waitMessage = Ext.create("Ext.LoadMask", message.waitMessage); - message.waitMessage.show(); + if (!message.waitMessage.target && Ext.ComponentQuery.query('viewport').length == 0) + { + message.waitMessage = Ext.getBody().mask (message.waitMessage.msg || "", message.waitMessage.msgCls); + message.bodyMasked = true; + } + else + { + message.waitMessage = Ext.applyIf(message.waitMessage, { + target: Ext.ComponentQuery.query('viewport')[0] + }); + + message.waitMessage = Ext.create("Ext.LoadMask", message.waitMessage); + message.waitMessage.show(); + } } } @@ -657,7 +665,7 @@ var message = options.messages[i]; if (Ext.isObject(message.waitMessage)) { - message.waitMessage.hide(); + message.bodyMasked ? Ext.getBody().unmask() : message.waitMessage.hide(); } } }, Index: main/plugin-core/i18n/messages_en.xml =================================================================== --- main/plugin-core/i18n/messages_en.xml (revision 28600) +++ main/plugin-core/i18n/messages_en.xml (working copy) @@ -44,6 +44,7 @@ Help This screen allows you to change the application's configuration.<br/><br/>Navigate through the top-right hand corner tabs and change the parameters' values.<br/><br/>The application will be automatically restarted after the changes are saved. The configuration has been correctly updated + Saving. Please wait ... Server is not responding or a fatal error occurred during saving.\nConsult applications and servlet engines logfiles for more details. An error occurred on the server and parameters have not been updated.\n\nInternal error message is :\n The form contains errors Index: main/plugin-core/i18n/messages_fr.xml =================================================================== --- main/plugin-core/i18n/messages_fr.xml (revision 28600) +++ main/plugin-core/i18n/messages_fr.xml (working copy) @@ -44,6 +44,7 @@ Aide Cet écran vous permet de modifier la configuration système de l'application.<br/><br/>Naviguez en utilisant les onglets et modifiez les valeurs des paramètres.<br/><br/>Lorsque vous enregistrez les modifications, l'application sera redémarrée automatiquement pour prendre les modifications en compte. La configuration a été sauvée correctement + Sauvegarde en cours.<br/>Veuillez patienter ... Le serveur ne répond pas ou une erreur grave est survenue lors de la sauvegarde.\nConsultez les journaux de l'application et du moteur de servlet pour plus de détails. Une erreur est survenue sur le serveur et les paramètres n'ont pas été sauvegardés.\n\nLe message d'erreur interne est :\n Le formulaire contient des erreurs Index: main/plugin-core/resources/js/Ametys/plugins/core/administration/Config.i18n.js =================================================================== --- main/plugin-core/resources/js/Ametys/plugins/core/administration/Config.i18n.js (revision 28753) +++ main/plugin-core/resources/js/Ametys/plugins/core/administration/Config.i18n.js (working copy) @@ -1914,7 +1914,7 @@ { if (mask) { - new Ext.LoadMask({target: Ext.getBody()}).show(); + Ext.getBody().mask(); } document.location.href = Ametys.WORKSPACE_URI; }, @@ -1967,23 +1967,20 @@ { if (btn == 'yes') { - me.save._mask = new Ext.LoadMask({target: Ext.getBody()}); - me.save._mask.show(); + Ext.getBody().mask(""); Ext.defer(me._save2, 1, me); } else if (btn == 'no') { - me.save._mask = new Ext.LoadMask({target: Ext.getBody()}); - me.save._mask.show(); - me._check(me._paramCheckers, true, Ext.bind(function(success) { this.save._mask.hide(); if (success) { this.save(); } } , me), false); + Ext.getBody().mask(""); + me._check(me._paramCheckers, true, Ext.bind(function(success) { Ext.getBody().unmask(); if (success) { this.save(); } } , me), false); } } }); return; } - me.save._mask = new Ext.LoadMask({target: Ext.getBody()}); - me.save._mask.show(); + Ext.getBody().mask(""); Ext.defer(me._save2, 1, me); }, @@ -2029,7 +2026,7 @@ ex = e; } - this.save._mask.hide(); + Ext.getBody().unmask(); if (result == null) { Index: main/plugin-core/resources/js/Ametys/plugins/core/administration/Logs.i18n.js =================================================================== --- main/plugin-core/resources/js/Ametys/plugins/core/administration/Logs.i18n.js (revision 28600) +++ main/plugin-core/resources/js/Ametys/plugins/core/administration/Logs.i18n.js (working copy) @@ -357,8 +357,7 @@ } else { - this._mask = new Ext.LoadMask({target: Ext.getBody()}); - this._mask.show(); + Ext.getBody().mask(""); var args = { level: level, category: selectedNode.get('fullname') }; Ametys.data.ServerComm.send({ @@ -386,7 +385,7 @@ var args = argsArray[0]; var selectedNode = argsArray[1]; - this._mask.hide(); + Ext.getBody().unmask(); if (Ametys.data.ServerComm.handleBadResponse("", response, "org.ametys.administration.Groups._selectGroup")) { Index: main/plugin-core/resources/js/Ametys/plugins/core/administration/Plugins.i18n.js =================================================================== --- main/plugin-core/resources/js/Ametys/plugins/core/administration/Plugins.i18n.js (revision 28600) +++ main/plugin-core/resources/js/Ametys/plugins/core/administration/Plugins.i18n.js (working copy) @@ -53,10 +53,6 @@ * @private * @property {Ext.tree.Panel} _tree3 The workspace tree */ - /** - * @private - * @property {Ext.LoadMask} _mask A mak when saving changes and reloading - */ /** * @readonly @@ -524,8 +520,7 @@ responseType: null }); - this._mask = new Ext.LoadMask({target: Ext.getBody()}); - this._mask.show(); + Ext.getBody().mask(""); }, /** @@ -535,17 +530,16 @@ */ _changesNowCB: function(response) { - this._mask.hide(); + Ext.getBody().unmask(); if (Ametys.data.ServerComm.handleBadResponse("", response, "Ametys.plugins.core.administration.Plugins._changesNowCB")) { return; } - alert(""); + Ext.Msg.alert("", ""); - this._mask = new Ext.LoadMask({target: Ext.getBody()}); - this._mask.show(); + Ext.getBody().mask(""); // Restart Ext.Ajax.request({url: Ametys.getPluginDirectPrefix(this.pluginName) + "/administrator/restart", params: "", async: false}); Index: main/plugin-core/resources/js/Ametys/plugins/core/administration/Profiles.i18n.js =================================================================== --- main/plugin-core/resources/js/Ametys/plugins/core/administration/Profiles.i18n.js (revision 28600) +++ main/plugin-core/resources/js/Ametys/plugins/core/administration/Profiles.i18n.js (working copy) @@ -798,19 +798,23 @@ // Help icon if (this.description) { - this.bodyEl.insertFirst({ - id: this.id + '-img', - tag:'img', - src: Ametys.getPluginResourcesPrefix('core') + '/img/administrator/config/help.gif', - cls: 'check-right-entry-img' + this.bodyEl.insertSibling({ + tag:'td', + cls: 'check-right-entry-img', + children: [{ + tag:'img', + src: Ametys.getPluginResourcesPrefix('core') + '/img/administrator/config/help.gif', + 'data-qtitle': this.boxLabel, + 'data-qtip': this.description + }] }); - Ext.tip.QuickTipManager.register({ + /*Ext.tip.QuickTipManager.register({ cls: 'profiles-right-tooltip', target: this.id + '-img', title: this.boxLabel, text: this.description - }); + });*/ } var labelNode = this.boxLabelEl.dom; Index: main/plugin-core/resources/js/Ametys/runtime/profile/ProfilesTreePanel/NodeEntry.js =================================================================== --- main/plugin-core/resources/js/Ametys/runtime/profile/ProfilesTreePanel/NodeEntry.js (revision 28600) +++ main/plugin-core/resources/js/Ametys/runtime/profile/ProfilesTreePanel/NodeEntry.js (working copy) @@ -46,6 +46,7 @@ { return v; } + } }, {name: 'name', mapping: '@name'}, @@ -78,7 +79,7 @@ name: 'leaf', defaultValue: false, convert: function (v, record) { - return record.get('type') != 'profile'; + return record.get('type') == 'user' || record.get('type') == 'group'; } } ] Index: main/workspace-admin/pages/common/common.xsl =================================================================== --- main/workspace-admin/pages/common/common.xsl (revision 28600) +++ main/workspace-admin/pages/common/common.xsl (working copy) @@ -128,12 +128,14 @@ launch: function() { var items = []; - var toping = createTop(); - if (toping != null) - { - items.push(Ext.apply(toping, {region: 'north'})); - } - items.push(Ext.apply(createPanel(), {region: 'center'})); + + var toping = createTop(); + if (toping != null) + { + items.push(Ext.apply(toping, {region: 'north'})); + } + + items.push(Ext.apply(createPanel(), {region: 'center'})); var mainPanel = Ext.create('Ext.panel.Panel', { autoScroll: false, @@ -156,8 +158,8 @@ this.setSize(Ext.get('main').getSize(true)) }, mainPanel); - createDock(); - + createDock(); + createBottom(); if (typeof appReady == "function")