Commit graph

93 commits

Author SHA1 Message Date
Moriel Schottlender b8f96bb512 Make sure initialHash exists before checking its value
(Followup on If17b50cc4a39993)
Make sure initialHash is set before checking and changing its value
in the MWImageModel method. If a user chooses a brand new image to
insert into the document (an insertion rather than update) then the
initial hash is empty, and changing its values will fail with an
error message.

Bug: 72492
Change-Id: I3f9ea74891cc0ab77a07fa5d4e9cbc591f5b93e6
2014-10-24 16:18:06 -04:00
Moriel Schottlender 14e1de1009 Update initialHash after getting defaultDimensions in image model
On initialization, the image model has an initial scalable that has
the given currentDimensions from Parsoid; these are usually correct.
However, in cases where the wiki settings do not fit the user settings
and the images appear smaller or bigger in practice than the values
of the wiki-defaults, the initial hash will store the wrong values.

We will only know what the real values for the comparison will be
after we get them from the API and the calculation; only at that
point we can update the image model initial hash.

This is important so that later the dialog can properly understand
whether to enable the "apply" button if a user changed an image
to custom size and then back to default.

Change-Id: If17b50cc4a39993f98a20a3fec3ddf5d8cb400b3
2014-10-22 00:11:43 +00:00
suchetag e3d185dd90 Replacing push.apply in VE-MW with ve.batchPush from VE core
Bug: 66206
Change-Id: Ifabfd0f28b8133e40ce822ed768442ab6a4d39ad
2014-10-16 23:12:22 +05:30
jenkins-bot 8005868566 Merge "Make MWTransclusionModel and MWTemplateDialog extensible" 2014-10-10 20:40:19 +00:00
Christian Williams 1fc13cce68 Make MWTransclusionModel and MWTemplateDialog extensible
Wikia has done some work on the template user experience, including
automatically showing all available parameters without the use of
TemplateData. In order to make our changes, we had to make some changes
to VE-MW.

ve.dm.MWTransclusionModel.js
* this.specCache is created so subclasses can reference it.
* Promise handlers in the fetch() method have been broken out as class
  methods so they can be overridden in subclasses.

ve.ui.MWTemplateDialog.js
* addPromptedParameters() has been moved to the
  initializeNewTemplateParameters() class method so subclasses can
  overwrite. In Wikia's implementation, we have a method of getting
  all parameters and a dialog that shows all of the parameters, so the
  request to addPromptedParameters is overwritten.
* Added a done() handler to the transclusionModel promise for Wikia
  extensibility.

Change-Id: I073c5850420e7719e82957f879423c2717af674a
2014-10-10 20:38:18 +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
jenkins-bot 64b2568465 Merge "Use mw.Title#getRelativeText to deal with titles relative to specific namespaces" 2014-09-26 02:50:43 +00:00
Alex Monk ef1cebd111 Use mw.Title#getRelativeText to deal with titles relative to specific namespaces
Added in MW core in Ie554adef, was backported to 1.24.

Change-Id: Iedc0319042529d41d29846d1734b5481850e9552
2014-09-26 02:47:18 +00:00
Timo Tijhof 66de06b0fa Replace use of ve.isArray with native Array.isArray
Change-Id: Ibc45e0fd80db7da872f6ef934cef915be9366e06
2014-09-23 17:58:09 -07:00
Moriel Schottlender f4dc6fd240 Add 'autovalue' to TemplateData
Allow for an auto-value for parameters in TemplateData, and make sure
this autovalue is inserted as text when parameter is loaded. This is
mostly useful for referencing date or other dynamic templates inside
parameters.

Bug: 52029
Change-Id: I6203530798ffaa62cb26190c70f7ce391bddf123
2014-09-20 00:52:23 +00:00
Moriel Schottlender cb86c4f030 Check for changes in the model
Create an image model hash and check for changes to the image every
time the dialog is changed, so we can activate and deactivate the
apply button properly.

Bug: 68058
Change-Id: I94b7e4879c6e752432c6f937a8cf1b9f15d1b56d
2014-09-04 14:05:01 -07:00
Moriel Schottlender e34fdae776 Make the image model persistent
Make sure the image model can switch parameters when the image
source is switched, rather than having to instantiate a new
image model.

Also, when the image is changed, retain aspect ratio but make sure
to preserve the width of the previous image (unless the new image
is smaller)

Added 'resizeToBoundingBox' and 'scaleToThumbnailSize' static methods
in MWImageNode that return scaled dimensions based on the image
dimensions and the bounding box detals.

Depends on core change Idbb8b29db8e

Bug: 69450
Bug: 68000
Change-Id: I4327c86a9127f46da5522dc1197411fda757d5a4
2014-08-28 12:04:49 -04:00
James D. Forrester a232147b11 Switch 'disallowQuotedKeysInObjects' jscs rule on and fix up
Change-Id: I75ac4b378ef485feead9d0eff34ed7877b94b5d0
2014-08-22 13:50:48 -07:00
jenkins-bot 0af7c2d634 Merge "Correct MWImage* resource regex to find literal .s rather than characters" 2014-08-21 02:07:50 +00:00
jenkins-bot df85006b03 Merge "Refactoring ImageModel constructor" 2014-08-21 01:54:46 +00:00
James D. Forrester 5148a0836a Rename "reference list" to "references list" internally
That's what we call them in human-speak, and it makes sense to have them align.

Bug: 49923
Change-Id: I8dcfba249fb9ea13c2b4052e98a4d253c302b1ba
2014-08-20 18:26:54 -07:00
James D. Forrester 7d3f9797c0 Correct MWImage* resource regex to find literal .s rather than characters
Change-Id: Ie5db0b4b6cdb607985b53228c4ceb26c57af9dfc
2014-08-20 18:16:13 -07:00
Moriel Schottlender 88a0790aab Refactoring ImageModel constructor
This change creates the scalable object that's attached to the image
model through its constructor. Also adds a 'resourceName' variable
to store attributes.resource, which is mostly used for API calls.

Change-Id: I713c59d1cec5f87387a87c98a59e75b3d5c1050e
2014-08-20 18:13:12 -07:00
James D. Forrester 1fcc9fa035 Update VE core submodule to master (61dea59)
New changes:
76bbf3b [BREAKING CHANGE] Fix camel-casing of countNonInternalElements

Local changes:
Use renamed countNonInternalElements function

Change-Id: Ib5f86ea5cfeb5e577f61349ed4bbb231ea155638
2014-07-29 17:15:35 -07:00
jenkins-bot 3771aa92c1 Merge "Make the image model work without a node" 2014-07-24 00:32:54 +00:00
Moriel Schottlender 1bc7d074fe Make the image model work without a node
The image model should go by image attributes (whether it comes from
an existing node or a new one) and not a node.

Bug: 68242
Bug: 68000
Change-Id: I4cabd678157619331b3c47d3b44bc16a28fd7bd7
2014-07-23 17:27:30 -07:00
jenkins-bot 960922cdb0 Merge "MWReferenceSearchWidget buildIndex optimisations" 2014-07-23 02:23:43 +00:00
jenkins-bot f7c7efbad7 Merge "test: Move mw into the global list of globals for VE-MW" 2014-07-23 00:02:22 +00:00
Alex Monk 42db347213 Auto-open "Add parameter" part of template dialog when tabbed to or opening with no required/suggested params
Bug: 55925
Change-Id: I8475074e25de3969717a6d4dbb88bbb0000ebb4e
2014-07-21 22:38:05 +01:00
Ed Sanders d4cd816b6f MWReferenceSearchWidget buildIndex optimisations
* Each item builds an MWReferenceModel which creates a document
  slice clone. This is very expensive and we only use the model
  for getting basic attributes, so defer the evaluation of the
  document.
* $.show is expensive and, in this case, unnecessary.

Change-Id: I99abc4c1b17f05559a9cae68b15121a8be6d23fb
2014-07-21 14:44:58 +01:00
James D. Forrester c2f37a0450 test: Move mw into the global list of globals for VE-MW
Silly to have 38 MW-specific files needing to declare that they're using mw.

Change-Id: I97891ed922fe0c37d8c96425a4d23bd15098438b
2014-07-19 17:42:45 +00:00
Moriel Schottlender e94a185fda Update VE core submodule to master (ad18102)
New changes:
65042de Fix alien test data
83dccbe Add toolbar menu labels to each group for consistency
2e40ef9 Move 'language' tool from the insert to the styling menu, like in VE-MW
6fb21b2 Add toolbar action section to SA demo with keyboard shortcuts tool
f3eb000 ve.ui.Toolbar: Optimise onSurfaceViewKeyUp performance
eb4e9eb Make sure the document is focused when setting a selection
48584d3 Fixes to getRelativeOffset and getRelativeRange		
fcc427f [BREAKING CHANGE] Remove generatedContents argument from afterRender
825e4be Documentation fixes in test utils		
dbbbe0b Unit tests for showSelection		
1ba9234 Don't handle up/down on focusableNodes even if backwards
a667b87 Remove label from 'insert' menu, and instead use a large plus icon
88885b1 Localisation updates from https://translatewiki.net.		
1f3b79f Initialize data first		
18369b1 Add 'clone' and make 'getDimensionsFromValue' static in ve.dm.Scalable		
92e6b7b Switch to 'custom' when MediaSizeWidget updates		
d0cd87e Localisation updates from https://translatewiki.net.		
1ee21ff Remove lies from documentation		
164f07f Safely ignore requests to open unrecognized windows

Local changes:
Work on a cloned scalable when editing images

Make sure the image model handles a cloned copy of the node's
scalable object, which is then shared with the media size widget.

Bug: 67687
Change-Id: Ie3676b715f5bae3d83da03d667cef3a6a847e212
2014-07-16 22:38:09 +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
jenkins-bot 410f36d2d9 Merge "Try some more to handle template namespace properly" 2014-07-03 01:23:47 +00:00
Alex Monk c6396e019e Try some more to handle template namespace properly
Looks like I messed up in Ia67f9054 and got a setting backwards

Also prefix titles in a couple more places

Bug: 67384
Bug: 66893
Change-Id: Id6d5841ee1645be62a024308da48ddc6769c78b6
2014-07-03 01:20:02 +00:00
Moriel Schottlender 6bd9fde5c5 Merge Media Edit and Media Insert dialogs
Merge the media edit and media insert dialogs. Allow editing
of media properties when inserting a new image, and also
allow the user to replace the image on edit.

Bug: 67170
Change-Id: I35bd95503565dbf95090ee8110284db5a8fbba83
2014-07-01 17:30:51 -07:00
Alex Monk a103f4078d Handle transcluding templates outside of the template namespace properly
Stop prefixing all requested titles with 'Template:', and don't try to use
colon prefixes when transcluding except when deliberately transcluding from the
main namespace.
(A title prefixed with a colon on MediaWiki is used to create a link to
something that would normally be included as a File/Category)

Bug: 52609
Change-Id: Ia67f9054a56e71153339f961bbbcadb565115748
2014-06-28 18:07:45 +00:00
jenkins-bot b7375cfdaa Merge "Don't remove 'extension' from template names" 2014-06-26 23:47:04 +00:00
Alex Monk 1dd64f80b6 Don't remove 'extension' from template names
Use getMainText instead of getNameText in a couple of places

Bug: 66939
Change-Id: Ie81ab98465909b65787ddf589353aaad6fb47dc2
2014-06-26 20:37:06 +01: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 4b9c91f164 Fix fragment after inserting an image node
* Return the fragment as it may have been cloned in the process
* Do away with DM node tree traversal, we can do everything
  with offsets.

Bug: 65706
Bug: 65716
Change-Id: I9a44d562d9365d72adac199725b52555cf0a8009
2014-06-19 17:45:21 +01:00
Ed Sanders c0bd7487f5 Fix selection after inserting nodes
Some surface fragment methods return a clone, so make sure
that is written back to this.fragment in dialogs, as this.fragment.select()
is called on teardown.

Functionally depends on If26cc0a2d in core.

Bug: 65706
Bug: 65716
Change-Id: Ia552b2a4c4c59ffc308a4acdecac78a7803a1c1f
2014-06-18 22:45:52 +00:00
jenkins-bot f2c7788522 Merge "Use registered target, instead of ve.init.Target" 2014-06-18 01:45:01 +00:00
Ed Sanders c70d32c017 Use registered target, instead of ve.init.Target
Depends on I468d4eb4 in core.

Uses various hacks to trick the test runner into thinking
an MW target is in use, when in fact we still use SA targets.

Change-Id: If4611307d5d7aaee4af84f86ef82faf9078043b6
2014-06-17 20:41:01 +01:00
Moriel Schottlender e2105be50b Insert inline image inside list to the existing paragraph
When converting from block to inline image inside a list, insert
the image into the existing paragraph instead of wrapping it in
a new paragraph.

Bug: 65924
Change-Id: Iefbb2a9ae536f51987bdd1aa8b7269bf6245d2b0
2014-06-13 18:07:24 -04:00
Moriel Schottlender 9f2d31cfa0 Disable the size widget for 'frame' images
Frame images are not resizable; disable the media size widget when
the frame type is selected.

Depends on the change in ve-core:
Id1010798d30e2928358acb5694c429b9ab68ad57

Bug: 66353
Change-Id: I8c8da8933c51ba709a834731425d19445009673f
2014-06-10 18:43:25 +00:00
Moriel Schottlender cd3cbf1f9b Initialize 'default' size properly in media edit dialog
Make sure that image model and media edit dialog initialize the
default size properties according to the scalable correctly.
Also make sure that on creation of a new node or edit of existing
node's properties follow on whether the image is set to default
size or custom size.

Depends on the ve-core change:
Ia6bb041bfc050a48d8c40bbff4b73ed2893085e2

Bug: 66149
Change-Id: I6f60fba28e11a111bb40a100148ed1f12d518890
2014-06-09 19:39:15 -04:00
Moriel Schottlender 8bca6add25 Fixing issues in the alignment select in Media Edit dialog
Fixing the behavior of alignment select and checkbox in the edit
dialog. Adding a check on all UI events to make sure they update
the model only if the model value is different than the UI value.

Also adding the ability to check the default direction of a
specific node type, to predict default alignment values.

Bug: 65916
Change-Id: I82f624fa788383dec0a12afb473aef01593e670e
2014-06-05 21:20:44 -04:00
jenkins-bot 27abd137fc Merge "Update image size after changing type" 2014-06-04 23:50:54 +00:00
Moriel Schottlender 8ca025be5e Update image size after changing type
Make sure that if the image has default dimensions set up in the
media edit dialog, the scalable (and image CE rendering) receives
the correct dimensions.

Bug: 65886
Change-Id: I6bd2d1681a3d780554767fe77b2640795170184f
2014-06-04 16:48:43 -07:00
jenkins-bot cc14f33be9 Merge "Followup to small SVG default size" 2014-06-04 23:44:24 +00:00
Moriel Schottlender 4355ea4f10 Followup to small SVG default size
Make sure svg drawings on block images have the default size as
the wiki default, no matter their original set size.

Also took the opportunity to clarify the synchronization method
for scalable and image type in ve.dm.MWImageNode and call it when
the image model is loaded to make sure the details are always
synchronized before edit.

Followup to I682d832e456a501836f33ed1dfc7dbd78a4edf53

Bug: 62893
Change-Id: Ic47016d171634c532092067957cc2c3d431e9746
2014-06-04 19:38:15 -04:00
Moriel Schottlender 74a20b8ec9 Adjust default alignment when switching from inline to block
Once more with feeling; default alignment when switching between
inline to block and vise versa. This time, the problem was mainly
that the checkbox for position cannot be updated without triggering
its update event. It was triggered, however, before setting up the
positioning, which caused the model to run positioning twice and
get things wrong.

Another smaller fix in this commit was done to make sure that
the image model remembers the previous alignment, so when image
type changes from inline to block and vise versa, and the alignment
was default, it can recalculate default value for the new node.

Bug: 65564
Change-Id: I6c16a7855ad7e3ce302fa3d042d0a402251b31f0
2014-06-03 00:20:57 -04:00
Moriel Schottlender f9df17c052 Another default alignment fix to MWImageModel
This time in the installment: Allow the model to predict the type
and default alignment based on parameters rather than just the
current status. This is important for initializing images, especially
inline images whose 'align' attribute is null or undefined, but must
be examined for default alignment.

Also changed:
* Make sure that model operations change each other, rather than
  let the editor change 'unrelated' model parameters.
* Use selectItem rather than chooseItem to avoid emiting the 'choose'
  event on edit dialog initialization.

Bug: 65564
Change-Id: I8c23fc53e7738d59565294d8b98fe7351bebbc67
2014-05-28 18:05:00 -04:00
Moriel Schottlender 7a6f59920d Fix default alignment in MWImageModel
Make default alignment a computed value, and make sure the GUI listens
to 'choose' instead of 'select' events for SelectWidgets so to prevent
recursive calls and make sure the GUI is updated properly.

Also added a default alignment check on type change so the user can
visually have an indication that the new image will have a different
alignment. The user can then change the value manually.

Bug: 65564
Bug: 65596
Bug: 62852
Bug: 65617

Change-Id: I55e16775d18e0a4bf7f1fa73bbb3aa5e0aa51a79
2014-05-24 03:22:52 +00:00