Florianschmidtwelzow has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/199659

Change subject: Fix actions on Special:Gather
......................................................................

Fix actions on Special:Gather

* id of a collection can be a string, convert it to be a number (ugly 
workaround,
because we can't use double equals?)
* Don't return null/false or something like that in OverlayManagers factory 
function,
always return everything suitable. For non-existent actions or if the action 
seems to
be done on the false collection, show an error toast and return a Deferred and 
just
don't resolve it.

Change-Id: Ib7db1d7ffbf276ceaa3baa869b357a96c12e61fb
---
M i18n/en.json
M i18n/qqq.json
M resources/Resources.php
M resources/ext.gather.special/init.js
4 files changed, 15 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Gather 
refs/changes/59/199659/1

diff --git a/i18n/en.json b/i18n/en.json
index ca3ac0a..b3a14eb 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -49,6 +49,8 @@
        "gather-add-to-collection-confirm": "Add to collection",
        "gather-add-to-collection-cancel": "No thanks",
        "gather-remove-toast": "The page has been removed from your \"$1\" 
collection.",
+       "gather-no-such-action": "Sorry, the requested action doesn't exist.",
+       "gather-unknown-error": "Sorry, there was an unknown error while 
processing your request.",
        "gather-desc": "Component of Mobile Frontend allowing users to curate 
lists.",
        "gather-no-public-lists-title": "No public collections",
        "gather-no-public-lists-description": "There are no public collections 
for this user.",
diff --git a/i18n/qqq.json b/i18n/qqq.json
index 6dfdc6e..d5fcea6 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -53,6 +53,8 @@
        "gather-add-to-collection-confirm": "Label for button that user can 
click if they would like to add the current page to a collection",
        "gather-add-to-collection-cancel": "Label for button that user can 
click if they do not want to add to a collection.\n{{Identical|No thanks}}",
        "gather-remove-toast": "Message displayed when you remove an item from 
a collection. Parameters:\n* $1 - Name of collection.",
+       "gather-no-such-action": "Message used, if thse user tried to request a 
non-existent action on a collection.",
+       "gather-unknown-error": "Used as an error message, if there was an 
unknown error.",
        "gather-desc": 
"{{desc|name=Gather|url=https://www.mediawiki.org/wiki/Extension:Gather}}";,
        "gather-no-public-lists-title": "The title of the view shown when there 
are no public collections for a user.",
        "gather-no-public-lists-description": "The descriptive text explaining 
that there are no public collections for a user.",
diff --git a/resources/Resources.php b/resources/Resources.php
index f0f15e4..dd101b9 100644
--- a/resources/Resources.php
+++ b/resources/Resources.php
@@ -216,6 +216,9 @@
                'scripts' => array(
                        'ext.gather.special/init.js',
                ),
+               'messages' => array(
+                       'gather-no-such-action',
+               ),
        ),
 
        'ext.gather.lists' => $wgGatherMobileSpecialPageResourceBoilerplate + 
array(
diff --git a/resources/ext.gather.special/init.js 
b/resources/ext.gather.special/init.js
index 698b699..6c1ea20 100644
--- a/resources/ext.gather.special/init.js
+++ b/resources/ext.gather.special/init.js
@@ -2,6 +2,7 @@
 
        var CollectionEditOverlay = M.require( 
'ext.gather.edit/CollectionEditOverlay' ),
                CollectionDeleteOverlay = M.require( 
'ext.gather.delete/CollectionDeleteOverlay' ),
+               toast = M.require( 'toast' ),
                overlayManager = M.require( 'overlayManager' );
 
        /** Add routes for editing and deleting to the overlay manager */
@@ -10,10 +11,11 @@
                        id = parseInt( id, 10 );
                        var collection;
                        $.each( mw.config.get( 'wgGatherCollections' ), 
function () {
-                               if ( this.id === id && this.isWatchlist === 
false ) {
+                               if ( parseFloat( this.id ) === id && 
this.isWatchlist === false ) {
                                        collection = this;
                                }
                        } );
+
                        if ( collection ) {
                                if ( action === 'edit' ) {
                                        return new CollectionEditOverlay( {
@@ -23,9 +25,13 @@
                                        return new CollectionDeleteOverlay( {
                                                collection: collection
                                        } );
+                               } else {
+                                       toast.show( mw.msg( 
'gather-no-such-action' ), 'error' );
+                                       return $.Deferred();
                                }
                        } else {
-                               return null;
+                               toast.show( mw.msg( 'gather-unknown-error' ), 
'error' );
+                               return $.Deferred();
                        }
                } );
        }

-- 
To view, visit https://gerrit.wikimedia.org/r/199659
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib7db1d7ffbf276ceaa3baa869b357a96c12e61fb
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Gather
Gerrit-Branch: master
Gerrit-Owner: Florianschmidtwelzow <florian.schmidt.wel...@t-online.de>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to