Commit graph

167 commits

Author SHA1 Message Date
MatmaRex be1cbc4e60 ext.echo.overlay: Unbreak removal logic
Apparently three wrongs make a right: hiding the overlay still worked.

* '#pt-notifications a' click event handler was not correctly checking
  for events comig from inside the overlay due to a missing dot before
  class name
  * But if it were correctly checking, it would not be hiding the
    overlay pokey (just its body) due to a copy-paste error
* Instead the clicks were handled by the 'body' click event handler,
  which did not correctly check for events coming from
  '#pt-notifications a'

I made things right again. The user-facing behavior is the same.

Change-Id: I02aba0e25ba4d81b234b327f120e0e2ff13d117c
2013-11-01 22:38:42 +01:00
MatmaRex c6b65f674a ext.echo.overlay: Various minor consistency fixes and cleanup
Change-Id: Id3b0f4fd7253282b190d6b2ed5fc78b714295e96
2013-11-01 22:15:08 +01:00
MatmaRex 4c8fd7843b ext.echo.overlay: Only build the 'mark all as read' button if it's used
Otherwise a new copy will be created every time the user opens and closes
the popup, and jQuery will hold on to each one forever (because it has
events bound), leaking a minuscule amount of memory.

Change-Id: I70c713be839f826fc27d07b04260c166f9052020
2013-11-01 20:23:05 +01:00
Kunal Mehta 790f4bee9e Remove "Talk:" prefix from "You have new messages"
Bug: 49324
Change-Id: I51d9fc5c891d4489fcb5bce74b0428575f1df7f6
2013-10-21 11:56:20 -07:00
jenkins-bot de93be2b47 Merge "Revert "Notification overlay is partially hidden in RTL language"" 2013-10-16 17:33:31 +00:00
Bartosz Dziewoński 4ad3cb4674 Revert "Notification overlay is partially hidden in RTL language"
Ugly workaround for bug 55779. Let's not do this.

This reverts commit 67bcecff5d.

Bug: 55629
Change-Id: I5f5503aa1d1f7c93b11bf82cfcd73370a991783c
2013-10-16 09:49:09 +00:00
jenkins-bot 2ba05992be Merge "Notification overlay is partially hidden in RTL language" 2013-10-15 15:59:28 +00:00
Ebrahim Byagowi 88937d21c1 Native digits on 'mw-echo-overlay-title-text'
Change-Id: Icdd52ea0267ffbaa0e103070655735eff8423ca1
2013-10-13 19:34:03 +00:00
bsitu 67bcecff5d Notification overlay is partially hidden in RTL language
bug: 55629
Change-Id: I820386379fbea64fb88cfc1a1966ee08680f5c59
2013-10-11 19:06:58 +00:00
Timo Tijhof 72c8aba10e alert: Make selectors less overly specific and clean up js
Follows-up 383a818.

* There is no need for the additional element ("a") or
  descendant ("#pt-mytalk") selector.
  It isn't overrriding anything, only hardcodes details that make
  it harder to maintain or extend this stylesheet. For example,
  there is a gadget that makes  user messages green instead of
  orange, it now was required to hardcode the "#pt-mytalk a" part
  of the selector eventhough those are subject to change.
  Separation of concerns.

* Cache/reuse the jQuery object instead of executing the same
  query to the document, again. It also avoids a potential bug
  where the second query matches different elements (e.g. after
  appending alertMessage, there could potentially be an additional
  nested anchor link; there isn't now though, as the message is
  plain text).

* Add comment about weird echoNewMsgAlertDisplayed variable.

Change-Id: I682182fe15a868969f25fa5bfe2412e2a6f3dddf
2013-10-06 23:52:47 +00:00
bsitu 3b3ed1e3bc Fix some notification badge related issue
* In some languages like persian, the number 0 is represented as '.', we can't compare
  '.' with either 0 or '0' to detect the no-notification status of the badge

* The markread API doesn't respect uselang param, it would return 0 instead of . in a url with uselang=fa

Note: we need to provide raw and formatted count in the API since client side javascript
      doesn't provide fancy function like $wgLang->formatNum()

bug: 54575

Change-Id: I0a49828253ec346ed27c5b9a976f8bdff4e1fa90
2013-10-02 11:25:05 -07:00
kaldari 08fc83b6de Cleaning up Echo 'base' module.
Removing unused functions and declaring correct dependencies.

Targetting to desktop and mobile so it can be used by both.

Also removing dismiss-related code from the formatter.

Change-Id: Icccce64cfb3c564ab468a93ccdba9c5a61687fd5
2013-09-23 11:29:49 -07:00
bsitu 2b57fbd3c2 Split the Echo API into their own write/read APIs
Change-Id: I0ab85c91c6fbe17e9a1c7dc9e504980f629a5065
2013-09-18 14:28:41 -07:00
bsitu 06e7317472 Archive page and overlay should respect ?uselang=xxx
In addition, any message used in the email should be
sent in the user's language.

Bug: 52992
Change-Id: I3585f28d4ec97b86a467958bdfd603791f293d52
2013-09-09 13:44:05 -07:00
jenkins-bot 7591f85e43 Merge "Make items on notifications flyout behave like links" 2013-09-05 17:22:37 +00:00
jenkins-bot 5899f3d4f1 Merge "ext.echo.special: Cross-skin adjustments" 2013-09-04 16:22:47 +00:00
EBernhardson (WMF) e3bdd61952 Merge "Preventing empty payloads from being created when using summary" 2013-09-03 17:40:42 +00:00
kaldari d1463ea6a7 Preventing empty payloads from being created when using summary
Also making sure that footer has some amount of separation from
the notification title even if there is no payload.

Change-Id: I85a1a7989539044a0b0b53e76e70ddee9bb7165c
2013-08-29 15:10:06 -07:00
MatmaRex b916c85353 ext.echo.badge: Remove defunct CSS rule
The space after colon on this line is actually a non-breaking space
( ), which is not allowed in this place according to CSS syntax.
Therefore all browsers ignored this rule (logging an error like
"Invalid CSS property value") and the shadow was never shown.

We could fix the rule instead, but I'm pretty sure users are used to
this by now, and in my opinion it looks better without shadow.

Bug: 53490
Change-Id: I1fd508d2059bec5cd79a6dcdce8dc9be6e6d4229
2013-08-29 19:40:34 +00:00
bsitu 37812cd058 Long text content should wrap in overlay footer links
Bug: 53111
Change-Id: I15865a9808b342e52d2d03e9a3ec8bd2bc8312d0
2013-08-23 12:59:56 -07:00
MatmaRex 6cade7eba3 Make items on notifications flyout behave like links
We want the notifications in the flyout to behave just like links,
including standard middle-click and Ctrl-click behavior. The simplest
way to do that would be to actually make them links - but the area can
contain a few other links, so we can't do that and have to resort to
ugly hacks.

Or do we?

Turns out that while browsers won't accept HTML containing nested <a>
tags[1], such a structure is valid XHTML, and it's possible to create
such structure in HTML mode using DOM manipulation. It works like one
would expect: the entire thing is clickable, but inner <a> tags' hrefs
override outer ones.

Firefox even had a request to make that work[2] which was happily
fulfilled.

Tested the basic case [see below] on Firefox 22, Opera 12, Opera 15
(which uses the Blink engine like Chrome), IE 8 and IE 6 and it works
the same on all of them. Tested the XHTML variant [see below] on all
of the above except for the IEs which don't grok XHTML and it exhibits
the same behavior.

[1] Simple test: $('<div>1<a>2<a>3</a>4</a>5</div>').html() is
    "1<a>2</a><a>3</a>45", not actually "1<a>2<a>3</a>4</a>5" like one
    might expect.
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=331959

----

The test cases used are below. When trying out the XHTML one make sure
that the browser uses application/xhtml+xml MIME type; saving the file
with .xhtml extension should be enough.

XHTML:
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml">
  <body>
  <div>1<a href="http://google.com/">2<a href="http://example.com/">3</a>4</a>5</div>
  </body>
  </html>

HTML:
  <!DOCTYPE html>
  <html>
  <body>
  <script type="text/javascript">
  var div = document.createElement('div');
  var a1 = document.createElement('a');
  a1.href = "http://google.com/";
  var a2 = document.createElement('a');
  a2.href = "http://example.com/";

  div.appendChild( document.createTextNode('1') );
  div.appendChild( a1 );
  a1.appendChild( document.createTextNode('2') );
  a1.appendChild( a2 );
  a2.appendChild( document.createTextNode('3') );
  a1.appendChild( document.createTextNode('4') );
  div.appendChild( document.createTextNode('5') );

  document.body.appendChild(div);
  </script>
  </body>
  </html>

----

Bug: 52319
Change-Id: I311eca70f025ce92129c828cd88f96686b7cff72
2013-08-06 13:23:33 +00:00
MatmaRex dd87542a40 ext.echo.special: Cross-skin adjustments
Out of the default MW skins these only seem to affect CologneBlue.

* Reset padding and list-style-image on ul#mw-echo-special-container
  ourselves, do not rely on the skin doing it
* Use transparent background on .mw-echo-notification (and
  semi-transparent black on hover) instead of solid white and
  light grey to accomodate colored skin backgrounds

Change-Id: I2c178627e4dbe889c4958afc41e4969aaa45a717
2013-08-04 14:56:32 +02:00
MatmaRex 02bf709c97 Do not offset the heading of Special:Notifications from the left
Bug: 52508
Change-Id: Ia9f5a82b1c297d0e1de09bf228a2bbadccb98739
2013-08-04 14:34:33 +02:00
MatmaRex c351851277 ext.echo.special: Move #firstHeading styling from JS to CSS
Also some code cleanup in the part about converting subtitle links
into header icons.

Change-Id: I25eacb9c512fd6883a65df3af97608749b53b228
2013-08-04 14:34:30 +02:00
jenkins-bot 347cdf3247 Merge "Revert "(bug 51640) wgUserNewMsgRevisionId is null with only one rev"" 2013-07-30 20:47:16 +00:00
Bsitu 63c1d25d3a Revert "(bug 51640) wgUserNewMsgRevisionId is null with only one rev"
This reverts commit b9e5b2f64a.

Change-Id: I64cd03dd0789f482221f8f38bbf9a034025e45f9
2013-07-30 20:45:03 +00:00
bsitu 372b5f2f28 (bug 52225) Some javascript and css fix for IE7
1. clone() breaks the flyout layout in IE7
2. inline-block needs some adjustment for IE7

Change-Id: I014318aacb15000f132c4e4af74f5ea40a064712
2013-07-29 12:52:29 -07:00
jenkins-bot f1cc118b1f Merge "Remove override of skin behaviour for inline anchor's text-decoration" 2013-07-24 12:11:11 +00:00
bsitu b9e5b2f64a (bug 51640) wgUserNewMsgRevisionId is null with only one rev
wgUserNewMsgRevisionId is null with only one revision and that revision is
not viewed, this makes it not reliable for determining if there is new
message.  We just switch to check against $user->getNewtalk() instead.

We can still use wgUserNewMsgRevisionId to generate diff links if desired

Change-Id: I4cf50a944aada03151bd17f3610bd59b3bfb2bf2
2013-07-19 11:50:43 -07:00
bsitu f79c6a2e0f (bug 48568) Bust IE browser ajax cache + some API clenaup
Change-Id: Iaacdf41d85dc31a07d3d981086bcd919ba1a40e2
2013-07-18 10:31:23 -07:00
Timo Tijhof 467cb69645 Remove override of skin behaviour for inline anchor's text-decoration
Bug: 51617
Change-Id: Iea2d960e5d41420611e6eb8f6e1a9e9d58d6dce0
2013-07-18 15:42:08 +00:00
jenkins-bot 8a0eca6bc2 Merge "Making header widths consistant on archive page in Echo" 2013-07-12 22:32:53 +00:00
kaldari 8056c44d8d Making header widths consistant on archive page in Echo
Change-Id: Ie31f0fbf737e91d324996473b6e192bd91676ffb
2013-07-12 15:31:21 -07:00
jenkins-bot 7eb57c25bf Merge "Updating Talk notification icon" 2013-07-06 00:19:39 +00:00
Bsitu f5c9a828c4 Merge "Revert "Bug 49269: Echo markup adjustments"" 2013-07-02 22:11:42 +00:00
Bsitu 6231a712e3 Revert "Bug 49269: Echo markup adjustments"
This reverts commit 8ff2c4dec3.

Change-Id: I3936c574854640c49689d42586fbddde6a9e45bb
2013-07-02 22:07:16 +00:00
jenkins-bot 66007528f6 Merge "Bug 49269: Echo markup adjustments" 2013-07-02 18:38:59 +00:00
jrobson 8ff2c4dec3 Bug 49269: Echo markup adjustments
separate into multiple ul elements with headings dividing them
This removes need for unnecessary styling rules in mobile web

Change-Id: I8acaef726ea0cc639054cf36d6c3649c7ab25bee
2013-07-02 11:36:02 -07:00
bsitu 8817b53fe9 Fix two typos + one js integer casting
Change-Id: Ie5c4c39e94e5531dbfa48e8cde7b608967cec0c8
2013-07-02 10:37:31 -07:00
kaldari c3badbfd08 Updating Talk notification icon
Change-Id: I9f41c361cf6249afbf115d98c7ac4f2dcab2f9f9
2013-06-28 11:56:07 -07:00
kaldari 972e14672f New primary and secondary link behavior for Echo
See https://www.mediawiki.org/wiki/Echo/Feature_requirements#Flyout
and https://www.mediawiki.org/wiki/Echo/Feature_requirements#HTML_single_email_notifications

Also includes some related style changes per Vibha

Also removing feedback link from overlay since it's no longer needed

Change-Id: I94aed697e87126ed8ad6d1d416c99bafaa53ac53
2013-06-27 16:12:16 -07:00
Krenair ab592dad6f Cleanup JS
* Add missing spaces after 'function'
* Remove underscores from identifiers
* Don't use typeof for undefined with local variables and object properties
* API ok/err is deprecated since MediaWiki 1.20 (< 1.22-alpha), use .done and .fail

Change-Id: I5ca3403ee263a0c3e6709618e48e896340952337
2013-06-23 01:25:29 +01:00
Krenair 7da252eec4 Use mediawiki.api instead of $.ajax
Change-Id: Iea98b6cb338c8b7ebbf244073bb8fe481e5e7655
2013-06-19 21:31:38 +01:00
jenkins-bot eb84e56e65 Merge "Never underline the badge" 2013-06-14 23:04:13 +00:00
Matthew Flaschen ecf7f1f261 Add overlay hook for user scripts.
Bug: 48502
Change-Id: I720d4fe65a6501b552dbef21cb258c027dc18867
2013-06-13 21:27:26 -04:00
bsitu 01e244c8a3 Remove quote around javascript object property name
Change-Id: I5cc7f4179066ab694a67d4c578ed4a562f533ade
2013-06-12 10:51:55 -07:00
kaldari 0558ab1571 Calling functions explicitly due to context
When I changed mw.echo.special.initialize to be called as a
callback from $( document ).ready(), rather than being called
explicitly from the closure, it changed the context, which got
assigned to _this. This broke some of the function calls.

Change-Id: I602a58a82ee91646901d0ab1c8b7bb4b22b3437a
2013-06-11 18:01:41 -07:00
kaldari 902ce9cc04 Don't run mw.echo.special.initialize until DOM is ready
To fix rare race condition in Safari

Change-Id: I2ae556ff6e44f291e761d2937203a3376f4a3177
2013-06-11 14:20:08 -07:00
bsitu 6ffc1cac4b Add clickthrough eventlogging to Echo
Change-Id: I3d05d1aeca92f9a0265a522cc5027ae18394c5b4
2013-06-11 10:46:41 -07:00
jenkins-bot 738d816a6c Merge "Fix some JS issues" 2013-06-10 21:57:13 +00:00