Mooeypoo has uploaded a new change for review.

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

Change subject: Add a tool group to VE toolbar with Citoid
......................................................................

Add a tool group to VE toolbar with Citoid

Override the toolbarGroups to add in a toolGroupTool that is cite
and a group of specific citations.

Change-Id: I5f98aa74005efd273d78e837352a72851e773217
---
M Citoid.php
M i18n/en.json
M i18n/qqq.json
M modules/ve.ui.CiteFromIdInspectorTool.js
4 files changed, 68 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Citoid 
refs/changes/77/196077/1

diff --git a/Citoid.php b/Citoid.php
index 07fccb8..c0a070a 100644
--- a/Citoid.php
+++ b/Citoid.php
@@ -44,7 +44,8 @@
        ),
        'dependencies ' => array(
                'ext.visualEditor.mwreference',
-               'json'
+               'json',
+               'ext.visualEditor.viewPageTarget'
        ),
        'messages' => array(
                'citoid-520-error',
diff --git a/i18n/en.json b/i18n/en.json
index 0bddd6b..74b3b98 100644
--- a/i18n/en.json
+++ b/i18n/en.json
@@ -8,8 +8,8 @@
        "citoid-citeFromIDDialog-search-label": "URL or DOI",
        "citoid-citeFromIDDialog-search-placeholder": "e.g. 
http://www.example.com";,
        "citoid-citeFromIDDialog-search-progress": "Searching, please wait...",
-       "citoid-citeFromIDDialog-title": "Autofill citations by URL or DOI",
-       "citoid-citeFromIDTool-title": "Autofill from URL",
+       "citoid-citeFromIDDialog-title": "Add a citation",
+       "citoid-citeFromIDTool-title": "Cite",
        "citoid-desc": "Provides access points between the citoid service and 
MediaWiki",
        "citoid-typeMap-config-error": "Mediawiki:citoid-template-type-map.json 
is improperly configured.",
        "citoid-unknown-error": "An unknown error has occured that prevented us 
from creating a citation. Please try again later."
diff --git a/i18n/qqq.json b/i18n/qqq.json
index f4298f5..0e444bb 100644
--- a/i18n/qqq.json
+++ b/i18n/qqq.json
@@ -11,7 +11,7 @@
        "citoid-citeFromIDDialog-search-placeholder": "Placeholder for the 
URL/DOI search field.",
        "citoid-citeFromIDDialog-search-progress": "Message for when the search 
is in progress",
        "citoid-citeFromIDDialog-title": "The title displayed on the dialog",
-       "citoid-citeFromIDTool-title": "What the dialog is called in the menu",
+       "citoid-citeFromIDTool-title": "Label for the button to add a citation 
in the toolbar",
        "citoid-desc": 
"{{desc|name=Citoid|url=http://www.mediawiki.org/wiki/Citoid}}";,
        "citoid-typeMap-config-error": "Error message indicating 
Mediawiki:citoid-template-type-map.json either doesn't exist or contains 
errors.",
        "citoid-unknown-error": "Error message indicating that the service to 
create citations has returned an error or is temporarily malfunctioning, asking 
the user to try again later."
diff --git a/modules/ve.ui.CiteFromIdInspectorTool.js 
b/modules/ve.ui.CiteFromIdInspectorTool.js
index 2acb07f..d87fcc8 100644
--- a/modules/ve.ui.CiteFromIdInspectorTool.js
+++ b/modules/ve.ui.CiteFromIdInspectorTool.js
@@ -1,5 +1,67 @@
 ( function () {
 
+       // Don't create tool unless the configuration message is present
+       try {
+               JSON.parse( mw.message( 'citoid-template-type-map.json' 
).plain() );
+       } catch ( e ) {
+               return;
+       }
+
+       /**
+        * HACK: Rebuild the toolbarGroups to represent citoid and the
+        * dropdown menu for cite tools.
+        */
+       ve.init.mw.Target.static.toolbarGroups = ( function () {
+               var tool,
+                       index = 4,
+                       toolGroups = ve.copy( 
ve.init.mw.Target.static.toolbarGroups );
+
+               // Instead of using the rigid position of the group,
+               // downgrade this hack from horrific to somewhat less horrific 
by
+               // looking through the object to find what we actually need
+               // to replace. This way, if toolbarGroups are changed in VE code
+               // we won't have to manually change the index here.
+               for ( tool in toolGroups ) {
+                       if ( ve.getProp( toolGroups[tool], 'include', 0, 
'group', 'cite' ) ) {
+                               index = tool;
+                               break;
+                       }
+               }
+
+               toolGroups[ index ] = {
+                       header: OO.ui.deferMsg( 
'visualeditor-toolbar-cite-group' ),
+                       title: OO.ui.deferMsg( 
'visualeditor-toolbar-cite-group-tooltip' ),
+                       include: [ 'citefromid', 'moreCiteTool' ]
+               };
+               return toolGroups;
+       }() );
+
+       /**
+        * MediaWiki UserInterface citation tool group
+        *
+        * @class
+        * @extends OO.ui.ToolGroupTool
+        * @constructor
+        * @param {OO.ui.ToolGroup} toolGroup
+        * @param {Object} [config] Configuration options
+        */
+       ve.ui.MoreCiteTool = function VeUiMoreCiteTool( toolGroup, config ) {
+               OO.ui.ToolGroupTool.call( this, toolGroup, config );
+       };
+       OO.inheritClass( ve.ui.MoreCiteTool, OO.ui.ToolGroupTool );
+       ve.ui.MoreCiteTool.static.autoAddToCatchall = false;
+       ve.ui.MoreCiteTool.static.name = 'moreCiteTool';
+       ve.ui.MoreCiteTool.static.group = 'citeTools';
+       ve.ui.MoreCiteTool.static.title =
+               OO.ui.deferMsg( 'visualeditor-toolbar-cite-tooltip' );
+       ve.ui.MoreCiteTool.static.groupConfig = {
+               indicator: 'down',
+               title: OO.ui.deferMsg( 
'visualeditor-toolbar-cite-group-tooltip' ),
+               include: [ { group: 'cite' }, 'reference', 'reference/existing' 
],
+               demote: [ 'reference', 'reference/existing' ]
+       };
+       ve.ui.toolFactory.register( ve.ui.MoreCiteTool );
+
        /**
         * MediaWiki UserInterface cite from ID inspector tool.
         *
@@ -11,13 +73,6 @@
         * @param {Object} [config] Configuration options
         */
 
-       // Don't create tool unless the configuration message is present
-       try {
-               JSON.parse( mw.message( 'citoid-template-type-map.json' 
).plain() );
-       } catch ( e ) {
-               return;
-       }
-
        ve.ui.CiteFromIdInspectorTool = function VeUiCiteFromIdInspectorTool( 
toolGroup, config ) {
                ve.ui.InspectorTool.call( this, toolGroup, config );
        };
@@ -27,6 +82,7 @@
        ve.ui.CiteFromIdInspectorTool.static.name = 'citefromid';
        ve.ui.CiteFromIdInspectorTool.static.icon = 'ref-cite-web';
        ve.ui.CiteFromIdInspectorTool.static.title = OO.ui.deferMsg( 
'citoid-citeFromIDTool-title' );
+       ve.ui.CiteFromIdInspectorTool.static.label = OO.ui.deferMsg( 
'citoid-citeFromIDTool-title' );
        ve.ui.CiteFromIdInspectorTool.static.group = 'cite';
        ve.ui.CiteFromIdInspectorTool.static.commandName = 'citefromid';
 

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5f98aa74005efd273d78e837352a72851e773217
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Citoid
Gerrit-Branch: master
Gerrit-Owner: Mooeypoo <mor...@gmail.com>

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

Reply via email to