[Web] Reset last_run for imapsync jobs to run next, other minor changes...

master
André 2017-11-05 12:20:05 +01:00
parent a36a8828c2
commit f603008440
6 changed files with 23 additions and 8 deletions

View File

@ -1390,11 +1390,12 @@ function mailbox($_action, $_type, $_data = null, $attr = null) {
return false; return false;
} }
foreach ($ids as $id) { foreach ($ids as $id) {
$is_now = mailbox('get', 'syncjob_details', $id); $is_now = mailbox('get', 'syncjob_details', $id, array('with_password'));
if (!empty($is_now)) { if (!empty($is_now)) {
$username = $is_now['user2']; $username = $is_now['user2'];
$user1 = (!empty($_data['user1'])) ? $_data['user1'] : $is_now['user1']; $user1 = (!empty($_data['user1'])) ? $_data['user1'] : $is_now['user1'];
$active = (isset($_data['active'])) ? intval($_data['active']) : $is_now['active_int']; $active = (isset($_data['active'])) ? intval($_data['active']) : $is_now['active_int'];
$last_run = (isset($_data['last_run'])) ? NULL : $is_now['last_run'];
$delete2duplicates = (isset($_data['delete2duplicates'])) ? intval($_data['delete2duplicates']) : $is_now['delete2duplicates']; $delete2duplicates = (isset($_data['delete2duplicates'])) ? intval($_data['delete2duplicates']) : $is_now['delete2duplicates'];
$delete1 = (isset($_data['delete1'])) ? intval($_data['delete1']) : $is_now['delete1']; $delete1 = (isset($_data['delete1'])) ? intval($_data['delete1']) : $is_now['delete1'];
$delete2 = (isset($_data['delete2'])) ? intval($_data['delete2']) : $is_now['delete2']; $delete2 = (isset($_data['delete2'])) ? intval($_data['delete2']) : $is_now['delete2'];
@ -1456,7 +1457,7 @@ function mailbox($_action, $_type, $_data = null, $attr = null) {
return false; return false;
} }
try { try {
$stmt = $pdo->prepare("UPDATE `imapsync` SET `delete1` = :delete1, `delete2` = :delete2, `maxage` = :maxage, `subfolder2` = :subfolder2, `exclude` = :exclude, `host1` = :host1, `user1` = :user1, `password1` = :password1, `mins_interval` = :mins_interval, `port1` = :port1, `enc1` = :enc1, `delete2duplicates` = :delete2duplicates, `active` = :active $stmt = $pdo->prepare("UPDATE `imapsync` SET `delete1` = :delete1, `delete2` = :delete2, `maxage` = :maxage, `subfolder2` = :subfolder2, `exclude` = :exclude, `host1` = :host1, `last_run` = :last_run, `user1` = :user1, `password1` = :password1, `mins_interval` = :mins_interval, `port1` = :port1, `enc1` = :enc1, `delete2duplicates` = :delete2duplicates, `active` = :active
WHERE `id` = :id"); WHERE `id` = :id");
$stmt->execute(array( $stmt->execute(array(
':delete1' => $delete1, ':delete1' => $delete1,
@ -1468,6 +1469,7 @@ function mailbox($_action, $_type, $_data = null, $attr = null) {
':host1' => $host1, ':host1' => $host1,
':user1' => $user1, ':user1' => $user1,
':password1' => $password1, ':password1' => $password1,
':last_run' => $last_run,
':mins_interval' => $mins_interval, ':mins_interval' => $mins_interval,
':port1' => $port1, ':port1' => $port1,
':enc1' => $enc1, ':enc1' => $enc1,
@ -2446,6 +2448,12 @@ function mailbox($_action, $_type, $_data = null, $attr = null) {
CASE `active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active` CASE `active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active`
FROM `imapsync` WHERE id = :id"); FROM `imapsync` WHERE id = :id");
} }
elseif (isset($attr) && in_array('with_password', $attr)) {
$stmt = $pdo->prepare("SELECT *,
`active` AS `active_int`,
CASE `active` WHEN 1 THEN '".$lang['mailbox']['yes']."' ELSE '".$lang['mailbox']['no']."' END AS `active`
FROM `imapsync` WHERE id = :id");
}
else { else {
$field_query = $pdo->query('SHOW FIELDS FROM `imapsync` WHERE FIELD NOT IN ("password1")'); $field_query = $pdo->query('SHOW FIELDS FROM `imapsync` WHERE FIELD NOT IN ("password1")');
$fields = $field_query->fetchAll(PDO::FETCH_ASSOC); $fields = $field_query->fetchAll(PDO::FETCH_ASSOC);

View File

@ -268,6 +268,10 @@ $lang['mailbox']['deactivate'] = 'Deaktivieren';
$lang['mailbox']['owner'] = 'Besitzer'; $lang['mailbox']['owner'] = 'Besitzer';
$lang['mailbox']['mins_interval'] = 'Intervall (min)'; $lang['mailbox']['mins_interval'] = 'Intervall (min)';
$lang['mailbox']['last_run'] = 'Letzte Ausführung'; $lang['mailbox']['last_run'] = 'Letzte Ausführung';
$lang['mailbox']['last_run_reset'] = 'Als nächstes ausführen';
$lang['mailbox']['sieve_info'] = 'Es können mehrere Filter pro Benutzer existieren, aber nur ein Filter eines Typs (Pre-/Postfilter) kann gleichzeitig aktiv sein.<br>
Die Ausführung erfolgt in nachstehender Reihenfolge. Ein fehlgeschlagenes Script sowie der Befehl "keep;" stoppen die weitere Verarbeitung <b>nicht</b>.<br>
Prefilter User scripts Postfilter <a href="https://github.com/mailcow/mailcow-dockerized/blob/master/data/conf/dovecot/sieve_after" target="_blank">global sieve postfilter</a>';
$lang['info']['no_action'] = 'Keine Aktion anwendbar'; $lang['info']['no_action'] = 'Keine Aktion anwendbar';
$lang['delete']['title'] = 'Objekt entfernen'; $lang['delete']['title'] = 'Objekt entfernen';

View File

@ -271,7 +271,10 @@ $lang['mailbox']['deactivate'] = 'Deactivate';
$lang['mailbox']['owner'] = 'Owner'; $lang['mailbox']['owner'] = 'Owner';
$lang['mailbox']['mins_interval'] = 'Interval (min)'; $lang['mailbox']['mins_interval'] = 'Interval (min)';
$lang['mailbox']['last_run'] = 'Last run'; $lang['mailbox']['last_run'] = 'Last run';
$lang['mailbox']['last_run_reset'] = 'Schedule next';
$lang['mailbox']['sieve_info'] = 'You can store multiple filters per user, but only one prefilter and one postfilter can be active at the same time.<br>
Each filter will be processed in the described order. Neither a failed script nor an issued "keep;" will stop processing of further scripts.<br>
Prefilter User scripts Postfilter <a href="https://github.com/mailcow/mailcow-dockerized/blob/master/data/conf/dovecot/sieve_after" target="_blank">global sieve postfilter</a>';
$lang['info']['no_action'] = 'No action applicable'; $lang['info']['no_action'] = 'No action applicable';
$lang['delete']['title'] = 'Remove object'; $lang['delete']['title'] = 'Remove object';

View File

@ -162,6 +162,8 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
<a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="syncjob" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a> <a class="btn btn-sm btn-default" id="toggle_multi_select_all" data-id="syncjob" href="#"><span class="glyphicon glyphicon-check" aria-hidden="true"></span> <?=$lang['mailbox']['toggle_all'];?></a>
<a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a> <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['mailbox']['quick_actions'];?> <span class="caret"></span></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"last_run":""}' href="#"><?=$lang['mailbox']['last_run_reset'];?></a></li>
<li role="separator" class="divider"></li>
<li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li> <li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"1"}' href="#"><?=$lang['mailbox']['activate'];?></a></li>
<li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li> <li><a id="edit_selected" data-id="syncjob" data-api-url='edit/syncjob' data-api-attr='{"active":"0"}' href="#"><?=$lang['mailbox']['deactivate'];?></a></li>
<li role="separator" class="divider"></li> <li role="separator" class="divider"></li>
@ -178,9 +180,7 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
<div class="panel-heading"> <div class="panel-heading">
<h3 class="panel-title"><?=$lang['mailbox']['filters'];?></h3> <h3 class="panel-title"><?=$lang['mailbox']['filters'];?></h3>
</div> </div>
<p style="margin:10px" class="help-block">You can store multiple filters per user, but only one prefilter and one postfilter can be active at the same time.</p> <p style="margin:10px" class="help-block"><?=$lang['mailbox']['sieve_info'];?></p>
<p style="margin:10px" class="help-block">Each filter will be processed in the described order. A failed script will not stop processing of further scripts.</a></p>
<p style="margin:10px" class="help-block">Prefilter User scripts Postfilter <a href="https://github.com/mailcow/mailcow-dockerized/blob/master/data/conf/dovecot/sieve_after" target="_blank">global sieve postfilter</a></p>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped" id="filter_table"></table> <table class="table table-striped" id="filter_table"></table>
</div> </div>

View File

@ -511,7 +511,7 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"><h4 class="modal-title">Log</h4></div> <div class="modal-header"><h4 class="modal-title">Log</h4></div>
<div class="modal-body"> <div class="modal-body">
<textarea class="form-control" rows="20" id="logText"></textarea> <textarea class="form-control" rows="20" id="logText" spellcheck="false"></textarea>
</div> </div>
</div> </div>
</div> </div>

View File

@ -117,7 +117,7 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"><h4 class="modal-title">Log</h4></div> <div class="modal-header"><h4 class="modal-title">Log</h4></div>
<div class="modal-body"> <div class="modal-body">
<textarea class="form-control" rows="20" id="logText"></textarea> <textarea class="form-control" rows="20" id="logText" spellcheck="false"></textarea>
</div> </div>
</div> </div>
</div> </div>