The editor can also be used on wikis that are not Wikipedia.
By the way, the logo was incorrectly flipped for the RTL version. Heh.
Bug: T135811
Change-Id: I5635da13e8335658079620a46ac265c4ed6bd167
New changes:
c54a48a build: Fix watch list (csslint -> stylelint)
58ba3d9 Add stylelint rules for @-rules
3f8c75a Stylelint: Add rule for unsupported browser features
3b96ff3 Fix minimum Opera version (15 -> 12)
9a1110b Stylelint: No ID selectors
9800bb8 build: Remove remaining references to csslint
b6ab14a stylelint: Re-enable features by names
6cc1f3c Move stylelint to npm
1d15fa0 build: Bump stylelint version to v0.2.0
ccc1724 stylelint: Use the preset rather than extending
Change-Id: I22fa8098592338a5e912aba9ad21131b21d9c0ea
For now just use the rules file in lib/ve, but eventually
this will be a preset.
Change-Id: I7fd79d3e1dce37aef066d416cd969e5fff1e962f
Depends-On: I17e0d23ddfedf64985495ab35d113ea08c03b1df
Make some of the methods we currently use to render the node
static so we can re-use them before inserting. We do the evaluation
without inserting the node so as not to dirty the document and
transcation history.
In the unlikely case the request fails, just fallback to inline.
This only handles insertions for now as type changes on edit will be
very rare.
This changes the signature of insertTransclusionNode, which is used
in Cite and Citoid extensions.
Bug: T51784
Change-Id: Ibc2fc66e6866084b0a4deeb082c8a1ca412febb2
This element is a plain `<div>` with no tabindex, and therefore can't
be focussed. jQuery 'focus' events don't bubble, either, which would
otherwise allow focus events on children to fire this handler.
Change-Id: I68cb7d3bac143565c0a1bdb988312233b2d13ccd
Building DOM trees while attached is much slower. This makes
things about twice as fast.
Remove unused StackLayout wrapper this.panels.
Bug: T134814
Change-Id: Idb269cf3f06c350ffe28b66e2e883c0a7a3348cd
Otherwise the reference contents (stored in the reflist) is lost.
Bug: T134228
Depends-On: I718963e3c460a5bed38fba4152b03442bbe6169e
Change-Id: I20171eb97eb1b4757a2c8a25217adb4d680a9057
Otherwise we just record undefined as the original sort key and never
allow blank sort keys.
Bug: T92632
Change-Id: I7f37a8a33c54186ec6f0f74e374c591d5428b119
We were selecting outside the annotation, when converting a LinkNode to a
LinkAnnotation. This meant that typing would overwrite the annotation as well
as the label. Speculatively, this is probably a side-effect of recent changes
to how nails and cursor offsets interact.
Bug: T121448
Change-Id: Ib2274bc5857294c5b691b3c3567b135d68bfa596
Depends-On: I3954c7f8f8e5870b13a8f6c4f0e86fb3b20b3cd3
This mimics what would happen if you were actually typing wikitext.
Bug: T133516
Change-Id: I737313e6aaa5e4517c9f7f18faa5570a31395e03
Depends-On: If8ab31a7eacb4d8fa6d9787b7ac9872be0de04e7
This makes it degrade to a small dot instead of a huge dot in
browsers which don't support animation (IE9).
Change-Id: Ia457b3caf35ff0ffe7287b2b1e395860d5dbd7d0
* Use TitleInputWidget for wiki-page-name and wiki-template-name parameters
* Use UserInputWidget for wiki-user-name parameters
* Use a custom hacky CheckboxInputWidget child class for boolean parameters
* Borrow some ve.ui.MWExternalLinkAnnotationWidget.prototype.createInputWidget code for url parameters
* Use a TextInputWidget with multiline disabled for line parameters
Not dealt with in this commit, so fallback to existing behaviour:
* string
* number
* unknown
* content
* unbalanced-wikitext
* date
* wiki-file-name
Bug: T55613
Bug: T124734
Bug: T124736
Change-Id: If04944d64303d959e8dd605e75a175895932b788
Depends-On: I87699a93ca1b34c6d248456fcc060f584623d158
Depends-On: I5e97604f0fc24176d5e89899bf0505dc442a1a7e
Double-clicking the "insert" button would double-insert the template. Counting
the close as a pending action avoids that.
Bug: T129725
Change-Id: I41af7c051fd54004cecd563d7a6cf8fdb452840f
Using the same logic we used for converting pasted URLs, detect
internal links by matching their base.
Currently link pasting is still disabled in the VE target, but
has been enabled elsewhere (Flow).
Change-Id: Iebd61abbe1fe82fd18d129e1dbc815ca75f44e87
This causes the inspector to take focus early (line 291) on
first load, and is not necessary as this method fires when
needed anyway.
Bug: T129228
Change-Id: Ia69f76b68e89daf5cb01449c40e71de4ec32d400
Make the DOM order sensible so we don't have to
use SearchWidget's position:absolute hacks.
Bug: T129173
Change-Id: I3517e0e0cfe2ab0eee4bed7390e41710d3140eb0
This allows extensions to register their own rules for detecting wikitext,
e.g. matching '<ref>'.
Bonus: Strip the autogenerated <references/> tag which
gets inserted when converting a <ref>.
Bug: T128805
Change-Id: I7a38db45d25e86ff3f3f6199aa04425ec98f7cc4
Trim the cached image data from the media dialog down so that it only caches
the same information that would have been fetched for a non-uploaded image.
Consistency!
Bug: T126081
Change-Id: I0f057c111b66f29c6360e27f97256384f5320b75
Warn the user about an empty edit summary when the "edit section"
link is used to trigger VE.
Re-does Ic7b456ca a different way.
Bug: T114857
Change-Id: I319c9c5bed47140a81eb409d490c9f82b89a49fe
Zopfli is the most efficient DEFLATE compression algorithm, trading run-time
performance for file sizes that are typically 3-8% smaller than those produced
by zlib with the maximum compression setting. Its output is Deflate-compatible,
so no specialized decoder is needed.
This change was created by running zopflipng against all the PNG files in this
repository. The exact invocation was:
git ls-files --exclude-per-directory=.gitignore -- '*.png' \|
parallel zopflipng -m -y {} {} \;
Files which zopflipng was not able to compress more efficiently were left unmodified.
Bug: T127608
Change-Id: Id5807b1ec56320b3474878290dd05600c1e389d5
Only call setup in ready process, as setup includes setting
focus. Defer fitInput call to category widget until transition
is finished so measurements are correct.
Change-Id: I49a30402cf58e36f16316e3ab04fa3349d19954e
For every title request, store an entry in noramlizedTitle to
avoid ever making an API request for that category again.
This prevents API requests from being fired every time a
category was moved, which in turn prevents the list from
flickering as it waits for the API request to resolve.
Also normalise the spelling of normalize to en-US/en-GB-oxendict
Bug: T127317
Change-Id: Ie26d9d60fb83981c45ff27199e38ae98e5560a28
The title is visibly varied in the context menu separately, and
we don't usually change the link tool's title - so this is just
a performance drain (updateState happens a lot).
Change-Id: I9cf2aa509a6aac3a2914fa52167cb4463843cd72
Create a subclass for MediaSearch(Provider/Queue) and make the parent
class a more generic representation of API requests for media.
Change-Id: Iea8b90e829d532d210bfef3c96d6798c64e15eed
From the description of the commit message[1] for WindowTool and
FragmentWindowTool, the ve.ui.MWTransclusionDialogTool should be
a FragmentWindowTool, and not a WindowTool.
In fact, the bug is caused by the missing isCompatibleWith method
in WindowTool.
[1] I3a0e761f0d6e942d503ec
Follow up: I676af9c50b09ef007926240eb2327d1a0fdd80f5
Bug: T121596
Change-Id: I9a47e5d67fcd7a94155b7cf77c734c94b0ed69e1
Otherwise temporary changes to the previewNode will pollute the original
doc's model tree.
Bug: T121488
Change-Id: I6a6b3d904061b0ce6e0c513ad424aabc3c4472b5
New changes:
e536779 [DEPRECATING CHANGE] Rename link inspector tools
3899967 Localisation updates from https://translatewiki.net.
0a1c09e [BREAKING CHANGE] ve.init.Target: Upstream the action toolbar from sa/mw desktop targets
Local changes:
* Refactor tools for the breaking change
Change-Id: I676af9c50b09ef007926240eb2327d1a0fdd80f5
This makes way for a base mw.Target class which is
not specific to articles (e.g. Flow boards).
Bug: T97166
Change-Id: If72650bdf87aa9f195b004da0a4d815f1a8063a3
The <visualeditor-dialog-transclusion-no-template-description> message
is now always displayed in template transclusion dialog, both when
adding a new one and when editing existing one. I think it's best to
just remove the incorrect part, as the dialog provides sufficient
context for what is happening.
The $2 parameter is no longer used or documented, but is still
supported for compatibility with existing translations.
Bug: T87130
Change-Id: Ibaa06c3bb1e9afbf0005b1605236f4be8cb15251
This was removed upstream in OOUI as unecessary in general, but clearly
this was the place for which the rule had been designed. :-)
Bug: T119547
Change-Id: I46a1df1141c337b436e66872f1a8cdae026816cd
Partially reverts "Expose version information in the client" (a72099af66 / I7836e1d40).
The Git data oscillates between two values due to differences between the
staging and production environments. Each change causes the module version to
change also, leading to cache churn.
Instead fetch version information with an API call the first
time the help popup is opened.
Bug: T119750
Change-Id: Ib9c45e60d3164cfa85eb1ef247cc91cf0d8bf954
This fixes some rendering issues, and also increases the font
size of reference contexts from 12.8px (interface) to 14px (content).
Bug: T119430
Change-Id: Ib1bae8cd4cfe86903d78406a33db78e1489fde86
Otherwise the selection will/won't contain the opening node of the
link, depending on where in the paragraph it is. This makes the
experience of starting to type unpredictable to the user. By forcing
it to always have the contents of the node selected, typing always
just updates the label.
Bug: T114643
Depends-On: I7c46a917d9752145174919f41066b4841b203218
Change-Id: Ic1c573c2c28ced49f685ec6082506cb20d5163cd
New changes:
b44ef6d [BREAKING CHANGE] Fix WhitespacePreservingTextInputWidget API
96e4034 Localisation updates from https://translatewiki.net.
Local changes:
* Use new WhitespacePreservingTextInputWidget API
Change-Id: I9920a3b5c8c3e8a241dcfdd1bde20f4ea1cf78b6
An MWExtensionDialog with a PreviewElement for the selected node,
or node to insert.
Depends on Icd622e15cd7 in VE core.
Change-Id: Ia0f46da2d445dd94c8aa50be73508d9f1afcb816
This is not trivial because Ace selections are
[column,row] tuples, so we need to translate to
one dimensional offsets.
Change-Id: I901b025b3747d61c74f49038fe4a65ed75758211
Ace is clever about not updating the rendering of elements
which aren't visible, so allow users to force an update, for
example if they changed the value while the whole widget
was hidden.
Change-Id: I7bbbffd17489bc80fe5fa80911f29d7223e125a3
VisualEditor is usually not enabled in talk namespaces... but
sometimes it is. And when users see the button to edit with VE,
they're going to click it and expect to be able to sign their posts.
This tool is only loaded on talk pages and pages in additional
namespaces defined in $wgExtraSignatureNamespaces.
Code adapted with small tweaks from my own gadget
<https://meta.wikimedia.org/wiki/User:Matma_Rex/visualeditor-signature.js?oldid=13461327>,
which is already available under the MIT license.
Changes include:
* The tool is now always visible if the wiki allows signatures in any
VE namespaces, but disabled when not allowed in the current namespace.
* Register '~~~~' sequence to insert the signature.
* Code style tweaks for stricter lint checks in this repository.
* Documentation corrections.
Swedish translation provided by André Costa (already credited
as a translator as Lokal_Profil).
Depends on changes in VisualEditor core:
* I89fe53890ab59d12260ea6b41de802c38c24e8b9
* I14cd7efac521687ea38580341ae08ddc522edeeb
Bug: T53154
Change-Id: I6be5fb2118cf3eef5098d4c5320228aa81411ccb
If you create an autolink in the middle of bolded text, the magic link
should also be bolded. Similarly, if you convert a bolded simple link
to a magic link, the magic link should stay bolded.
Change-Id: I38c7f3c0c275851049088a37f3b37d815ed38e4e
This is now a candidate for upstreaming to OOUI as the
'wikitext' icon, which is slightly larger.
Bug: T111038
Change-Id: I19a287926d6f100d2cb5ed1d713387a2dac56b37
After the widget is initialised the caller will probably
want to clear the undo stack, so that the first state
is the initial value provided.
Bonus: Add documentation for the widget.
Change-Id: Ia331acc4177e32784061cae55c450eb0f83fd744
The extension registers a lot of sequences that don't apply to core
VisualEditor. Pretty much the opposite of the trigger situation, where
almost all are in core. So, merge them into the help dialog.
Update VE core submodule to master (be148ae)
New changes:
7380244 [BREAKING CHANGE] Include sequences in the command help dialog
Bug: T116013
Change-Id: I5ad2939c10140b954fb29e1e50414ab7d79aeab7
When the tab is switched, we already set a mode that doesn't allow
using these actions.
Bug: T116299
Change-Id: Ib3ba50f578face3d49bcd14e41afe01a3b3d15af
The first time this is called, it will try to switch panels, so it has
to be done before we switch to the right panel.
Bug: T116217
Bug: T116219
Change-Id: I22411024995e22ae65bde1e6418748aedf026b1b
If a command is not registered because a file/module is not
loaded, the sequence should not be loaded either.
Change-Id: I45d86ad371c7b717601b6593eaa573292ebdd4ed
The widget attempts to load the ext.codeEditor.ace.modes module
and if it fails, will fall back to regular TextWidget behaviour.
Bug: T49742
Change-Id: Ie483f6eba25e3732a396c18decc0e1844b806b23
If a tool had an education popup bound to it, but it was
suppressed because the user has already seen it (according to
the cookie or localStorage), then clicking that tool would
cause a JS error.
Also remove a workaround for a ClippableElement problem
that appears to be unnecessary.
Change-Id: I73a3f5f9cc1726e28e70fc545b72960afc5ac41c
Calling initialize will clear all fields including the
OO.ui.SelectFileWidget that was just set.
Follows up I521909d27c390faad7d62f717f2b97b7676e5a63.
Bug: T40031
Change-Id: Ibc7ddafae9cb7718372520245a356938f4731479
The bug in jqueryMsg that required this is now fixed. Depends on
I56d8f7ec03a70f5c2360d9c5099496ecb2f668ad and
Icc360724c75755a6ffc31792d8439cba142642ae in MediaWiki core.
Changes to messages were done with search-and-replace:
<a $2> ---> [[{{ns:template}}:$1|
</a> ---> ]]
{{GENDER:$3 ---> {{GENDER:$2
Bug: T87131
Change-Id: I67475edb75fb5192a76fbe629d735d1f2dcd1d48
Applying staging doesn't emit an update event on the node, so
forcefully emit one with 'staged' equal to false, so the full
error is rendered (if present).
Logically depends on I8ebb26d4bc in core.
Bug: T114480
Change-Id: I7ba54b67982fc5b10839426cdc216e14c0e33c01
As part of the plan to render extension errors in the
inspector instead of the view, append an element to
contain the error. More specifically, the element is
a div that contains a LabelWidget (in which the error
message is displayed) and a ButtonWidget (to expand
and collapse the error).
Initially the error element is hidden, but if Parsoid
returns an error, the element will be shown. If the
error is longer than 1 line, it is truncated but can
be expanded. On closing the inspector, any remaining
error is collapsed and hidden.
Depends on I6002d9870d2b to work
Bug: T113172
Change-Id: Ie84130d4ac0da9a738bf98ad0a3677d47566d585
OO.ui.BookletLayout does not respect tabindices when trying to focus
the first focusable element after a page is switched. Remove the need
for manually set tabindices in ve.ui.MWTemplateDialog by using natural
DOM order and absolutely positioning things to keep current design.
Bug: T114562
Change-Id: I7a18a455f9fa80eb3d2ea17bff8139e0194c0fbf
Call updatePreview in insertOrUpdate node, when closing the
inspector. If edits have only been made to attributes that
don't affect the rendering, updatePreview will not have been
called, so the model won't have changed. Therefore
updatePreview should be called every time the inspector is
closed to make sure such edits are applied.
Bug: T113078
Change-Id: I48fb291487f76fc515f122646d205366a60dca62
New changes:
18e46b6 [BREAKING CHANGE] LinkAnnotationWidget: Abstract .text property to getTextInputWidget
Local channges:
* MWLinkAnnotationInspector: Use new getTextInputWidget method
Change-Id: Ia33797d612be7b4521e7212047a38480ee2520df
Drop beta-ness as users don't care and it confuses them. Leaving the preference
alone for now.
Bug: T99963
Bug: T112354
Change-Id: I0e039dec54d528fce24226e76b931b593dd13a9e
This only comes back in results from certain modules, so I'm not entirely
sure whether we want to do this in here or mw.widgets.TitleInputWidget.
Bug: T111598
Change-Id: If2916706db359d520c41c2dec7ded44e0d3a56a9
* Remove page.length
* Add action.abort.type = switchnochange
Needs to be deployed at the same time as Ib99700ac
Bug: T111420
Change-Id: I7ee245157d4de6c220d7cdf54cd1dd69ff836f15
* Don't insert/update/remove nodes on cancel in MWExtensionInspector
* Don't forget to popStaging on cancel in MWLiveExtensionInspector
Bug: T110992
Change-Id: I1e30206595e304eb502c7e745bf5e00d145d12d7
Implement a special node type, context item, and inspector for
ISBN/PMID/RFC magic links. Add buttons to the link inspectors
to convert back and forth between "simple" links, and magic links.
Depends on I5d000d8b63dafdfe0a2753069d3f0ac5b03b8829 in Parsoid
for clean round-tripping of localized ISBN magic links.
Bug: T63558
Change-Id: Id5b7a2ae3c80b0e5eed598f0bd024d3e94f7e9aa
Add a parentDoc parameter to the MWImageModel constructor and use
it to inherit language, direction and HTML document. Remove
getLang(), setLang(), getDir() and setDir() whose only purpose
was to propagate the language and direction from the parent document
in a hacky way.
Also add a parentDoc parameter to newFromImageAttributes(), replacing
the lang and dir parameters. Remove the unused and ill-conceived
caption parameter.
This causes caption documents to always have an HTML document
for URL resolution. Previously, this worked when editing existing
images because a document generated by cloneFromRange() (which
propagates the HTML document) was passed into setCaptionDocument(),
but it didn't work when creating new images.
Bug: T109599
Change-Id: Ida36862092cd779ffc2f04c0ecbc1164f8d71453
Add a parentDoc parameter to the MWReferenceModel constructor and use
it to inherit language, direction and HTML document. Remove
getLang(), setLang(), getDir() and setDir() whose only purpose
was to propagate the language and direction from the parent document
in a hacky way.
This causes ReferenceModel documents to always have an HTML document
for URL resolution. Previously, this worked when editing existing
references because the newFromReferenceNode() code path calls
cloneFromRange() which propagates the HTML document, but it didn't work
when creating new references.
Bug: T109599
Change-Id: I5d9d34d4343be8428318fa0b795fa54c110e34f4
Fix the back-reference to \1 (1st set of brakcets).
Add an test to make sure the example sequences actually trigger the
wikitextString handler, and tweak test to ensure that the start-of-line
restriction in the heading regexp doesn't affect link matches.
Change-Id: I76187a12292a4923d1ee2505cfb955431ac252bb
Also store the abortable API request so it can be cancelled
by the dialog.
To test this, put sleep(4); in ApiVisualEditor.php.
Depends on Ied21e574baa in core.
Change-Id: I83ffa9e0b7164ca4a34eae86cde452d8f38dc853
New changes:
89f6c2d Strip trailing quotes when autolinking URLs
Local changes:
* Strip trailing quotes and non-URL characters when auto-linking
Update ve-mw to match I58a9c7f97ef10d9f495e65da17f208b9fc431aa4 in core,
since otherwise the ve.ui.LinkAction.test.js case with a quoted link
will begin to fail.
Make the set of stripped characters better match the combination of
EXT_LINK_URL_CLASS in the PHP parser and the explicitly-stripped
trailing punctuation in Parser.php::makeFreeExternalLink().
Add some international quotation marks while we're at it to make
everyone equally happy.
Change-Id: Iaffac4b073aeafa4f1137265c2d95e425c24d553
Depends on Ibdad2fa98fca08eeaa96bf33a08dd7723c1edb8c in Parsoid.
Depends on I3dcd289ed7b565b9162ee671038eeb45449e1215 in ve-core.
Bug: T109498
Change-Id: I5650410d7fca30c90baddd4f0c3f6d80e6b39042
You can now do this from the context menu. No need to have extra buttons, and
this makes it consistent with the MWInternal/MWExternal link inspector.
Bug: T109646
Change-Id: Ifd4b3645c66ba2f32ccee7e2848967cf5e7ec82e
Add ve.dm.MWInternalLinkAnnotation.static.newFromTitle to build an
appropriate internal link annotation from a mw.Title. Tweaked some
method signatures to avoid repeated reparsing of the title text.
Also refactor ve.dm.MWInternalLinkAnnotation.static.getTargetDataFromHref
to explicitly return a boolean indicating whether the result was determined
to be an internal link.
Bug: T64816
Change-Id: I74385d7b3ede1794398dabb749185f4080509b99
checkboxFields in the setup data is optional, it's only actually set up by
DesktopArticleTarget's overridden openSaveDialog function, not mobile's
(or presumably other Target classes).
Bug: T109501
Change-Id: Ibc5f821be822fa3704bbfb55345687dd7795e203
New changes:
de69c36 Fix typos in function names
fa80099 [BREAKING CHANGE] Split out linear context from context
db1d28c Only show alien context for focusable nodes
1191940 build: Bump grunt-jscs to 2.0.0 and make pass
Local changes:
* Update context inheritance
Change-Id: I284e2b30cd1903770482ee1c554687b676a2d626
This invokes Parsoid to convert likely wikitext pastes.
This addresses about 20% of the <nowiki> insertion quantified at
https://fr.wikipedia.org/wiki/Wikip%C3%A9dia:%C3%89diteurVisuel/Avis/Nowiki
for 2015-04-08 which were due to inadvertent pastes of wikitext.
For a better user experience, suppress Parsoid's P-wrapping if the
output consists of a single top-level P element. This ensures that
pasting '[[Foo]]' won't add an unexpected newline before the paste.
Bug: T54204
Bug: T109449
Change-Id: I26a4cd8dc5b7e7caf16ca081dbe7baf6a7db8e5c
Anything with type=checkbox is coverted, and its label is found,
either by for=id or by finding a wrapping label.
All other inputs are stored in $otherFields for form building.
Bug: T86617
Bug: T70572
Change-Id: I94376fef18d02d2058bb548c11ae17f3dec7268c
New changes:
985edd2 Localisation updates from https://translatewiki.net.
9883b44 Follow-up 985edd24: Fix build for added language 'shn'
b0d5ee2 Localisation updates from https://translatewiki.net.
18ca837 Localisation updates from https://translatewiki.net.
f6a0945 Don't include trailing punctuation in autolinked typed text
Local changes:
* Add MW-specific trailing punctuation rules for autolinking
Change-Id: Iaa620142222f47e9fde2d03b935f38c24d38800b
When the MWMediaResultWidget receives a file that has no graphical
represenation (width:0 height:0) it uses minWidth of 30px for width of the
thumbnail.
This is, for example, the case with PDF files if the PdfHandler extension is
not active.
This patch solves the issue by falling back to the thumbwidth/thumbheight
values if width/height are 0.
Change-Id: I6bdaf1aafc0c45e26d31cd9dd9504e193f04e717
New changes:
61d20a1 Hide on-screen keyboard when selecting nodes on all mobile platforms
e5aff79 Localisation updates from https://translatewiki.net.
a99a897 Update OOjs UI to v0.12.3
3c01a14 Make DM nodes sensibly hashable
a611eb9 Make ve.dm.example.postprocessAnnotations fluent
496c895 Update ve.dm.ElementLinearData#hasContent documentation
fcaa035 Support RegExp sequences; trigger sequence matcher after newline
edda1d4 Add a mechanism to wait until ve.init.platform has been created
e174155 Autolink URLs when typing
ac9248f Allow drag and drop of links (and subsequent autolinking)
c88fad6 Localisation updates from https://translatewiki.net.
Local changes:
* Define `ve.init.platform.getUnanchoredExternalLinkUrlProtocolsRegexp`.
* Make `ve.ui.MWLinkAction` extend `ve.ui.LinkAction`.
* Override `ve.ui.LinkAction.getLinkAnnotation` so auto-links use the proper
`ve.ui.MWExternalLinkAnnotation` type.
Change-Id: I934f76158512e2e89b614ed92fef6481f70728e7
We were setting the edit summary box to the contents of the 'summary' parameter
every time the save dialog opened, but actually we only want to pay attention
to that the first time the save dialog opens.
Bug: T108329
Change-Id: Ic7b456ca8d7dd7cef8bc27629e3655ce9b97e755
This seems to be dead code.
* ve.ui.MWMediaSearchWidget does not have a #$spinner property.
* .ve-specialchar-spinner class does not have any styles defined.
Change-Id: I6fd35274bc1444303b67f8138ab875f0c6da7e4a
Split the toolbar into two modes depending on if the surface is focused:
* When unfocused, show a hamburger containing back and source switch
* When focused, show editing tools, and a check button to unfocus
For the editing toolbar, space the tools out using table-cell layout
and hide labels below 480px.
Depends on I06813e3ff in core (surface blur method).
Bug: T93325
Change-Id: Ibf09cb29019d7a71e1e144b326710b1f6506cd0c
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
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
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
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
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
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
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
OOUI was effectively overriding this with it's own rule for labels in an option
widget.
Bug: T99267
Change-Id: I82ce2d5ec1a859075d7bf1010ca76cdea9ead1a0
We were selecting the outer <div>s rather than the actual links which you could
interact with via the keyboard.
Bug: T97323
Change-Id: I797739e45f2c0b4a1d39e4b1901bc0836c82f281
Don't use the full IndexLayout for now as it doesn't
work easily in variable height situations.
Depends on this feature being preset in MW core.
Bug: T97878
Change-Id: I5d949bf69b0721b288c37c1f12210b0265658eb5
New changes:
68959f2 Localisation updates from https://translatewiki.net.
2c0224d [BREAKING CHANGE] Link widget refactor
f81eefa [BREAKING CHANGE] Rename LinkInspector to LinkAnnotationInspector
Local changes:
Adjust for link inspector refactor
Create separate widgets for internal and external link
annotations. Remove annotation specific logic from link
target input widget.
Change-Id: I054c3fe7ac9c61fbc3302471abd58cab89fed5a4
Allow references to be created as placeholders and exclude
them from ReferenceListNodes and the ReferenceSearchWidget.
Bonus: Fix reference numbering when items are skipped (in
list nodes and search widget).
Change-Id: I8dc5146c21f309e89ff4ddd939f7c65a0c358378
In wikitext editor these messages were in mw-body-content where they
inherited a sensible line height, so apply one manually.
Bonus:
* Make header bold
* Remove some duplication with inheritance
Change-Id: Ia7eaa556815ee6645a85162de03198e5a4dc7b03
* If the user switches to external links, clear the input
* If the user types something with a protocol, automatically switch
them to external links. If they manually switch back to internal,
remember that and don't auto switch them again.
* If the user inputs something without a protocol into the external
link box, prepend 'http://'
Bug: T93699
Bug: T93700
Change-Id: Ia0e3a04f34077e7bd56254112dafd86ad865cbe2
Replace current, sectioned, order of link inspector suggestions
(existing, redirect, disambig) with order from API.
Reduce number of matches to 5, and show new page suggestion last.
Bug: T93698
Change-Id: Ida887d889730d7749041942636d24e181c335697
In the template dialog, keep the parameter search widget expanded
with all parameters showing if it was already expanded once.
Also keep the parameter list available after inserting each parameter
instead of asking the user to click the add details repeatedly.
Bug: T95696
Change-Id: I14a47dbea5c69532238e7e67290e613121fdc40e
This is a quickfix to make the masonry fit recalculate itself after
the window is resized. It is most significant for orientation changes
in mobile devices, as those lead to a resizing of the window and a
complete reorganization of the masonry fit rows.
Bug: T95017
Change-Id: Ibf3c74ea21d42f4a159d0b855be5672c8455639f
Dialogs should not be position:fixed in mobile as they are full
screen, and that behavior is dangerously buggy in mobile webkit.
Also remove the rules that hide template pieces in mobile so we
can show the citation dialogs in all their glory and function.
* Depends on ve-core fix I748123a362f9
Bug: T86233
Change-Id: I3daa2b733a7685cb5ff127625f6d2e51b416ec33
New changes:
8dc8b26 Trim leading and trailing whitespace from annotations
306feb4 Add get(Col|Row)Count to TableSelection and use in isFull*
1c06d21 Cursor holders for native cursoring to ce=false nodes
b08384d Provide file extension fallback for FileTransferHandlers
28844ed [BREAKING CHANGE] Move all icons to OOjs UI's icon packs
9d37355 demo: Set 'lang' attribute of target
8945420 Follow-up 8dc8b266: account for annotations that return []
c2bbc97 Localisation updates from https://translatewiki.net.
Local changes:
* Switch to using OOjs UI icons for VisualEditor core features
* Update test for whitespace trimming
Change-Id: I12b22a411600b6e8e61858e7ed600fb53eedd95d
For each template result, ask for the templatedata description. If
that description exists, show it under the template result.
Bug: T53436
Change-Id: If28d1eb082edca6f50c6c15c933a0b7d014eaeaf
Use the newly created preview widget to render consistent previews
of references in the context items and search widget.
Depends on ve-core fix Ia7e96e048e4b
Bug: T93042
Change-Id: I3a7f6402018924a18efbb49ba61a16787c41f1f4
Disable the option for basic reference and for existing reference from inside
the basic reference dialog itself.
Also make sure the dialog opens its intended target citation dialogs with the
new mwcite action rather than directly so the reference to the inDialog surface
is preserved.
Change-Id: Idc6e5b849e2dbd422807a6d3cacde8f274e42854
In case of FlaggedRevs, for example, the software is given a loose
string of html with a Bold element, Text nodes, and Anchor element.
Bug: T95989
Change-Id: I3d345677507ffc08feec0f7785e148ac98f19cb7
When the dialog opens make sure the first input is focused.
** Depends on OOUI change I9f1e908e0d **
Bug: T95450
Change-Id: I789bcf98ada7c3e2b9544426546775f65bab0edd
Set up the surface widget as inside the reference dialog, and let
the citation action notify the template dialog the name of the
dialog it is in. If the tool was executed from within the reference
dialog, skip over creating a reference and instead insert the
citation as a template.
* Depends on ve-core fix I709eeb0de475 *
Bug: T94621
Change-Id: I4871f8c0afe190117cc90e88227b37f292a71e20
MWExtensionNode:
* Inherit from LeafNode at the top level. Inline and block only
differ in CE where inline has isContent set.
MWAlienExtensionNode:
* Inhert from MW(Inline|Block)ExtensionNode respectively. Both
mixin MWAlienExtensionNode.
Bonus:
* Bring in paragraph unwrapping on inline nodes from MWMathNode
Bug: T93712
Change-Id: Ib04234f740cf1f27c861d8b3cfeea5e323b94678
Also fix up logic duplicated between ExtensionInspector
and LiveExtensionInspector.
BREAKING CHANGE:
* nodeModel property no longer exists, use NodeInspector's modelClasses
property, which is an array.
Bug: T93592
Change-Id: Ib0131c9485a903d73b770090bf8a938056782ba3
Don't rely on this.$element.width()/height() when showing the
category widget popups - instead use the default sizing. If one
thing goes wrong and the popup is clipped, all subsequent popups will
have a smaller and wrong sizing.
Change-Id: I38ac0ae97dd5d7c38cdcdcfb31f736b19837bd5a
When a citation is selected from the general citation dialog that
opens from the citoid inspector, make sure it opens the correct
citation window, namely the relevant cite-XXX window rather than
the transclusion window.
Bug: T94602
Change-Id: Idc8dd653e42011bd02c4bcec4aa9a02c9e2b7567
Also use an array instead of an object. The keys were already
meaningless (index numbers). A "wikimedia/*" Git search did not
show any usage outside MWNoticesPopupTool. However, the array is
backward-compatible with any code using it as an object for keys
or looping (just in case).
This should also make the order more reliable.
Bug: T87412
Change-Id: I683cc902bda5ba768e962af6725e657871b79b9a
New changes:
622693a Work around JS errors when editing image properties
a0498f8 [BREAKING CHANGE] Emit rerender for dead nodes
Local changes:
Use the new traverse function to bind handlers to rerender events of
generated content nodes to update the target of async rendered reference
content in reference context items.
Bug: T91314
Change-Id: I762a6c4c9438b431444c7af7b43043ee1517a15c
Because the mode label is set after measurements of the foot are made,
the body of a ProcessDialog was set to overlap the foot.
At some point T93290 will be fixed, but in the mean time we can solve
this problem by setting an initially.
Bug: T92986
Change-Id: I995d5ecd81b86ee188cf237f74487ec70480e297
We moved toward serialization, but in the case where we don't have a
rendering yet and it's happening async, we need to use the same DOM
container that will be rendered into.
Bug: T91336
Change-Id: I53920591fde02175d4162b1fe5899b97b10a5b0f
If a references list node is selected, open the dialog to edit it.
Otherwise just insert the references list for the default group, since
this is what the user wants to do in 99% of cases.
* Replaced the simple 'referencesList' command (which opened the dialog)
with a custom implementation in ve.ui.MWReferencesListCommand, which
inserts the references list or opens the dialog like before.
* Removed the ability to insert a references list from
ve.ui.MWReferencesListDialog, since it should now never open without
a references list selected. If it does, throw an error.
I considered the behavior of always showing the dialog if there is at
least one references list already in the document, but I think it would
be confusing if the tool behaved differently depending on the state of
the document (rather than merely current selection).
Bug: T71727
Change-Id: Ifbbfa28548de9c0435c5174fb7762079f59bac54
Add a dialog to group the possible citation types and allow the
user to choose the right citation dialog for them.
Depends on Ibf29417 in VE-core; useless without I3d9caef in VE-core.
Bug: T62768
Change-Id: I22a64265475b1b4c94b46c5af196bd08331a05e7
It turns out there are events bound to the rendering of CE nodes that
prevent certain events. The quick fix is to just round trip the
reference rendering to through the browser's HTML serializer and
parser, but T92583 has been filed to find a more general solution.
Bug: T92427
Change-Id: I725a0d2dbb24af9cbe7b1e7e0c8e0bda7fd8417c
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
This function was not returning a jqXHR for a long time. It's usually
a mw.Api promise, but might be something else.
Change-Id: I59975cc9dfbea70e5ae666fcc9915f10bd199e4d
When calculating whether to show the 'read more' button on fields
that are configured 'descriptions', use a threshold to check if
the height is enough to be shown.
Bug: T87265
Change-Id: I0601e4fa92cb58903641a146500cf560bc029425
Exactly the same change as Ifee722a7f60.
Because we have such excellent code reuse, or something.
Bug: T85622
Change-Id: I18bd5d3923771b6ff149aa589bb2fa23beecf4f5
Add the new feature for user agent checkbox for the mw.Feedback
dialog. This bumps our MediaWiki dependency to 1.25wmf20.
Change-Id: I741ded83de4f575777a15cb20735e351039dc81f
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
For the masonry view, the result widget resizes itself according to
the rows and other images in the row. Up until now the resize was
a bit buggy, occasionally missing height/width values. This is
mostly due to rounding errors, but also due to a small double
calculation that is now fixed with this code.
Change-Id: If18adc5280e4bdbb9174b7c7e6e4eadf3c1ab26d
Again. Originally done in I5a664f86, the crucial part of which was reversed
in I1500f480.
Bug: T89913
Change-Id: I39b0cdcdb5f76fa75f506c874ef6223d8d8d53e6
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
Generalize MWResourceQueue and MWResourceProvider so they are
extending the general classes from ve-core. This also allows for
tests in ve-core on the resource queue system.
* Depends on ve-core change I5346081317e *
Change-Id: If34cd99334f4ccb93015c3646f68ae3040b9c5d7
It's slow, especially on large pages, and it's triggered
very infrequently these days, and only for known bugs.
In the future we should replace this with a debugging
interface that displays the DOM diff between the original
DOM and the round-tripped DOM, as opposed to the boolean
interface we have now.
By extension, this also means the visualeditor-needcheck
tag won't be applied to new edits any more, although
its registration and messages are kept around because
edits with this tag still exist in page histories.
Bug: T87161
Change-Id: I909153492a5786b4b69fccd42ce3c1d4bdb3a059
In beta labs some local files displayed their links without http://
make sure they all are normalized to have the prefix.
Change-Id: Ia19de9b31e234138603495f06750d202654a8788
Mouseover and click events in the category widget should also call
their parent method.
Depends on the ooui change Ie576f4422
Change-Id: I73b574b28a5a60e4f046f3008407dbf4b1323b58
These are currently in page-specific mw.config. As these are
not related any page, they should be in the global export.
This is needed to have our tests (and code base) run error-free
without a MediaWiki page.
Bug: T89434
Change-Id: Ic42bcd14028772ff0c06e28c76ffaf156f8b985f
New changes:
50ccb23 Localisation updates from https://translatewiki.net.
9240a51 Update OOjs UI to v0.7.0
Local changes:
* MWTemplateDialog: Stop waiting for removed loading promise to
finish, as in OOjs UI I2bfa013 the loading promise is removed
since iframes were the only reason we needed it.
Change-Id: I1500f480d40d06e417366014b9c2a76f7ce9c29b
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
* Add margin-right: 0 to suppress OOUI's inline spacing feature. We
can't use margin on the widgets because of how draggable works (there
may not be "gaps" between draggable elements or funny things happen).
* Set our inline spacing to 0.5em (2 × 0.25em) rather than 0.75em, to
match OOUI styles.
* Space at bottom and right rather than at top and right.
Change-Id: I90f4f47dd0c55de18e5915e610a76d0140438cc3
The ready handler unconditionally focused the surface, even if
a different panel was shown. Prior to aa9eb9545 this didn't
actually break the search mode, because the search input was
focused after the image repo information came back, which
usually happened after ready. However, aa9eb9545 instead focused
the search input from the setup process, which is too early.
Also introduce this.currentPanel as a way to track
which panel is currently visible.
Bug: T88881
Change-Id: I0189fbeed73ee9103e45fec4a1bc8d4ee1b6ed40
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
It conflicts with the #toggle method. This happened to work because we
never called .toggle() here, but 8a53b2cd introduced such a call.
Follow-up to 8a53b2cd.
Bug: T88831
Change-Id: I4dd955d015d2bda50e4146b0ae2ddff557dcd346
Replace instances of .show() and .hide() with ooui 'hidden' class
to make performance better.
Related ooui change: Ibf7c99aa4aad
Bug: T87420
Bug: T88736
Change-Id: I3af8a322e88b7ba3364f350819d6dbcdc8b13270
* Add classes to elements in the page settings dialog boxes
* Restore the scenario that was disabled in
Id41d1329d22679b6a61201ceafc81eafa222d909
Change-Id: I5636e744daec2adf013d399bfb019e4d47912083
Increase the timeOut for the typing delay so we send search API
requests less frequently when the user types a search term.
Bug: T88188
Change-Id: Ibaf7184fb0eb9a02b460b0a66eabade791aea620
Prevent another api call for image sizing by caching the chosen
image in the media dialog with the imageInfoCache.
Bug: T88187
Change-Id: If2d905eeb5907f29b6839692509dfc07a06c230e
Its white overlay is pretty good at obscuring them, and the notices popup
would close when the dialog is closed, making it very easy to miss them.
Also fixed indentation.
Bug: T86987
Change-Id: I9f93c4169de98ef77a1eb33fd31a0ec524b6d2b7
Previously was using a margin so the scrollbar floated 1.25em from the
edge of the dialog.
Remove Apex-specific hack.
Change-Id: Idc953c492a6527a9216b77256d406fc3435ec0a9
Instead of manually attaching a button to the input widget, use the
newly available ActionFieldLayout.
Change-Id: I3a39f476e6115f97f11ea49fac5bfcd93bd8f841
New changes:
4bb50c3 Localisation updates from https://translatewiki.net.
b7a5b87 dm.InternalList: Use DOM methods instead of jQuery .html()
5b09c9b Localisation updates from https://translatewiki.net.
b709d19 Add generic support of alignable nodes
a1f6c3d Localisation updates from https://translatewiki.net.
c29675a Add find next/previous to command help dialog
1e0b1ed Localisation updates from https://translatewiki.net.
7c76542 Don't render rowspan="1" colspan="1" for every table cell
99eb069 Show a message when an invalid regex is inputted in F&R
Local changes:
Bump command help height for new find next/prev commands
Change-Id: I0196775e499132262ba80acdbf1afc26ef4e8c77
The media dialog used a css hiding hack to make the panels work in
the stack layout. The ooui change in Ibf7c99aa makes this hack not
work and be unnecessary. This fix deletes it.
Depends on ooui change Ibf7c99aa
Change-Id: I57243f9e87c0fde90e069a311e22e96a5b207326
Use a queue for the method that lays out the result images in
the rows; this queue will only run if the widget is visible,
to make sure that the calculations of the masonry view work
as they should.
In better words: Only cue the queue if the widget is visible.
Bug: T86802
Change-Id: Ia8a30a6a5cccd98a1201443d672e4a6ab4aa946f
When the user changes an image to another in the media dialog, we
already have API info that includes the original dimensions, media
type and other information that is required for the Scalable object
to compute the new current dimensions. We can use this info if it
exists instead of asking for another API call. Also make sure to
update the filename when we change an image in the dialog.
Bug: T87267
Change-Id: I9d86959b99b3f3dfed92255a9dba9a8fdd352dcb
* Set the src attribute only when the image is actually
visible in the search results.
* Display the thumbnail image we have from the search
results and then update with a larger one from the API.
* Request for more media results on a higher threshhold,
when the user views 2 rows above the last available
result.
* Correct the resizeToBoundingBox and simplify it to work
properly for a non-square bounding box regardless of
constraints.
Change-Id: If024b0335ce6a5d2d0eafdbfdfe1030dcaac3a75
Focus the page in the booklet layout so the add template
input is also focused at the opening of the template dialog.
Bug: T85484
Change-Id: Id9ae4653dc2a2e1d1dc16c83c540e22e30f4ea55
Make the spacing between the image title and the description
the same as the space between the description and the metadata.
Bug: T87451
Change-Id: I0d0051cd66072861019b904980c405fa05145b2b
OO.ui.CheckboxInputWidget#getValue was returning strings "true" or "false"
We want to use isSelected (and setSelected to set things instead of setValue,
I guess.)
Bug: T86827
Change-Id: I0b4b8dca00a4aeae4498a30d73e5eaa7c804115f
Show the currently used filename at the top of the media dialog so
it can be copied and used in other pages if needed.
Bug: T54459
Change-Id: Ib1844c997189f7ead0656c5a811d3cab70030f89
Add an info panel to the MediaDialog to show the user information
about the chosen file from the new extmetadata API.
Also, change the way results are viewed:
* Present the search results with their proper ratio.
* Use masonry fit for the search results.
* Change the resizeToBoundingBox method in ve.dm.MWImageNode to accept
a specific side constraint, either 'width' or 'height'. This is also
going to be useful for adding and calculating 'scale' considerations
that affects the image height.
* Add info panel with details from extmetadata including author, license,
date of upload and creation, etc.
* Get descriptions and data according to wiki language.
Bug: T78161
Bug: T74061
Change-Id: I7b4d019825aa89dd178665bd9492a07af15954ac
Also moved around some code from MWCategoryInputWidget to
MWCategoryWidget to be a bit less evilly interdependent.
Change-Id: I0b8a58fb669e232a990b19c4b7f872a320bfab58
The history event reflects actual changes, rather than the transact
event that masks staged changes done to the document.
Bug: T85845
Change-Id: I1faeb97677540f08c512b48b47fafe28b1072579
Having MWCategoryInputWidget inherit from ButonWidget makes things a lot easier.
The mousedown behaviour and the positioning of the popup need work but
that is unrelated to this patch.
Bug: T78039
Change-Id: Ic43e64a6a74b8679a15aa8031207ab722e061ab4
* Remove rounded corners.
* Change which borders are used as they change colour on focus.
* Fix margins.
Change-Id: I44f725dfeec5c26f95ba5368ca3848272d66e5be
Local teardown process was jumping to the front of the queue
resulting in the attributeInputs being emptied before they
were read in updateMwData.
Bug: T85818
Change-Id: I24cb490996048e514895c359dedf5945acdecb0a
Follows-up b0e8900, 447e8de, d3f26e65.
Contrary to binding a reference, this-overiddes for inline
functions gets messy and fragile. There's also a minor
performance overhead that can be avoided. No separation of
concerns, eiter, as the object is held by the closure.
Also:
* Remove left-over instances of @method.
* Remove redundant '0' argument to setTimeout.
* Use null instead of $ for apply() on static methods like $.when.
* Use .empty().append() instead of .html(). Does the same but
without additional overhead and without confusion association
with "html" which isn't used (it doesn't serialise and re-parse
or clone, it just appends when given one or more nodes).
Change-Id: I797a3667c67d52568150be9be5d043d149f22077
New changes:
fd433fa Add getter for toolbarDialogs in ve.ui.Surface
00c3eb7 Add 'done' button to find and replace dialog
3642dc8 Localisation updates from https://translatewiki.net.
fe2d908 Update OOjs UI to v0.6.0
Local changes to ve.ui.MWFormatTool.css for OOjs UI breaking change.
Change-Id: I6bf98ea988b3e1deb4824189ef8e6d59387b6ffc
New changes:
96d0936 Mark primary buttons as progressive as well
68f184c Localisation updates from https://translatewiki.net.
b96c9dc [BREAKING CHANGE] Rename method cmpOffsetPaths to compareOffsetPaths
862f31d Convenience compareDocumentOrder method
b5e2b87 Update OOjs UI to v0.5.0
Local fixes to correct for breaking change I32608c7f in OOjs UI.
Change-Id: I64f5e2f6ccc0056bfa9eda5e65e87789b97b8ad5
Make the image results align to the full width of the dialog. This
fix uses dynamic values of the width of the container rather than
a hard-coded value so it should work properly on all themes.
Bug: T78050
Change-Id: I05bb0d8a8b13c246840382b12e098d0579180016
New changes:
9929b6d [BREAKING CHANGE] Make ve.init.target an OO.ui.Element
Local changes:
* Fix target constructors now they generate this.$element
Change-Id: Ia6bf604c67305834a3f73863a10336cfbb83fa77
Make sure all surface widgets have documents that are initialized
with the direction of the parent document, so the alignment is set up
correctly.
Bug: T71969
Change-Id: I6e5f003e18a9c5808d9a4b148eddf0d0f7e29e67
* Move styles that apply to all targets to ve.init.mw.Target.css
* Move styles for MWPopupTool subclasses to ve.ui.MWPopupTool.css
Change-Id: I34c8a6200ee337debf00c4e432948f1b86f1b60a
Aside from the confusion and differences between substr() and
substring() and IE8 bugs with substr(), substr() was removed from
the spec as of ECMAScript 5. It's been standardised in the
optional Annex B section of ES5.
Change-Id: I221ef6ae6956ce20dd9bb74510500f747d04c3b1
New changes:
5e60f12 Ensure clipboard key is removed from paste target
32397d8 Update OOjs UI to v0.4.0
Local changes to compensate for new OOUI version, and updated wfUseMW call.
Change-Id: I005f7b23a36e04f1305d4aa037c19a5c7db9a699
canonicalQueryValue can be null at this point, so let's not insert it
into an array that contains strings.
Bug: T76868
Change-Id: I8096a9c1017e883d28124bf807d2d375ae98452a
New changes:
5eb7294 Find and replace
123a6ad Find and replace tool
557f70f Go backwards through find and replace results on shift enter
4a4ed81 Allow language widget to filter on available languages
Local changes to adjust.
Change-Id: I15e14d6d3c7ee60e465baf3a4df7572851cbca3e
Only change the panels (and focus the caption surface) after the
surface is actually appended and initialized.
Bug: T76074
Change-Id: I3d514f38b5fd9f794c4ff8c44a64f5f3475a84bd
Because a lot of toolbar customization was removed, use an evil
hack to get this in there for now. Should be cleaned up later.
Bug: T76082
Change-Id: I0fd5ddc6fa11162deb615f0b387d6d59c5cc4a3a
Make sure the dialog is listening to the correct event for when
caption surface changes.
Bug: T76074
Change-Id: I214947a440e4f78adf1541d8008599fe65ac8b2c
Also push it into correct place in the toolbar, and disable it from media and
reference dialogs' toolbars.
Change-Id: Icc3bf056860e35def13e03e77ffc6782acc4196a
To do things like strip off invalid invisible characters from the end of names.
(see bug)
Also rename that function because it covers more than just hidden status now
Bug: T74080
Change-Id: I8374695a991c4d3e397992ad9277b99d9288eec4
Uses the generic sequence detection now available in core instead
of a custom hack that had to been manually bound and unbound to
every surface and surface widget.
As the sequence detection looks at just-typed characters the behaviour
has reverted to showing a auto-hide message. This resolves an issue
with the previous system whereby typing in the same paragraph as existing
wikitext patterns triggered the warning.
Depends on I6a4d71d in core.
Bug: T53751
Change-Id: I7d914b1b60a1cf8c79a724e5f634e1e666c9562d
Empty this.$element in notices when there are no elements to display
as just hiding with CSS makes other items in the group no the last
child and therefore breaks any CSS rounded corners rules.
As notices are only ever generated at load, destroying the tool
is not a problem.
Bug: T63575
Change-Id: I63a044ca63f61b976f57e34ce9537034e68a2614
Local changes:
* Rename paste rules to import rules (also used by drag and drop)
New changes:
f5d83f8 Remove data-parsoid removal hack
99f938f Create 'preserveGenerated' mode for cloneElements and use in copy
938b44d [BREAKING CHANGE] Rename paste rules to import rules
c51288c ve.ce.Surface: Move insert HTML path to DM
10ce4cf Provide a FileDropHandler for HTML files
701bb9c Provide a FileDropHandler for CSV and TSV files
ca6b444 build: Update update-oojs.sh and update-oojs-ui.sh scripts
Change-Id: I5cfa15ab3efd03e2c64c2f9f725cb3098f53b32a
Also remove toolbar definitions as they can now be derived from
command availability.
Depends on If32d514a in core.
Change-Id: I2313f3cc2531686b27f96dc1110b28bb4b295f89
* Ensure surface widget font size matches main surface,
move vector-specific hack to vector css file and fix.
* Fix base font size in non-isolated monobook windows.
* Move monobook z-index hack to global overlay only.
Change-Id: I1607dc77f81ac9c522e09a3b502aeb38fee02178
New changes:
ff237d4 Fix z-indexes in core
e88d43e Localisation updates from https://translatewiki.net.
cf61803 Consistently use ve.ui.WindowManager everywhere
f9dfdb8 Update OOjs UI to v0.1.0-pre (23565e7519)
f79f7e3 Update OOjs UI to v0.1.0-pre (8f8896196f)
c8201dd Update OOjs UI to v0.1.0-pre (9ed4cf2557)
Local changes for the breaking change to OptionWidget and sub-classes.
Change-Id: Ife6abd312d4dc97be67cb84eea4cb9c6a0a31b1d
New changes:
6ec286e Support for generic file drop handlers
4f2ab66 Generic progress dialog for drag and drop uploads
742e0fe Fix pasteSpecial command
87ea9e9 Fix up/down arrowing off a focusable node
643ea34 spinner.gif: Update with new version from Trevor
ffd8b1e Position the table context relative to the first section node
393776a Fix logic for ignoring (col|row)span=1
f94b10e Don't unmerge spanned cells when spanned cell is removed
3416764 TableContext: Simplify row/column overlays styles
e6c0038 Localisation updates from https://translatewiki.net.
fb1a922 Register select all as a command and perform programmatically
3c1ce93 Make caption tool available when caption selected
dd0ac7d Move disabling logic from tools to commands
8bf33a5 Bold & italic icons for Armenian
058b32c Update OOjs UI to v0.1.0-pre (05f0fefc3f)
c01d115 Create filedrophandlers folder for implementations
Local changes:
* Register new files
* Move disabling logic from tools to commands
onUpdateState should only ever call setActive. setDisabled should
already be determined by the command so that it can prevent itself
being called by triggers.
Change-Id: Icdeaa4c152a0dcd839c8e7cc4e64b2215eb2de1e
setMode() is called multiple times, but it didn't
check whether the mode being set was already set.
Because it's a setter, make it idempotent.
This fixes the problem where the first input will
be focused first, then blurred later, but it
introduces a new problem because the label for
the 'mode' ActionWidget is set from setMode().
To solve that, factor the setting of this label
out into its own function and call it on setup.
Bug: 73138
Change-Id: I9bb127f22f6c0b745b393c523ec42f320fc85cf3
* A subclass of MenuItemWidget from OOUI, MWLinkMenuItemWidget, is introduced that, when used in MWLinkTargetInputWidget for both
external and internal links, returns actual page links.
* MWInternalLinkMenuItemWidget is extended from MWLinkMenuItemWidget to support the internal links.
* LinkCache is being used in MWInternalLinkMenuItemWidet to stylize the links. Thus, getting rid of some old css classes.
Bug: 51205
Change-Id: I3ac18dabd514ca539fff1db3c67ae97931c3d4fc
We were setting the height to 2.25em which just happened
to be right, but it depended on the browser's default
line-height being a certain value. Now that that's changed
with unisolation, the alignment breaks.
Instead of using a magic value, use height: 100%; so it
takes the parent's height. We don't even have to make the
parent position: relative; because it already is.
Also change the width to 2em, which is a much more defensible
value than 2.25em. Previously 2.25em kind of made sense because
that was also the height (resulting in a square box), but
now we don't have that excuse any more.
Bug: 72962
Change-Id: Id617bfaafefd1fc1530fbee29be5d935ec486b92
New changes:
2cc219a Update OOjs UI to v0.1.0-pre (571f26d0ab)
3543cb7 Protect against offset=-1 in insertContent()
7a3d456 [BREAKING CHANGE] Move selection restrictions from tools to commands
3d847bb Disable desktop context on table selections
41282dd Missed function rename from RangeFix change
dd6c8b8 Support toDomElements returning an empty array
9be6464 Placholder -> placeholder
9bdd0a8 Restore basic styling to toolbar in core target (only)
Local changes:
Move selection restrictions from tools to commands
Change-Id: I88f3d04946bd1d03ed001d747475a8b495a0f64c
This code was somehow broken by Ia47bc897 (wtf, how?)
Actually removing it seems to do no harm (wtf?), as far as I've been able to tell...
Bug: 72906
Change-Id: If7eb34a20cc8060b594a567278241b02a8ee327a
Now that we have .getTitle() as a method in MWTitleInputWidget, replacing the callers
of MWTitleInputWidget.getValue() with .getTitle(). This fixes a bug in the .getTitle()
method in MWTitleInputWidget which was not taking the namespaces into account before.
Also fixes: the error when entering "Talk:" as a template title. The button to add template
remains disabled when "Talk:" is given as an input to the title here.
Bug: 71998
Change-Id: I1e629a61ec8b035d93a4b7acfecab81934019166
This was needed to make the ComboBoxWidget initialize
its selection, but Idcbf38c53 makes that happen automatically.
Depends on Idcbf38c53 in oojs-ui.
Bug: 72783
Change-Id: I8d3a014f862ece7f4f201af205a8a7ca6c365eaa
Now that the toolbar hides extra features by default, we don't need to
use autoAddToGroup and autoAddToCatchall over-rides.
Change-Id: I493f7d46a3f77e7c62af05f8e05ae4dde7147e4b
MWCategoryInputWidget:
* Use @inheritdoc
* Don't modify data parameter in getLookupCacheItemFromData()
MWLinkTargetInputWidget:
* Remove this.choosing in favor of setLookupsDisabled()
* Explicitly close menu on choose
* Remove manual emission of change events
** This looks ridiculous, it doesn't seem to be necessary,
and it causes infinite event loops. But I'm very curious
why this was added in the first place.
* Remove onLookupInputChange override that is now unnecessary
* Use {} rather than [] for fake empty result
* Prevent programmatic focus from opening the menu
MWTitleInputWidget:
* On choose, close menu and disable lookups while changing value
* Use @inheritdoc
* Remove mentions of "template" from getTitle() documentation
Bug fixed:
* When choosing a suggestion in MWTitleInputWidget,
new suggestions would be loaded and the menu would reopen
Depends on Iecae9b582 in oojs-ui.
Change-Id: I716f99bb464a5cebd4f17701197f768e4e0e02a9
When show/hide options is clicked, the inputs in the main pane
move as the outline transitions in or out. This causes any dropdowns
below these inputs to become mispositioned: they don't move
because they're in an overlay.
To work around this problem, blur the active input when show/hide
options is clicked, so any dropdown attached to it is closed.
I tried blurring and immediately refocusing the active input to
force the dropdown to reposition itself, but that looks awkward
because of the transition (we'd have to wait for the transition
to complete before repositioning it, and during the transition
it'll stay open in the wrong place).
Bug: 72789
Change-Id: Ibd963690573af905066839f7276077089fa893c6
A method isValid() is added to MWTitleInputWidget which would validate the titles given as inputs
Bug: 71249
Change-Id: I7749165652bd3c0bb08ca42289a425fe8e25483d
A method for getTitle() is added which can return the valid title,
or, it can return null, in case the value isn't a valid title
Bug: 72468
Change-Id: I8a13afc9a66c167fe25010743c0d9e1424133d96
These disappeared when DecoratedOptionWidget was split
out of OptionWidget in I508c1555 in oojs-ui back in July,
and apparently no one noticed.
Make MWParameterResultWidget and MWMoreParameterResultWidget
inherit DecoratedOptionWidget instead of OptionWidget so
the icon config parameter is recognized again.
Change-Id: I08d8a0466c211a29eb62043131725073dece4eb5
It works both with and without in isolated dialogs,
but styling things this way breaks in non-isolated dialogs.
Change-Id: Ia498b48d8c199f50df326ddeb61d958cbe2c520d
Indiscriminately styling all .oo-ui-widget elements with a
descendant selector is very evil, use a child selector instead.
The use of a descendant selector broke inline dropdowns.
Change-Id: I25c5007ef1ffab9e59c46c3b11270b8f77610327
Also change this.$overlay (which doesn't even exist) to
config.$overlay in MWTemplatePlaceholderPage and document it.
Compensates for I39df86373ea in oojs-ui.
Change-Id: I4a233c058439d6cfb38d80ece890c8fe57d58f49
Would put this code in onBookletLayoutSet, but that doesn't appear to be
getting called in this case.
Have to detect whether or not we should be changing the disabled status, rather
than just setting it straight away, which would break every other case where
onBookletLayoutSet is called.
Bug: 63158
Change-Id: I6f62479291424d9b2ee0e42481dec9d085169c63