Changes for page User Mentions

Last modified by Vincent Massol on 2024/02/26 17:57

<
From version < 50.1 >
edited by Manuel Leduc
on 2020/05/11 17:39
To version < 51.1 >
edited by Manuel Leduc
on 2020/05/11 17:51
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -93,7 +93,7 @@
93 93  * user identifiers resolution
94 94  * an extension point on the notifications emission.
95 95  
96 -In addition, the core of the mentions must support unknown types of external users.
96 +Besides, the core of the mentions must support unknown types of external users.
97 97  
98 98  = Discussions =
99 99  
... ... @@ -131,7 +131,7 @@
131 131  
132 132  The mention feature must be eased by the generalization of the integration of the rich editor.
133 133  
134 -This is currently not the case and multiple places where is would be interesting to have user mentions (i.e., comments and annotations) support XWiki syntax without being supported by a rich editor.
134 +This is currently not the case and multiple places where iwould be interesting to have user mentions (i.e., comments and annotations) support XWiki syntax without being supported by a rich editor.
135 135  
136 136  The rich editor must be integrated on every textarea supporting the XWiki syntax and be activated by default for users that choose wysiwyg as by default.
137 137  
... ... @@ -206,13 +206,13 @@
206 206  
207 207  When a mention links to an entity to which a user can answer (e.g., mentions and notifications), the mention must include a textarea allowing to quickly answer to the mention.
208 208  
209 -The way the answer is integration depends of the place where the mention originates from.
209 +The way the answer is integration depends othe place where the mention originates from.
210 210  
211 211  |=Origin|=Answer
212 212  |Document body|The answer is integrated as an annotation around the user's mention in the document.
213 213  |Comment|The answer is integrated as a comment answering the originating comment.
214 -|Annotation|The answer is integrated as a comment answering the originating annotation (which are actually handled as comment, so the UX is similar to the comment case).
215 -|AWM textarea|As of today no mechanism allow a text to be attached on a specific text. Consequently, answering an AWM textarea is not supported and no answer should be proposed to the mentioned user in this case.
214 +|Annotation|The answer is integrated as a comment answering the originating annotation (which are actually handled as a comment, so the UX is similar to the comment case).
215 +|AWM textarea|As of today no mechanism allows a text to be attached to a specific text. Consequently, answering an AWM textarea is not supported and no answer should be proposed to the mentioned user in this case.
216 216  
217 217  == UC9. Answer to a notification by email ==
218 218  
... ... @@ -226,23 +226,23 @@
226 226  
227 227  Notifications can currently be displayed to the user through the notification menu and by email.
228 228  
229 -It should be possible to receive notifications using the [[Browser notification API>>https://notifications.spec.whatwg.org/]] integrated in [[most major browsers>>https://caniuse.com/#search=notifications]].
229 +It should be possible to receive notifications using the [[Browser notification API>>https://notifications.spec.whatwg.org/]] integrated into [[most major browsers>>https://caniuse.com/#search=notifications]].
230 230  
231 231  The browser notification can be activated in the same way as other notification methods, either globally in the administration, or for a user in her notification settings.
232 232  
233 233  [[image:Screenshot from 2020-05-11 11-00-39.png]]
234 234  
235 -This feature is orthogonal to the integration of the user mentions, but allow a better integration of the user's notifications in her browser (and eventually in the underlying OS).
235 +This feature is orthogonal to the integration of the user mentions, but allow better integration of the user's notifications in her browser (and eventually in the underlying OS).
236 236  
237 237  == UC11. Integration of answers from external source ==
238 238  
239 -If the mentions is notified to an external user using an extension mechanism (for instance in the context of an integration of the user mentions with ActivityPub), answers to the notification (for instance by a comment on Mastodon), should be gracefully integrated in the UI.
239 +If the mentions are notified to an external user using an extension mechanism (for instance in the context of an integration of the user mentions with ActivityPub), answers to the notification (for instance by a comment on Mastodon), should be gracefully integrated into the UI.
240 240  
241 241  In summary, answering to mentions should be open to extensions.
242 242  
243 243  == UC12. Auto page watch ==
244 244  
245 -Whenever a user is mention in a document, he is automatically added to the watchers of the document.
245 +Whenever a user is mentioned in a document, he is automatically added to the watchers of the document.
246 246  
247 247  This feature must be deactivated by default and could be activated by a setting in the user profile (section Watched Pages of the notification preference section, along with the Automatic page watching setting).
248 248  
... ... @@ -260,7 +260,7 @@
260 260  
261 261  == General guidelines ==
262 262  
263 -The business logic triggered by introduction of a mention must be asynchronous and must not impact the reactiveness of  the UX.
263 +The business logic triggered by the introduction of a mention must be asynchronous and must not impact the reactiveness of  the UX.
264 264  
265 265  == Rich editor integration ==
266 266  
... ... @@ -323,10 +323,10 @@
323 323  
324 324  (% class="wikigeneratedid" %)
325 325  The parameter takes a single fully qualified user or group identifier (e.g., xwiki:XWiki.U1, xwiki:XWiki.MyGroup, [email protected]).
326 -The identifier is later resolved the a local or external user following a chain of resolvers by calling the components that implements the MentionUserResolver roles, ordered by their priority.
326 +The identifier is later resolved as a local or external user following a chain of resolvers by calling the components that implement the MentionUserResolver roles, ordered by their priority.
327 327  
328 328  (% class="wikigeneratedid" %)
329 -That way, extension can be added to resolve new kinds of users (for instance, using webfinger for activitypub).
329 +That way, extensions can be added to resolve new kinds of users (for instance, using webfinger for activitypub).
330 330  
331 331  
332 332  == Mentions style ==
... ... @@ -363,7 +363,7 @@
363 363  
364 364  == Mention creation ==
365 365  
366 -Mentions are identified by listening to XWiki existing events. The event listed below are listened using a class implementing org.xwiki.observation.AbstractEventListener.
366 +Mentions are identified by listening to XWiki existing events. The events listed below are listened to using a class implementing org.xwiki.observation.AbstractEventListener.
367 367  
368 368  |=Type|=Events|=Content
369 369  |Document/AWM textarea| org.xwiki.bridge.event.DocumentCreatedEvent, org.xwiki.bridge.event.AnnotationAddedEvent|XDOM/Fields of type LargeStringProperty of the objects of the document.|
... ... @@ -370,24 +370,24 @@
370 370  |Comment| org.xwiki.bridge.event.CommentAddedEvent, org.xwiki.bridge.event.AnnotationAddedEvent|XDOM|
371 371  |Annotation| org.xwiki.bridge.event.AnnotationAddedEvent, org.xwiki.bridge.event.AnnotationAddedEvent|XDOM|
372 372  
373 -In order to make the event handling asynchronous, the only task of this event listener is to created a job executor request (MentionRequest) later handled by a dedicated org.xwiki.contrib.activitypub.internal.async.jobs.AbstractPageNotificationJob<MentionRequest, MentionStatus> implementation, in charge of the identification of actual mentions in the content.
373 +To make the event handling asynchronous, the only task of this event listener is to create a job executor request (MentionRequest) later handled by a dedicated org.xwiki.contrib.activitypub.internal.async.jobs.AbstractPageNotificationJob<MentionRequest, MentionStatus> implementation, in charge of the identification of actual mentions in the content.
374 374  
375 -In case of content initial creation (DocumentCreatedEvent, CommentAddedEvent, AnnotationAddedEvent), all occurrences of the mention macro found in the content triggers a mention.
375 +In the case of content initial creation (DocumentCreatedEvent, CommentAddedEvent, AnnotationAddedEvent), all occurrences of the mention macro found in the content trigger a mention.
376 376  
377 377  In case of content update (AnnotationAddedEvent, AnnotationAddedEvent, AnnotationAddedEvent), a comparison is realized against the previous version of the document, only newly introduced mention macro triggers a mention.
378 -Newly identified mention are realized by counting the number of occurrences of the mentions to a given user in the updated XDOM, and to do the same task on the initial XDOM. A notification is send to a given user if her number of mentions has increased.
378 +Newly identified mention are realized by counting the number of occurrences of the mentions to a given user in the updated XDOM, and to do the same task on the initial XDOM. A notification is sent to a given user if her number of mentions has increased.
379 379  
380 -Note that this count must be realized after resolution of the mentions macro's identifiers, because there might be more than one way to identify the same user.
380 +Note that this count must be realized after the resolution of the mentions macro's identifiers because there might be more than one way to identify the same user.
381 381  
382 382  In practice, triggering a mention is realized by emitting a new event called org.xwiki.bridge.event.MentionCreatedEvent.
383 383  
384 -On event is created by user. If a mention refers to a group, an event is created for each member of the group.
384 +One event is created for each mentioned user. If a mention refers to a group, an event is created for each member of the group.
385 385  
386 386  == MentionCreatedEvent handling ==
387 387  
388 388  This event can be freely listened to using a class implementing org.xwiki.observation.AbstractEventListener.
389 389  
390 -We provide a default implementation that is in change to identify if the mentioned user is a local user of the XWiki, and if so, send a notification using the org.xwiki.observation.ObservationManager component.
390 +We provide a default implementation that is in charge to identify if the mentioned user is a local user of the XWiki, and if so, send a notification using the org.xwiki.observation.ObservationManager component.
391 391  
392 392  Dedicated events must be created, for each type of notification:
393 393  
... ... @@ -428,7 +428,7 @@
428 428  
429 429  Answer button
430 430  
431 -==== Document AWM textare field ====
431 +==== Document AWM textarea field ====
432 432  
433 433  You are mentioned by ~_~_USER_NAME~_~_ (+ link to user) on the field ~_~__FIELD_NAME~_~_ of  ~_~_DOCUMENT_NAME~_~_ (link to the document view + anchor to the field).
434 434  
... ... @@ -460,7 +460,7 @@
460 460  
461 461  Answer button
462 462  
463 -==== Document AWM textare field ====
463 +==== Document AWM textarea field ====
464 464  
465 465  The group ~_~_GROUP_NAME~_~_ (+ link to group) is mentioned by ~_~_USER_NAME~_~_ (+ link to user) on the field ~_~__FIELD_NAME~_~_ of  ~_~_DOCUMENT_NAME~_~_ (link to the document view + anchor to the field).
466 466  
... ... @@ -469,19 +469,19 @@
469 469  
470 470  === Answering ===
471 471  
472 -Clicking the "Answer button" opens a modal windows that provides a larger preview around the mentions and present a textarea supporting XWiki syntax and rich editing.
472 +Clicking the "Answer button" opens a modal window that provides a larger preview around the mentions and presents a textarea supporting XWiki syntax and rich editing.
473 473  
474 -Filling and submitting this textarea send a answer to the mention.
474 +Filling and submitting this textarea send an answer for the mention.
475 475  
476 476  == Integration of browser notifications ==
477 477  
478 478  See [[https:~~/~~/developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API>>https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API]] .
479 479  
480 -Note that the notification cannot be rendered as html, so their body and title must eventually be converted to plain text before being send through this API.
480 +Note that the notification cannot be rendered as html, so their body and title must eventually be converted to plain text before being sent through this API.
481 481  
482 482  Another important point is the management and activation of the notification user rights.
483 483  
484 -Indeed, using Firefox, the pop-up below is only displayed to the user following and user action (e.g., a click event), otherwise the query is proposed but not displayed to the user, who has to go activate the feature by himself.
484 +Indeed, using Firefox, the pop-up below is only displayed to the user following and user action (e.g., a click event), otherwise, the query is proposed but not displayed to the user, who has to go activate the feature by himself.
485 485  
486 486  (% class="box warningmessage" %)
487 487  (((

Get Connected