|
27 | 27 | {/capture} |
28 | 28 |
|
29 | 29 | {capture assign='headContent'} |
30 | | - <link rel="alternate" type="application/rss+xml" title="{lang}wcf.global.button.rss{/lang}" href="{link controller='ConversationRssFeed'}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}"> |
| 30 | + <link rel="alternate" type="application/rss+xml" title="{lang}wcf.global.button.rss{/lang}" href="{link controller='ConversationRssFeed'}at={$__wcf->getUser()->userID}-{$__wcf->getUser()->accessToken}{/link}"> |
31 | 31 | {/capture} |
32 | 32 |
|
33 | 33 | {capture assign='sidebarRight'} |
|
58 | 58 | <h2 class="boxTitle">{lang}wcf.conversation.filter.participants{/lang}</h2> |
59 | 59 |
|
60 | 60 | <div class="boxContent"> |
61 | | - <form action="{link controller='ConversationList'}{if $filter}filter={@$filter}&{/if}sortField={$sortField}&sortOrder={$sortOrder}&pageNo={@$pageNo}{/link}" method="post"> |
| 61 | + <form action="{link controller='ConversationList' sortField=$sortField sortOrder=$sortOrder pageNo=$pageNo}{if $filter}filter={$filter}{/if}{/link}" method="post"> |
62 | 62 | <dl> |
63 | 63 | <dt></dt> |
64 | 64 | <dd><label><textarea id="participants" name="participants" class="long">{implode from=$participants item=participant glue=','}{$participant}{/implode}</textarea></label></dd> |
|
92 | 92 | <div class="dropdownMenu"> |
93 | 93 | <ul class="scrollableDropdownMenu"> |
94 | 94 | {foreach from=$labelList item=label} |
95 | | - <li><a href="{link controller='ConversationList'}{if $filter}filter={@$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{$participant|rawurlencode}{/implode}&{/if}sortField={$sortField}&sortOrder={$sortOrder}&pageNo={@$pageNo}&labelID={@$label->labelID}{/link}"><span class="badge label{if $label->cssClassName} {@$label->cssClassName}{/if}" data-css-class-name="{if $label->cssClassName}{@$label->cssClassName}{/if}" data-label-id="{$label->labelID}">{$label->label}</span></a></li> |
| 95 | + <li><a href="{link controller='ConversationList' sortField=$sortField sortOrder=$sortOrder pageNo=$pageNo labelID=$label->labelID}{if $filter}filter={$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{unsafe:$participant|rawurlencode}{/implode}{/if}{/link}"><span class="badge label{if $label->cssClassName} {$label->cssClassName}{/if}" data-css-class-name="{if $label->cssClassName}{$label->cssClassName}{/if}" data-label-id="{$label->labelID}">{$label->label}</span></a></li> |
96 | 96 | {/foreach} |
97 | 97 | </ul> |
98 | 98 | <ul> |
99 | 99 | <li class="dropdownDivider"{if !$labelList|count} style="display: none;"{/if}></li> |
100 | | - <li><a href="{link controller='ConversationList'}{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}"><span class="badge label">{lang}wcf.conversation.label.disableFilter{/lang}</span></a></li> |
| 100 | + <li><a href="{link controller='ConversationList' sortField=$sortField sortOrder=$sortOrder pageNo=$pageNo}{if $filter}filter={$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{unsafe:$participant|rawurlencode}{/implode}{/if}{/link}"><span class="badge label">{lang}wcf.conversation.label.disableFilter{/lang}</span></a></li> |
101 | 101 | </ul> |
102 | 102 | </div> |
103 | 103 | </div> |
|
130 | 130 | {event name='boxes'} |
131 | 131 | {/capture} |
132 | 132 |
|
| 133 | +{assign var='linkParameters' value=''} |
| 134 | +{if $participants}{capture append='linkParameters'}&participants={implode from=$participants item=participant}{unsafe:$participant|rawurlencode}{/implode}{/capture}{/if} |
| 135 | +{if $labelID}{capture append='linkParameters'}&labelID={$labelID}{/capture}{/if} |
| 136 | + |
133 | 137 | {capture assign='contentInteractionPagination'} |
134 | | - {assign var='participantsParameter' value=''} |
135 | | - {if $participants}{capture assign='participantsParameter'}&participants={implode from=$participants item=participant}{$participant|rawurlencode}{/implode}{/capture}{/if} |
136 | | - {assign var='labelIDParameter' value=''} |
137 | | - {if $labelID}{assign var='labelIDParameter' value="&labelID=$labelID"}{/if} |
138 | | - {pages print=true assign=pagesLinks controller='ConversationList' link="filter=$filter$participantsParameter&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder$labelIDParameter"} |
| 138 | + {if $pages > 1} |
| 139 | + <woltlab-core-pagination |
| 140 | + page="{$pageNo}" |
| 141 | + count="{$pages}" |
| 142 | + url="{link controller='ConversationList' filter=$filter sortField=$sortField sortOrder=$sortOrder}{unsafe:$linkParameters}{/link}" |
| 143 | + ></woltlab-core-pagination> |
| 144 | + {/if} |
139 | 145 | {/capture} |
140 | 146 |
|
141 | 147 | {capture assign='contentInteractionButtons'} |
|
146 | 152 | {/capture} |
147 | 153 |
|
148 | 154 | {capture assign='contentInteractionDropdownItems'} |
149 | | - <li><a rel="alternate" href="{link controller='ConversationRssFeed'}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}">{lang}wcf.global.button.rss{/lang}</a></li> |
| 155 | + <li><a rel="alternate" href="{link controller='ConversationRssFeed'}at={$__wcf->getUser()->userID}-{$__wcf->getUser()->accessToken}{/link}">{lang}wcf.global.button.rss{/lang}</a></li> |
150 | 156 | {/capture} |
151 | 157 |
|
152 | 158 | {include file='header'} |
|
163 | 169 | <li class="columnSort"> |
164 | 170 | <ul class="inlineList"> |
165 | 171 | <li> |
166 | | - <a rel="nofollow" href="{link controller='ConversationList'}{if $filter}filter={@$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{$participant|rawurlencode}{/implode}&{/if}pageNo={@$pageNo}&sortField={$sortField}&sortOrder={if $sortOrder == 'ASC'}DESC{else}ASC{/if}{if $labelID}&labelID={@$labelID}{/if}{/link}"> |
| 172 | + <a rel="nofollow" href="{link controller='ConversationList' pageNo=$pageNo sortField=$sortField}{if $filter}filter={$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{unsafe:$participant|rawurlencode}{/implode}&{/if}sortOrder={if $sortOrder == 'ASC'}DESC{else}ASC{/if}{if $labelID}&labelID={$labelID}{/if}{/link}"> |
167 | 173 | {if $sortOrder === 'ASC'} |
168 | 174 | <span class="jsTooltip" title="{lang}wcf.global.sorting{/lang} ({lang}wcf.global.sortOrder.ascending{/lang})"> |
169 | 175 | {icon name='arrow-down-wide-short'} |
|
181 | 187 |
|
182 | 188 | <ul class="dropdownMenu"> |
183 | 189 | {foreach from=$validSortFields item=_sortField} |
184 | | - <li{if $_sortField === $sortField} class="active"{/if}><a rel="nofollow" href="{link controller='ConversationList'}{if $filter}filter={@$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{$participant|rawurlencode}{/implode}&{/if}pageNo={@$pageNo}&sortField={$_sortField}&sortOrder={if $sortField === $_sortField}{if $sortOrder === 'DESC'}ASC{else}DESC{/if}{else}{$sortOrder}{/if}{if $labelID}&labelID={@$labelID}{/if}{/link}">{if $_sortField == 'subject'}{lang}wcf.global.subject{/lang}{else}{lang}wcf.conversation.{$_sortField}{/lang}{/if}</a></li> |
| 190 | + <li{if $_sortField === $sortField} class="active"{/if}><a rel="nofollow" href="{link controller='ConversationList' pageNo=$pageNo sortField=$_sortField}{if $filter}filter={$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{unsafe:$participant|rawurlencode}{/implode}&{/if}sortOrder={if $sortField === $_sortField}{if $sortOrder === 'DESC'}ASC{else}DESC{/if}{else}{$sortOrder}{/if}{if $labelID}&labelID={$labelID}{/if}{/link}">{if $_sortField == 'subject'}{lang}wcf.global.subject{/lang}{else}{lang}wcf.conversation.{$_sortField}{/lang}{/if}</a></li> |
185 | 191 | {/foreach} |
186 | 192 | </ul> |
187 | 193 | </div> |
|
200 | 206 | <li class="columnIcon columnAvatar"> |
201 | 207 | {if $conversation->getUserProfile()->getAvatar()} |
202 | 208 | <div> |
203 | | - <p{if $conversation->isNew()} title="{lang}wcf.conversation.markAsRead.doubleClick{/lang}"{/if}>{@$conversation->getUserProfile()->getAvatar()->getImageTag(48)}</p> |
| 209 | + <p{if $conversation->isNew()} title="{lang}wcf.conversation.markAsRead.doubleClick{/lang}"{/if}>{unsafe:$conversation->getUserProfile()->getAvatar()->getImageTag(48)}</p> |
204 | 210 |
|
205 | 211 | {if $conversation->ownPosts && $conversation->userID != $__wcf->user->userID} |
206 | 212 | {if $__wcf->getUserProfileHandler()->getAvatar()} |
207 | | - <small class="myAvatar jsTooltip" title="{lang}wcf.conversation.ownPosts{/lang}">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(24)}</small> |
| 213 | + <small class="myAvatar jsTooltip" title="{lang}wcf.conversation.ownPosts{/lang}">{unsafe:$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(24)}</small> |
208 | 214 | {/if} |
209 | 215 | {/if} |
210 | 216 | </div> |
|
215 | 221 | <ul class="labelList"> |
216 | 222 | {content} |
217 | 223 | {foreach from=$conversation->getAssignedLabels() item=label} |
218 | | - <li><a href="{link controller='ConversationList'}{if $filter}filter={@$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{$participant|rawurlencode}{/implode}&{/if}sortField={$sortField}&sortOrder={$sortOrder}&pageNo={@$pageNo}&labelID={@$label->labelID}{/link}" class="badge label{if $label->cssClassName} {@$label->cssClassName}{/if}">{$label->label}</a></li> |
| 224 | + <li><a href="{link controller='ConversationList' sortField=$sortField sortOrder=$sortOrder pageNo=$pageNo labelID=$label->labelID}{if $filter}filter={$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{$participant|rawurlencode}{/implode}{/if}{/link}" class="badge label{if $label->cssClassName} {$label->cssClassName}{/if}">{$label->label}</a></li> |
219 | 225 | {/foreach} |
220 | 226 | {/content} |
221 | 227 | </ul> |
|
224 | 230 | <h3> |
225 | 231 | <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> |
226 | 232 | {if $conversation->replies} |
227 | | - <span class="badge messageGroupCounterMobile">{@$conversation->replies|shortUnit}</span> |
| 233 | + <span class="badge messageGroupCounterMobile">{$conversation->replies|shortUnit}</span> |
228 | 234 | {/if} |
229 | 235 | </h3> |
230 | 236 |
|
|
272 | 278 | <li class="columnStats"> |
273 | 279 | <dl class="plain statsDataList"> |
274 | 280 | <dt>{lang}wcf.conversation.replies{/lang}</dt> |
275 | | - <dd>{@$conversation->replies|shortUnit}</dd> |
| 281 | + <dd>{$conversation->replies|shortUnit}</dd> |
276 | 282 | </dl> |
277 | 283 | <dl class="plain statsDataList"> |
278 | 284 | <dt>{lang}wcf.conversation.participants{/lang}</dt> |
279 | | - <dd>{@$conversation->participants|shortUnit}</dd> |
| 285 | + <dd>{$conversation->participants|shortUnit}</dd> |
280 | 286 | </dl> |
281 | 287 |
|
282 | 288 | <div class="messageGroupListStatsSimple"> |
283 | 289 | {if $conversation->replies} |
284 | 290 | <span aria-label="{lang}wcf.conversation.replies{/lang}"> |
285 | 291 | {icon name='comment'} |
286 | 292 | </span> |
287 | | - {@$conversation->replies|shortUnit} |
| 293 | + {$conversation->replies|shortUnit} |
288 | 294 | {/if} |
289 | 295 | </div> |
290 | 296 | </li> |
291 | 297 | <li class="columnLastPost"> |
292 | 298 | {if $conversation->replies != 0 && $conversation->lastPostTime} |
293 | 299 | <div class="box32"> |
294 | | - <a href="{link controller='Conversation' object=$conversation}action=lastPost{/link}" class="jsTooltip" title="{lang}wcf.conversation.gotoLastPost{/lang}">{@$conversation->getLastPosterProfile()->getAvatar()->getImageTag(32)}</a> |
| 300 | + <a href="{link controller='Conversation' object=$conversation action='lastPost'}{/link}" class="jsTooltip" title="{lang}wcf.conversation.gotoLastPost{/lang}">{unsafe:$conversation->getLastPosterProfile()->getAvatar()->getImageTag(32)}</a> |
295 | 301 |
|
296 | 302 | <div> |
297 | 303 | <p> |
|
312 | 318 | {/if} |
313 | 319 |
|
314 | 320 | <footer class="contentFooter"> |
315 | | - {hascontent} |
| 321 | + {if $pages > 1} |
316 | 322 | <div class="paginationBottom"> |
317 | | - {content}{@$pagesLinks}{/content} |
| 323 | + <woltlab-core-pagination |
| 324 | + page="{$pageNo}" |
| 325 | + count="{$pages}" |
| 326 | + url="{link controller='ConversationList' filter=$filter sortField=$sortField sortOrder=$sortOrder}{unsafe:$linkParameters}{/link}" |
| 327 | + ></woltlab-core-pagination> |
318 | 328 | </div> |
319 | | - {/hascontent} |
| 329 | + {/if} |
320 | 330 |
|
321 | 331 | {hascontent} |
322 | 332 | <nav class="contentFooterNavigation"> |
|
337 | 347 | {/hascontent} |
338 | 348 | </footer> |
339 | 349 |
|
340 | | -<script data-relocate="true" src="{$__wcf->getPath()}js/WCF.Conversation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@LAST_UPDATE_TIME}"></script> |
| 350 | +<script data-relocate="true" src="{$__wcf->getPath()}js/WCF.Conversation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={LAST_UPDATE_TIME}"></script> |
341 | 351 | <script data-relocate="true"> |
342 | 352 | require([ |
343 | 353 | 'WoltLabSuite/Core/Language', |
|
373 | 383 | hasMarkedItems: {if $hasMarkedItems}true{else}false{/if}, |
374 | 384 | }); |
375 | 385 |
|
376 | | - const availableLabels = [{implode from=$labelList item=label}{ cssClassName: '{if $label->cssClassName}{unsafe:$label->cssClassName|encodeJS}{/if}', labelID: {@$label->labelID}, label: '{$label->label|encodeJS}', url: '{link controller='ConversationList' encode=false}labelID={$label->labelID}{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}' }{/implode} ]; |
| 386 | + const availableLabels = [{implode from=$labelList item=label}{ cssClassName: '{if $label->cssClassName}{unsafe:$label->cssClassName|encodeJS}{/if}', labelID: {$label->labelID}, label: '{$label->label|encodeJS}', url: '{link controller='ConversationList' encode=false sortField=$sortField sortOrder=$sortOrder pageNo=$pageNo}labelID={$label->labelID}{if $filter}&filter={$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{unsafe:$participant|rawurlencode}{/implode}{/if}{/link}' }{/implode} ]; |
377 | 387 | var $editorHandler = new WCF.Conversation.EditorHandler(availableLabels); |
378 | 388 | var $inlineEditor = new WCF.Conversation.InlineEditor('.conversation'); |
379 | 389 | $inlineEditor.setEditorHandler($editorHandler, 'list'); |
380 | 390 |
|
381 | 391 | ConversationClipboard.setup($editorHandler); |
382 | | - new LabelManager('{link controller='ConversationLabelForm'}{/link}', '{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}'); |
| 392 | + new LabelManager('{link controller='ConversationLabelForm'}{/link}', '{link controller='ConversationList' encode=false sortField=$sortField sortOrder=$sortOrder pageNo=$pageNo}{if $filter}filter={$filter}&{/if}{if !$participants|empty}participants={implode from=$participants item=participant}{unsafe:$participant|rawurlencode}{/implode}{/if}{/link}'); |
383 | 393 | |
384 | 394 | // mobile safari hover workaround |
385 | 395 | if ($(window).width() <= 800) { |
|
0 commit comments