MediaWiki:Gadget-userRightsManagerTW.js: Difference between revisions
MediaWiki:Gadget-userRightsManagerTW.js (view source)
Revision as of 22:02, 19 February 2022
, 2 years agoupdate the gadget to allow selecting which rights to grant + changing the target user
(fix section id detection) |
(update the gadget to allow selecting which rights to grant + changing the target user) |
||
Line 19:
var api,
permission, perms/* = mw.config.get('wgTitle').split('/').slice(-1)[0]*/,
revisionId = mw.config.get('wgRevisionId'),
permaLink, userName, sectionId, dialog;
Line 41:
OO.inheritClass(Dialog, OO.ui.ProcessDialog);
Dialog.static.name = 'user-rights-manager';
Dialog.static.title = '
Dialog.static.actions = [
{ action: 'submit', label: 'Grant', flags: ['primary', '
{ label: 'Cancel', flags: 'safe' }
];
Line 50:
};
Dialog.prototype.getBodyHeight = function() {
return
};
Dialog.prototype.initialize = function() {
Line 61:
});
this.editPanel.$element.append( this.editFieldset.$element );
this.groupsSysopInput = new OO.ui.CheckboxInputWidget({
selected: permissionText.includes('sysop') || (permissionText.includes('admin') && (!permissionText.includes('interface') || permissionText.split('admin').length > 2)) || (!permissionText.includes('interface') && !permissionText.includes('crat')),
});
this.groupsBureaucratInput = new OO.ui.CheckboxInputWidget({
selected: permissionText.includes('crat')
});
this.groupsInterfaceAdminInput = new OO.ui.CheckboxInputWidget({
selected: permissionText.includes('interface') && mw.config.get('wgUserGroups').includes('consul'),
disabled: !mw.config.get('wgUserGroups').includes('consul')
});
this.userNameInput = new OO.ui.TextInputWidget({
value: userName.replace(/_/g, ' ')
});
this.closingRemarksInput = new OO.ui.MultilineTextInputWidget({
value: cannedResponses[permission],
Line 66 ⟶ 79:
});
var formElements = [
new OO.ui.FieldLayout(new OO.ui.Widget({
content: [
new OO.ui.FieldsetLayout({
content: [
new OO.ui.FieldLayout(this.groupsSysopInput, {label: 'Administrator', align: 'inline'}),
new OO.ui.FieldLayout(this.groupsBureaucratInput, {label: 'Bureaucrat', align: 'inline'}),
new OO.ui.FieldLayout(this.groupsInterfaceAdminInput, {label: 'Interface administrator', align: 'inline'}),
]
})
]
}), {
label: 'Rights',
}),
new OO.ui.FieldLayout(this.closingRemarksInput, {
label: 'Closing remarks',
Line 91 ⟶ 117:
Dialog.prototype.onSubmit = function() {
userName = this.userNameInput.getValue();
perms = [];
if(this.groupsSysopInput.isSelected()) perms.push('sysop');
if(this.groupsBureaucratInput.isSelected()) perms.push('bureaucrat');
if(this.groupsInterfaceAdminInput.isSelected()) perms.push('interface-admin');
var self = this, promiseCount = 2;
Line 172 ⟶ 204:
format: 'json',
user: userName.replace(/ /g, '_'),
add:
reason: '+' +
expiry: 'infinity',
tags: 'userRightsManagerTW'
Line 197 ⟶ 229:
'tags': 'userRightsManagerTW',
summary: '/* User:' + userName + ' */ done'
});
});
}
|