Commit graph

122 commits

Author SHA1 Message Date
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 fe846f3063 Merge "Fixes bug where next/prev would exit fullscreen mode" 2014-01-28 22:39:29 +00: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
jenkins-bot 567039c14e Merge "Fix bug that would cause the image to stay small" 2014-01-27 18:44:58 +00:00
Gilles Dubuc 2d3287e6bf Fixes bug where next/prev would exit fullscreen mode
Next/prev caused an attach() call which in turn
replaced the lightbox elements with themselves
causing the browser to exit fullscreen mode
because the full screened element was shortly
removed from the DOM (to be replaced by the same content),

Unfortunately this cannot be covered by a test case
because the screen would have to truly go into fullscreen
mode for the bug to happen. Having QUnit go fullscreen
seems unreasonable both for local testing (annoying)
and automated testing (could fail  to really fo fullscreen
because user confirmation is requested by the browser).

Change-Id: I57a2668179d6749188d7b5a3efcd06216b7747a9
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/139
2014-01-27 18:12:09 +01: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 5e98e3bcd6 Fix bug that would cause the image to stay small
When opening the lightbox, the image might stay small
because of a race condition. This is fixed using a
deferred object.

Change-Id: I4e93c7d26da47e5177abeb1dac841bf6c25a9022
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/138
2014-01-27 10:21:38 +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
Aaron Arcos f643430373 Fix to streching image b/60173.
It seems the problem was iOS specific. In retina displays the devicePixelRatio
turns out to be 2. This was making the images twice as wide. This was introduced
as a way to fix the resolution problem with some Apple devices, I suppose? Since this is not
fixing the problem I am removing it for the moment. Fixing the resolution issue implies
more changes that will be addressed in another iteration.

Bug: 60173
Change-Id: Iaff2aa6ba13ae85f905ab6d1569572881d8b5990
2014-01-23 16:16:13 -08:00
Mark Holmquist 64c1cc2976 Fix up jsduck docs
Documentation shouldn't be this hard :P

Change-Id: I758ec6c5b3e0ba389dbb837470fa6ceea07fa67d
2014-01-23 18:31:12 +00:00
jenkins-bot d245703241 Merge "A bunch of description fixes" 2014-01-22 23:51:50 +00:00
Mark Holmquist 22d2a69979 A bunch of description fixes
* Move description and caption to both be in the bottom left
* Make empty description grey and italic
* Fix problem where description was sometimes appended twice
* Move description UI stuff into a separate file, and make it more MVCy
* Tests for description UI stuff
* General framework, to an extent, for UI classes

Change-Id: Ibc8c576cd8a41c2e3cf7e13f1b9e093384fb4655
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/120
2014-01-22 14:46:39 -08:00
jenkins-bot 7f67c0934a Merge "Add 'Location:' to the location message" 2014-01-22 17:13:52 +00:00
Gergő Tisza fed238fcd6 Create model & providers for file usage information
Bug: 60087
Change-Id: I0e72c1e4590714e92a365f9741633221af5b0553
2014-01-21 18:04:51 -08:00
Mark Holmquist 47cad0e607 Add 'Location:' to the location message
Actually it's a totally new message, but still.

Change-Id: I5c02b9ec59bd0c8e455aae71936625a1bae48700
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/121
2014-01-21 17:35:02 -08:00
Mark Holmquist 34047e3ba3 Fix jsduck warnings
Change-Id: I91da4956c6635088a3763c2cd79d0e685bbaf859
2014-01-21 16:28:05 -08:00
Mark Holmquist 4ce1d0d206 Add main class to jsduck
Change-Id: I774303ce4f756637bea3821ae2b2ff724351b3bb
2014-01-21 13:48:10 -08:00
Mark Holmquist bdef21d593 Adding first pass at jsduck docs
Interface, data model, and image all documented.

Change-Id: Id64da283c4bbeaae930103233f9e798b5a9db51b
2014-01-21 11:44:58 -08:00
Mark Holmquist f59962e4a3 Add location information to metadata div
Adds location in a human readable format, plus a link to geohack because
that's how we roll.

See https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/42

+more tests

Change-Id: Ie8c9b8a0caf0f13ad5341a84173381ce49da97f6
2014-01-17 17:22:44 -08:00
Mark Holmquist 6363b90bd8 Add caption to the interface in place of description
Also include the description on the right side of the page, but the caption
generally is more relevant and so should have the place of honour.

+tests

Change-Id: I512b3dd99207878233d501135b4dda0d0bd9cdd6
2014-01-17 16:37:56 -08:00
jenkins-bot b9dc9b1c2d Merge "Refactor animation, plus test" 2014-01-17 17:47:29 +00:00
jenkins-bot 32c57f38de Merge "Display the favicon of the foreign file repo when available" 2014-01-17 17:30:59 +00:00
Gilles Dubuc ddff7de9da Display the favicon of the foreign file repo when available
The foreign repo link in the details area will display the favicon
of the foreign repo when available.

Change-Id: Id946a80beeabcd526f16872efaedbdd291444d2d
Mingle: Multimedia card #107
2014-01-17 14:30:25 +01:00
apsdehal f992a5f9f0 Reduce font-size for description in lightbox
Bug: 56445
Change-Id: I0d553d5089768df597a48fa0c696b5a8d29d34c7
2014-01-17 01:49:19 +00:00
jenkins-bot be163c9bad Merge "Added test if Lightbox is attached" 2014-01-17 01:46:09 +00:00
jenkins-bot fa63bdee3f Merge "Use JSONP for gender query to avoid cross-domain issues" 2014-01-17 01:44:56 +00:00
Mark Holmquist 9b28edb1be Refactor animation, plus test
Change-Id: I688c573b7fbd136782177f0b690d3aab994c6d10
2014-01-16 17:33:15 -08:00
jenkins-bot 29b1efe9b8 Merge "Clicking on the chevron should open/close the details" 2014-01-16 21:53:53 +00:00
apsdehal 08957fa129 Added test if Lightbox is attached
Currently LIP.resizeCallBack was called even when lightbox was not appended, so I added a test to check the same.

Change-Id: Ie3a40a5d98f12a95b1d54e130896f67b71e927fa
2014-01-16 21:12:02 +05:30
jenkins-bot 380e78ab0c Merge "Fix resize functions" 2014-01-15 22:24:45 +00:00
Gilles Dubuc c0bf3591f8 Clicking on the chevron should open/close the details
Change-Id: Ica8c5ae8c8f34374e946246878f3c8609d263a12
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/80
2014-01-15 09:21:58 +01:00
Mark Holmquist 0b46a65794 Fix resize functions
Change-Id: I074a704e76c5c42890d65d8235854a998f3e4af9
2014-01-14 21:39:22 -08:00
Gergő Tisza d24ba2d7c8 Use JSONP for gender query to avoid cross-domain issues
Querying the uploader's gender defaults to CORS, which is disallowed
for non-WMF sites and spams the javascript console with XHR errors.
JSONP works in such cases, and has no disadvantages I can think of.

Change-Id: I9b13210e03059a46407f119045540665c48585ad
2014-01-14 21:49:28 +00:00
Gilles Dubuc cbf6bd7767 Make sure that the close button is always visible
Change-Id: Ib1bf72d898220442992c5a30d90a9a683d00d110
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/81
2014-01-14 16:42:52 +01:00
Mark Holmquist 89417163a9 Refactor to a data model
Image information and repo information are now both stored somewhere
else entirely, so we don't need to keep accessing weird API return
values to sort things out. fetchImageInfo now uses those classes to
an extent, and we now cache thumbnail URLs for different sizes.

Change-Id: Ife8293c86683ea914b1a5a60000584b501d92e55
2014-01-12 12:50:34 -08:00
jenkins-bot 1061cda70e Merge "Move the arrows and the close/fullscreen button" 2014-01-10 12:19:16 +00:00
Mark Holmquist ae50fad5f5 Use promises
Uses promises in the entirety of fetchImageInfo. Also removes the old
fetchRepoInfo method which was unused (basically) anyway.

Change-Id: Ie7f9a27822ecb893b99dbd755c6199769f2e6784
2014-01-09 16:52:18 -08:00
jenkins-bot cc8977de31 Merge "Fix metadata loading" 2014-01-09 18:33:32 +00:00
Gilles Dubuc 380612c4bf Only scroll to the top when opening the lightbox
Not when going prev/next.
The saved position feature was probably broken as well if you
happened to press prev/next.
This was my mistake for not noticing that attach() runs on
prev/next.

Bug: 59861
Change-Id: Ic6ff4b15a54178fb5d38640317650f5676293083
2014-01-09 18:11:20 +01:00
Gergő Tisza a91058adc4 Fix metadata loading
fetchImageInfo() was used to load different property sets,
but had a single cache, so sometimes the results with less properties
overwrote the ones with more.

This is a dirty hack to deal with that. I will revisit once we
use promises.

Bug: 59817
Change-Id: I4f375bcc4e6fcfdb3e3fe7a30fc90a8fd44164c3
2014-01-09 02:30:09 +00:00
Mark Holmquist 5949748ed6 Load images normally
Removes the spinner, loads images line-by-line. Supposedly more
expected for most users.

Change-Id: Ia5fba4c8d8af681c0a95e43d34014b07e33941c4
2014-01-08 23:42:06 +00:00
jenkins-bot 666f2b3af3 Merge "Make the behavior of the lightbox more consistent with scroll" 2014-01-08 19:36:16 +00:00