Make use of the new API for the conversation feed (#192)
[GitHub/WoltLab/com.woltlab.wcf.conversation.git] / templates / conversationList.tpl
CommitLineData
cd6fe228 1{capture assign='pageTitle'}{if $filter}{lang}wcf.conversation.folder.{$filter}{/lang}{else}{$__wcf->getActivePage()->getTitle()}{/if}{if $pageNo > 1} - {lang}wcf.page.pageNo{/lang}{/if}{/capture}
9544b6b4 2
583b412e
MW
3{capture assign='contentHeader'}
4 <header class="contentHeader">
5 <div class="contentHeaderTitle">
cd6fe228 6 <h1 class="contentTitle">{if $filter}{lang}wcf.conversation.folder.{$filter}{/lang}{else}{$__wcf->getActivePage()->getTitle()}{/if}</h1>
583b412e
MW
7 </div>
8
0d511ff2
AE
9 {hascontent}
10 <nav class="contentHeaderNavigation">
11 <ul>
12 {content}
3f3d496b
AE
13 {if $__wcf->session->getPermission('user.conversation.canStartConversation')}
14 <li>
15 <a href="{link controller='ConversationAdd'}{/link}" title="{lang}wcf.conversation.add{/lang}" class="button buttonPrimary">
5fae5fbe 16 {icon name='plus'}
3f3d496b
AE
17 <span>{lang}wcf.conversation.button.add{/lang}</span>
18 </a>
19 </li>
20 {/if}
0d511ff2
AE
21 {event name='contentHeaderNavigation'}
22 {/content}
23 </ul>
24 </nav>
25 {/hascontent}
583b412e
MW
26 </header>
27{/capture}
9544b6b4 28
583b412e 29{capture assign='headContent'}
ba2cfa5a 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}">
583b412e 31{/capture}
9544b6b4 32
fd8ee5b1 33{capture assign='sidebarRight'}
7cd36813
MW
34 <section class="box">
35 <h2 class="boxTitle">{lang}wcf.conversation.folders{/lang}</h2>
331b1cdf 36
7cd36813
MW
37 <div class="boxContent">
38 <nav>
7961609e
MW
39 <ol class="boxMenu">
40 <li{if $filter == ''} class="active"{/if}>
41 <a class="boxMenuLink" href="{link controller='ConversationList'}{/link}"><span class="boxMenuLinkTitle">{lang}wcf.conversation.conversations{/lang}</span>{if $conversationCount} <span class="badge">{#$conversationCount}</span>{/if}</a>
7961609e
MW
42 </li>
43 <li{if $filter == 'draft'} class="active"{/if}>
44 <a class="boxMenuLink" href="{link controller='ConversationList'}filter=draft{/link}"><span class="boxMenuLinkTitle">{lang}wcf.conversation.folder.draft{/lang}</span>{if $draftCount} <span class="badge">{#$draftCount}</span>{/if}</a>
45 </li>
46 <li{if $filter == 'outbox'} class="active"{/if}>
47 <a class="boxMenuLink" href="{link controller='ConversationList'}filter=outbox{/link}"><span class="boxMenuLinkTitle">{lang}wcf.conversation.folder.outbox{/lang}</span>{if $outboxCount} <span class="badge">{#$outboxCount}</span>{/if}</a>
48 </li>
49 <li{if $filter == 'hidden'} class="active"{/if}>
50 <a class="boxMenuLink" href="{link controller='ConversationList'}filter=hidden{/link}"><span class="boxMenuLinkTitle">{lang}wcf.conversation.folder.hidden{/lang}</span>{if $hiddenCount} <span class="badge">{#$hiddenCount}</span>{/if}</a>
51 </li>
52 </ol>
7cd36813
MW
53 </nav>
54 </div>
55 </section>
3d6dd2ed
MS
56
57 <section class="box">
58 <h2 class="boxTitle">{lang}wcf.conversation.filter.participants{/lang}</h2>
59
60 <div class="boxContent">
61 <form action="{link controller='ConversationList'}{if $filter}filter={@$filter}&{/if}sortField={$sortField}&sortOrder={$sortOrder}&pageNo={@$pageNo}{/link}" method="post">
62 <dl>
63 <dt></dt>
64 <dd><label><textarea id="participants" name="participants" class="long">{implode from=$participants item=participant glue=','}{$participant}{/implode}</textarea></label></dd>
65 </dl>
66
67 <div class="formSubmit">
0b498318 68 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
aa94c120 69 {csrfToken}
3d6dd2ed
MS
70 </div>
71 </form>
72 </div>
73 </section>
74
583b412e 75 <section class="box jsOnly">
7cd36813 76 <h2 class="boxTitle">{lang}wcf.conversation.label{/lang}</h2>
331b1cdf 77
7cd36813
MW
78 <div class="boxContent">
79 <div id="conversationLabelFilter" class="dropdown">
80 <div class="dropdownToggle" data-toggle="conversationLabelFilter">
81 {if $labelID}
82 {foreach from=$labelList item=label}
83 {if $label->labelID == $labelID}
fb88a8cb 84 <span class="badge label{if $label->cssClassName} {$label->cssClassName}{/if}">{$label->label}</span>
7cd36813
MW
85 {/if}
86 {/foreach}
87 {else}
88 <span class="badge">{lang}wcf.conversation.label.filter{/lang}</span>
89 {/if}
90 </div>
91
92 <div class="dropdownMenu">
93 <ul class="scrollableDropdownMenu">
94 {foreach from=$labelList item=label}
fb88a8cb 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>
7cd36813
MW
96 {/foreach}
97 </ul>
98 <ul>
99 <li class="dropdownDivider"{if !$labelList|count} style="display: none;"{/if}></li>
3d6dd2ed 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>
7cd36813
MW
101 </ul>
102 </div>
331b1cdf 103 </div>
331b1cdf 104 </div>
7961609e
MW
105
106 <div class="boxContent">
6404c8be 107 <button type="button" id="manageLabel" class="button">{lang}wcf.conversation.label.management{/lang}</button>
494ac5c2 108 </div>
7cd36813 109 </section>
331b1cdf 110
22f0bc73 111 {event name='beforeQuotaBox'}
3a49e3c9 112
7cd36813
MW
113 <section class="box conversationQuota">
114 <h2 class="boxTitle">{lang}wcf.conversation.quota{/lang}</h2>
331b1cdf 115
7cd36813 116 <div class="boxContent">
331b1cdf
MW
117 {assign var='conversationCount' value=$__wcf->getConversationHandler()->getConversationCount()}
118 {assign var='maxConversationCount' value=$__wcf->session->getPermission('user.conversation.maxConversations')}
a740cedd 119 {assign var='conversationCountValue' value=$conversationCount/$maxConversationCount*100}
401ebb82
MW
120 <meter class="conversationQuotaMeter" min="0" max="100" low="90" high="99" value="{$conversationCountValue|ceil}" aria-label="{lang}wcf.conversation.quota{/lang}">
121 {#$conversationCountValue}&nbsp;%
a740cedd 122 </meter>
9b8f4622 123 <p><small>{lang}wcf.conversation.quota.description{/lang}</small></p>
331b1cdf 124 </div>
7cd36813 125 </section>
c18fa102
MW
126
127 {event name='boxes'}
9544b6b4
MW
128{/capture}
129
d855a993
MW
130{capture assign='contentInteractionPagination'}
131 {assign var='participantsParameter' value=''}
132 {if $participants}{capture assign='participantsParameter'}&participants={implode from=$participants item=participant}{$participant|rawurlencode}{/implode}{/capture}{/if}
133 {assign var='labelIDParameter' value=''}
134 {if $labelID}{assign var='labelIDParameter' value="&labelID=$labelID"}{/if}
135 {pages print=true assign=pagesLinks controller='ConversationList' link="filter=$filter$participantsParameter&pageNo=%d&sortField=$sortField&sortOrder=$sortOrder$labelIDParameter"}
d7649d82
AE
136{/capture}
137
7096c139 138{capture assign='contentInteractionButtons'}
6404c8be 139 <button type="button" class="markAllAsReadButton contentInteractionButton button small jsOnly">
5fae5fbe 140 {icon name='check'}
3f3d496b
AE
141 <span>{lang}wcf.global.button.markAllAsRead{/lang}</span>
142 </button>
7096c139
MW
143{/capture}
144
d855a993 145{capture assign='contentInteractionDropdownItems'}
ba2cfa5a 146 <li><a rel="alternate" href="{link controller='ConversationRssFeed'}at={@$__wcf->getUser()->userID}-{@$__wcf->getUser()->accessToken}{/link}">{lang}wcf.global.button.rss{/lang}</a></li>
d855a993 147{/capture}
9544b6b4 148
d855a993 149{include file='header'}
9544b6b4
MW
150
151{if !$items}
0ba37e60 152 <woltlab-core-notice type="info">{lang}wcf.conversation.noConversations{/lang}</woltlab-core-notice>
9544b6b4 153{else}
7cd36813 154 <div class="section tabularBox messageGroupList conversationList jsClipboardContainer" data-type="com.woltlab.wcf.conversation.conversation">
ba4a0151
MW
155 <ol class="tabularList">
156 <li class="tabularListRow tabularListRowHead">
157 <ol class="tabularListColumns">
0b498318 158 <li class="columnMark jsOnly"><label><input type="checkbox" class="jsClipboardMarkAll"></label></li>
c18fa102 159
37f3e150
MW
160 <li class="columnSort">
161 <ul class="inlineList">
162 <li>
163 <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}">
3f3d496b
AE
164 {if $sortOrder === 'ASC'}
165 <span class="jsTooltip" title="{lang}wcf.global.sorting{/lang} ({lang}wcf.global.sortOrder.ascending{/lang})">
5fae5fbe 166 {icon name='arrow-down-wide-short'}
3f3d496b
AE
167 </span>
168 {else}
169 <span class="jsTooltip" title="{lang}wcf.global.sorting{/lang} ({lang}wcf.global.sortOrder.descending{/lang})">
5fae5fbe 170 {icon name='arrow-down-short-wide'}
3f3d496b
AE
171 </span>
172 {/if}
37f3e150
MW
173 </a>
174 </li>
175 <li>
176 <div class="dropdown">
177 <span class="dropdownToggle">{if $sortField == 'subject'}{lang}wcf.global.subject{/lang}{else}{lang}wcf.conversation.{$sortField}{/lang}{/if}</span>
178
179 <ul class="dropdownMenu">
180 {foreach from=$validSortFields item=_sortField}
181 <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>
182 {/foreach}
183 </ul>
184 </div>
185 </li>
186 </ul>
187 </li>
ba4a0151
MW
188 </ol>
189 </li>
9544b6b4 190
ba4a0151
MW
191 {foreach from=$objects item=conversation}
192 <li class="tabularListRow">
fb88a8cb 193 <ol class="tabularListColumns messageGroup conversation jsClipboardObject{if $conversation->isNew()} new{/if}" data-conversation-id="{$conversation->conversationID}" data-label-ids="[ {implode from=$conversation->getAssignedLabels() item=label}{$label->labelID}{/implode} ]" data-is-closed="{$conversation->isClosed}" data-can-close-conversation="{if $conversation->userID == $__wcf->getUser()->userID}1{else}0{/if}" data-can-add-participants="{if $conversation->canAddParticipants()}1{else}0{/if}">
ba4a0151 194 <li class="columnMark jsOnly">
fb88a8cb 195 <label><input type="checkbox" class="jsClipboardItem" data-object-id="{$conversation->conversationID}"></label>
ba4a0151
MW
196 </li>
197 <li class="columnIcon columnAvatar">
9544b6b4
MW
198 {if $conversation->getUserProfile()->getAvatar()}
199 <div>
7cd36813 200 <p{if $conversation->isNew()} title="{lang}wcf.conversation.markAsRead.doubleClick{/lang}"{/if}>{@$conversation->getUserProfile()->getAvatar()->getImageTag(48)}</p>
9544b6b4
MW
201
202 {if $conversation->ownPosts && $conversation->userID != $__wcf->user->userID}
203 {if $__wcf->getUserProfileHandler()->getAvatar()}
cf1062c1 204 <small class="myAvatar jsTooltip" title="{lang}wcf.conversation.ownPosts{/lang}">{@$__wcf->getUserProfileHandler()->getAvatar()->getImageTag(24)}</small>
9544b6b4
MW
205 {/if}
206 {/if}
207 </div>
208 {/if}
ba4a0151
MW
209 </li>
210 <li class="columnSubject">
9cd031f5
MW
211 {hascontent}
212 <ul class="labelList">
213 {content}
214 {foreach from=$conversation->getAssignedLabels() item=label}
3d6dd2ed 215 <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>
9cd031f5
MW
216 {/foreach}
217 {/content}
218 </ul>
219 {/hascontent}
9544b6b4 220
f54c0746 221 <h3>
fb88a8cb 222 <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>
7dd74a57
MW
223 {if $conversation->replies}
224 <span class="badge messageGroupCounterMobile">{@$conversation->replies|shortUnit}</span>
225 {/if}
f54c0746 226 </h3>
9544b6b4 227
8d6015ca 228 <aside class="statusDisplay" role="presentation">
9544b6b4 229 <ul class="statusIcons">
3f3d496b
AE
230 {if $conversation->isClosed}
231 <li>
232 <span class="jsIconLock jsTooltip" title="{lang}wcf.global.state.closed{/lang}">
5fae5fbe 233 {icon name='lock'}
3f3d496b
AE
234 </span>
235 </li>
236 {/if}
237 {if $conversation->attachments}
238 <li>
239 <span class="jsIconAttachment jsTooltip" title="{lang}wcf.conversation.attachments{/lang}">
5fae5fbe 240 {icon name='paperclip'}
3f3d496b
AE
241 </span>
242 </li>
243 {/if}
9544b6b4
MW
244 </ul>
245 </aside>
246
71c837ea 247 <ul class="inlineList dotSeparated small messageGroupInfo">
eb66e389 248 <li class="messageGroupAuthor">{user object=$conversation->getUserProfile()}</li>
b007a2e7 249 <li class="messageGroupTime">{time time=$conversation->time}</li>
e01fb03d 250 <li class="messageGroupEditLink jsOnly"><a href="#" class="jsConversationInlineEditor">{lang}wcf.global.button.edit{/lang}</a></li>
6c5730e5
MW
251 {event name='messageGroupInfo'}
252 </ul>
9544b6b4 253
7dd74a57
MW
254 <ul class="messageGroupInfoMobile">
255 <li class="messageGroupAuthorMobile">{$conversation->username}</li>
b007a2e7 256 <li class="messageGroupLastPostTimeMobile">{time time=$conversation->lastPostTime}</li>
7dd74a57
MW
257 </ul>
258
f34884b9 259 {if $conversation->getParticipantSummary()|count}
d89a6adf 260 <small class="conversationParticipantSummary">
6a3c256b 261 {assign var='participantSummaryCount' value=$conversation->getParticipantSummary()|count}
fb88a8cb 262 {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}
7acdb950 263 {if $participantSummaryCount < $conversation->participants}{lang}wcf.conversation.participants.other{/lang}{/if}
f34884b9
MW
264 </small>
265 {/if}
c18fa102
MW
266
267 {event name='conversationData'}
ba4a0151
MW
268 </li>
269 <li class="columnStats">
270 <dl class="plain statsDataList">
271 <dt>{lang}wcf.conversation.replies{/lang}</dt>
272 <dd>{@$conversation->replies|shortUnit}</dd>
273 </dl>
274 <dl class="plain statsDataList">
275 <dt>{lang}wcf.conversation.participants{/lang}</dt>
276 <dd>{@$conversation->participants|shortUnit}</dd>
277 </dl>
278
3f3d496b
AE
279 <div class="messageGroupListStatsSimple">
280 {if $conversation->replies}
281 <span aria-label="{lang}wcf.conversation.replies{/lang}">
5fae5fbe 282 {icon name='comment'}
3f3d496b
AE
283 </span>
284 {@$conversation->replies|shortUnit}
285 {/if}
286 </div>
ba4a0151
MW
287 </li>
288 <li class="columnLastPost">
f7ac06dc 289 {if $conversation->replies != 0 && $conversation->lastPostTime}
ba4a0151 290 <div class="box32">
7cd36813 291 <a href="{link controller='Conversation' object=$conversation}action=lastPost{/link}" class="jsTooltip" title="{lang}wcf.conversation.gotoLastPost{/lang}">{@$conversation->getLastPosterProfile()->getAvatar()->getImageTag(32)}</a>
9544b6b4 292
f54c0746
MW
293 <div>
294 <p>
eb66e389 295 {user object=$conversation->getLastPosterProfile()}
f54c0746 296 </p>
b007a2e7 297 <small>{time time=$conversation->lastPostTime}</small>
f54c0746 298 </div>
9544b6b4
MW
299 </div>
300 {/if}
ba4a0151 301 </li>
c18fa102
MW
302
303 {event name='columns'}
ba4a0151 304 </ol>
494ac5c2 305 </li>
ba4a0151
MW
306 {/foreach}
307 </ol>
9544b6b4
MW
308 </div>
309{/if}
310
583b412e
MW
311<footer class="contentFooter">
312 {hascontent}
313 <div class="paginationBottom">
314 {content}{@$pagesLinks}{/content}
315 </div>
316 {/hascontent}
9544b6b4 317
0d511ff2
AE
318 {hascontent}
319 <nav class="contentFooterNavigation">
320 <ul>
321 {content}
3f3d496b
AE
322 {if $__wcf->session->getPermission('user.conversation.canStartConversation')}
323 <li>
324 <a href="{link controller='ConversationAdd'}{/link}" title="{lang}wcf.conversation.add{/lang}" class="button buttonPrimary">
5fae5fbe 325 {icon name='plus'}
3f3d496b
AE
326 <span>{lang}wcf.conversation.button.add{/lang}</span>
327 </a>
328 </li>
329 {/if}
0d511ff2
AE
330 {event name='contentFooterNavigation'}
331 {/content}
332 </ul>
333 </nav>
334 {/hascontent}
583b412e 335</footer>
9544b6b4 336
fb88a8cb 337<script data-relocate="true" src="{$__wcf->getPath()}js/WCF.Conversation{if !ENABLE_DEBUG_MODE}.min{/if}.js?v={@LAST_UPDATE_TIME}"></script>
583b412e 338<script data-relocate="true">
c7a8a9a9
MS
339 require([
340 'WoltLabSuite/Core/Language',
341 'WoltLabSuite/Core/Controller/Popover',
342 'WoltLabSuite/Core/Ui/ItemList/User',
343 'WoltLabSuite/Core/Controller/Clipboard',
344 ], (
345 Language,
346 ControllerPopover,
347 UiItemListUser,
348 ControllerClipboard
349 ) => {
583b412e 350 Language.addObject({
9361d1b8
MW
351 'wcf.conversation.edit.addParticipants': '{jslang}wcf.conversation.edit.addParticipants{/jslang}',
352 'wcf.conversation.edit.assignLabel': '{jslang}wcf.conversation.edit.assignLabel{/jslang}',
353 'wcf.conversation.edit.close': '{jslang}wcf.conversation.edit.close{/jslang}',
354 'wcf.conversation.edit.leave': '{jslang}wcf.conversation.edit.leave{/jslang}',
355 'wcf.conversation.edit.open': '{jslang}wcf.conversation.edit.open{/jslang}',
356 'wcf.conversation.edit.subject': '{jslang}wcf.conversation.edit.subject{/jslang}',
357 'wcf.conversation.label.management': '{jslang}wcf.conversation.label.management{/jslang}',
358 'wcf.conversation.label.management.addLabel.success': '{jslang}wcf.conversation.label.management.addLabel.success{/jslang}',
359 'wcf.conversation.label.management.deleteLabel.confirmMessage': '{jslang}wcf.conversation.label.management.deleteLabel.confirmMessage{/jslang}',
360 'wcf.conversation.label.management.editLabel': '{jslang}wcf.conversation.label.management.editLabel{/jslang}',
361 'wcf.conversation.label.placeholder': '{jslang}wcf.conversation.label.placeholder{/jslang}',
362 'wcf.conversation.leave.title': '{jslang}wcf.conversation.leave.title{/jslang}',
363 'wcf.global.state.closed': '{jslang}wcf.global.state.closed{/jslang}',
364 'wcf.global.subject': '{jslang}wcf.global.subject{/jslang}',
365 'wcf.conversation.label.assignLabels': '{jslang}wcf.conversation.label.assignLabels{/jslang}'
583b412e
MW
366 });
367
c7a8a9a9
MS
368 ControllerClipboard.setup({
369 pageClassName: 'wcf\\page\\ConversationListPage',
370 hasMarkedItems: {if $hasMarkedItems}true{else}false{/if},
371 });
583b412e
MW
372
373 var $editorHandler = new WCF.Conversation.EditorHandler();
374 var $inlineEditor = new WCF.Conversation.InlineEditor('.conversation');
375 $inlineEditor.setEditorHandler($editorHandler, 'list');
376
377 new WCF.Conversation.Clipboard($editorHandler);
378 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}');
583b412e
MW
379
380 // mobile safari hover workaround
381 if ($(window).width() <= 800) {
382 $('.sidebar').addClass('mobileSidebar').hover(function() { });
383 }
384
385 UiItemListUser.init('participants', {
4d951026
AE
386 excludedSearchValues: ['{$__wcf->user->username|encodeJS}'],
387 maxItems: 20
583b412e 388 });
ce8c322f
MS
389
390 ControllerPopover.init({
391 className: 'conversationLink',
392 dboAction: 'wcf\\data\\conversation\\ConversationAction',
393 identifier: 'com.woltlab.wcf.conversation'
394 });
583b412e
MW
395 });
396</script>
9544b6b4 397
2d9927bb
MW
398<script data-relocate="true">
399 require(['WoltLabSuite/Core/Conversation/Ui/MarkAsRead'], (MarkAsRead) => {
400 MarkAsRead.setup();
401 });
402 require(['WoltLabSuite/Core/Conversation/Ui/MarkAllAsRead'], (MarkAllAsRead) => {
403 MarkAllAsRead.setup();
404 });
405</script>
406
583b412e 407{include file='footer'}