jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/338104 )
Change subject: Fix for broken dialog on PermissionManager TemplateEditor
......................................................................
Fix for broken dialog on PermissionManager TemplateEditor
On tree panel selection change (beforeselect), if there are changes in
current record, a dialog asking wether to save changes is displayed. If
user says Yes, saveTemplate is called and state is changed to 'clean' (no
changes). Problem is that this setting to clean happens in .done method of
ajax call which comes late, before it gets the chance to set the state to
clean, beforeselect event is fired again, and it tries to dispay the
dialog again, but this time it failes, causing broken dialog.
Added also _closeDialog var, to distinguish when dialog should be closed
(Save button clicked) and when it should remain open (saving after
changing selection)
ERM: #3812
Needs cherry-picking to REL1_27 and REL1_23
Change-Id: I975be9eb6ced6571078dc04a62664be7d83eb784
---
M PermissionManager/resources/BS.PermissionManager/TemplateEditor.js
1 file changed, 22 insertions(+), 6 deletions(-)
Approvals:
Mglaser: Looks good to me, approved
jenkins-bot: Verified
diff --git a/PermissionManager/resources/BS.PermissionManager/TemplateEditor.js
b/PermissionManager/resources/BS.PermissionManager/TemplateEditor.js
index 19b1a92..e45e6bd 100644
--- a/PermissionManager/resources/BS.PermissionManager/TemplateEditor.js
+++ b/PermissionManager/resources/BS.PermissionManager/TemplateEditor.js
@@ -15,6 +15,7 @@
closeAction: 'hide',
_cleanState: true,
_hasChanged: false,
+ _closeDialog: true,
constructor: function(config) {
this._treeStore =
Ext.create('BS.PermissionManager.store.TemplateTree');
this._permissionStore =
Ext.create('BS.PermissionManager.store.TemplatePermissions');
@@ -34,6 +35,12 @@
hasChanged: function() {
return this._hasChanged;
},
+ setCloseDialog: function(close) {
+ this._closeDialog = close;
+ },
+ getCloseDialog: function() {
+ return this._closeDialog;
+ },
saveTemplate: function() {
var me = this;
var record = Ext.getCmp('bs-template-editor-treepanel')
@@ -47,7 +54,6 @@
};
if (typeof record !== 'undefined') {
-
for (var i in me._permissionStore.data.items) {
var dataSet =
me._permissionStore.data.items[i].data;
if (dataSet.enabled === true) {
@@ -79,17 +85,25 @@
.lookup('bs-permissionmanager-permission-store')
.loadRawData(dataManager.buildPermissionData().permissions);
-
Ext.getCmp('bs-template-editor-treepanel').getSelectionModel().select(
-
me._treeStore.getNodeById(newRecord.text)
- );
+ if( me.getCloseDialog() ) {
+
Ext.getCmp('bs-template-editor-treepanel').getSelectionModel().select(
+
me._treeStore.getNodeById(newRecord.text)
+ );
+ }
+
mw.notify( mw.msg(
'bs-permissionmanager-msgtpled-success' ), { title: mw.msg(
'bs-extjs-title-success' ) } );
} else {
bs.util.alert( 'bs-pm-save-tpl-error', {
text: result.msg
});
}
- me.hide();
+
+ if ( me.getCloseDialog() ) {
+ me.hide();
+ }
+ me.setCloseDialog(true);
});
+
}
},
discardChanges: function() {
@@ -115,7 +129,9 @@
text:
mw.message('bs-permissionmanager-msgtpled-saveonabort').plain()
});
dialog.on('ok', function() {
+ me.setCloseDialog(false);
me.saveTemplate();
+ me.setCleanState(true);
if (record !== false) {
Ext.getCmp('bs-template-editor-treepanel').getSelectionModel().select(record);
}
@@ -311,4 +327,4 @@
me.on( 'hide', me.discardChanges, this ); //prevent empty
templates to be saved
this.callParent();
}
-});
\ No newline at end of file
+});
--
To view, visit https://gerrit.wikimedia.org/r/338104
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I975be9eb6ced6571078dc04a62664be7d83eb784
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/BlueSpiceExtensions
Gerrit-Branch: master
Gerrit-Owner: ItSpiderman <[email protected]>
Gerrit-Reviewer: Mglaser <[email protected]>
Gerrit-Reviewer: Robert Vogel <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits