Modifications pour le document Message Sender Macro
Modifié par superadmin le 2021/12/12 21:56
modifié par Paul Libbrecht (admin)
sur 2016/07/26 21:59
sur 2016/07/26 21:59
modifié par Administrator
sur 2013/06/04 10:06
sur 2013/06/04 10:06
Commentaire de modification :
Import
Résumé
Détails
- Propriétés de la Page
-
- Auteur du document
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. adminPolx1 +XWiki.Admin - Masqué
-
... ... @@ -1,1 +1,1 @@ 1 - true1 +false
- XWiki.JavaScriptExtension[0]
-
- Code
-
... ... @@ -1,5 +1,5 @@ 1 1 #set ($userSuggestScope = 'local') 2 -#if ($services.w iki.user&& $services.wiki.user.userScope!= "LOCAL_ONLY")2 +#if ($services.workspace && $services.workspace.isWorkspace($xcontext.database)) 3 3 #set ($userSuggestScope = 'global') 4 4 #end 5 5 var XWiki = (function (XWiki) { ... ... @@ -41,8 +41,14 @@ 41 41 this.enhanceSelect(); 42 42 }, 43 43 prepareTargetInput : function(event, element) { 44 + if (event) { 45 + element.blur(); 46 + } 47 + $w(element.className).each(function(classname) { 48 + element.removeClassName(classname) 49 + }); 44 44 var targetType = element.options[element.selectedIndex].value; 45 - element. className=targetType;51 + element.addClassName(targetType); 46 46 if (!element.__targetNameInput) {return;} 47 47 if (this.targetsWithName.indexOf(targetType) < 0) { 48 48 element.__targetNameInput.addClassName('hidden'); ... ... @@ -50,14 +50,10 @@ 50 50 element.__targetNameInput.__x_suggest.detach(); 51 51 } 52 52 } else { 53 - // Focus the text input so that the place-holder value is cleared if present. Otherwise the user picker will treat 54 - // the place-holder value as if it was typed by the user and will automatically select the corresponding suggestion. 55 - element.__targetNameInput.removeClassName('hidden').activate(); 56 - // Defer the creation of the user picker to allow the focus listeners to be called first (in order to clear the 57 - // place-holder value). 58 - this.suggestParameters[targetType] && function() { 59 + element.__targetNameInput.removeClassName('hidden'); 60 + if (this.suggestParameters[targetType]) { 59 59 new CustomUserPicker(element.__targetNameInput, this.suggestParameters[targetType]); 60 - } .bind(this).defer();62 + } 61 61 } 62 62 }, 63 63 enhanceSelect: function () {
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -2,7 +2,7 @@ 2 2 3 3 .messagestream-tools { 4 4 position: relative; 5 - margin: .5em01em;5 + margin: 2px 0; 6 6 } 7 7 .messagestream-tools .accepted-suggestions { 8 8 display: inline; ... ... @@ -21,6 +21,7 @@ 21 21 background-image: url("$xwiki.getSkinFile('icons/silk/group.png')"); 22 22 } 23 23 .messagestream select { 24 + padding: .2em; 24 24 width: auto; 25 25 } 26 26 .messagestream input.targetName {
- XWiki.WikiMacroClass[0]
-
- Code de la macro
-
... ... @@ -8,7 +8,7 @@ 8 8 #set ($configObj = $xwiki.getDocument($config).getObject($config)) 9 9 #set ($isMessageStreamActive = ("$configObj.getProperty('active').value" == '1')) 10 10 11 -#set ($currentUser = $services.model.serialize($ xcontext.userReference, 'default'))11 +#set ($currentUser = $services.model.serialize($context.userReference, 'default')) 12 12 13 13 #set ($activityActionsMap = { 14 14 'publicMessage': 'icons/silk/user_comment.png', ... ... @@ -35,8 +35,6 @@ 35 35 ## 36 36 ## Skin Extensions 37 37 ##-------------------------------------------------------------- 38 -#set ($discard = $xwiki.jsfx.use('uicomponents/suggest/suggestPicker.js')) 39 -#set ($discard = $xwiki.jsfx.use('uicomponents/widgets/userpicker/userPicker.js')) 40 40 #set ($discard = $xwiki.ssx.use('Main.Activity')) 41 41 #set ($discard = $xwiki.ssx.use('Main.MessageSenderMacro')) 42 42 #set ($discard = $xwiki.jsx.use('Main.MessageSenderMacro')) ... ... @@ -44,7 +44,7 @@ 44 44 45 45 {{velocity}} 46 46 #if ($isMessageStreamActive) 47 - #set ($xredirect = $doc.getURL($ xcontext.action, $!{request.queryString}))45 + #set ($xredirect = $doc.getURL($context.action, $!{request.queryString})) 48 48 #set ($errorMessageKeyPrefix = "messageSender.post.error.") 49 49 #set ($errorMessage = $request.session.getAttribute("${errorMessageKeyPrefix}${xredirect}")) 50 50 #if ("$!errorMessage" != '') ... ... @@ -57,52 +57,47 @@ 57 57 ## 58 58 #elseif ("$!{request.xaction}" != '') 59 59 #if ("$!{request.xaction}" == 'postMessage') 60 - #if(!$services.csrf.isTokenValid(${request.form_token})) 61 - #set($redirectURL = $services.csrf.getResubmissionURL()) 62 - $response.sendRedirect($redirectURL) 58 + #set ($message = "$!{request.messagestream_message.trim()}") 59 + #if ($message == '') 60 + ## Do nothing with empty messages 61 + #if ("$!{request.xredirect}" != '') 62 + $response.sendRedirect(${request.xredirect}) 63 + #end 63 63 #else 64 - #set ($message = "$!{request.messagestream_message.trim()}") 65 - #if ($message == '') 66 - ## Do nothing with empty messages 67 - #if ("$!{request.xredirect}" != '') 68 - $response.sendRedirect(${request.xredirect}) 65 + #set ($success = false) 66 + #if (!$isGuest) 67 + #set ($messageType = "$!{request.visibilityLevel}") 68 + #if ($messageType == 'everyone') 69 + #set ($success = $services.messageStream.postPublicMessage($message)) 70 + #elseif ($messageType == 'followers') 71 + #set ($success = $services.messageStream.postPersonalMessage($message)) 72 + #elseif ($messageType == 'group') 73 + #set ($success = $services.messageStream.postMessageToGroup($message, $services.model.resolveDocument("$!{request.targetName}"))) 74 + #elseif ($messageType == 'user') 75 + #set ($success = $services.messageStream.postDirectMessageToUser($message, $services.model.resolveDocument("$!{request.targetName}"))) 69 69 #end 70 - #else 71 - #set ($success = false) 72 - #if (!$isGuest) 73 - #set ($messageType = "$!{request.visibilityLevel}") 74 - #if ($messageType == 'everyone') 75 - #set ($success = $services.messageStream.postPublicMessage($message)) 76 - #elseif ($messageType == 'followers') 77 - #set ($success = $services.messageStream.postPersonalMessage($message)) 78 - #elseif ($messageType == 'group') 79 - #set ($success = $services.messageStream.postMessageToGroup($message, $services.model.resolveDocument("$!{request.targetName}"))) 80 - #elseif ($messageType == 'user') 81 - #set ($success = $services.messageStream.postDirectMessageToUser($message, $services.model.resolveDocument("$!{request.targetName}"))) 82 - #end 83 - #end 84 - #if (!$success) 85 - #if ($request.xpage == 'plain') 86 - #if ($isGuest) 87 - $response.setStatus(401)## Unauthorized 88 - #else 89 - $response.setStatus(403)## Forbidden 90 - #end 91 - $services.localization.render('xe.activity.messages.submit.failed') 92 - #elseif ("$!{request.xredirect}" != '') 93 - ## Pass the error message in the xredirect so that we display it in the calling page and not in the macro page. 94 - $request.session.setAttribute("${errorMessageKeyPrefix}${request.xredirect}", $services.localization.render('xe.activity.messages.submit.failed')) 95 - $response.sendRedirect($request.xredirect) 77 + #end 78 + #if (!$success) 79 + #if ($request.xpage == 'plain') 80 + #if ($isGuest) 81 + $response.setStatus(401)## Unauthorized 96 96 #else 97 - {{error}}$services.localization.render('xe.activity.messages.submit.failed'){{/error}} 98 - 83 + $response.setStatus(403)## Forbidden 99 99 #end 85 + $services.localization.render('xe.activity.messages.submit.failed') 100 100 #elseif ("$!{request.xredirect}" != '') 101 - $response.sendRedirect(${request.xredirect}) 102 - #elseif ($request.xpage == 'plain') 103 - ## Just print something for confirmation. 104 - $services.localization.render('xe.activity.messages.submit.success') 87 + ## Pass the error message in the xredirect so that we display it in the calling page and not in the macro page. 88 + $request.session.setAttribute("${errorMessageKeyPrefix}${request.xredirect}", $services.localization.render('xe.activity.messages.submit.failed')) 89 + $response.sendRedirect($request.xredirect) 90 + #else 91 + {{error}}$services.localization.render('xe.activity.messages.submit.failed'){{/error}} 92 + 105 105 #end 94 + #elseif ("$!{request.xredirect}" != '') 95 + $response.sendRedirect(${request.xredirect}) 96 + #elseif ($request.xpage == 'plain') 97 + ## Just print something for confirmation. 98 + $services.localization.render('xe.activity.messages.submit.success') 106 106 #end 107 107 #end 108 108 #end ... ... @@ -122,23 +122,23 @@ 122 122 #end 123 123 <div class='activityContent'> 124 124 #if(!$inEditMode) 125 - ## CSRF prevention 126 - <input type="hidden" name="form_token" value="$!{services.csrf.getToken()}" /> 127 - <input type='hidden' name='xaction' value='postMessage' /> 118 + <input type='hidden' name='xaction' value='postMessage' /> 128 128 #end 129 - #activitySnapshot($ xcontext.user, 'personalMessage')120 + #activitySnapshot($context.user, 'personalMessage') 130 130 <div class='messagestream-data'> 131 131 <textarea name='messagestream_message' rows='3' cols='40'#if($inEditMode) disabled='disabled'#end></textarea> 132 132 </div> 133 133 <div class='messagestream-tools'> 134 - #set ($possibleTargets = $xcontext.macro.params.get('visibilityOptions').split('\s*,\s*')) 125 + #set ($targetClassName = '') 126 + ## 127 + #set ($possibleTargets = $context.macro.params.get('visibilityOptions').split('\s*,\s*')) 135 135 #if (!$possibleTargets) 136 136 #set ($possibleTargets = $configClass.get('visibilityLevel').getListValues()) 137 137 #end 138 138 ## 139 - #set ($targetName = $ xcontext.macro.params.get('visibilityParameter'))132 + #set ($targetName = $context.macro.params.get('visibilityParameter')) 140 140 ## 141 - #set ($defaultTarget = $ xcontext.macro.params.get('visibility'))134 + #set ($defaultTarget = $context.macro.params.get('visibility')) 142 142 #if (!$defaultTarget) 143 143 #if ($doc.getObject('XWiki.XWikiGroups')) 144 144 #set ($defaultTarget = 'group') ... ... @@ -154,6 +154,10 @@ 154 154 #set ($defaultTarget = 'everyone') 155 155 #end 156 156 #end 150 + #if (!$targetName) 151 + #set ($targetName = ${services.localization.render('xe.activity.messages.visibility.targetName.tip')}) 152 + #set ($targetClassName = 'withTip') 153 + #end 157 157 <label>$services.localization.render('xe.activity.messages.visibility') 158 158 <select name='visibilityLevel'#if($inEditMode) disabled='disabled'#end> 159 159 #foreach ($target in $possibleTargets) ... ... @@ -163,8 +163,7 @@ 163 163 </label> 164 164 <label for="targetName$!{targetNameCounter}"> 165 165 <span class='hidden'>Name:</span> 166 - <input type="text" name="targetName" id="targetName$!targetNameCounter" class="targetName withTip useTitleAsTip" value="$!targetName" size="15" 167 - title="$services.localization.render('xe.activity.messages.visibility.targetName.tip')" #if ($inEditMode) disabled="disabled"#end/> 163 + <input type='text' name='targetName' id="targetName$!{targetNameCounter}" class="targetName $!{targetClassName}" value="$!{targetName}" size='15'#if($inEditMode) disabled='disabled'#end/> 168 168 </label> 169 169 #if (!$targetNameCounter) 170 170 #set ($targetNameCounter = 1)