Commit graph

6077 commits

Author SHA1 Message Date
Ed Sanders 20063995b2 Add shortcut commands for underline & sub/superscript.
Underline is particularly important as CE will apply underline
formatting automatically when you press Ctrl+U but the
SurfaceObserver will not notice it, leading to inconsistency
between the view and the model.

For sub/superscript I've used the Google Docs key mappings as these
appear to have the fewest conflicts with existing browser shortcuts
and there isn't much consistency between desktop clients anyway
(Word and Open/LibreOffice use completely different shortcuts).

Bonus: reordered command lists to be consistent with UI layout.
Change-Id: I92998e42f9bcfb932d44e8f483811efd538e5981
2013-11-08 13:55:08 +00:00
Roan Kattouw 6f650d9a61 Add <ref> tags to wikitext detection regex
Bug: 56755
Change-Id: Ib7279401601147420441e77e4796b94fe91ac956
2013-11-07 17:47:33 -08:00
jenkins-bot d2da45ec36 Merge "Add a whole bunch of new ve.track() events for instrumenting loading and saving" 2013-11-07 23:57:57 +00:00
Roan Kattouw d6a00d689e Add a whole bunch of new ve.track() events for instrumenting loading and saving
Renamed events:
* performance.domLoad --> performance.system.domLoad
* performance.domSave --> performance.system.domSave

New events:
* performance.system.activation: total load time
* performance.system.domDiff: timing of paction=diff; like .domSave
* performance.system.domSerialize: timing of paction=serialize; like .domSave
* behavior.lastTransactionTillSaveDialogOpen: time from last transaction
  until user opened save dialog
* behavior.saveDialogOpenTillSave: time from save dialog opening to user
  clicking save
* behavior.saveDialogOpenTillReview: time from save dialog opening to user
  clicking review (skipped when a cached diff is shown)
* behavior.saveDialogClose: when user closes save dialog; duration is time
* performance.user.saveComplete: time from user clicking save to successful
  save completion; 'retries' indicates # of badtoken retries
* performance.user.saveError.*: time from user clicking save to failure;
  'retries' indicates # of badtoken retries
** performance.user.saveError.abusefilter
** performance.user.saveError.badtoken: token was bad and we prompted the user
** performance.user.saveError.captcha
** performance.user.saveError.editconflict
** performance.user.saveError.empty
** performance.user.saveError.spamblacklist
** performance.user.saveError.unknown
* performance.user.reviewComplete: time from user clicking review to diff showing
* performance.user.reviewError: time from user clicking review to diff failure
  since dialog was opened

Change-Id: I9815fa637d34c766c163e181d2f9527d3f32a7c3
2013-11-07 15:42:52 -08:00
jenkins-bot d3ea3835fd Merge "Fix image resize handles update on surface change" 2013-11-07 21:09:32 +00:00
jenkins-bot f93531a6e0 Merge "Restore selection when editor is refocused" 2013-11-07 20:38:53 +00:00
Translation updater bot 0aee2f7849 Localisation updates from http://translatewiki.net.
Change-Id: I4366816b15e4f477021a6f94c2eb3e25fd692715
2013-11-07 20:22:50 +00:00
Roan Kattouw 500570b4ca Restore selection when editor is refocused
When the editor is focused, the selection goes back to the start of
the document. This was remedied in the .focus() method, but not in
response to native focus events, so when external code blurred then
refocused the editor, the selection would move to the top.

This broke section editing on wikis where ULS is installed: the
selection would be initialized at the start of the section, but then
ULS would load and blur the documentNode (by focusing the pasteTarget)
and then focus it again, so the selection would move to the top.

Instead of restoring the selection only in .focus(), restore it in
response to focus events on the documentNode. When this is done,
saving and restoring the scrollTop is no longer needed.

Bug: 56651
Change-Id: I14700174ee092f9b208215d31a7d1871078a89bf
2013-11-07 12:09:02 -08:00
cmcmahon ca2a7ce38f [browser test] input string no longer hard coded
Change-Id: I361b3ea025e405d1fc5a2e12c3c85d177147b90d
2013-11-06 17:08:42 -07:00
Translation updater bot f60036a798 Localisation updates from http://translatewiki.net.
Change-Id: I98da6500d27ee875387677665cd5e1fce4b22395
2013-11-06 20:49:09 +00:00
jenkins-bot edb769814c Merge "[browser test] add a test to edit with utf8 strings" 2013-11-06 17:21:05 +00:00
jenkins-bot 372ef3aeeb Merge "Make sure all links have target=_blank in the save dialog" 2013-11-06 00:04:35 +00:00
Ed Sanders 2e0d642a11 Make sure all links have target=_blank in the save dialog
Anything that uses getParsedMessage could contain a link.

Change-Id: I523edd935c4989e5929fca8891651c2287af973a
2013-11-05 21:23:02 +00:00
Translation updater bot 900ec3f237 Localisation updates from http://translatewiki.net.
Change-Id: I684c1fb09fed13621a13ed63aee1451edd2b39af
2013-11-05 21:09:15 +00:00
jenkins-bot 71efc9c2cb Merge "Support private wikis by forwarding Cookie: headers to Parsoid" 2013-11-05 19:00:30 +00:00
cmcmahon 3754bc77e4 [browser test] add a test to edit with utf8 strings
Change-Id: I88e475ee98bc8f696c1a1d0ad108c12a48fe7eee
2013-11-05 07:45:06 -07:00
Roan Kattouw 3ed7bb16a6 Send the old category and language types to Parsoid for back compat
Change-Id: If67d822e1a22bc24aa0c816952081dc614f6e686
2013-11-04 19:41:19 -08:00
Moriel Schottlender 97d3f5143f Fix image resize handles update on surface change
The resizing handles under ResizableNode are created in the location of the image
but if the page is edited and the image moves relative to the document, the handles
remained where the image was previously and not where its updated location is at.

This code fixes that bug by changing the CE event listening to the model's 'transact'
instead of 'history', and clears the cached offset when a 'transact' event happens.

Change-Id: Id0e4296dd89b24839ba68a534ca77d73c23b7434
2013-11-04 18:04:53 -08:00
Translation updater bot 3469c01488 Localisation updates from http://translatewiki.net.
Change-Id: If3bfcb58e16a5296d50b674f8003b1d245219e07
2013-11-04 20:01:49 +00:00
jenkins-bot 64c4f47cc8 Merge "Work around crazy Chrome bug" 2013-11-04 19:12:01 +00:00
Trevor Parscal af8d034ca8 Work around crazy Chrome bug
When the ListToolGroup in the toolbar (the "More" section) is scrolled
down such that the top tool is partly obscured, and you hover over the
bottom half of the "More" button, the top tool displays a hover effect
and using the scroll wheel will scroll the list rather than the page.

This is because the list has a box-shadow that's 1em tall, and the
height of the "More" button is 2em. And in Chrome, pointer events
"work" even in the box-shadow area. Roan reported the Chrome bug at
https://code.google.com/p/chromium/issues/detail?id=314291

This change works around the bug by making the tools in the list
inline-block instead of block; for some reason the bug only affects
block elements.

Change-Id: I4ea3f41c91d0ff5d5cc150fe8acc3427f0ab5f3a
2013-11-04 09:47:16 -08:00
Amir E. Aharoni 1ccc0ac5d3 Slightly rephrased visualeditor-preference-language-description
To make it easier to understand and to translate.

Change-Id: I6d6bff9889422eb55be2fd14672569b251ead1de
2013-11-04 19:16:22 +02:00
Ed Sanders f7391dda5d More CSS fixes to the demo page.
Some ve-ui classes not converted to oo-ui, and toolbar -> surfaceToolbar.

Change-Id: I4b40ae6154c3ba619a266b7586983dd259853f6d
2013-11-04 15:27:15 +00:00
jenkins-bot e309271289 Merge "Fix appearance and messages on demo page" 2013-11-04 15:19:21 +00:00
Ed Sanders 3a98e84932 Fix appearance and messages on demo page
Some 've-ui-toolbar-bar' classes hadn't been converted to OO.ui so the
toolbar had no border. Also removed a useless rule in mw.ViewPageTarget.css.

SA platform didn't override OO.ui.msg to use the ve.msg so no messages
were getting through.

Change-Id: Ieb5bc3c98d1c435ec194b201b517a688cd9b02b9
2013-11-04 15:11:04 +00:00
jenkins-bot 154726deea Merge "Fix metadata issues in newFromDocumentReplace" 2013-11-04 14:55:37 +00:00
Roan Kattouw 64e5016423 Fix metadata issues in newFromDocumentReplace
* Our metadata insertions now need to be the same length as the data
  insertion, not one more, so:
** Remove the +1 in the listMetadata splice
** Shorten the metadata variable by dropping the merging of the
   metadata right before and right after the internal list; it was
   also including the metadata right after the internal list twice
*** We still need to deal with this in some way though, left a TODO
** Fix the metadata insertion test for these changes
* Fix null reference keys in the test data; we made all references
  keyed a while ago, but this test data was never updated for that
** The remapping of reference data doesn't remap auto/N keys yet,
   left a FIXME for that

Change-Id: I8ef4e6ee7c1808574d81d0b83294848afd400cd7
2013-11-04 14:37:26 +00:00
Zeljko Filipin efa741baea [browser test] Updated Ruby gems
Change-Id: I8c298efe8dd1abbb42b5c42ee0b8075a0aad9acf
2013-11-04 15:36:03 +01:00
jenkins-bot d9ee8f20aa Merge "Add OO.ui.Element.getDir" 2013-11-04 07:59:46 +00:00
Trevor Parscal 4c3a49dfc0 Add OO.ui.Element.getDir
Stop using this.$.frame.dir - a horrible hack made of duct tape
and bubble gum.

Or perhaps rather, masking tape and post-it-notes...

Change-Id: I53690e4485974b95edbdd255c0b96c2f639c5261
2013-11-03 23:55:53 -08:00
jenkins-bot 0ca1c5d52e Merge "Rename this.$ to this.$element, and this.$$ to this.$" 2013-11-04 07:06:59 +00:00
Trevor Parscal db9f941fa6 Rename this.$ to this.$element, and this.$$ to this.$
Objectives:
* Rename this.$ to this.$element
* Rename this.$$ to this.$
* Get rid of the need to use this.frame.$$
* Rename OO.ui.Element.get$$ to OO.ui.Element.getJQuery

Changes: (using Sublime Text regex patterns)
* Replace "get$$" with "getJQuery"
* Replace "\.(\$)([^\$a-zA-Z])" with ".$element$2"
* Replace "\.(\$\$)" with ".$"
* Replace "'$$'" with "'$'"
* Set this.$ to null in constructor of OO.ui.Window
* Set this.$ to this.frame.$ in initialize method of OO.ui.Window
* Replace "\.(frame.\$)([^\$a-zA-Z])" with ".\$$2"

Bonus:
* Use this.$() in a bunch of places where $() was erroneously used

Change-Id: If3d870124ab8d10f8223532cda95c2b2b075db94
2013-11-03 23:03:49 -08:00
Translation updater bot c0de7c69fc Localisation updates from http://translatewiki.net.
Change-Id: If88d02e7665ed066cbe85ed2de9f096f0a3682dd
2013-11-03 19:59:52 +00:00
Translation updater bot efb3f65789 Localisation updates from http://translatewiki.net.
Change-Id: I08bfd179b75cda0a022b7cc5fb02489823758d11
2013-11-02 20:04:41 +00:00
Trevor Parscal e6f6decb12 Followup 6ec34a3dee: prevent focus loss on tool clicks
Change-Id: I7b756013ac234ad80937466a5881a1f92d8723d1
2013-11-02 00:04:21 +00:00
jenkins-bot 1ca353a34d Merge "Expand highlighting support for syntaxhighlight module" 2013-11-01 21:24:06 +00:00
Roan Kattouw 5b3ed2bc56 Provide a default implementation for OO.ui.msg
Just a simple message map in English. Also document localizaton-related
things in OO.ui

Change-Id: Ie74762238ca66747776610157c838dd75a864463
2013-11-01 13:36:05 -07:00
Roan Kattouw 6eabc783c3 Support private wikis by forwarding Cookie: headers to Parsoid
If configured to do so, the VE API will forward the Cookie: header to
Parsoid. This allows VisualEditor to be used on read-restricted wikis.

Bug: 44483
Change-Id: If4a0cf1e5785b332ec9b014b783412805cf8af75
2013-11-01 11:14:04 -07:00
Roan Kattouw 2ea9437e32 Get rid of OO.ui.extendObject and OO.ui.indexOf
Replaced uses of extendObject with $.extend . Replaced the one use of
OO.ui.indexOf with Array.prototype.indexOf because that's what
everything else was already using.

Change-Id: I63f40989057b8065ec977efafbf68d6e22c8e679
2013-10-31 15:09:44 -07:00
jenkins-bot ac1a386c95 Merge "dm.MWTemplateSpecModel: Resolve translations through the TemplateData API" 2013-10-31 21:42:43 +00:00
Translation updater bot 16084e4fe8 Localisation updates from http://translatewiki.net.
Change-Id: Ifa1355bc7ae03cc2a45d1f723006667b4dce0b92
2013-10-31 20:23:38 +00:00
jenkins-bot 7c6f534a74 Merge "Add reset method to toolbar" 2013-10-31 19:58:36 +00:00
Trevor Parscal b35383c299 Add reset method to toolbar
Make toolbar resetting code reusable.

Change-Id: I4e796309fc721622c313f6ec5121b4d011c25c51
2013-10-31 12:54:08 -07:00
Trevor Parscal 341138b16b Add 'classes' and '$content' config options to OO.ui.Element
Makes it easier to setup elements in a single call.

Change-Id: I6aba6ca121972b984401d845d0e7253049c490e4
2013-10-31 12:53:40 -07:00
jenkins-bot c00d8d6bb1 Merge "Fix: getDataFromDom tests should check for body or head" 2013-10-31 18:27:44 +00:00
jenkins-bot 78efb8a767 Merge "Fix: files missing from demo and test runner" 2013-10-31 18:26:30 +00:00
jenkins-bot 1cb87f73d4 Merge "Button tool to switch to edit source with changes" 2013-10-31 17:49:45 +00:00
Ed Sanders 7b2cacbe57 Button tool to switch to edit source with changes
By serialising the current DOM, and injecting it into a form we can
end up in the source editor with our VE changes converted.

Bug: 50687
Change-Id: Iafcc02a737d9c6c3a59dce1caff130d47ca25650
2013-10-31 10:46:51 -07:00
jenkins-bot 519a35dfe4 Merge "mw.Platform: Only add split lang codes with a dash" 2013-10-31 17:24:34 +00:00
jenkins-bot 316197ac4d Merge "dm.ModelRegistry: Fix documentation for #addType" 2013-10-31 17:23:19 +00:00