Commit graph

260 commits

Author SHA1 Message Date
Ed Sanders e1a887ccf8 Migrate DesktopWikitextArticleTarget code upstream
Change-Id: Icca4715411737a561302b44b127d91d117e7e29b
2016-11-20 02:52:14 +00:00
James D. Forrester f24e34de3c build: Bump eslint-config-wikimedia to v0.3.0 and make pass
Change-Id: I7449c11aa63c50fda667265c32021439cc53471f
2016-11-15 15:05:05 -08:00
James D. Forrester 26e7267f02 ArticleTarget: Use an OOUI MessageDialog, not window.alert()
We should avoid using alert()s as much as possible due to their unhealthy
interaction patterns with any other open tabs or user tasks.

Change-Id: Ib6a217c988322ad17bc7e649c3281eb053b54bbc
2016-11-10 12:55:49 -08:00
Alex Monk e81c6e5b43 Move save dialog checkbox code up from DAT into ArticleTarget
So it applies to MobileArticleTarget.

This shows the checkboxes on mobile.

Bug: T148914
Change-Id: Ib6559d5601004e58b72903805059e04f42acc85f
2016-11-05 06:24:49 +00:00
Alex Monk 81e32c6a4b Hacks to get VE loading on mobile while user has NWE enabled
* ext.visualEditor.mwwikitext does not have mobile target
* We call mw.libs.ve.setEditorPreference from ArticleTarget

Change-Id: Ifae6e951155c83b13f3111732b0dc500349b1df2
2016-11-05 05:51:26 +00:00
jenkins-bot cacb6d5427 Merge "Store editor preference when switching to NWE" 2016-11-02 21:39:11 +00:00
jenkins-bot f20a40d09f Merge "Keep edit summary when switching between VE and NWE" 2016-11-02 21:09:29 +00:00
Ed Sanders 2282ee80c1 Store editor preference when switching to NWE
This will also change the label of the single edit tab.

Bug: T149795
Change-Id: I3e1afad61ed60eb6f58aceb023e2fed16f053542
2016-11-02 19:10:29 +00:00
Alex Monk 1384df41c8 Keep edit summary when switching between VE and NWE
Bug: T144906
Change-Id: I0b979959f4b6f33167ba4a225184fda7ca13a1e8
2016-11-01 00:08:09 +00:00
James D. Forrester 36befda61c build: Replace jscs and jshint with eslint
It's new, it's fresh, it's amazing, it's here.

Change-Id: I5dc784411f704685ed5cc763a2b2b1c5d3e5a610
2016-10-28 18:33:15 +00:00
Ed Sanders 244eeb9ea1 Update VE core submodule to master (e4c8003)
New changes:
e4c8003 Bring in target 'mode' property from MW

Local changes:
Use upstream Target#setMode functionality

Depends-On: I9d501cb77c714fbd299b5816d302b0bdde7833cd
Change-Id: I2fcda6ca7d82d880101d9ba2a027d4ef066aa238
2016-10-27 16:12:31 -07:00
Ed Sanders de2f07d523 Fix handling of API responses
NWE can return data in 'visualeditoredit' instead of
'visualeditor'. We may want to change this later.

Also restore removed hack code that popuplates missing
VE API data when requesting wikitext.

Change-Id: I9a782a85444d37a3e21c071db7e175ee9b0b1c4f
2016-10-25 17:20:16 -07:00
Roan Kattouw 13801bb6d3 ApiVisualEditor: Move diffing and serializing to ApiVisualEditorEdit
These require POST, especially paction=serializeforcachekey because
it calls ApiStashEdit::parseAndStash() which needs a master DB connection.
Move them to the edit module so we can require POST for that one and keep
allowing GET for the main module. This fixes the warnings we currently get
for using parseAndStash() in a module that does not require POST.

Change-Id: I64a8ed7305105fa4c46902b99984306a7ff468cc
2016-10-21 15:24:13 -07:00
Alex Monk b5815e9ffd Send RB errors through the normal error handling process
Change-Id: I230ff6d3c9a6a183fb483f5adfd7ccdc025a07af
2016-10-14 11:17:56 -07:00
Ed Sanders 4040442ad8 Section editing in NWE
Bug: T144654
Change-Id: Ida6e721e0d980b47e3fda6a1f0744cbce1b2235a
2016-10-12 12:55:11 -07:00
Ed Sanders 605f7b625b Hid category links in source edit mode
Change-Id: Ib44e393d3a8d070a4ced002a11cb26f58447e67c
2016-10-07 16:24:23 -04:00
Alex Monk 2b8cd0fa13 Pass document to preview through PST
Change-Id: I2712c26c94cf62f8ec8e68a9912e6a557f41f6a4
2016-09-20 18:11:42 -07:00
Alex Monk 926212dbae Use correct switch type when opening welcome dialog on NWE
Bug: T145225
Change-Id: I032652733576d1a9797cc3dbb3dd24ca69cb30e5
2016-09-15 01:30:01 +01:00
Ed Sanders 5e22ef30fe Add show preview to save dialog when in NWE
Bug: T142642
Change-Id: I679eaddfe9037dcf258d3ff7d1eaa44214f0e730
2016-09-07 21:35:49 +00:00
Ed Sanders d0bb5511a5 Cleanup getDocToSave API and use in source mode
Instead of getting wikitext from the HTML, which is probably
slower and leads to issues with the whitespace stripping hack,
override getDocToSave and get text from the linmod directly.

Bug: T144621
Change-Id: I6b6cf16ee8f3720398ba8f5c85e7715c2e68329f
2016-09-07 12:09:41 -07:00
jenkins-bot feb756dfb1 Merge "Update tab and history state when switching between NWE & VE" 2016-09-02 20:43:32 +00:00
Ed Sanders e3dcf029ce Update tab and history state when switching between NWE & VE
Bug: T143577
Change-Id: I729c0f4a8131f54f81be2d776bddf3020a21e704
2016-09-02 19:31:35 +00:00
James D. Forrester ba4532aa9d Rename EditButtonPublishNotSave to EditSubmitButtonLabelPublish
Depends-On: I4fbe54876095378a476399bf5e336c8df3e91e14
Change-Id: Iface24f77775216a0ab9eb464e7e10624af7719d
2016-08-29 10:46:49 -07:00
James D. Forrester deef47414a Vary the 'save' labels to 'publish' for public wikis
Bug: T131132
Change-Id: I4a497265661d5ce0f6144988b514509dfa1bddfd
Depends-On: I56634ed223778a0650cf36ac7256151b13c494f1
2016-08-25 09:37:52 -07:00
James D. Forrester b7c7d06968 Show a different label for buttons on create vs. modify
To align with the linked patch in MediaWiki core. Taking advantage of
the opportunity to use core's messages for these, and remove some dead
wood old messages that were never used like "restore" items in mobile.

Bug: T139033
Depends-On: Ie81b5edd275963a965cd44d0fd325cae9ee2f1a6
Change-Id: Ie00e94cc77cb750a7e8d1104366bb3dad65af8a4
2016-08-24 16:01:11 -07:00
Ed Sanders c452e134cc Wikitext surface alpha feature
Edit wikitext with the VE interace.

Bug: T104479
Bug: T142138
Change-Id: Ic95b47e0dd378578555c4a2342ca9c87064ed1d5
2016-08-12 18:37:29 +00:00
jenkins-bot f908b7cad9 Merge "Make ArticleTarget#goToHeading work at all times" 2016-08-05 22:16:15 +00:00
Ed Sanders 3970288c8c Make ArticleTarget#goToHeading work at all times
Was previously written to work on initialise when the surface
isn't focused. If the surface is focused, run immediately.

Change-Id: Ie7accd63a4ca3e18448914d34609fe0418f15b4e
2016-08-05 14:00:41 -07:00
Timo Tijhof c2897b5a92 mw.ArticleTarget: Fix FancyCaptcha reload button
Follows-up 843620632a in ConfirmEdit which now expects a specific class
on one of the image parent elements.

Without this the refresh link is broken as fancyCapatcha.js is
unable to find the image otherwise.

Change-Id: Iad7c8e8c77f58092ca4dbb5cbb3527cacff10f03
2016-08-04 15:40:41 -07:00
Alex Monk 0659207900 Call child serializeSuccess/Failure in ArticleTarget#serialize
Instead of going straight to ArticleTarget's one.
This causes ve.init.mw.DesktopArticleTarget.prototype.serializeFail
to be called when using that target.

Bug: T134333
Change-Id: I6ec259830178439bc80ea162ba4ad035226022a7
2016-06-13 23:37:27 +01:00
James D. Forrester 5ecf40f51e build: Bump devDependencies to latest and make pass
babel-polyfill              6.8.0  →  6.9.1
 grunt-jscs                  2.8.0  →  3.0.0
 grunt-jsonlint              1.0.7  →  1.0.8
 grunt-stylelint             0.3.0  →  0.4.0
 stylelint-config-wikimedia  0.2.0  →  0.2.2

Change-Id: I4db467c7f2bc291a94e7bab86d18e48a44f6054c
2016-06-07 17:17:02 +01:00
Ed Sanders 67d24eb83f Clear save caches when toolbar is re-attached
Change-Id: I14ddcba9fa4fd5f39341312d241ce59980276a2b
2016-05-26 15:53:04 +00:00
Ed Sanders 1c5c1fc6b9 Append surface & toolbar components in the correct places
Use setSurface and setupToolbar to position the surface and the
toolbar save button in the DOM.

Change-Id: Ide634848f4e78501724c358bcb1fdab8abd491b9
2016-05-26 08:50:21 -07:00
Ed Sanders 1dc933bead Genericise target initialisation across namespaces
Define $editableContent on target construction, and mark
all non-ancestor nodes between that at the target container
as uneditable (50% opacity, no pointer events).

Bug: T58289
Change-Id: I7fe51104bd5aa1bd53ffc604e5f02752c7553578
2016-05-25 12:50:36 +01:00
Alex Monk 349b1f5e57 Add WTE welcome dialog
Bug: T133800
Change-Id: I6eb43274e22f647958c3ab1b6d5c12b3dbea388e
2016-05-10 23:28:21 +00:00
jenkins-bot 80636c235e Merge "Add a popup after switching into VE from WTE" 2016-04-25 22:42:55 +00:00
Ed Sanders 7a007e2874 Create MW targets using a factory
Move the existing static property 'name' to 'trackingName'
to make way for a real registry index.

Change-Id: Iab0d5be611ece7038234551c4847b07517b4348d
2016-04-21 21:06:39 +01:00
Alex Monk 0bbe2e38ee Add a popup after switching into VE from WTE
Bug: T131066
Change-Id: I2294da7d09dfbacb9187aba5e6e703511cec3c9f
2016-04-20 18:46:00 -07:00
Roan Kattouw 8e69dfa3b8 ArticleTarget: Correct comment explaining where setAssumeExistence( false ); is called
Change-Id: Ib883ea1fe57fe6cb3e182965a18eb3fb50246178
2016-04-02 20:28:44 +03:00
Ed Sanders 9a347220bc Target loading: Only parse oldid if it is non-null
This un-breaks MobileFrontend.

Change-Id: Ib1bce6b80abb004ff4ca26920759ef98f3cd1143
2016-03-29 12:57:00 +01:00
Alex Monk 680e464e94 ArticleTarget: Don't assume an explicit oldid is old; check against current
Bug: T130810
Change-Id: I3d5b748da37a0a059f282f97dd0d68d1846e2553
2016-03-25 17:37:02 -07:00
Ed Sanders 5e4ad90845 Rename startSave -> onSaveDialogSave
Factor out actual startSave into new startSave method.

Change-Id: I73edb5021903f04aa197ace2a2afa3aa3a5ddac6
2016-03-23 11:14:06 +00:00
jenkins-bot 1c27e5d51a Merge "In the event of a document reload due to RB vs. API rev ID conflict, always re-set requestedRevId" 2016-03-17 15:39:12 +00:00
Alex Monk 612e43dc08 Prefer error *code* when logging unknown errors
See also I4a5bac24

Change-Id: I62fda9dadd24704f5930b30a2f8ad4d4a9e729cb
2016-03-14 00:27:42 +00:00
Alex Monk 22bf016a84 In the event of a document reload due to RB vs. API rev ID conflict, always re-set requestedRevId
There's probably more to this bug but I think we should still correct this

Bug: T125437
Change-Id: Ib32d1e69b2500578b5dc160c0c2d7481f5577ebb
2016-03-12 04:46:54 +00:00
Alex Monk d2a9aefba7 Better handling of read-only mode
* Don't just fail to load, action=visualeditor itself should not write to the DB
  (we have action=visualeditoredit for that)
* Send notice to the client in the usual way
* Handle read only errors on save, log as unknown

This won't let you review changes because that uses visualeditoredit

Bug: T129501
Change-Id: Id78c06b031423e47a7ddf94ec615b6d6975309d3
2016-03-10 21:02:52 +00:00
Ricordisamoa 993015e03b Update ArticleTarget for new API token handling
action=query&prop=info was being used because it can be combined
with action=query&meta=userinfo, while action=tokens cannot.

However, since MediaWiki 1.24 the 'intoken' parameter of
action=query&prop=info is deprecated, while the preferred way of
retrieving tokens is action=query&meta=tokens which not only can
be combined with action=query&meta=userinfo but also spares the
need of dealing with page ids.

Change-Id: I5ded3c303ede20514eeb2840715fe240b3b2c7e1
2016-03-05 14:44:07 +01:00
Roan Kattouw 6322be2e07 Handle API errors when refetching the edit token
This can happen when the user gets logged out on a private wiki.
We get a badtoken error, so we try to refetch the token, which
itself returns an error. Token refetches didn't have error handling
at all and got the save dialog stuck in the pending state.

We can't offer the user to proceed with a different identity here,
because we encountered an error while trying to figure out what their
current identity is. The best we can do is encourage them to
log back in in a different tab.

Bug: T128934
Change-Id: I17d4452f688ec22631dbd12af223731635004d66
2016-03-04 18:06:33 -08:00
Roan Kattouw 84d534997e Follow-up 2c24efae: fix typo in event name for unknown save errors
This probably means we stopped logging unknown save errors
back in August.

Change-Id: I4a5bac244a469e73643e8a7d978d9212dd838fb0
2016-03-04 17:31:40 -08:00
Ed Sanders d94d98ebfe ArticleTarget: Update documentation
'onReady' no longer exists

Change-Id: I6fbcf619ba471f69380a64ba02994bd6ef0ca246
2016-03-01 22:03:07 +00:00
jenkins-bot e39d8a744b Merge "Show welcome dialog on mobile too" 2016-02-29 03:02:03 +00:00
Alex Monk ced27f348f Show welcome dialog on mobile too
Bug: T112599
Change-Id: Ie04aab468c80dabc84e1386e7529138e1101450e
2016-02-25 22:03:00 +00:00
wctaiwan 5da37932a2 Warn for empty summary when edit section used
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
2016-02-23 00:34:12 +00:00
jenkins-bot 4a751524c4 Merge "Edit mode switch: Show popup next to VE switch button" 2016-02-10 01:51:57 +00:00
Ed Sanders 80124c88a6 Edit mode switch: Show popup next to VE switch button
Only show if the user came from VE.

Change-Id: Ic362ba534d135fca5516c8ba401f6b2a22886ff1
2016-02-10 01:36:32 +00:00
Alex Monk 9808d04bfe Check xhr.responseText is set before trying to send it to $.byteLength
Bug: T125399
Change-Id: I09881fe8b6db7d95e32732129d043c4a13fa7a9a
2016-02-02 18:52:56 +00:00
James D. Forrester ada58df361 build: Bump file copyright notices for 2016
Change-Id: I3c618c196e504a80ca297a4132a17f1977a24fb7
2016-01-03 14:57:25 -08:00
Ed Sanders 21d5856000 [BREAKING CHANGE] Create ve.init.mw.Target base class
Move over logic which isn't specific to the article
implementation of VE (e.g. nothing related to loading/saving).

Refactors setupSurface to use an abstract tracking method (which
does nothing by default), and moves surface CSS classes to #createSurface.

Breaking change:
* Rename onSurfaceReady to surfaceReady. We shouldn't need to listen
  to our own events.
* Rename onReady to documentReady. onReady is not a listener.

Bug: T97166
Change-Id: I7242b1bb5501b7755a18a13d13e166c30cac9cdd
2015-12-11 16:41:47 +00:00
Ed Sanders 672c91f41b DesktopArticleTarget: Fix signature of editNotices
Also ensure it is always an array.

Change-Id: I8498463d3131817b90fa91404289c839110bdeaa
2015-12-11 16:41:47 +00:00
Ed Sanders 29f33a57d5 Rename mw.Target to mw.ArticleTarget
This makes way for a base mw.Target class which is
not specific to articles (e.g. Flow boards).

Bug: T97166
Change-Id: If72650bdf87aa9f195b004da0a4d815f1a8063a3
2015-12-10 16:26:20 +00:00
Renamed from modules/ve-mw/init/ve.init.mw.Target.js (Browse further)