<
From version < 7.1 >
edited by Richard Johnson
on 2021/05/07 18:12
To version < 2.1 >
edited by Richard Johnson
on 2019/03/30 12:59
>
Change comment: Migrated property [type] from class [XWiki.WikiMacroParameterClass]

Summary

Details

Icon XWiki.JavaScriptExtension[0]
Code
... ... @@ -1,10 +1,9 @@
1 1  var XWiki = (function (XWiki) {
2 2  // Start XWiki augmentation.
3 3  XWiki.MessageStream = Class.create({
4 - initialize : function(container) {
5 - container = container || $(document.body);
6 - this.prepareForms(container);
7 - this.enhanceSelect(container);
4 + initialize : function() {
5 + this.prepareForms();
6 + this.enhanceSelect();
8 8   },
9 9   prepareTargetInput : function(event, element) {
10 10   var targetType = element.options[element.selectedIndex].value;
... ... @@ -31,14 +31,14 @@
31 31   }
32 32   });
33 33   },
34 - enhanceSelect: function (container) {
35 - container.select('.messagestream select[name="visibilityLevel"]').each(function(element) {
33 + enhanceSelect: function () {
34 + $$('.messagestream select[name="visibilityLevel"]').each(function(element) {
36 36   element.observe('change', this.prepareTargetInput.bindAsEventListener(this, element));
37 37   this.prepareTargetInput(null, element);
38 38   }.bind(this));
39 39   },
40 - prepareForms: function(container) {
41 - container.select('.messagestream form').each(function(msForm) {
39 + prepareForms: function() {
40 + $$('.messagestream form').each(function(msForm) {
42 42   msForm.action = msForm.action.replace(/xredirect=.*$/, 'xpage=plain')
43 43   msForm.observe('submit', function(event) {
44 44   event.stop();
... ... @@ -94,21 +94,11 @@
94 94   }
95 95  });
96 96  
97 -var init = function (event) {
98 - var elements = (event && event.memo.elements) || [$(document.body)];
99 - elements.forEach(function(container) {
100 - new XWiki.MessageStream(container);
101 - });
102 - return true;
96 +var init = function() {
97 + return new XWiki.MessageStream();
103 103  };
99 +(XWiki.domIsLoaded && init()) || document.observe('xwiki:dom:loaded', init);
104 104  
105 -// Initialize the message sender macro when the page is loaded.
106 -(XWiki.domIsLoaded && init())
107 -|| document.observe('xwiki:dom:loaded', init);
108 -
109 -// Initialize the message sender macro when it is added after the page is loaded.
110 -document.observe('xwiki:dom:updated', init);
111 -
112 112  // End XWiki augmentation.
113 113  return XWiki;
114 114  }(XWiki || {}));
Icon XWiki.StyleSheetExtension[0]
Code
... ... @@ -1,5 +3,3 @@
1 -#template('colorThemeInit.vm')
2 -
3 3  .messagestream-tools {
4 4   display: flex;
5 5   position: relative;
... ... @@ -12,37 +12,3 @@
12 12   flex-grow: 1;
13 13   margin-left: .3em;
14 14  }
15 -
16 -.messagestream .message-content {
17 - padding: .5em 0 .5em 75px;
18 -}
19 -
20 -.messagestream .activitySnapshot {
21 - height: 30px;
22 - margin: 5px 0 0 -50px;
23 - position: absolute;
24 -}
25 -
26 -.messagestream .activitySnapshot img {
27 - border-radius: 10px 10px 0 10px;
28 - box-shadow: -1px 1px 1px rgba(128,128,128,0.6);
29 -}
30 -
31 -/* User's avatar */
32 -.messagestream .activitySnapshot .avatar {
33 - border-radius: 4px;
34 - box-shadow: 0 0 2px 1px rgba(128,128,128,0.6);
35 -}
36 -
37 -.messagestream .activitySnapshot .activityActionAvatar {
38 - background: $theme.pageContentBackgroundColor;
39 - border-color: $theme.pageContentBackgroundColor;
40 - border-style: solid;
41 - border-width: 4px 1px 1px 3px;
42 - box-sizing: content-box;
43 - bottom: -5px;
44 - height: 16px;
45 - position: absolute;
46 - right: -10px;
47 - width: 16px;
48 -}
Parse content
... ... @@ -1,1 +1,1 @@
1 -Yes
1 +No
Icon XWiki.WikiMacroClass[0]
Macro code
... ... @@ -7,6 +7,8 @@
7 7  #set ($configClass = $xwiki.getDocument($config).getxWikiClass())
8 8  #set ($isMessageStreamActive = $services.messageStream.isActive())
9 9  
10 +#set ($currentUser = $services.model.serialize($xcontext.userReference, 'default'))
11 +
10 10  #set ($activityActionsMap = {
11 11   'publicMessage': 'icons/silk/user_comment.png',
12 12   'personalMessage': 'icons/silk/user_comment.png',
... ... @@ -32,6 +32,7 @@
32 32  ##
33 33  ## Skin Extensions
34 34  ##--------------------------------------------------------------
37 +#set ($discard = $xwiki.ssx.use('Main.Activity'))
35 35  #set ($discard = $xwiki.ssx.use('Main.MessageSenderMacro'))
36 36  #set ($discard = $xwiki.jsx.use('Main.MessageSenderMacro'))
37 37  {{/velocity}}
... ... @@ -110,11 +110,11 @@
110 110   #set ($actionQueryString = "xredirect=$escapetool.url($xredirect)")
111 111   {{html}}
112 112   ## Wrap the form in a div so that the layout is preserved in inline mode (where the form is stripped by the rendering).
113 - <div class='messagestream xform'>
116 + <div class='messagestream activityUser xform'>
114 114   #if (!$inEditMode)
115 115   <form action="${xwiki.getURL('Main.MessageSenderMacro', 'view', $!{actionQueryString})}" method='post'>
116 116   #end
117 - <div class='message-content'>
120 + <div class='activityContent'>
118 118   #if(!$inEditMode)
119 119   ## CSRF prevention
120 120   <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" />
... ... @@ -136,13 +136,13 @@
136 136   #if (!$defaultTarget)
137 137   #if ($doc.getObject('XWiki.XWikiGroups'))
138 138   #set ($defaultTarget = 'group')
139 - #set ($targetName = $doc.fullName)
142 + #set ($targetName = $doc.prefixedFullName)
140 140   #elseif ($doc.getObject('XWiki.XWikiUsers'))
141 - #if ($doc.documentReference == $xcontext.userReference)
144 + #if ($doc.prefixedFullName == $currentUser)
142 142   #set ($defaultTarget = 'followers')
143 143   #else
144 144   #set ($defaultTarget = 'user')
145 - #set ($targetName = $doc.fullName)
148 + #set ($targetName = $doc.prefixedFullName)
146 146   #end
147 147   #else
148 148   #set ($defaultTarget = 'everyone')
... ... @@ -155,28 +155,25 @@
155 155   #end
156 156   </select>
157 157   </label>
158 - #set ($suggestPickerParams = {
161 + #set ($userPickerParams = {
159 159   'name': 'targetName',
163 + 'value': $targetName,
160 160   'title': $services.localization.render('xe.activity.messages.visibility.targetName.tip')
161 161   })
162 - #foreach ($target in ['user', 'group'])
163 - #if ($possibleTargets.contains($target))
164 - #set ($notDefaultTarget = $target != $defaultTarget)
165 - <div class="message-target message-target-$target#if ($notDefaultTarget) hidden#end">
166 - #set ($discard = $suggestPickerParams.put('class', 'targetName'))
167 - #set ($suggestPickerParams.disabled = $inEditMode || $notDefaultTarget)
168 - #set ($suggestPickerParams.value = $targetName)
169 - #if ($notDefaultTarget)
170 - #set ($suggestPickerParams.value = '')
171 - #end
172 - #if ($target == 'user')
173 - #userPicker(false, $suggestPickerParams)
174 - #else
175 - #groupPicker(false, $suggestPickerParams)
176 - #end
177 - </div>
178 - #end
166 + #if ($possibleTargets.contains('user'))
167 + <div class="message-target message-target-user#if ($defaultTarget != 'user') hidden#end">
168 + #set ($discard = $userPickerParams.put('class', 'targetName'))
169 + #set ($userPickerParams.disabled = $inEditMode || $defaultTarget != 'user')
170 + #userPicker(true, $userPickerParams)
171 + </div>
179 179   #end
173 + #if ($possibleTargets.contains('group'))
174 + <div class="message-target message-target-group#if ($defaultTarget != 'group') hidden#end">
175 + #set ($discard = $userPickerParams.put('class', 'targetName'))
176 + #set ($userPickerParams.disabled = $inEditMode || $defaultTarget != 'group')
177 + #groupPicker(true, $userPickerParams)
178 + </div>
179 + #end
180 180   <div class="message-target message-target-default">
181 181   <input type="hidden" name="targetName" value="$!escapetool.xml($targetName)" class="targetName" />
182 182   </div>

Need help?

If you need help with XWiki you can contact: