Changes for page User Mentions
Last modified by Vincent Massol on 2024/02/26 17:57
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
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 i swould 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 it would 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 o fthe place where the mention originates from.209 +The way the answer is integration depends on the 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 o na 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 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 abetter 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 isnotified 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 thea local or external user following a chain of resolvers by calling the components that implementsthe 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 - Inordertomake the event handling asynchronous, the only task of this event listener is to createda 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 trigger sa 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 sen dto 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 byuser. 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 cha nge 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 window sthat 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 sen dthrough 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 (((