Use guest support of UserFunctionTemplatePlugin
[GitHub/WoltLab/com.woltlab.wcf.conversation.git] / templates / conversationList.tpl
index 985cada43a50ef1eb8a11a317ce6b582fb086062..73c29f87c32977b196661dc73025a7ff75391ed5 100644 (file)
@@ -59,7 +59,7 @@
                                
                                <div class="formSubmit">
                                        <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
-                                       {@SECURITY_TOKEN_INPUT_TAG}
+                                       {csrfToken}
                                </div>
                        </form>
                </div>
                                                        {/hascontent}
                                                                
                                                        <h3>
-                                                               <a href="{if $conversation->isNew()}{link controller='Conversation' object=$conversation}action=firstNew{/link}{else}{link controller='Conversation' object=$conversation}{/link}{/if}" class="conversationLink messageGroupLink" data-conversation-id="{@$conversation->conversationID}">{$conversation->subject}</a>
+                                                               <a href="{if $conversation->isNew()}{link controller='Conversation' object=$conversation}action=firstNew{/link}{else}{$conversation->getLink()}{/if}" class="conversationLink messageGroupLink" data-object-id="{@$conversation->conversationID}">{$conversation->subject}</a>
                                                                {if $conversation->replies}
                                                                        <span class="badge messageGroupCounterMobile">{@$conversation->replies|shortUnit}</span>
                                                                {/if}
                                                        </aside>
                                                        
                                                        <ul class="inlineList dotSeparated small messageGroupInfo">
-                                                               <li class="messageGroupAuthor">{if $conversation->userID}<a href="{link controller='User' object=$conversation->getUserProfile()->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$conversation->userID}">{$conversation->username}</a>{else}{$conversation->username}{/if}</li>
+                                                               <li class="messageGroupAuthor">{user object=$conversation->getUserProfile()}</li>
                                                                <li class="messageGroupTime">{@$conversation->time|time}</li>
-                                                               <li class="messageGroupEditLink jsOnly"><a class="jsConversationInlineEditor">{lang}wcf.global.button.edit{/lang}</a></li>
+                                                               <li class="messageGroupEditLink jsOnly"><a href="#" class="jsConversationInlineEditor">{lang}wcf.global.button.edit{/lang}</a></li>
                                                                {event name='messageGroupInfo'}
                                                        </ul>
                                                        
                                                        {if $conversation->getParticipantSummary()|count}
                                                                <small class="conversationParticipantSummary">
                                                                        {assign var='participantSummaryCount' value=$conversation->getParticipantSummary()|count}
-                                                                       {lang}wcf.conversation.participants{/lang}: {implode from=$conversation->getParticipantSummary() item=participant}<a href="{link controller='User' object=$participant}{/link}" class="userLink{if $participant->hideConversation == 2} conversationLeft{/if}" data-user-id="{@$participant->userID}">{$participant->username}</a>{/implode}
+                                                                       {lang}wcf.conversation.participants{/lang}: {implode from=$conversation->getParticipantSummary() item=participant}<a href="{$participant->getLink()}" class="userLink{if $participant->hideConversation == 2} conversationLeft{/if}" data-object-id="{@$participant->userID}">{$participant->username}</a>{/implode}
                                                                        {if $participantSummaryCount < $conversation->participants}{lang}wcf.conversation.participants.other{/lang}{/if}
                                                                </small>
                                                        {/if}
                                                                <dd>{@$conversation->participants|shortUnit}</dd>
                                                        </dl>
                                                        
-                                                       <div class="messageGroupListStatsSimple" aria-label="{lang}wcf.conversation.replies{/lang}">{@$conversation->replies|shortUnit}</div>
+                                                       <div class="messageGroupListStatsSimple">{if $conversation->replies}<span class="icon icon16 fa-comment-o" aria-label="{lang}wcf.conversation.replies{/lang}"></span> {@$conversation->replies|shortUnit}{/if}</div>
                                                </li>
                                                <li class="columnLastPost">
                                                        {if $conversation->replies != 0 && $conversation->lastPostTime}
                                                                        
                                                                        <div>
                                                                                <p>
-                                                                                       {if $conversation->lastPosterID}
-                                                                                               <a href="{link controller='User' object=$conversation->getLastPosterProfile()->getDecoratedObject()}{/link}" class="userLink" data-user-id="{@$conversation->getLastPosterProfile()->userID}">{$conversation->lastPoster}</a>
-                                                                                       {else}
-                                                                                               {$conversation->lastPoster}
-                                                                                       {/if}
+                                                                                       {user object=$conversation->getLastPosterProfile()}
                                                                                </p>
                                                                                <small>{@$conversation->lastPostTime|time}</small>
                                                                        </div>
 
 <script data-relocate="true" src="{@$__wcf->getPath()}js/WCF.Conversation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@LAST_UPDATE_TIME}"></script>
 <script data-relocate="true">
-       require(['Language', 'WoltLabSuite/Core/Ui/ItemList/User'], function(Language, UiItemListUser) {
+       require(['Language', 'WoltLabSuite/Core/Controller/Popover', 'WoltLabSuite/Core/Ui/ItemList/User'], function(Language, ControllerPopover, UiItemListUser) {
                Language.addObject({
-                       'wcf.conversation.edit.addParticipants': '{lang}wcf.conversation.edit.addParticipants{/lang}',
-                       'wcf.conversation.edit.assignLabel': '{lang}wcf.conversation.edit.assignLabel{/lang}',
-                       'wcf.conversation.edit.close': '{lang}wcf.conversation.edit.close{/lang}',
-                       'wcf.conversation.edit.leave': '{lang}wcf.conversation.edit.leave{/lang}',
-                       'wcf.conversation.edit.open': '{lang}wcf.conversation.edit.open{/lang}',
-                       'wcf.conversation.edit.subject': '{lang}wcf.conversation.edit.subject{/lang}',
-                       'wcf.conversation.label.management': '{lang}wcf.conversation.label.management{/lang}',
-                       'wcf.conversation.label.management.addLabel.success': '{lang}wcf.conversation.label.management.addLabel.success{/lang}',
-                       'wcf.conversation.label.management.deleteLabel.confirmMessage': '{lang}wcf.conversation.label.management.deleteLabel.confirmMessage{/lang}',
-                       'wcf.conversation.label.management.editLabel': '{lang}wcf.conversation.label.management.editLabel{/lang}',
-                       'wcf.conversation.label.placeholder': '{lang}wcf.conversation.label.placeholder{/lang}',
-                       'wcf.conversation.leave.title': '{lang}wcf.conversation.leave.title{/lang}',
-                       'wcf.global.state.closed': '{lang}wcf.global.state.closed{/lang}',
-                       'wcf.global.subject': '{lang}wcf.global.subject{/lang}',
-                       'wcf.conversation.label.assignLabels': '{lang}wcf.conversation.label.assignLabels{/lang}'
+                       'wcf.conversation.edit.addParticipants': '{jslang}wcf.conversation.edit.addParticipants{/jslang}',
+                       'wcf.conversation.edit.assignLabel': '{jslang}wcf.conversation.edit.assignLabel{/jslang}',
+                       'wcf.conversation.edit.close': '{jslang}wcf.conversation.edit.close{/jslang}',
+                       'wcf.conversation.edit.leave': '{jslang}wcf.conversation.edit.leave{/jslang}',
+                       'wcf.conversation.edit.open': '{jslang}wcf.conversation.edit.open{/jslang}',
+                       'wcf.conversation.edit.subject': '{jslang}wcf.conversation.edit.subject{/jslang}',
+                       'wcf.conversation.label.management': '{jslang}wcf.conversation.label.management{/jslang}',
+                       'wcf.conversation.label.management.addLabel.success': '{jslang}wcf.conversation.label.management.addLabel.success{/jslang}',
+                       'wcf.conversation.label.management.deleteLabel.confirmMessage': '{jslang}wcf.conversation.label.management.deleteLabel.confirmMessage{/jslang}',
+                       'wcf.conversation.label.management.editLabel': '{jslang}wcf.conversation.label.management.editLabel{/jslang}',
+                       'wcf.conversation.label.placeholder': '{jslang}wcf.conversation.label.placeholder{/jslang}',
+                       'wcf.conversation.leave.title': '{jslang}wcf.conversation.leave.title{/jslang}',
+                       'wcf.global.state.closed': '{jslang}wcf.global.state.closed{/jslang}',
+                       'wcf.global.subject': '{jslang}wcf.global.subject{/jslang}',
+                       'wcf.conversation.label.assignLabels': '{jslang}wcf.conversation.label.assignLabels{/jslang}'
                });
                
                WCF.Clipboard.init('wcf\\page\\ConversationListPage', {@$hasMarkedItems}, { });
                
                new WCF.Conversation.Clipboard($editorHandler);
                new WCF.Conversation.Label.Manager('{link controller='ConversationList' encode=false}{if $filter}filter={@$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{$participant|rawurlencode}{/implode}&{/if}sortField={$sortField}&sortOrder={$sortOrder}&pageNo={@$pageNo}{/link}');
-               new WCF.Conversation.Preview();
                new WCF.Conversation.MarkAsRead();
                new WCF.Conversation.MarkAllAsRead();
                
                        excludedSearchValues: ['{$__wcf->user->username|encodeJS}'],
                        maxItems: 20
                });
+               
+               ControllerPopover.init({
+                       className: 'conversationLink',
+                       dboAction: 'wcf\\data\\conversation\\ConversationAction',
+                       identifier: 'com.woltlab.wcf.conversation'
+               });
        });
 </script>