In two cases we were using fragment.getSurface().getFragment() which
creates a new fragment from the current selection instead of using
the range of the original fragment.
Change-Id: Ib41efe2ceb670a125c0c306d143e56f9b9c349e7
Adding a template by clicking the button without dismissing the lookup
menu first was leaving the menu open and inserting a template with the
query instead of the match.
Changes:
* If the lookup menu is visible, choose the selected item before using
the value of the lookup input
Depends on I3aa4e87 in OOUI
Bug: 64334
Change-Id: I22e04bd2d3628f03060d3734f9774b811c82f73b
* Move description to a popup behind a little info icon button
* Make required indicator generic status indicator (required/deprecated)
and move to left of the field
* Move param name and actions to above the field
* Show deprecated status and description
Bonus:
* Use auto-focus on CitationDialog (whoops!)
* Make pages that aren't meant to scroll not scroll (whoops again!?)
Depends on I59211b2 in OOUI
Bug: 53612
Change-Id: I3b968ad14aa6c43b6484e2565a9367d2ebc72fc5
At some point getTitle was changed to updateTitle but the caller was still
assuming it would return a string. Also, we removed the transclusion
dialog title message, but were still trying to use it.
Changes:
* Change the logic so we use the parent method for updateTItle correctly
* Bring the transclusion title message back
Bug: 64671
Change-Id: I3beb8b1d4304ba73c428868b9ac2d0f6a1cc9944
When MWReferenceDialog was modified to inherit from ActionDialog the
search select method didn't get changed to call applyChanges. But really,
you can't just call applyChanges because you need all the promise setup
stuff that onApplyButtonClick does. The API for ActionDialog needs to be
improved, but this works just fine in the mean time.
Bug: 64677
Change-Id: Ib38a624811dc26ead7b9de64cb41aff642820452
Based on I70e88f6 in VE core
* Cleanup dialogs by using node dialog and action dialog
* Move "Loading..." text from label of dialog apply button to dialog title
(repurpose identical message)
Save dialog will be converted in a follow up.
Change-Id: I6a290f4bdc29e577c7c89b4babdab5853c4c10e5
Was clearing things like captchas when swapping panels. It still makes
sense to clear these when opening up the dialog though.
Bug: 62766
Change-Id: I37ceeebc672e2866b805631b189108d8363bdc9f
Also fixes some errors in I752705f6
And while we're there, clean up some mostly duplicate functions
Bug: 57169
Bug: 57170
Bug: 57171
Bug: 57172
Change-Id: I1e3dca3868a267e91bccb0ae277012c26ca82174
Update dialogs and inspectors for breaking change in VE core
New changes:
a553012 [BREAKING CHANGE] Merge dialog and inspector actions into window actions
f9a0419 Localisation updates from https://translatewiki.net.
cbe81a0 Fix path to spinner in ve.ui.SpecialCharacterInspector.css
Change-Id: Icf90ace6442364283b66b234e3c78fc65212f070
Reorganize stylesheets in VE-MW to match JS directory structures,
and update VisualEditor.php for similar reorganization in VE core.
New changes:
c6ed962 Reorganize stylesheets
Change-Id: I4f1070643744fb2ee6726cb03e012e31a9a05c64
Most of the code stolen from MWMathInspector and genericised.
Also fix issues with fragment not wrapping the new node correctly.
Bug: 58286
Bug: 58045
Change-Id: I708c4cb012becf8c493d5b65a051c0b13f7a11ac
Use a dir string instead of isLtr boolean like we do everywhere
else. Also use this.constructor.static, not this.static inside
methods.
Fixes Ie0525628.
Bug: 64072
Change-Id: I5321b71a446802d89ca86d55a0bff855b69825eb
We used to have two dialogs; a complex one, and a subclass that dumbed it
down - this was rubbish.
Then we merged them together - this was a'ight.
Now we have two dialogs again; a simple one, and a subclass that fancies
it up a bit - this is wicked keen broham.
Change-Id: I4b2ba31bed5c4f80940623702d635cacd19e0a66
By default, MWTitleInputWidgets are now 30em wide, but this doesn't
work in the transclusion dialog where we want to put the "Add template"
button after an MWTitleInputWidget and have it not wrap to the next line.
So make the MWTitleInputWidget on the add template page 20em wide instead
(this is what they all were before the default was changed to 30em).
Change-Id: I2f33a87427657f4e27939c401436c4ce6441208c
16ec8ffdcf did this for the reference dialog, but the media edit
dialog needs it too. Additionally, we need to focus it when the
user switches to a different page then comes back.
Bug: 63909
Change-Id: If1b9587f4d10dbe6374e987b35c781954bcc566d
Due to a lack of clarity in the wikitext documentation the border
checkbox wasn't set up right. This is the proper behavior: border is
allowed for all unframed images (frameless and basic) while the
framed images (frame and thumb) have it anyways. Wikitext
documentation was also clarified for prosperity.
Change-Id: I4dd4775da473d669781553796be99646240c13fe
Otherwise the surface ends up in a weird half-focused state which
causes it to behave strangely.
Bug: 63909
Change-Id: I3ebc30fde0202116b383a5b497aca65b66732922
The logic was checking that there were at least three items to show, then triggering
the MWMoreParametersResultWidget widget with the number of items left in the overflow
if the limit was two. Whoops. :-)
Change-Id: Icec16a2d26bef8bf8d74ed619341afd494ca0479
There are two ways dialogs determine if they are inserting or updating.
1. They evaluate whether the dialog is inserting or not and set a boolean
flag, used later to steer the saving code
2. They evaluate whether the dialog is inserting or not and, if not,
store the node to be updated in a property, used later to steer the
saving code
In the reference list dialog, setup used strategy 1, and teardown used
strategy 2. We've now normalized to use strategy 2 in both methods, which
fixes this bug.
Bug: 61885
Change-Id: I1b077b2aef4121328bce2b373874dd7373e405a1
These were being used indirectly in the MW*Model's. Use surface
fragments instead.
Fixes I0fae3e5ff2bd.
Change-Id: I1d6aa5e00a9315cf7088f87f9e9d828833feec64
Move various bits of code from initialize to setup as required.
MWDialog is now useless so use ve.ui.Dialog directly.
New changes:
0b2d03f [BREAKING CHANGE] Pass fragments, not surfaces, to windows (reprise)
0101ac4 Update OOjs UI to v0.1.0-pre (ac6848398c)
Change-Id: I0fae3e5ff2bd0da5b74c244af226b07b1f5883bd
ve.dm.Scalable is now a computational model for image scaling and
size manipulation. This commit adjusts the nodes and the edit and
insertion dialog to handle the new scalable model, and by that
use a centralized computational engine for all scaling and size
changes.
New changes:
3ec19fb8 Refactor Scalable functionality
Change-Id: I017a017924f544cc8bc9b7d8245335759ae0e890
* Truncate beyond 3 parameters
* Add a special option class that, when clicked, shows the remaining parameters
* Use a special option class for the no parameters item instead of hacking the normal one
* Simplify the design of the no parameters item: no icon, centered text
Change-Id: Ia8259e91b42a59c2b08019df36217d485208ad99
Changes:
* Change uses of initializeSelection to selectItem
* Use "choose" event to respond to deliberate item selection by the user
Depends on changes in OOJS-UI (Ib3826ed)
Change-Id: Ia167a70ca5f40b1f15adad30620fdb13ef0d02d7
When using a tool that opens a citation or citation transclusion dialog,
the dialog shouldn't use edit mode unless the template in the node and the
template the tool would insert match.
Bug: 63452
Change-Id: I34a5a2da576247f4046da45f742bccc3cec22c5a
Also update tools for changes in VE core.
New changes:
e4de14b Make tools use commands
e029817 Make getToolsForNode place primary commands first
Change-Id: I66575ee6d49e6b2f5a5f789978da98bb55e6dc5e
The transclusion tools shown in the toolbar in the reference dialog
passed a template to open with to the transclusion dialog, but it
didn't take that config parameter.
Moved this parameter up from CitationDialog to TransclusionDialog,
and moved its logic into the setup function.
Bug: 63037
Change-Id: I9249c845a5ae7cca2ec4d75d69e1236f7755d246
* Create a method to produce the correct label
* Override that method in the citation dialog subclass
Change-Id: Ic74a23dcf30aae201f3d6c312b760cf058aadf11
This fails before the reference has been inserted, because
it's not yet in keyedNodes at that point.
Bug: 63031
Change-Id: I34ea1a88c0f332c23e43597d1c42158bfb0f1e98
Objectives:
* Allow users on-wiki to create tools and dialogs for citation templates
of their choosing
* Allow editing of citation templates directly, without having to go
through the reference dialog
* Provide citation template tools within reference editing that use the
same titles and icons as the citation tools do, but don't wrap the
inserted content in a ref tag
Changes:
* Reference list was cloning the DOM element it was inserting into its
view before the generated content node could finish rendering, so it
never ended up showing the finished rendering in the reference list
* Documenting hack about use of reference list node's destroy method,
and how we are depending on destroy not canceling generated content
rendering
* Introduced reference model
* Added saving/updating method to transclusion model
* Added getPartsList method to dm transclusion node, which caches the
result and invalidates the cache on update
* Added citation dialog, which extends transclusion dialog
* Added cite group to toolbars, cite-template in reference dialog toolbar
* Factored out getting the node to edit and saving changes procedures in
transclusion dialog so they could be extended in citation dialog
* Updated uses of autoAdd as per changes in oojs-ui (Ic353f91)
* Renamed MWDialogTool file since there was only one tool in it
* Expanded TransclusionDialogTool file out since there is now more logic
to it
* Switched to using ve.dm.MWReferenceModel instead of plain objects in
reference search widget
Configuration:
If you add to MediaWiki:Visualeditor-cite-tool-definition.json the
following code you will magically be presented with a delightful array
of citation options:
[
{ "name": "web", "icon": "ref-cite-web", "template": "Cite web" },
{ "name": "book", "icon": "ref-cite-book", "template": "Cite book" },
{ "name": "news", "icon": "ref-cite-news", "template": "Cite news" },
{ "name": "journal", "icon": "ref-cite-journal", "template": "Cite journal" }
]
...or...
[
{
"name": "any-name",
"icon": "any-ooui-icon",
"template": "Any template",
"title": "Any title text"
}
]
The title text is derived either from the title property or from the name
property by pre-pending the string 'visualeditor-cite-tool-name-' to
generate a message key. Titles for 'web', 'book', 'news' and 'journal' are
provided. The icon is a normal oo-ui-icon name, and more icons can be
added, as usual, by adding a class called .oo-ui-icon-{icon name} to
MediaWiki:Common.css. 'ref-cite-web', 'ref-cite-book', 'ref-cite-news'
and 'ref-cite-journal' are provided. The template name is simply the name
of the template without its namespace prefix.
Depends on Ic353f91 in oojs-ui
Bug: 50110
Bug: 50768
Change-Id: Id401d973b8d5fe2faec481cc777c17a24fd19dd4
The request for originalDimensions is taken from the API, which can be
rather slow. There is a future (soon) fix that refactors the entire way
we read the originalDimensions asynchronously and load it into the dialog
but until that is available, this fix introduces a couple of basic
fallbacks in case originalDimensions are not yet available in the size
widget.
Bug: 62024
Change-Id: I8d00cea6f1d667359a44a6c185c16340bc6e81c9
New changes:
7b68782 Update OOjs UI to v0.1.0-pre (3b434d5388)
ecb194d Remove border-radius prefixes
993220a Fix invalid use of border shorthand syntax
580473e build: Clean up repo split left overs in Gruntfile
Incidental change:
* The OOjs UI-provided 'autoAdd' configuration option for tools has been
replaced with 'autoAddToCatchall' and 'autoAddToGroup'.
Change-Id: Ie7646ae867e5c6ca616c3f9045c79b886e78475c
It was excluded, but also promoted, and the toolbar resolves this ambiguity
in favor of promotion.
Bug: 62575
Change-Id: I2f1eadb27cbd16e3258aee0311c7b35f6311ea5a
This works the first time the dialog is opened, but if the user types
a value into the search widget that yields 0 results, then closes
and reopens the dialog, that value will persist and the search widget
will still be empty, so we'll wrongly disable the "Use existing reference"
button.
Instead, check what we're actually interested in directly: whether
the index of reusable references is empty.
Bug: 61960
Change-Id: If4bf6ced7dc3af643f602c07f3142a0e637a3247
This is the normalized title without the fragment, which is what
should be used for existence check purposes. Also add a test for
an internal link to a page's section.
Change-Id: I0e04f64c1bebeff84a0c17ef9b6c8dc06876f769
This patch increases the width of the defaultsort field, a problem
identified in bug 51012. It does this by adding a custom class in
/modules/ve-mw/ui/pages/ve.ui.MWCategoriesPage.js called
.ve-ui-mwCategoriesPage-defaultsort and then applying the style in
modules/ve-mw/ui/styles/ve.ui.Page.css.
The patch also increases the width of a field that was not addressed
in the bug report, the page redirect field in the page settings
page in the options dialog. This was done because, like the
defaultsort field, this field takes as input page titles, which
can sometimes be long. This was done by adding a style to
modules/ve-mw/ui/styles/ve.ui.MWWidget using the
.ve-ui-mwTitleInputWidget class, a class which had been added
to the input field but didn't have any styles associated with it
until this commit.
In both fields, the width has been set to 30em.
Bug: 51012
Change-Id: Ic24f0d20256a5d64075f9d2850215a03b8c8ae66
Update MWMediaDialog for .static.config -> .static.dialogData
rename in VE core.
New changes:
61e34f3 Only insert slugs where paragraphs are allowed
f65983d Don't try to return the document in getCoveredNodes
b9313ba Remove incorrect documentation for the .static containers
16874e2 ve.ui.Trigger: Clean up indentation and documentation
0eeba06 Cleanup docs and method of tools
Change-Id: I7bfb500ace1acc360cc24de2763e3f52fbb82a0e
TOC Widget is created in the mw target view class.
Adding and removing a heading rebuilds the TOC Widget based
on the the order of the page heading nodes.
TOC Widget considers TOC page settings and displays in the default manor
unless forced or disabled.
TOC Widget still needs to be finalized by being placed in the surface.
This could be a problem until we have a CE node for it to live in or
have some DM work added. Roan and I have discussed how to go forward.
To enable the widget you must add the following to LocalSettings.php:
$wgVisualEditorEnableTocWidget = true;
Change-Id: I488cfbbdb060e50d81f51e0f757e67d0114b8936
* Corrected the condition that set default size only if the image
wasn't smaller than the default.
* Added a couple of sanity check conditions for the OO.Compare
condition
Bug: 62586
Bug: 62581
Change-Id: I4db996cec33ac9d53ef485b53568100e3912c4ae
Shown when there's no template data.
Someday in the future, we will support adding a description inline. Not
yet. Calm down.
Change-Id: I18c0a591b60de53bc124d82c688d71d30ad1d5dd
* Add class to items container right at creation time.
* Do handling for individual items when we have a reference to the
item. No need to query for children() afterwards.
Change-Id: I7f5eda3d514da6d7a931bc31090a08b1937ed3e7
* Use "Insert template" when adding a single template
* Use "Insert transclusion" when adding a multi-part template
* Use "Apply changes" when working with an existing tranclusion
* Use "Loading..." and disable while waiting for template data
* Disable when the transclusion has only a template placeholder
Bug: 50998
Change-Id: Ib2fb3d8711ed6d3ef41cc0db55740c95394dd3f9
When an image is smaller than the default size, the placeholder 'default'
value will be the image's actual size. This means that if a user selects
default thumb size for the image, it won't be changed unless the original
size is bigger than the default. Also adjusted so that default size limits
width only, and doesn't act as a bounding box on size change.
Bug: 62293
Change-Id: I8341776794843ff63a93bedeadf5921851c57a26
While the documentation is unclear, it seems that the 'thumbsize' in
$wgDefaultUserOptions is setting up width limit rather than a general
bounding box.
Things that are adapted in this fix:
* Only resize the image if the image is bigger than default and marked
as default size.
* Only limit width, even if the image is tall.
* Add rounding to calculated height value.
* Make sure new images follow these rules as well on insertion.
Bug: 62293
Bug: 62279
Change-Id: I37525bf3480bb1da8b0538f9b38576616aabbfa6
Fix a bug in MediaEditDialog that resulted from sync issues when the
'select' event is fired for OO.ui.ButtonSelectWidget widgets.
Use the details of the selected item given from the event rather than
checking the state of the widget with getSelectedItem().
Change-Id: Ifbbf722ff374e10b680a6b55ab99f5fc86480c40
Not removing the existing message for "Transclusion" for now in case
that's needed later.
Bug: 55434
Change-Id: I0ee722e821051970b4a445b5a7a0e93f144f3185
* Automatically select single mode when possible
* Allow dynamic switching when possible
* Hide most of the controls and information when in single mode
* Allow parameter model to be instantiated without name and value args
* Place add param buttons at the bottom of template and param pages
which are only visible when in single mode and on the last page
Change-Id: Iaffbf1863b808c8089dfcf09a976d165f28c8b74
Also update for dialog size changes on oojs-ui, and make the
save dialog grow from 'medium' to 'large' when viewing a diff.
New changes:
ae195ac Update OOjs UI to v0.1.0-pre (e4f6ce0156)
ab70193 Pass surface set into ve.ui.Dialog and ve.ui.Inspector
Bug: 60494
Change-Id: Ib3065e228459aa00f18c309d234f3324fdb34059
The promote/demote rules in mw.Target had changed, but these changes
weren't copied to MWMediaEditDialog and MWReferenceDialog.
Also, we ideally shouldn't need to maintain these things
completely separately from each other.
Bug: 62286
Change-Id: I459c3310f2ac0d8860a686a05da4f45d9a888801
Fixing several inline comments from the previous commit, and
reorganizing the usability of size select clicks to prevent loop
click bug.
Change-Id: I259d86e9bbe90270d8883b7a3de96979b1d5a156
There are several conditions to defaultSize behavior of thumbnails and
frameless images and other images when it comes to default size. In the
same principle is 'border' which is not quite a type despite the fact
it 'behaves' as such in wikitext (and has a unique identifier that comes
instead of the other types.
This commit aims to organize this behavior for the user in an
understandable manner.
* Add 'basic' image type for images that have no specified type ('none')
* Handle the difference in 'default' size behavior between basic images
and thumbnails/frameless. The thumb/frameless images have the default
wiki size. Other images' default size is their original dimensions.
* Force wiki-configured default size for thumbnails and frameless images
in the DM. This is done because at the moment Parsoid's output is of
Wikipedia's default size rather than the local wiki's. The size is
adapted if needed, directly in the DM.
* Added 'border' as a pseudo-type checkbox flag that sets css class
'mw-image-border' is for parsoid rendering on save.
* Add 'make full size' to the size widget select and treat it as a faux
default button for basic and frame images.
Bug: 62013
Bug: 62024
Bug: 61155
Bug: 61059
Bug: 61282
Change-Id: I6778705306f0dd6bb96afeb91383089a4ddab7ed
Also, use new getClosestPage method in ooui to select which page should
be selected next when a page is removed.
Change-Id: I7ce4d2ca55aac72f3aaa14c98c7189a440598e08