New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add warning if submitter is blocked #219
Add warning if submitter is blocked #219
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tested this with both a blocked and glocked user (who was also locally blocked on TestWiki) and neither of them showed up. Both users were put into the |u= parameter
@primefac I think that's happening because I'm using the |
90% of the time, the page creator will likely be the one who submitted the draft, but I've seen cases where (for example) a promo username violator created the page, got blocked, and then created a valid new account; the "creator's account" is blocked but the submitting editor isn't. In other words, if it's possible, try to use the editor that submitted the draft over the page creator. |
src/modules/submissions.js
Outdated
@@ -1135,12 +1135,27 @@ | |||
} ); | |||
} | |||
|
|||
function checkForBlocks() { | |||
var deferred = $.Deferred(); | |||
afchPage.getCreator().then( function ( creator ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you can use afchSubmission.getSubmitter
src/modules/submissions.js
Outdated
@@ -2017,6 +2032,31 @@ | |||
} | |||
} | |||
|
|||
function checkIfUserIsBlocked( userName ) { | |||
var deferred = $.Deferred(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
using $.Deferred() is not needed here. You can just put a return
in front of AFCH.api.get and and in front of blockData
and null
in the then/catch branches.
src/modules/submissions.js
Outdated
} ).then( function ( data ) { | ||
var blocks = data.query.blocks; | ||
var blockData = null; | ||
var currentTime = new Date().toJSON(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
suggest using toISOString
instead which has same output but makes the intent clear
@siddharthvp I've implemented the suggestions you've made. I tested it on https://test.wikipedia.org/wiki/Draft:AFCH_Issue_106 and it works fine. |
src/modules/submissions.js
Outdated
@@ -1135,12 +1135,27 @@ | |||
} ); | |||
} | |||
|
|||
function checkForBlocks() { | |||
var deferred = $.Deferred(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
here too, explicit use of $.Deferred() can be removed, by putting a return
on the next two lines
Okay, I've removed the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Last few comments
src/modules/submissions.js
Outdated
return afchSubmission.getSubmitter().then( function ( creator ) { | ||
return checkIfUserIsBlocked( creator ).then( function ( blockData ) { | ||
if ( blockData !== null ) { | ||
var warning = creator + ' was blocked by ' + blockData.by + ' with an expiry time of ' + blockData.expiry + '. Reason: ' + blockData.reason; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
var warning = creator + ' was blocked by ' + blockData.by + ' with an expiry time of ' + blockData.expiry + '. Reason: ' + blockData.reason; | |
var warning = 'Submitter' + creator + ' was blocked by ' + blockData.by + ' with an expiry time of ' + blockData.expiry + '. Reason: ' + blockData.reason; |
otherwise it may not be always clear who the blocked user is.
src/modules/submissions.js
Outdated
return afchSubmission.getSubmitter().then( function ( creator ) { | ||
return checkIfUserIsBlocked( creator ).then( function ( blockData ) { | ||
if ( blockData !== null ) { | ||
var warning = creator + ' was blocked by ' + blockData.by + ' with an expiry time of ' + blockData.expiry + '. Reason: ' + blockData.reason; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me now, thanks! |
^ my bad, accidentally merged this with a typo in the commit message |
* replaced https with http (wikimedia-gadgets#207) * Updates to server.js: new setup * properly enable mockItUp in server.js * Show live preview while writing comments (wikimedia-gadgets#199) * Handle slashes in article titles (wikimedia-gadgets#198) Closes wikimedia-gadgets#110. * Add comment to title subpage logic * show copyvio warning (wikimedia-gadgets#197) * Avoid use of deprecated token types (wikimedia-gadgets#192) 'edit' and 'options' token types are deprecated in favour of csrf token. Have used the function postWithEditToken() here that uses csrf token - which should be more stable than using `postWithToken( 'csrf', ... )`. * Remove {{promising draft}}, and unify template removal logic (wikimedia-gadgets#189) * update readme: npm start runs npm install automatically * Remove acceptance form fields whose values aren't used (wikimedia-gadgets#191) Values entered here have been unused since persondata was removed in wikimedia-gadgets@9632e4fd (2015). * Use toolforge cdn's hogan, fixing licensing issue https://en.wikipedia.org/wiki/Wikipedia:Miscellany_for_deletion/MediaWiki:Gadget-afchelper.js/core.js * Revert "Use toolforge cdn's hogan, fixing licensing issue " This reverts commit 7b87347. * server.js: clarify instructions * Log page name for mockItUp edits * resolve nowiki issue when this was uploaded, the hogan part would contain some stuff that would get misread as a mediawiki template, so this change adds a "banner" in the grunt concat config that puts a nowiki tag at the top (and, as a side effect - hopefully harmless - a random nowiki in the middle). * Fix comment preview (wikimedia-gadgets#218) - fix afc comment template - previous version did not work with some custom signatures - hide comment preview after text box is emptied * Show live preview for decline/reject reasons (wikimedia-gadgets#211) As requested en.wikipedia.org/w/index.php?title=Wikipedia_talk:WikiProject_Articles_for_creation&diff=1066284130 * Add warning is submitter is blocked (wikimedia-gadgets#219) * Support adding/editing short description (wikimedia-gadgets#196) Co-authored-by: Diksha <75247382+dikshatakyar@users.noreply.github.com> Co-authored-by: Enterprisey <danielhglus@gmail.com> Co-authored-by: Siddharth VP <siddharthvp@gmail.com> Co-authored-by: gullyn <74876079+gullyn@users.noreply.github.com>
* replaced https with http (wikimedia-gadgets#207) * Updates to server.js: new setup * properly enable mockItUp in server.js * Show live preview while writing comments (wikimedia-gadgets#199) * Handle slashes in article titles (wikimedia-gadgets#198) Closes wikimedia-gadgets#110. * Add comment to title subpage logic * show copyvio warning (wikimedia-gadgets#197) * Avoid use of deprecated token types (wikimedia-gadgets#192) 'edit' and 'options' token types are deprecated in favour of csrf token. Have used the function postWithEditToken() here that uses csrf token - which should be more stable than using `postWithToken( 'csrf', ... )`. * Remove {{promising draft}}, and unify template removal logic (wikimedia-gadgets#189) * update readme: npm start runs npm install automatically * Remove acceptance form fields whose values aren't used (wikimedia-gadgets#191) Values entered here have been unused since persondata was removed in wikimedia-gadgets@9632e4fd (2015). * Use toolforge cdn's hogan, fixing licensing issue https://en.wikipedia.org/wiki/Wikipedia:Miscellany_for_deletion/MediaWiki:Gadget-afchelper.js/core.js * Revert "Use toolforge cdn's hogan, fixing licensing issue " This reverts commit 7b87347. * server.js: clarify instructions * Log page name for mockItUp edits * resolve nowiki issue when this was uploaded, the hogan part would contain some stuff that would get misread as a mediawiki template, so this change adds a "banner" in the grunt concat config that puts a nowiki tag at the top (and, as a side effect - hopefully harmless - a random nowiki in the middle). * Fix comment preview (wikimedia-gadgets#218) - fix afc comment template - previous version did not work with some custom signatures - hide comment preview after text box is emptied * Show live preview for decline/reject reasons (wikimedia-gadgets#211) As requested en.wikipedia.org/w/index.php?title=Wikipedia_talk:WikiProject_Articles_for_creation&diff=1066284130 * Add warning is submitter is blocked (wikimedia-gadgets#219) * Support adding/editing short description (wikimedia-gadgets#196) * l10n after sync with updtream Co-authored-by: Diksha <75247382+dikshatakyar@users.noreply.github.com> Co-authored-by: Enterprisey <danielhglus@gmail.com> Co-authored-by: Siddharth VP <siddharthvp@gmail.com> Co-authored-by: gullyn <74876079+gullyn@users.noreply.github.com>
* replaced https with http (wikimedia-gadgets#207) * Updates to server.js: new setup * properly enable mockItUp in server.js * Show live preview while writing comments (wikimedia-gadgets#199) * Handle slashes in article titles (wikimedia-gadgets#198) Closes wikimedia-gadgets#110. * Add comment to title subpage logic * show copyvio warning (wikimedia-gadgets#197) * Avoid use of deprecated token types (wikimedia-gadgets#192) 'edit' and 'options' token types are deprecated in favour of csrf token. Have used the function postWithEditToken() here that uses csrf token - which should be more stable than using `postWithToken( 'csrf', ... )`. * Remove {{promising draft}}, and unify template removal logic (wikimedia-gadgets#189) * update readme: npm start runs npm install automatically * Remove acceptance form fields whose values aren't used (wikimedia-gadgets#191) Values entered here have been unused since persondata was removed in wikimedia-gadgets@9632e4fd (2015). * Use toolforge cdn's hogan, fixing licensing issue https://en.wikipedia.org/wiki/Wikipedia:Miscellany_for_deletion/MediaWiki:Gadget-afchelper.js/core.js * Revert "Use toolforge cdn's hogan, fixing licensing issue " This reverts commit 7b87347. * server.js: clarify instructions * Log page name for mockItUp edits * resolve nowiki issue when this was uploaded, the hogan part would contain some stuff that would get misread as a mediawiki template, so this change adds a "banner" in the grunt concat config that puts a nowiki tag at the top (and, as a side effect - hopefully harmless - a random nowiki in the middle). * Fix comment preview (wikimedia-gadgets#218) - fix afc comment template - previous version did not work with some custom signatures - hide comment preview after text box is emptied * Show live preview for decline/reject reasons (wikimedia-gadgets#211) As requested en.wikipedia.org/w/index.php?title=Wikipedia_talk:WikiProject_Articles_for_creation&diff=1066284130 * Add warning is submitter is blocked (wikimedia-gadgets#219) * Support adding/editing short description (wikimedia-gadgets#196) * Add missing parentheses to Line 2559 to fix wikimedia-gadgets#103 (wikimedia-gadgets#224) This fixes wikimedia-gadgets#103 by adding missing parentheses to Line 2559 so that the part before "isDecline ? 'declined' : 'rejected'" correctly appears in the edit summary. * fix toomanyvalues API error (wikimedia-gadgets#239) * switch to GitHub Actions continuous integration (wikimedia-gadgets#236) * style: eslinting Co-authored-by: Diksha <75247382+dikshatakyar@users.noreply.github.com> Co-authored-by: Enterprisey <danielhglus@gmail.com> Co-authored-by: Siddharth VP <siddharthvp@gmail.com> Co-authored-by: gullyn <74876079+gullyn@users.noreply.github.com> Co-authored-by: GeoffreyTrang <geoffreytrang@gmail.com> Co-authored-by: NovemLinguae <79697282+NovemLinguae@users.noreply.github.com>
This issue was raised in 2019 and was worked on, but no pull request was made. I've adapted @paul-111's code, updating the API request and fixing the formatting. This is what the warning looks like: