User:SD0001/GAR-helper.js: Difference between revisions

Content deleted Content added
community reassessment and individual reassessment unified to a single process
fix bad promise handling
Line 119:
var pages = apiobj.response.query.allpages;
gar.num = pages.length + 1; // HACK
apiobj.getStatusElement().info('Next number is ' + gar.num);
def.resolve();
}, def.reject);
Line 182 ⟶ 183:
 
getOtherEditors: function() {
var def = $.Deferred();
var query = {
"action": "query",
Line 198:
})).post();
 
return $.when(api_gar, api_gan).then(function(result_gan, result_gar) {
var pages = result_gar.response.query.allpages
.concat(result_gan.response.query.allpages);
var lookupsDonedefs = 0;pages.map(function(page) {
var def = $.Deferred();
pages.forEach(function(page) {
var p = new Morebits.wiki.page(page.title, 'Looking up creator of ' + page.title);
p.lookupCreation(function() {
gar.usersToNotify.push(p.getCreator());
p.getStatusElement().info('found ' + p.getCreator());
def.resolve();
if (++lookupsDone === pages.length) { // Hack: #911
}, def.resolve(reject);
}return def;
});
});
return $.when.apply($, defs);
});
return def;
},
 
notify: function() {
var def = $.Deferred();
var users = Morebits.array.uniq(gar.usersToNotify).filter(function (user) {
return user !== mw.config.get('wgUserName');
Line 224 ⟶ 222:
'{{subst:GARMessage|' + gar.title + '|GARpage=' + gar.num + '}} ~~~~';
var editsummary = '[[' + gar.title + ']] listed for good article reassessment' + gar.advert;
var defs = users.forEachmap(function(user, idx) {
var notificationsDone = 0;
var def = $.Deferred();
users.forEach(function(user, idx) {
var usertalk = new Morebits.wiki.page('User talk:' + user, 'Notifying ' + user);
usertalk.setAppendText(appendtext);
usertalk.setEditSummary(editsummary);
usertalk.append(function()def.resolve, {def.reject);
return def;
if (++notificationsDone === users.length) { // Hack: till .append() is promisified (#911)
def.resolve();
}
});
});
return def$.when.apply($, defs);
}