Skip to content

Commit fda5310

Browse files
authored
Merge pull request #6245 from WoltLab/6.2-LabelListPage-to-grid-view
Migrate `LabelListPage` to grid view
2 parents b08bb88 + c8b0877 commit fda5310

14 files changed

Lines changed: 365 additions & 338 deletions

File tree

wcfsetup/install/files/acp/templates/labelGroupAdd.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<ul>
2525
{if $action == 'edit'}
2626
<li><button type="button" class="button jsChangeShowOrder">{icon name='up-down'} <span>{lang}wcf.global.changeShowOrder{/lang}</span></a></li>
27-
<li><a href="{link controller='LabelList' id=$groupID}{/link}" class="button">{icon name='list'} <span>{lang}wcf.acp.label.list{/lang}</span></a></li>
27+
<li><a href="{link controller='LabelList'}filters[groupID]={$groupID}{/link}" class="button">{icon name='list'} <span>{lang}wcf.acp.label.list{/lang}</span></a></li>
2828
{/if}
2929
<li><a href="{link controller='LabelGroupList'}{/link}" class="button">{icon name='list'} <span>{lang}wcf.acp.label.group.list{/lang}</span></a></li>
3030

Lines changed: 6 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -1,155 +1,21 @@
11
{include file='header' pageTitle='wcf.acp.label.list'}
22

3-
<script data-relocate="true">
4-
{if $labelGroup && !$labelSearch && !$cssClassName && $items > 1}
5-
require(['WoltLabSuite/Core/Ui/Sortable/List'], function (UiSortableList) {
6-
new UiSortableList({
7-
containerId: 'labelTableContainer',
8-
className: 'wcf\\data\\label\\LabelAction',
9-
isSimpleSorting: true,
10-
offset: {@$startIndex},
11-
});
12-
});
13-
{/if}
14-
</script>
15-
163
<header class="contentHeader">
174
<div class="contentHeaderTitle">
18-
<h1 class="contentTitle">{lang}wcf.acp.label.list{/lang}{if $items} <span class="badge badgeInverse">{#$items}</span>{/if}</h1>
5+
<h1 class="contentTitle">{lang}wcf.acp.label.list{/lang} <span class="badge badgeInverse">{#$gridView->countRows()}</span></h1>
196
</div>
20-
7+
218
<nav class="contentHeaderNavigation">
229
<ul>
2310
<li><a href="{link controller='LabelAdd'}{/link}" class="button">{icon name='plus'} <span>{lang}wcf.acp.label.add{/lang}</span></a></li>
24-
11+
2512
{event name='contentHeaderNavigation'}
2613
</ul>
2714
</nav>
2815
</header>
2916

30-
{if $items || $labelSearch || $labelGroup || $cssClassName}
31-
<woltlab-core-notice type="info">{lang}wcf.acp.label.sortAfterGroupFiltering{/lang}</woltlab-core-notice>
32-
33-
<form action="{link controller='LabelList'}{/link}" method="post">
34-
<section class="section">
35-
<h2 class="sectionTitle">{lang}wcf.acp.label.filter{/lang}</h2>
36-
37-
<div class="row rowColGap formGrid">
38-
<dl class="col-xs-12 col-md-4">
39-
<dt></dt>
40-
<dd>
41-
<input type="text" id="label" name="label" value="{$labelSearch}" placeholder="{lang}wcf.acp.label.label{/lang}" class="long">
42-
</dd>
43-
</dl>
44-
45-
<dl class="col-xs-12 col-md-4">
46-
<dt></dt>
47-
<dd>
48-
<select id="groupID" name="groupID">
49-
<option value="0">{lang}wcf.acp.label.group{/lang}</option>
50-
{foreach from=$labelGroupList item=group}
51-
<option value="{$group->groupID}"{if $group->groupID == $groupID} selected{/if}>{$group}{if $group->groupDescription} / {$group->groupDescription}{/if}</option>
52-
{/foreach}
53-
</select>
54-
</dd>
55-
</dl>
56-
57-
<dl class="col-xs-12 col-md-4">
58-
<dt></dt>
59-
<dd>
60-
<input type="text" id="cssClassName" name="cssClassName" placeholder="{lang}wcf.acp.label.cssClassName{/lang}" value="{$cssClassName}" class="long">
61-
</dd>
62-
</dl>
63-
</div>
64-
</section>
65-
66-
<div class="formSubmit">
67-
<input type="submit" value="{lang}wcf.global.button.submit{/lang}" accesskey="s">
68-
{csrfToken}
69-
</div>
70-
</form>
71-
{/if}
72-
73-
{hascontent}
74-
<div class="paginationTop">
75-
{content}
76-
{assign var='linkParameters' value=''}
77-
{if $labelSearch}
78-
{append var='linkParameters' value='&label='}
79-
{append var='linkParameters' value=$labelSearch|rawurlencode}
80-
{/if}
81-
{if $cssClassName}
82-
{append var='linkParameters' value='&cssClassName='}
83-
{append var='linkParameters' value=$cssClassName|rawurlencode}
84-
{/if}
85-
86-
{pages print=true assign=pagesLinks controller="LabelList" object=$labelGroup link="pageNo=%d&sortField=$sortField&sortOrder=$sortOrder$linkParameters"}
87-
{/content}
88-
</div>
89-
{/hascontent}
90-
91-
{if $objects|count}
92-
<div id="labelTableContainer" class="section tabularBox{if $labelGroup && !$labelSearch && !$cssClassName && $items > 1} sortableListContainer{/if}">
93-
<table class="table jsObjectActionContainer" data-object-action-class-name="wcf\data\label\LabelAction">
94-
<thead>
95-
<tr>
96-
<th class="columnID columnLabelID{if $sortField == 'labelID'} active {@$sortOrder}{/if}" colspan="2"><a href="{link controller='LabelList' object=$labelGroup}pageNo={@$pageNo}&sortField=labelID&sortOrder={if $sortField == 'labelID' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.global.objectID{/lang}</a></th>
97-
<th class="columnTitle columnLabel{if $sortField == 'label'} active {@$sortOrder}{/if}"><a href="{link controller='LabelList' object=$labelGroup}pageNo={@$pageNo}&sortField=label&sortOrder={if $sortField == 'label' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.acp.label.label{/lang}</a></th>
98-
<th class="columnText columnGroup{if $sortField == 'groupName'} active {@$sortOrder}{/if}"><a href="{link controller='LabelList' object=$labelGroup}pageNo={@$pageNo}&sortField=groupName&sortOrder={if $sortField == 'groupName' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.acp.label.group{/lang}</a></th>
99-
{if $labelGroup && !$labelSearch && !$cssClassName && $items > 1}
100-
<th class="columnDigits columnShowOrder{if $sortField == 'showOrder'} active {@$sortOrder}{/if}"><a href="{link controller='LabelList' object=$labelGroup}pageNo={@$pageNo}&sortField=showOrder&sortOrder={if $sortField == 'showOrder' && $sortOrder == 'ASC'}DESC{else}ASC{/if}{@$linkParameters}{/link}">{lang}wcf.global.showOrder{/lang}</a></th>
101-
{/if}
102-
103-
{event name='columnHeads'}
104-
</tr>
105-
</thead>
106-
107-
<tbody class="jsReloadPageWhenEmpty{if $labelGroup && !$labelSearch && !$cssClassName && $items > 1} sortableList" data-object-id="{@$labelGroup->groupID}{/if}">
108-
{foreach from=$objects item=label}
109-
<tr class="jsLabelRow jsObjectActionObject{if $labelGroup && !$labelSearch && !$cssClassName && $items > 1} sortableNode{/if}" data-object-id="{@$label->getObjectID()}">
110-
<td class="columnIcon">
111-
<a href="{link controller='LabelEdit' object=$label}{/link}" title="{lang}wcf.global.button.edit{/lang}" class="jsTooltip">{icon name='pencil'}</a>
112-
{objectAction action="delete" objectTitle=$label->getTitle()}
113-
114-
{event name='rowButtons'}
115-
</td>
116-
<td class="columnID">{@$label->labelID}</td>
117-
<td class="columnTitle columnLabel"><a href="{link controller='LabelEdit' object=$label}{/link}" title="{$label}" class="badge label{if $label->getClassNames()} {$label->getClassNames()}{/if}">{$label}</a></td>
118-
<td class="columnText columnGroup">{$label->groupName|phrase}{if $label->groupDescription} / {$label->groupDescription}{/if}</td>
119-
{if $labelGroup && !$labelSearch && !$cssClassName && $items > 1}
120-
<td class="columnDigits columnShowOrder">{#$label->showOrder}</td>
121-
{/if}
122-
123-
{event name='columns'}
124-
</tr>
125-
{/foreach}
126-
</tbody>
127-
</table>
128-
</div>
129-
130-
{if $labelGroup && !$labelSearch && !$cssClassName && $items > 1}
131-
<div class="formSubmit">
132-
<button type="button" class="button buttonPrimary" data-type="submit">{lang}wcf.global.button.saveSorting{/lang}</button>
133-
</div>
134-
{/if}
135-
136-
<footer class="contentFooter">
137-
{hascontent}
138-
<div class="paginationBottom">
139-
{content}{@$pagesLinks}{/content}
140-
</div>
141-
{/hascontent}
142-
143-
<nav class="contentFooterNavigation">
144-
<ul>
145-
<li><a href="{link controller='LabelAdd'}{/link}" class="button">{icon name='plus'} <span>{lang}wcf.acp.label.add{/lang}</span></a></li>
146-
147-
{event name='contentFooterNavigation'}
148-
</ul>
149-
</nav>
150-
</footer>
151-
{else}
152-
<woltlab-core-notice type="info">{lang}wcf.global.noItems{/lang}</woltlab-core-notice>
153-
{/if}
17+
<div class="section">
18+
{unsafe:$gridView->render()}
19+
</div>
15420

15521
{include file='footer'}

0 commit comments

Comments
 (0)