Commit graph

529 commits

Author SHA1 Message Date
Gilles Dubuc c386719cdb Some refactoring to get LightboxInterface closer to a proper UI component
* remove reference to MultimediaViewer
* move hash handling to MultimediaViewer
* make it inherit from Element, remove code duplication
* cleaner event handling life cycle (register on attach,
  unregister on unattach)

Change-Id: Ida8f68dead758a6ae3c429eb85c548af61e46801
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/178
2014-03-08 00:26:44 +00:00
Mark Holmquist 21549d7547 Do not add icons to media viewer image list
e.g. {{refimprove}} on enwiki - there is an icon of a book that is only
meant to be illustrative on the page. It interferes with the page's image
collection and the flow.

Change-Id: Icd7e5885aaf8b31fffe07bd18cc0feb0f76b848c
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/229
2014-03-06 15:26:25 -08:00
Gergő Tisza d0f76bb160 Add checkered background to make black-on-transparent images visible
Bug: 57620
Change-Id: Ibabbb6d64f9d02ff5b94431a431ebb5222e344d7
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/284
2014-03-05 21:32:34 +00:00
jenkins-bot 0fa8f80942 Merge "Get rid of global viewer instance" 2014-03-05 17:52:18 +00:00
Gilles Dubuc 8beca0b106 Get rid of global viewer instance
- split event handler setup out of bootstrap and viewer creation
- simplify the tests setup/teardown

Change-Id: Icde1db81efd6191207ba35757192c800ea2d2e91
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/278
2014-03-05 02:33:06 +00:00
Gergő Tisza 59bd5e0032 Add tests for promise rejection error logging
Change-Id: I20d0803f211cbc4a7f00b58d015b565ca5c3b49b
Mingle:https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/268
2014-03-05 01:15:28 +00:00
jenkins-bot 44b9fa127a Merge "Fix resize issues (Part III, Fin)" 2014-03-05 00:16:16 +00:00
Aaron Arcos 6b7de4b129 Fix resize issues (Part III, Fin)
Last round of fixes and refactorings regarding resize issues
and the Canvas component:
  * Consolidate all the width calculation logic inside the Canvas component
  * Consolidate image resizing logic in the Canvas component
  * Fix size problem with SVG images
  * Clean up comments and tests

Change-Id: I0198cc1e3a45f7287b9a7494f73a8f158303f886
Bug: 56454
Mingle: 239
2014-03-05 00:14:54 +00:00
Gilles Dubuc d983a13377 Test to check that events are not trapped after the viewer is closed
Also fixes overeager preventDefault in the interface

Change-Id: I5e3b05c8546e24772016b72343e241caa2e6ef0e
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/274
2014-03-04 09:28:59 +01:00
jenkins-bot a5e566e5db Merge "Add rejection logging to providers" 2014-03-04 01:35:48 +00:00
jenkins-bot 5f4f62211b Merge "Add events for image views and "use this file"" 2014-03-04 00:44:21 +00:00
Gilles Dubuc b7488716d8 Add events for image views and "use this file"
Change-Id: I9ba37038e41d81bbb8dfa96b8a7766b35d24fa5a
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/54
2014-03-03 16:30:38 -08:00
Gergő Tisza ead038c34f Add rejection logging to providers
Make sure it is easy to debug when one of the promises rejects (and
causes the whole promise chain to fail).

I'm not really happy with this, but still seemed better than adding
the same boilerplate error logging code to each provider one-by-one.

Change-Id: Idd2b638f012ef2ff250e350e2f6a60bb8b81899b
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/268
2014-03-03 21:35:01 +00:00
Gilles Dubuc 28cb881cfa Network performance measurement CORS improvements
- Fixes feature check for IE6 and older browsers without native XHR
- Skip crossOrigin attribute for IE11 because it prevents caching

Change-Id: I99d6a3c97edac1af12750d5978a84b6e6f631b14
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/232/
2014-03-03 17:17:07 +01:00
Gergő Tisza a8a31b1cfc Restore normal behavior on middle-click for site link
Change-Id: I0f13cc97e69fffec64c5dd6c18f08bad44838d19
2014-03-01 00:00:31 +00:00
jenkins-bot 4dad39c117 Merge "Get rid of site-link-click waiting period" 2014-02-28 22:57:13 +00:00
jenkins-bot 31c2b4169f Merge "Fix JS error happening when closing "use this file" dialog" 2014-02-28 17:53:17 +00:00
Pau Giner a3d0a654f7 Adjustments of colours and layout
changes include:
* Aligning license and usage boxes with content above.
* Limit the maximum size for the licensing box when open.
* Adjust font sizes and colours to adjust the alance in the prominence of each part.

Change-Id: I0e4465baaf7a9f7830b95a8d731256d6b4974e17
2014-02-28 14:14:34 +01:00
Gilles Dubuc 9940833928 Get rid of site-link-click waiting period
Change-Id: Ie165cf132ed9f9e326387abba0af6d3780fa894d
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/255
2014-02-28 12:11:18 +01:00
Gilles Dubuc 430ec53d3e Fix JS error happening when closing "use this file" dialog
Change-Id: I690f473ea17117bed7d30e1a858f6612f57fc33e
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/224
2014-02-28 11:52:47 +01:00
Aaron Arcos fedaa553b4 Fix resize issues (Part II)
I was going to stage this but better give you the whole enchilada,
it is not that bad, ;-). This is what I am doing:

- Delete  things that are not used anymore.
- Componentize image ui element (Canvas).

Bug: 56454
Change-Id: Ib5461639a86d9f8e0a150f6d9543a20058d31e00
Mingle: 239
2014-02-28 10:22:21 +01:00
jenkins-bot 374fe5560d Merge "Create fake user when userinfo request fails" 2014-02-28 08:48:25 +00:00
Gergő Tisza 8408c82420 Clear registered events on unattach
Bug: 62033
Change-Id: Ic23a182ac2a74864831796ce493a0c51baa4fe8b
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/273
2014-02-28 03:20:40 +00:00
Gergő Tisza 822e129a37 Create fake user when userinfo request fails
Quick and dirty fix for a bug that completely breaks the metadata panel.
Should be refactored later (for a ForeignDbRepo, a missing user is
normal, for anything else it should still be treated as an error
condition, although maybe not with a rejection).

Bug: 62019
Change-Id: I433ae2bd1334593d9c5bfe0272ce7207f3fdf723
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/267
2014-02-28 03:06:23 +00:00
Pau Giner d66681c949 Small font and layout adjustments
Some styling adjustments to:
* Make description fonts not to be de-emphasized in comparison to license terms.
* Avoid metadata on the right to wrap when there is enough space.

Change-Id: I49514060dec200d93489d2b853a1dfdc1bfa5f46
2014-02-27 19:04:00 +01:00
jenkins-bot 45a0031716 Merge "Bugfixes and improvements for the progress bar" 2014-02-27 01:35:26 +00:00
jenkins-bot ccdb14634a Merge "Make it obvious that the permission text is cut off; add expand link" 2014-02-27 01:25:29 +00:00
Gilles Dubuc 9d9fff1871 Bugfixes and improvements for the progress bar
- the bar now starts at 5% for a visual indication that
something is going on
- the bar animates (fast) to 100%, instead of
disappearing immediately
- the animation logic has been fixed to avoid seeing
the bar go backwards
- added sanity check in all the callbacks to make sure
that we don't apply any changes to an image we are
not looking at anymore (including progress updates)

Bug: 58055
Change-Id: I765a61c16513e9330a412c5ec96387623ae7dbc7
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/146
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/242
2014-02-27 02:13:03 +01:00
Gergő Tisza 976ffc76d3 Make it obvious that the permission text is cut off; add expand link
Fades out the bottom of the text and adds a link to replace it
with the full HTML version. Due to the way it is positioned,
the fade + link will be invisible if the text is less then 3 lines.
The implementation is not very polished; since this will be
replaced by some JS-based ellipsis thing, I didn't want to spend
too much time on it.

Change-Id: Ib30e40fe845b85bfcf9557970efb886d28b3e5c7
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/118
2014-02-27 01:06:25 +00:00
Gilles Dubuc 1e880b68ca Ignore left/right key presses when there's a modifier
Change-Id: I8998fd27a7d60f5826802153d3ad74ab8a37c3fe
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/236
2014-02-27 01:17:53 +01:00
Gilles Dubuc 5d6d274309 Make the SVG filter inline
The external SVG doesn't work on beta, because
it's hosted on a different domain

Change-Id: Ic6ae42a33f9dbd656df051f056376aea60ac9ea3
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/146
2014-02-27 01:11:52 +01:00
Gilles Dubuc 392cc4e737 Move "uploaded by" to the right spot
As specified in the acceptance criteria, it should be
between "Learn more" and the creation date

Change-Id: Ie3e7fd55b6bb8fa5cf995fa90dd8ab45581f34bd
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/217
2014-02-26 18:19:51 +01:00
jenkins-bot 1317119e6e Merge "WIP Fix resize issues (Part I)" 2014-02-26 09:24:51 +00:00
Aaron Arcos efaae84a4f WIP Fix resize issues (Part I)
After a few false starts trying to fix LIP.autoResize(),
I noticed that it has become obsolete by our latest
improvements (bucketing and cashing), so I decided to
get rid of it and let the browser do the resizing.
I tested in Chrome/Safari/FF and this approach seems
to work fine.

Still work in progress and there are many things that should
be cleaned up regarding the image object logic but please take
a look and let me know if you have any objections if I go
this route.

Bug: 56454
Change-Id: I08207d0f1fcc9dcb69ec31c03e96cfd0c0a6c522
Mingle: 239
2014-02-26 10:22:47 +01:00
Gergő Tisza 77deada982 Fix display issues with "view terms"
Hiding the element before it is added to the document causes
a wrong display type in Firefox; changing the order of commands
fixes that.

Bug: 61936
Change-Id: I808131da25f2f70c14747238216e8973af44d029
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/118
2014-02-26 01:20:34 +00:00
Gergő Tisza 18a850869d Make sure the text of the permission box is cut exactly between lines
Change-Id: I7a0a3056f6e3734579f1e04175e04c89ced92576
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/118
2014-02-26 00:41:12 +00:00
Gilles Dubuc 77a483086f Blurred thumbnail preview + progress bar
Displays a blurred version of the thumbnail
while the actual image loads
Displays a progress bar showing the image load progress
Animates into focus once the actual image is loaded

Change-Id: I2b8bc4691c20ffb5b3f16da9a8b9d6fd1796d784
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/146
2014-02-25 14:57:33 +01:00
Gergő Tisza 109bbe6ac1 Namespacing MMV properly
Everything is under mw.mmv now.
(Also, I cut down on the number of direct global instance references a bit.)

Change-Id: I88bb3b62b82ce54126dd069b0aab4412d9404719
2014-02-25 13:16:22 +01:00
Gergő Tisza 53da285b07 Merge MultiLightbox into MultimediaViewer
* merges parent classes into child classes
* moves some files and tests to have a consistent directory structure

Change-Id: I360cc0805d8a561f5105fb063747457f67e1fccd
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/177
2014-02-25 02:00:13 +00:00
Gergő Tisza a04631c405 Show permission
Change-Id: I0b8b0626b36baba9732f7350213d8b53ec2cca95
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/118
2014-02-24 21:41:25 +00:00
Gilles Dubuc bfa530cc21 Wait for CSS to be truly loaded before opening the viewer
This is a workaround for core bug #61852

Change-Id: If7d830866993eddbf5784694514ff89aece56c5b
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/258
2014-02-24 19:13:04 +00:00
jenkins-bot de9d10ce06 Merge "Better way to detect CORS support" 2014-02-24 19:13:06 +00:00
Gilles Dubuc 75dbc72e6c Better way to detect CORS support
The old technique doesn't work in Firefox and
doesn't always work in Chrome depending on
when you call it.

https://hacks.mozilla.org/2009/07/cross-site-xmlhttprequest-with-cors/

Also fixes some tests that weren't overloading
the right function and were hitting the real
feature detection check

Change-Id: I0a9d6b5654efb169860ddf7e5e0551efb825920c
2014-02-24 18:53:01 +00:00
Gilles Dubuc ce58597b3b Fix hash self-reaction
* Fixes bug where the mmv would react to its own hash changes
* Adds jquery.hashchange for older browser support

Change-Id: I2d23699bb444d9eb533d239e25bc47fa96c902a9
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/254
2014-02-24 19:14:45 +01:00
jenkins-bot 79d72d391d Merge "Use cross-origin img attribute instead of data URI" 2014-02-24 09:46:59 +00:00
Gilles Dubuc e37c9b809c Fixes hash handling issues
* Fixes the bug where the browser hash would get nuked on
foreign anchor clicks
* Moves the hash handling back into the mmv itself
* Adds test coverage for the hash nuking bug

Change-Id: Iea57d0f4b9090f96e622418223d3f774923e8038
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/254
2014-02-24 08:45:08 +00:00
Gilles Dubuc 28b8f5095e Use cross-origin img attribute instead of data URI
After lots of experimenting with Wireshark and
current Chrome + Firefox on Ubuntu 13.10, this is my
current understanding of the caching when preloading images
with AJAX requests:

* on Chrome, the image request always comes from browser cache
* Firefox makes two separate requests by default
* Firefox with img.crossOrigin = 'anonymous' makes two separate
  requests, but the second one is a 304 (does not load the
  image twice)
* when the image has already been cached by the browser (but not in
  this session), Chrome skips both requests; Firefox skips the AJAX
  request, but sends the normal one, and it returns with 304.

"wish I knew this when I started" things:
* the Chrome DevTools has an option to disable cache. When this is
  enabled, requests in the same document context still come from
  cache (so if I load the page, fire an AJAX request, then without
  reloading the page, fire an AJAX request to the same URL, then the
  second request will be cached), but an AJAX request - image request
  pair is an exception from this.
* when using Ctrl-F5 in Firefox, requests on that page will never hit
  the cache (even AJAX request fired after user activity; even if
  two identical requests follow each other). When using clear cache
  + normal reload, this is not the case.
* if the image does not have an Allow-Origin header and is loaded
  with crossOrigin=true, Firefox will refuse to load it. Chrome will
  log an error in the console saying it refused to load it, but will
  actually load it.
* Wireshark rocks.

Pushed some tech debt (browser + domain whitelist) into other tickets:
https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/232
https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/233

Reverted commits:
    8a8d74f01d.
    63021d0b0e.

Change-Id: I84ab2f3ac0a9706926adf7fe8726ecd9e9f843e0
Bug: 61542
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/207
2014-02-24 07:56:40 +00:00
Mark Holmquist 1733df8dc9 Grand Unified Documentation Patch Jr.
The GRUDP is dead, long live the GRUDPJ

Change-Id: I71a22c3aa42b2eb799ce8104159e8c7e56fe13ae
2014-02-21 00:55:43 +00:00
Gergő Tisza 8b984c5ed4 Minor documentation tweaks
Change-Id: I8b513ceab06ddeb47261949061b777105cfa7b65
2014-02-21 00:45:06 +00:00
Gilles Dubuc fdeedd6a88 Fix preloadFullscreenThumnail breakage
Since there was no merge conflict and the changeset worked pre-merge, when jenkins merged the fullscreen changeset, it actually turned out to be incompatible with the new code and spews out a nasty JS error. I think from now on I'll always avoid +2ing a diff that hasn't been rebased to the latest. When looking at the diff not rebased to the latest, you just can't see the issues that might happen with the latest code merged and you certainly won't spot the potential breakage that comes with it.

In fact I think a lot of breakages we've encountered as of late were caused by this very issue.

Change-Id: I46b7dd93c55635f34c01bd8d3eee9785140b5f35
2014-02-20 10:34:48 +01:00
Gilles Dubuc 093cfdc697 Preload fullscreen image
Change-Id: Ief72a4ab2e49538132b174fd9fcf792ddab66b3d
2014-02-20 09:43:10 +01:00
jenkins-bot 3f5323608b Merge "Get article path for foreign DB repos too" 2014-02-20 08:38:03 +00:00
Gergő Tisza f2550c0fbc Fix fileUsage test breaking behavior.
fileUsage tests were applying styles to the fixture element, which
apparently does not get cleaned between tests. This was because
fileUsage.$container had different semantics from element.$container
(widget's own container div vs. parent container div). FileUsage
now inherits from Element to make sure behavior is consistent.

Change-Id: I8fab8bcf084d8b7e480655114506d9848e9d9a49
2014-02-20 09:33:34 +01:00
jenkins-bot b6add9a17b Merge "Hide mouse cursor when buttons are faded out in fullscreen" 2014-02-19 23:48:32 +00:00
Mark Holmquist c619a19711 Get article path for foreign DB repos too
We have had this method in all Repo subclasses for a while, but sadly
it never got used and we've unintentionally crippled foreign DB repos
for some time now.

{{fixed}}

Change-Id: I972eb739cdd56c666981d5fbc371fa53024ff359
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/217
2014-02-19 11:13:17 -08:00
Gilles Dubuc d53ca1462e GlobalUsage should utilize the right Api class
Change-Id: Ia0d0ee1d9213f98d89455f88b50616a5fbd87dcf
2014-02-19 19:18:42 +01:00
Gilles Dubuc 9a0a601278 Hide mouse cursor when buttons are faded out in fullscreen
Change-Id: Ie7bec07a9c79cb5ffde586ccd3cfdd3eac519047
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/210
2014-02-19 12:32:10 +01:00
Mark Holmquist 5df979bd65 Grand Unifying Documentation Patch
Change-Id: Id0def78beb0231270557037a9c530c770b100ce2
2014-02-18 18:27:30 -08:00
Gilles Dubuc 8a8d74f01d Avoid double requests when measuring performance of image load
Change-Id: Ib5ec4c3e4e4a410a6ee520b11bf025d7447cb542
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/207
2014-02-18 16:45:03 -08:00
Gergő Tisza 7afbc5ce92 Use provider XHR information in performance metrics + several fixes
* more robust method of obtaining URL
* decouple performance logging from providers (mostly)
* ignore fake XHR object which jQuery returns for JSONP requests
* guard for CORS requests - apparently Chrome refuses to return
  certain information even with an Allow-Origin: * response header.
* Resource Timing is limited to 150 results, which causes fake
  misses in debug mode. There is an API to increase the limit
  but it is not implemented in Chrome. I am calling it nevertheless,
  maybe IE understands it (it is present in the MSDN docs at least).

This seems to work for AJAX, CORS, JSONP, image AJAX; CORS requests
return 0 for a lot of values, per spec a Timing-Allow-Origin: *
header might help that.

Change-Id: I8353858022f51a7e70774e65513d0fa2554a5064
2014-02-19 00:38:27 +00:00
Gilles Dubuc 035afe6d36 Make metadata animation more subtle
And stop showing when the user has opened the metadata once

Change-Id: Iefce36acf1b78301584ca8c1359fac94956a9440
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/213
2014-02-18 16:17:14 -08:00
Gilles Dubuc a5cddef17a Lazy-load mmv
Also removes the index inside the location hash

Change-Id: I9429ff0101ab891f2c4c6aa2d989fbef0813252d
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/136
2014-02-18 15:55:15 -08:00
Gilles Dubuc c9fc2c707f Make the image and navigation buttons unselectable
Change-Id: Iec6d8a9511e2a4c508da7524c9fb0db499d1eb8a
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/214
2014-02-18 19:36:33 +00:00
Gilles Dubuc 35690bb2f1 Get rid of lightboxHooks
Delete lightboxHooks, since most of them
haven't proven to be useful.
Replace the useful ones by jQuery events.

Change-Id: I28f99ba85666ca15979feb5c637924b98bba27a8
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/176
2014-02-13 17:47:30 -08:00
Gergő Tisza dc539cab54 Fix keydown event handling leak
Bug: 61337
Change-Id: Iee28a3e19a5a526876fb93900a12844c35b74ecc
2014-02-13 20:50:05 +00:00
Gilles Dubuc 6e127b25e2 Preload prev/next images
When the lightbox is opened, or prev/next pressed, preloads the
previous/next N images.

Technical debt introduced:
* initialization is a mess, with the viewer and the interface
  randomly setting properties on each other in different phases of
  execution. That got in the way and I shuffled things around
  until they worked, which is obviously not the way to have a
  robust system, but hopefully it will get scrapped soon anyway
  in favor of a clean top-down dependency injection.

Change-Id: Idcb5c40de1ac0b3e482decd66e56c4de8ec71b6b
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/155
2014-02-13 10:52:40 +01:00
jenkins-bot 400ddd7b53 Merge "Add TaskQueue class" 2014-02-13 09:35:37 +00:00
jenkins-bot 52a0e16147 Merge "Fix fullscreen bug where image was replaced with self" 2014-02-13 09:14:18 +00:00
Mark Holmquist c99d830d25 Search for jsduck warnings, fail if found
Change-Id: I21e903375e5c6fbf4cb7c7f5ca52421695618011
2014-02-12 14:19:23 -08:00
Gergő Tisza 9881f9e7ae Add TaskQueue class
A simple task queue which can be processed or cancelled.
Will be used to handle preloading in a more robust way.

Change-Id: Ib33f9b2d814a35538f9d4f3691fce5ba5cdc82c1
2014-02-12 01:55:39 +00:00
Gergő Tisza d7706d7cb0 Fix fullscreen bug where image was replaced with self
Change-Id: I81dcadae96a778559564a786a5753323fb802b7c
2014-02-12 01:55:37 +00:00
Gergő Tisza f4ab39df1e Fix runaway prev/next issue
Prev/next handlers were multiplying after every click.

Change-Id: I1e21b2711cc08a6edbbd26ec844e966f7582b3c8
2014-02-11 01:12:31 +00:00
Pau Giner cc9e2daf2f Icons for share link and assessments
Added SVG assets for link (normal and hover states) and the
"assessments" trophy icon.

Change-Id: I5b5673fb8767628922c6b1ccbe658a0b3df56e0f
2014-02-10 21:48:14 +00:00
Gilles Dubuc 6e896c05cc Fix fullscreen and close icons
Some styles got mangled when 111372 landed

Change-Id: I44fa82ba0b65152b01872ba58f8a7e84c6106ca5
2014-02-10 10:04:50 +01:00
Mark Holmquist a62410616d Refactor button things into a separate class
https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/124

Change-Id: Ib4b54164bccbe17e42b223880179531e8d9e6123
2014-02-10 09:40:50 +01:00
jenkins-bot 698f677cd3 Merge "Refactor thumbnail size calculation" 2014-02-10 08:11:33 +00:00
Gergő Tisza 06cc6cca1a Refactor thumbnail size calculation
* moves generic logic into ThumbnailSizeCalculator class
* moves UI-specific logic into interface class
* fixes bug where non-bucketed sizes were served on devices with
  non-standard pixel density
* fixes bug where bucketed size was compared to css size instead of screen size
  for resizing

Change-Id: I8ba3380b74fcc8fb0a6ecc3f3140627411851ad0
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/196
2014-02-08 01:27:27 +00:00
Gergő Tisza 65129f9ed5 Fix perf log type for userinfo
Change-Id: I296a3c53005de7c27b6083662fa498f06254e946
2014-02-07 21:26:27 +00:00
Gilles Dubuc e74fc33e89 Track detailed content loading network performance
Leverages the W3C Navigation Timing API when available

Change-Id: Ief1d327d1bd8928bf5f2bf0bd4c7141a0a608a53
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/126
2014-02-07 19:37:22 +00:00
Gilles Dubuc 57434b5812 Refactor panel-related things into another class
mmv.lightboxinterface was getting way too clunky.

https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/124

Change-Id: Ie3a604b532ee853f9df673cc4d38c2c7594bdefa
2014-02-07 10:09:08 -08:00
jenkins-bot 6b22712362 Merge "Some more metadata fetch reorganizing to get rid of the dependency on UI state" 2014-02-07 09:15:21 +00:00
jenkins-bot 3f9becc01b Merge "Add Thumbnail model" 2014-02-07 09:12:15 +00:00
Gilles Dubuc e3a1bf93ba Show main metadata in fullscreen
Yay mostly-CSS work

Change-Id: Ica8dc95a8c56b56c0ee00a16b1cfbf923de04424
2014-02-07 02:43:43 +00:00
Gergő Tisza e382095c4a Some more metadata fetch reorganizing to get rid of the dependency on UI state
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/155
Change-Id: I56cfa404d148d760088baa26900db04294ab4e91
2014-02-07 01:46:26 +00:00
Gergő Tisza e33f2d263c Add Thumbnail model
Also refactor size calculation a bit - I found target/requested
harder to remember.

Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/155
Change-Id: I4781cdd7004e9a8e36875c152e1d3a335a55b7d7
2014-02-07 01:46:26 +00:00
Gergő Tisza 289ad22b19 Fix JSDuck
* update paths
* make generate script return failure state on failure
* fix some issues so that it does not actually fail

Change-Id: Idd42e0d8e333c461091079aa1150b1b435e6360c
2014-02-06 19:10:07 +00:00
jenkins-bot ed912adff1 Merge "Userinfo provider" 2014-02-06 13:56:15 +00:00
Gergő Tisza 26d001ac6f Fix repoinfo loading bug
Change-Id: I21741a60b88f1e34faf30ef591f3e44ff4703d94
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/190
2014-02-06 00:59:43 +00:00
Gergő Tisza b013ddbefe Userinfo provider
* userinfo api requests are cached now
* we use jsonp only if we have to (makes gender api calls measurable on WMF wikis)
* all API calls use providers now, provider.Api constructor can be used to
  wrap mw.Api with metrics

Does not return a proper model, and gender API calls are not preloaded together
with the rest of the calls. Maybe next time.

Change-Id: I9b3ea73c65eef57e160ac8636d9e45d349150884
2014-02-06 00:37:39 +00:00
jenkins-bot ec32d1e81a Merge "Hide the controls after some time when in fullscreen mode" 2014-02-05 20:13:25 +00:00
jenkins-bot 929e287637 Merge "Revert "Exit Lightbox when clicked on backdrop"" 2014-02-05 18:14:24 +00:00
MarkTraceur 3b71fecee5 Revert "Exit Lightbox when clicked on backdrop"
This reverts commit 4280dd8b83.

After product discussion, we decided this was a bad idea. Sorry, Tony.

Change-Id: Ib59d75132c2a301f83d080b0f963e2a9d8b9b277
2014-02-05 18:12:43 +00:00
Gilles Dubuc 3dd716a3f2 Hide the controls after some time when in fullscreen mode
Also removes side-effects from several tests

Change-Id: Ifdc978f56f8c4caafadc8b192756645a9378f58a
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/150
2014-02-05 10:27:10 +01:00
jenkins-bot 923a117304 Merge "Use LESS instead of CSS" 2014-02-05 02:20:40 +00:00
Gergő Tisza 1ff0ac60cd Fix merge problem with categories
Change-Id: I628bffeb4cac16cf50def6d5562fb9e2b9fa8933
2014-02-05 01:46:55 +00:00
jenkins-bot af1c2cbeee Merge "Add provider to for actual image loading" 2014-02-05 00:15:56 +00:00
jenkins-bot cba179e79a Merge "Replace old API code with providers + fix a few provider bugs" 2014-02-05 00:15:55 +00:00
jenkins-bot 97e29b9e00 Merge "Add imageinfo, thumbnail info, repoinfo provider" 2014-02-05 00:14:22 +00:00
Gergő Tisza 6068ffd58d Add provider to for actual image loading
Change-Id: I9ca9bce37c97648afa07db9f004138a791c74e65
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/123
2014-02-05 00:02:28 +00:00
Gergő Tisza 40d1a2508a Replace old API code with providers + fix a few provider bugs
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/123
Change-Id: Id7952f0a0eafa34d7c8691c63c2daccff2eea64a
2014-02-04 23:52:02 +00:00
Gergő Tisza 85a37d0e14 Add imageinfo, thumbnail info, repoinfo provider
Change-Id: I80ffec39ee6c9e0ea0b37be2fc48315063b5ff8a
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/123
2014-02-04 23:46:02 +00:00
Mark Holmquist 9d043e7ddc Fix categories empty method
+test

Change-Id: I16f19dde713709b0cf8631cb1bf0ceee6ca438a7
2014-02-04 10:10:53 -08:00
Mark Holmquist 5d61b69fbd Use LESS instead of CSS
Because we're that cool of a startup apparently

Also because organization and easy code manipulation.

Change-Id: I81ca302b6848f83034f7efed2443757bb045c4f1
2014-02-03 15:02:32 -08:00
Mark Holmquist b860ccf1b9 Move UI things into mmv/ui/
Change-Id: I39800ba45abe4ff1cb21c41062f8a1012eaca203
2014-02-03 14:46:04 -08:00
Gilles Dubuc d34fec4ff2 Add categories to the interface
Also move some things around a liiiittle bit. Not too much.

Change-Id: I7a5b8d900f5173fa20142d205e4992361b9e81a3
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/41
2014-02-03 15:09:42 +01:00
jenkins-bot 9f0641c214 Merge "Make mmv handle urlencoded hashes" 2014-02-03 10:44:42 +00:00
jenkins-bot 8024d98e71 Merge "Move providers into their own subdirectory" 2014-02-03 08:45:02 +00:00
Gilles Dubuc 67fa053687 Make mmv handle urlencoded hashes
Change-Id: Id05806be4586a3d6f04b92ace2c8195b8de016bc
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/153
2014-02-03 09:32:38 +01:00
tonythomas01 4280dd8b83 Exit Lightbox when clicked on backdrop
Now,The lightbox interface will exit when the user clicks anywhere on
the image backdrop, which is convenient

Bug: 56402
Change-Id: I261976c81b86bf029412dff2993ee7b8c6d347e1
2014-02-02 16:23:25 +05:30
Gergő Tisza e0edec21b2 Move providers into their own subdirectory
Also refactor MultimediaViewer.php a bit to get rid of all the globals.

Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/123
Change-Id: Ieca4263ecc7652dc6bc36db63b99d3813c4653e4
2014-02-01 03:49:30 +00:00
jenkins-bot 1ae5cc10f7 Merge "Fix globalusage link" 2014-01-31 22:41:12 +00:00
jenkins-bot 5d7f86bc86 Merge "Place the metadata correctly before opening the lightbox" 2014-01-31 20:53:51 +00:00
Gergő Tisza 416f04bf3b Fix globalusage link
Change-Id: Iec3aeef2e807fbc65212dbcb156ae5d9bd39bb9c
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/44
2014-01-31 18:46:20 +00:00
Gilles Dubuc b9eecfed28 Place the metadata correctly before opening the lightbox
The issue was happening because the metadata div
was placed without waiting for dom load. Also, the code
ignored the fact that the window size might change
between page load and when the lightbox is open.

Change-Id: Ib44720a7f989803b3f59aebcd33e94f610f51325
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/141
2014-01-31 11:35:50 +01:00
Gilles Dubuc 5d47d1da3d Fix the "view all uses" link when there are both local and global results
The code was incorrectly adding the link to the first section
no matter what. This wasn't caught by the existing assertions,
so these are being improved as well.

Change-Id: I4dcbf44b504bd4cb875b4058fe5604f2a3c871b7
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/44
2014-01-31 09:30:26 +01:00
Gilles Dubuc ec29c88a6e Swap position of caption and description
The design requested that the caption is displayed above the
description, not below it.

Change-Id: Ie4bd10e04b65aeaa4e367c59d3ddef790bee1e2b
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/120
2014-01-31 04:04:59 +00:00
Gilles Dubuc 8bd1786ead Revert "Replace $.fn.msg calls by mw.message"
This reverts commit 1804f98ee7.

Turned out to be a caching issue, $.fn.msg() works fine

Change-Id: I087bf5cc0bbe89fdc80c64c015218a5ff9a24ee7
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/157
2014-01-30 14:11:23 +01:00
Gilles Dubuc 1804f98ee7 Replace $.fn.msg calls by mw.message
$.fn.msg breaks on beta for an unknown reason
Switching to mw.message which is used elsewhere in mmv

Change-Id: Id569df019c03b2f11fb513fcd3ed9ffc6eac7e91
2014-01-30 13:46:49 +01:00
Gilles Dubuc 30563de71d Add file usage data to MMV metadata panel
Interface code is its own class which does not depend on the main
interface class it can be unit tested (and eventually moved into its
own file to make browsing the code easier). IMO we should aim to
eventually break up the interface into similar classes (with a simple
init/empty/set interface + custom events where it makes sense).

Also, sneak-introducing LESS!

API usage could be more effective (globalusage is a separate API call;
it needn't be), but we will have to rewrite that part soon anyway, so
it should pass for now.

Bug: 60087
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/44
Change-Id: Ibe5c323cdeab4a378316925f0c3efb3dc7ef5997
2014-01-30 13:03:28 +01:00
Aaron Arcos f7925a1a4f Refactor image load code, add unit tests.
The code to load and set the image was semi-duplicated and
scattered in various places. This was the source of defects
as this code is called asynchronously and was hard to debug.
This change attemps ot consolidate all the image load logic
in one place. It also adds sorely needed unit tests.

Change-Id: I92eb1c48e2ff0808134e56b4b150e22254eb2d6e
2014-01-30 08:51:15 +01:00
Gilles Dubuc 98e03d31c8 Test metadata visibility in fullscreen mode
Add metadata visibility logic to the test
Convert the code to CSS since writing the test made me
realise that the current JS was superfluous

Change-Id: I80c2f1860cc021e9bdf09345647b288de746f1e3
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/140
2014-01-30 08:39:55 +01:00
Gilles Dubuc 02897fda9c Chevron/metadata UI behavior improvements
When the multimedia panel is closed, the chevron
points upwards, otherwise it points downwards
Pressing the up and down arrows on the keyboard
opens and closes the metadata panel

Change-Id: I7dd31f3cc3d90f9342845faea2c6cfea3b40e232
2014-01-30 02:52:53 +00:00
Mark Holmquist a86a6d5b9e Fix resize engine for fullscreen
This sorta has a few other miscellaneous fixes in it, but it works!

There are maybe still funky behaviours left. Test it?

Also refactor some bits, so we aren't accessing mw.mediaViewer in the
interface code.

Change-Id: I69db8e7b4ff5f994ba706fd4965688f3c26859f4
2014-01-29 11:50:22 +01:00
jenkins-bot d246d7709a Merge "Simple test for enter/exiting fullscreen mode" 2014-01-28 10:21:14 +00:00
Aaron Arcos 7c87033235 Request maximum image resolution in the API call.
After checking all the code paths (phew !), it seems
this simple change takes care of the resolution issue
that surfaces mainly in iOS devices (see b/60388).

Bug: 60388
Change-Id: I867dd18f782126fb71eb52ec637a2b90b910050d
2014-01-27 17:17:32 -08:00
Gilles Dubuc 6803daf3a6 Simple test for enter/exiting fullscreen mode
While writing the test I spotted a bug and fixed it

Change-Id: I781c67752781960e4be88520f53163756fc11dab
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/140
2014-01-27 17:54:03 +01:00
theopolisme b770e02d48 Enable fullscreening with jquery.fullscreen
Depends on I58138afa05c43f5a24e74fa3a30a658428c39ce0
(core patch)

Change-Id: Ib972d453bdf8172439bf6195985fcf7e248b2b8a
2014-01-27 14:14:36 +01:00
Mark Holmquist 5b03c39c72 Move models to their own modules
Change-Id: Ib3d32496bfbc174dc136a269abf0b66cf0ae475d
2014-01-24 11:41:05 -08:00
Mark Holmquist 5e4a544133 Moving things around for module renames
This is a big change, but should change nothing except the sizes of some
files and where they all are.

There are no more ext.multimediaViewer strings ANYWHERE, so let's keep
it that way. :)

Change-Id: Ic0892f5894700938bfa01f3f9bc8e5ab8276eb72
2014-01-24 09:21:16 -08:00