mediawiki-extensions-Visual.../VisualEditor.php

1721 lines
67 KiB
PHP
Raw Normal View History

2011-11-28 20:28:28 +00:00
<?php
2011-11-28 20:28:28 +00:00
/**
* VisualEditor extension
*
* This PHP entry point is deprecated. Please use wfLoadExtension() and the extension.json file
* instead. See https://www.mediawiki.org/wiki/Manual:Extension_registration for more details.
*
2011-11-28 20:28:28 +00:00
* @file
* @ingroup Extensions
* @copyright 2011-2015 VisualEditor Team and others; see AUTHORS.txt
* @license The MIT License (MIT); see LICENSE.txt
2011-11-28 20:28:28 +00:00
*/
/* Setup */
$wgExtensionCredits['other'][] = array(
'path' => __FILE__,
'name' => 'VisualEditor',
'author' => array(
'Alex Monk',
'Bartosz Dziewoński',
'Christian Williams',
'David Chan',
'Ed Sanders',
2011-11-28 20:28:28 +00:00
'Inez Korczyński',
'James D. Forrester',
'Moriel Schottlender',
2011-11-28 20:28:28 +00:00
'Roan Kattouw',
'Rob Moen',
'Sucheta Ghoshal',
'Timo Tijhof',
'Trevor Parscal',
'...',
2011-11-28 20:28:28 +00:00
),
'version' => '0.1.0',
'url' => 'https://www.mediawiki.org/wiki/Extension:VisualEditor',
2011-11-28 20:28:28 +00:00
'descriptionmsg' => 'visualeditor-desc',
'license-name' => 'MIT',
2011-11-28 20:28:28 +00:00
);
$dir = __DIR__ . '/';
// Register files
$wgAutoloadClasses['ApiVisualEditor'] = $dir . 'ApiVisualEditor.php';
$wgAutoloadClasses['ApiVisualEditorEdit'] = $dir . 'ApiVisualEditorEdit.php';
$wgAutoloadClasses['VisualEditorHooks'] = $dir . 'VisualEditor.hooks.php';
$wgAutoloadClasses['VisualEditorDataModule'] = $dir . 'VisualEditorDataModule.php';
$wgAutoloadClasses['VisualEditorViewPageTargetInitModule'] =
$dir . 'VisualEditorViewPageTargetInitModule.php';
$wgMessagesDirs['VisualEditor'] = array(
__DIR__ . '/lib/ve/i18n',
__DIR__ . '/modules/ve-mw/i18n',
__DIR__ . '/modules/ve-wmf/i18n'
);
2011-11-28 20:28:28 +00:00
// Register API modules
$wgAPIModules['visualeditor'] = array(
'class' => 'ApiVisualEditor',
'factory' => 'VisualEditorHooks::VisualEditorApiFactory',
);
$wgAPIModules['visualeditoredit'] = array(
'class' => 'ApiVisualEditorEdit',
'factory' => 'VisualEditorHooks::VisualEditorApiFactory',
);
// Register Config instance
$wgConfigRegistry['visualeditor'] = 'GlobalVarConfig::newInstance';
// Register Hooks
$wgHooks['BeforePageDisplay'][] = 'VisualEditorHooks::onBeforePageDisplay';
$wgHooks['ContentHandlerDefaultModelFor'][] = 'VisualEditorHooks::onContentHandlerDefaultModelFor';
$wgHooks['SkinEditSectionLinks'][] = 'VisualEditorHooks::onSkinEditSectionLinks';
$wgHooks['GetBetaFeaturePreferences'][] = 'VisualEditorHooks::onGetBetaPreferences';
$wgHooks['GetPreferences'][] = 'VisualEditorHooks::onGetPreferences';
$wgHooks['ListDefinedTags'][] = 'VisualEditorHooks::onListDefinedTags';
$wgHooks['ChangeTagsListActive'][] = 'VisualEditorHooks::onListDefinedTags';
$wgHooks['MakeGlobalVariablesScript'][] = 'VisualEditorHooks::onMakeGlobalVariablesScript';
$wgHooks['RedirectSpecialArticleRedirectParams'][] =
'VisualEditorHooks::onRedirectSpecialArticleRedirectParams';
$wgHooks['ResourceLoaderGetConfigVars'][] = 'VisualEditorHooks::onResourceLoaderGetConfigVars';
$wgHooks['ResourceLoaderRegisterModules'][] = 'VisualEditorHooks::onResourceLoaderRegisterModules';
$wgHooks['ResourceLoaderTestModules'][] = 'VisualEditorHooks::onResourceLoaderTestModules';
Move edit tab generation into PHP and make it more configurable * Generate the edit tabs and the section edit links in PHP, with a fallback in JS for cases where we don't have them yet due to caching. But only change things if VE is enabled, and have the JS correct the state if the wrong cached HTML comes through. * Make the order of the tabs/links and the messages to use as captions configurable * Make the edit tabs and section edit links always be present in the page (regardless of namespace, user prefs, etc.) but be hidden and have JS unhide them (using html.ve-available) if appropriate * Add appendix messages so we can do a superscript "beta" even in places where we can't use HTML in the message VisualEditor.php: * Add new hook registrations * Remove edit link caption messages from the init init module because they're now added dynamically in VisualEditor.hooks.php * Add a noscript CSS module so we can hide some things in JS-less environments * Remove $wgVisualEditorTabLayout and replace it with $wgVisualEditorPosition * Add config vars for link captions, with null causing us to use the default caption * Add config vars for link caption appendices. Too many config vars but we'll clean that up later VisualEditor.hooks.php: * Dynamically add tab messages to the init init module * Remove unused globals in onBeforePageDisplay() * Add noscript CSS module * Add a SkinTemplateNavigation hook that changes and reorders the edit tabs as appropriate * Add a DoEditSectionLink hook that overwrites the edit section links * Export the new config variables to JS VisualEditor.i18n.php: * Add beta appendix message * Add a message for the default VE edit section link ve.init.mw.ViewPageTarget.init.css: * Remove the animation on the edit section links * Darken the color of the brackets and the pipe from #ccc to #555 * Style the beta message to be superscript-like (but not real <sup> to avoid moving the baseline) ve.init.mw.ViewPageTarget.noscript.css: * Hide the VE edit tab, the pipe and the VE edit section link initally unless and until JS unhides ve.init.mw.ViewPageTarget.init.js: * Toggle .ve-not-available / .ve-available * Edit tabs ** Only generate the the edit tabs if they're not already there from PHP ** Rewrite the edit tab generation to mirror what's being done in PHP * Section edit links ** Same as for edit tabs ** Also add mw-visualeditor-expanded to pad the brackets ve.init.mw.ViewPageTarget.js: * #ca-ve-edit is now always the VE tab (and #ca-edit always the edit source tab) so update the .selected behavior accordingly Change-Id: Idcb15faea7fabe5fe7578b1508079969b27d2469
2013-08-01 19:14:41 +00:00
$wgHooks['SkinTemplateNavigation'][] = 'VisualEditorHooks::onSkinTemplateNavigation';
$wgHooks['ParserTestGlobals'][] = 'VisualEditorHooks::onParserTestGlobals';
$wgHooks['EditPage::showEditForm:fields'][] = 'VisualEditorHooks::onEditPageShowEditFormFields';
$wgHooks['PageContentSaveComplete'][] = 'VisualEditorHooks::onPageContentSaveComplete';
$wgHooks['BeforeInitialize'][] = 'VisualEditorHooks::onBeforeInitialize';
$wgExtensionFunctions[] = 'VisualEditorHooks::onSetup';
// Run split test in production if $wgVisualEditorEnableSplitTest is true.
$wgHooks['AddNewAccount'][] = 'VisualEditorHooks::onAddNewAccount';
// Register resource modules
2011-11-28 20:28:28 +00:00
$wgVisualEditorResourceTemplate = array(
'localBasePath' => __DIR__,
'remoteExtPath' => 'VisualEditor',
2011-11-28 20:28:28 +00:00
);
$wgResourceModules += array(
'Base64.js' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'lib/Base64.js/base64.js',
),
'targets' => array( 'desktop', 'mobile' ),
),
// This includes typed arrays and base64 polyfills for IE9
// All the other polyfills Easy-Deflate provides are
// already VE requirements.
'easy-deflate.core' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'lib/Easy-Deflate/easydeflate.js',
'lib/Easy-Deflate/typedarrays.js',
),
'dependencies' => array(
'Base64.js'
),
'targets' => array( 'desktop', 'mobile' ),
),
'easy-deflate.deflate' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'lib/Easy-Deflate/deflate.js',
),
'dependencies' => array(
'easy-deflate.core'
),
'targets' => array( 'desktop', 'mobile' ),
),
'unicodejs' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'lib/ve/lib/unicodejs/unicodejs.js',
),
'targets' => array( 'desktop', 'mobile' ),
),
// Back compat alias, can be removed after October 2014 or so
'unicodejs.wordbreak' => $wgVisualEditorResourceTemplate + array(
'dependencies' => 'unicodejs'
),
'papaparse' => $wgVisualEditorResourceTemplate + array(
'scripts' => 'lib/ve/lib/papaparse/papaparse.js',
'targets' => array( 'desktop', 'mobile' ),
),
'rangefix' => $wgVisualEditorResourceTemplate + array(
'scripts' => 'lib/ve/lib/rangefix/rangefix.js',
'targets' => array( 'desktop', 'mobile' )
),
'ext.visualEditor.viewPageTarget.init' => $wgVisualEditorResourceTemplate + array(
'class' => 'VisualEditorViewPageTargetInitModule',
'scripts' => 'modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.init.js',
'styles' => 'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget.init.css',
'dependencies' => array(
'jquery.client',
'mediawiki.page.startup',
'mediawiki.Title',
'mediawiki.Uri',
'mediawiki.util',
'user.options',
'ext.visualEditor.track',
),
'messages' => array(
'accesskey-ca-editsource',
'accesskey-ca-ve-edit',
'accesskey-save',
'pipe-separator',
'tooltip-ca-createsource',
'tooltip-ca-editsource',
'tooltip-ca-ve-edit',
'visualeditor-ca-editsource-section',
'postedit-confirmation-created',
'postedit-confirmation-restored',
'postedit-confirmation-saved',
),
'position' => 'top',
),
Move edit tab generation into PHP and make it more configurable * Generate the edit tabs and the section edit links in PHP, with a fallback in JS for cases where we don't have them yet due to caching. But only change things if VE is enabled, and have the JS correct the state if the wrong cached HTML comes through. * Make the order of the tabs/links and the messages to use as captions configurable * Make the edit tabs and section edit links always be present in the page (regardless of namespace, user prefs, etc.) but be hidden and have JS unhide them (using html.ve-available) if appropriate * Add appendix messages so we can do a superscript "beta" even in places where we can't use HTML in the message VisualEditor.php: * Add new hook registrations * Remove edit link caption messages from the init init module because they're now added dynamically in VisualEditor.hooks.php * Add a noscript CSS module so we can hide some things in JS-less environments * Remove $wgVisualEditorTabLayout and replace it with $wgVisualEditorPosition * Add config vars for link captions, with null causing us to use the default caption * Add config vars for link caption appendices. Too many config vars but we'll clean that up later VisualEditor.hooks.php: * Dynamically add tab messages to the init init module * Remove unused globals in onBeforePageDisplay() * Add noscript CSS module * Add a SkinTemplateNavigation hook that changes and reorders the edit tabs as appropriate * Add a DoEditSectionLink hook that overwrites the edit section links * Export the new config variables to JS VisualEditor.i18n.php: * Add beta appendix message * Add a message for the default VE edit section link ve.init.mw.ViewPageTarget.init.css: * Remove the animation on the edit section links * Darken the color of the brackets and the pipe from #ccc to #555 * Style the beta message to be superscript-like (but not real <sup> to avoid moving the baseline) ve.init.mw.ViewPageTarget.noscript.css: * Hide the VE edit tab, the pipe and the VE edit section link initally unless and until JS unhides ve.init.mw.ViewPageTarget.init.js: * Toggle .ve-not-available / .ve-available * Edit tabs ** Only generate the the edit tabs if they're not already there from PHP ** Rewrite the edit tab generation to mirror what's being done in PHP * Section edit links ** Same as for edit tabs ** Also add mw-visualeditor-expanded to pad the brackets ve.init.mw.ViewPageTarget.js: * #ca-ve-edit is now always the VE tab (and #ca-edit always the edit source tab) so update the .selected behavior accordingly Change-Id: Idcb15faea7fabe5fe7578b1508079969b27d2469
2013-08-01 19:14:41 +00:00
'ext.visualEditor.viewPageTarget.noscript' => $wgVisualEditorResourceTemplate + array(
'position' => 'top',
'styles' => 'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget.noscript.css',
Move edit tab generation into PHP and make it more configurable * Generate the edit tabs and the section edit links in PHP, with a fallback in JS for cases where we don't have them yet due to caching. But only change things if VE is enabled, and have the JS correct the state if the wrong cached HTML comes through. * Make the order of the tabs/links and the messages to use as captions configurable * Make the edit tabs and section edit links always be present in the page (regardless of namespace, user prefs, etc.) but be hidden and have JS unhide them (using html.ve-available) if appropriate * Add appendix messages so we can do a superscript "beta" even in places where we can't use HTML in the message VisualEditor.php: * Add new hook registrations * Remove edit link caption messages from the init init module because they're now added dynamically in VisualEditor.hooks.php * Add a noscript CSS module so we can hide some things in JS-less environments * Remove $wgVisualEditorTabLayout and replace it with $wgVisualEditorPosition * Add config vars for link captions, with null causing us to use the default caption * Add config vars for link caption appendices. Too many config vars but we'll clean that up later VisualEditor.hooks.php: * Dynamically add tab messages to the init init module * Remove unused globals in onBeforePageDisplay() * Add noscript CSS module * Add a SkinTemplateNavigation hook that changes and reorders the edit tabs as appropriate * Add a DoEditSectionLink hook that overwrites the edit section links * Export the new config variables to JS VisualEditor.i18n.php: * Add beta appendix message * Add a message for the default VE edit section link ve.init.mw.ViewPageTarget.init.css: * Remove the animation on the edit section links * Darken the color of the brackets and the pipe from #ccc to #555 * Style the beta message to be superscript-like (but not real <sup> to avoid moving the baseline) ve.init.mw.ViewPageTarget.noscript.css: * Hide the VE edit tab, the pipe and the VE edit section link initally unless and until JS unhides ve.init.mw.ViewPageTarget.init.js: * Toggle .ve-not-available / .ve-available * Edit tabs ** Only generate the the edit tabs if they're not already there from PHP ** Rewrite the edit tab generation to mirror what's being done in PHP * Section edit links ** Same as for edit tabs ** Also add mw-visualeditor-expanded to pad the brackets ve.init.mw.ViewPageTarget.js: * #ca-ve-edit is now always the VE tab (and #ca-edit always the edit source tab) so update the .selected behavior accordingly Change-Id: Idcb15faea7fabe5fe7578b1508079969b27d2469
2013-08-01 19:14:41 +00:00
),
Load RL modules in one load.php request, rather than in two stages This introduces TargetLoader, which manages plugins and RL modules in a slightly more generic fashion so that Targets themselves don't have to. This allows us to load all RL modules in one load.php request, rather than first loading ViewPageTarget which then loads the other modules. TargetLoader loads in the bottom queue, so it will be loaded as part of the main load.php request, but in VPT.init.js we still have to wait for it with using() because it might not have arrived yet. This also degrades gracefully on cached pages where TargetLoader isn't in the bottom queue: it'll be loaded as a separate request instead, which is suboptimal but no worse that what we were doing before. Right now TargetLoader is small enough that it could also be in the top queue, but in the future we want to add things like the action=visualeditor API request to it, and mw.Api is relatively big. Note: this also makes a breaking change to the plugin API: plugin callbacks no longer receive the target instance as a parameter, as they're now executed before the target has been constructed rather than after. In the long term, if we want to give plugins access to the target instance, we could give them the target promise somehow. For now, I've killed this feature because nothing used it and the change from a direct object reference to a promise would have been a breaking change anyway. Also fixed incorrect documentation index for ve.init.mw.ViewPageTarget.init. Bug: T53569 Change-Id: Ibfa6abbeaf872ae2aadc6ed9d5beba7473ea441a
2015-02-26 01:22:44 +00:00
'ext.visualEditor.targetLoader' => $wgVisualEditorResourceTemplate + array(
'scripts' => 'modules/ve-mw/init/ve.init.mw.TargetLoader.js',
'dependencies' => array(
'ext.visualEditor.track',
'mediawiki.api'
Load RL modules in one load.php request, rather than in two stages This introduces TargetLoader, which manages plugins and RL modules in a slightly more generic fashion so that Targets themselves don't have to. This allows us to load all RL modules in one load.php request, rather than first loading ViewPageTarget which then loads the other modules. TargetLoader loads in the bottom queue, so it will be loaded as part of the main load.php request, but in VPT.init.js we still have to wait for it with using() because it might not have arrived yet. This also degrades gracefully on cached pages where TargetLoader isn't in the bottom queue: it'll be loaded as a separate request instead, which is suboptimal but no worse that what we were doing before. Right now TargetLoader is small enough that it could also be in the top queue, but in the future we want to add things like the action=visualeditor API request to it, and mw.Api is relatively big. Note: this also makes a breaking change to the plugin API: plugin callbacks no longer receive the target instance as a parameter, as they're now executed before the target has been constructed rather than after. In the long term, if we want to give plugins access to the target instance, we could give them the target promise somehow. For now, I've killed this feature because nothing used it and the change from a direct object reference to a promise would have been a breaking change anyway. Also fixed incorrect documentation index for ve.init.mw.ViewPageTarget.init. Bug: T53569 Change-Id: Ibfa6abbeaf872ae2aadc6ed9d5beba7473ea441a
2015-02-26 01:22:44 +00:00
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.viewPageTarget' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/init/targets/ve.init.mw.ViewPageTarget.js',
),
'styles' => array(
'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget.css',
),
'skinStyles' => array(
'vector' => array(
'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget-shared.css',
'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget-vector.css',
),
'apex' => array(
'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget-shared.css',
'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget-apex.css',
),
'monobook' => array(
'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget-shared.css',
'modules/ve-mw/init/styles/ve.init.mw.ViewPageTarget-monobook.css',
)
),
'dependencies' => array(
'ext.visualEditor.base',
'ext.visualEditor.mediawiki',
'ext.visualEditor.core.desktop',
'mediawiki.jqueryMsg',
'mediawiki.util',
),
'messages' => array(
// MW core messages
'creating',
'editing',
'lastmodifiedat',
'parentheses',
'redirectpagesub',
'spamprotectionmatch',
'spamprotectiontext',
'summary-preview',
// Messages needed by VE in init phase only (rest go below)
'visualeditor-loadwarning',
'visualeditor-loadwarning-token',
'visualeditor-savedialog-identify-anon',
'visualeditor-savedialog-identify-user',
'visualeditor-timeout',
'visualeditor-saveerror-titleblacklist',
),
),
'ext.visualEditor.mobileViewTarget' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/init/targets/ve.init.mw.MobileViewTarget.js',
),
'styles' => array(
'modules/ve-mw/init/styles/ve.init.mw.MobileViewTarget.css',
),
'dependencies' => array(
'ext.visualEditor.base',
'ext.visualEditor.mediawiki.mobile',
'ext.visualEditor.core.mobile',
'ext.visualEditor.mwimage.core',
),
'targets' => array( 'mobile' ),
),
'ext.visualEditor.ve' => $wgVisualEditorResourceTemplate + array(
'scripts' => 'lib/ve/src/ve.js',
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.track' => $wgVisualEditorResourceTemplate + array(
'scripts' => 'lib/ve/src/ve.track.js',
'dependencies' => 'ext.visualEditor.ve',
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.base' => $wgVisualEditorResourceTemplate + array(
2011-11-28 20:28:28 +00:00
'scripts' => array(
// ve
'lib/ve/src/ve.utils.js',
'lib/ve/src/ve.TriggerListener.js',
// init
'lib/ve/src/init/ve.init.js',
'lib/ve/src/init/ve.init.Platform.js',
'lib/ve/src/init/ve.init.Target.js',
),
'debugScripts' => array(
'lib/ve/src/ve.debug.js',
),
'dependencies' => array(
'oojs',
'oojs-ui',
'unicodejs',
'ext.visualEditor.ve',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mediawiki' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
// init
'modules/ve-mw/init/ve.init.mw.js',
'modules/ve-mw/init/ve.init.mw.ApiResponseCache.js',
'modules/ve-mw/init/ve.init.mw.LinkCache.js',
'modules/ve-mw/init/ve.init.mw.ImageInfoCache.js',
'modules/ve-mw/init/ve.init.mw.Platform.js',
'modules/ve-mw/init/ve.init.mw.Platform.init.js',
'modules/ve-mw/init/ve.init.mw.Target.js',
'modules/ve-mw/init/ve.init.mw.TargetEvents.js',
'modules/ve-mw/init/ve.init.mw.trackSubscriber.js',
),
'styles' => array(
'modules/ve-mw/init/styles/ve.init.mw.Target.css',
),
'dependencies' => array(
'jquery.byteLength',
'jquery.client',
'mediawiki.api',
'mediawiki.language',
'mediawiki.Title',
'mediawiki.Uri',
'mediawiki.user',
'mediawiki.util',
'user.options',
'user.tokens',
'moment',
'ext.visualEditor.base',
'ext.visualEditor.track',
'ext.visualEditor.targetLoader',
'jquery.uls.data',
),
'messages' => array(
'visualeditor-quick-access-characters.json',
'visualeditor-special-characters-group-other'
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mediawiki.mobile' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/ui/ve.ui.MWMobileContext.js',
'modules/ve-mw/ui/ve.ui.MWMobileSurface.js',
),
'dependencies' => array(
'ext.visualEditor.mediawiki',
'ext.visualEditor.core.mobile',
),
'targets' => array( 'mobile' ),
),
'ext.visualEditor.standalone' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
// init
'lib/ve/src/init/sa/ve.init.sa.js',
'lib/ve/src/init/sa/ve.init.sa.Platform.js',
'lib/ve/src/init/sa/ve.init.sa.Target.js',
),
'styles' => array(
'lib/ve/src/init/sa/styles/ve.init.sa.css'
),
'dependencies' => array(
'ext.visualEditor.base',
'jquery.i18n',
'jquery.uls.data',
),
),
'ext.visualEditor.data' => $wgVisualEditorResourceTemplate + array(
'class' => 'VisualEditorDataModule',
),
'ext.visualEditor.core' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
// ve
'lib/ve/src/ve.Range.js',
'lib/ve/src/ve.Node.js',
'lib/ve/src/ve.BranchNode.js',
'lib/ve/src/ve.LeafNode.js',
'lib/ve/src/ve.Document.js',
'lib/ve/src/ve.EventSequencer.js',
// dm
'lib/ve/src/dm/ve.dm.js',
'lib/ve/src/dm/ve.dm.Model.js',
'lib/ve/src/dm/ve.dm.ModelRegistry.js',
'lib/ve/src/dm/ve.dm.ModelFactory.js',
'lib/ve/src/dm/ve.dm.NodeFactory.js',
'lib/ve/src/dm/ve.dm.AnnotationFactory.js',
'lib/ve/src/dm/ve.dm.AnnotationSet.js',
'lib/ve/src/dm/ve.dm.MetaItemFactory.js',
'lib/ve/src/dm/ve.dm.Node.js',
'lib/ve/src/dm/ve.dm.ClassAttributeNode.js',
'lib/ve/src/dm/ve.dm.AlignableNode.js',
'lib/ve/src/dm/ve.dm.FocusableNode.js',
'lib/ve/src/dm/ve.dm.Scalable.js',
'lib/ve/src/dm/ve.dm.APIResultsProvider.js',
'lib/ve/src/dm/ve.dm.APIResultsQueue.js',
'lib/ve/src/dm/ve.dm.ResizableNode.js',
'lib/ve/src/dm/ve.dm.BranchNode.js',
'lib/ve/src/dm/ve.dm.ContentBranchNode.js',
'lib/ve/src/dm/ve.dm.LeafNode.js',
'lib/ve/src/dm/ve.dm.Annotation.js',
'lib/ve/src/dm/ve.dm.InternalList.js',
'lib/ve/src/dm/ve.dm.MetaItem.js',
'lib/ve/src/dm/ve.dm.MetaList.js',
'lib/ve/src/dm/ve.dm.TableMatrix.js',
'lib/ve/src/dm/ve.dm.TransactionProcessor.js',
'lib/ve/src/dm/ve.dm.Transaction.js',
'lib/ve/src/dm/ve.dm.Selection.js',
'lib/ve/src/dm/ve.dm.Surface.js',
'lib/ve/src/dm/ve.dm.SurfaceFragment.js',
'lib/ve/src/dm/ve.dm.DataString.js',
'lib/ve/src/dm/ve.dm.Document.js',
'lib/ve/src/dm/ve.dm.DocumentSlice.js',
'lib/ve/src/dm/ve.dm.LinearData.js',
'lib/ve/src/dm/ve.dm.DocumentSynchronizer.js',
'lib/ve/src/dm/ve.dm.IndexValueStore.js',
'lib/ve/src/dm/ve.dm.Converter.js',
'lib/ve/src/dm/selections/ve.dm.LinearSelection.js',
'lib/ve/src/dm/selections/ve.dm.NullSelection.js',
'lib/ve/src/dm/selections/ve.dm.TableSelection.js',
'lib/ve/src/dm/lineardata/ve.dm.FlatLinearData.js',
'lib/ve/src/dm/lineardata/ve.dm.ElementLinearData.js',
'lib/ve/src/dm/lineardata/ve.dm.MetaLinearData.js',
'lib/ve/src/dm/nodes/ve.dm.GeneratedContentNode.js',
'lib/ve/src/dm/nodes/ve.dm.AlienNode.js',
'lib/ve/src/dm/nodes/ve.dm.BlockquoteNode.js',
'lib/ve/src/dm/nodes/ve.dm.BreakNode.js',
'lib/ve/src/dm/nodes/ve.dm.CenterNode.js',
'lib/ve/src/dm/nodes/ve.dm.CommentNode.js',
'lib/ve/src/dm/nodes/ve.dm.DefinitionListItemNode.js',
'lib/ve/src/dm/nodes/ve.dm.DefinitionListNode.js',
'lib/ve/src/dm/nodes/ve.dm.DivNode.js',
'lib/ve/src/dm/nodes/ve.dm.DocumentNode.js',
'lib/ve/src/dm/nodes/ve.dm.HeadingNode.js',
'lib/ve/src/dm/nodes/ve.dm.InternalItemNode.js',
'lib/ve/src/dm/nodes/ve.dm.InternalListNode.js',
'lib/ve/src/dm/nodes/ve.dm.ListItemNode.js',
'lib/ve/src/dm/nodes/ve.dm.ListNode.js',
'lib/ve/src/dm/nodes/ve.dm.ParagraphNode.js',
'lib/ve/src/dm/nodes/ve.dm.PreformattedNode.js',
'lib/ve/src/dm/nodes/ve.dm.TableCaptionNode.js',
'lib/ve/src/dm/nodes/ve.dm.TableCellNode.js',
'lib/ve/src/dm/nodes/ve.dm.TableNode.js',
'lib/ve/src/dm/nodes/ve.dm.TableRowNode.js',
'lib/ve/src/dm/nodes/ve.dm.TableSectionNode.js',
'lib/ve/src/dm/nodes/ve.dm.TextNode.js',
'lib/ve/src/dm/nodes/ve.dm.ImageNode.js',
'lib/ve/src/dm/nodes/ve.dm.BlockImageNode.js',
'lib/ve/src/dm/nodes/ve.dm.BlockImageCaptionNode.js',
'lib/ve/src/dm/nodes/ve.dm.InlineImageNode.js',
'lib/ve/src/dm/annotations/ve.dm.LinkAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.TextStyleAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.AbbreviationAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.BigAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.BoldAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.CodeSampleAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.CodeAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.DatetimeAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.DefinitionAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.FontAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.HighlightAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.ItalicAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.QuotationAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.SmallAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.SpanAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.StrikethroughAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.SubscriptAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.SuperscriptAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.UnderlineAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.UserInputAnnotation.js',
'lib/ve/src/dm/annotations/ve.dm.VariableAnnotation.js',
'lib/ve/src/dm/metaitems/ve.dm.AlienMetaItem.js',
'lib/ve/src/dm/metaitems/ve.dm.CommentMetaItem.js',
// ce
'lib/ve/src/ce/ve.ce.js',
'lib/ve/src/ce/ve.ce.RangeState.js',
'lib/ve/src/ce/ve.ce.AnnotationFactory.js',
'lib/ve/src/ce/ve.ce.NodeFactory.js',
'lib/ve/src/ce/ve.ce.Document.js',
'lib/ve/src/ce/ve.ce.View.js',
'lib/ve/src/ce/ve.ce.Annotation.js',
'lib/ve/src/ce/ve.ce.Node.js',
'lib/ve/src/ce/ve.ce.BranchNode.js',
'lib/ve/src/ce/ve.ce.ContentBranchNode.js',
'lib/ve/src/ce/ve.ce.LeafNode.js',
'lib/ve/src/ce/ve.ce.ClassAttributeNode.js',
'lib/ve/src/ce/ve.ce.AlignableNode.js',
'lib/ve/src/ce/ve.ce.FocusableNode.js',
'lib/ve/src/ce/ve.ce.ResizableNode.js',
'lib/ve/src/ce/ve.ce.Surface.js',
'lib/ve/src/ce/ve.ce.SurfaceObserver.js',
'lib/ve/src/ce/nodes/ve.ce.GeneratedContentNode.js',
'lib/ve/src/ce/nodes/ve.ce.AlienNode.js',
'lib/ve/src/ce/nodes/ve.ce.BlockquoteNode.js',
'lib/ve/src/ce/nodes/ve.ce.BreakNode.js',
'lib/ve/src/ce/nodes/ve.ce.CenterNode.js',
'lib/ve/src/ce/nodes/ve.ce.CommentNode.js',
'lib/ve/src/ce/nodes/ve.ce.DefinitionListItemNode.js',
'lib/ve/src/ce/nodes/ve.ce.DefinitionListNode.js',
'lib/ve/src/ce/nodes/ve.ce.DivNode.js',
'lib/ve/src/ce/nodes/ve.ce.DocumentNode.js',
'lib/ve/src/ce/nodes/ve.ce.HeadingNode.js',
'lib/ve/src/ce/nodes/ve.ce.InternalItemNode.js',
'lib/ve/src/ce/nodes/ve.ce.InternalListNode.js',
'lib/ve/src/ce/nodes/ve.ce.ListItemNode.js',
'lib/ve/src/ce/nodes/ve.ce.ListNode.js',
'lib/ve/src/ce/nodes/ve.ce.ParagraphNode.js',
'lib/ve/src/ce/nodes/ve.ce.PreformattedNode.js',
'lib/ve/src/ce/nodes/ve.ce.TableCaptionNode.js',
'lib/ve/src/ce/nodes/ve.ce.TableCellNode.js',
'lib/ve/src/ce/nodes/ve.ce.TableNode.js',
'lib/ve/src/ce/nodes/ve.ce.TableRowNode.js',
'lib/ve/src/ce/nodes/ve.ce.TableSectionNode.js',
'lib/ve/src/ce/nodes/ve.ce.TextNode.js',
'lib/ve/src/ce/nodes/ve.ce.ImageNode.js',
'lib/ve/src/ce/nodes/ve.ce.BlockImageNode.js',
'lib/ve/src/ce/nodes/ve.ce.BlockImageCaptionNode.js',
'lib/ve/src/ce/nodes/ve.ce.InlineImageNode.js',
'lib/ve/src/ce/annotations/ve.ce.LinkAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.TextStyleAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.AbbreviationAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.BigAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.BoldAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.CodeAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.CodeSampleAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.DatetimeAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.DefinitionAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.FontAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.HighlightAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.ItalicAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.QuotationAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.SmallAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.SpanAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.StrikethroughAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.SubscriptAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.SuperscriptAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.UnderlineAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.UserInputAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.VariableAnnotation.js',
Great Annotation Refactor of 2013 This changes the annotation API to be the same as the node API, sans a few boolean flags that don't apply. The APIs were different, but there was really no good reason why, so this makes things simpler for API users. It also means we'll be able to factor a bunch of things out because they're now duplicated between nodes, meta items and annotations. Linear model annotations are now objects with 'type' and 'attributes' properties (rather than 'name' and 'data'), for consistency with elements. They now also contain html/0/* attributes for HTML attribute preservation, which obsoletes the htmlTagName and htmlAttributes properties. dm.Annotation subclasses take a reference to such an object and implement conversion using .static.toDataElement and .static.toDomElements just like nodes do. The custom .getHash() functions are no longer necessary because of the way HTML attribute preservation was reimplemented. CE rendering has been moved out of dm.Annotation (it never made sense to have CE rendering functions in DM classes, this was bothering me) and into separate ce.Annotation subclasses. These are very similar to CE nodes in that they have a this.$ generated based on something in the DM; the main difference is that nodes listen to events and update themselves, whereas annotations are static and are simply destroyed and rebuilt when they change. This change also adds whitelisted HTML attribute rendering for annotations, as well as class="ve-ce-FooAnnotation" attributes. Now that annotation classes produce real DOM nodes rather than weird objects describing HTML tags, we can't generate HTML as a string in ce.ContentBranchNode anymore. getRenderedContents() has been rewritten to be much more similar to the way the converter renders annotations; in fact, significant parts of it were copied from the converter, so that should be factored out in the future. This change actually fixes an annotation rendering discrepancy between ce.ContentBranchNode and dm.Converter; see the diff of ve.ce.ContentBranchNode.test.js. ve.ce.MWEntityNode.js: * Remove stray property ve.dm.MWExternalLinkAnnotation.js: * Store 'rel' attribute ve.dm.TextStyleAnnotation.js: * Put all the conversion logic in the abstract base class ve.dm.Converter.js: * Also feed annotations through getDomElementsFromDataElement() and createDataElement() ve.dm.Node.js: * Fix undocumented property ve.ce.ContentBranchNode.test.js: * Add descriptive messages for each test case * Compare DOM trees, not HTML strings * Compare without all the class="ve-ce-WhateverAnnotation" clutter ve.ui.LinkInspector.js: * Replace direct .getHash() calls (evil!) with ve.getHash() Bug: 46464 Bug: 44808 Change-Id: I31991488579b8cce6d98ed8b29b486ba5ec38cdc
2013-04-02 17:23:33 +00:00
// ui
'lib/ve/src/ui/ve.ui.js',
'lib/ve/src/ui/ve.ui.Overlay.js',
'lib/ve/src/ui/ve.ui.Surface.js',
'lib/ve/src/ui/ve.ui.Context.js',
'lib/ve/src/ui/ve.ui.LinearContext.js',
'lib/ve/src/ui/ve.ui.ModeledFactory.js',
'lib/ve/src/ui/ve.ui.ContextItem.js',
'lib/ve/src/ui/ve.ui.ContextItemFactory.js',
'lib/ve/src/ui/ve.ui.TableContext.js',
'lib/ve/src/ui/ve.ui.Tool.js',
'lib/ve/src/ui/ve.ui.Toolbar.js',
'lib/ve/src/ui/ve.ui.TargetToolbar.js',
'lib/ve/src/ui/ve.ui.ToolFactory.js',
'lib/ve/src/ui/ve.ui.Command.js',
'lib/ve/src/ui/ve.ui.CommandRegistry.js',
'lib/ve/src/ui/ve.ui.Trigger.js',
'lib/ve/src/ui/ve.ui.TriggerRegistry.js',
'lib/ve/src/ui/ve.ui.Sequence.js',
'lib/ve/src/ui/ve.ui.SequenceRegistry.js',
'lib/ve/src/ui/ve.ui.Action.js',
'lib/ve/src/ui/ve.ui.ActionFactory.js',
'lib/ve/src/ui/ve.ui.DataTransferHandler.js',
'lib/ve/src/ui/ve.ui.FileTransferHandler.js',
'lib/ve/src/ui/ve.ui.DataTransferHandlerFactory.js',
'lib/ve/src/ui/ve.ui.DataTransferItem.js',
'lib/ve/src/ui/ve.ui.WindowManager.js',
'lib/ve/src/ui/windowmanagers/ve.ui.SurfaceWindowManager.js',
'lib/ve/src/ui/actions/ve.ui.AnnotationAction.js',
'lib/ve/src/ui/actions/ve.ui.ContentAction.js',
'lib/ve/src/ui/actions/ve.ui.FormatAction.js',
'lib/ve/src/ui/actions/ve.ui.HistoryAction.js',
'lib/ve/src/ui/actions/ve.ui.IndentationAction.js',
'lib/ve/src/ui/actions/ve.ui.ListAction.js',
'lib/ve/src/ui/actions/ve.ui.TableAction.js',
'lib/ve/src/ui/actions/ve.ui.WindowAction.js',
'lib/ve/src/ui/contextitems/ve.ui.AlignableContextItem.js',
'lib/ve/src/ui/contextitems/ve.ui.CommentContextItem.js',
'lib/ve/src/ui/contextitems/ve.ui.LanguageContextItem.js',
'lib/ve/src/ui/contextitems/ve.ui.LinkContextItem.js',
'lib/ve/src/ui/contextitems/ve.ui.ToolContextItem.js',
'lib/ve/src/ui/contextitems/ve.ui.TableContextItem.js',
'lib/ve/src/ui/commands/ve.ui.ClearAnnotationCommand.js',
'lib/ve/src/ui/commands/ve.ui.HistoryCommand.js',
'lib/ve/src/ui/commands/ve.ui.IndentationCommand.js',
'lib/ve/src/ui/commands/ve.ui.MergeCellsCommand.js',
'lib/ve/src/ui/commands/ve.ui.TableCaptionCommand.js',
'lib/ve/src/ui/dialogs/ve.ui.FragmentDialog.js',
'lib/ve/src/ui/dialogs/ve.ui.NodeDialog.js',
'lib/ve/src/ui/dialogs/ve.ui.ToolbarDialog.js',
'lib/ve/src/ui/dialogs/ve.ui.CommandHelpDialog.js',
'lib/ve/src/ui/dialogs/ve.ui.FindAndReplaceDialog.js',
'lib/ve/src/ui/dialogs/ve.ui.ProgressDialog.js',
'lib/ve/src/ui/dialogs/ve.ui.SpecialCharacterDialog.js',
'lib/ve/src/ui/datatransferhandlers/ve.ui.PlainTextStringTransferHandler.js',
'lib/ve/src/ui/datatransferhandlers/ve.ui.HTMLStringTransferHandler.js',
'lib/ve/src/ui/datatransferhandlers/ve.ui.DSVFileTransferHandler.js',
'lib/ve/src/ui/datatransferhandlers/ve.ui.PlainTextFileTransferHandler.js',
'lib/ve/src/ui/datatransferhandlers/ve.ui.HTMLFileTransferHandler.js',
'lib/ve/src/ui/windowmanagers/ve.ui.ToolbarDialogWindowManager.js',
'lib/ve/src/ui/widgets/ve.ui.AlignWidget.js',
'lib/ve/src/ui/widgets/ve.ui.SurfaceWidget.js',
'lib/ve/src/ui/widgets/ve.ui.LinkAnnotationWidget.js',
'lib/ve/src/ui/widgets/ve.ui.ContextSelectWidget.js',
'lib/ve/src/ui/widgets/ve.ui.ContextOptionWidget.js',
'lib/ve/src/ui/widgets/ve.ui.DimensionsWidget.js',
'lib/ve/src/ui/widgets/ve.ui.MediaSizeWidget.js',
'lib/ve/src/ui/widgets/ve.ui.PreviewWidget.js',
'lib/ve/src/ui/widgets/ve.ui.WhitespacePreservingTextInputWidget.js',
'lib/ve/src/ui/tools/ve.ui.AnnotationTool.js',
'lib/ve/src/ui/tools/ve.ui.ClearAnnotationTool.js',
'lib/ve/src/ui/tools/ve.ui.DialogTool.js',
'lib/ve/src/ui/tools/ve.ui.ToolbarDialogTool.js',
'lib/ve/src/ui/tools/ve.ui.FormatTool.js',
'lib/ve/src/ui/tools/ve.ui.HistoryTool.js',
'lib/ve/src/ui/tools/ve.ui.IndentationTool.js',
'lib/ve/src/ui/tools/ve.ui.InspectorTool.js',
'lib/ve/src/ui/tools/ve.ui.ListTool.js',
'lib/ve/src/ui/tools/ve.ui.TableTool.js',
'lib/ve/src/ui/inspectors/ve.ui.FragmentInspector.js',
'lib/ve/src/ui/inspectors/ve.ui.AnnotationInspector.js',
'lib/ve/src/ui/inspectors/ve.ui.NodeInspector.js',
'lib/ve/src/ui/inspectors/ve.ui.CommentInspector.js',
'lib/ve/src/ui/inspectors/ve.ui.LinkAnnotationInspector.js',
'lib/ve/src/ui/pages/ve.ui.SpecialCharacterPage.js',
),
'debugScripts' => array(
'lib/ve/src/ui/ve.ui.DebugBar.js',
'lib/ve/src/ve.Filibuster.js',
),
'styles' => array(
// ce
'lib/ve/src/ce/styles/nodes/ve.ce.CommentNode.css',
'lib/ve/src/ce/styles/nodes/ve.ce.FocusableNode.css',
'lib/ve/src/ce/styles/nodes/ve.ce.AlienNode.css',
'lib/ve/src/ce/styles/nodes/ve.ce.BranchNode.css',
'lib/ve/src/ce/styles/nodes/ve.ce.DocumentNode.css',
'lib/ve/src/ce/styles/nodes/ve.ce.GeneratedContentNode.css',
'lib/ve/src/ce/styles/annotations/ve.ce.LanguageAnnotation.css',
'lib/ve/src/ce/styles/nodes/ve.ce.ResizableNode.css',
'lib/ve/src/ce/styles/nodes/ve.ce.TableCellNode.css',
'lib/ve/src/ce/styles/nodes/ve.ce.TableNode.css',
'lib/ve/src/ce/styles/ve.ce.Surface.css',
'lib/ve/src/ui/styles/ve.ui.css',
// ui
'lib/ve/src/ui/styles/dialogs/ve.ui.ToolbarDialog.css',
'lib/ve/src/ui/styles/dialogs/ve.ui.CommandHelpDialog.css',
'lib/ve/src/ui/styles/dialogs/ve.ui.FindAndReplaceDialog.css',
'lib/ve/src/ui/styles/dialogs/ve.ui.ProgressDialog.css',
'lib/ve/src/ui/styles/dialogs/ve.ui.SpecialCharacterDialog.css',
'lib/ve/src/ui/styles/tools/ve.ui.FormatTool.css',
'lib/ve/src/ui/styles/widgets/ve.ui.ContextOptionWidget.css',
'lib/ve/src/ui/styles/widgets/ve.ui.ContextSelectWidget.css',
'lib/ve/src/ui/styles/widgets/ve.ui.DimensionsWidget.css',
'lib/ve/src/ui/styles/widgets/ve.ui.MediaSizeWidget.css',
'lib/ve/src/ui/styles/inspectors/ve.ui.CommentInspector.css',
'lib/ve/src/ui/styles/inspectors/ve.ui.FragmentInspector.css',
'lib/ve/src/ui/styles/widgets/ve.ui.SurfaceWidget.css',
'lib/ve/src/ui/styles/ve.ui.ContextItem.css',
'lib/ve/src/ui/styles/contextitems/ve.ui.AlignableContextItem.css',
'lib/ve/src/ui/styles/contextitems/ve.ui.CommentContextItem.css',
'lib/ve/src/ui/styles/contextitems/ve.ui.LanguageContextItem.css',
'lib/ve/src/ui/styles/contextitems/ve.ui.LinkContextItem.css',
'lib/ve/src/ui/styles/contextitems/ve.ui.ToolContextItem.css',
'lib/ve/src/ui/styles/contextitems/ve.ui.TableContextItem.css',
'lib/ve/src/ui/styles/ve.ui.Overlay.css',
'lib/ve/src/ui/styles/ve.ui.Surface.css',
'lib/ve/src/ui/styles/ve.ui.Toolbar.css',
'lib/ve/src/ui/styles/ve.ui.TableContext.css',
// TODO: add debugStyles to ResourceLoader
'lib/ve/src/ui/styles/ve.ui.DebugBar.css',
'lib/ve/src/themes/mediawiki/dialogs.css',
'lib/ve/src/themes/mediawiki/widgets.css',
),
'dependencies' => array(
'unicodejs',
'rangefix',
'papaparse',
'jquery.client',
'ext.visualEditor.base',
),
'messages' => array(
'visualeditor',
'visualeditor-aliennode-tooltip',
'visualeditor-align-widget-center',
'visualeditor-align-widget-left',
'visualeditor-align-widget-right',
'visualeditor-annotationbutton-bold-tooltip',
'visualeditor-annotationbutton-code-tooltip',
'visualeditor-annotationbutton-italic-tooltip',
'visualeditor-annotationbutton-link-tooltip',
'visualeditor-annotationbutton-strikethrough-tooltip',
'visualeditor-annotationbutton-subscript-tooltip',
'visualeditor-annotationbutton-superscript-tooltip',
'visualeditor-annotationbutton-underline-tooltip',
'visualeditor-clearbutton-tooltip',
'visualeditor-clipboard-copy',
'visualeditor-clipboard-cut',
'visualeditor-clipboard-paste',
'visualeditor-clipboard-paste-special',
'visualeditor-commentinspector-edit',
'visualeditor-commentinspector-title',
'visualeditor-commentinspector-tooltip',
'visualeditor-content-select-all',
'visualeditor-contextitemwidget-label-secondary',
'visualeditor-dialog-action-apply',
'visualeditor-dialog-action-cancel',
Update VE core submodule to master (f2277ea) New changes: 56de6f5 Localisation updates from https://translatewiki.net. f8bda64 Widgetise demo menu 6ac48d8 Localisation updates from https://translatewiki.net. 365e131 builderloader: Omit value for boolean "disabled" attribute per HTML5 706e4b3 Prevent double counting of DM nodes in getNodeAndOffset b141a7d Update OOjs UI to v0.1.0-pre (d2451ac748) c5b3921 Localisation updates from https://translatewiki.net. 1606983 Update reference to ConfirmationDialog to use MessageDialog Deletions: * Styles for ve.ui.MWBetaWelcomeDialog - not needed anymore because OO.ui.MessageDialog provides them * Styles for ve.ui.MWGalleryInspector - not needed anymore because ve.ui.MWExtensionInspector provides part of them and the rest are being replaced by programatic sizing Modifications: * ve.ui.MWLinkTargetInputWidget - Added support for validation and href getter * Split message between tool and dialog title for ve.ui.MWEditModeTool and ve.ui.MWWikitextSwitchConfirmDialog General changes: * Updated inheritance. * Added manager param to constructors of dialogs and inspectors. * Updated use of show/hide with toggle. * Added meaningful descriptions of dialog and inspector classes. * Configured dialog and inspector sizes statically. * Configured dialog action buttons statically. * Interfaced with OO.ui.ActionSet to control action buttons. * Moved applyChanges code into getActionProcess methods. * Always using .next in setup/ready process getters and .first in hold/teardown process getters. Change-Id: Ia74732e6e32c0808eee021f0a26225b9e6c3f971
2014-07-14 21:32:49 +00:00
'visualeditor-dialog-action-done',
'visualeditor-dialog-action-goback',
'visualeditor-dialog-action-insert',
'visualeditor-dialog-command-help-title',
'visualeditor-dialog-error',
'visualeditor-dialog-error-dismiss',
'visualeditor-dialog-media-change-image',
'visualeditor-dimensionswidget-px',
'visualeditor-dimensionswidget-times',
'visualeditor-find-and-replace-done',
'visualeditor-find-and-replace-find-text',
'visualeditor-find-and-replace-invalid-regex',
'visualeditor-find-and-replace-match-case',
'visualeditor-find-and-replace-next-button',
'visualeditor-find-and-replace-previous-button',
'visualeditor-find-and-replace-regular-expression',
'visualeditor-find-and-replace-replace-all-button',
'visualeditor-find-and-replace-replace-button',
'visualeditor-find-and-replace-replace-text',
'visualeditor-find-and-replace-results',
'visualeditor-find-and-replace-title',
'visualeditor-formatdropdown-format-blockquote',
'visualeditor-formatdropdown-format-heading-label',
'visualeditor-formatdropdown-format-heading1',
'visualeditor-formatdropdown-format-heading2',
'visualeditor-formatdropdown-format-heading3',
'visualeditor-formatdropdown-format-heading4',
'visualeditor-formatdropdown-format-heading5',
'visualeditor-formatdropdown-format-heading6',
'visualeditor-formatdropdown-format-paragraph',
'visualeditor-formatdropdown-format-preformatted',
'visualeditor-formatdropdown-title',
'visualeditor-help-tool',
'visualeditor-historybutton-redo-tooltip',
'visualeditor-historybutton-undo-tooltip',
'visualeditor-indentationbutton-indent-tooltip',
'visualeditor-indentationbutton-outdent-tooltip',
'visualeditor-inspector-close-tooltip',
'visualeditor-inspector-remove-tooltip',
Update VE core submodule to master (f2277ea) New changes: 56de6f5 Localisation updates from https://translatewiki.net. f8bda64 Widgetise demo menu 6ac48d8 Localisation updates from https://translatewiki.net. 365e131 builderloader: Omit value for boolean "disabled" attribute per HTML5 706e4b3 Prevent double counting of DM nodes in getNodeAndOffset b141a7d Update OOjs UI to v0.1.0-pre (d2451ac748) c5b3921 Localisation updates from https://translatewiki.net. 1606983 Update reference to ConfirmationDialog to use MessageDialog Deletions: * Styles for ve.ui.MWBetaWelcomeDialog - not needed anymore because OO.ui.MessageDialog provides them * Styles for ve.ui.MWGalleryInspector - not needed anymore because ve.ui.MWExtensionInspector provides part of them and the rest are being replaced by programatic sizing Modifications: * ve.ui.MWLinkTargetInputWidget - Added support for validation and href getter * Split message between tool and dialog title for ve.ui.MWEditModeTool and ve.ui.MWWikitextSwitchConfirmDialog General changes: * Updated inheritance. * Added manager param to constructors of dialogs and inspectors. * Updated use of show/hide with toggle. * Added meaningful descriptions of dialog and inspector classes. * Configured dialog and inspector sizes statically. * Configured dialog action buttons statically. * Interfaced with OO.ui.ActionSet to control action buttons. * Moved applyChanges code into getActionProcess methods. * Always using .next in setup/ready process getters and .first in hold/teardown process getters. Change-Id: Ia74732e6e32c0808eee021f0a26225b9e6c3f971
2014-07-14 21:32:49 +00:00
'visualeditor-linkinspector-open',
'visualeditor-linkinspector-title',
'visualeditor-listbutton-bullet-tooltip',
'visualeditor-listbutton-number-tooltip',
'visualeditor-mediasizewidget-button-originaldimensions',
'visualeditor-mediasizewidget-label-custom',
'visualeditor-mediasizewidget-label-defaulterror',
'visualeditor-mediasizewidget-label-scale',
'visualeditor-mediasizewidget-label-scale-percent',
'visualeditor-mediasizewidget-sizeoptions-custom',
'visualeditor-mediasizewidget-sizeoptions-default',
'visualeditor-mediasizewidget-sizeoptions-scale',
'visualeditor-shortcuts-clipboard',
'visualeditor-shortcuts-formatting',
'visualeditor-shortcuts-history',
'visualeditor-shortcuts-other',
'visualeditor-shortcuts-text-style',
'visualeditor-slug-insert',
'visualeditor-specialcharacter-button-tooltip',
'visualeditor-specialcharacterinspector-title',
'visualeditor-table-caption',
'visualeditor-table-delete-col',
'visualeditor-table-delete-row',
'visualeditor-table-delete-table',
'visualeditor-table-format-data',
'visualeditor-table-format-header',
'visualeditor-table-insert-col-after',
'visualeditor-table-insert-col-before',
'visualeditor-table-insert-row-after',
'visualeditor-table-insert-row-before',
'visualeditor-table-insert-table',
'visualeditor-table-merge-cells',
'visualeditor-tablecell-tooltip',
'visualeditor-toolbar-format-tooltip',
'visualeditor-toolbar-history',
'visualeditor-toolbar-insert',
'visualeditor-toolbar-paragraph-format',
'visualeditor-toolbar-structure',
'visualeditor-toolbar-style-tooltip',
'visualeditor-toolbar-table',
'visualeditor-toolbar-text-style',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.core.desktop' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'lib/ve/src/ui/ve.ui.DesktopSurface.js',
'lib/ve/src/ui/ve.ui.DesktopContext.js',
'lib/ve/src/ui/windowmanagers/ve.ui.DesktopInspectorWindowManager.js',
),
'styles' => array(
'lib/ve/src/ui/styles/ve.ui.DesktopContext.css',
),
'dependencies' => array(
'ext.visualEditor.core',
),
'targets' => array( 'desktop' ),
),
'ext.visualEditor.core.mobile' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'lib/ve/src/ui/ve.ui.MobileSurface.js',
'lib/ve/src/ui/ve.ui.MobileContext.js',
'lib/ve/src/ui/windowmanagers/ve.ui.MobileWindowManager.js'
),
'styles' => array(
'lib/ve/src/ui/styles/ve.ui.MobileContext.css',
'lib/ve/src/ui/styles/ve.ui.MobileSurface.css',
),
'dependencies' => array(
'ext.visualEditor.core',
),
'targets' => array( 'mobile' ),
),
'ext.visualEditor.mwcore' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
// dm
'modules/ve-mw/dm/nodes/ve.dm.MWEntityNode.js',
'modules/ve-mw/dm/nodes/ve.dm.MWExtensionNode.js',
'modules/ve-mw/dm/nodes/ve.dm.MWTableNode.js',
'modules/ve-mw/dm/annotations/ve.dm.MWNowikiAnnotation.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWAlienMetaItem.js',
// ce
'modules/ve-mw/ce/nodes/ve.ce.MWEntityNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWExtensionNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWTableNode.js',
'modules/ve-mw/ce/annotations/ve.ce.MWNowikiAnnotation.js',
// ui
'modules/ve-mw/ui/ve.ui.MWCommandRegistry.js',
'modules/ve-mw/ui/ve.ui.MWSequenceRegistry.js',
'modules/ve-mw/ui/commands/ve.ui.MWWikitextWarningCommand.js',
'modules/ve-mw/ui/widgets/ve.ui.MWSurfaceWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWTitleInputWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWTocItemWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWTocWidget.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWSaveDialog.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWBetaWelcomeDialog.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWCommandHelpDialog.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWCancelConfirmDialog.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWWikitextSwitchConfirmDialog.js',
'modules/ve-mw/ui/tools/ve.ui.MWEditModeTool.js',
'modules/ve-mw/ui/tools/ve.ui.MWPopupTool.js',
'modules/ve-mw/ui/inspectors/ve.ui.MWExtensionInspector.js',
'modules/ve-mw/ui/inspectors/ve.ui.MWLiveExtensionInspector.js',
'modules/ve-mw/ui/actions/ve.ui.MWLinkAction.js',
2011-11-28 20:28:28 +00:00
),
'styles' => array(
// ui
'modules/ve-mw/ui/styles/inspectors/ve.ui.MWExtensionInspector.css',
'modules/ve-mw/ui/styles/dialogs/ve.ui.MWCommandHelpDialog.css',
'modules/ve-mw/ui/styles/dialogs/ve.ui.MWSaveDialog.css',
'modules/ve-mw/ui/styles/tools/ve.ui.MWPopupTool.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWTitleInputWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWTocWidget.css',
),
2011-11-28 20:28:28 +00:00
'dependencies' => array(
'ext.visualEditor.core',
'mediawiki.Title',
'mediawiki.action.history.diff',
'mediawiki.user',
'mediawiki.util',
'mediawiki.jqueryMsg',
'jquery.autoEllipsis',
'jquery.byteLimit',
'mediawiki.skinning.content.parsoid',
'mediawiki.language.specialCharacters',
2011-11-28 20:28:28 +00:00
),
2012-02-07 16:37:08 +00:00
'messages' => array(
'visualeditor-beta-label',
'visualeditor-beta-warning',
'visualeditor-browserwarning',
'visualeditor-dialog-beta-welcome-action-continue',
'visualeditor-dialog-beta-welcome-content',
'visualeditor-dialog-beta-welcome-title',
'visualeditor-diff-nochanges',
'visualeditor-differror',
'visualeditor-editconflict',
'visualeditor-editnotices-tool',
'visualeditor-editnotices-tooltip',
'visualeditor-editsummary',
'visualeditor-editsummary-bytes-remaining',
'visualeditor-feedback-tool',
'visualeditor-help-label',
'visualeditor-help-link',
'visualeditor-help-title',
'visualeditor-mweditmodesource-title',
Update VE core submodule to master (f2277ea) New changes: 56de6f5 Localisation updates from https://translatewiki.net. f8bda64 Widgetise demo menu 6ac48d8 Localisation updates from https://translatewiki.net. 365e131 builderloader: Omit value for boolean "disabled" attribute per HTML5 706e4b3 Prevent double counting of DM nodes in getNodeAndOffset b141a7d Update OOjs UI to v0.1.0-pre (d2451ac748) c5b3921 Localisation updates from https://translatewiki.net. 1606983 Update reference to ConfirmationDialog to use MessageDialog Deletions: * Styles for ve.ui.MWBetaWelcomeDialog - not needed anymore because OO.ui.MessageDialog provides them * Styles for ve.ui.MWGalleryInspector - not needed anymore because ve.ui.MWExtensionInspector provides part of them and the rest are being replaced by programatic sizing Modifications: * ve.ui.MWLinkTargetInputWidget - Added support for validation and href getter * Split message between tool and dialog title for ve.ui.MWEditModeTool and ve.ui.MWWikitextSwitchConfirmDialog General changes: * Updated inheritance. * Added manager param to constructors of dialogs and inspectors. * Updated use of show/hide with toggle. * Added meaningful descriptions of dialog and inspector classes. * Configured dialog and inspector sizes statically. * Configured dialog action buttons statically. * Interfaced with OO.ui.ActionSet to control action buttons. * Moved applyChanges code into getActionProcess methods. * Always using .next in setup/ready process getters and .first in hold/teardown process getters. Change-Id: Ia74732e6e32c0808eee021f0a26225b9e6c3f971
2014-07-14 21:32:49 +00:00
'visualeditor-mweditmodesource-tool',
'visualeditor-mweditmodesource-warning',
'visualeditor-mweditmodesource-warning-cancel',
'visualeditor-mweditmodesource-warning-switch',
'visualeditor-mweditmodesource-warning-switch-discard',
'visualeditor-pagemenu-tooltip',
'visualeditor-pagetranslationwarning',
'visualeditor-savedialog-error-badtoken',
'visualeditor-savedialog-label-create',
'visualeditor-savedialog-label-error',
'visualeditor-savedialog-label-report',
'visualeditor-savedialog-label-resolve-conflict',
'visualeditor-savedialog-label-restore',
'visualeditor-savedialog-label-resume-editing',
'visualeditor-savedialog-label-review',
'visualeditor-savedialog-label-review-good',
'visualeditor-savedialog-label-save',
'visualeditor-savedialog-label-warning',
'visualeditor-savedialog-title-conflict',
'visualeditor-savedialog-title-nochanges',
'visualeditor-savedialog-title-review',
'visualeditor-savedialog-title-save',
'visualeditor-savedialog-warning-dirty',
'visualeditor-saveerror',
'visualeditor-serializeerror',
'visualeditor-recreate',
'visualeditor-toolbar-cite-label',
'visualeditor-toolbar-savedialog',
'visualeditor-version-label',
'visualeditor-viewpage-savewarning',
'visualeditor-viewpage-savewarning-discard',
'visualeditor-viewpage-savewarning-keep',
'visualeditor-viewpage-savewarning-title',
'visualeditor-wikitext-warning-title',
'visualeditor-window-title',
// Mentioned in another message
'ooui-dialog-process-continue',
// Used by the TOC widget (currently experimental)
'toc',
'showtoc',
'hidetoc',
'captcha-edit',
'captcha-label',
'colon-separator',
// Only used if FancyCaptcha is installed and triggered on save
'fancycaptcha-edit',
// Only used if QuestyCaptcha is installed and triggered on save
'questycaptcha-edit'
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwformatting' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/nodes/ve.dm.MWHeadingNode.js',
'modules/ve-mw/dm/nodes/ve.dm.MWPreformattedNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWHeadingNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWPreformattedNode.js',
'modules/ve-mw/ui/tools/ve.ui.MWFormatTool.js',
),
'skinStyles' => array(
'vector' => array(
'modules/ve-mw/ui/themes/vector/ve.ui.MWFormatTool.css',
),
),
'dependencies' => array(
'ext.visualEditor.mwcore',
),
'messages' => array(
'visualeditor-formatdropdown-format-mw-heading1',
'visualeditor-formatdropdown-format-mw-heading2',
'visualeditor-formatdropdown-format-mw-heading3',
'visualeditor-formatdropdown-format-mw-heading4',
'visualeditor-formatdropdown-format-mw-heading5',
'visualeditor-formatdropdown-format-mw-heading6',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwimage.core' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/nodes/ve.dm.MWImageNode.js',
'modules/ve-mw/dm/nodes/ve.dm.MWInlineImageNode.js',
'modules/ve-mw/dm/nodes/ve.dm.MWBlockImageNode.js',
'modules/ve-mw/dm/nodes/ve.dm.MWImageCaptionNode.js',
'modules/ve-mw/ce/ve.ce.MWResizableNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWImageNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWInlineImageNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWBlockImageNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWImageCaptionNode.js',
),
'styles' => array(
'modules/ve-mw/ce/styles/nodes/ve.ce.MWBlockImageNode.css',
'modules/ve-mw/ce/styles/nodes/ve.ce.MWInlineImageNode.css',
),
'dependencies' => array(
'ext.visualEditor.mwcore',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwimage' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/models/ve.dm.MWImageModel.js',
'modules/ve-mw/dm/models/ve.dm.MWMediaResourceProvider.js',
'modules/ve-mw/dm/models/ve.dm.MWMediaResourceQueue.js',
'modules/ve-mw/ui/widgets/ve.ui.MWMediaSearchWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWMediaResultWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWMediaInfoFieldWidget.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWMediaDialog.js',
'modules/ve-mw/ui/tools/ve.ui.MWMediaDialogTool.js',
),
'styles' => array(
'modules/ve-mw/ui/styles/dialogs/ve.ui.MWMediaDialog.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWMediaSearchWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWMediaResultWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWMediaInfoFieldWidget.css',
),
'dependencies' => array(
'ext.visualEditor.mwimage.core',
),
'messages' => array(
'visualeditor-dialog-media-alttext-section',
'visualeditor-dialog-media-alttext-section-help',
'visualeditor-dialog-media-change-image',
'visualeditor-dialog-media-choose-image',
'visualeditor-dialog-media-content-filename',
'visualeditor-dialog-media-content-section',
'visualeditor-dialog-media-content-section-help',
'visualeditor-dialog-media-dimensionseparator',
'visualeditor-dialog-media-goback',
'visualeditor-dialog-media-info-artist',
'visualeditor-dialog-media-info-audiofile',
'visualeditor-dialog-media-info-created',
'visualeditor-dialog-media-info-credit',
'visualeditor-dialog-media-info-dateformat',
'visualeditor-dialog-media-info-ellipsis',
'visualeditor-dialog-media-info-imagedescription',
'visualeditor-dialog-media-info-licenseshortname',
'visualeditor-dialog-media-info-meta-artist',
'visualeditor-dialog-media-info-moreinfo',
'visualeditor-dialog-media-info-readmore',
'visualeditor-dialog-media-info-separator',
'visualeditor-dialog-media-info-uploaded',
'visualeditor-dialog-media-noresults',
'visualeditor-dialog-media-originaldimensions',
'visualeditor-dialog-media-page-advanced',
'visualeditor-dialog-media-page-general',
'visualeditor-dialog-media-position-center',
'visualeditor-dialog-media-position-checkbox',
'visualeditor-dialog-media-position-checkbox-help',
'visualeditor-dialog-media-position-left',
'visualeditor-dialog-media-position-none',
'visualeditor-dialog-media-position-right',
'visualeditor-dialog-media-position-section',
'visualeditor-dialog-media-position-section-help',
'visualeditor-dialog-media-searchselect',
'visualeditor-dialog-media-size-originalsize-error',
'visualeditor-dialog-media-size-section',
'visualeditor-dialog-media-size-section-help',
'visualeditor-dialog-media-thumbdimensions',
'visualeditor-dialog-media-title',
'visualeditor-dialog-media-type-border',
'visualeditor-dialog-media-type-frame',
'visualeditor-dialog-media-type-frameless',
'visualeditor-dialog-media-type-none',
'visualeditor-dialog-media-type-section',
'visualeditor-dialog-media-type-section-help',
'visualeditor-dialog-media-type-thumb',
'visualeditor-dialogbutton-media-tooltip',
'visualeditor-media-input-placeholder',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwlink' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/nodes/ve.dm.MWNumberedExternalLinkNode.js',
'modules/ve-mw/dm/annotations/ve.dm.MWExternalLinkAnnotation.js',
'modules/ve-mw/dm/annotations/ve.dm.MWInternalLinkAnnotation.js',
'modules/ve-mw/ce/nodes/ve.ce.MWNumberedExternalLinkNode.js',
'modules/ve-mw/ce/annotations/ve.ce.MWExternalLinkAnnotation.js',
'modules/ve-mw/ce/annotations/ve.ce.MWInternalLinkAnnotation.js',
'modules/ve-mw/ui/widgets/ve.ui.MWLinkTargetInputWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWLinkMenuOptionWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWInternalLinkMenuOptionWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWInternalLinkAnnotationWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWExternalLinkAnnotationWidget.js',
'modules/ve-mw/ui/inspectors/ve.ui.MWLinkAnnotationInspector.js',
'modules/ve-mw/ui/inspectors/ve.ui.MWLinkNodeInspector.js',
'modules/ve-mw/ui/tools/ve.ui.MWLinkInspectorTool.js',
'modules/ve-mw/ui/contextitems/ve.ui.MWInternalLinkContextItem.js',
),
'styles' => array(
'modules/ve-mw/ui/styles/contextitems/ve.ui.MWInternalLinkContextItem.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWLinkTargetInputWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWInternalLinkMenuOptionWidget.css',
'modules/ve-mw/ui/styles/inspectors/ve.ui.MWLinkAnnotationInspector.css',
),
'skinStyles' => array(
'apex' => array(
'modules/ve-mw/ui/themes/apex/ve.ui.MWLinkTargetInputWidget.css'
),
),
'dependencies' => array(
'ext.visualEditor.mwcore',
),
'messages' => array(
'visualeditor-annotationbutton-linknode-tooltip',
'visualeditor-linkinspector-button-link-external',
'visualeditor-linkinspector-button-link-internal',
'visualeditor-linkinspector-description-new-page',
'visualeditor-linkinspector-description-redirect',
'visualeditor-linkinspector-illegal-title',
'visualeditor-linknodeinspector-add-label',
'visualeditor-linknodeinspector-title',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwmeta' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/metaitems/ve.dm.MWCategoryMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWDefaultSortMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWDisplayTitleMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWHiddenCategoryMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWIndexDisableMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWIndexForceMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWLanguageMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWNewSectionEditDisableMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWNewSectionEditForceMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWNoContentConvertMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWNoEditSectionMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWNoGalleryMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWNoTitleConvertMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWRedirectMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWStaticRedirectMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWTOCDisableMetaItem.js',
'modules/ve-mw/dm/metaitems/ve.dm.MWTOCForceMetaItem.js',
'modules/ve-mw/ui/widgets/ve.ui.MWCategoryInputWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWCategoryPopupWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWCategoryItemWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWCategoryWidget.js',
'modules/ve-mw/ui/pages/ve.ui.MWSettingsPage.js',
'modules/ve-mw/ui/pages/ve.ui.MWAdvancedSettingsPage.js',
'modules/ve-mw/ui/pages/ve.ui.MWCategoriesPage.js',
'modules/ve-mw/ui/pages/ve.ui.MWLanguagesPage.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWMetaDialog.js',
'modules/ve-mw/ui/tools/ve.ui.MWMetaDialogTool.js',
),
'styles' => array(
'modules/ve-mw/ui/styles/pages/ve.ui.MWCategoriesPage.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryInputWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryItemWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryPopupWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWCategoryWidget.css',
'modules/ve-mw/ui/styles/dialogs/ve.ui.MWMetaDialog.css',
),
'dependencies' => array(
'ext.visualEditor.mwcore',
'ext.visualEditor.mwlink',
'jquery.uls.data',
),
'messages' => array(
'visualeditor-advancedsettings-tool',
'visualeditor-categories-tool',
'visualeditor-dialog-meta-advancedsettings-label',
'visualeditor-dialog-meta-advancedsettings-section',
'visualeditor-dialog-meta-categories-category',
'visualeditor-dialog-meta-categories-data-label',
'visualeditor-dialog-meta-categories-defaultsort-help',
'visualeditor-dialog-meta-categories-defaultsort-label',
'visualeditor-dialog-meta-categories-hidden',
'visualeditor-dialog-meta-categories-input-hiddencategorieslabel',
'visualeditor-dialog-meta-categories-input-matchingcategorieslabel',
'visualeditor-dialog-meta-categories-input-movecategorylabel',
'visualeditor-dialog-meta-categories-input-newcategorylabel',
'visualeditor-dialog-meta-categories-input-placeholder',
'visualeditor-dialog-meta-categories-missing',
'visualeditor-dialog-meta-categories-options',
'visualeditor-dialog-meta-categories-section',
'visualeditor-dialog-meta-categories-sortkey-label',
'visualeditor-dialog-meta-languages-code-label',
'visualeditor-dialog-meta-languages-label',
'visualeditor-dialog-meta-languages-link-label',
'visualeditor-dialog-meta-languages-name-label',
'visualeditor-dialog-meta-languages-readonlynote',
'visualeditor-dialog-meta-languages-section',
'visualeditor-dialog-meta-settings-displaytitle',
'visualeditor-dialog-meta-settings-displaytitle-enable',
'visualeditor-dialog-meta-settings-displaytitle-help',
'visualeditor-dialog-meta-settings-hiddencat-help',
'visualeditor-dialog-meta-settings-hiddencat-label',
'visualeditor-dialog-meta-settings-index-default',
'visualeditor-dialog-meta-settings-index-disable',
'visualeditor-dialog-meta-settings-index-force',
'visualeditor-dialog-meta-settings-index-help',
'visualeditor-dialog-meta-settings-index-label',
'visualeditor-dialog-meta-settings-label',
'visualeditor-dialog-meta-settings-newsectioneditlink-default',
'visualeditor-dialog-meta-settings-newsectioneditlink-disable',
'visualeditor-dialog-meta-settings-newsectioneditlink-force',
'visualeditor-dialog-meta-settings-newsectioneditlink-help',
'visualeditor-dialog-meta-settings-newsectioneditlink-label',
'visualeditor-dialog-meta-settings-nocontentconvert-help',
'visualeditor-dialog-meta-settings-nocontentconvert-label',
'visualeditor-dialog-meta-settings-noeditsection-help',
'visualeditor-dialog-meta-settings-noeditsection-label',
'visualeditor-dialog-meta-settings-nogallery-help',
'visualeditor-dialog-meta-settings-nogallery-label',
'visualeditor-dialog-meta-settings-notitleconvert-help',
'visualeditor-dialog-meta-settings-notitleconvert-label',
'visualeditor-dialog-meta-settings-redirect-help',
'visualeditor-dialog-meta-settings-redirect-label',
'visualeditor-dialog-meta-settings-redirect-placeholder',
'visualeditor-dialog-meta-settings-redirect-statichelp',
'visualeditor-dialog-meta-settings-redirect-staticlabel',
'visualeditor-dialog-meta-settings-section',
'visualeditor-dialog-meta-settings-toc-default',
'visualeditor-dialog-meta-settings-toc-disable',
'visualeditor-dialog-meta-settings-toc-force',
'visualeditor-dialog-meta-settings-toc-help',
'visualeditor-dialog-meta-settings-toc-label',
'visualeditor-dialog-meta-title',
'visualeditor-dialogbutton-meta-tooltip',
'visualeditor-languages-tool',
'visualeditor-meta-tool',
'visualeditor-settings-tool',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwreference.core' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
Ultra-mega-hyper-citation editing on crack Objectives: * Allow users on-wiki to create tools and dialogs for citation templates of their choosing * Allow editing of citation templates directly, without having to go through the reference dialog * Provide citation template tools within reference editing that use the same titles and icons as the citation tools do, but don't wrap the inserted content in a ref tag Changes: * Reference list was cloning the DOM element it was inserting into its view before the generated content node could finish rendering, so it never ended up showing the finished rendering in the reference list * Documenting hack about use of reference list node's destroy method, and how we are depending on destroy not canceling generated content rendering * Introduced reference model * Added saving/updating method to transclusion model * Added getPartsList method to dm transclusion node, which caches the result and invalidates the cache on update * Added citation dialog, which extends transclusion dialog * Added cite group to toolbars, cite-template in reference dialog toolbar * Factored out getting the node to edit and saving changes procedures in transclusion dialog so they could be extended in citation dialog * Updated uses of autoAdd as per changes in oojs-ui (Ic353f91) * Renamed MWDialogTool file since there was only one tool in it * Expanded TransclusionDialogTool file out since there is now more logic to it * Switched to using ve.dm.MWReferenceModel instead of plain objects in reference search widget Configuration: If you add to MediaWiki:Visualeditor-cite-tool-definition.json the following code you will magically be presented with a delightful array of citation options: [ { "name": "web", "icon": "ref-cite-web", "template": "Cite web" }, { "name": "book", "icon": "ref-cite-book", "template": "Cite book" }, { "name": "news", "icon": "ref-cite-news", "template": "Cite news" }, { "name": "journal", "icon": "ref-cite-journal", "template": "Cite journal" } ] ...or... [ { "name": "any-name", "icon": "any-ooui-icon", "template": "Any template", "title": "Any title text" } ] The title text is derived either from the title property or from the name property by pre-pending the string 'visualeditor-cite-tool-name-' to generate a message key. Titles for 'web', 'book', 'news' and 'journal' are provided. The icon is a normal oo-ui-icon name, and more icons can be added, as usual, by adding a class called .oo-ui-icon-{icon name} to MediaWiki:Common.css. 'ref-cite-web', 'ref-cite-book', 'ref-cite-news' and 'ref-cite-journal' are provided. The template name is simply the name of the template without its namespace prefix. Depends on Ic353f91 in oojs-ui Bug: 50110 Bug: 50768 Change-Id: Id401d973b8d5fe2faec481cc777c17a24fd19dd4
2014-03-21 18:56:46 +00:00
'modules/ve-mw/dm/models/ve.dm.MWReferenceModel.js',
'modules/ve-mw/dm/nodes/ve.dm.MWReferencesListNode.js',
'modules/ve-mw/dm/nodes/ve.dm.MWReferenceNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWReferencesListNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWReferenceNode.js',
'modules/ve-mw/ui/commands/ve.ui.MWReferencesListCommand.js',
),
'styles' => array(
'modules/ve-mw/ce/styles/nodes/ve.ce.MWReferencesListNode.css',
'modules/ve-mw/ce/styles/nodes/ve.ce.MWReferenceNode.css',
),
'dependencies' => array(
'ext.visualEditor.mwcore',
),
'messages' => array(
'visualeditor-referenceslist-isempty',
'visualeditor-referenceslist-isempty-default',
'visualeditor-referenceslist-missingref',
),
'targets' => array( 'desktop', 'mobile' )
),
'ext.visualEditor.mwreference' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/ui/widgets/ve.ui.MWReferenceGroupInputWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWReferenceSearchWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWReferenceResultWidget.js',
'modules/ve-mw/ui/commands/ve.ui.MWUseExistingReferenceCommand.js',
Ultra-mega-hyper-citation editing on crack Objectives: * Allow users on-wiki to create tools and dialogs for citation templates of their choosing * Allow editing of citation templates directly, without having to go through the reference dialog * Provide citation template tools within reference editing that use the same titles and icons as the citation tools do, but don't wrap the inserted content in a ref tag Changes: * Reference list was cloning the DOM element it was inserting into its view before the generated content node could finish rendering, so it never ended up showing the finished rendering in the reference list * Documenting hack about use of reference list node's destroy method, and how we are depending on destroy not canceling generated content rendering * Introduced reference model * Added saving/updating method to transclusion model * Added getPartsList method to dm transclusion node, which caches the result and invalidates the cache on update * Added citation dialog, which extends transclusion dialog * Added cite group to toolbars, cite-template in reference dialog toolbar * Factored out getting the node to edit and saving changes procedures in transclusion dialog so they could be extended in citation dialog * Updated uses of autoAdd as per changes in oojs-ui (Ic353f91) * Renamed MWDialogTool file since there was only one tool in it * Expanded TransclusionDialogTool file out since there is now more logic to it * Switched to using ve.dm.MWReferenceModel instead of plain objects in reference search widget Configuration: If you add to MediaWiki:Visualeditor-cite-tool-definition.json the following code you will magically be presented with a delightful array of citation options: [ { "name": "web", "icon": "ref-cite-web", "template": "Cite web" }, { "name": "book", "icon": "ref-cite-book", "template": "Cite book" }, { "name": "news", "icon": "ref-cite-news", "template": "Cite news" }, { "name": "journal", "icon": "ref-cite-journal", "template": "Cite journal" } ] ...or... [ { "name": "any-name", "icon": "any-ooui-icon", "template": "Any template", "title": "Any title text" } ] The title text is derived either from the title property or from the name property by pre-pending the string 'visualeditor-cite-tool-name-' to generate a message key. Titles for 'web', 'book', 'news' and 'journal' are provided. The icon is a normal oo-ui-icon name, and more icons can be added, as usual, by adding a class called .oo-ui-icon-{icon name} to MediaWiki:Common.css. 'ref-cite-web', 'ref-cite-book', 'ref-cite-news' and 'ref-cite-journal' are provided. The template name is simply the name of the template without its namespace prefix. Depends on Ic353f91 in oojs-ui Bug: 50110 Bug: 50768 Change-Id: Id401d973b8d5fe2faec481cc777c17a24fd19dd4
2014-03-21 18:56:46 +00:00
'modules/ve-mw/ui/dialogs/ve.ui.MWCitationDialog.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWReferencesListDialog.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWReferenceDialog.js',
'modules/ve-mw/ui/widgets/ve.ui.MWReferenceSourceSelectWidget.js',
'modules/ve-mw/ui/tools/ve.ui.MWReferenceDialogTool.js',
'modules/ve-mw/ui/tools/ve.ui.MWCitationDialogTool.js',
'modules/ve-mw/ui/contextitems/ve.ui.MWReferenceContextItem.js',
'modules/ve-mw/ui/contextitems/ve.ui.MWReferencesListContextItem.js',
'modules/ve-mw/ui/contextitems/ve.ui.MWCitationContextItem.js',
'modules/ve-mw/ui/actions/ve.ui.MWCitationAction.js',
),
'styles' => array(
'modules/ve-mw/ui/styles/widgets/ve.ui.MWReferenceGroupInputWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWReferenceResultWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWReferenceSearchWidget.css',
),
'dependencies' => array(
'ext.visualEditor.mwreference.core',
Ultra-mega-hyper-citation editing on crack Objectives: * Allow users on-wiki to create tools and dialogs for citation templates of their choosing * Allow editing of citation templates directly, without having to go through the reference dialog * Provide citation template tools within reference editing that use the same titles and icons as the citation tools do, but don't wrap the inserted content in a ref tag Changes: * Reference list was cloning the DOM element it was inserting into its view before the generated content node could finish rendering, so it never ended up showing the finished rendering in the reference list * Documenting hack about use of reference list node's destroy method, and how we are depending on destroy not canceling generated content rendering * Introduced reference model * Added saving/updating method to transclusion model * Added getPartsList method to dm transclusion node, which caches the result and invalidates the cache on update * Added citation dialog, which extends transclusion dialog * Added cite group to toolbars, cite-template in reference dialog toolbar * Factored out getting the node to edit and saving changes procedures in transclusion dialog so they could be extended in citation dialog * Updated uses of autoAdd as per changes in oojs-ui (Ic353f91) * Renamed MWDialogTool file since there was only one tool in it * Expanded TransclusionDialogTool file out since there is now more logic to it * Switched to using ve.dm.MWReferenceModel instead of plain objects in reference search widget Configuration: If you add to MediaWiki:Visualeditor-cite-tool-definition.json the following code you will magically be presented with a delightful array of citation options: [ { "name": "web", "icon": "ref-cite-web", "template": "Cite web" }, { "name": "book", "icon": "ref-cite-book", "template": "Cite book" }, { "name": "news", "icon": "ref-cite-news", "template": "Cite news" }, { "name": "journal", "icon": "ref-cite-journal", "template": "Cite journal" } ] ...or... [ { "name": "any-name", "icon": "any-ooui-icon", "template": "Any template", "title": "Any title text" } ] The title text is derived either from the title property or from the name property by pre-pending the string 'visualeditor-cite-tool-name-' to generate a message key. Titles for 'web', 'book', 'news' and 'journal' are provided. The icon is a normal oo-ui-icon name, and more icons can be added, as usual, by adding a class called .oo-ui-icon-{icon name} to MediaWiki:Common.css. 'ref-cite-web', 'ref-cite-book', 'ref-cite-news' and 'ref-cite-journal' are provided. The template name is simply the name of the template without its namespace prefix. Depends on Ic353f91 in oojs-ui Bug: 50110 Bug: 50768 Change-Id: Id401d973b8d5fe2faec481cc777c17a24fd19dd4
2014-03-21 18:56:46 +00:00
'ext.visualEditor.mwtransclusion',
'ext.visualEditor.mediawiki'
),
'messages' => array(
'visualeditor-dialog-reference-editing-reused',
'visualeditor-dialog-reference-options-group-label',
'visualeditor-dialog-reference-options-group-placeholder',
'visualeditor-dialog-reference-options-name-label',
'visualeditor-dialog-reference-options-section',
'visualeditor-dialog-reference-title',
'visualeditor-dialog-reference-useexisting-full-label',
'visualeditor-dialog-reference-useexisting-label',
'visualeditor-dialog-reference-useexisting-tool',
'visualeditor-dialog-referenceslist-contextitem-description-general',
'visualeditor-dialog-referenceslist-contextitem-description-named',
'visualeditor-dialog-referenceslist-title',
'visualeditor-dialogbutton-reference-full-label',
'visualeditor-dialogbutton-reference-tooltip',
'visualeditor-dialogbutton-referenceslist-tooltip',
'visualeditor-reference-input-placeholder',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwtransclusion.core' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/nodes/ve.dm.MWTransclusionNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWTransclusionNode.js',
),
'styles' => array(
'modules/ve-mw/ce/styles/nodes/ve.ce.MWTransclusionNode.css'
),
'dependencies' => array(
'ext.visualEditor.mwcore',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwtransclusion' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/models/ve.dm.MWTransclusionModel.js',
'modules/ve-mw/dm/models/ve.dm.MWTransclusionPartModel.js',
'modules/ve-mw/dm/models/ve.dm.MWTransclusionContentModel.js',
'modules/ve-mw/dm/models/ve.dm.MWTemplateSpecModel.js',
'modules/ve-mw/dm/models/ve.dm.MWTemplateModel.js',
'modules/ve-mw/dm/models/ve.dm.MWTemplatePlaceholderModel.js',
'modules/ve-mw/dm/models/ve.dm.MWParameterModel.js',
'modules/ve-mw/ui/widgets/ve.ui.MWParameterSearchWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWParameterResultWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWMoreParametersResultWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWNoParametersResultWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWTemplateMenuOptionWidget.js',
'modules/ve-mw/ui/widgets/ve.ui.MWTemplateTitleInputWidget.js',
'modules/ve-mw/ui/pages/ve.ui.MWTemplatePage.js',
'modules/ve-mw/ui/pages/ve.ui.MWParameterPage.js',
'modules/ve-mw/ui/pages/ve.ui.MWParameterPlaceholderPage.js',
'modules/ve-mw/ui/pages/ve.ui.MWTemplatePlaceholderPage.js',
'modules/ve-mw/ui/pages/ve.ui.MWTransclusionContentPage.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWRequiredParamBlankConfirmDialog.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWTemplateDialog.js',
'modules/ve-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js',
'modules/ve-mw/ui/tools/ve.ui.MWTransclusionDialogTool.js',
'modules/ve-mw/ui/contextitems/ve.ui.MWTransclusionContextItem.js',
),
'styles' => array(
'modules/ve-mw/ui/styles/widgets/ve.ui.MWParameterResultWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWMoreParametersResultWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWNoParametersResultWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWParameterSearchWidget.css',
'modules/ve-mw/ui/styles/widgets/ve.ui.MWTemplateMenuOptionWidget.css',
'modules/ve-mw/ui/styles/pages/ve.ui.MWTransclusionContentPage.css',
'modules/ve-mw/ui/styles/dialogs/ve.ui.MWTransclusionDialog.css',
),
'skinStyles' => array(
'default' => array(
'modules/ve-mw/ui/themes/apex/pages/ve.ui.MWParameterPage.css',
'modules/ve-mw/ui/themes/apex/pages/ve.ui.MWTemplatePage.css',
),
'minerva' => array(
'modules/ve-mw/ui/themes/minerva/pages/ve.ui.MWParameterPage.css',
'modules/ve-mw/ui/themes/minerva/ve.ui.MobileWindowManager.css',
),
),
'dependencies' => array(
'ext.visualEditor.mwtransclusion.core',
'mediawiki.jqueryMsg',
'mediawiki.language',
),
'messages' => array(
'quotation-marks',
'visualeditor-dialog-template-title',
'visualeditor-dialog-transclusion-add-content',
'visualeditor-dialog-transclusion-add-param',
'visualeditor-dialog-transclusion-add-template',
'visualeditor-dialog-transclusion-content',
'visualeditor-dialog-transclusion-contextitem-description',
'visualeditor-dialog-transclusion-deprecated-parameter',
'visualeditor-dialog-transclusion-deprecated-parameter-description',
'visualeditor-dialog-transclusion-loading',
'visualeditor-dialog-transclusion-multiple-mode',
'visualeditor-dialog-transclusion-no-template-description',
'visualeditor-dialog-transclusion-options',
'visualeditor-dialog-transclusion-param-default',
'visualeditor-dialog-transclusion-param-example',
'visualeditor-dialog-transclusion-param-info',
'visualeditor-dialog-transclusion-param-info-missing',
'visualeditor-dialog-transclusion-placeholder',
'visualeditor-dialog-transclusion-remove-content',
'visualeditor-dialog-transclusion-remove-param',
'visualeditor-dialog-transclusion-remove-template',
'visualeditor-dialog-transclusion-required-parameter',
'visualeditor-dialog-transclusion-required-parameter-description',
'visualeditor-dialog-transclusion-required-parameter-dialog-cancel',
'visualeditor-dialog-transclusion-required-parameter-dialog-ok',
'visualeditor-dialog-transclusion-required-parameter-dialog-title',
'visualeditor-dialog-transclusion-required-parameter-is-blank',
'visualeditor-dialog-transclusion-single-mode',
'visualeditor-dialog-transclusion-title',
'visualeditor-dialog-transclusion-wikitext-label',
'visualeditor-dialogbutton-template-tooltip',
'visualeditor-dialogbutton-transclusion-tooltip',
'visualeditor-parameter-input-placeholder',
'visualeditor-parameter-search-more',
'visualeditor-parameter-search-no-unused',
'visualeditor-parameter-search-unknown',
2012-02-07 16:37:08 +00:00
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.language' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'lib/ve/src/dm/annotations/ve.dm.LanguageAnnotation.js',
'lib/ve/src/ce/annotations/ve.ce.LanguageAnnotation.js',
'lib/ve/src/ui/widgets/ve.ui.LanguageResultWidget.js',
'lib/ve/src/ui/widgets/ve.ui.LanguageSearchWidget.js',
'lib/ve/src/ui/dialogs/ve.ui.LanguageSearchDialog.js',
'lib/ve/src/ui/inspectors/ve.ui.LanguageInspector.js',
'lib/ve/src/ui/tools/ve.ui.LanguageInspectorTool.js',
'lib/ve/src/ui/widgets/ve.ui.LanguageInputWidget.js',
),
'styles' => array(
'lib/ve/src/ui/styles/widgets/ve.ui.LanguageInputWidget.css',
'lib/ve/src/ui/styles/widgets/ve.ui.LanguageSearchWidget.css',
),
'dependencies' => array(
'ext.visualEditor.core',
'mediawiki.language.names',
),
'messages' => array(
'visualeditor-annotationbutton-language-tooltip',
'visualeditor-dialog-language-auto-direction',
'visualeditor-dialog-language-search-title',
'visualeditor-language-search-input-placeholder',
'visualeditor-languageannotation-description',
'visualeditor-languageannotation-description-with-dir',
'visualeditor-languageinspector-title',
'visualeditor-languageinspector-widget-changelang',
'visualeditor-languageinspector-widget-label-direction',
'visualeditor-languageinspector-widget-label-langcode',
'visualeditor-languageinspector-widget-label-language',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwalienextension' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/nodes/ve.dm.MWAlienExtensionNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWAlienExtensionNode.js',
'modules/ve-mw/ui/inspectors/ve.ui.MWAlienExtensionInspector.js',
'modules/ve-mw/ui/contextitems/ve.ui.MWAlienExtensionContextItem.js',
),
'styles' => array(
'modules/ve-mw/ui/styles/inspectors/ve.ui.MWAlienExtensionInspector.css',
'modules/ve-mw/ce/styles/nodes/ve.ce.MWAlienExtensionNode.css',
),
'dependencies' => array(
'ext.visualEditor.mwcore',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.mwgallery' => $wgVisualEditorResourceTemplate + array(
'scripts' => array(
'modules/ve-mw/dm/nodes/ve.dm.MWGalleryNode.js',
'modules/ve-mw/ce/nodes/ve.ce.MWGalleryNode.js',
'modules/ve-mw/ui/inspectors/ve.ui.MWGalleryInspector.js',
'modules/ve-mw/ui/tools/ve.ui.MWGalleryInspectorTool.js',
),
'dependencies' => array(
'ext.visualEditor.mwcore',
),
'messages' => array(
'visualeditor-mwgalleryinspector-placeholder',
'visualeditor-mwgalleryinspector-title',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.experimental' => array(
'dependencies' => array(
'ext.visualEditor.language',
'ext.visualEditor.mwalienextension',
),
'targets' => array( 'desktop', 'mobile' ),
),
'ext.visualEditor.icons' => $wgVisualEditorResourceTemplate + array(
'styles' => array(
'modules/ve-mw/ui/styles/ve.ui.Icons.css',
),
'dependencies' => array(
'oojs-ui.styles.icons-editing-advanced',
'oojs-ui.styles.icons-editing-core',
'oojs-ui.styles.icons-editing-styling',
'oojs-ui.styles.icons-editing-list',
'oojs-ui.styles.indicators',
'oojs-ui.styles.textures',
),
'targets' => array( 'desktop', 'mobile' ),
),
2011-11-28 20:28:28 +00:00
);
/* Extend MediaWiki configuration */
// Set default values for new preferences
$wgDefaultUserOptions['visualeditor-enable'] = 0;
$wgDefaultUserOptions['visualeditor-betatempdisable'] = 0;
$wgDefaultUserOptions['visualeditor-enable-experimental'] = 0;
$wgDefaultUserOptions['visualeditor-enable-language'] = 0;
$wgDefaultUserOptions['visualeditor-hidebetawelcome'] = 0;
/* Configuration */
// Array of ResourceLoader module names (strings) that should be loaded when VisualEditor is
// loaded. Other extensions that extend VisualEditor should add to this array.
//
// WARNING: When removing a module, first remove it from this array, wait for the change
// to propagate, and only then remove the module code and module registration. Otherwise
// there may be a period of time during which VisualEditor depends on a module that no
// longer exists.
$wgVisualEditorPluginModules = array();
// Array of modules to load based on a preference. Keys are preference names, values are
// ResourceLoader module names.
// Remember to also set defaults in $wgDefaultUserOptions!
$wgVisualEditorPreferenceModules = array(
'visualeditor-enable-experimental' => 'ext.visualEditor.experimental',
//'visualeditor-enable-mwalienextension' => 'ext.visualEditor.mwalienextension',
);
// URL to the Parsoid instance
// MUST NOT end in a slash due to Parsoid bug
$wgVisualEditorParsoidURL = 'http://localhost:8000';
// Proxy to use for curl requests.
// false: use direct connection to Parsoid daemon ($wgHTTPProxy is not used
// either)
$wgVisualEditorParsoidHTTPProxy = false;
// Interwiki prefix to pass to the Parsoid instance
// Parsoid will be called as $url/$prefix/$pagename
$wgVisualEditorParsoidPrefix = 'localhost';
// Forward users' Cookie: headers to Parsoid. Required for private wikis (login required to read).
// If the wiki is not private (i.e. $wgGroupPermissions['*']['read'] is true) this configuration
// variable will be ignored.
//
// This feature requires a non-locking session store. The default session store will not work and
// will cause deadlocks when trying to use this feature. If you experience deadlock issues, enable
// $wgSessionsInObjectCache.
//
// WARNING: ONLY enable this on private wikis and ONLY IF you understand the SECURITY IMPLICATIONS
// of sending Cookie headers to Parsoid over HTTP. For security reasons, it is strongly recommended
// that $wgVisualEditorParsoidURL be pointed to localhost if this setting is enabled.
$wgVisualEditorParsoidForwardCookies = false;
// Timeout for HTTP requests to Parsoid in seconds
$wgVisualEditorParsoidTimeout = 100;
// Serialization cache timeout, in seconds
$wgVisualEditorSerializationCacheTimeout = 3600;
// URL to RESTbase. The page name will be appended directly to this value, so this needs to be set
// to something like 'https://rest.wikimedia.org/en.wikipedia.org/v1/page/html/' including the
// trailing slash.
//
// If this is set, the page HTML will be requested from RESTbase. If this is not set, the page HTML
// will be requested from the API, which will send an HTTP request to Parsoid or to RESTbase
// if available.
$wgVisualEditorRestbaseURL = false;
// Namespaces to enable VisualEditor in
$wgVisualEditorNamespaces = array_merge( $wgContentNamespaces, array( NS_USER ) );
// Whether to enable the (experimental for now) TOC widget
$wgVisualEditorEnableTocWidget = false;
// List of skins VisualEditor integration supports
$wgVisualEditorSupportedSkins = array( 'vector', 'apex', 'monobook', 'minerva', 'blueprint' );
// List of browsers VisualEditor is incompatibe with
// See jQuery.client for specification
$wgVisualEditorBrowserBlacklist = array(
// IE <= 8 has various incompatibilities in layout and feature support
// IE10 and 11 have problems but mostly work OK-ish so they're greylisted; IE9 to come
'msie' => array ( array( '<=', 9 ) ),
// Android 2.x and below "support" CE but don't trigger keyboard input
'android' => array( array( '<', 3 ) ),
// Firefox issues in versions 12 and below (bug 50780)
// Wikilink [[./]] bug in Firefox 14 and below (bug 50720)
'firefox' => array( array( '<=', 14 ) ),
// Safari corruption issues from various old browser plugins
'safari' => array( array( '<=', 6 ) ),
// Opera < 12 was not tested and it's userbase is almost nonexistent anyway
'opera' => array( array( '<', 12 ) ),
// Blacklist all versions:
'blackberry' => null,
'silk' => null,
);
// Whether to use change tagging for VisualEditor edits
$wgVisualEditorUseChangeTagging = true;
// Whether to disable for logged-in users
// This allows you to enable the 'visualeditor-enable' preference by default
// but still disable VE for logged-out users (by setting this to false).
$wgVisualEditorDisableForAnons = false;
// Whether to show the "welcome to the beta" dialog the first time a user uses VisualEditor
$wgVisualEditorShowBetaWelcome = false;
Move edit tab generation into PHP and make it more configurable * Generate the edit tabs and the section edit links in PHP, with a fallback in JS for cases where we don't have them yet due to caching. But only change things if VE is enabled, and have the JS correct the state if the wrong cached HTML comes through. * Make the order of the tabs/links and the messages to use as captions configurable * Make the edit tabs and section edit links always be present in the page (regardless of namespace, user prefs, etc.) but be hidden and have JS unhide them (using html.ve-available) if appropriate * Add appendix messages so we can do a superscript "beta" even in places where we can't use HTML in the message VisualEditor.php: * Add new hook registrations * Remove edit link caption messages from the init init module because they're now added dynamically in VisualEditor.hooks.php * Add a noscript CSS module so we can hide some things in JS-less environments * Remove $wgVisualEditorTabLayout and replace it with $wgVisualEditorPosition * Add config vars for link captions, with null causing us to use the default caption * Add config vars for link caption appendices. Too many config vars but we'll clean that up later VisualEditor.hooks.php: * Dynamically add tab messages to the init init module * Remove unused globals in onBeforePageDisplay() * Add noscript CSS module * Add a SkinTemplateNavigation hook that changes and reorders the edit tabs as appropriate * Add a DoEditSectionLink hook that overwrites the edit section links * Export the new config variables to JS VisualEditor.i18n.php: * Add beta appendix message * Add a message for the default VE edit section link ve.init.mw.ViewPageTarget.init.css: * Remove the animation on the edit section links * Darken the color of the brackets and the pipe from #ccc to #555 * Style the beta message to be superscript-like (but not real <sup> to avoid moving the baseline) ve.init.mw.ViewPageTarget.noscript.css: * Hide the VE edit tab, the pipe and the VE edit section link initally unless and until JS unhides ve.init.mw.ViewPageTarget.init.js: * Toggle .ve-not-available / .ve-available * Edit tabs ** Only generate the the edit tabs if they're not already there from PHP ** Rewrite the edit tab generation to mirror what's being done in PHP * Section edit links ** Same as for edit tabs ** Also add mw-visualeditor-expanded to pad the brackets ve.init.mw.ViewPageTarget.js: * #ca-ve-edit is now always the VE tab (and #ca-edit always the edit source tab) so update the .selected behavior accordingly Change-Id: Idcb15faea7fabe5fe7578b1508079969b27d2469
2013-08-01 19:14:41 +00:00
// Where to put the VisualEditor edit tab
// 'before': put it right before the old edit tab
// 'after': put it right after the old edit tab
$wgVisualEditorTabPosition = 'before';
$wgVisualEditorTabMessages = array(
// i18n message key to use for the VisualEditor edit tab
// If null, the default edit tab caption will be used
// The 'visualeditor-ca-ve-edit' message is available for this
'edit' => null,
// i18n message key to use for the old edit tab
// If null, the tab's caption will not be changed
'editsource' => 'visualeditor-ca-editsource',
// i18n message key to use for the VisualEditor create tab
// If null, the default create tab caption will be used
// The 'visualeditor-ca-ve-create' message is available for this
'create' => null,
// i18n message key to use for the old create tab
// If null, the tab's caption will not be changed
'createsource' => 'visualeditor-ca-createsource',
// i18n message key to use for the old create tab on pages for files in foreign repos
// If null, the tab's caption will not be changed
'editlocaldescriptionsource' => 'visualeditor-ca-editlocaldescriptionsource',
// i18n message key to use for the old edit tab on pages for files in foreign repos
// If null, the tab's caption will not be changed
'createlocaldescriptionsource' => 'visualeditor-ca-createlocaldescriptionsource',
Move edit tab generation into PHP and make it more configurable * Generate the edit tabs and the section edit links in PHP, with a fallback in JS for cases where we don't have them yet due to caching. But only change things if VE is enabled, and have the JS correct the state if the wrong cached HTML comes through. * Make the order of the tabs/links and the messages to use as captions configurable * Make the edit tabs and section edit links always be present in the page (regardless of namespace, user prefs, etc.) but be hidden and have JS unhide them (using html.ve-available) if appropriate * Add appendix messages so we can do a superscript "beta" even in places where we can't use HTML in the message VisualEditor.php: * Add new hook registrations * Remove edit link caption messages from the init init module because they're now added dynamically in VisualEditor.hooks.php * Add a noscript CSS module so we can hide some things in JS-less environments * Remove $wgVisualEditorTabLayout and replace it with $wgVisualEditorPosition * Add config vars for link captions, with null causing us to use the default caption * Add config vars for link caption appendices. Too many config vars but we'll clean that up later VisualEditor.hooks.php: * Dynamically add tab messages to the init init module * Remove unused globals in onBeforePageDisplay() * Add noscript CSS module * Add a SkinTemplateNavigation hook that changes and reorders the edit tabs as appropriate * Add a DoEditSectionLink hook that overwrites the edit section links * Export the new config variables to JS VisualEditor.i18n.php: * Add beta appendix message * Add a message for the default VE edit section link ve.init.mw.ViewPageTarget.init.css: * Remove the animation on the edit section links * Darken the color of the brackets and the pipe from #ccc to #555 * Style the beta message to be superscript-like (but not real <sup> to avoid moving the baseline) ve.init.mw.ViewPageTarget.noscript.css: * Hide the VE edit tab, the pipe and the VE edit section link initally unless and until JS unhides ve.init.mw.ViewPageTarget.init.js: * Toggle .ve-not-available / .ve-available * Edit tabs ** Only generate the the edit tabs if they're not already there from PHP ** Rewrite the edit tab generation to mirror what's being done in PHP * Section edit links ** Same as for edit tabs ** Also add mw-visualeditor-expanded to pad the brackets ve.init.mw.ViewPageTarget.js: * #ca-ve-edit is now always the VE tab (and #ca-edit always the edit source tab) so update the .selected behavior accordingly Change-Id: Idcb15faea7fabe5fe7578b1508079969b27d2469
2013-08-01 19:14:41 +00:00
// i18n message key to use for the VisualEditor section edit link
// If null, the default edit section link caption will be used
'editsection' => null,
// i18n message key to use for the source section edit link
// If null, the link's caption will not be changed
'editsectionsource' => 'visualeditor-ca-editsource-section',
// i18n message key for an optional appendix to add to each of these from JS
// Use this if you have HTML messages to add
// The 'visualeditor-beta-appendix' message is available for this purpose
'editappendix' => null,
'editsourceappendix' => null,
'createappendix' => null,
'createsourceappendix' => null,
'editsectionappendix' => null,
'editsectionsourceappendix' => null,
);
// Whether to enable VisualEditor for half of all new accounts (userID even).
$wgVisualEditorEnableSplitTest = false;
unset( $wgVisualEditorResourceTemplate );