Various checks didn't think a rel attribute could contain multiple values.
Mostly they don't, but to play it safe let's adjust the checks.
Change-Id: I29823b7c8c65ef6b2ff41ce9a801840000972e9c
Depends-On: I33a456351ab025d0c81cfb1a1577d5a2ae9df51a
updateSize eventually calls setDimensions, which calls
positionDiffElement, so protect against infinite recursion.
Change-Id: I07992f337394712000e6e12c637c6e1442869722
We still don't allow inserting such galleries, but we can handle them
in existing content.
Bug: T75230
Change-Id: I5d7350f00871ac295b0ebc00a633b44570347d85
Separate the preference by surface mode, so you can
use a different preference for NWE.
Bug: T178691
Change-Id: Ib8494a4562ce766a7c8ef7ec1447d06f5d0f17c5
mw.storage catches errors, so we won't crash horribly when the user has
localStorage disabled / full.
Bug: T181822
Change-Id: I212994eb535b9a8fb5f6c09deaa10b16c3d7f10e
Accesskeys in this situation are unreliable cross-browser. Firefox won't
trigger the accesskey inside the dialog. We can manually simulate it, via the
existing trigger.
Bug: T121183
Change-Id: Ib919d8b9fcd9324a517037bcc6ef93a26d1488b9
Category links weren't being checked for redlink status, and weren't opening
in a new window.
Bug: T179913
Change-Id: Ic665583128bf51710178c5674cd35c273f5f207e
Align SVG markup across Foundation products by:
- unifying XML declaration,
- removing unnecessary `standalone="no"` attribute as it's default,
- removing all SVG editor metadata
- removing all `g` group elements except where necessary for transforms,
- putting attributes on `path`,
- removing unnecessary ids and
- unifying whitespace.
Saving up to 23% file size before gzipping.
Bug: T178867
Change-Id: If0339073a12f24df1a0f8dcc110c35e0ee2d38a7
OOUI 8e31b2f273 increased changed various icon CSS rules, and increased their
specificity. Increase ours to match. This restores the correct size/ratio of
the images in the link context item.
Bug: T178933
Change-Id: I4f1a6dde363cf99f7665dc83f4b0fa6b1dd3c29e
Also:
* Disconnect change event on this.input, which doesn't
get destroyed on teardown
* Add padding between attributes and this.input
* Assume the alien extensions can have a rendering when
their body is empty.
Bug: T177181
Bug: T177183
Change-Id: I2e59f8195b255f33f91901213c92ea14793635b4
The default value of target#pageName is wgRelevantPageName
but other targets my override this, or change it dynamically
(e.g. ContentTranslation).
Also remove duplicate setter of pageName in mw.ArticleTarget,
already set in mw.Target.
Change-Id: Iebd1def1d4142978a673afec584a0b663644d176
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
The MW attributes are 'style' and 'class'. The plural
forms are used internally only to avoid JS keywords.
Change-Id: I1b7d14872aab4b6b3882d00165924fd1639e1744
Not doing this makes adding a new extension node with the exact same content
as a previously-viewed one have the Done button disabled.
Bug: T172586
Change-Id: I39105144e17135044ef644b5464b0fbfdfc019d5
We still expect the user to click on the tool, and
the actions still works (albeit delayed), so we
should use cursor:pointer.
Change-Id: I6d2b0140f5fd918809f05acc6e405ef430c518fd
Since "nbsp" is hard to translate, it is removed from the current
text of visualeditor-mwlanguagevariantcontextitem-rule-code-label,
which was "Language code" - now changed to "Language code".
Instead the table headings (where this message is used) are defined
as non-breaking in CSS.
Bug: T173181
Change-Id: I9794fa010ad908fe772fa6858c25acc6beb973d5
For magical HTML reasons, a `<tbody>` node is automatically inserted
inside the `<table>` node. Therefore the table always had exactly one
direct child, this check always failed and table was never shown.
Instead, count the rows.
Change-Id: Ia8a5387c3f605689ab1053c923952ec955b83253
Focusing a TextInputWidget normally unsets validity. However, because we're
kind of pretending this is the same input, just in a different mode, it
doesn't make sense to the user that the focus behavior occurs. So, make it
recheck validity after we switch.
Bug: T172159
Change-Id: I1d9d6670d72483c7510fd5ed3c539b43af8432bf
We can place them in bottom center of the toolbar buttons with
just CSS, no need to manually calculate the position (which
doesn't give the correct results if the toolbar is not visible).
Also add z-index for correct rendering inside TargetWidget,
not overlapped by the toolbar border (e.g. in the media dialog).
Bug: T174120
Change-Id: I556ddfcf252669107cf21810fbed7c9a3751e906
Also make label consistent height, with or without an
indicator using line-height, and move closer to input.
Change-Id: I1b6e6e2f3caa4c949583cafa9448aae6ebc1e0a1
This prevents the image jumping into another paragraph,
e.g. in a different table cell.
Move the logic for removing the old image out of MWMediaDialog
and into MWImageModel#insertImageNode.
Bug: T121449
Change-Id: Ibd7c92f3f90c382ceffd3e0defb12ba36a3786d2
The popup gets hideously deformed in other cases. Getting it to work
would probably be difficult. Let's just not show it.
Bug: T170919
Change-Id: If9005e9cdea52fefab981f4c7f05f71fce99f3e8
In Internet Explorer and Edge, NodeList objects do not have the
'forEach' method. However, Array's 'forEach' can be applied to them,
as we do elsewhere in the code.
https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
Bug: T170466
Change-Id: Icb19995e140607d45c47fb6ae8d60ac80b664d02
Since Ic8b11d8052 #insertContent puts multiline strings on separate
lines, so to get this to behave correctly, pass in linear data instead.
Bug: T170160
Change-Id: Ie121fce1af46c6834945f4de30bcd9924ee96fd1
The promise #getTeardownProcess is trying to resolve/reject no longer
exists, causing exceptions. The code has been unnecessary for a while,
as we do all the work in #getActionProcess. (In the case that we do
switch, the teardown code isn't even called, since we navigate away.)
Cancelling the switch to wikitext works correctly after removing this
code.
Bug: T169588
Change-Id: I1b9b12edf12a0b91f06c13aa53024efb80868387
Remove config option `multiline` and change to MultilineTextInputWidget as
appropriate.
Bug: T169272
Change-Id: I45565f01de76a88d64d7b0691d1e7279354f375d
A missing image should return some data to say the
image is missing, not just reject the promise.
Bug: T169337
Change-Id: Ib41a64a783c1baca88f428417c98e7fb913d14a1
As I understand it, the button should be enabled whenever there's more than
one option in the sidebar, and disabled otherwise. The previously chosen
conditions weren't perfectly proxying this, and the button would be disabled
whenever editing an already-existing transclusion.
Bug: T167710
Change-Id: Id303b680c072642ae7b66066e28ecc9f1dc90fd7
OOjs UI Popups position themselves automatically relative to their
$floatableContainer these days.
Also added explicit `$floatableContainer: this.$element` in the config
(although not strictly needed, since the parent node is used by
default, this makes the code more robust in case we move the popup
somewhere else in the DOM).
Bug: T167751
Change-Id: Id4267fce6499a4c217f7dc1d18871c02dd078aee
Reverting a new weird hack for an issue and bringing back the
old, tried and true hack that was removed in the mistaken belief
that if a bug is marked as fixed, it is really fixed.
* Revert "MWTransclusionDialog: size footer correctly"
This reverts commit 032fb2924e.
* Revert "Remove dialog height hack tagged against resolved bug"
This reverts commit a97eacd05b.
Bug: T93290
Bug: T167483
Change-Id: If1cc07837892bb0248c74025d5403f9698e77705
This fixes the focussing problems from T166150.
As a separate consequence, when loading a template/transclusion
takes a while (it can take several seconds for e.g. a template with
100 parameters), we will now display nothing while the user waits.
Previously we displayed an empty frozen dialog (note that this only
worked the first time for some reason).
Bug: T166150
Change-Id: I414a72ee248517867eef63a75f2d327aa5d5b908
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
Renaming CardLayout to TabPanelLayout and all connected code instances.
Follow-up to Icfe1652cc038dc131b6b855ce9b45040b8ee5178
Bug: T164903
Change-Id: I9ce4e31e390522d469e126fb3a4b05787cef7fef
This lets us avoid a fraction of a second lag when someone pastes a plain URL
into source mode.
Bug: T163237
Change-Id: I0e673856dec5f273fb92731b27494762299d2d6c
* Fix focus and resize/scroll into view after the
captcha has loaded (so after the image has loaded
for FancyCaptch).
* Add margin between input and captcha
* Enable enter-to-submit on captch input field.
* Unify code for simple/math/questy and correctly
render math as HTML (by looking at the mime type)
Change-Id: I10433cefbfea8569674c120dde5b489570e20966
Previous the media upload panel didn't support this. This makes Chrome
behave in the same way as Firefox when pasting images into a document.
Bug: T39932
Change-Id: I12f190a48ae9b62d4ad2f33b2a4ee546fdf7b354
Previously we completely disabled the loading of notices
when switching, instead of just not showing them (so they
don't clash with the "switched" popup).
Bug: T162812
Change-Id: I3f8e787630e196cee1dbb1aa449b3558b74fcd04
OOjs UI v0.21.0 changed DraggableElement's padding. Override it here, so it doesn't look broken any more.
Bug: T163404
Change-Id: Ic0bc4f9e3e060cf89e6bc7cb22068d1fe1441d75
Figuring out why it broke doesn't seem like a very interesting task,
so let's just throw the whole logic out and use OOjs UI PopupWidget's
new built-in ability to position itself relative to anything.
Bug: T163269
Change-Id: Ie464e4668001f4bc6151b40cef469937aa8c6e48
With precise timing, the lookup menu could appear after the add template
button had been pressed and the user had moved on to the next page.
Bug: T162707
Change-Id: I36941dc7288c6031a0fb189c0946aa6d8f8697e8
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:
ae0204885 stylelint: Remove no-unsupported-browser-features overrides
d744cd576 Localisation updates from https://translatewiki.net.
1338c50f5 [BREAKING CHANGE] Remove resize handlers from within DiffElement
Local changes:
Trigger diff element resize on dialog resize
Depends-On: I82a67a4309bf76db5407ea38c26c47d14c01e921
Change-Id: I912a99edca25ff576e2872723f91afe54e36a170
This will be required later when we have to fetch the original
document from the server before running a visual diff.
Change-Id: I351688f4d1fec892bc297f40c209939cbb2ccf95
Provide a utility funcition in ve.init.mw.LinkCache to do this.
Also use this in ve.ce.MWTransclusionNode/ve.ui.MWPreviewElement, and
introduce to ve.ce.MWExtenionNode
Bug: T73900
Bug: T153535
Change-Id: Ieb9a0274b8c5ae1932c431546f09d18000fa6dd9
Original title will preserve the case of what the user entered
into the inspector. Noramlized title will remove any unwanted
leading colons from file/category links.
Bug: T118408
Bug: T124410
Bug: T160977
Change-Id: I92ffc19eab4eead0d124e84afc1e5a0a3e535867
This gets overridden by "selectorWithoutVariant" and "selectorWithVariant"
in the module definition anyway.
Change-Id: I51b8e76d542058c008d92ce55c7ec6bb66df70b7
Running setNotices( [] ) makes MWNoticesTool run this.destroy() to avoid taking
up extra space in the toolbar when not needed.
Also, make setNotices() bail earlier.
Change-Id: I492fd59a1e15e8f296bf7f03d9b0035c40dafa59
These changes allow us to be more aggressive in autolinking ISBNs (no
need anymore to wait for the user to type a space or move their
selection) and more correct in autolinking RFCs and PMIDs (stray
spaces and dashes no longer mess them up).
* ISBN numbers can only be 10 or 13 digits long. We don't need to
handle arbitrary lengths.
* If a number does not begin with 978 or 979, it's the ISBN-10 variant
and we can autolink it as soon as the user types 10 digits.
* If a number begins with 978 or 979, it can be either.
* But if we already have 13 digits typed, autolink immediately.
* Otherwise, use a delayed sequence to see if it ends at 10 digits.
* RFC and PMID numbers can consist only of digits, no optional spaces
or dashes are allowed. Typing a space or dash will immediately
autolink the number.
Bug: T117165
Change-Id: I6a085cd78d910661245a351f3ceb3fabe2f093cf
The trailing space at the end of the regexp is no longer required to
prevent matching (and executing) too soon. We also don't need to know
about trailing punctuation.
However, to prevent the match from ending in the middle of typing, we
have to allow for ' ' and '-' at the end of the match.
Tweaked tests to better match the intent now that a trailing space is
not included, but they pass without changes too, the command is quite
permissive.
Bug: T117165
Depends-On: Ie36046fa43ce49f8a25c99f2de577eb296d68a51
Depends-On: I2af0a738afa43295bf6d7d612cac4349bc6cd20d
Change-Id: I7c28d5c93b1a441387ad05a75846af83d2b21b6a
The floating tooltip breaks inside OOUI dialogs. In the absence
of an upstream fix, just anchor it to the bottom of the textbox.
Bug: T160245
Change-Id: I9055c4e4947f5581605bd490f076415c1edaf8ec
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
Updated tests to stop assuming that MWWikitextStringTransferHandler
always goes through an API request and Parsoid.
Bug: T117165
Change-Id: I24dffaaf3b4051b1b807ec29ac456d24da2f1fe9
A gallery tag is parsed line by line, so captions
(and other image data) should not contain line breaks
Bug: T153373
Change-Id: Ib1d1c18216d07c83b2d4358d2dda71c9d17e3e44
It's actually a bit surprising that the only thing broken by using
OptionWidget instead of MenuOptionWidget is some missing styles.
Change-Id: I3961fedbfc61f2f17d91dc7375d47a3cdff2a257
It doesn't work, you can't turn a MWMagicLinkNode into text by
clearing its styling. (You can still do that by clicking 'Edit',
'Convert to simple link', 'Clear styling'.)
`clearable = true` was being inherited from ve.ui.LinkContextItem.
Change-Id: Ib40e952554966fb74b3e72662a6e1e44ad748a57
Fixing T107251 made it so that clicking "save" always switched back to the
save panel momentarily, causing a flicker of "maybe I can edit this"
experience. With this change, we can only switch back to the save panel when
saving from other panels if a message is being shown.
Bug: T156891
Change-Id: I8f67693283e61c39cfce40ee12d5c6788dd97932
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
We now use dialog's overlay in every case where we have a FieldsetLayout
or a FieldLayout with a help popup inside a dialog.
Bug: T100571
Change-Id: I8bd0ed430637feca63ec0f13cb7e1e1c659391a5
The dialog already supports cancelling by pressing Escape,
but the usual dedicated button was missing.
Change-Id: Ic63b5b59940a43474051466bdbbba0dbeb4342a9
This is currently used to display a warning about missing edit summary
and to display a CAPTCHA field. They now appear in a separated area at
the bottom of the dialog, which slides into view when a message is
added.
Change-Id: I7541284a92d5fd2fa8f469d479e059098c59c0ac
* Remove the checkbox; an empty field, or a value exactly equal to the page
title means no displaytitle.
* Automatically fill the field with the current page title
* The field was mispositioned
Bug: T155818
Bug: T156665
Change-Id: I46db6b14616c9a021e757284972537cac00546a1
Firefox throws exceptions when trying to focus hidden inputs. Using the
"preview" keyboard shortcut entirely bypasses the save panel, but the ready
process assumes it'll always be opened first.
Bug: T153958
Change-Id: Ifb3861116565e77c30b3874fe47889298c3ace6d
Make inspectors inheriting from MWLiveExtensionInspector
and dialogs inheriting from MWExtensionPreviewDialog
update their 'done' action every time updatePreview is
called. Since both mix in ExtensionWindow, two new methods,
updateActions and isModified are added there.
This should make it more difficult to insert an empty node
accidentally or create a transaction just by opening and
closing an inspector or dialog.
For more complicated dialogs, or inspectors or dialogs
that don't live-update, this behaviour will have to be
implemented separately.
Bug: T155330
Change-Id: Iacafa01fcd419faaec9b112c96be86693a57d561
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