* On save, VE will now fetch and append modules and jsconfigvars to the save
event, which respectively contains necessary JS config module data and the
list of required modules to be added on the page.
* The jsconfigvars are now properly added to mw.config on edit save.
* If any new modules are now required by the page after an edit, they will be
loaded by ResourceLoader through mw.loader.load.
Change-Id: Ib3990078a22ad9e46debf3ce174e7cf27b86d944
When you bind to your own events you're probably using the wrong
design pattern.
The events are kept (without arguments) for the purpose of tracking.
Change-Id: I6983319f9e0ca179e609afb00c821e3eab2161c9
Allows us to rename onSaveEvent back to onSave.
Before this change,
* ve.init.mw.Target.prototype.save ->
* ve.init.mw.Target.prototype.onSave, emit save event ->
* ve.init.mw.DesktopArticleTarget.prototype.onSaveEvent (or MF equivalent)
With this change,
* ve.init.mw.Target.prototype.save ->
* ve.init.mw.Target.prototype.saveSuccess, emit save event ->
* ve.init.mw.DesktopArticleTarget.prototype.onSave (or MF equivalent)
Change-Id: I016262b38a941c93c0978391491baa6d5a32fe28
Don't try to apply page settings changes to meta list unless we're actually
applying. "Cancel" shouldn't apply changes, we have another button for that.
Bug: T97682
Change-Id: I9eae20c3946b315413340268e44537cdbec2e455
The fact it has to exist for the two previous statements to
not fatal is a bit of a clue. I assume this made sense at
some point in the past.
Change-Id: Ic9c04395408301f514ff7e9a224b8e2c30d64896
By moving the registration to the code which introduce the commands, if any
module such as 'media' is omitted from an integration, we don't register a
command which is never used.
MWCommandRegistry.js remains to be used for over-rides of core tools' exact
commands, such as insertTable.
Change-Id: I84b4351b980a764d3c72a564f605821ae1c761f9
* Make save a FragmentDialog and open with WindowActions so
the selection is restored automatically.
* Pass in some information in setup data.
Change-Id: I254b71f252adce064b9c2d2bf2cb6c8d0018e31f
MW target has 'static' methods, some of which aren't attached
to the static property, the rest of which should be instance methods.
Rename success/fail functions to remove 'on' as that is reserved for
actual event listeners.
Change-Id: I63e68dbe1923906208b180abfc4a9a280b4d098e
* Use local edit source tool, and emit event to MF
* Bring in toolbar styles, bonus: remove old desktop style hacks
Bug: T96186
Change-Id: I89351e409aa4e9d626edd7151ae05bdcd58f1cee
New changes:
11953f7 Localisation updates from https://translatewiki.net.
0dbafb0 Update OOjs UI to v0.12.2
cbd0982 Replace placeholder color with opacity
087365c Support other types of 'empty' document placeholders
7692890 Make scrollIntoView a VE utility function
5a1a159 Localisation updates from https://translatewiki.net.
8edf71e [BREAKING CHANGE] Kill ve.indexOf and thus @until
bb02b02 build: Bump various devDependencies to latest
cb5b2cd Fix scrollIntoView util binding
8feab4e [BREAKING CHANGE] Use config object for Target constructors
Local changes:
* Use config object for Target constructors
Bonus:
* Add CSS classes to MW targets
* Use 'super' calls
Change-Id: Ieb4e4eb3663aab2706c0f3ecc8b82e00555df1d5
* Bring in back button & save button from MobileFrontend
so they are properly styled OOUI widgets
* Accordingly, move toolbar save button code up into base
MW target.
Bug: T96186
Change-Id: Ic89dd4efb831fc3b09980da16524276f6568619d
.set() should not overwrite existing deferreds; instead,
it should resolve the existing deferred if it's pending.
This is necessary because .set() is used by processResult().
Without this, passing .get() a title that no information
is known for results in a promise that is never resolved,
because the associated deferred is overwritten as soon
as the API response arrives.
Still make .set() a no-op if data has already been set,
by checking if the deferred is pending. For .resolve() this
doesn't matter, but for modifying this.cacheValues it does.
Bug: T107212
Change-Id: I70e8c5450f23062db214ccc5c585624d41de6509
Usage:
In a skin, that needs this offset, e.g. because it has a fixed header, it should add
this config var somewhere before the hook BeforeOutputPage is called:
$wgVisualEditorSkinToolbarScrollOffset['vector'] = 60;
(if 60px is the offset to use)
Depends on: I2e10c12df8277c84d948e48c6a132c03d6324693
Bug: T95528
Change-Id: Iaa86c2f68afa6403fcc4f5b7c655704512beead4
Depends on I1ba8978dd in core.
Bonus: remove not-allowed-cursor & highlight title (which was
broken) now that we can display this information properly.
Bug: T106810
Change-Id: I1800490ba1b8e10ff54b26372a8a78661c1c7d68
Instead of using the removed 'select' event submission on SearchWidget.
Rename event fired by MWParameterSearchWidget to reflect the new re-
emissioned choose event.
Follow up: I7fa97f208da0b3b185f1b09b87fef9c9afaee2f1
Bug: T106696
Change-Id: I1d954a7243649d7834373537d70bfadf68f52c9d
Prevent typing newlines by pressing the 'Enter' key on the keyboard,
like in a single-line <input type=text />; and filter newlines from
pasted / IME'd text.
Also:
* Use 'classes' config rather than .$element.addClass()
* Remove no-op 'tabIndex' setting (this is the default already)
Bug: T106325
Change-Id: I42d18f51f5ca989818577d6f045f6a516bb5b121
* All translations will be in tests/browser/i18n folder
* Hebrew json’s are added, which needs to be translated.
Paired with Zeljko.
Bug: T105466
Change-Id: I4ae516758fb01a41f0dcf53c7cf3e609c7601cf3
Attach listeners to search *result* widget 'choose' events instead.
Also, pass reference model as 'data' to MWReferenceResultWidget, instead
of index so we don't have to do a lookup later.
Change-Id: I8a9b7ddaa70e29406726ac8463582a8bcf813128
No retry right now, but we should at least stop failing silently. Doing this
in a window.alert() for now, as OOUI isn't available at this part of the
page load just yet (that will be coming soon).
Bug: T97041
Change-Id: Iacb195667215ee69d3991e4c41651ab6042243c5
In clipboard mode we need the full body regardless of if the reference
has changed since load or not.
Bug: T104230
Change-Id: Ie59e04d381f2fd2680e8af0cf05a80df71052822
This data is used for marking links red, but links which are known
but don't exist (e.g. interwikis) are not red.
Also fix bug in API caused by trying to return a value of (bool)true which is
apparently not allowed. Use (number)1 instead.
Bug: T104604
Change-Id: I599a513a27b31f7167e688d73bc3685141249971
Core code now has a scrollIntoView animation triggered on focus
which needs to be cancelled before we scroll to the section heading.
Change-Id: I5eb6a5c98b38c2510d2d7f0108fe56e607b34bd6
This reverts commit cb11cbd2f5.
Actually not needed after 3d36cac7fc4808f708f03b66f5c099de440e4569
in OOjs UI, and would change the UI in unexpected way.
Bug: T103403
Change-Id: Ia30b168ea29d03aa76ad81d1f9894a67604fdc08
Starting with I21fbbd3247bf7801e5ef9bd5312f95777f4dd6ef, Parsoid
will emit a new HTML for its Cite extension, which enables CSS
styling. In I487095df8a7c4241a14f7b4480360f6774130bec the new
module 'ext.cite.style' is added to the Cite extension to style
this new HTML format.
This patch
* Loads the ext.cite.style module if the Cite extension is
present.
* Uses the new HTML format for the internal structure of
reference and reference list nodes, so they are correctly
styled.
Backwards compatibility: Only new HTML is used internally in VE,
so as long as ext.cite.style can be loaded the new styles will be
used. It does not depend on which format Parsoid returns, so this
patch only depends on the Cite extension patch, not on the Parsoid
one.
Note: The only way I've found of adding a ext.cite.style dependency
only if Cite is present is to register the whole
ext.visualEditor.mwreference module in the
onResourceLoaderRegisterModules hook. Maybe someone can point to
a better way?
Bug: T86782
Change-Id: Ibf333a502d64d2ed6e029221458b7c606554e414
De-emphasising the product name as it's intimidating and irrelevant to most
users what the name of the software they're using is. Leaving the beta
welcome dialog alone, as that's being worked on as a larger piece.
Change-Id: I92e82ed004f7615f96818872df5f64fec38fbee0
Not sure if a TWN config change happened, but this breaks the repo pretty epically.
This reverts commit 57237c2133.
Change-Id: I3ed8140e7a9e052d4c547724648ce8859c27db38
LinkAnnotationInspector in VE core calls
this.setAnnotation( null ); on teardown, which causes
MWLinkAnnotationInspector#onInternalLinkChange to be invoked
with a null fragment.
Bug: T103176
Bug: T104231
Change-Id: Ibb50ba1696609bebdfc2857ea292ee30b6b5126a
We used to re-label the other edit tab but this fell away for Wikimedia users
when we switched from adding a new tab to replacing the old one via config;
over-riding 'tooltip-ca-edit' looks like the best way of doing this here. The
mention of wikitext means it's less of a shock to users.
Bug: T99271
Change-Id: I0cb871095c9e5e8ef5a3c73b3bb105079b451dec
Get the HtmlDocument in a different way that doesn't involve
ve.init.target.
For page (non-Flow) MW VE, I checked that it yields the same result.
Bug: T103176
Change-Id: I54bdf4f29f6acf4359be45b5b2ddfd23b5835c34
All link input/title input functionality has been moved to core, so
we can replace the link widget, redirect widget and template search
widget with it.
Depends on Ib463e60cad96 in MediaWiki core.
Change-Id: I452f3b86ead403307072cf904f0553c9771f4300
Instead of just assuming we're in /wiki/. That might be OK for VE core
and external links, but not for internal MW links.
Bug: T85619
Change-Id: I53d7fed63a66e3c72d4c8fd66cd1f85fb10a2e55
This module is required in order to alienate all extension blocks
by default. Otherwise they are interpreted as plain divs which
allow content editable.
Bug: T103455
Change-Id: I08f6b9a516ba6bee6ed18256222108116eceee1e
This is a hacky fix, we should find a better way of telling the
model registry that language annotation loses to certain RDFa types.
Bug: T101977
Change-Id: I8be3aa55cbbc2832b8a02a15de27289b3041967e
When loading VE by clicking Edit on a view url, this naturally
works (we temporarily append our query, and remove it when ready).
When loading VE from a permalink (e.g. Open in new tab) or any
other source linked from HTML pages, then we're not in control
over adding the query (it's already there); we're only in control
over restoring the view url afterwards.
Bug: T102363
Change-Id: I4912ff1c6b28ac987517760ffed481a4cd3bd1ca
In the MediaWiki API, booleans exist or don't exist (with an empty string),
you can't check "if (bool)..." since that will always be false. The API has
a newer formatversion=2 that fixes this but we're not using that yet.
Also update the defaultSource placeholder to match the API response. If one
would only update defaultSource without the 'if'-fix, one can reproduce T66822
on a local wiki (JSON-P request instead of JSON).
Bug: T66822
Change-Id: I5a8ab1136325c33c62982c0869fa14ca2fb26034
Previously, it failed in WCAG contrast ratio tests. To make
it pass, font size has been slightly increased and color
has been darkened.
Increased the line height to match increased font size
Bug: T100017
Change-Id: I073ca96c64d5e3af3c01936d34e9e83e9384b4b5
New changes:
3368c4c Remove some assumptions about the state of the context
79918af Move contexts to subfolder
820eaec Tests for some drag/drop functionality
e5f0e3e Convert CE surface tests to use a mock UI surface
c81dbcf Localisation updates from https://translatewiki.net.
7561ff3 Create a mock UI surface that only contains a model for model-only action tests
ad60333 Convert test timings on APIResultsQueue from seconds to milliseconds
b52d7df Table cursoring tests
3f8e821 Localisation updates from https://translatewiki.net.
9c737df Update OOjs UI to v0.11.4
5befc34 Stop using deprecated aliases for OO.ui.mixin.*
Change-Id: Ida6d4ba724686d8189975c55a18c4a6c2cfe4875
've-ui-mwTitleInputWidget-menu', too. Removed in
b3d2e9013f, but we actually
use these classes in styles and in browser tests.
Bug: T101600
Change-Id: I40dae9c68bbcba2f980c307fe0dfa0956b4eb78a
Although an internal link is unlikely to be a valid external link, this
prevents an annoying experience when the user switches to external and
then back to internal while exploring features.
Change-Id: I178cf3f641db683f5dd0a49c246c204ded89760c
Once MW images are registered, we should remove core image support so
we don't accidentally match to them (e.g. an MW inline image with an
unsupported extra RDFa type).
Change-Id: I1c8567346c371fe338f95b232c9ac53e009c5a46
This new property is optional and should not be assumed to be present.
Follows-up 2ac7959849.
The constructor defaults 'maps' to an empty object, so there's no need
to add a "|| {}" in extend() or getMaps(). We merely need to make sure
we don't accidentally dereference the default in exchange for undefined.
Change-Id: Id2cb93696d12a20ee14f9d59705877dc174e6564
New changes:
9d162ce Restore the selection to a sensible place when closing FindAndReplace
57229ac Only apply annotations if 'done' is clicked
bfb17ee Always show cancel button on annotation inspectors
91672cf Disable 'done'/'insert' button when input invalid
aef9cbd Only create annotations from text input if it is valid
a384b96 [BREAKING CHANGE] Make getTextFromAnnotation/getAnnotationFromText static
fa09ab7 Scroll table selection into view when it changes
Local changes:
Make getTextFromAnnotation/getAnnotationFromText static
Change-Id: Id3c2a1efb1f327fa6d5b93d57d90bb5bb8ee88f8
The red-linked inline images in VE are now identifited as red links and image errors.
They can be changed and thereby be modified just as any other inline image on the editor.
Change-Id: Idb6f6f2da14379fd7db6ca19613dad32fe40023d
Rephrased "Leave feedback" to "Leave feedback about this software"
to make it clearer that we are talking about VisualEditor, not the
content of the article currently being edited.
Bug: T91804
Change-Id: I24a16ff5e07316abb16347ff76a5d466d6e62580
New changes:
a6144f3 [BREAKING CHANGE] Allow models to specify which extra RDFa types they support
Local changes:
* Use new allowedTypes property in model registry
* For reference nodes, allow 'dc:references'.
* For transclusion nodes, allow any other types.
* For image nodes, allow 'mw:Error'.
Bug: T98999
Change-Id: I7eb2b61eb9336792535e9fd6d5a8dd2d57065f04
OOUI was effectively overriding this with it's own rule for labels in an option
widget.
Bug: T99267
Change-Id: I82ce2d5ec1a859075d7bf1010ca76cdea9ead1a0