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
New changes:
681804e Only call execCommand() on the surface in Firefox
c9ed5d8 Include editing-core icon pack
792b450 Update OOjs UI to v0.9.2
Change-Id: If75e4993b8c9c7134a69bc5fbffb335beacd8b9e
New changes:
94d3aff [BREAKING CHANGE] ve.utils: Remove ve.indexOf in favour of Array#indexOf
d6dac30 Provide the jquery.client library
5a7276b Follow-up d6dac30a097: fix typo in github URL
d5db4bd Add jquery.client as a base library
5cdd049 Only set a data URI src on inline slugs in Firefox
83edb7f Use equalDomElements in onCopy tests
9a1825a Ignore linebreaks after <!DOCTYPE>s
a077291 Add rowspan and colspan to list of corrupted attributes
6fd56dd Move selection sub-classes to sub-folder
f828889 Convert spaces to tab indentation
ca82723 Add merged cells table to converter examples
5f5d1b0 Add unit tests for ve.dm.Selection sub-classes
ea5515e Fix unbalanced transaction when removing to/from the edge of an inline node
24fe910 Stop bogus emits from handleLinearDelete
f1354ec Update OOjs UI to v0.9.1
1d09278 Localisation updates from https://translatewiki.net.
cf0787d Follow-up 94d3aff4f0c7: fix fatal for classes with .static.matchTagNames unset
Local changes:
Updates to VisualEditor.php and re-generation of extension.json.
Change-Id: Ib1a4521d17ec1c327c9ab5659d7b237ef4397c92
Since all transclusion nodes can be interacted with (including the
'hidden' ones,) there is no need for MWTransclusionMetaNodes.
Change-Id: I23d37e3d82029b7475ec68ebb04883c7e05370cc
Also appending both the default value and the example value to the
field description. The input placeholder will show the default
value, the example value, or nothing.
Related to TemplateData change I9e2d66a805e25 but works without.
Bug: T53049
Change-Id: I4e5e57546f6d3c22e778ba061a5344ddee085c17
ve.init.mw.Platform.js, ve.init.sa.Platform.js & ve.ui.MWLanguagesPage.js
use $.uls, but nothing in the ext.visualEditor.core module does.
Change-Id: I0b3d8c2b25694e29c86b91d7df7875f1be24fb2d
New changes:
a65ad7c Move special character inserter to toolbar dialog manager
… and add it to the toolbar as a terminal option.
Change-Id: I35834d866a13c5dea7f5a520c63b8a99451fcf6d
New changes:
04a5947 Localisation updates from https://translatewiki.net.
dd4691b Update OOjs to v1.1.5
2e1a0bb Context refactor
Local changes:
Add context item support for references, citations, templates and links
Change-Id: I5d488ecbf9768dc63de6e545505dbfd5eb84cc61
* jquery.placeholder: Wasn't being used at all, removed
* rangefix: Only used in ce.Surface, moved to the module that contains ce.Surface
Change-Id: Idea65687752a9fd31e4ad7594181e402d26b579d
It depends on jQuery UI so it pulls in a bunch of things
that we can do without while loading VE.
This does mean there's a network delay while we load
mw.feedback (if it's not in localStorage cache already),
so after the user clicks "Leave feedback", nothing happens
for a little bit until the code arrives and the feedback
dialog appears. There is no spinner or anything during this
time; we may possibly want to add one.
Change-Id: Ie4dd9efcfff238fefad2783e22575ffd3fc648e7
New changes:
2e75a9b newFromDocumentInsertion: Also remap store indexes in internalList data
f04b980 Transaction#newFromDocumentInsertion: Add some more tests
60d051c ve.ce.FocusableNode: Ignore children of elements using CSS column-count in Chrome
1089125 [BrowserTest] Update Gemfile.lock
3f376f5 [BrowserTest] Define Rubocop LineLength as 100
ee63e73 Work around Firefox bug allowing cursor in cE=false
505369a Unify data transfer handlers for paste and drop
Change-Id: I5e9c3bdf45610cd4a46de7af9bec78fa1847c23c
New changes:
181561b Support generic data transfer handlers
ecdb379 Only replace selection when we know it has changed
afb37fd Remove some errant references to MediaWiki/Parsoid that don't belong
82f57e0 Update OOjs UI to v0.8.0
489ff8a Simplify AlignableNode by inheriting from ClassAttributeNode
bac7e30 Try html/plain text drop if no file handlers found
Change-Id: Id75692418c331191ea638128fe835350e334837d
MWReferenceDialog uses ve.init.mw.Target in its setup code,
so it needs this dependency. Otherwise the tests fail intermittently;
usually only when loading from localStorage for some reason.
Change-Id: I6c0f66263e2cf6ffcf926fefaac4de1e53eac130
Add the display for the actual uploader, and change the label
for the artist to "Artist" for differentiating the two roles.
Bug: T88835
Change-Id: Ie939572e7c1240321556f6f81ed9e67d792a339d
New changes:
7484fc6 Fix center alignment of alignable nodes
8b97cb2 Mix alignable into block images
dec17f2 ve.utils: Apply whitelist in setDomAttributes() attribute removal
f9919de Add attribute transformation for color attribute
7a2e278 Make CSS classes in alignable configurable
5b7f97b Handle showHandles smartness in AlignableNode
5a89e10 Emit position event before window transition, not after
6138c67 demo: Switch mode back to VE when changing page
167b3ed demo: Switch mode back to VE when changing language
2d8c3e7 Native leftarrow and rightarrow
aa2c7c5 build: Bump various devDependencies
1a7480a Add table styles for block images and move to init.sa
048a394 Avoid jQuery in ve.dm.BlockImageNode.static.toDataElement
894fcfa Localisation updates from https://translatewiki.net.
Change-Id: Id5e034b3bba6405b6b70e52d6f8926388743c2ce
Change the media search widget to work with resource queues and
providers. Create providers based on the user's filerepo settings
and aggregate their responses with the media queue. Stop asking
for more results from providers that are depleted.
Also fixes a rather nasty infinite-loop bug where the API returns
only very few images, and the UI keeps asking for more.
Bug: T78161
Bug: T88764
Change-Id: I65aed3446cd1f056476c56e6e04522c70e49e595
This somehow got missed in the conversion to extension registration.
It's being read as an attribute, but also as a Config setting, which
throws ConfigExceptions if not set.
Change-Id: I261398e269ab60a8787877f8a7ace97c50c2be45