Commit graph

5505 commits

Author SHA1 Message Date
C. Scott Ananian 9a31ff266f Describe commit message guidelines in CONTRIBUTING.md
Add a brief note pointing to the gerrit commit message guidelines.

Change-Id: Ia5d9a167b9510d09831e4d90daa0179af07ed5d3
2013-09-18 11:58:23 -04:00
C. Scott Ananian 7c1ba7750c Minor doc fixes to ve.dm.Transaction.
Correct the return value descriptions for the `newFromMetadataInsertion` and
`newFromMetadataRemoval` methods (which appear to have been cut-and-pasted
from another method).

Change-Id: I019b0ef9c75ff47fc0f2df8c95da9d090710a5a8
2013-09-18 15:18:42 +00:00
Timo Tijhof e4662a65cd Clean up VisualEditorDataModule and document ve.version
* Check in #getGitHeadHash now ensures a false value is
  cached as well.
* Made ve.version.id being false when invalid more stable
  since we now rely on this as of eeb3ac3b19.
* Added documentation for ve.version.

Change-Id: I164aa9ebaa7f8a4d1e8f2210af76e06b23abef09
2013-09-18 03:40:00 +02:00
jenkins-bot c98a964d5f Merge "Fix check for preformatted when stripping whitespace" 2013-09-18 01:11:46 +00:00
jenkins-bot 3d01a5bc85 Merge "Hide version info if not available" 2013-09-18 01:10:52 +00:00
jenkins-bot 17131a15e1 Merge "dm.Surface: Initialize selection at (1,1) instead of (0,0)" 2013-09-18 01:09:12 +00:00
Roan Kattouw d3af8b877b dm.Surface: Initialize selection at (1,1) instead of (0,0)
Code with a similar purpose was added in 568e0e5701 but got lost
when some things were moved from ve.Surface to ve.ce.Surface in
5012ed10.

Initializing the selection at (0,0) was known to cause problems before,
and since 789d0caf09 breaks editing of empty documents: typing in an
empty document begins in an inline slug, but SurfaceObserver doesn't
notice typing in an inline slug unless the ce.Surface pawns it, which
is OK because insertions in slugs are always pawned, but the pawning
logic believes the cursor to be at offset 0 where there is no slug
(it's at offset 1) and so it doesn't pawn.

Bonus: update tests and add descriptions for dm.Surface.change tests

Change-Id: Id72314d0fe650dacc7cdb842f5cea2f3bfba5145
2013-09-18 01:06:34 +00:00
jenkins-bot 1baf90130a Merge "Fix function naming conventions, comments and whitespace" 2013-09-18 00:58:43 +00:00
jenkins-bot 51a1d4da39 Merge "Always use multi-part format for transclusions" 2013-09-18 00:39:54 +00:00
cmcmahon ab26c1fb2f update class for suggestion list element
Change-Id: Id4e653ec0400609d1aa19de55a7080ec122216d7
2013-09-17 17:19:41 -07:00
Roan Kattouw 9fed6b17b1 Always use multi-part format for transclusions
The Parsoid team has changed their spec to always use multi-part
format even for one-part transclusions. This commit changes VE's
output format to always be multi-part, but still accepts single-part
format on the way in.

Change-Id: I6b3156b0b599ad042bb52d7f53dcdeb1c4a0954a
2013-09-17 17:05:01 -07:00
C. Scott Ananian f5b7dc574d Rename CODING.md to CONTRIBUTING.md
This triggers a bit of special linkage from github -- in particular, when
an issue or pull request is created, github will direct the user to
read CONTRIBUTING.md first.

See https://github.com/blog/1184-contributing-guidelines for details.

Change-Id: Ib0d23977fd87ec0b1515ff43345da158bc5f939b
2013-09-17 23:52:46 +00:00
jenkins-bot 3236a385c6 Merge "Updates to README.md and CODING.md" 2013-09-17 23:16:25 +00:00
C. Scott Ananian 5f392ccec1 Updates to README.md and CODING.md
Describe how to report bugs, install grunt, and run tests.

Update jsduck instructions.

Fix path to license file in package.json.

Change-Id: I276ff0ea4324f027dafc044a86fa564b2439089a
2013-09-17 19:09:25 -04:00
jenkins-bot 973d9f999d Merge changes I899d2b3c,I0272fe38,I7ad24e7f
* changes:
  Rewrite MetaList.onTransact
  Allow replace operations to replace metadata as well
  Fix processing of double metadata replacements
2013-09-17 21:01:41 +00:00
Zeljko Filipin f4de574350 Updated Ruby gems
Cucumber 1.3.6 seems to be problematic:

gems/cucumber-1.3.6/lib/cucumber/rb_support/rb_language.rb:122: warning: redundant nested repeat operator: /^** This is a new line/

Updating the rest of the gems too.

Change-Id: Ia173312baa178a45d648fc537c8abf914144bbd5
2013-09-17 20:46:14 +00:00
Translation updater bot 3099d1a2e5 Localisation updates from http://translatewiki.net.
Change-Id: I5ebb1852910ad152ad7eb6c0748823b8fb12632d
2013-09-17 19:47:21 +00:00
Ed Sanders 232856e172 Fix function naming conventions, comments and whitespace
* Convert some spaces to tabs
* Move private function to top and document
* Give constructor a global name

Change-Id: I7ec144303d32b1bb454b4164222601c263fb75bf
2013-09-17 19:37:08 +01:00
jenkins-bot bcc5d04aba Merge "Scroll into view support" 2013-09-17 16:19:18 +00:00
jenkins-bot f2dec77d8a Merge "Remove ve.log debugging calls from EventSequencer" 2013-09-17 16:06:02 +00:00
Trevor Parscal 143b086c74 Scroll into view support
Objectives:

* Scroll when needed to show highlighted (with keyboard) or selected (by
  any means) options in select widgets
* Allow clipping and automatic scrolling for certain elements when they
  are otherwise going to be rendered partially out of view

Changes:

*.php
* Add links to new file

ve.ui.Widget.css, ve.ui.Dialog.css
* Removed unneeded x-axis overflow rules

ve.ui.ClippableElement.js, ve.ui.Element.css
* New mixin, adds visible area clipping support to an element

ve.ui.PopupToolGroup.js, ve.ui.MenuWidget.js
* Mixin clippable element

ve.ui.OptionWidget.js, ve.ui.OutlineItemWidget.js
* Add scroll-into-view configuration for option widgets

ve.ui.SearchWidget.js
* Scroll items into view when highlighting with keyboard

ve.Element.js
* Add getBorders, getDimensions, getClosestScrollableContainer and
  scrollIntoView static methods
* Add getClosestScrollableElementContainer and scrollElementIntoView
  methods

Bug: 53610
Change-Id: Ie21faa973a68f517c7cfce8bd879b5317f536365
2013-09-16 16:46:58 -07:00
Translation updater bot 4c12f1841a Localisation updates from http://translatewiki.net.
Change-Id: I8645acb1de1d7184d003cff3cd9a8bac8112a1a7
2013-09-16 19:35:42 +00:00
cmcmahon daa0b10b16 VE support on beta is now reliable, run tests there
Change-Id: I82e42f24a6950680770bf6fc2b11e554d95224b6
2013-09-16 18:50:26 +00:00
Ed Sanders 8fb2f4467d Remove ve.log debugging calls from EventSequencer
Change-Id: I642acf09e7ed52d6dbf4312e054134b264c3428d
2013-09-16 18:44:33 +01:00
Ed Sanders eeb3ac3b19 Hide version info if not available
Sometimes GitInfo returns a version ID of false if it can't
find the right files. In this case we should hide the whole
message as it is meaningless.

Bug: 53050
Change-Id: I71161df7588aa9311bc1fdf6b064cc6d8c155f61
2013-09-16 16:53:20 +01:00
Ed Sanders e7aed52d93 Fix check for preformatted when stripping whitespace
Previous was checking by string match to 'preformatted' which didn't
match 'mwPreformatted'. Now using node factory to see if
hasSignificantWhitespace is set.

Bug: 54083
Change-Id: I1be2d4568df7848e08074d200fb374acd508f6fa
2013-09-16 16:41:45 +01:00
Translation updater bot 019a6f8e49 Localisation updates from http://translatewiki.net.
Change-Id: I10466e65b4e06dbdfc09975ee9154bac2d22f6a9
2013-09-15 19:26:06 +00:00
Translation updater bot aaace69830 Localisation updates from http://translatewiki.net.
Change-Id: I6cbb341a79f062e803a29f63fcdc87301ee4f1d9
2013-09-13 20:49:17 +00:00
Translation updater bot d2c1c4b46c Localisation updates from http://translatewiki.net.
Change-Id: I240ad4a4903701ff1d1345082ab5e28777c8b515
2013-09-12 19:36:31 +00:00
Ed Sanders c0650459df Fix merge conflict breaking localised bold/italic icons
Bug introduced by change Ic97a636f9.

Bug: 53094
Change-Id: I4bf0bd4d340dfbad26a0d729de866985f81d14aa
2013-09-12 11:44:20 -07:00
jenkins-bot c65d01fbfe Merge "Transactions: Add trailing retainMetadata when there is trailing metadata." 2013-09-12 04:14:01 +00:00
jenkins-bot bdd9094279 Merge "Move text style tools out of experimental" 2013-09-12 03:06:03 +00:00
David Chan 789d0caf09 Fix pawn on pre-annotation and keypress
modules/ve/ce/ve.ce.SurfaceObserver.js
* pollOnceNoEmit method to update SurfaceObserver's benchmark text

modules/ve/ce/ve.ce.Surface.js
* pollOnceNoEmit from onUnlock

Change-Id: Idb14a6aea723c42109b3825478766799d4abef22
2013-09-11 19:47:39 -07:00
James D. Forrester 1a1ef97336 Move text style tools out of experimental
These were meant to have been de-experimental-ised with the toolbar
commit; oh well. This moves the following text styles from being in
"experimental" mode to being regular annotations:

* Code
* Strikethrough
* Subscript
* Superscript
* Underline

Change-Id: I21be2dc844b47b825d7a1e48a592067166ecd122
2013-09-11 19:41:14 -07:00
C. Scott Ananian 3928ca16fd Transactions: Add trailing retainMetadata when there is trailing metadata.
Ensure that all transactions move the cursor past the trailing
metadata, if present.

Change-Id: I869c75f8cfabe1e14bb66d8e627d0b750bde46af
2013-09-11 16:02:12 -07:00
Roan Kattouw ccef625a08 Rewrite MetaList.onTransact
The previous implementation couldn't deal with transactions that
replaced both data and metadata at the same time (rather than replacing
data while moving metadata around), and extending its approach to
deal with that case would have made it much more complex.

So I rewrote the algorithm from scratch. The previous implementation
scheduled deferred moves for existing items, but immediately processed
insertions and removals. This is problematic for replacements and
maintaining the order in the binary search list. So instead, this new
implementation builds an array representing what the new item list
should be, then processes insertions, removals and moves in the correct
order to achieve that state.

It looks like the previous implementation didn't always work correctly,
which was masked because the test suite passed full=false to
assertItemsMatchMetadata(). This rewrite fixes this.

Also remove setMove/applyMove from MetaItem, because we don't need them
anymore and they're evil anyway; and add isAttached(), because the new
algorithm needs it.

Change-Id: I899d2b3c94c2cfa55823879bca95456750f64382
2013-09-11 15:29:28 -07:00
Roan Kattouw 13cd29ea62 Allow replace operations to replace metadata as well
This was already possible in the operation structure by using
removeMetadata and insertMetadata, but no transaction builders
generated transactions like that.

With this change, pushReplace() can be instructed to overwrite the
metadata with arbitrary data rather than collapsing it by passing the
optional insertMeta parameter.

Change-Id: I0272fe38e053161c738591cf0a7b447a0827d4dc
2013-09-11 15:26:12 -07:00
Roan Kattouw eb90af29e0 Fix processing of double metadata replacements
Transactions that replaced metadata twice at the same offset
(with retainMeta-replaceMeta-retainMeta-replaceMeta) were broken
because the processor for replaceMetadata didn't advance the
metadata cursor.

Change-Id: I7ad24e7ffb4c39b40ec9c347db301f8e28f3692d
2013-09-11 15:26:12 -07:00
Translation updater bot 129cf0a42c Localisation updates from http://translatewiki.net.
Change-Id: I4800c86c515d79ba80008305ddcd98c67945f80d
2013-09-11 19:40:26 +00:00
jenkins-bot 71df5562e4 Merge "The Great [...] Rewrite of 2013: Clipboard edition" 2013-09-11 18:15:07 +00:00
jenkins-bot 67be7db1eb Merge "Fix off-by-one error with metadata-mutating transactions." 2013-09-11 17:09:07 +00:00
C. Scott Ananian 1f5b78ab94 Fix off-by-one error with metadata-mutating transactions.
Add some test cases for documents with trailing metadata, and fix an
off-by-one error in the metadata-mutating transactions (since the
document metadata array is one larger than the document data array).

Change-Id: I8f049466e03ed55010dfcf0a35702536edfa7b0a
2013-09-11 10:07:20 -07:00
jenkins-bot 7159ff73aa Merge "Integrate with BetaPreferences" 2013-09-11 16:54:51 +00:00
jenkins-bot 22d9067095 Merge "Refactor CE Surface to reduce event feedback" 2013-09-11 00:44:57 +00:00
Translation updater bot e2b877faab Localisation updates from http://translatewiki.net.
Change-Id: Ia3310953fd2191dc30dcb30ad415b4f50b15bab2
2013-09-10 20:08:24 +00:00
David Chan 23921df6dc Refactor CE Surface to reduce event feedback
Restructure SurfaceObserver methods so that the method calls are more precise.

modules/ve/ce/ve.ce.SurfaceObserver.js
* Move timing code into startTimerLoop / stopTimerLoop / timerLoop
* Move poll logic into pollOnce

modules/ve/ce/ve.ce.Surface.js
modules/ve/ui/ve.ui.Surface.js
* Change all surfaceObserver calls to use new API

Change-Id: I0085e4a53c5a776733dce6944b867b8d2228ba4b
2013-09-10 11:54:57 -07:00
Ed Sanders 06c86b3881 The Great [...] Rewrite of 2013: Clipboard edition
Firefox:
* Doesn't fire events without a selection, so when all we have is a
  focusable node, create a dummy selection in the paste target so the
  browser triggers an event on command+C.

Clipboard keys:
* Instead of just creating a text hash which may or may not match up
  with the plain text in the clipboard data, just convert the clipboard
  store into an array and use the index as the key. Also prepend a
  random number (clipboardId) so on paste we can verify the copy came
  from the same CE document.
  The text hash is now used for validation if only HTML is written
  to the clipboard.

HTML:
* Instead letting the browser grab CE HTML, always get DM HTML from
  the converter as it is cleaner (no phantoms, linefeed markers, extra
  class names etc.), and will make cross-ve-instance pasting easier
  in the future.

Clipboard overriding:
* Always override the clipboard with the above HTML, either using
  clipboardData.setData if it is available (webkit) or by throwing
  the HTML into the pasteTarget and selecting it during pre-copy.

Bug: 53375
Bug: 49396
Bug: 52096
Change-Id: Id0f39c10818047bb4b8922e97cead153a770757f
2013-09-10 10:38:34 -07:00
Ed Sanders 4f768f3734 Integrate with BetaPreferences
Look at logo Michael.

Bug: 52686
Change-Id: I3cfada2ea264184698de5f322c1fe5041b37b8c8
2013-09-10 10:20:14 -07:00
jenkins-bot cba2935173 Merge "Add alt attribute to core image nodes" 2013-09-10 01:43:40 +00:00
jenkins-bot 272b27a959 Merge "Use EventSequencer for CE Surface events" 2013-09-10 01:29:52 +00:00