1{* $Id$ *}
2{title help="Comments" admpage="comments"}{$title}{/title}
3
4{if $comments or ($find ne '') or count($show_types) gt 0 or isset($smarty.request.findfilter_approved)}
5	{include file='find.tpl' types=$show_types find_type=$selected_types types_tag='checkbox' filters=$filters filter_names=$filter_names filter_values=$filter_values}
6{/if}
7
8{if $comments}
9	<form name="checkboxes_on" method="post" action="tiki-list_comments.php">
10	{ticket}
11	{query _type='form_input'}
12{/if}
13
14{assign var=numbercol value=2}
15
16		<div class="{if $js}table-responsive{/if} comment-table"> {*the table-responsive class cuts off dropdown menus *}
17<table class="table table-striped table-hover">
18	<tr>
19		{if $comments}
20			<th>
21				{select_all checkbox_names='checked[]'}
22				{assign var=numbercol value=$numbercol+1}
23			</th>
24		{/if}
25		<th></th>
26
27		{foreach key=headerKey item=headerName from=$headers}
28			<th>
29				{assign var=numbercol value=$numbercol+1}
30				{self_link _sort_arg="sort_mode" _sort_field=$headerKey}{tr}{$headerName}{/tr}{/self_link}
31			</th>
32		{/foreach}
33
34		{if $tiki_p_admin_comments eq 'y' and $prefs.feature_comments_moderation eq 'y'}
35			<th>
36				{assign var=numbercol value=$numbercol+1}
37				{self_link _sort_arg="sort_mode" _sort_field='approved'}{tr}Approval{/tr}{/self_link}
38			</th>
39		{/if}
40		<th></th>
41	</tr>
42
43	{section name=ix loop=$comments}{assign var=id value=$comments[ix].threadId}
44		<tr class="{cycle}{if $prefs.feature_comments_moderation eq 'y'} post-approved-{$comments[ix].approved}{/if}">
45			<td class="checkbox-cell"><div class="form-check"><input type="checkbox" class="form-check-input" name="checked[]" value="{$id}" {if isset($rejected[$id]) }checked="checked"{/if}></div></td>
46			<td class="action">
47				{actions}
48					{strip}
49						<action>
50							<a href="{$comments[ix].href}">
51								{icon name='view' _menu_text='y' _menu_icon='y' alt="{tr}View{/tr}"}
52							</a>
53						</action>
54						<action>
55							<a href="{$comments[ix].href|cat:"&amp;comments_threadId=$id&amp;edit_reply=1#form"}">
56								{icon name='edit' _menu_text='y' _menu_icon='y' alt="{tr}Edit{/tr}"}
57							</a>
58						</action>
59						{if $tiki_p_admin_comments eq 'y' and $prefs.comments_archive eq 'y'}
60							{if $comments[ix].archived eq 'y'}
61								<action>
62									<form action="tiki-list_comments.php" method="post">
63										{ticket}
64										<input type="hidden" name="checked" value="{$id|escape}">
65										<button
66											type="submit"
67											name="action"
68											value="unarchive"
69											class="btn btn-link link-list"
70											onclick="checkTimeout()"
71										>
72											{icon name='file-archive-open'} {tr}Unarchive{/tr}
73										</button>
74									</form>
75								</action>
76							{else}
77								<action>
78									<form action="tiki-list_comments.php" method="post">
79										{ticket}
80										<input type="hidden" name="checked" value="{$id|escape}">
81										<button
82											type="submit"
83											name="action"
84											value="archive"
85											class="btn btn-link link-list"
86											onclick="checkTimeout()"
87										>
88											{icon name='file-archive'} {tr}Archive{/tr}
89										</button>
90									</form>
91								</action>
92							{/if}
93						{/if}
94						<action>
95							<a href="tiki-list_comments.php?checked={$id|escape:'url'}&amp;action=remove" onclick="confirmSimple(event, '{tr}Delete comment?{/tr}', '{ticket mode=get}')">
96								{icon name='remove' _menu_text='y' _menu_icon='y' alt="{tr}Delete{/tr}"}
97							</a>
98						</action>
99					{/strip}
100				{/actions}
101			</td>
102
103			{foreach key=headerKey item=headerName from=$headers}{assign var=val value=$comments[ix].$headerKey}
104				<td {if $headerKey eq 'data'}{popup caption=$comments[ix].title|escape:"javascript"|escape:"html" text=$comments[ix].parsed}{/if}>
105					<span> {* span is used for some themes CSS opacity on some cells content *}
106						{if $headerKey eq 'title'}
107							<a href="{$comments[ix].href}" title="{$val|escape}">
108								{if !empty($val)}
109									{$val|truncate:50:"...":true|escape}
110								{else}
111									{tr}(no title){/tr}
112								{/if}
113							</a>
114						{elseif $headerKey eq 'objectType'}
115							{tr}{$val|ucwords}{/tr}
116						{elseif $headerKey eq 'object'}
117							{$val|truncate:50:"...":true|escape}
118						{elseif $headerKey eq 'data'}
119							{$val|truncate:90:"...":true|escape}
120						{elseif $headerKey eq 'commentDate'}
121							{$val|tiki_short_datetime}
122						{elseif $headerKey eq 'userName'}
123							{$val|userlink}
124						{else}
125							{$val}
126						{/if}
127					</span>
128				</td>
129			{/foreach}
130
131			{if $tiki_p_admin_comments eq 'y' and $prefs.feature_comments_moderation eq 'y'}
132				<td class="approval">
133					{if $comments[ix].approved eq 'n'}
134						<a href="#" data-action="approve" data-checked="{$id}" class="tips moderation-post text-success" title=":{tr}Approve{/tr}">{icon name='ok'}</a>
135						<a href="#" data-action="reject" data-checked="{$id}" class="tips moderation-post text-danger" title=":{tr}Reject{/tr}">{icon name='delete'}</a>
136					{elseif $comments[ix].approved eq 'y'}
137						&nbsp;{tr}Approved{/tr}&nbsp;
138					{elseif $comments[ix].approved eq 'r'}
139						<span>&nbsp;{tr}Rejected{/tr}&nbsp;</span>
140					{/if}
141				</td>
142				{jq}$(".moderation-post").click(function () {
143	let $this = $(this), $form = $this.parents("form");
144	$form.find("select[name=action]").val($this.data("action"));
145	$this.parents("tr:first").tikiModal(tr("Saving...")).find("input[type=checkbox]").prop("checked", true);
146	$form.submit();
147	return false;
148});{/jq}
149			{/if}
150
151			<td>
152				{actions title="{tr}More Information{/tr}" icon="information"}
153					{strip}
154						{foreach from=$more_info_headers key=headerKey item=headerName}
155							{if (isset($comments[ix].$headerKey))}
156								{assign var=val value=$comments[ix].$headerKey}
157								<action>
158									<b>{tr}{$headerName}{/tr}</b>: {$val}<br />
159								</action>
160							{/if}
161						{/foreach}
162					{/strip}
163				{/actions}
164			</td>
165		</tr>
166	{sectionelse}
167		{norecords _colspan=$numbercol}
168	{/section}
169</table>
170</div>
171
172{if $comments}
173	<div class="input-group col-sm-8">
174		<select class="form-control" name="action">
175			<option value="no_action" selected="selected">
176				{tr}Select action to perform with checked{/tr}...
177			</option>
178			<option value="remove" class="confirm-simple" data-confirm-text="{tr}Delete selected comments?{/tr}">
179				{tr}Delete{/tr}
180			</option>
181			{if $tiki_p_admin_comments eq 'y' and $prefs.feature_banning eq 'y'}
182				<option value="ban">
183					{tr}Ban{/tr}
184				</option>
185				<option
186					value="ban_remove"
187					class="confirm-simple"
188					data-confirm-text="{tr}Delete and ban selected comments?{/tr}"
189				>
190					{tr}Delete and ban{/tr}
191				</option>
192			{/if}
193			{if $tiki_p_admin_comments eq 'y' and $prefs.feature_comments_moderation eq 'y'}
194				<option value="approve">
195					{tr}Approve{/tr}
196				</option>
197				<option value="reject">
198					{tr}Reject{/tr}
199				</option>
200			{/if}
201			{if $tiki_p_admin_comments eq 'y' and $prefs.comments_archive eq 'y'}
202				<option value="archive">
203					{tr}Archive{/tr}
204				</option>
205				<option value="unarchive">
206					{tr}Unarchive{/tr}
207				</option>
208			{/if}
209		</select>
210		<span class="input-group-append">
211			<button type="submit" class="btn btn-secondary" onclick="confirmSimple(event)">
212				{tr}OK{/tr}
213			</button>
214		</span>
215	</div>
216	</form>
217{/if}
218
219{pagination_links cant=$cant step=$maxRecords offset=$offset}{/pagination_links}
220