Commit graph

304 commits

Author SHA1 Message Date
Ed Sanders 8f012e76ce Use new createFromElement method from ModelFactory
Depends on Ia23e5d25 in core.

Change-Id: Iac6f0aaacb8404a28a41e33088fc7f519c227317
2015-03-25 18:26:56 +00:00
Roan Kattouw 884f301aa0 For empty / whitespace-only headings, output <p> instead of <h#>
Because sending HTML like <h2>  </h2> or <h2></h2> to Parsoid
produces undesirable output like ==  == or ==<nowiki />==

Bug: T51452
Bug: T52100
Bug: T57769
Bug: T61647
Change-Id: If15a1b4b31d4f08c23ecdf2ecf61a8a14a77259a
2015-03-20 23:05:37 +00:00
Roan Kattouw 8470e2c272 Update VE core submodule to master (f8f9728)
New changes:
68e20d4 Create AlignableContextItem to quickly adjust AlignableNodes
0150df2 Update OOjs UI to v0.9.3
b333fd3 FragmentInspector: Execute action on enter, rather than closing with data
2d14f7a Fix webkit column hack
be780eb Don't drop whitespace when removing empty slug paragraphs
cc19787 Split handlesOwnChildren and ignoreChildren
7f1c9a7 Localisation updates from https://translatewiki.net.

Local changes:
Add ignoreChildren to handlesOwnChildren nodes

Change-Id: Id3dc7efae8d30b6551b2fc3104ed00bc86339176
2015-03-20 16:04:15 -07:00
jenkins-bot 82dc89dc3e Merge "Remove MWTransclusionMetaNode" 2015-03-12 20:16:42 +00:00
Moriel Schottlender bbb5c84149 Remove MWTransclusionMetaNode
Since all transclusion nodes can be interacted with (including the
'hidden' ones,) there is no need for MWTransclusionMetaNodes.

Change-Id: I23d37e3d82029b7475ec68ebb04883c7e05370cc
2015-03-12 13:12:32 -07:00
Alex Monk 9a0b76ac26 Handle undoing of reference group changes
By removing from and re-inserting into the InternalList when the right
attributes change, rather than trying to hack it into the model's
updateInternalItem (which won't get run on undo).

Bug: T71119
Change-Id: Iaf7a3127576b94666e05691902d2782394d24afb
2015-03-11 19:15:47 +00:00
jenkins-bot 557e0e28ad Remove use of ve.indexOf and ve.getObjectKeys
Change-Id: Icbaa729209605fca8018e4bcbbe29c9ded64e7f2
2015-03-10 17:28:00 +01:00
jenkins-bot ba7db69583 Merge "MWParameterPage: Show the field's example if it exists" 2015-03-09 21:34:27 +00:00
Moriel Schottlender 530f5c05f5 MWParameterPage: Show the field's example if it exists
Also appending both the default value and the example value to the
field description. The input placeholder will show the default
value, the example value, or nothing.

Related to TemplateData change I9e2d66a805e25 but works without.

Bug: T53049
Change-Id: I4e5e57546f6d3c22e778ba061a5344ddee085c17
2015-03-09 14:25:18 -07:00
Timo Tijhof 9fd753e7a7 build: Enforce disallowMixedSpacesAndTabs jscs rule
Also, fix @returns comments (should be @return) and remove unnecessary
@method comments from the documentation.

Change-Id: Icd303626ac745c7ab5bff164f9b8cac276de1523
2015-03-07 16:49:30 +00:00
Roan Kattouw f24dbb3435 Fix transfer of reference contents from removed reference
We unconditionally retrieved originalHtml from itemNode,
even if there was no data-mw.body.id, so as long as
the reference itself wasn't edited, we would never overwrite
data-mw. This meant that if the <ref> with the contents
was deleted, the contents wouldn't be transfered to the
first <ref> tag with that name like they're supposed to be.
The solution is to only look at originalHtml from itemNode
if data-mw.body.id is set.

Change-Id: Ib87491b6fa6a77d62384158f8e8f7dcc2a36c23a
2015-03-02 22:26:05 +01:00
Moriel Schottlender f0f8f52080 Refactor MWMediaResultWidget to resize better
For the masonry view, the result widget resizes itself according to
the rows and other images in the row. Up until now the resize was
a bit buggy, occasionally missing height/width values. This is
mostly due to rounding errors, but also due to a small double
calculation that is now fixed with this code.

Change-Id: If18adc5280e4bdbb9174b7c7e6e4eadf3c1ab26d
2015-02-26 16:42:14 -08:00
Moriel Schottlender b85b81c501 Correctly validate a provider for local api
Make sure that the validation method accounts for local api
vs remote api when checking for valid variables.

Bug: T90795
Change-Id: Ia6877ca6ccc4e65d1db053f107e7702721e2da3c
2015-02-25 15:59:05 -08:00
Alex Monk 8e48f94580 Use mw.Api to run requests rather than our own stuff in ve.init.mw.Target
Bug: T58659
Bug: T89435
Change-Id: I18162f04c50f48606378aed62ee99fccdc3159f6
2015-02-25 01:57:22 +00:00
jenkins-bot bd4289241a Merge "Adjust Queue and Provider to work with generalized parents" 2015-02-24 18:42:40 +00:00
Ed Sanders 65d26891ae Fix transclusion clipboard logic
Run isForClipboard path in MWTransclusion node
even if we have originalDomElements.

Change-Id: Ib5c77888ef41d26e827dbb9a20925e251527a99a
2015-02-22 19:24:41 -08:00
Ori Livneh 4cf393da54 Update VE core submodule to master (032c9a4)
New changes:
dc3b1f8 Replace ve.dm.Model#matchesAttributeSpec

Local changes:
Replace ve.dm.Model#matchesAttributeSpec

Change-Id: I2a107999974309304b59697dad0f7374110b9ab5
2015-02-18 16:32:19 -08:00
Roan Kattouw 3611664663 Update VE core submodule to master (7d2a68e)
New changes:
0ceafd5 Fix V8 deopt for ve.ce.BranchNode#onSplice
01d2d4b [BREAKING CHANGE] Store originalDomElements instead of htmlAttributes
96005a7 Localisation updates from https://translatewiki.net.
42e672e ve.ui.Toolbar: Don't call #updateToolState from #initialize
373562d Localisation updates from https://translatewiki.net.

Local changes:
Update for htmlAttributes going away

Change-Id: I576a1e5d5883b03d1fff6666926f80a5682a280f
2015-02-18 15:35:46 -08:00
Moriel Schottlender 093cf012ea Adjust Queue and Provider to work with generalized parents
Generalize MWResourceQueue and MWResourceProvider so they are
extending the general classes from ve-core. This also allows for
tests in ve-core on the resource queue system.

* Depends on ve-core change I5346081317e *

Change-Id: If34cd99334f4ccb93015c3646f68ae3040b9c5d7
2015-02-17 17:22:21 -08:00
Ed Sanders b9addfc1da ve.dm.MWImageNode: Fix indentation
Change-Id: Ice223d19904f02709a64799cc6b81f8718a92a40
2015-02-17 16:10:33 +00:00
Ed Sanders 7ff516d76c Fix clipboard DM for transclusion nodes starting with invisible tags
<link> and <meta> tags are thrown away by the clipboard so make sure the
data-mw element is converted to a span.

Bug: T86401
Change-Id: Ia2869b9496ea5ce4f474e254bb4125f85152c7cf
2015-02-16 16:52:07 +00:00
Ed Sanders ec4acecf33 Correctly tag clipboard DM from MWTransclusionNodes
Iff in clipboard mode:
* Set data-ve-no-generated-contents on the main element
  regardless of whether we are using orignal DOM elements.
* Set data-ve-ignore on siblings, again, regardless or
  where they came from.

Bug: T89658
Change-Id: I82ad60f0b90e0c6ce88c42737bd36d1a289bcf34
2015-02-16 16:52:04 +00:00
Timo Tijhof 5bf0ac251a Move svgMaxSize and namespacesWithSubpages to site config
These are currently in page-specific mw.config. As these are
not related any page, they should be in the global export.

This is needed to have our tests (and code base) run error-free
without a MediaWiki page.

Bug: T89434
Change-Id: Ic42bcd14028772ff0c06e28c76ffaf156f8b985f
2015-02-13 08:20:26 +00:00
Moriel Schottlender 65d0a9d7e7 Defend against empty file pages in media dialog search
Empty file pages are returned as results in search but have no
useful information, and, more importantly, no 'imageinfo' property.
Make sure these are skipped by the provider.

Bug: T89303
Change-Id: I3374f7373efc1f5751acb16819973594abf56a56
2015-02-11 23:23:38 +00:00
jenkins-bot 0d3bd68431 Merge "Display image uploader and artist correctly in the media dialog" 2015-02-11 21:50:17 +00:00
jenkins-bot 57bffa14c6 Merge "Support specifying reference contents with data-mw.body.id" 2015-02-11 20:18:11 +00:00
Moriel Schottlender a3973145d5 Display image uploader and artist correctly in the media dialog
Add the display for the actual uploader, and change the label
for the artist to "Artist" for differentiating the two roles.

Bug: T88835
Change-Id: Ie939572e7c1240321556f6f81ed9e67d792a339d
2015-02-11 11:14:43 -08:00
jenkins-bot 7ac177c02e Merge "Template dialog: Disable 'Apply changes' until a change is made" 2015-02-10 23:17:01 +00:00
Roan Kattouw 26e5a885bc Support specifying reference contents with data-mw.body.id
If data-mw.body.html is not set, search for the element
whose ID matches data-mw.body.id and use its contents.

.body.html is still used for new content: new references
use .body.html, and if a reference using .body.id is
changed, the changed HTML is output in .body.html.

Bug: T88650
Change-Id: I5d614927256d59a3ab20b0bd6e882b5cb8fcda20
2015-02-09 20:54:50 +00:00
Moriel Schottlender aa9eb95455 Refactor MWMediaSearchWidget to use a queue and providers
Change the media search widget to work with resource queues and
providers. Create providers based on the user's filerepo settings
and aggregate their responses with the media queue. Stop asking
for more results from providers that are depleted.

Also fixes a rather nasty infinite-loop bug where the API returns
only very few images, and the UI keeps asking for more.

Bug: T78161
Bug: T88764
Change-Id: I65aed3446cd1f056476c56e6e04522c70e49e595
2015-02-06 16:45:56 -08:00
James D. Forrester bed038b509 build: Bump devDependencies to latest
Updates:
* grunt-contrib-csslint  0.3.1  ->  0.4.0
* grunt-contrib-jslint   0.10.0 -> 0.11.0
* grunt-jscs             0.8.1  ->  1.2.0

For jscs, leaving requireSpacesInsideArrayBrackets to avoid headaches for now.

Change-Id: I62d34444edbba65c8bd22d2fa5e50e16cabb0042
2015-02-02 14:30:39 -08:00
jenkins-bot d5f7bac940 Merge "Combine imageinfo requests" 2015-02-02 19:32:00 +00:00
Alex Monk dc69b15db1 Template dialog: Disable 'Apply changes' until a change is made
Bug: T76926
Bug: T76927
Change-Id: I5a664f865c11690a19b754fc9877baf37e34edad
2015-01-31 03:19:06 +00:00
Roan Kattouw 2bdb20b3c1 Don't corrupt href="./" in internal links
href="./" was being corrupted to href=""

Change-Id: Ieedd71a991c6b52225f2ac41ebe1a20e7533c19e
2015-01-30 18:44:57 -08:00
Alex Monk 7876cc957a Combine imageinfo requests
By generalising LinkCache into ApiBatchQueue to request them all centrally

Bug: T75822
Change-Id: I097311ec2487bb1ae9f5d927c2c13c274ba716f9
2015-01-30 17:20:04 -08:00
jenkins-bot cc4e8e7ebd Merge "When changing image source, use already-available API info" 2015-01-29 18:34:03 +00:00
jenkins-bot e372b93c4c Merge "Lazy load the media search results" 2015-01-29 18:33:47 +00:00
Moriel Schottlender e454b81f4d When changing image source, use already-available API info
When the user changes an image to another in the media dialog, we
already have API info that includes the original dimensions, media
type and other information that is required for the Scalable object
to compute the new current dimensions. We can use this info if it
exists instead of asking for another API call. Also make sure to
update the filename when we change an image in the dialog.

Bug: T87267
Change-Id: I9d86959b99b3f3dfed92255a9dba9a8fdd352dcb
2015-01-29 01:58:07 +00:00
Moriel Schottlender a44e0d2e5d Lazy load the media search results
* Set the src attribute only when the image is actually
  visible in the search results.
* Display the thumbnail image we have from the search
  results and then update with a larger one from the API.
* Request for more media results on a higher threshhold,
  when the user views 2 rows above the last available
  result.
* Correct the resizeToBoundingBox and simplify it to work
  properly for a non-square bounding box regardless of
  constraints.

Change-Id: If024b0335ce6a5d2d0eafdbfdfe1030dcaac3a75
2015-01-28 17:56:54 -08:00
jenkins-bot a0a6937450 Merge "Use DOM methods instead of jQuery .html() in references DM code" 2015-01-28 23:38:01 +00:00
Roan Kattouw a10fe01f8b Use DOM methods instead of jQuery .html() in references DM code
Bug: T87417
Change-Id: I40df6258cd076911c68351300a488645db1d65d5
2015-01-26 14:06:56 -08:00
Roan Kattouw 711c509f81 dm.MWBlockImageNode: Use DOM methods rather than jQuery
To avoid triggering state thrashing in Sizzle
( https://github.com/jquery/sizzle/issues/311 )

Also account for the fact that missing attributes are returned
as undefined by jQuery but null by .getAttribute().

Bug: T87416
Change-Id: Ib3bc7971920c084568abb6ea0bd822d763b276f2
2015-01-26 09:46:55 -08:00
Moriel Schottlender 061925be87 Add filename to the media dialog
Show the currently used filename at the top of the media dialog so
it can be copied and used in other pages if needed.

Bug: T54459
Change-Id: Ib1844c997189f7ead0656c5a811d3cab70030f89
2015-01-16 17:40:40 +00:00
jenkins-bot 2ebdf34c29 Merge "Transform the search widget to show image details" 2015-01-16 13:26:25 +00:00
Moriel Schottlender 4947420650 Transform the search widget to show image details
Add an info panel to the MediaDialog to show the user information
about the chosen file from the new extmetadata API.

Also, change the way results are viewed:
* Present the search results with their proper ratio.
* Use masonry fit for the search results.
* Change the resizeToBoundingBox method in ve.dm.MWImageNode to accept
  a specific side constraint, either 'width' or 'height'. This is also
  going to be useful for adding and calculating 'scale' considerations
  that affects the image height.
* Add info panel with details from extmetadata including author, license,
  date of upload and creation, etc.
* Get descriptions and data according to wiki language.

Bug: T78161
Bug: T74061
Change-Id: I7b4d019825aa89dd178665bd9492a07af15954ac
2015-01-16 13:22:54 +00:00
James D. Forrester 2f8b3e0d96 build: Bump copyright notices to 2015
Change-Id: Ie92dab7411116d3410195c3fb0a3513c664c0c30
2015-01-12 20:34:19 -08:00
Bartosz Dziewoński 9e5ec5cefb ve.dm.{MWTransclusionModel,MWTemplateModel}: Remove unused parameters
The 'origin' parameter to the constructors has been removed in 51e096d6.

Change-Id: I885f75c381cea013d32d408c7b26de0fa00629c2
2015-01-11 19:25:17 +01:00
Moriel Schottlender e0894b807f Surfaces should have parent document direction
Make sure all surface widgets have documents that are initialized
with the direction of the parent document, so the alignment is set up
correctly.

Bug: T71969
Change-Id: I6e5f003e18a9c5808d9a4b148eddf0d0f7e29e67
2014-12-10 16:46:16 -05:00
Timo Tijhof ee954cbdd5 Use String#slice instead of discouraged String#substr
Aside from the confusion and differences between substr() and
substring() and IE8 bugs with substr(), substr() was removed from
the spec as of ECMAScript 5. It's been standardised in the
optional Annex B section of ES5.

Change-Id: I221ef6ae6956ce20dd9bb74510500f747d04c3b1
2014-12-06 21:26:20 +00:00
jenkins-bot c5ec9cb8d5 Merge "Methods for new "maps" property in TD Root" 2014-11-17 20:56:49 +00:00