admin log

This commit is contained in:
Etienne Roudeix
2013-10-29 16:09:50 +01:00
parent 082f9aff8d
commit a055f3b3eb
7 changed files with 222 additions and 88 deletions

View File

@@ -13,7 +13,7 @@
<ul class="breadcrumb">
<li><a href="{url path='/admin/home'}">{intl l="Home"}</a></li>
<li><a href="{url path='/admin/configuration'}">{intl l="Configuration"}</a></li>
<li><a href="{url path='/admin/configuration/adminLogs'}">{intl l="Admin logs"}</a></li>
<li><a href="{url path='/admin/configuration/adminLogs'}">{intl l="Administration logs"}</a></li>
</ul>
{module_include location='admin_logs_top'}
@@ -22,99 +22,84 @@
<div class="col-md-12">
<div class="general-block-decorator">
<div class="title title-without-tabs">{intl l="Configuration variables"}</div>
<div class="title title-without-tabs">{intl l="Administration logs"}</div>
{form name="thelia.admin.mailing-system.update"}
<div class="col-md-12 clearfix">
<form method="POST" action="{url path="/admin/configuration/mailingSystem/save"}" {form_enctype form=$form} >
<div class="row inner-toolbar">
<div class="col-md-12 inner-actions clearfix">
<button type="submit" name="save_mode" value="stay" class="btn btn-default btn-success pull-right" title="Save">Save <span class="glyphicon glyphicon-ok"></span></button>
</div>
<div class="row inner-toolbar">
<div class="col-md-12 inner-actions clearfix">
<button type="button" class="btn btn-default btn-success pull-right js-show-logs" title="Show logs">Show logs <span class="glyphicon glyphicon-eye-open"></span></button>
</div>
</div>
{form_hidden_fields form=$form}
<div>
<strong>Administrators :</strong>
</div>
{if $form_error}<div class="alert alert-danger">{$form_error_message}</div>{/if}
{form_field form=$form field='enabled'}
<div class="form-group">
<label for="{$label_attr.for}" class="label-control">{intl l="Enable remote SMTP use : "}</label>
<input type="hidden" id="smtp_enabled" name="{$name}" value="{if $form_error}{$value}{else}{if {config key="smtp.enabled"}}1{else}0{/if}{/if}">
<div class="make-switch switch-small" id="enable-smtp" data-on="success" data-off="danger" data-on-label="<i class='glyphicon glyphicon-ok'></i>" data-off-label="<i class='glyphicon glyphicon-remove'></i>">
<input type="checkbox" id="{$label_attr.for}" {if $form_error AND $value == 1 OR !$form_error AND {config key="smtp.enabled"} == 1}checked{/if}>
</div>
</div>
{/form_field}
{form_field form=$form field='host'}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="label-control">{intl l="Host :"}</label>
<input type="text" class="form-control" id="{$label_attr.for}" name="{$name}" placeholder="{intl l="Host"}" value="{if $form_error}{$value}{else}{config key="smtp.host"}{/if}">
</div>
{/form_field}
{form_field form=$form field='port'}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="label-control">{intl l="Port :"}</label>
<input type="text" class="form-control" id="{$label_attr.for}" name="{$name}" placeholder="{intl l="Port"}" value="{if $form_error}{$value}{else}{config key="smtp.port"}{/if}">
</div>
{/form_field}
{form_field form=$form field='encryption'}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="label-control">{intl l="Encryption :"}</label>
<input type="text" class="form-control" id="{$label_attr.for}" name="{$name}" placeholder="{intl l="Encryption"}" value="{if $form_error}{$value}{else}{config key="smtp.encryption"}{/if}">
</div>
{/form_field}
{form_field form=$form field='username'}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="label-control">{intl l="Username :"}</label>
<input type="text" class="form-control" id="{$label_attr.for}" name="{$name}" placeholder="{intl l="Username"}" value="{if $form_error}{$value}{else}{config key="smtp.username"}{/if}">
</div>
{/form_field}
{form_field form=$form field='password'}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="label-control">{intl l="Password :"}</label>
<input type="password" class="form-control" id="{$label_attr.for}" name="{$name}" value="{if $form_error}{$value}{else}{config key="smtp.password"}{/if}">
</div>
{/form_field}
{form_field form=$form field='authmode'}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="label-control">{intl l="Auth Mode :"}</label>
<input type="text" class="form-control" id="{$label_attr.for}" name="{$name}" placeholder="{intl l="Auth Mode"}" value="{if $form_error}{$value}{else}{config key="smtp.authmode"}{/if}">
</div>
{/form_field}
{form_field form=$form field='timeout'}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="label-control">{intl l="Timeout :"}</label>
<input type="text" class="form-control" id="{$label_attr.for}" name="{$name}" placeholder="{intl l="Timeout"}" value="{if $form_error}{$value}{else}{config key="smtp.timeout"}{/if}">
</div>
{/form_field}
{form_field form=$form field='sourceip'}
<div class="form-group {if $error}has-error{/if}">
<label for="{$label_attr.for}" class="label-control">{intl l="Source IP :"}</label>
<input type="text" class="form-control" id="{$label_attr.for}" name="{$name}" placeholder="{intl l="Source IP"}" value="{if $form_error}{$value}{else}{config key="smtp.sourceip"}{/if}">
</div>
{/form_field}
<div class="row inner-toolbar">
<div class="col-md-12 inner-actions clearfix">
<button type="submit" name="save_mode" value="stay" class="btn btn-default btn-success pull-right" title="Save">Save <span class="glyphicon glyphicon-ok"></span></button>
<div class="row">
{loop type="admin" name="admin-list" backend_context="1"}
{if ($LOOP_COUNT-1)%4 == 0 AND $LOOP_COUNT != 0 AND $LOOP_COUNT != $LOOP_TOTAL}
</div>
<div class="row">
{/if}
<div class="col-md-3">
<input id="admin_{$ID}" data-id="{$LOGIN}" class="js-admin" type="checkbox" checked>
<label for="admin_{$ID}" style="font-weight: normal;">{$LOGIN} ({$FIRSTNAME|upper} {$LASTNAME|ucwords})</label>
</div>
{/loop}
</div>
</form>
</div>
{/form}
<div class="col-md-12 clearfix">
<div>
<strong>Resources :</strong>
</div>
<div class="row">
{loop type="resource" name="resources-list" backend_context="1"}
{if ($LOOP_COUNT-1)%4 == 0 AND $LOOP_COUNT != 0 AND $LOOP_COUNT != $LOOP_TOTAL}
</div>
<div class="row">
{/if}
<div class="col-md-3">
<input id="resource_{$ID}" data-id="{$CODE}" class="js-resource" type="checkbox" checked>
<label for="resource_{$ID}" style="font-weight: normal;">{$TITLE}</label>
</div>
{/loop}
</div>
</div>
<div class="col-md-12 clearfix">
<div>
<strong>Modules :</strong>
</div>
<div class="row">
{loop type="module" name="modules-list" backend_context="1"}
{if ($LOOP_COUNT-1)%4 == 0 AND $LOOP_COUNT != 0 AND $LOOP_COUNT != $LOOP_TOTAL}
</div>
<div class="row">
{/if}
<div class="col-md-3">
<input id="module_{$ID}" data-id="{$CODE}" class="js-module" type="checkbox" checked>
<label for="module_{$ID}" style="font-weight: normal;">{$TITLE}</label>
</div>
{/loop}
</div>
</div>
<div class="row inner-toolbar">
<div class="col-md-12 inner-actions clearfix">
<button type="button" class="btn btn-default btn-success pull-right js-show-logs" title="Show logs">Show logs <span class="glyphicon glyphicon-eye-open"></span></button>
</div>
</div>
<div id="loading-block" class="col-md-12 loading-block"></div>
<div class="col-md-12 clearfix" id="logger-display"></div>
</div>
</div>
@@ -134,8 +119,39 @@
<script type="text/javascript">
jQuery(function($) {
$('#enable-smtp').on('switch-change', function (e, data) {
$('#smtp_enabled').val(data.value ? 1 : 0);
$('.js-show-logs').click(function(e) {
$('.js-show-logs').attr('disabled', true);
$('#logger-display').html('');
$('#loading-block').show();
var admins = new Array();
var resources = new Array();
var modules = new Array();
$('.js-admin:checked').each(function(k, v) {
admins.push($(v).data('id'));
})
$('.js-resource:checked').each(function(k, v) {
resources.push($(v).data('id'));
})
$('.js-module:checked').each(function(k, v) {
modules.push($(v).data('id'));
})
$.post(
"{url path='/admin/configuration/adminLogs/logger'}",
{
admins: admins,
resources: resources,
modules: modules
},
function(html) {
$('#loading-block').hide();
$('#logger-display').html(html);
$('.js-show-logs').attr('disabled', false);
}
);
});
});

View File

@@ -0,0 +1,13 @@
<div class="logger">
<ul id="logger-content">
{foreach $entries as $entry}
<li class="entry">
<span class="head">{$entry.head}</span>
:
<span class="data">{$entry.data}</span>
</li>
{foreachelse}
<li class="no-entry">NO ENTRIES FOUND</li>
{/foreach}
</ul>
</div>

View File

@@ -0,0 +1,25 @@
.logger{
margin: 20px 0px 20px 0px;
padding: 15px;
height: 400px;
overflow: scroll;
background-color: #000000;
color: #ffffff;
ul#logger-content{
margin: 0px;
padding: 0px;
li.entry{
list-style-type: none;
span.head {
color: #9acd32;
font-weight: bold;
}
span.data {
}
}
li.no-entry{
list-style-type: none;
color: #ff0000;
}
}
}

View File

@@ -15,6 +15,7 @@
@import "bootstrap-select.less";
@import "jqplot.less";
@import "dropzone.less";
@import "logger.less";
// -- Base styling ------------------------------------------------------------
@@ -295,6 +296,14 @@
width: auto;
}
.loading-block{
background: url("@{imgDir}/ajax-loader.gif") no-repeat;
margin: auto;
height: 30px;
width: 30px;
display: none;
}
.modal-backdrop .loading {
left: 50%;
top: 50%;