Commit graph

325 commits

Author SHA1 Message Date
Bartosz Dziewoński a68cc38b22 Avoid setting '&section' (with no equals or value) when switching to OWE
mw.Uri requires undefined rather than null to unset a parameter;
null instead generates a parameter with no value (and no equals sign).
Our own code in ve.init.mw.DesktopArticleTarget.init.js parseSection()
can't parse that and causes an exception.

Change-Id: I783ea6b91c115b79bbd9deac6669bea0661139af
2019-06-14 20:20:26 +02:00
Ed Sanders 7ad624f0a3 Remove switch confirm dialogs
Bug: T220007
Change-Id: I81b39a02d573d96bcb6b4238aabbcd077e874906
2019-06-11 22:35:34 +02:00
Ed Sanders b1ac5b74d3 Update VE core submodule to master (06f1ebb8e)
New changes:
06f1ebb8e Local/SessionStorage refactor

Local changes:
* Update for core storage refactor

Depends-On: I3cc1d5adfbce794e8345b7f1090c10fb0d42d150
Change-Id: If855ee33b0993788cc159d8c3acf03070e6a9566
2019-05-29 14:49:53 -07:00
Ed Sanders 4beab42217 Switch to wikitext: Don't set oldid if unmodified current ID
Bug: T223651
Change-Id: I5a896cd98d304c419e61c5f56adb6175bc1c72a8
2019-05-22 14:32:54 +01:00
Ed Sanders c035073cf9 Fix abandon edit warning message
This message was upstreamed to core and later renamed.

Use the upstreamed dialog itself when switching sections.

Bug: T222525
Change-Id: Ibd2d75ec503e92b5ddec2105f762b0c9f0dc96fb
2019-05-06 15:11:58 -05:00
Ed Sanders 8068198efc ArticleTarget: Return dataPromise from #load
Allows users to get hold of the data promise, as
this.loading is reset to false on completion.

Change-Id: I90452ac21c898185ec993b05c12f80ae2edfb814
2019-05-01 16:48:31 +01:00
jenkins-bot 857c1bd3d1 Merge "Replace the save button with a save tool" 2019-04-30 19:51:36 +00:00
Ed Sanders f9330c8564 Replace the save button with a save tool
Now shows correct tooltip for save button (including
the access key).

Bug: T163142
Change-Id: If14a1a5a5829fc215cb79827392173dc05c4bdd7
2019-04-30 19:32:33 +00:00
Ed Sanders 7739b1c79b Fix switching without changes
* Remove 'discardChanges' from switchToWikitext. This was
  intended to discard changes even when the document was
  modified, but it is no longer used as we always keep
  changes if we can.
* Remove 'leaveVE' param, it was only used once and has
  been replaced with a direct call to switchToFallbackWikitextEditor.
* Don't reset 'section' if there are no changes.

Bug: T221981
Change-Id: Ia39345da44d203ba67ae331917c8d5ece7d42ef7
2019-04-30 14:52:58 +01:00
Ed Sanders 4fb17205b6 Allow switching from mobile visual to mobile source mode with data
Bug: T128422
Depends-On: I11b7195e9d63f9b279213201036c6338d71669f0
Change-Id: Ieaa2df17c1f73d681d935cd6103ef41c061e1a28
2019-04-25 22:37:53 +02:00
Ed Sanders 709530993b DesktopArticleTarget: Remove changing document opacity when switching to WTE
When this was introduced in 7b2cacbe57
(2013), the confimation dialog was a generic confirm() popup. Now that
it is a OOUI dialog, the dialog overlay serves the same function.

Change-Id: I9812ab55c7a8179524865d93a6d269e388d4c4ab
2019-04-25 21:08:42 +02:00
Dayllan Maza 96de1353d3 Remove block notice tracking
This is a clean up after collecting the necessary data related to
blocks and how often users see the block notices

See: https://phabricator.wikimedia.org/T189724

Bug: T214214
Change-Id: I532a0cd95009109ba25caa8dd31badd5c1900da7
2019-04-23 11:31:37 -04:00
Ed Sanders 0db4ae6e00 eslint: Enable valid-jsdoc
Change-Id: Ia0d1e57246a1c567d73022ceca9b8c02850f9bc8
2019-04-17 17:13:39 +01:00
jenkins-bot 074973f01d Merge "Remove special handling for category and file pages" 2019-03-19 19:24:13 +00:00
jenkins-bot ba5589f801 Merge "ve.init.mw.DesktopArticleTarget: Remove some unnecessary toolbar setup code" 2019-02-28 13:19:30 +00:00
jenkins-bot 3ccbc96fa7 Merge "When rendering categories, hide/show catlinks as needed" 2019-02-26 19:52:37 +00:00
David Lynch b1863f4b25 When rendering categories, hide/show catlinks as needed
Catlinks is hidden via a class when there are no non-hidden categories on the
page. We thus need to toggle that class depending on the categories
added/removed from the page.

Bug: T213528
Change-Id: I4067c5721c28041542b9ef2dbc796fbc41b1afe8
2019-02-26 11:26:27 -06:00
Bartosz Dziewoński 92bb0e557a ve.init.mw.DesktopArticleTarget: Remove some unnecessary toolbar setup code
This code, added in 703b2c2ed0 (2015),
is no longer necessary.

    // Disconnect the tool factory listeners so the toolbar
    // doesn't start showing new tools as they load, too
    // much flickering
    this.getToolbar().getToolFactory().off( 'register' );

Introduction of targetLoader (d371014e5d)
resulted in all tools already being loaded before a Target is
constructed, so this is definitely not needed.

    // Disable all the tools
    this.getToolbar().updateToolState();

The tools are already disabled because we set the surface to read-only
above, so this does nothing.

Change-Id: Idb162b60891cd1b961e29d2b9f62b74908f17957
2019-02-22 21:03:36 +00:00
Bartosz Dziewoński 7ade9938d0 Remove special handling for category and file pages
Previously, we tried to keep the list of category members and the file
thumbnail, history and metadata visible while the editor was open.

I am removing it because:
* It is not very useful, as you can't interact with them (e.g. links
  are unclickable).
* It is inconsistent with the wikitext editor (except for non-existent
  category pages, and I'm proposing to change that behavior in T139191).
* It causes issues when other code doesn't expect the special setup
  for those pages (T194068).

This introduces a minor change to the handling of normal pages: after
the save, instead of replacing all contents of #mw-content-text with
the new page content, we only replace the .mw-parser-output child.
Normally the effect is the same (it's the only child), but this could
theoretically affect interactions with other extensions or gadgets.

Bug: T194068
Change-Id: I26cc82d3e0f0d64e3f18a80d232005fc7ab3b374
2019-02-22 20:59:36 +00:00
Ed Sanders 18907dde5a Implementations for read-only mode
Depends-On: Ifaa74be266c048d87f94b4ae2df59cafc7aa155f
Change-Id: Iedd1bd9ce17750ad8528c1a053293c4a7321c5de
2019-02-22 18:20:51 +00:00
Ed Sanders 332aa1f3d2 build: Update eslint-config-wikimedia to 0.11.0
Change-Id: I5a294705eed1760e2d4dde33934d2ffb12e29525
2019-02-20 20:23:43 +00:00
Ed Sanders 3269d53632 Support only surfacing part of the document
Bug: T76541
Depends-On: I227a0d704b9b337cff2102d424be9795d6362ed7
Change-Id: Iac71a51c8696434658f24fbb41c8142237bd810e
2019-02-13 19:03:44 +00:00
Bartosz Dziewoński 3dbff552dc ve.init.mw.Target: Remove unused property
Unused since 6e64fba2f8.

Change-Id: I223f2346c04573a9e853b49bfc83e542cec47c61
2019-01-24 21:05:48 +01:00
Ed Sanders 74f6c4899c build: Update eslint-config-wikimedia to 0.10.0
Change-Id: I63a0ebf0b31a0d5d4e680a4e2a5a0be4850be165
2019-01-08 17:00:09 +00:00
James D. Forrester 3c293ea00c doc: Bump copyright year for 2019
Change-Id: I8991b97c980d4149f53eb5601036220ef3c0c440
2019-01-01 13:24:23 +00:00
Ed Sanders ad5b8f99ee Replace $( 'body' ) with $( document.body )
Better to use the actual element rather than a string selector.

Change-Id: I7d2c08cf1e3c6f14be5bf65ac040b7cdfdd8c594
2018-12-13 16:44:25 +00:00
Ed Sanders be9c6800ad Audit target hooks
* Move (de)activationComplete up to ArticleTarget
* Mark (de)activate to be deprecated in the future
* Fix some properties to ensure target.edited is boolean

Change-Id: Ie34139cb68f90f34eb243f1bb964ef578e90dfb2
2018-12-05 15:45:19 -05:00
Thalia 2516753c53 Rename configs for tracking block notices on visual editor
* Also make sure block notices have type 'block'.
* Remove old flag for tracking since we'll be using one
  from core

Change-Id: I4b66e73c8a4c4dd7bffd7c0239b1d5ec06eed12f
Depends-On: I6bd1c95548616677e1f72ba6bcfc6f2b551c1ca6
2018-11-28 15:26:15 -05:00
Thalia 883e0c23a5 Track when block notices are shown on visual editor
When an edit notice is passed through from the API, allow
a type to be specified, and specify type 'block' if the
notice is a block notice.

If VisualEditorTrackBlockNotices config is true, track
when a message with type 'block' is shown.

Bug: T209633
Change-Id: If5fecc2c2c1c39f4b7245b9a215e1120c93b2b22
2018-11-21 11:22:50 +00:00
Thalia ceb02d3296 Remove needless function call in DesktopArticleTarget
Change-Id: I6e691e97fe7330496cdf45a2439d8fd373cf221f
2018-11-19 18:58:38 +00:00
Ed Sanders 917645eb27 Use mw.Title.isTalkNamespace
Depends-On: Ie57243bac1aa5e23bc8b1c027bcb1b83090ee433
Change-Id: I303401ff34425831cb3c32d25df635aefa5b5926
2018-09-14 13:37:17 +01:00
Bartosz Dziewoński bb5762a0b2 ve.init.mw.DesktopArticleTarget: Handle deactivate on namespace tab when it's a talk namespace
Turns out, talk namespaces are special.

Bug: T204194
Change-Id: Ie9af128edd5874075098f8593e01595da863102d
2018-09-13 11:04:47 +02:00
Ed Sanders e67f870922 Fixup Ie40baad: Avoid triggering surfaceReady when adding dummy surface
Change-Id: I01f77633a11c6c5b8d484836940ea10b975c7a9e
2018-08-25 18:06:37 +01:00
David Lynch 26f6429702 TemplateStyles support
MWTransclusionNode will preserve TemplateData <style> in its generated content.

Disable TemplateStyles stylesheets in the original page content, and reenable
them when the surface deactivates.

Remaining TODO: if multiple copies of a template with deduplicated styles are
on the page, and the one containing the actual <style> is removed, all will
lose their styling.

Bug: T197563
Change-Id: Ibd8939eef7d8eb532719f4ee0ce200600449ef81
Depends-On: Ia9f2afcdba5456238e3ef444c202c9b0c78838bf
2018-08-22 17:03:27 +00:00
Ed Sanders cb10316a7b Export to page using action=submit
Change-Id: I0d719905203d24a545d9b7dcea5bb9d032f10a76
2018-08-19 11:25:17 +00:00
Ed Sanders 4ee09f75af Replace Bugzilla numbers with Phab numbers
Change-Id: I0e91d63b3872520b8f66002615967b2cfe235bf5
2018-08-09 15:11:27 +01:00
David Lynch 92c4e231f2 DesktopArticleTarget: consolidate edit tab behavior
What happens when an edit tab is clicked is spread across handlers in
DesktopArticleTarget and DesktopArticleTarget.init. Consolidating the logic
into the handler in DesktopArticleTarget.init makes it easier to understand.

It could be moved further into DesktopArticleTarget, but the init handler has
to exist to activate the target in the first place.

This patches a hole where clicking "edit source" while in visual mode would
sometimes not switch to source mode, because it didn't think it was changing
the current section.

Also, fix a typo in the documentation.

Bug: T198272
Change-Id: I12d958b6af1b9fa9aca68b498eb2a1a2d76b5a82
2018-07-02 16:17:15 -05:00
jenkins-bot 13fb253532 Merge "mw.DesktopArticleTarget: remove action=edit when tearing down as single-tab" 2018-06-25 17:59:14 +00:00
David Lynch 09a315ca69 mw.DesktopArticleTarget: remove action=edit when tearing down as single-tab
aeb4f2f2b7 added a #wpTextbox1 to the wikitext surface, which confused our
existing teardown check. This confusion only became apparent in single-tab
mode, when using the wikitext editor.

Bug: T197615
Change-Id: I98e64e7135aaf6f8fda441a91e6cbc4bac6cea39
2018-06-25 11:55:51 -05:00
Bartosz Dziewoński 37e349913e If VE was opened on action=edit URL, redirect to view URL when closing
We already do it after save, but not if the editor is closed without
saving.

This behavior is a bit awkward for non-existent pages (redlinks),
since MediaWiki normally doesn't display them in view mode (all links
point to action=edit). But this seems less weird than not allowing the
editor to be closed.

Bug: T122388
Bug: T168338
Change-Id: Id9ee41356f011dfbfa6e8744b8d9076f8eacaf39
2018-06-22 01:10:11 +02:00
Ed Sanders efcea82c9c Follow-up I348b8522: Fix context variable
Bug: T197762
Change-Id: Ife163e1666ec43ecbb21099a9342960615c573d8
2018-06-20 19:50:39 +01:00
David Lynch 814e26f1e9 DesktopArticleTarget: view click handler should only run for active target
Not checking this results in handlers blocking click actions for "read" after
the teardown of the target.

Bug: T197445
Change-Id: I3a962c66c82a0e48ca54bf2f0b822a9a005da54c
2018-06-18 20:45:52 -05:00
Bartosz Dziewoński e484522161 ve.init.mw.DesktopArticleTarget: Only change document title on activate
Previously, we changed it on every load, which also occurs when
switching editor modes. That caused it to not be restored when editor
was closed.

Bug: T197490
Change-Id: Icb20c38309fd440553d5245d865b05145542313f
2018-06-15 22:10:25 +02:00
David Lynch d3824dee76 DesktopArticleTarget: Section-scroll as part of restoring the page
We were scrolling to the edited section when we saved the page, and otherwise
reverting scroll position to the top if we just abandoned the edit. This
unifies these cases, so any section-edit which leaves the editor will scroll
to the section being edited. (If section==new and the edit is abandoned, it'll
scroll to the last section on the page.)

Bug: T194631
Change-Id: Ic2aca68b3127c435545644912b96212bcfa6648d
2018-05-25 16:30:22 -05:00
David Lynch c76c41f3dc DesktopArticleTarget: on escape close toolbar dialogs first
Pressing escape will close toolbar dialogs (find/symbols/etc) if they're open
instead of trying to teardown the editing surface.

Bug: T190068
Change-Id: I27080649392f17344c901269029368fa0b3c2963
2018-05-19 19:29:34 +02:00
Bartosz Dziewoński dfe65db5bb Fix position of inspectors/context inside dialogs
Override #addSurface instead of #getSurfaceConfig, so that the
$overlayContainer option only applies to the "main" surface of the
Target rather than all of the surfaces (including those in
TargetWidgets).

Bug: T194433
Change-Id: I61c609e2d52814b4547fb5292a0bfb237c4c218f
2018-05-18 14:26:00 +00:00
jenkins-bot 4ca3f1661d Merge "ArticleTarget: Change rendering of category preview" 2018-05-15 13:28:57 +00:00
David Lynch 5d19272aa1 ArticleTarget: Change rendering of category preview
Just generate the standard wiki skin markup for categories. Adjust linkcache to always know
whether links are hidden categories. (It previously knew *sometimes*,
depending on whether a MWCategoryWidget had interacted with that category.)

Make the save dialog preview use the same method as the bottom-of-editor preview.

Bug: T194092
Change-Id: I37fea15eaef0a5847f27ce41dd92370a4bf353b6
2018-05-13 16:40:59 -05:00
Ed Sanders 900b74e9a9 Update VE core submodule to master (14bcc9256)
New changes:
14bcc9256 Give toolbars groups names

Local changes:
Give toolbars groups names

Also create an empty placeholder group for reference tools.
This allows targets to specify if they should show them.

Depends-On: Iccaf35cf941cb47ad55e8d98373461f5eaff5fed
Change-Id: I0bace5e5fe05f9c214d57a74c478b48a7dcaec3b
2018-05-13 18:09:33 +01:00
Ed Sanders 478b0bcbb9 Create getters for localised APIs (getContentApi/getLocalApi)
Pass through the current document when available, otherwise
assume the current surface's document.

Also add a getter for getPageName, so that can vary based
on the target document.

Bug: T193856
Change-Id: Ifdc951fdc6a43b924d102e3fcd7e59e52023757b
2018-05-05 14:32:55 +01:00