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:"&comments_threadId=$id&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'}&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 {tr}Approved{/tr} 138 {elseif $comments[ix].approved eq 'r'} 139 <span> {tr}Rejected{/tr} </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