Page MenuHomePhabricator

Remove preference "Show talk page message indicator in my toolbar" (echo-show-alert)
Closed, ResolvedPublic

Description

In a bright (distant?) future, we'll be able to remove the preference "Show talk page message indicator in my toolbar" (echo-show-alert) which currently occupies a section of [[Special:Preferences#mw-prefsection-echo]]. (Context: the "New message indicator" is (currently) a smallish orange bar in the [[mw:personal tools]], which replaced the [[m:OBOD]] aka [[m:New messages notification]].)

EJGSQDR.png (141×439 px, 9 KB)
XpiQwnw.png (30×307 px, 3 KB)

This may require some change to the indicator in question so that it's perfect enough, or something else, I don't know; but eventually it will need/be able to to be removed.

Current stats show that only a minuscule fraction of users use this preference. Of course numbers are skewed by deployment history (cf. [[mw:Echo/Release_Plan_2013#Completed]]), existence of local gadgets to replace the indicator etc.: in particular, on en.wiki they are completely meaningless given the number of back and forths on the feature with removals, changes, local hacks, user scripts, gadgets etc. However, the order of magnitude gives an idea.

Meta:

mysql> /* SLOW_OK */
    -> SELECT
    ->   up_property,
    ->   COUNT(*)
    -> FROM user_properties_anonym
    -> WHERE up_property = 'echo-show-alert'
    -> AND up_value = 0
    -> GROUP BY up_property;
+-----------------+----------+
| up_property     | COUNT(*) |
+-----------------+----------+
| echo-show-alert |       10 |
+-----------------+----------+
1 row in set (0.14 sec)

fr.wiki: 32
hu.wiki: 5
pl.wiki: 17
pt.wiki: 14
sv.wiki: 6

es.wiki: 25
ja.wiki: 45
nl.wiki: 10
zh.wiki: 21
en.wikt: 2
Commons: 14

Version: master
Severity: enhancement

Event Timeline

bzimport raised the priority of this task from to Needs Triage.Nov 22 2014, 2:25 AM
bzimport added a project: Notifications.
bzimport set Reference to bz56845.
bzimport added a subscriber: Unknown Object (MLST).

The WMF core features team tracks this bug on Mingle card https://mingle.corp.wikimedia.org/projects/flow/cards/488, but people from the community are welcome to contribute here and in Gerrit.

Change 223213 had a related patch set uploaded (by Legoktm):
Remove $wgEchoNewMsgAlert and 'echo-show-alert' preference

https://gerrit.wikimedia.org/r/223213

Updated usage statistics:

1 legoktm@terbium:~$ foreachwikiindblist /srv/mediawiki/large.dblist sql.php /home/legoktm/echo-alert.sql --slave=any
2 -----------------------------------------------------------------
3 arwiki
4 -----------------------------------------------------------------
5 arwiki: stdClass Object
6 arwiki: (
7 arwiki: [count(*)] => 59
8 arwiki: )
9 -----------------------------------------------------------------
10 cawiki
11 -----------------------------------------------------------------
12 cawiki: stdClass Object
13 cawiki: (
14 cawiki: [count(*)] => 7
15 cawiki: )
16 -----------------------------------------------------------------
17 cebwiki
18 -----------------------------------------------------------------
19 cebwiki: stdClass Object
20 cebwiki: (
21 cebwiki: [count(*)] => 1
22 cebwiki: )
23 -----------------------------------------------------------------
24 commonswiki
25 -----------------------------------------------------------------
26 commonswiki: stdClass Object
27 commonswiki: (
28 commonswiki: [count(*)] => 191
29 commonswiki: )
30 -----------------------------------------------------------------
31 dewiki
32 -----------------------------------------------------------------
33 dewiki: stdClass Object
34 dewiki: (
35 dewiki: [count(*)] => 350
36 dewiki: )
37 -----------------------------------------------------------------
38 enwiki
39 -----------------------------------------------------------------
40 enwiki: stdClass Object
41 enwiki: (
42 enwiki: [count(*)] => 3646
43 enwiki: )
44 -----------------------------------------------------------------
45 enwikinews
46 -----------------------------------------------------------------
47 enwikinews: stdClass Object
48 enwikinews: (
49 enwikinews: [count(*)] => 10
50 enwikinews: )
51 -----------------------------------------------------------------
52 enwikisource
53 -----------------------------------------------------------------
54 enwikisource: stdClass Object
55 enwikisource: (
56 enwikisource: [count(*)] => 13
57 enwikisource: )
58 -----------------------------------------------------------------
59 enwiktionary
60 -----------------------------------------------------------------
61 enwiktionary: stdClass Object
62 enwiktionary: (
63 enwiktionary: [count(*)] => 30
64 enwiktionary: )
65 -----------------------------------------------------------------
66 eswiki
67 -----------------------------------------------------------------
68 eswiki: stdClass Object
69 eswiki: (
70 eswiki: [count(*)] => 168
71 eswiki: )
72 -----------------------------------------------------------------
73 fawiki
74 -----------------------------------------------------------------
75 fawiki: stdClass Object
76 fawiki: (
77 fawiki: [count(*)] => 27
78 fawiki: )
79 -----------------------------------------------------------------
80 frwiki
81 -----------------------------------------------------------------
82 frwiki: stdClass Object
83 frwiki: (
84 frwiki: [count(*)] => 132
85 frwiki: )
86 -----------------------------------------------------------------
87 frwikisource
88 -----------------------------------------------------------------
89 frwikisource: stdClass Object
90 frwikisource: (
91 frwikisource: [count(*)] => 4
92 frwikisource: )
93 -----------------------------------------------------------------
94 frwiktionary
95 -----------------------------------------------------------------
96 frwiktionary: stdClass Object
97 frwiktionary: (
98 frwiktionary: [count(*)] => 4
99 frwiktionary: )
100 -----------------------------------------------------------------
101 idwiki
102 -----------------------------------------------------------------
103 idwiki: stdClass Object
104 idwiki: (
105 idwiki: [count(*)] => 23
106 idwiki: )
107 -----------------------------------------------------------------
108 incubatorwiki
109 -----------------------------------------------------------------
110 incubatorwiki: stdClass Object
111 incubatorwiki: (
112 incubatorwiki: [count(*)] => 5
113 incubatorwiki: )
114 -----------------------------------------------------------------
115 itwiki
116 -----------------------------------------------------------------
117 itwiki: stdClass Object
118 itwiki: (
119 itwiki: [count(*)] => 113
120 itwiki: )
121 -----------------------------------------------------------------
122 jawiki
123 -----------------------------------------------------------------
124 jawiki: stdClass Object
125 jawiki: (
126 jawiki: [count(*)] => 459
127 jawiki: )
128 -----------------------------------------------------------------
129 kowiki
130 -----------------------------------------------------------------
131 kowiki: stdClass Object
132 kowiki: (
133 kowiki: [count(*)] => 95
134 kowiki: )
135 -----------------------------------------------------------------
136 metawiki
137 -----------------------------------------------------------------
138 metawiki: stdClass Object
139 metawiki: (
140 metawiki: [count(*)] => 76
141 metawiki: )
142 -----------------------------------------------------------------
143 mgwiktionary
144 -----------------------------------------------------------------
145 mgwiktionary: stdClass Object
146 mgwiktionary: (
147 mgwiktionary: [count(*)] => 0
148 mgwiktionary: )
149 -----------------------------------------------------------------
150 mkwiki
151 -----------------------------------------------------------------
152 mkwiki: stdClass Object
153 mkwiki: (
154 mkwiki: [count(*)] => 0
155 mkwiki: )
156 -----------------------------------------------------------------
157 nlwiki
158 -----------------------------------------------------------------
159 nlwiki: stdClass Object
160 nlwiki: (
161 nlwiki: [count(*)] => 70
162 nlwiki: )
163 -----------------------------------------------------------------
164 nowiki
165 -----------------------------------------------------------------
166 nowiki: stdClass Object
167 nowiki: (
168 nowiki: [count(*)] => 9
169 nowiki: )
170 -----------------------------------------------------------------
171 plwiki
172 -----------------------------------------------------------------
173 plwiki: stdClass Object
174 plwiki: (
175 plwiki: [count(*)] => 41
176 plwiki: )
177 -----------------------------------------------------------------
178 ptwiki
179 -----------------------------------------------------------------
180 ptwiki: stdClass Object
181 ptwiki: (
182 ptwiki: [count(*)] => 102
183 ptwiki: )
184 -----------------------------------------------------------------
185 rowiki
186 -----------------------------------------------------------------
187 rowiki: stdClass Object
188 rowiki: (
189 rowiki: [count(*)] => 15
190 rowiki: )
191 -----------------------------------------------------------------
192 ruwiki
193 -----------------------------------------------------------------
194 ruwiki: stdClass Object
195 ruwiki: (
196 ruwiki: [count(*)] => 227
197 ruwiki: )
198 -----------------------------------------------------------------
199 shwiki
200 -----------------------------------------------------------------
201 shwiki: stdClass Object
202 shwiki: (
203 shwiki: [count(*)] => 0
204 shwiki: )
205 -----------------------------------------------------------------
206 srwiki
207 -----------------------------------------------------------------
208 srwiki: stdClass Object
209 srwiki: (
210 srwiki: [count(*)] => 9
211 srwiki: )
212 -----------------------------------------------------------------
213 svwiki
214 -----------------------------------------------------------------
215 svwiki: stdClass Object
216 svwiki: (
217 svwiki: [count(*)] => 24
218 svwiki: )
219 -----------------------------------------------------------------
220 trwiki
221 -----------------------------------------------------------------
222 trwiki: stdClass Object
223 trwiki: (
224 trwiki: [count(*)] => 54
225 trwiki: )
226 -----------------------------------------------------------------
227 ukwiki
228 -----------------------------------------------------------------
229 ukwiki: stdClass Object
230 ukwiki: (
231 ukwiki: [count(*)] => 19
232 ukwiki: )
233 -----------------------------------------------------------------
234 viwiki
235 -----------------------------------------------------------------
236 viwiki: stdClass Object
237 viwiki: (
238 viwiki: [count(*)] => 11
239 viwiki: )
240 -----------------------------------------------------------------
241 warwiki
242 -----------------------------------------------------------------
243 warwiki: stdClass Object
244 warwiki: (
245 warwiki: [count(*)] => 0
246 warwiki: )
247 -----------------------------------------------------------------
248 wikidatawiki
249 -----------------------------------------------------------------
250 wikidatawiki: stdClass Object
251 wikidatawiki: (
252 wikidatawiki: [count(*)] => 48
253 wikidatawiki: )
254 -----------------------------------------------------------------
255 zhwiki
256 -----------------------------------------------------------------
257 zhwiki: stdClass Object
258 zhwiki: (
259 zhwiki: [count(*)] => 199
260 zhwiki: )
261 -----------------------------------------------------------------
262 zhwiktionary
263 -----------------------------------------------------------------
264 zhwiktionary: stdClass Object
265 zhwiktionary: (
266 zhwiktionary: [count(*)] => 2
267 zhwiktionary: )
268 legoktm@terbium:~$ cat echo-alert.sql
269 select count(*) from user_properties where up_property ='echo-show-alert' and up_value=0;

This shouldn't be released right now. James and I both feel like the users could be better served by just using the Echo notification instead of the extra talk page indicator. I need to talk to Nick about it.

In T58845#1439356, @DannyH wrote:

This shouldn't be released right now. James and I both feel like the users could be better served by just using the Echo notification instead of the extra talk page indicator. I need to talk to Nick about it.

James who? Alexander? Forrester? Hare?

Sorry, James Forrester. We've been talking about it in the Editing department.

In T58845#1439356, @DannyH wrote:

This shouldn't be released right now. James and I both feel like the users could be better served by just using the Echo notification instead of the extra talk page indicator. I need to talk to Nick about it.

I think there may be some confusion here. This task is about removing a largely unused user preference, as I understand it. There will be a behavior change only for a small set of users.

Do you think we can't remove this user preferences interface clutter right now? It seems to me that removing this user preference would be an easy win and would be relatively uncontroversial.

Whether we continue to use a separate and distinct talk page indicator is a separate matter and is a lot more controversial.

siebrand changed the task status from Open to Stalled.Oct 5 2015, 12:06 PM
siebrand subscribed.

Waiting for re-review in Gerrit.

Change 223213 merged by jenkins-bot:
[mediawiki/extensions/Echo@master] Remove $wgEchoNewMsgAlert and 'echo-show-alert' preference

https://gerrit.wikimedia.org/r/223213

Trizek subscribed.

Can I have that preference back, or, at least, a way to ignore that orange bar on all wikis simply? I've appreciated that preference very much, because the orange bar is stressful to me. It requires immediate attention, while I prefer to have talk pages notices hidden behind a more discreet red alarm icon.

(I don't see it often as a volunteer, but a lot more during my professional duties.)

In T58845#4535499, @Trizek wrote:

Can I have that preference back, or, at least, a way to ignore that orange bar on all wikis simply? I've appreciated that preference very much, because the orange bar is stressful to me. It requires immediate attention, while I prefer to have talk pages notices hidden behind a more discreet red alarm icon.

Hm, causing stress isn't great, but is it the orange highlight that's actually causing that? Or the fact that you have new messages, and the orange highlight makes it obvious? While the red alert is less obvious, since it also mixes in other notifications.

You could also consider using the Timeless skin, which puts all the personal tools in a drop down, so you don't see the orange indicator, unless you hover over your username.

In any case, the following user CSS should work (I tested it in MonoBook):

.mw-echo-alert {
  background-color: transparent;
}

Thanks @Legoktm. The stress is both caused by the colour and the message: "You have to act NOW" is my perception of it.

I think I'll use the following on my global.css:

.mw-echo-alert {
  display:none;
}

Hi. Sorry to see it was removed. A little explanation: I used, and I believe many others, to use this feature not because of colour and not because of extra space. It was because clicking on this area calls "open user's talk page un read view" instead of "open user's talk page diff between last watched revision and the current one". It is just not helpful - you can't recognize all the changes.

I was also a big fan of this preference, but neither CSS option above fully returns the behavior, either leaving a long message or removing the link to one's talk page. To return to the previous, you'd need to add:

.mw-echo-alert {
  background-color: transparent;
}

in css and:

$('.mw-echo-alert').text('talk');

in js

It's not enough, needs also padding 0, and yes, I also did this.

It was because clicking on this area calls "open user's talk page un read view" instead of "open user's talk page diff between last watched revision and the current one". It is just not helpful - you can't recognize all the changes.

Yes. sadly, however, keeping this preference would not bring back the direct link to the diffs. If you use a gadget to bring back the link, you can also get the gadget to hide any redundant indicator.

If you use a gadget to bring back the link, you can also get the gadget to hide any redundant indicator.

(Crying) It blinks.

It was because clicking on this area calls "open user's talk page un read view" instead of "open user's talk page diff between last watched revision and the current one". It is just not helpful - you can't recognize all the changes.

Yes. sadly, however, keeping this preference would not bring back the direct link to the diffs. If you use a gadget to bring back the link, you can also get the gadget to hide any redundant indicator.

That bug is T58475: Echo: The "You have new messages" link should go to a diff and/or subsection of the user's talk page where the talk page resides

I regret that decision, especially when I see more important tasks being completely ignored.

Why do I need a huge orange bar when there's already the bell icon? Why not let the users choose their preference?

In T58845#4535499, @Trizek wrote:

the orange bar is stressful to me. It requires immediate attention, while I prefer to have talk pages notices hidden behind a more discreet red alarm icon.

It's stressful for me too.