Commit graph

980 commits

Author SHA1 Message Date
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
Mark Holmquist da86c5f750 Version our EL profiling
This is just a clever way of marking messages as being useful again -
this way I don't need to go through the hassle of deleting old data.

Change-Id: I6a0574eaae063014340484ffd2552f8118abb939
2014-01-08 09:35:35 -08:00
jenkins-bot 65db71572c Merge "Fix painful bug in eventlogging code" 2014-01-08 17:18:28 +00:00
Gilles Dubuc 26735d8bd1 Make the behavior of the lightbox more consistent with scroll
Makes sure that the advanced description is out of view when
the lightbox opens.
Remembers the scrollTop position that was set when the lightbox
opens, in order to restore it when it closes.

Change-Id: I534f7d718528d1e5a4911c68a524eb96cadeae90
2014-01-08 17:05:05 +01:00
Pau Giner 4c87c93d91 Use chevron for panel opening affordance
replaces the drag image with a chevron and adds CSS classes to
adjust the opacity changes.

Change-Id: I689c7ff3c952f1ec2b8b16258dc44b1ad095f4fa
2014-01-08 14:41:44 +01:00
Gilles Dubuc f3fd143c8a Move the arrows and the close/fullscreen button
Looks drastic at first, but grows on you.
I based this on an extreme, the firefox inner scrollbar.
Which is huge when hovered.
I kind of wish the close button was a bit bigger, though.

Change-Id: I2f47280c4e7c4bff299149de24741e3381f0b5e9
2014-01-08 11:33:56 +01:00
Mark Holmquist 3547f17960 Fix painful bug in eventlogging code
Change-Id: I3026aadcb28e7a8325137214512163558cccf2db
2014-01-07 17:27:28 -08:00
jenkins-bot 055ccb8c27 Merge "Styling fixes for media panel" 2014-01-07 19:37:44 +00:00
Pau Giner 797a2d90e0 Styling fixes for media panel
Color and position adjustments for panel elements:
* Background
* Line separation
* License text

Change-Id: Ib8c5557503ec6a28b9761220a251cf4ac4742182
2014-01-07 20:05:29 +01:00
jenkins-bot 5a58b12b7b Merge "Added No description message" 2014-01-07 16:00:21 +00:00
Mark Holmquist 896a7b4c40 Animate the metadata div to show the user it's there
"Hey! Scroll down! Yeah, you!"

Also fixes the previous arrow button, which got disappeared at some point

Bug: 58431
Change-Id: I98676ee921dc1d3b5780046eabec7415c05f8f4f
2014-01-06 18:29:37 -08:00
Mark Holmquist 27e2db75f9 Make sure the post-image div is always the same height
Otherwise it flickers and is weird and stuff.

Bug: 58431
Change-Id: Ic7d7d0bededede9b3cedb4ebd8efdcfae2209127
2014-01-06 17:24:45 -08:00
Mark Holmquist c17be3b124 Fixed positioning for the image
Fix, so we can work on animating the metadata div next.

Bug: 58431
Change-Id: Ic62711f657daaa36bb82e32e98a0abee421864fc
2014-01-06 17:14:51 -08:00
jenkins-bot 85a0474997 Merge "Bigger click targets for next and previous" 2014-01-06 23:38:02 +00:00
jenkins-bot e1efb5d16e Merge "Make the imageinfo fetch more generic" 2014-01-06 23:32:22 +00:00
jenkins-bot 1b94099d7f Merge "Fix issues pointed out by aarcos" 2014-01-06 23:07:39 +00:00
Mark Holmquist 7ec7172964 Make the imageinfo fetch more generic
Also use it in the resize method

Change-Id: I0ee2fcf7daf4a2492981c8311f3a3fd7054d6ae2
2014-01-06 15:07:03 -08:00
Mark Holmquist 85d08e1d27 Fix issues pointed out by aarcos
See https://gerrit.wikimedia.org/r/#/c/95282/10/resources/ext.multimediaViewer/ext.multimediaViewer.js

A few issues with code being in two places; should probably refactor but
would prefer to get out a fix and refactor a little later.

Change-Id: Id74a01e177aeb09fe34416e7fd14759df58fda32
2014-01-06 15:02:51 -08:00
apsdehal f9ee5ec0a0 Added No description message
'No description available' message has been added when description for the
given file is not available.

Bug: 56446
Change-Id: Ie239e5cd0d1b645ed149ea1ecc80197b0e84bc34
2014-01-07 01:57:08 +05:30
Mark Holmquist f2f36376cf Fix image bucketing resize engine
targetWidth was switched to even if the image was way smaller than it,
fixed by only changing to it if the image is too big (too-small images
should never be stretched anyway).

Change-Id: I9e3e6a358e53dbed988b730205a8afec1dbf3483
2014-01-06 11:32:40 -08:00
Mark Holmquist e9a1c8c102 Bigger click targets for next and previous
Change-Id: Ic2bd5b80092ee34133ae6b594ac25c57ab562b03
2013-12-31 13:18:22 -08:00
Pau Giner 4c17403070 Updated icons
Icons have been updated and CSS adjusted for close and next/prev arrows.

Change-Id: I335914685de4046f3ab76ea44a44b1b02222f831
2013-12-31 09:57:58 -08:00
jenkins-bot c0fef99d23 Merge "Move 'x' button, shift arrows away from screen edges" 2013-12-30 22:03:52 +00:00
Mark Holmquist 0000664d80 Add tests for the link construction code
Always a good plan.

Also refactored a little bit, but not too much. Juuuust right.

Bug: 57842
Change-Id: I787c3770e41474edafb2fd02e01fec2c7c2b5ed6
2013-12-30 21:51:35 +00:00
Mark Holmquist f8d9a3d522 Move 'x' button, shift arrows away from screen edges
Bug: 58653
Change-Id: I290bca497a56240890d64b234e960d04bd4a001c
2013-12-30 12:36:45 -08:00
jenkins-bot fdc0c0c860 Merge "Added 'Learn more' message" 2013-12-30 18:20:27 +00:00
jenkins-bot 3d1dfe6b7d Merge "Introduce image size bucketing" 2013-12-30 18:19:49 +00:00
apsdehal fb4367f24c Added 'Learn more' message
Message was added to replace 'multimediaviewer-repository' when the file was local

Bug: 56121
Change-Id: I2c6cef2cb21f88159dc56ca7c94c4be21e553db9
2013-12-30 16:54:40 +05:30
jenkins-bot feedc430d5 Merge "Fixes for the scroll-up affordance" 2013-12-29 15:05:24 +00:00
Mark Holmquist f96d5498ca Introduce image size bucketing
See the conversation on mediawiki.org:
http://ur1.ca/g14jv

We're trying this out as one option in combatting slow thumbnail load
times. It may or may not work very well.

Bug: 56695
Change-Id: If1211fdff87c0782c7355d654415bfd29d63d84a
2013-12-27 13:39:31 -08:00
jenkins-bot ea7ba8faaf Merge "Include license in title attribute of link in FileUsageDialog" 2013-12-20 00:56:39 +00:00
theopolisme 343e82cc8c Include license in title attribute of link in FileUsageDialog
The title attribute of the link that wraps the image
in "Use this file on another website" will be set to
the license and/or author of the image, if available.

Bug: 56588
Change-Id: I5f504964ec3a63e4927385cb68e90856eb4cfe37
2013-12-19 16:00:22 -06:00
Mark Holmquist ebf8da9514 Fix remote DB repos
Apparently they don't have server members, they only have descBaseUrl.
Annoying inconsistencies are annoying.

Bug: 57842
Change-Id: I56cbb6b8ba29cc03105942816f6fa0bad0d126f7
2013-12-18 13:04:34 -08:00
jenkins-bot 4752404338 Merge "Extend the post-image div height for the drag affordance" 2013-12-18 18:42:51 +00:00
Ebrahim Byagowi 4f20e53fdc Make broken middle click during refactor work again
Change-Id: Ie4c40accd1ac21c548d4ab899ffdd6c8f95af0a5
2013-12-16 18:31:02 +00:00
Aaron Arcos ffc8f4948d Add smoke test to class mw.LightboxInterface.
- Moved tests that were meant for LightboxInterface objects.
  - Fixed space naming issues.

Change-Id: Ib83904eab5fa542330ea559d420efa5f1de8c3eb
2013-12-13 10:39:13 -08:00
Mark Holmquist e68e60f464 Fix another event handler bug
No need to register the event until the interface actually loads...

Change-Id: I1bddb5478410e1868195d63762d913a07e50c0ed
2013-12-12 15:30:11 -08:00
Mark Holmquist 76532a156a Fixes for the scroll-up affordance
Fix click listener, add cursor: move

Change-Id: I1c51702d4c7dd63d64026747c5c75d2dfff14c58
2013-12-10 15:22:40 -08:00
Mark Holmquist 32796a3578 Extend the post-image div height for the drag affordance
Forgot to update the size here, so there's a weird break in the div
right now.

Change-Id: Iea46de723a2ea9a620a07a150560901c81ea9620
2013-12-10 15:02:22 -08:00
Mark Holmquist 4e29e6cd01 Fix fileLink initialisation
I guess this got torn out along the way, but I'm pretty sure this is
what I meant to do - initialize the image object with the thumbnail
URL and then replace it later.

+tests for the failure.

Change-Id: I20ef4e87c6b4b6706ad586f2aa5796736895c780
2013-12-10 11:56:54 -08:00
jenkins-bot 2cc5279e06 Merge "Move clearInterface things to mw.LightboxInterface" 2013-12-10 01:41:18 +00:00
jenkins-bot 8695964ea4 Merge "Add performance logging" 2013-12-10 01:07:39 +00:00
Mark Holmquist f144a0a403 Add performance logging
Change-Id: If6e3aec4b2547fa9768eaaf5387729ed2b427ab1
2013-12-09 17:06:01 -08:00
Mark Holmquist 1411110b3d Move clearInterface things to mw.LightboxInterface
Also fixes a bug where we didn't clear our arrow key listeners, and VE
would sometimes see lightbox loads accidentally.

+tests for .empty()

Bug: 58107
Change-Id: Ica8326891b2da1f94966dbe72c28e878934ca64f
2013-12-09 16:33:34 -08:00
Aaron Arcos c38fa2fbfe Fix resize listener leak problem.
Third try, merged latest changes and added a test.
Run loading test against a wikipedia.org image.

Change-Id: I4e5a137e0f6dbedc45ec2c8393590919e23a26be
2013-12-09 20:45:47 +00:00
vldandrew 1d667263f0 Corrected page link and problems if the link is to a remote server
Additionally some other problems were corrected.

Bug: 56787
Change-Id: I01e7dc9938b52a8f809740e582d61b1e0131916d
2013-12-05 22:06:27 +02:00
Mark Holmquist 676d1ace46 Remove oojs hack
Unnecessary now that Ifea6405c2 has landed in core 

Change-Id: I4ad8238410c01308e37aa9b61cb4e8c84817801b
2013-12-05 02:47:09 +00:00
MatmaRex 516d0168c3 File usage dialog: Only reselect on focus, not on every click
Makes it possible to view the entire content of the box without copying
the text somewhere else, or to only copy a part of the text.

Change-Id: I8ed8beaadf7e515e57ee4f11bdaef9672c980f5b
2013-12-05 00:26:28 +00:00
Aaron Arcos add9a9b435 Add a very simple resize test
Add test to verify that in case of a resize event no image
replacement takes place when api data is empty/undefined.

Change-Id: I2a880ce4b2e6c158763b1473f6a9f751922187b0
2013-12-03 23:20:51 +00:00
jenkins-bot b704f294f8 Merge "Add tests to MultimediaViewer" 2013-12-02 23:27:42 +00:00
Aaron Arcos bed5c07039 Add tests to MultimediaViewer
These are just smoke tests. I will add more in coming versions of this change.
Consolidated various cases in one tests. Added tests to validate for legit clicks.

Based on Idfbec829399ff6969cd01be3c13a8ed7a66a1fef

Change-Id: I366c7af9a5cf43361d8293183c9da117bc5d4971
2013-12-02 15:19:12 -08:00
jenkins-bot 07a937571d Merge "jshint config and fixes, FINALLY" 2013-12-02 22:00:05 +00:00
Mark Holmquist 013752ccb2 Fix a bloody silly file usage dialog bug
Return false from the click handler so it doesn't fire a popstate event
because the link is to "#"

Change-Id: I08a49e1b664dc4e6b01c1f479209428578d36843
2013-12-02 13:11:26 -08:00
Mark Holmquist 198bf44c1a jshint config and fixes, FINALLY
Every patch we've submitted up until now has been magically very good
at jshint, because I'm appropriately OCD about it, but now we can actually
point at results.

Also we'll enable voting very soon.

Change-Id: I028fa78a47778c8a4050f6b77623c6bfdc4f9c5b
2013-12-02 12:50:34 -08:00
jenkins-bot fa70bdcb74 Merge "Auto-ellipsis for filename field Bug: 56113" 2013-11-30 19:00:40 +00:00
Yaroslav Melnychuk e632d32b65 Auto-ellipsis for filename field
Bug: 56113

Change-Id: I84e28fe8fefd90c46c2bd9d2d7a25c472d8f26d3
2013-11-30 20:53:42 +02:00
jenkins-bot a36622185f Merge "Prevent multiple "Use this file" windows" 2013-11-29 21:19:13 +00:00
theopolisme 464733af21 Prevent multiple "Use this file" windows
Bug: 56501
Change-Id: Ic86feacb881d3b559d32f33fba508121f8b9ec27
2013-11-29 14:36:21 -06:00
MatmaRex 1ed2804863 Replace weird .select() reimplementation
Browsers have had a .select() method on <input>s and <textarea>s
since the dawn of the web.

Change-Id: Ib35415115291086300494ef1c6cb3063cd6b8e94
2013-11-28 21:31:04 +00:00
jenkins-bot 3ed21410a6 Merge "Fixes the UI refactor" 2013-11-28 21:30:27 +00:00
vldandrew 53ef9ed86d Fixes the UI refactor
Id44fea9008adb391817250c2897693f45bead717 pushed a bunch of stuff into the
subclass of LightboxInterface, but forgot to change the calls to "this" in
the dialog function to be sane.

Bug: 57678
Change-Id: I998240411b0970d43d401f739b383c0289163760
2013-11-28 13:26:31 -08:00
MatmaRex d47778b501 Kill !Boolean( variable )
That's an impressive abomination. :)

Change-Id: I1e3d64add5921924050ad97bfe2b1e6f6b1d46b1
2013-11-28 22:07:32 +01:00
Mark Holmquist 85eb742277 Previous and next functionality!
Adds buttons on the side, disabled at the start and end of the list of
images, that let you browse through the images on the page!

Also arrow keys!

EXCITING!

Change-Id: Ie514cd4b16bdee8a384a89d4bd1d755a24c5cdb4
2013-11-26 21:10:16 +00:00
Mark Holmquist a4c0617b1f Push history state to support links to media viewer
Also listen for popState events so users can use their browser's back
functionality to close the lightbox or go backwards, etc.

Bug: 56469
Change-Id: Id44fea9008adb391817250c2897693f45bead717
2013-11-26 13:09:54 -08:00
Amir E. Aharoni 5141f71960 Fix images and related CSS for RTL wikis
Change-Id: I18ca1003a317f12ec658aef5ecd4779325407eae
2013-11-26 00:54:18 +02:00
Mark Holmquist 5aaf1e73fe Reorganize UI to be...way sexier.
There's just no other adjective for this, it is _super_ nice.

There may be refinements later as the designers get things together.

Bug: 56499
Change-Id: I200684a19c190444587f520595186e9ae5afbea6
2013-11-21 09:47:05 -08:00
jenkins-bot 2d2dc0353b Merge "Preserve space for the description even if it is not present" 2013-11-20 19:16:59 +00:00
Gergő Tisza 15108af3b1 Preserve space for the description even if it is not present
Bug: 56494
Change-Id: I22daa18cd5d697049cc1cef2f15c8de32e0746e3
2013-11-20 11:10:21 +00:00
Mark Holmquist 24a8092a2f Measure sitename clicks too
Change-Id: Iad105fbc9d257db895660d7afac77294e7907f7a
2013-11-18 22:04:10 +00:00
Mark Holmquist 95a88d43d1 Use oojs to extend multilightbox objects
Simple now, only really aliases the classes, but we'll use them to replace
the hooking infrastructure in the near future.

Change-Id: I963a4887a717c9bb064e30fa5fb86bbccb7186a1
2013-11-18 13:50:02 -08:00
tgr 5d419682f5 Use moment.js for date formatting
Add moment.js ( http://momentjs.com/ ) as a ResourceLoader module
and use it to parse and format date strings. Moment.js seems to be
the least bad option right now; eventually it should be replaced
by i18n functionality in core Javascript modules.

Change-Id: I332655778be3d694781b83fa5dea1e59770d8866
2013-11-15 14:53:45 +00:00
Mark Holmquist 96c4b06858 Rewrite of UI initialization
Split it into a bunch of different functions.

No helper functions because apparently most of my UI code is pretty
unique and not refactorable, or at least not easily.

Change-Id: I8209fd91ec6788c26b8dea26d97c26f8231ddbbf
2013-11-14 21:38:51 +00:00
Mark Holmquist c0c9e7037f ResourceLoader consistency file moves
Keep modules in separate dirs, move images to their module dirs, and fix
up the module declarations so they still work.

Also moved viewer.svg into the root.

Bug: 56421
Change-Id: Ia84ddfd3b91c784c42d9ba243c5cfd46354f139f
2013-11-14 13:38:40 -08:00