Commit graph

30 commits

Author SHA1 Message Date
Ed Sanders 420c0f6c10 ve.ui.MWLiveExtensionInspector: Account for this.selectedNode being null in debounced method
Change-Id: I74ab091d3bfbdd9290429cd50688f458118701e7
2023-01-26 17:58:00 +00:00
Ed Sanders 2644c84cda Increase default debounce of live extension inspector/dialog to 1000ms
250ms gaps are pretty common when typing at a normal speed, resulting
in a lot of (often expensive) API requests (e.g. T312319). For most
use cases this level of responsiveness in the preview is not necessary.

Change-Id: I6504567d4da02a66171ee35a9c4fd35c85136909
2022-07-14 17:14:37 +01:00
James D. Forrester 2c77e88d2c doc: Bump copyright year for 2020
Change-Id: I30539877543dc2a57bd1428a00d10ac46d8fc294
2020-01-08 09:13:24 -08:00
James D. Forrester 3c293ea00c doc: Bump copyright year for 2019
Change-Id: I8991b97c980d4149f53eb5601036220ef3c0c440
2019-01-01 13:24:23 +00:00
James D. Forrester 0a7a845a42 doc: Bump copyright year
Change-Id: I0b299c840ede1a1b8552cecfc70c5760ab036181
2018-01-03 17:45:07 +00:00
Thalia 43c2865f90 Update actions on live inspectors and preview dialogs
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
2017-01-21 18:29:18 +00:00
James D. Forrester 122f49b2dd build: Bump file copyright notices for 2017
Change-Id: I3c20809e71cc0da58123e1b5f29c4f3aac945496
2017-01-03 08:58:33 -08:00
James D. Forrester ada58df361 build: Bump file copyright notices for 2016
Change-Id: I3c618c196e504a80ca297a4132a17f1977a24fb7
2016-01-03 14:57:25 -08:00
Thalia 7731508134 Make new error element
Bug: T114754
Change-Id: I5839ba62fe4b4708ff51dc549c5294189d7f8843
2015-10-29 22:32:42 +00:00
jenkins-bot cd29e0376d Merge "Add error element to MWLiveExtensionInspector" 2015-10-05 22:53:20 +00:00
Ed Sanders 3f2a885e3e Ensure full error message is shown when inspector is closed
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
2015-10-05 17:15:40 +00:00
Thalia 9307fa7095 Add error element to MWLiveExtensionInspector
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
2015-10-05 00:22:22 +01:00
Thalia 34f6e11a19 Call updatePreview when closing the LiveExtensionInspector
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
2015-10-01 15:58:20 +01:00
Ed Sanders 8815d1397f Abstract mwExtension behaviour into MWExtensionWindow
Allows us to create an MWExtensionDialog base class that shares
the logic.

Change-Id: I53c8f1713a3513d2635cfd736ec8fc3f9616d864
2015-09-05 18:18:24 +01:00
Alex Monk a02d8573b4 Fix cancelling of extension inspectors
* Don't insert/update/remove nodes on cancel in MWExtensionInspector
* Don't forget to popStaging on cancel in MWLiveExtensionInspector

Bug: T110992
Change-Id: I1e30206595e304eb502c7e745bf5e00d145d12d7
2015-09-02 02:32:11 +01:00
Ed Sanders 20d3526ae6 Use updateMwData when doing a live preview
Change-Id: Iadca47339c7d16034c5715677e0789de286f3ecf
2015-05-27 15:47:48 +01:00
Ed Sanders ed4278912c [BREAKING CHANGE] Make MWExtensionInspector inherit from NodeInspector
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
2015-04-08 20:51:20 +00:00
James D. Forrester 2f8b3e0d96 build: Bump copyright notices to 2015
Change-Id: Ie92dab7411116d3410195c3fb0a3513c664c0c30
2015-01-12 20:34:19 -08:00
Ed Sanders 06bccbe986 MWLiveExtensionInspector: Move event unbinding to teardown process
Change-Id: I6fae2ca3e1bc02b8edb707b4248b884a9f022c3f
2014-11-12 19:33:24 +00:00
Ed Sanders 1af18c3c12 Update VE core submodule to master (984b57a)
New changes:
6bbcd6a Localisation updates from https://translatewiki.net.
b8d8a5b [BREAKING CHANGE] The Great Selection Rewrite of 2014

Local changes:
Update to use new selection/range API

Change-Id: I5480d5c77d599c93c2d374fac88bb2fdb68b0024
2014-10-07 21:39:33 +02:00
Bartosz Dziewoński 5849e7b8f8 ve.ui.MWLiveExtensionInspector: Fix comment typo
Change-Id: I6e35a5006364ba44de2804e6cd6cd79d6b73c0c3
2014-09-23 23:54:33 +02:00
James D. Forrester a232147b11 Switch 'disallowQuotedKeysInObjects' jscs rule on and fix up
Change-Id: I75ac4b378ef485feead9d0eff34ed7877b94b5d0
2014-08-22 13:50:48 -07:00
James D. Forrester 67f304a414 Update VE core submodule to master (c4ce5ee)
New changes:
c4ce5ee Update OOjs UI to v0.1.0-pre (466a8762ac)

Update changes:
* Remove manager arugment from window constructors
* Use this.$content instead of this.frame.$content
* Use this.getDir() instead of this.frame.getDir()
* this.loading is now a promise, not a boolean

Change-Id: Ia83449a60078dd24ea4f976221c0859e5a121279
2014-08-20 18:42:52 -07:00
Ed Sanders 03231e5a1c Fix teardown of live extension nodes
* Separate teardown into (insertOrUpdate|remove)Node
* Override insertOrUpdate completely to avoid generating
  extra transactions. Surface#applyStaging creates all the
  transactions we need.
* Override remove to popStaging before calling parent.
* Fix isEmpty check to use getInnerValue (ignoring whitepsace)

Change-Id: I903302af178d6f923de00aff9c58e5330d682813
2014-08-15 17:40:25 +01:00
James D. Forrester fbdff76263 Update VE core submodule to master (f2277ea)
New changes:
56de6f5 Localisation updates from https://translatewiki.net.
f8bda64 Widgetise demo menu
6ac48d8 Localisation updates from https://translatewiki.net.
365e131 builderloader: Omit value for boolean "disabled" attribute per HTML5
706e4b3 Prevent double counting of DM nodes in getNodeAndOffset
b141a7d Update OOjs UI to v0.1.0-pre (d2451ac748)
c5b3921 Localisation updates from https://translatewiki.net.
1606983 Update reference to ConfirmationDialog to use MessageDialog

Deletions:
* Styles for ve.ui.MWBetaWelcomeDialog - not needed anymore because
  OO.ui.MessageDialog provides them
* Styles for ve.ui.MWGalleryInspector - not needed anymore because
  ve.ui.MWExtensionInspector provides part of them and the rest are being
  replaced by programatic sizing

Modifications:
* ve.ui.MWLinkTargetInputWidget - Added support for validation and href
  getter
* Split message between tool and dialog title for ve.ui.MWEditModeTool
  and ve.ui.MWWikitextSwitchConfirmDialog

General changes:
* Updated inheritance.
* Added manager param to constructors of dialogs and inspectors.
* Updated use of show/hide with toggle.
* Added meaningful descriptions of dialog and inspector classes.
* Configured dialog and inspector sizes statically.
* Configured dialog action buttons statically.
* Interfaced with OO.ui.ActionSet to control action buttons.
* Moved applyChanges code into getActionProcess methods.
* Always using .next in setup/ready process getters and .first in
  hold/teardown process getters.

Change-Id: Ia74732e6e32c0808eee021f0a26225b9e6c3f971
2014-07-14 23:24:45 +00:00
Alex Monk 51142e8b11 Replace ve.bind( fn, ... ) calls with fn.bind( ... )
Bug: 62762
Change-Id: I1a7fc7f27fa737d17f5c6b3d084ef4a35e4bebc0
2014-07-10 13:54:07 +00:00
Timo Tijhof 19afd65a08 build: Update jscs and use new "wikimedia" preset
Our coding style has been upstreamed and first released
in node-jscs v1.5.0 (grunt-jscs-checker v0.6.0).

Change-Id: Ifc0cfc7177946b9d11407f60e38b0177883724c5
2014-06-26 17:00:15 +00:00
Ed Sanders 26535382e5 Remove setValue call from live extension setup
It's already done by the parent, and done in a more complex manner
(with whitespace preservation) which this destroys.

Change-Id: I0385abe4093223b1804b11d77222cf8212a6360f
2014-06-11 20:30:47 +01:00
Trevor Parscal f65c3c6ef1 [BREAKING CHANGE] Update VE core submodule to master (88fe25f)
Switch to processes for windows (dialogs/inspectors)

This conversion also required the splitting of MWLinkInspector into
MWLinkNodeInspector and MWLinkAnnotationInspector.

New changes:
88fe25f [BREAKING CHANGE] Update OOjs UI to v0.1.0-pre (dd888aba5c)

Change-Id: I662d8985463c9fc881775f70aef87ebeb454a73f
2014-05-30 22:03:45 -07:00
James D. Forrester e09e6c9f28 Create MWLiveExtensionInspector base class
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
2014-04-17 17:58:56 -07:00