]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListCommand.js
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / extensions / Cite / modules / ve-cite / ve.ui.MWReferencesListCommand.js
diff --git a/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListCommand.js b/extensions/Cite/modules/ve-cite/ve.ui.MWReferencesListCommand.js
new file mode 100644 (file)
index 0000000..eac79ea
--- /dev/null
@@ -0,0 +1,61 @@
+/*!
+ * VisualEditor UserInterface MediaWiki ReferencesListCommand class.
+ *
+ * @copyright 2011-2017 Cite VisualEditor Team and others; see AUTHORS.txt
+ * @license The MIT License (MIT); see LICENSE.txt
+ */
+
+/**
+ * References list command.
+ *
+ * If a references list node is selected, opens the dialog to edit it.
+ * Otherwise inserts the references list for the default group.
+ *
+ * @class
+ * @extends ve.ui.Command
+ *
+ * @constructor
+ */
+ve.ui.MWReferencesListCommand = function VeUiMWReferencesListCommand() {
+       // Parent constructor
+       ve.ui.MWReferencesListCommand.super.call(
+               this, 'referencesList', null, null,
+               { supportedSelections: [ 'linear' ] }
+       );
+};
+
+/* Inheritance */
+
+OO.inheritClass( ve.ui.MWReferencesListCommand, ve.ui.Command );
+
+/* Methods */
+
+/**
+ * @inheritdoc
+ */
+ve.ui.MWReferencesListCommand.prototype.execute = function ( surface ) {
+       var fragment = surface.getModel().getFragment(),
+               selectedNode = fragment.getSelectedNode(),
+               isReflistNodeSelected = selectedNode && selectedNode instanceof ve.dm.MWReferencesListNode;
+
+       if ( isReflistNodeSelected ) {
+               return surface.execute( 'window', 'open', 'referencesList' );
+       } else {
+               fragment.collapseToEnd().insertContent( [
+                       {
+                               type: 'mwReferencesList',
+                               attributes: {
+                                       listGroup: 'mwReference/',
+                                       refGroup: '',
+                                       isResponsive: mw.config.get( 'wgCiteResponsiveReferences' )
+                               }
+                       },
+                       { type: '/mwReferencesList' }
+               ] );
+               return true;
+       }
+};
+
+/* Registration */
+
+ve.ui.commandRegistry.register( new ve.ui.MWReferencesListCommand() );