New changes:
bd0dd861f Replace LinearContextItem mixins with sub-widgets
60ea01484 ve.Document: Use more specific type for documentation
96b95e288 Use correct action test in CommentInspector teardown
a493d5bf1 Update OOUI to v0.26.3
9c0b07868 Remove table move icons, upstreamed to OOUI
Bug: T191623
Bug: T191818
Change-Id: Ia633375f56c1b844e70d101d0a9383fa4f73e1e9
Wikis with a local link over-ride configured will need to do so here
for the new message `visualeditor-sourcefeedback-link`; wikis with a
remote link configured will need to update their configuration ahead
of this being deployed, setting $wgVisualEditorSourceFeedbackTitle.
Bug: T157953
Change-Id: Iea7ad8328b03f69e01d7c67ca1ddbb7ae7906288
These are not specific to desktop.
Also make the static builders static, and move VE target specific
code to caller, such as the click handler.
Change-Id: Ib7e769e3d6d339b9e66e1bc924480b0b0d5db17d
New changes:
4922429f7 Merge all theme overrides into single files
Local changes:
* Update extension.json module definitions for 4922429f7
* Merge all VE-MW theme overrides into single files
Change-Id: Ie8bb4a78c3c50dd4e930f25f6f72bc2f395bd10c
New changes:
8d8030fd1 Localisation updates from https://translatewiki.net.
37302d389 Show timeout message if diff times out
4fa6e3005 ve.dm.Converter: Handle meta nodes for empty annotations same as normal
f74c630d6 ve.Node: Make #getOffsetPath not fail while rebuilding the document
bd62f3e74 Fix global overlay classes
Bug: T180842
Bug: T187690
Bug: T189118
Change-Id: Ieb404db788bd9ff743f00131458c44f01deac466
This happens to work correctly because we depend on 'mediawiki.user',
and that depends on 'mediawiki.storage'. This is just an implementation
detail though and could change.
Change-Id: Ia23c83ae73bfbcc65b4a169bddf861d83691822e
New changes:
23666aff0 color-picker: Remove fallback PNGs we don't use
Local changes:
Pull through color picker lib from core
Change-Id: Ib213f801a90e400fae2838e21bbdb011dc61311a
New changes:
7551f6c66 [BREAKING CHANGE] Rename class ve.dm.IndexValueStore->ve.dm.HashValueStore
Local changes:
Follow-through rename of IndexValueStore->HashValueStore
Bug: T188900
Change-Id: If60d0c637fe92f0e7afe916c064fafb17980d063
Ensure we start with the same HTML (i.e. if an edit has
been made since the crash-recovery):
* Whenever an article target is activated, stash the initial
document html, other parsoid response data, and the request
parameters (pageName, mode, section) in session storage.
* Whenever an article is fetched through the target loader,
recover from session storage if the request parameters match.
Store transactions:
* On document transaction (debounced) append the latest
changes to session storage.
* If a document state is recovered from session storage,
attempt to re-apply the stored transactions.
Clear transactions:
* Whenever the target is torn down (i.e. save, deliberately
closing the editor to go back to read mode)
Other:
* If writing to session storage fails once, disable future
attempts for that session (assume storage quota exceeded)
* Disable tempWikitextEditor when recovering. We don't have
the transaction code loaded yet to perform the recovery.
Bug: T57370
Depends-On: I3832243fc347a99641fcb7e39a887a153c9a3b22
Depends-On: I448fb566fe9f7f5b5a76e88b70ca000e3d35b415
Change-Id: Id9d877f903cf4796a52f90991c030417a9f8786f
Principal code is in includes/*.php with the file named the same as the class it
contains. The maintenance script is moved to maintenance/ for clarity.
Change-Id: Icb4cdffb1bd4716e14f883d667def96671b42992
New changes:
21a5d55b8 [BREAKING CHANGE] Store metadata as block nodes in the main data list
2f9868aae Localisation updates from https://translatewiki.net.
7a224cf4b Remove <style> tags from pasteTarget ASAP
fb4e894b6 Workaround missing child selector in OOUI for menuLayout
fa4f35281 rebaser: Fix sequencing of server operations
931ee29f6 SurfaceSynchronizer: Also translate selections that are not mentioned in the change
d232b8f04 Disable undo/usurp within SurfaceSynchronizer
d1b7fc597 ve.dm.Change: Truncate stores as well as transactions on conflict
7606f684d rebaser: Only apply artificial delay to submitChange events
9473e8b42 Toolbars: Replace $.width with clientWidth/offsetWidth
abb8f2075 ve.ui.DesktopContext: Remove unused CSS
050414205 ve.ui.DesktopContext: Remove old unnecessary CSS
7b8cbb830 Failing test case for losing annotations
5447d33e4 CommentNode: Protect against call after teardown
bf98ca2b6 Rebaser: Use better hack for disabling history commands
90c07f46c Rebaser: uninitialize fully
2a59016e4 Move updatingName recursion guard out of debounce
Bug: T56299
Bug: T185532
Bug: T185544
Bug: T185599
Bug: T185716
Bug: T185747
Change-Id: I45251811e3fbb3323a25ca5cf364e4cb94aa1d01
mw.storage catches errors, so we won't crash horribly when the user has
localStorage disabled / full.
Bug: T181822
Change-Id: I212994eb535b9a8fb5f6c09deaa10b16c3d7f10e
* Move SpecialCollabPad.php to /.
* Move screenshots for BetaFeatures to images/.
* Move localisation messages to i18n/.
Change-Id: I874ae135a3ac58118c3dea105136c8c8b6fb41bc
ext.visualEditor.articleTarget (for ve.ui.MWSaveDialog) previously
missed the editing-advanced pack, so the [[ ]] icon only showed up
by happy accident of the VE toolbar loading it and generally being
there.
ext.visualEditor.diffPage.init (for ve.init.mw.DiffPage.init) just
needed being switched over.
Bug: T178532
Change-Id: Id12ef14434fd30a442bbbf6e9ccd8e50c3376cd5
Basic inspectors for editing. Changing from block to inline, or
adding "hidden" or "describe" flags not supported.
The UI layout for two-way and one-way rules could certainly be improved.
Bug: T49411
Change-Id: I5ce29e4bf47abf509afde0a57f64b5d1189f5185
Also:
* Add ve.dm.Change.test.js to MW test suite
* Remove server scripts from ext.visualEditor.rebase, they
only need to be in rebaser.build in core.
* Don't load ext.visualEditor.rebase on every page
Bug: T175828
Change-Id: I0ed0c320373b0d653b0d7a012aa7416e88e43e00
New changes:
4523b11c0 Make RebaseServer asynchronous
2eb09b6ba Localisation updates from https://translatewiki.net.
c806b7131 Remove execute mode from non-executable
622c62c9e Follow-up 2eb09b6b: Add kab to build to unbreak the repo
b69e4ba1c DiffElement: Fix insert/delete-to-end loops
8c6dfdde9 FocusableNode: Redraw highlights using focus toggle
2bded2d16 Debounce FocusableNode#redrawHighlights
3cb7844b1 Localisation updates from https://translatewiki.net.
fb13239b2 VisualDiff: Don't diff close elements
7a8829509 Localisation updates from https://translatewiki.net.
Also, exempt the Rebaser ES6 code from jsduck, as we do in VE itself,
because jsduck doesn't understand ES6 syntax.
Bug: T129541
Bug: T171862
Bug: T173860
Change-Id: Ia08022afb0b94b8a6907f97b161bc04d8a210232
Changing `->text()` to `->plain()` and some variable
names and comments to match that. This is now the same
as normal ResourceLoader behavior for messages added
via `'messages'` in RL modules.
Also remove a duplicate use of the
'visualeditor-quick-access-characters.json' message.
Bug: T159529
Change-Id: I63593db445433e7da5c71e6800f96daf63054fcf
Avoid confusion by using `twoway` instead of `bidir`, which could be
confused with the Unicode bidirectional layout algorithm.
Depends-On: Ib59dff22e64f235e30778a5a5b3e525e4fc7fdd3
Change-Id: I7efb35245d48125b167dc0f0ef8f12aa0fff94e5
Implement special node types for language variant markup, so that they
display appropriately based on the currently-selected variant.
(Parsoid uses empty elements to represent this markup, so without this
patch anything in -{ ... }- is alienated and disappears.)
A follow-up patch will implement context items and inspectors to
allow editing these nodes. This patch is basic "read-only" support.
Depends on I4fcdebc2290ec35ba188f4c2e69d578791fbcd67 in Parsoid to
generate the appropriate markup, but this patch is safe to merge
independently.
Bug: T49411
Change-Id: Ie11e9301d2513bfe4a36036481cee9a047f46d37
Only shown if VisualEditorEnableDiffPage is set, or query
string param 'visualdiff' is present.
Currently:
* All VE javascript is loaded (could be cut down to just DM code)
* The entire Parsoid HTML of both revisions being compared is loaded
* Both Parsoid HTML docs are parsed into VE DM trees and diffed
Bug: T167508
Change-Id: I151fc9bab3d3032f50c8d11be6b54e45a06fcc34
New changes:
839311756 Add missing icon set 'layout'
66634c032 Add missing icon sets to rebaser demo
2e8bca7b9 Localisation updates from https://translatewiki.net.
cd4e0fa2d Depend on 'movement' so we have arrows in the find and replace dialog
Change-Id: Idd888df1d59fe13cb982610d0e465ab87f61362a
New changes:
26085a853 Make author list a ListPopupTool
c4ea53eef Update OOjs to v2.1.0
8c94697f3 Update OOjs UI to v0.22.0
cdebc4817 Follow-up 8c94697f: Actually commit the icon changes I had locally
8be817396 Update OOjs UI to v0.22.1
Local changes for author list popup
Change-Id: I36bcaf122528a4a12882aaff3b33ef936082a391
New changes:
d336169fe rebaser: Don't spam the entire document into the log on initialization
1963a9993 ve.dm.SurfaceFragment#delete: Don't pre-build a sequence of transactions
6c915f305 TransactionProcessor: modify DM tree branches instead of rebuilding them
8773258bb ve.dm.ElementLinearData.test: Cover compareElements
7a073c78f RebaseClient: Don't log empty rebases in acceptChange
5adce57ea rebaser: Implement author names
78c7beecb rebaser: Tidy up author list UI
85d26f491 Get minimal diff when word starts/ends the paragraph
ca273a56c rebaser: Move author list to widget
ab693bead rebaser: Show active user count
Bug: T160795
Bug: T162762
Bug: T165772
Change-Id: Ibd21e6a78c3958db1c0ec8f0317c4c07f3fa5735
Follows-up 914eb1cde3; reverts the logic to have the label change, but
sticks with new "-current" i18n messages, so the "X editing" instead of
"Switch to X editing"; the old i18n messages are now dropped entirely.
Bug: T162864
Change-Id: Icdad6c5bb06ff86e9b8976840bb1a94b939609a8
Sites like to customize 'readonlywarning' with things that we can't parse.
Instead, use 'apierror-readonly'. The old message is still shown in edit
notices.
Bug: T163455
Change-Id: I592accde17b256ecee27820df12d9d312499f8f7
New changes:
57f8064b6 tests: Enforce dm unit test coverage at 20% per file and 80% globally
6f757c670 LinkAnnotation: add a getFragment method for consistency with MWInternalLinkAnnotation
c40a3f152 Drop the classList polyfill for IE9
d1af6c6bb Update OOjs UI to v0.21.1
bfb35aaef Localisation updates from https://translatewiki.net.
Bug: T162277
Change-Id: I5146bc421bb88e56bafadccefc7bbdee106504ea
New changes:
719f8c667 ve.ce.DocumentNode: toggle all contentEditable properties, not just the outer one
35cadd7db Introduce single-line mode for surfaces
41fe321b2 Restore pointer-events comments for IE10 support
42f556820 Upgrade to jQuery v3
c1b8f142c Pass toolbarConfig position to actions toolbar by default
0d4c6a5fc Fix styling of table context in MW theme
db6eb4ebf Localisation updates from https://translatewiki.net.
Bug: T161944
Bug: T162808
Bug: T162830
Change-Id: I9b11673b4a77b7aebcdc282953d83ade08a8d8bd
We're getting rid of meta item grouping, so we need to prepare.
Merged:
* ve.dm.MWIndexMetaItem
from ve.dm.MWIndexDisableMetaItem and ve.dm.MWIndexForceMetaItem
* ve.dm.MWNewSectionEditMetaItem
from ve.dm.MWNewSectionEditDisableMetaItem and ve.dm.MWNewSectionEditForceMetaItem
* ve.dm.MWTOCMetaItem
from ve.dm.MWTOCDisableMetaItem and ve.dm.MWTOCForceMetaItem
These three now inherit from ve.dm.MWFlaggedMetaItem to avoid code duplication.
Change-Id: Ic8a9cdb1226dccac2c27e7f4b965c1590a7387c0
* Pass a wikitext promise, instead of wikitext
* Handle writing of content to the dialog from within
the dialog.
* Handle diff errors within the dialog.
* Never disable the 'Return to save form' (approve) button
* Remove redundant messages
Change-Id: Ibd76e8951998f751abfb4f407682202c2f73ac7e
New changes:
dc0cad28c tests: Factor out ve.dm.TestRebaseClient/Server into their own files
98061108b Convert RebaseServer tests to data provider
3e746a51b Update OOjs to v2.0.0
16231a812 [BREAKING CHANGE] Drop support for Internet Explorer 9
64daeb4b5 Localisation updates from https://translatewiki.net.
3310e876c Update DOMPurify to 0.8.5
579033a83 Follow-up 16231a81: Drop IE9 support in createDocumentFromHtmlUsingIframe
Bug: T162277
Change-Id: If17c6a3fac0920db29f80069f344ffd6be46c3c9
The styles are not specific to the Vector and MonoBook skins, but rather
to the MediaWiki and Apex themes of OOjs UI. Rename them to reflect that.
Change-Id: I757e8d96625feb8290cbf7837b5d801961cda344
The bare minimum of elements that must be present on the page for
VisualEditor to start and mostly work is:
* '#content' to attach our interface (toolbar etc.)
* '#mw-content-text' to replace with the editing surface
* '#ca-edit' to start up the editor
When those elements are missing (and we expect them to be present,
e.g. we're not on a special page), we print a console warning.
For example, VisualEditor now launches on Timeless and CologneBlue.
It does not launch and prints a warning on Modern and Erudite.
(It is actually possible to edit and save pages on CologneBlue,
although various pieces of the interface look funny.)
This does not change which skins we claim to support: these are still
currently only Vector, MonoBook and Apex. But it allows third-party
skin developers to more easily test the editor and fiddle with their
CSS to make it look right.
Bug: T161373
Change-Id: I97c786f3c8c795c238b10bef332a129ea26f86c2
We support all versions of IE that MW supports, so no need
for additional blacklisting.
Bug: T160494
Change-Id: I771459b4d6a0e2d5781a69a905a51323369b3b66
After 79ccfb9372cb57afa569036ef39ead13abfba673, MediaWiki's `<pre>`
tags get rendered as `<pre typeof="mw:Extension/pre">` in Parsoid HTML.
MediaWiki's indent-pre syntax (block indented by a single space) is
still rendered as `<pre>` in Parsoid HTML, however.
Indent-pre is still handled by MWPreformattedNode (no changes).
Introducing MWPreNode, which will handle `<pre>` extension tags,
and MWPreDialog to change its contents (and allow converting
to MWPreformattedNode).
Pieces copied from MWGalleryNode, MWLinkNodeInspector, CommentInspector.
Possible future improvements:
* Add a specific icon for MWPreContextItem
* Avoid API roundtrips for rendering (but rendering wikitext <pre>
is not as simple as it looks)
* Consider a way to insert these other than '<pre' sequence
Bug: T159900
Change-Id: I5bc4ea6e5d893736f65ef0dd43b08c18cb1a1e85
Ensure dm.LanguageAnnotation exists when it runs, otherwise
it won't match and the context will fall back to a tool
context which doesn't have the clear annotation button.
Change-Id: Ie5474a93fcc1beab2a752bbc3beb17b3ef9cab76
Pencil is the icon we use for 'edit' elsewhere in the UI.
Use the eye icon for the VE tool to specify 'visual'.
Bug: T116417
Change-Id: I12b6bab2a52758685abde04579b274a32d651174
This will make it easier for third parties to load the required
modules for an article-like target.
Also cleanup mobileArticleTarget to better match desktopArticleTarget.
Change-Id: Idb75e2bd99d8cf2c298e101cf92e8af4f85f5ad5
New changes:
f27169f68 Localisation updates from https://translatewiki.net.
edd78cf50 Increase margin on DiffElement
d723ce56a DiffElement: Use important background colours to force override
b71ee15b5 demo: Use windowAction to open diff dialog
de88ca28b Move standalone diff dialog into separate module
d18bb1379 Don't allow slug buttons to take focus on click
Bug: T158295
Change-Id: Ic67bed00c100acf9a24cc0f5b984a64c14357fa4
We don't support editing <div>s right now (as they're BranchNodes) nor
<span>s (as they're annotations), but most of those are inside templates
and so not editable in VE anyway.
Bug: T157989
Change-Id: I647b2a544fd16952696d0de8d07cb72189b27ecb
Algorithm for deciding which cells handle sorting is exactly
the same as in the real jQuery Tablesorter.
Depends on changes in VE core:
* I50426e173c68af7df49e47fe3bec0465a9a55c26
* Iabb372dfe7bf5feef314315ac74a788c6c58dc20
Bug: T139072
Change-Id: I4446be2ad459b05590754da9bb6c3dd8f796be42
New changes:
778dd0709 Destroy unicorns properly when cursoring to another branch node
2877cbbbc dm.Document: Make tree validation stricter
342a71e05 Update OOjs UI to v0.19.1
d2df4b6d4 Explain that Escape/Ctrl+Enter can be used to cancel/confirm a dialog
d978507f0 Move platform handling from CommandHelpDialog to CommandHelpRegistry
4dbceb403 Honorably discharge ve.dm.DocumentSynchronizer
0eb0e4214 Localisation updates from https://translatewiki.net.
Bug: T157019
Change-Id: I5066b1d2c60e116bc3b80b9a8242a72db243d8cf
New changes:
d79138b Overwrite selected content when pasting via DataTransferItem
3c4737f Ensure clipboard is never empty text
3b1339e Create dummy platform and target for tests
4d63c8e Pass text as string to insertDocument when detected as plain text
Local change:
Remove VE standalone module
Flow used to use it, but not anymore. Going forward no one should
be using it in MW.
Bug: T154020
Bug: T156302
Bug: T156498
Depends-On: I078c244ef524669da477a43f9b37c847252e5ad7
Change-Id: Ifc4be16269f819890f2dcdddbbdebf9694ad2868
The hacks contained within context were ancient and no
longer used, and thanks to a typo in mw.MobileArticleTarget
neither of these classes was being used anyway.
Change-Id: I52f2b6d5aa5ddbcc45ac6107eaf9407570b73672