Daniel Werner has submitted this change and it was merged.

Change subject: Simplified toolbar definition
......................................................................


Simplified toolbar definition

To define a toolbar's interaction widget, it is sufficient to specify the 
interaction
widgets full name in the toolbar definition instead of additionally referencing 
its
prototype.

Change-Id: I67a14bfd5319d07fdbcb1893cb443a67c4c50e42
---
M lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
M lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
M lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
M lib/resources/jquery.wikibase/toolbar/toolbarcontroller.definitions.js
4 files changed, 19 insertions(+), 27 deletions(-)

Approvals:
  Daniel Werner: Verified; Looks good to me, approved
  jenkins-bot: Checked



diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
index 2bb402c..753e1ad 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.claimlistview.js
@@ -390,10 +390,7 @@
 var widgetPrototype = $.wikibase.claimlistview.prototype;
 
 $.wikibase.toolbarcontroller.definition( 'addtoolbar', {
-       widget: {
-               name: 'wikibase.claimlistview',
-               prototype: widgetPrototype
-       },
+       widgetName: 'wikibase.claimlistview',
        options: {
                interactionWidgetName: widgetPrototype.widgetName
        }
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
index b59180f..f7a2e36 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.referenceview.js
@@ -200,10 +200,7 @@
 
 // Register toolbars:
 $.wikibase.toolbarcontroller.definition( 'edittoolbar', {
-       widget: {
-               name: 'wikibase.referenceview',
-               prototype: $.wikibase.referenceview.prototype
-       },
+       widgetName: 'wikibase.referenceview',
        options: {
                interactionWidgetName: 
$.wikibase.referenceview.prototype.widgetName
        }
diff --git a/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js 
b/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
index 151e320..eb7d634 100644
--- a/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
+++ b/lib/resources/jquery.wikibase/jquery.wikibase.statementview.js
@@ -288,10 +288,7 @@
 
 // Register toolbars:
 $.wikibase.toolbarcontroller.definition( 'edittoolbar', {
-       widget: {
-               name: 'wikibase.statementview',
-               prototype: $.wikibase.statementview.prototype
-       },
+       widgetName: 'wikibase.statementview',
        events: {
                statementviewchange: function( event ) {
                        var $target = $( event.target ),
diff --git 
a/lib/resources/jquery.wikibase/toolbar/toolbarcontroller.definitions.js 
b/lib/resources/jquery.wikibase/toolbar/toolbarcontroller.definitions.js
index 9ef517b..d43f57f 100644
--- a/lib/resources/jquery.wikibase/toolbar/toolbarcontroller.definitions.js
+++ b/lib/resources/jquery.wikibase/toolbar/toolbarcontroller.definitions.js
@@ -24,10 +24,8 @@
         * $.wikibase.toolbarcontroller.definition(
         *   'addtoolbar', // the toolbar type
         *   {
-        *     widget: { // the referenced widget that needs to be able to 
interface to the toolbar type
-        *       name: 'wikibase.claimlistview', // <namespace>.<name> of the 
widget
-        *       prototype: $.wikibase.claimlistview.prototype
-        *     },
+        *     widgetName: 'wikibase.claimlistview',// <namespace>.<name> of 
the referenced widget that
+        *                                          // needs to be able to 
interface to the toolbar type
         *     options: { // options passed to the toolbar
         *       toolbarParentSelector: '.wb-claims-toolbar'
         *     }
@@ -59,11 +57,9 @@
         * @param {Object} toolbarDefinitionOrId Object defining a toolbar that 
should be set or a
         *        toolbar id/widget name to get a registered toolbar definition.
         *        A toolbar definition may contain the following attributes:
-        *        - widget
-        *          An object referencing the widget the toolbar shall interact 
with, for example:
-        *          { name: 'wikibase.claimlistview', prototype: 
$.wikibase.claimlistview.prototype }
-        *          Having defined an interaction widget, no other attributes 
(except fot the options)
-        *          need to be defined.
+        *        - widgetName
+        *          The full name of the widget the toolbar shall interact 
with. Having defined an
+        *          interaction widget, no other attributes (except fot the 
options) need to be defined.
         *        - options
         *          Options passed to the toolbar widget.
         *        - id
@@ -116,19 +112,24 @@
                }
                // SET new definition
                var toolbarDefinition = toolbarDefinitionOrId,
-                       id = toolbarDefinition.id || 
toolbarDefinition.widget.name;
+                       id = toolbarDefinition.id || 
toolbarDefinition.widgetName;
 
                if ( !id ) {
                        throw new Error( 'jquery.wikibase.toolbarcontroller: 
Either an id or a widget ' +
                                'name is necessary to register a toolbar' );
                }
 
-               if ( toolbarDefinition.widget ) {
-                       var widget = toolbarDefinition.widget;
-                       widget.namespace = widget.name.split( '.' )[ 0 ];
-                       widget.name = widget.name.split( '.' )[ 1 ];
+               if ( toolbarDefinition.widgetName ) {
+                       var name = toolbarDefinition.widgetName,
+                               widget = {};
+
+                       widget.namespace = name.split( '.' )[ 0 ];
+                       widget.name = name.split( '.' )[ 1 ];
                        widget.fullName = widget.namespace + '-' + widget.name;
-                       id = widget.prototype.widgetName;
+                       widget.prototype = $[ widget.namespace ][ widget.name 
].prototype;
+                       toolbarDefinition.widget = widget;
+
+                       id = widget.name;
                }
 
                if ( !toolbarDefinitions[type] ) {

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I67a14bfd5319d07fdbcb1893cb443a67c4c50e42
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <henning.sna...@wikimedia.de>
Gerrit-Reviewer: Daniel Werner <daniel.wer...@wikimedia.de>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to