Initial Commit
This commit is contained in:
@@ -0,0 +1,153 @@
|
||||
;(function($) {
|
||||
$(document).ready(function(){
|
||||
|
||||
$('#comment-save').on('click', function(){
|
||||
|
||||
var $link, $form, $list;
|
||||
|
||||
$link = $(this);
|
||||
$form = $link.parents('form').first();
|
||||
$list = $form.find('#comment-status').first();
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: 'json',
|
||||
data: {status: $list.val()},
|
||||
url: $form.attr('action')
|
||||
}).done(function(data, textStatus, jqXHR){
|
||||
if (data.success) {
|
||||
$list.val(data.status);
|
||||
} else {
|
||||
$list.val(data.status);
|
||||
}
|
||||
}).fail(function(jqXHR, textStatus, errorThrown){
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
var $statusMenu = $('#dropdown-status');
|
||||
|
||||
$('.dropdown-toggle').on('click.bs.dropdown', function (e) {
|
||||
|
||||
var $btn = $(e.currentTarget),
|
||||
$parent = $btn.parent(),
|
||||
$menu = $parent.children('.dropdown-menu'),
|
||||
$clonedMenu = null;
|
||||
|
||||
console.log($btn.data('id'));
|
||||
|
||||
if ($menu.length == 0) {
|
||||
// creating the menu
|
||||
$clonedMenu = $statusMenu.children().first().clone();
|
||||
$clonedMenu.appendTo($parent);
|
||||
}
|
||||
});
|
||||
|
||||
$('.dropdown-status').on('click', '.change-status', function (e) {
|
||||
var $trigger;
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
$trigger = $(e.currentTarget);
|
||||
|
||||
console.log("trigger status change", e.currentTarget, $trigger);
|
||||
console.log("trigger status change", $trigger.parents('.actions').first().data('id'), $trigger.data('status'));
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
dataType: 'json',
|
||||
data: {'id': $trigger.parents('.actions').first().data('id'), 'status': $trigger.data('status')},
|
||||
url: commentConfig['status']
|
||||
}).done(function (data, textStatus, jqXHR) {
|
||||
var status;
|
||||
if (data.success) {
|
||||
status = commentStatus[data.data.status];
|
||||
$('#status-' + data.data.id)
|
||||
.removeClass('btn-default btn-success btn-info btn-warning btn-danger')
|
||||
.addClass('btn-' + status.css)
|
||||
.html(status.label + ' <span class="caret"></span>')
|
||||
;
|
||||
} else {
|
||||
$('#status-failed').modal('show');
|
||||
}
|
||||
}).fail(function (jqXHR, textStatus, errorThrown) {
|
||||
$('#status-failed').modal('show');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
$(".comment-delete").click(function () {
|
||||
$("#comment_delete_id").val($(this).data("id"));
|
||||
});
|
||||
|
||||
var getQueryParams = function getQueryParams() {
|
||||
var pl = /\+/g, // Regex for replacing addition symbol with a space
|
||||
search = /([^&=]+)=?([^&]*)/g,
|
||||
decode = function (s) {
|
||||
return decodeURIComponent(s.replace(pl, " "));
|
||||
},
|
||||
query = window.location.search.substring(1),
|
||||
urlParams = {},
|
||||
matches;
|
||||
|
||||
while (matches = search.exec(query)) {
|
||||
urlParams[decode(matches[1])] = decode(matches[2]);
|
||||
}
|
||||
|
||||
return urlParams;
|
||||
};
|
||||
|
||||
var getFilterLoop = function getFilterLoop() {
|
||||
var $filterForm = $('.table-filters');
|
||||
var filters = {};
|
||||
|
||||
$filterForm.find('.filter-element').each(function () {
|
||||
var $this = $(this);
|
||||
filters[$this.data('name')] = $this.val();
|
||||
});
|
||||
|
||||
return filters;
|
||||
};
|
||||
|
||||
var setFilterLoop = function setFilterLoop() {
|
||||
var $filterForm = $('.table-filters');
|
||||
var filters = getQueryParams();
|
||||
|
||||
$filterForm.find('.filter-element').each(function () {
|
||||
var $this = $(this);
|
||||
if ($this.data('name') in filters) {
|
||||
$this.val(filters[$this.data('name')]);
|
||||
}
|
||||
});
|
||||
|
||||
return filters;
|
||||
};
|
||||
|
||||
$(".trigger-filter").on('click', function () {
|
||||
var queries = [],
|
||||
param,
|
||||
params,
|
||||
newParams;
|
||||
|
||||
params = getQueryParams();
|
||||
newParams = getFilterLoop();
|
||||
|
||||
for (param in newParams) {
|
||||
if (newParams.hasOwnProperty(param)) {
|
||||
params[param] = newParams[param];
|
||||
}
|
||||
}
|
||||
|
||||
for (param in params) {
|
||||
if (params.hasOwnProperty(param)) {
|
||||
queries.push(encodeURIComponent(param) + '=' + encodeURIComponent(params[param]));
|
||||
}
|
||||
}
|
||||
|
||||
window.location.search = '?' + queries.join('&');
|
||||
});
|
||||
|
||||
setFilterLoop();
|
||||
});
|
||||
})(jQuery);
|
||||
@@ -0,0 +1,178 @@
|
||||
{extends file="admin-layout.tpl"}
|
||||
|
||||
{block name="no-return-functions"}
|
||||
{$admin_current_location = 'configuration'}
|
||||
{/block}
|
||||
|
||||
{block name="page-title"}{intl d='comment.bo.default' l='Edit comment'}{/block}
|
||||
|
||||
{block name="check-module"}comment{/block}
|
||||
{block name="check-access"}update{/block}
|
||||
|
||||
{block name="main-content"}
|
||||
|
||||
{include file="commons.html" scope="parent"}
|
||||
<div class="comments edit-comment">
|
||||
|
||||
<div id="wrapper" class="container">
|
||||
|
||||
{loop name="comment_edit" type="comment" hidden="*" id="$comment_id" backend_context="1" limit="1"}
|
||||
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="{url path='/admin/home'}">{intl d='comment.bo.default' l="Home"}</a></li>
|
||||
<li><a href="{url path='/admin/module/comments'}">{intl d='comment.bo.default' l="Comments"}</a></li>
|
||||
<li>{intl d='comment.bo.default' l='Editing comment "%name"' name={$ID}}</li>
|
||||
</ul>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12 general-block-decorator">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12 title title-without-tabs">
|
||||
{intl d='comment.bo.default' l="Edit comment %name" name={$ID}}
|
||||
</div>
|
||||
|
||||
<div class="form-container">
|
||||
<div class="col-md-12">
|
||||
{form name="admin.comment.modification.form" blo=1}
|
||||
<form method="POST" action='{url path="/admin/module/comment/save/{$comment_id}"}' {form_enctype form=$form}>
|
||||
<fieldset>
|
||||
{* Be sure to get the comment ID, even if the form could not be validated *}
|
||||
<input type="hidden" name="comment_id" value="{$comment_id}" />
|
||||
|
||||
{include file="includes/inner-form-toolbar.html" close_url="{url path='/admin/module/comments'}"}
|
||||
|
||||
{form_hidden_fields form=$form}
|
||||
|
||||
{form_field form=$form field='success_url'}
|
||||
<input type="hidden" name="{$name}" value="{url path='/admin/module/comments'}" />
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='id'}
|
||||
<input type="hidden" name="{$name}" value="{$value}" />
|
||||
{/form_field}
|
||||
|
||||
{if $form_error}<div class="alert alert-danger">{$form_error_message}</div>{/if}
|
||||
|
||||
{form_field form=$form field="ref"}
|
||||
<input type="hidden" name="{$name}" value="{$value}" />
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field="ref_id"}
|
||||
<input type="hidden" name="{$name}" value="{$value}" />
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field="status"}
|
||||
<div class="form-group">
|
||||
<label for="{$label_attr.for}">{$label}</label>
|
||||
<select name="{$name}" id="{$label_attr.for}" class="form-control" >
|
||||
{foreach $comment_status as $status}
|
||||
<option value="{$status@index}" {if $status@index == $value}selected="selected"{/if}>{$status.label}</li>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{if $CUSTOMER_ID }
|
||||
{form_field form=$form field="customer_id"}
|
||||
<div class="form-group">
|
||||
<label for="{$label_attr.for}">{$label}</label>
|
||||
<input type="hidden" name="{$name}" value="{$value}" />
|
||||
{loop type="customer" name="customer" id="{$CUSTOMER_ID}" current="no" backend_context="1"}
|
||||
<a href="{url path='/admin/customer/update' customer_id=$CUSTOMER_ID}">
|
||||
{$FIRSTNAME} {$LASTNAME}
|
||||
</a>
|
||||
{/loop}
|
||||
{elseloop rel="customer"}
|
||||
<em>{intl d='comment.bo.default' l="Unknow customer %id" id="{$CUSTOMER_ID}" }</em>
|
||||
{/elseloop}
|
||||
</div>
|
||||
{/form_field}
|
||||
{else}
|
||||
{form_field form=$form field="username"}
|
||||
<div class="form-group">
|
||||
<label for="{$label_attr.for}">{$label}</label>
|
||||
<input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" value="{$value}" {if $required} required{/if}>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field="email"}
|
||||
<div class="form-group">
|
||||
<label for="{$label_attr.for}">{$label}</label>
|
||||
<input type="email" name="{$name}" id="{$label_attr.for}" class="form-control" value="{$value}" {if $required} required{/if}>
|
||||
</div>
|
||||
{/form_field}
|
||||
{/if}
|
||||
|
||||
{form_field form=$form field="locale"}
|
||||
<div class="form-group">
|
||||
<label for="{$label_attr.for}">{$label}</label>
|
||||
<input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" value="{$value}" {if $required} required{/if}>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field="title"}
|
||||
<div class="form-group">
|
||||
<label for="{$label_attr.for}">{$label}</label>
|
||||
<input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" value="{$value}" {if $required} required{/if}>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field="content"}
|
||||
<div class="form-group">
|
||||
<label for="{$label_attr.for}">{$label}</label>
|
||||
<textarea name="{$name}" id="{$label_attr.for}" class="form-control" {if $required} required{/if}>{$value}</textarea>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='verified'}
|
||||
<div class="checkbox {if $error}has-error{/if}">
|
||||
<label>
|
||||
<input type="checkbox" name="{$name}" value="1" {if $value == 1}checked="checked"{/if}>
|
||||
{$label}
|
||||
</label>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field="rating"}
|
||||
<div class="form-group">
|
||||
<label for="{$label_attr.for}">{$label}</label>
|
||||
<input type="text" name="{$name}" id="{$label_attr.for}" class="form-control" value="{$value}" {if $required} required{/if}>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
<div class="control-group">
|
||||
<div class="controls">
|
||||
<p>{intl d='comment.bo.default' l='Comment created on %date_create. Last modification: %date_change' date_create="{format_date date=$CREATE_DATE}" date_change="{format_date date=$UPDATE_DATE}"}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
{/form}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{/loop}
|
||||
|
||||
{elseloop rel="comment_edit"}
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-error">
|
||||
{intl d='comment.bo.default' l="Sorry, comment ID=%id was not found." id={$comment_id}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/elseloop}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name="javascript-last-call"}
|
||||
{hook name="comment.edit-js" location="comment-edit-js" }
|
||||
{/block}
|
||||
@@ -0,0 +1,41 @@
|
||||
{extends file="admin-layout.tpl"}
|
||||
|
||||
{block name="no-return-functions"}
|
||||
{$admin_current_location = 'configuration'}
|
||||
{/block}
|
||||
|
||||
{block name="page-title"}{intl d='comment.bo.default' l='Comments'}{/block}
|
||||
|
||||
{block name="check-module"}comment{/block}
|
||||
{block name="check-access"}view{/block}
|
||||
|
||||
{block name="main-content"}
|
||||
{include file="commons.html" scope="parent"}
|
||||
|
||||
<div class="comments">
|
||||
<div id="wrapper" class="container">
|
||||
<ul class="breadcrumb">
|
||||
<li><a href="{url path='/admin/home'}">{intl d='comment.bo.default' l="Home"}</a></li>
|
||||
<li><a href="{url path='/admin/module/comments'}">{intl d='comment.bo.default' l="Comments"}</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="general-block-decorator">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{include file="include/comments-list.html"}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name="javascript-initialization"}
|
||||
{javascripts file='assets/js/main.js'}
|
||||
<script src="{$asset_url}"></script>
|
||||
{/javascripts}
|
||||
|
||||
{javascripts file='assets/js/comment.js' source='Comment'}
|
||||
<script src="{$asset_url}"></script>
|
||||
{/javascripts}
|
||||
{/block}
|
||||
@@ -0,0 +1,9 @@
|
||||
{* Status *}
|
||||
|
||||
{$comment_status=[]}
|
||||
{$comment_status['0']=['label' => {intl d='comment.bo.default' l="Pending"}, 'css' => 'default']}
|
||||
{$comment_status['1']=['label' => {intl d='comment.bo.default' l="Accepted"}, 'css' => 'success']}
|
||||
{$comment_status['2']=['label' => {intl d='comment.bo.default' l="Refused"}, 'css' => 'danger']}
|
||||
{$comment_status['3']=['label' => {intl d='comment.bo.default' l="Abused"}, 'css' => 'warning']}
|
||||
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
<div class="general-block-decorator">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12 title title-without-tabs">
|
||||
{intl d='comment.bo.default' l='Comment configuration.'}
|
||||
</div>
|
||||
|
||||
<div class="form-container">
|
||||
<div class="col-md-12">
|
||||
|
||||
{form name="comment.configuration.form"}
|
||||
<form method="POST" id="comment-form" action="{url path="/admin/module/comment/configuration"}" {form_enctype form=$form} class="clearfix">
|
||||
|
||||
{if $form_error_message}<div class="alert alert-danger">{$form_error_message}</div>{/if}
|
||||
|
||||
{form_hidden_fields form=$form}
|
||||
|
||||
{form_field form=$form field='activated'}
|
||||
<div class="checkbox">
|
||||
<label for="{$label_attr.for}">
|
||||
<input type="checkbox" name="{$name}" id="{$label_attr.for}" value="yes" {$attr} {if $checked}checked="checked"{/if}/> {$label}
|
||||
</label>
|
||||
<span class="label-help-block">{$label_attr.help}</span>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='moderate'}
|
||||
<div class="checkbox">
|
||||
<label for="{$label_attr.for}">
|
||||
<input type="checkbox" name="{$name}" id="{$label_attr.for}" value="yes" {$attr} {if $checked}checked="checked"{/if}/> {$label}
|
||||
</label>
|
||||
<span class="label-help-block">{$label_attr.help}</span>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='ref_allowed'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label} : </label>
|
||||
<input type="text" id="{$label_attr.for}" name="{$name}" class="form-control" value="{$value}" title="{$label}">
|
||||
<span class="label-help-block">{$label_attr.help}</span>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='only_customer'}
|
||||
<div class="checkbox">
|
||||
<label for="{$label_attr.for}">
|
||||
<input type="checkbox" name="{$name}" id="{$label_attr.for}" value="yes" {$attr} {if $checked}checked="checked"{/if}/> {$label}
|
||||
</label>
|
||||
<span class="label-help-block">{$label_attr.help}</span>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='only_verified'}
|
||||
<div class="checkbox">
|
||||
<label for="{$label_attr.for}">
|
||||
<input type="checkbox" name="{$name}" id="{$label_attr.for}" value="yes" {$attr} {if $checked}checked="checked"{/if}/> {$label}
|
||||
</label>
|
||||
<span class="label-help-block">{$label_attr.help}</span>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='request_customer_ttl'}
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="{$label_attr.for}" class="control-label">{$label} : </label>
|
||||
<input type="text" name="{$name}" id="{$label_attr.for}" value="{$value}" class="form-control" {$attr} />
|
||||
<span class="label-help-block">{$label_attr.help}</span>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
{form_field form=$form field='notify_admin_new_comment'}
|
||||
<div class="checkbox">
|
||||
<label for="{$label_attr.for}">
|
||||
<input type="checkbox" name="{$name}" id="{$label_attr.for}" value="{$value}" {$attr} {if $checked}checked="checked"{/if}/> {$label}
|
||||
</label>
|
||||
<span class="label-help-block">{$label_attr.help}</span>
|
||||
</div>
|
||||
{/form_field}
|
||||
|
||||
<button type="submit" id="comment-save" name="comment_save" value="save" class="form-submit-button btn btn-sm btn-default" title="{intl d='comment.bo.default' d='comment.ai' l='Save'}">{intl d='comment.bo.default' d='comment.ai' l='Save'}</button>
|
||||
|
||||
</form>
|
||||
{/form}
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,301 @@
|
||||
{hook name="comments.top" location="comments_top" }
|
||||
|
||||
{if $error_message}
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="alert alert-danger">
|
||||
{$error_message}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
{* Loop Filter *}
|
||||
{$loop_limit={$smarty.get.loop_limit|default:20}}
|
||||
{$loop_page={$smarty.get.page|default:1}}
|
||||
{$loop_order={$smarty.get.loop_order|default:'created_reverse'}}
|
||||
{$loop_status={$smarty.get.loop_status|default:''}}
|
||||
|
||||
{assign var="amount" value={count type="comment" status=$loop_status order=$loop_order backend_context="1"}}
|
||||
{if $amount < $loop_limit * $loop_page}
|
||||
{$loop_page=1}
|
||||
{/if}
|
||||
|
||||
<form action="" method="">
|
||||
<table class="table table-striped table-condensed table-left-aligned">
|
||||
<caption>
|
||||
{intl d='comment.bo.default' l="Comments management"}
|
||||
|
||||
{* No create action for now
|
||||
{loop type="auth" name="can_create" role="ADMIN" module="comment" access="CREATE"}
|
||||
<a class="btn btn-primary action-btn" title="{intl d='comment.bo.default' l='Add a new comment'}" href="#creation_dialog" data-toggle="modal">
|
||||
<span class="glyphicon glyphicon-plus-sign"></span>
|
||||
</a>
|
||||
{/loop}
|
||||
*}
|
||||
<a href="{url path='/admin/module/comment/request-customer'}"
|
||||
class="btn btn-primary action-btn">
|
||||
<span class="glyphicon glyphicon-envelope"></span> {intl d='comment.bo.default' l='Send email to customer'}
|
||||
</a>
|
||||
|
||||
<div class="table-filters">
|
||||
<form class="form-inline" role="form">
|
||||
<div class="form-group">
|
||||
<div class="input-group">
|
||||
<label for="loop_status"
|
||||
class="sr-only">{intl d='comment.bo.default' l="Status"}</label>
|
||||
<select id="loop_status" name="loop_status" class="filter-element form-control"
|
||||
data-name="loop_status">
|
||||
<option value="">{intl d='comment.bo.default' l="All"}</option>
|
||||
{foreach $comment_status as $status}
|
||||
<option value="{$status@index}"
|
||||
{if $status@index == $filter_status}selected="selected"{/if}>{$status.label}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button class="trigger-filter btn btn-default"
|
||||
type="button">{intl d='comment.bo.default' l="Filter"}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{intl d='comment.bo.default' l="ID"}</th>
|
||||
<th>{intl d='comment.bo.default' l="Author"}</th>
|
||||
<th>{intl d='comment.bo.default' l="Comment"}</th>
|
||||
<th>{intl d='comment.bo.default' l="Reference"}</th>
|
||||
<th>{intl d='comment.bo.default' l="Actions"}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{loop type="comment"
|
||||
name="comment.list"
|
||||
ref=$loop_ref
|
||||
ref_id=$loop_ref_id
|
||||
status=$loop_status
|
||||
order=$loop_order
|
||||
page=$loop_page
|
||||
limit=$loop_limit
|
||||
load_ref="1"
|
||||
backend_context="1"}
|
||||
<tr>
|
||||
<td>{$ID}</td>
|
||||
|
||||
{* Author *}
|
||||
<td>
|
||||
{if $CUSTOMER_ID}
|
||||
{loop type="customer" name="customer" id=$CUSTOMER_ID current="no" backend_context="1"}
|
||||
<a href="{url path='/admin/customer/update' customer_id=$CUSTOMER_ID}">
|
||||
<img src="http://www.gravatar.com/avatar/{$EMAIL|trim|strtolower|md5}?s=48"
|
||||
alt=""/><br>
|
||||
{$FIRSTNAME} {$LASTNAME}
|
||||
</a>
|
||||
{/loop}
|
||||
{elseloop rel="customer"}
|
||||
<em>{intl d='comment.bo.default' l="Unknow customer %id" id=$CUSTOMER_ID }</em>
|
||||
{/elseloop}
|
||||
{else}
|
||||
<span class="label label-default">{intl d='comment.bo.default' l="not a customer"}</span>
|
||||
<br>
|
||||
<a href="mailto:{$EMAIL}">
|
||||
<img src="http://www.gravatar.com/avatar/{$EMAIL|trim|strtolower|md5}?s=48"
|
||||
alt=""/><br>
|
||||
{$USERNAME}
|
||||
</a>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
{* Comment *}
|
||||
<td>
|
||||
<h4>{$TITLE}</h4>
|
||||
|
||||
<p>{$CONTENT}</p>
|
||||
<ul class="list-inline">
|
||||
<li>{intl d='comment.bo.default' l="Posted: "}
|
||||
<strong>{format_date date={$CREATED} output="datetime"}</strong></li>
|
||||
<li>{intl d='comment.bo.default' l="rating: "} <strong>{$RATING}</strong></li>
|
||||
<li>{intl d='comment.bo.default' l="verified: "}
|
||||
<strong>{if $VERIFIED}{intl d='comment.bo.default' l='yes'}{else}{intl d='comment.bo.default' l='no'}{/if}</strong>
|
||||
</li>
|
||||
</ul>
|
||||
</td>
|
||||
|
||||
{* Reference *}
|
||||
<td>
|
||||
{if $REF_VIEW_URL}
|
||||
<a href="{$REF_VIEW_URL}" title="{intl d='comment.bo.default' l='View'}">
|
||||
{/if}
|
||||
{if $REF_TITLE}{$REF_TITLE} {/if}
|
||||
({$REF}: {$REF_ID})
|
||||
{if $REF_VIEW_URL}
|
||||
</a>
|
||||
{/if}
|
||||
</td>
|
||||
|
||||
<td class="actions" data-id="{$ID}">
|
||||
<div class="btn-group dropdown dropdown-status">
|
||||
{loop type="auth" name="can_change" role="ADMIN" module="comment" access="UPDATE"}
|
||||
<a id="status-{$ID}" data-id="{$ID}"
|
||||
class="btn btn-xs btn-{$comment_status[{$STATUS}].css} dropdown-toggle"
|
||||
data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
{$comment_status[{$STATUS}].label} <span class="caret"></span>
|
||||
</a>
|
||||
{/loop}
|
||||
</div>
|
||||
<hr class="invisible"/>
|
||||
<div class="btn-group dropdown dropdown-status">
|
||||
{loop type="auth" name="can_change" role="ADMIN" module="comment" access="UPDATE"}
|
||||
<a class="btn btn-default btn-xs comment-change" data-id="{$ID}"
|
||||
title="{intl d='comment.bo.default' l='Change this comment'}"
|
||||
href="{url path="/admin/module/comment/update/$ID"}">
|
||||
<span class="glyphicon glyphicon-edit"></span>
|
||||
</a>
|
||||
{/loop}
|
||||
{loop type="auth" name="can_change" role="ADMIN" module="comment" access="DELETE"}
|
||||
<a href="#delete_dialog" data-toggle="modal" data-id="{$ID}"
|
||||
class="btn btn-default btn-xs comment-delete"
|
||||
title="{intl d='comment.bo.default' l="Delete this comment"}">
|
||||
<span class="glyphicon glyphicon-trash"></span>
|
||||
</a>
|
||||
{/loop}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
{/loop}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="100">
|
||||
{include
|
||||
file = "includes/pagination.html"
|
||||
|
||||
loop_ref = "comment.list"
|
||||
max_page_count = $loop_limit
|
||||
page_url = {url path={navigate to="current"} product_order=$loop_page}
|
||||
}
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
{*
|
||||
{if $amount > $limit}
|
||||
<div class="pagination-container" role="pagination" aria-labelledby="pagination-label-{$toolbar}}">
|
||||
<strong id="pagination-label-{$toolbar}}" class="pagination-label">{intl d='comment.bo.default' l="Pagination"}</strong>
|
||||
<ul class="pagination">
|
||||
<li{if $loop_page le 1} class="disabled"{/if}><a href="{url path={navigate to="current"} page={$loop_page-1} }" title="{intl d='comment.bo.default' l="Previous"}" class="prev"><i class="icon-prev"></i></a></li>
|
||||
|
||||
{pageloop rel="comment.list" limit=$loop_limit}
|
||||
<li{if $PAGE eq $CURRENT} class="active"{/if}><a href="{url path={navigate to="current"} page=$PAGE }"> {$PAGE} </a></li>
|
||||
{if $PAGE eq $LAST}
|
||||
<li{if $CURRENT eq $LAST} class="disabled"{/if}><a href="{url path={navigate to="current"} page={$NEXT} }" title="{intl d='comment.bo.default' l="Next"}" class="next"><i class="icon-next"></i></a></li>
|
||||
{/if}
|
||||
{/pageloop}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
*}
|
||||
</form>
|
||||
|
||||
{hook name="comments.bottom" location="comments_bottom" }
|
||||
|
||||
<div id="dropdown-status">
|
||||
<ul class="dropdown-menu" role="menu" data-id="">
|
||||
<li><a href="#" class="change-status" data-status="0">{$comment_status[0].label}</a></li>
|
||||
<li><a href="#" class="change-status" data-status="1">{$comment_status[1].label}</a></li>
|
||||
<li><a href="#" class="change-status" data-status="2">{$comment_status[2].label}</a></li>
|
||||
<li><a href="#" class="change-status" data-status="3">{$comment_status[3].label}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{*
|
||||
{form name="thelia.lang.create"}
|
||||
|
||||
|
||||
{* Capture the dialog body, to pass it to the generic dialog *}
|
||||
{* todo create comment
|
||||
{capture "creation_dialog"}
|
||||
|
||||
{/capture}
|
||||
|
||||
{include
|
||||
file = "includes/generic-create-dialog.html"
|
||||
|
||||
dialog_id = "creation_dialog"
|
||||
dialog_title = {intl d='comment.bo.default' l="Create a new comment"}
|
||||
dialog_body = {$smarty.capture.creation_dialog nofilter}
|
||||
|
||||
dialog_ok_label = {intl d='comment.bo.default' l="Create this comment"}
|
||||
|
||||
form_action = {url path='/admin/configuration/comments/add'}
|
||||
form_enctype = {form_enctype form=$form}
|
||||
form_error_message = $form_error_message
|
||||
}
|
||||
{/form}
|
||||
*}
|
||||
|
||||
{* Delete confirmation dialog *}
|
||||
|
||||
{capture "delete_dialog"}
|
||||
<input type="hidden" name="comment_id" id="comment_delete_id" value=""/>
|
||||
{hook name="comments.delete-form" location="comments_delete_form" }
|
||||
{/capture}
|
||||
|
||||
{include
|
||||
file = "includes/generic-confirm-dialog.html"
|
||||
|
||||
dialog_id = "delete_dialog"
|
||||
dialog_title = {intl d='comment.bo.default' l="Delete comment"}
|
||||
dialog_message = {intl d='comment.bo.default' l="Do you really want to delete this comment ?"}
|
||||
|
||||
form_action = {token_url path='/admin/module/comment/delete'}
|
||||
form_content = {$smarty.capture.delete_dialog nofilter}
|
||||
form_error_message = $error_delete_message
|
||||
}
|
||||
|
||||
<div id="comment-update-modal"></div>
|
||||
|
||||
<div class="modal fade" id="delete-failed" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content alert alert-block alert-danger ">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h2>{intl d='comment.bo.default' l="Error"}</h2>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<strong>{intl d='comment.bo.default' l="Impossible to delete comment."} {intl d='comment.bo.default' l="Please contact your administrator or try later"}</strong>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="status-failed" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content alert alert-block alert-danger ">
|
||||
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h2>{intl d='comment.bo.default' l="Error"}</h2>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<strong>{intl d='comment.bo.default' l="Impossible to change status."} {intl d='comment.bo.default' l="Please contact your administrator or try later"}</strong>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
var commentStatus = {$comment_status|json_encode nofilter};
|
||||
var commentConfig = {
|
||||
'status': '{url path="/admin/module/comment/status"}'
|
||||
};
|
||||
|
||||
{hook name="comments.js" location="comments-js" }
|
||||
</script>
|
||||
@@ -0,0 +1,45 @@
|
||||
{$activated={meta meta="COMMENT_ACTIVATED" key=$ref id=$id}}
|
||||
{if $activated === null}
|
||||
{$activated = "-1"}
|
||||
{/if}
|
||||
|
||||
<div class="title title-without-tabs">
|
||||
{intl d='comment.bo.default' l='Comments activation.'}
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-container clearfix">
|
||||
<form method="POST" id="comment-form" action="{url path="/admin/module/comment/activation/$ref/$id"}">
|
||||
<div class="form-group {if $error}has-error{/if}">
|
||||
<label for="comment-status" class="control-label">
|
||||
{intl d='comment.bo.default' l="Status :"}
|
||||
</label>
|
||||
|
||||
<select name="status" class="form-control" id="comment-status">
|
||||
<option {if $activated == "-1"}selected="selected"{/if}
|
||||
value="-1">{intl d='comment.bo.default' l="Use global configuration"}</option>
|
||||
<option {if $activated == "0"}selected="selected"{/if}
|
||||
value="0">{intl d='comment.bo.default' l="Deactivated for this element"}</option>
|
||||
<option {if $activated == "1"}selected="selected"{/if}
|
||||
value="1">{intl d='comment.bo.default' l="Activated for this element"}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<button type="button" id="comment-save" name="comment_save" value="save"
|
||||
class="form-submit-button btn btn-sm btn-default"
|
||||
title="{intl l='Save'}">
|
||||
{intl l='Save'}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{include file="commons.html" scope="parent"}
|
||||
{include file="include/comments-list.html" loop_ref=$ref loop_ref_id=$id}
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user