MediaWiki:Gadget-userRightsManager.js: Difference between revisions

Jump to navigation Jump to search
(fix user selection)
(clean out code for updating markadmins.json since it's no longer necessary due to gadget changes)
Line 17: Line 17:
'interface-admin': '{{done}}. ~~~~',
'interface-admin': '{{done}}. ~~~~',
};
};
var listKeys = {
'sysop': 'A',
'bureaucrat': 'B',
'interface-admin': 'F'
}


var api,
var api,
Line 116: Line 110:
this.changeRightsProgressLabel = new OO.ui.LabelWidget();
this.changeRightsProgressLabel = new OO.ui.LabelWidget();
this.changeRightsProgressField = new OO.ui.FieldLayout( this.changeRightsProgressLabel );
this.changeRightsProgressField = new OO.ui.FieldLayout( this.changeRightsProgressLabel );
this.updateJsonProgressLabel = new OO.ui.LabelWidget();
this.updateJsonProgressField = new OO.ui.FieldLayout( this.updateJsonProgressLabel );
this.markAsDoneProgressLabel = new OO.ui.LabelWidget();
this.markAsDoneProgressLabel = new OO.ui.LabelWidget();
this.markAsDoneProgressField = new OO.ui.FieldLayout( this.markAsDoneProgressLabel );
this.markAsDoneProgressField = new OO.ui.FieldLayout( this.markAsDoneProgressLabel );
Line 173: Line 165:
self.markAsDoneProgressField.setLabel( 'Marking request as done...' );
self.markAsDoneProgressField.setLabel( 'Marking request as done...' );
self.submitFieldset.addItems( [self.markAsDoneProgressField] );
self.submitFieldset.addItems( [self.markAsDoneProgressField] );
self.updateJsonProgressField.setLabel( 'Updating markadmins.json' );
self.submitFieldset.addItems( [self.updateJsonProgressField] );
self.changeRightsProgressField.setLabel( 'Assigning rights...' );
self.changeRightsProgressField.setLabel( 'Assigning rights...' );
self.submitFieldset.addItems( [self.changeRightsProgressField] );
self.submitFieldset.addItems( [self.changeRightsProgressField] );
Line 182: Line 172:
markAsDone('\n:' + this.closingRemarksInput.getValue())
markAsDone('\n:' + this.closingRemarksInput.getValue())
).then(function(data) {
).then(function(data) {
addPromise(
self.updateJsonProgressField,
updateJson(data.edit.newrevid)
);
addPromise(
addPromise(
self.changeRightsProgressField,
self.changeRightsProgressField,
Line 225: Line 211:
expiry: 'infinity',
expiry: 'infinity',
tags: 'userRightsManagerTW'
tags: 'userRightsManagerTW'
});
}
function updateJson(revId) {
return api.get({
'action': 'query',
'titles': 'MediaWiki:Gadget-markadmins.json',
'prop': 'revisions',
'rvslots': '*',
'rvlimit': 1,
'rvprop': 'content'
}).then(function(data){
var newContent = JSON.parse(data['query']['pages'][Object.keys(data['query']['pages'])[0]]['revisions'][0]['slots']['main']['*']);
for(perm in perms){
if(!newContent['userSet'][listKeys[perm]].includes(userName.replace(/_/g, ' '))){
newContent['userSet'][listKeys[perm]].push(userName.replace(/_/g, ' '))
}
newContent['userSet'][listKeys[perm]].sort()
}
newContent = JSON.stringify(newContent, null, 4)
return api.postWithToken( 'edit', {
'action': 'edit',
'title': 'MediaWiki:Gadget-markadmins.json',
'text': newContent,
'tags': 'userRightsManagerTW',
summary: 'Adding [[User:' + userName + '|' + userName.replace(/_/g, ' ') + ']] to ' + names[permission] + 's ' + '([[Special:Diff/' + revId + '|per request]])'
})
});
});
}
}