Add permission to restrict access to own media
[GitHub/WoltLab/WCF.git] / wcfsetup / install / files / acp / templates / mediaList.tpl
1 {include file='header' pageTitle='wcf.media.media.pageTitle'}
2
3 <script data-relocate="true">
4 {include file='mediaJavaScript'}
5
6 require(['Language', 'WoltLabSuite/Core/Controller/Media/List'], function (Language, ControllerMediaList) {
7 Language.addObject({
8 'wcf.media.delete.confirmMessage': '{lang __literal=true}wcf.media.delete.confirmMessage{/lang}',
9 'wcf.media.setCategory': '{lang}wcf.media.setCategory{/lang}'
10 });
11
12 ControllerMediaList.init({
13 {if $categoryID}
14 categoryId: {@$categoryID},
15 {/if}
16 hasMarkedItems: {if $hasMarkedItems}true{else}false{/if}
17 });
18 });
19 </script>
20
21 <header class="contentHeader">
22 <div class="contentHeaderTitle">
23 <h1 class="contentTitle">{lang}wcf.media.media.pageTitle{/lang}{if $items} <span class="badge badgeInverse">{#$items}</span>{/if}</h1>
24 </div>
25
26 <nav class="contentHeaderNavigation">
27 <ul>
28 <li><div id="uploadButton"></div></li>
29
30 {event name='contentHeaderNavigation'}
31 </ul>
32 </nav>
33 </header>
34
35 {include file='formError'}
36
37 <form method="post" action="{link controller='MediaList'}{/link}">
38 <section class="section">
39 <h2 class="sectionTitle">{lang}wcf.global.filter{/lang}</h2>
40
41 <div class="row rowColGap formGrid">
42 {hascontent}
43 <dl class="col-xs-12 col-md-4">
44 <dt></dt>
45 <dd>
46 <select id="categoryID" name="categoryID">
47 <option value="0">{lang}wcf.media.category.choose{/lang}</option>
48
49 {content}
50 {foreach from=$categoryList item=categoryItem}
51 <option value="{$categoryItem->categoryID}"{if $categoryItem->categoryID == $categoryID} selected="selected"{/if}>{$categoryItem->getTitle()}</option>
52
53 {if $categoryItem->hasChildren()}
54 {foreach from=$categoryItem item=subCategoryItem}
55 <option value="{$subCategoryItem->categoryID}"{if $subCategoryItem->categoryID == $categoryID} selected="selected"{/if}>&nbsp;&nbsp;&nbsp;&nbsp;{$subCategoryItem->getTitle()}</option>
56
57 {if $subCategoryItem->hasChildren()}
58 {foreach from=$subCategoryItem item=subSubCategoryItem}
59 <option value="{$subSubCategoryItem->categoryID}"{if $subSubCategoryItem->categoryID == $categoryID} selected="selected"{/if}>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$subSubCategoryItem->getTitle()}</option>
60 {/foreach}
61 {/if}
62 {/foreach}
63 {/if}
64 {/foreach}
65 {/content}
66 </select>
67 </dd>
68 </dl>
69 {/hascontent}
70
71 <dl class="col-xs-12 col-md-4">
72 <dt></dt>
73 <dd>
74 <input type="text" id="q" name="q" value="{$q}" placeholder="{lang}wcf.media.search.placeholder{/lang}" class="long">
75 </dd>
76 </dl>
77
78 <dl class="col-xs-12 col-md-4">
79 <dt></dt>
80 <dd>
81 <input type="text" id="username" name="username" value="{$username}" placeholder="{lang}wcf.user.username{/lang}" class="long">
82 </dd>
83 </dl>
84
85 {event name='filterFields'}
86 </div>
87
88 <div class="formSubmit">
89 <input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
90 {@SECURITY_TOKEN_INPUT_TAG}
91 </div>
92 </section>
93 </form>
94
95 {hascontent}
96 <div class="paginationTop">
97 {content}
98 {assign var='linkParameters' value=''}
99 {if $username}{capture append=linkParameters}&username={@$username|rawurlencode}{/capture}{/if}
100 {if $q}{capture append=linkParameters}&q={@$q|rawurlencode}{/capture}{/if}
101 {if $categoryID}{capture append=linkParameters}&categoryID={@$categoryID}{/capture}{/if}
102
103 {pages print=true assign=pagesLinks controller="MediaList" link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder$linkParameters"}
104 {/content}
105 </div>
106 {/hascontent}
107
108 <div class="section tabularBox"{if !$objects|count} style="display: none;{/if}">
109 <table class="table jsClipboardContainer" data-type="com.woltlab.wcf.media">
110 <thead>
111 <tr>
112 <th class="columnMark"><label><input type="checkbox" class="jsClipboardMarkAll"></label></th>
113 <th class="columnID columnMediaID{if $sortField == 'mediaID'} active {@$sortOrder}{/if}" colspan="2"><a href="{link controller='MediaList'}pageNo={@$pageNo}&sortField=mediaID&sortOrder={if $sortField == 'mediaID' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.global.objectID{/lang}</a></th>
114 <th class="columnTitle columnFilename{if $sortField == 'filename'} active {@$sortOrder}{/if}"><a href="{link controller='MediaList'}pageNo={@$pageNo}&sortField=filename&sortOrder={if $sortField == 'filename' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.media.filename{/lang}</a></th>
115 <th class="columnText columnMediaTitle{if $sortField == 'title'} active {@$sortOrder}{/if}"><a href="{link controller='MediaList'}pageNo={@$pageNo}&sortField=title&sortOrder={if $sortField == 'title' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.global.title{/lang}</a></th>
116 <th class="columnDate columnUploadTime{if $sortField == 'uploadTime'} active {@$sortOrder}{/if}"><a href="{link controller='MediaList'}pageNo={@$pageNo}&sortField=uploadTime&sortOrder={if $sortField == 'uploadTime' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.media.uploadTime{/lang}</a></th>
117 <th class="columnDigits columnFilesize{if $sortField == 'filesize'} active {@$sortOrder}{/if}"><a href="{link controller='MediaList'}pageNo={@$pageNo}&sortField=filesize&sortOrder={if $sortField == 'filesize' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.media.filesize{/lang}</a></th>
118
119 {event name='columnHeads'}
120 </tr>
121 </thead>
122
123 <tbody id="mediaListTableBody" data-no-items-info="noItemsInfo">
124 {foreach from=$objects item=media}
125 <tr class="jsMediaRow jsClipboardObject">
126 <td class="columnMark"><input type="checkbox" class="jsClipboardItem" data-object-id="{@$media->mediaID}"></td>
127 <td class="columnIcon">
128 <span class="icon icon24 fa-pencil mediaEditButton jsMediaEditButton jsTooltip pointer" title="{lang}wcf.global.button.edit{/lang}" data-object-id="{@$media->mediaID}"></span>
129 <span class="icon icon24 fa-times jsDeleteButton jsTooltip pointer" title="{lang}wcf.global.button.delete{/lang}" data-object-id="{@$media->mediaID}" data-confirm-message-html="{lang title=$media->filename __encode=true}wcf.media.delete.confirmMessage{/lang}"></span>
130
131 {event name='rowButtons'}
132 </td>
133 <td class="columnID columnMediaID">{@$media->mediaID}</td>
134 <td class="columnTitle columnFilename">
135 <div class="box48">
136 {@$media->getElementTag(48)}
137
138 <div>
139 <p>{$media->filename|tableWordwrap}</p>
140 <p><small>{if $media->userID}{if $__wcf->session->getPermission('admin.user.canEditUser')}<a href="{link controller='UserEdit' id=$media->userID}{/link}">{$media->username}</a>{else}{$media->username}{/if}{else}{lang}wcf.user.guest{/lang}{/if}</small></p>
141 </div>
142 </div>
143 </td>
144 <td class="columnText columnMediaTitle">{$media->title|tableWordwrap}</td>
145 <td class="columnDate columnUploadTime">{@$media->uploadTime|time}</td>
146 <td class="columnDigits columnFilesize">{@$media->filesize|filesize}</td>
147
148 {event name='columns'}
149 </tr>
150 {foreachelse}
151 <tr class="jsMediaRow jsClipboardObject">
152 <td class="columnMark"><input type="checkbox" class="jsClipboardItem" data-object-id="0"></td>
153 <td class="columnIcon">
154 <span class="icon icon24 fa-pencil mediaEditButton jsMediaEditButton jsTooltip pointer" title="{lang}wcf.global.button.edit{/lang}" data-object-id="0"></span>
155 <span class="icon icon24 fa-times jsDeleteButton jsTooltip pointer" title="{lang}wcf.global.button.delete{/lang}" data-object-id="0"></span>
156
157 {event name='rowButtons'}
158 </td>
159 <td class="columnID columnMediaID"></td>
160 <td class="columnTitle columnFilename">
161 <div class="box48">
162 <span class="icon icon48 fa-file"></span>
163
164 <div>
165 <p></p>
166 <p><small>{if $__wcf->session->getPermission('admin.user.canEditUser')}<a href=""></a>{/if}</small></p>
167 </div>
168 </div>
169 </td>
170 <td class="columnText columnMediaTitle"></td>
171 <td class="columnDate columnUploadTime"></td>
172 <td class="columnDigits columnFilesize"></td>
173
174 {event name='columns'}
175 </tr>
176 {/foreach}
177 </tbody>
178 </table>
179 </div>
180
181 {if $objects|count}
182 <footer class="contentFooter">
183 {hascontent}
184 <div class="paginationBottom">
185 {content}{@$pagesLinks}{/content}
186 </div>
187 {/hascontent}
188
189 <nav class="contentFooterNavigation">
190 <ul>
191 {event name='contentFooterNavigation'}
192 </ul>
193 </nav>
194 </footer>
195 {else}
196 <p class="info" id="noItemsInfo">{lang}wcf.global.noItems{/lang}</p>
197 {/if}
198
199 {include file='footer'}