Commit graph

269 commits

Author SHA1 Message Date
Gergő Tisza c01cb55f4d Make optout link more AJAXy
Make it grey, unclickable and change text while waiting for the
AJAX request.

Change-Id: Ic5c2923944658d5be04217cdfe62e1d8608a478f
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/723
2014-06-19 10:42:04 +02:00
Gergő Tisza c594a5610a Make max-height computation more stable
Instead of setting the parent's height as max height of the
<img> element, find the first parent which has a non-automatic
height (that would be .mw-mmv-image-wrapper).

With the old structure, the height of the parent element could
be determined by the height of the image, which would then be
written back into the max-height of the image, messing up the
aspect ratio. I did not see this in the wild, but it was easy
to reproduce by changing the timing of the resize handler (in
particular, I tried to call the resize handler before loading
the new resolution, to make the UI more responsive, and ran
into this problem). This cannot happen anymore now.

This also fix a bug on some browsers (IE 10, maybe iOS Safari)
where the size of the image could be slightly larger than the
available space, and the bottom of the image was obscured by
the metadata panel. I am still not sure how exactly that
happened, but it was related to the <img> parents with automatic
heights having incorrect height. After making sure the <img>
has a max-height derived from an element with non-automatic
height, I cannot reproduce the bug on IE 10 anymore.

Change-Id: I193aefc42e6d6072717643659a9e4c0c8b7c7e93
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/698
Bug: 66244
2014-06-17 21:20:00 +00:00
jenkins-bot a4e2dc6962 Merge "Make MediaViewer ignore images which are in 'noviewer' class" 2014-06-13 23:34:23 +00:00
Gergő Tisza 92ea8edbc5 Make MediaViewer ignore images which are in 'noviewer' class
This includes images where the <img> element has that class
(achievable with [[File:Foo.png|class=noviewer]]) and also those
where some parent element has it.

Change-Id: I666be026828ea9ecb6e8c93d3f5ad1e3c190f81e
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/511
2014-06-13 23:32:32 +00:00
Mark Holmquist ea610f8256 Tooltips for loads of things
Change-Id: I993bf60909024453a14de85af6239bded02eb8a6
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/546
2014-06-12 12:27:04 -07:00
jenkins-bot 6e5a1cb185 Merge "Add opt-out/opt-back link" 2014-06-11 22:47:29 +00:00
jenkins-bot b53f7b2e60 Merge "Add functionality to check & set opt-in flag from code, also for anons" 2014-06-11 21:48:13 +00:00
Gergő Tisza 3cebfe32bc Use Repo.isCommons() for deciding whether an image is from Commons
Change-Id: Id6b523d218a9abc9e886da4000962c6523d25dc0
2014-06-11 21:14:14 +00:00
jenkins-bot 114890cc43 Merge "Add "zoom" but really just view-file" 2014-06-11 02:38:52 +00:00
Gergő Tisza 5bd730894d Add opt-out/opt-back link
Change-Id: I998b7ad3ecb0b7e815f9ff0d5f871267b91c109d
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/703
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/704
2014-06-11 02:24:17 +00:00
Gergő Tisza e8c7c537a2 Add functionality to check & set opt-in flag from code, also for anons
Adds anew mmv.Config class to centralize localStorage handling issues,
adds AJAX option setting, adds getting/setting opt-in flag from
localstorage.

Change-Id: I25762ccb8c9bccd694c30a6f1c5d3c8611a5ecbc
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/703
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/704
2014-06-11 01:11:12 +00:00
jenkins-bot 9ec13a97cd Merge "Show Commons link to logged out users" 2014-06-10 22:19:17 +00:00
Mark Holmquist b2039ad7eb Add "zoom" but really just view-file
The zoom icon should get replaced Real Soon Now - looking at you, pginer

Change-Id: I88c1d4fb95e034e0f2fe618eb7309754ea1c283e
2014-06-10 15:07:12 -07:00
jenkins-bot 4ff614cf1b Merge "Toggle metadata panel on up/down keypress" 2014-06-10 21:31:22 +00:00
Gergő Tisza 4f54b81c03 Toggle metadata panel on up/down keypress
Previously 'up' brought the panel up, and 'down' brought it down,
which might conflict with expectations on scrolling. Up/down keys
now move the metadata panel to the opposite state, no matter what
the current state was.

Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/697
Change-Id: I53079d81042afb86354bf44e9dfd662adf1576cb
2014-06-10 20:10:42 +00:00
Gergő Tisza 92e68e4013 Show Commons link to logged out users
Change-Id: I899cb36a5d25342325266b68a3fd8058f3129e78
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/429
2014-06-10 00:30:14 +00:00
Mark Holmquist fc02ce0dc8 Use original URL when setting download for original
Messed with the download tests a bit too.

Change-Id: I6b7f6b5eb8642db1a81aff05663636813a21fe06
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/470
2014-06-09 18:30:07 +00:00
Gergő Tisza f9d06141f4 Make JSHint enforce ES3 compatibility
Also fix ES3 compatibility errors.
Upstreamed issue with sinon.stub().throws():
https://github.com/cjohansen/Sinon.JS/issues/488

Change-Id: I93b0d575484089b293d94ea860d245def4646cb4
2014-05-28 22:58:33 +00:00
Gilles Dubuc 7161ac3cc4 Record sampling factor in EventLogging calls.
Change-Id: I3966bf5dfe9ed607bda8e87f3b1924de37716dcf
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/619
2014-05-22 09:30:37 +02:00
jenkins-bot 1d897bcb17 Merge "Highlight chevron when the wrong direction is pressed" 2014-05-22 00:05:11 +00:00
Gergő Tisza 1ad28140c3 Fix text selection behavior in reuse panel
The jQuery update broke onDomEvent('focus') in OOjs UI. This is a
workaround which fixes the issue by binding on the input/textarea
elements directly, instead of their parents.

This introduces the annoying side effect that the metadata panel jumps
a bit when the embed HTML text is selected. (Just for that one, yes.
Weird.) Still better for now than no selection at all.

Change-Id: Ifa4c0600d7b4c0c64487596cbcabd5b4f4a12a19
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/638
2014-05-21 22:00:46 +00:00
Timo Tijhof 35ec99eb50 Use example.{com,net,org} instead of proprietary domains
http://foo.com/bar was making a request to some random server
responding with HTTP 500 Internal Server Error.

Change-Id: I17f2e0908b849455db5ab1790b15c2344337c24b
2014-05-20 16:34:54 +02:00
Gilles Dubuc c7fe85154b Highlight chevron when the wrong direction is pressed
Change-Id: I0d43c58a16fa805611f9fdef329b5ab6a32ed651
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/554
2014-05-19 11:01:31 +02:00
jenkins-bot 32c09c5786 Merge "Wait some more for the close button to appear" 2014-05-17 00:07:11 +00:00
Gergő Tisza 171b13149e Add sampling to unsampled event logging
Has issues:
- needs dependency injection
- needs to be DRY
- should not load mw.eventLogging when we are not in sample

Due to urgency this will be fixed in another commit.

Change-Id: I0df067a619109a7c945f82c8d33fa2e621217f0b
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/619
2014-05-16 18:43:55 +00:00
Gilles Dubuc eedc57c1c9 Wait some more for the close button to appear
During the warmup steps Media Viewer might take some time
to open, which might be why the close button won't appear in
less than 5 seconds

Change-Id: I3b17d46c3343f2b1ff33aaaf55faa4adb71cb218
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/618
2014-05-16 11:36:12 +02:00
jenkins-bot 44311cddd4 Merge "Revert "Minimal zoom implementation"." 2014-05-16 08:29:49 +00:00
jenkins-bot eecde58ff8 Merge "Add 1 pixel of tolerance to the basic test." 2014-05-15 20:42:52 +00:00
Gilles Dubuc c6411d3c6a Add 1 pixel of tolerance to the basic test.
This is the first failure that the E2E test is running into when being
run on IE9

Change-Id: I60fe8764196ecc60e2c365576349cf902a069ddb
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/577
2014-05-15 20:41:08 +00:00
Gergő Tisza ab7b339143 Revert "Minimal zoom implementation".
Per the design meeting, we are abandoning this feature for now - there is not enough time to ensure it is of acceptable quality.

This reverts commit 4329d453ec.

Change-Id: I27c113ffecb617d442557163722ea5181ed0b2f4
2014-05-15 20:40:41 +00:00
Gergő Tisza d74b4dce4f Fix failing focus tests
jQuery 1.9 changes how $.focus() calls are handled: instead of
directly calling the handlers, it just invokes the DOM element's
focus(), and leaves it to the browser's event handling to trigger
them. This can fail for several reasons (e.g. element is not
attached to document, element is already focused, browser bugs such
as http://bugs.jquery.com/ticket/13363 ), so we are using
triggerHandler('focus') instead, which calls the handlers directly
without simulating actual browser events. Since these are unit
tests verifying event handler attach/unattach behavior, not
acceptance tests verifying actual event handling behavior, that
should be okay.

Change-Id: I65ecda28ace4f380ad33d6212e12069e18001232
2014-05-15 19:20:47 +00:00
Gergő Tisza 4329d453ec Minimal zoom implementation
Just a link to the full-size file for now.

Since the link must be to a PNG/JPEG/GIF (so possibly a thumbnail),
and we want to cap the size, we might need to get the URL from the
API, but we need to open the new window right away to avoid popup
blockers, making this patch quite complicated.

Change-Id: I9ce9d2a2d27b75470eae2806d9f9ce2f95f4dac2
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/588
2014-05-15 01:04:23 +00:00
jenkins-bot eeb5f4bd38 Merge "Improve DurationLogger test code" 2014-05-14 19:35:52 +00:00
jenkins-bot 3353a3e1a2 Merge "Fix IE9 support" 2014-05-14 19:21:14 +00:00
Gilles Dubuc 8a4c062343 Improve DurationLogger test code
More dependency injection, cleaner sinon calls

Change-Id: I4b15a6aa9bca3b89f85ad15eed02e33c291b754d
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/571
2014-05-14 12:24:31 +02:00
Gilles Dubuc 7d5a82c571 Fix IE9 support
- Fix JS error on pushState
- Fix blur issue where blur(0px) filter would blur anyway
- Fix wrapper sizing issue where its size would be 0 when measured

Bug: 65225
Change-Id: If9279cd56f55f71f261ec54dda8228194988b9ae
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/597
2014-05-14 12:06:27 +02:00
Gergő Tisza 40b125565d Extract metadata panel scroll/log/animate logic into separate component
Change-Id: I2441d64c094a9bfbae7a4712ff4c78efa13a62a7
2014-05-13 18:57:38 +00:00
Gergő Tisza 8a118816a5 Do not log a metadata event when the user presses the wrong key
Do not log metadata-open when panel is already fully open and the
user presses the open key. (Same with close).

Also a completely unrelated code simplification.

Change-Id: I1f26b8669aa496d68b61d9a432430bf0864e8533
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/559
2014-05-12 21:29:12 +00:00
Gergő Tisza d964b3fd09 Fix url encoding in URL guesser
Change-Id: I99757913cd2fe5170db37c79a2d2986b12b5aa45
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/594
2014-05-09 22:44:57 +00:00
Gilles Dubuc 8a9f23dab7 Remove the threshold where a load is considered to be coming from the browser cache
We'll filter those out in SQL instead.

Change-Id: I2b7c019e20fa224480035b67c64b5666d21ba55c
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/563
2014-05-06 16:59:53 +00:00
jenkins-bot 9e0df0dd4c Merge "Refactor progressbar & blur handling" 2014-05-01 23:12:22 +00:00
Gergő Tisza fec24e02f7 Refactor progressbar & blur handling
This tries to fix a number of related issues:
* the blurred thumbnail was visible for a split-second sometimes
  when switching back to an already-loaded image. (Presumably when
  JS was sluggish enough to take more than 10 ms to execute.) We
  now check whether the promise is pending before showing a placeholder.
  (More generally, a lot of unnecessary logic was executed when paging
  through already loaded images, like displaying the placeholder, so
  this might make the UI a bit more responsive.)
* the blur could get stuck sometimes - I have seen this a few times,
  but have never been able to reproduce it, so I'm only guessing, but
  maybe the timing was really unfortunate, and we switched back less
  than 10 ms before loading finished. We now remove the blur on every
  branch, just to be sure.
* adding a progress handler to a promise might not have any immediate
  effect, so when switching to an image which was loading, the progress
  bar reacted too late. We now store the progress state per thumbnail
  so it is always available immediately.
* the progress would animate from 0 to its actual state whenever we
  navigated to the image. The change on paging is now instant; the
  progress bar only animates when we are looking at it.
* switching quickly back and forthe between a loaded and a loading
  image resulted in the loading image becoming unblurred. This seems
  fixed now, I'm not sure why. Maybe the "skip on non-pending promise"
  logic affects it somehow.

Also removes some unused things / renames some things which were
confusing, and makes an unrelated fix in the image provider, which kept
amassing fail handlers.

Change-Id: I580becff246f197ec1bc65e82acd422620e35578
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/489
2014-05-01 21:09:28 +00:00
Gergő Tisza 88f766bfc3 Reanimate metadata panel when viewer is reopened
Change-Id: I776a27358b2da17a35234aa8cb649a49df4a651d
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/548
2014-05-01 12:05:26 +02:00
Gilles Dubuc 5f7af0cede Catch exceptions raised by localStorage write operations
Also adds dependency injection to the metadata panel
for cleaner tests.

Change-Id: I3f062ff88c03ad3baca00461bff486a883776eb1
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/530
2014-05-01 12:00:31 +02:00
jenkins-bot 553a9f142d Merge "Disable JSONP cache breaking in jQuery" 2014-05-01 09:50:32 +00:00
Mark Holmquist 969c5bfda9 Add preferences link after "help"
Reused message from the top-right menu.

Change-Id: Id37712e332bf8fed56edaa9ae8f7e04a2a5a5f42
2014-04-30 22:49:09 +00:00
Gergő Tisza 7a4a8e90ad Disable JSONP cache breaking in jQuery
Change-Id: Ie3b80b0c2f8ce734c6d08418c7b19a7e24c2d5eb
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/547
2014-04-30 22:39:17 +00:00
Gergő Tisza 6d301dcd12 Do not handle clicks if MediaViewer could not be loaded.
mmv.bootstrap will not try again to handle clicks if it failed
for the first time.

Change-Id: Idd55d7dc6c1388070895f8630bdcd51763a94d86
Mingle: https://wikimedia.mingle.thoughtworks.com/projects/multimedia/cards/527
Bug: 63801
2014-04-29 16:04:17 -07:00
jenkins-bot 5980cd7322 Merge "Use sinon.js to test the thumbnail fetching" 2014-04-29 21:27:10 +00:00
Gergő Tisza b6953ba06f Use sinon.js to test the thumbnail fetching
Change-Id: Ida6143e29e54d90f26e7888aced1d207b3bfa702
2014-04-29 21:24:12 +00:00