public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
Confirm deletion, some other fixes to quick actions, added language strings
2c2441ea
data/web/css/mailbox.css | 3 ++-
data/web/inc/footer.inc.php | 17 +++++++++++++++++
data/web/js/mailbox.js | 36 +++++++++++++++++++++++++-----------
data/web/lang/lang.de.php | 11 ++++++++++-
data/web/lang/lang.en.php | 10 ++++++++++
data/web/mailbox.php | 17 ++++++++---------
6 files changed, 72 insertions(+), 22 deletions(-)
Diff
diff --git a/data/web/css/mailbox.css b/data/web/css/mailbox.css
index 86236b8f..1305a916 100644
--- a/data/web/css/mailbox.css
+++ b/data/web/css/mailbox.css
@@ -16,6 +16,7 @@ table.footable>tbody>tr.footable-empty>td {
font-style: italic;
display:block;
padding: 10px;
+ background: #F5F5F5;
}
.mass-each-action {
padding: 0 3px 0 3px;
@@ -23,7 +24,7 @@ table.footable>tbody>tr.footable-empty>td {
}
.mass-actions {
user-select: none;
- margin-top:-5px;
+ padding:10px;
}
.mass-select-all {
cursor:pointer;
diff --git a/data/web/inc/footer.inc.php b/data/web/inc/footer.inc.php
index 580c457f..6cf48242 100644
--- a/data/web/inc/footer.inc.php
+++ b/data/web/inc/footer.inc.php
@@ -19,6 +19,23 @@ if (isset($_SESSION['mailcow_cc_role']) && $_SESSION['mailcow_cc_role'] == "admi
</div>
</div>
</div>
+<div id="ConfirmDeleteModal" class="modal fade" role="dialog">
+ <div class="modal-dialog">
+ <div class="modal-content">
+ <div class="modal-header">
+ <button type="button" class="close" data-dismiss="modal">×</button>
+ <h4 class="modal-title"><?=$lang['footer']['confirm_delete'];?></h4>
+ </div>
+ <div class="modal-body">
+ <p><?=$lang['footer']['delete_these_items'];?></p>
+ <ul id="ItemsToDelete"></ul>
+ <hr />
+ <button class="btn btn-sm btn-danger" id="IsConfirmed"><?=$lang['footer']['delete_now'];?></button>
+ <button class="btn btn-sm btn-default" id="isCanceled"><?=$lang['footer']['cancel'];?></button>
+ </div>
+ </div>
+ </div>
+</div>
<?php
endif;
?>
diff --git a/data/web/js/mailbox.js b/data/web/js/mailbox.js
index 5cfb3736..56cc6d04 100644
--- a/data/web/js/mailbox.js
+++ b/data/web/js/mailbox.js
@@ -237,7 +237,6 @@ $(document).ready(function() {
$.each(data, function (i, item) {
item.action = '<div class="btn-group">' +
'<a href="/edit.php?alias=' + encodeURI(item.address) + '" class="btn btn-xs btn-default"><span class="glyphicon glyphicon-pencil"></span> ' + lang.edit + '</a>' +
- '<a href="/delete.php?alias=' + encodeURI(item.address) + '" class="btn btn-xs btn-danger"><span class="glyphicon glyphicon-trash"></span> ' + lang.remove + '</a>' +
'</div>';
item.chkbox = '<input type="checkbox" class="alias_item" name="sel_aliases" value="' + item.address + '" />';
if (item.is_catch_all == 1) {
@@ -279,7 +278,6 @@ $(document).ready(function() {
if (e.target.type == "checkbox") {
e.stopPropagation();
} else {
- var $checkbox = $(this).find(':checkbox');
var checkbox = $(this).find(':checkbox');
checkbox.trigger('click');
}
@@ -333,16 +331,32 @@ $(document).ready(function() {
$(document).on('click', '#delete_selected_alias', function(e) {
e.preventDefault();
if (Object.keys(selected_aliases).length !== 0) {
- $.ajax({
- type: "POST",
- dataType: "json",
- data: { "address": JSON.stringify(selected_aliases) },
- url: '/api/v1/delete/alias/post',
- jsonp: false,
- complete: function (data) {
- location.reload();
+ $(document).on('show.bs.modal','#ConfirmDeleteModal', function () {
+ $("#ItemsToDelete").empty();
+ for (var i in selected_aliases) {
+ $("#ItemsToDelete").append("<li>" + selected_aliases[i] + "</li>");
}
- });
+ })
+ $('#ConfirmDeleteModal').modal({
+ backdrop: 'static',
+ keyboard: false
+ })
+ .one('click', '#IsConfirmed', function(e) {
+ $.ajax({
+ type: "POST",
+ dataType: "json",
+ data: { "address": JSON.stringify(selected_aliases) },
+ url: '/api/v1/delete/alias/post',
+ jsonp: false,
+ complete: function (data) {
+ location.reload();
+ }
+ });
+ })
+ .one('click', '#isCanceled', function(e) {
+ $('#ConfirmDeleteModal').modal('hide');
+ });;
+
}
});
diff --git a/data/web/lang/lang.de.php b/data/web/lang/lang.de.php
index a14b9143..2a8b7985 100644
--- a/data/web/lang/lang.de.php
+++ b/data/web/lang/lang.de.php
@@ -9,6 +9,12 @@ $lang['header']['restart_sogo'] = 'SOGo neustarten';
$lang['footer']['restart_sogo'] = 'SOGo neustarten';
$lang['footer']['restart_now'] = 'Jetzt neustarten';
$lang['footer']['restart_sogo_info'] = 'Einige Änderungen an Domains benötigen einen Neustart SOGos. Hier können Sie SOGo neustarten.<br /><br /><b>Wichtig:</b> Ein korrekter Neustart SOGos kann eine Weile in Anspruch nehmen, bitte warten Sie, bis der Prozess vollständig beendet wurde.';
+
+$lang['footer']['confirm_delete'] = 'Löschen bestätigen';
+$lang['footer']['delete_these_items'] = 'Sind Sie sicher, dass die folgenden Elemente entfernt werden sollen?';
+$lang['footer']['delete_now'] = 'Jetzt löschen';
+$lang['footer']['cancel'] = 'Abbrechen';
+
$lang['dkim']['confirm'] = 'Sind Sie sicher?';
$lang['danger']['dkim_not_found'] = 'DKIM-Key nicht gefunden';
$lang['danger']['dkim_remove_failed'] = 'Kann DKIM-Key nicht entfernen';
@@ -249,9 +255,12 @@ $lang['mailbox']['add_mailbox'] = 'Mailbox hinzufügen';
$lang['mailbox']['add_resource'] = 'Ressource hinzufügen';
$lang['mailbox']['add_alias'] = 'Alias hinzufügen';
$lang['mailbox']['empty'] = 'Keine Einträge vorhanden';
+$lang['mailbox']['toggle_all'] = 'Alle';
+$lang['mailbox']['quick_actions'] = 'Aktionen';
+$lang['mailbox']['activate'] = 'Aktivieren';
+$lang['mailbox']['deactivate'] = 'Deaktivieren';
$lang['info']['no_action'] = 'Keine Aktion anwendbar';
-
$lang['delete']['title'] = 'Objekt entfernen';
$lang['delete']['remove_domain_warning'] = '<b>Warnung:</b> Sie entfernen die Domain <b>%s</b>!';
$lang['delete']['remove_domainalias_warning'] = '<b>Warnung:</b> Sie entfernen die Alias-Domain <b>%s</b>!';
diff --git a/data/web/lang/lang.en.php b/data/web/lang/lang.en.php
index d3a615c6..6c3f905d 100644
--- a/data/web/lang/lang.en.php
+++ b/data/web/lang/lang.en.php
@@ -9,6 +9,12 @@ $lang['header']['restart_sogo'] = 'Restart SOGo';
$lang['footer']['restart_sogo'] = 'Restart SOGo';
$lang['footer']['restart_now'] = 'Restart now';
$lang['footer']['restart_sogo_info'] = 'Some tasks, e.g. adding a domain, require you to restart SOGo to catch changes made in the mailcow UI.<br /><br /><b>Important:</b> A graceful restart may take a while to complete, please wait for it to finish.';
+
+$lang['footer']['confirm_delete'] = 'Confirm deletion';
+$lang['footer']['delete_these_items'] = 'Are you sure you want to delete the following items?';
+$lang['footer']['delete_now'] = 'Delete now';
+$lang['footer']['cancel'] = 'Cancel';
+
$lang['dkim']['confirm'] = "Are you sure?";
$lang['danger']['dkim_not_found'] = "DKIM key not found";
$lang['danger']['dkim_remove_failed'] = "Cannot remove selected DKIM key";
@@ -252,6 +258,10 @@ $lang['mailbox']['add_resource'] = 'Add resource';
$lang['mailbox']['add_alias'] = 'Add alias';
$lang['mailbox']['add_domain_record_first'] = 'Please add a domain first';
$lang['mailbox']['empty'] = 'No results';
+$lang['mailbox']['toggle_all'] = 'Toggle all';
+$lang['mailbox']['quick_actions'] = 'Quick actions';
+$lang['mailbox']['activate'] = 'Activate';
+$lang['mailbox']['deactivate'] = 'Deactivate';
$lang['info']['no_action'] = 'No action applicable';
diff --git a/data/web/mailbox.php b/data/web/mailbox.php
index a55ff8fd..09164809 100644
--- a/data/web/mailbox.php
+++ b/data/web/mailbox.php
@@ -101,17 +101,16 @@ $_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
<div class="table-responsive">
<table id="alias_table" class="table table-striped"></table>
</div>
+ <div class="mass-actions">
+ <span id="select_all_aliases" class="mass-select-all"><?=$lang['mailbox']['toggle_all'];?></span>
+ <span>– <?=$lang['mailbox']['quick_actions'];?>:
+ <a id="delete_selected_alias" href="#" class="mass-each-action"><?=$lang['mailbox']['remove'];?></a> |
+ <a id="activate_selected_alias" href="#" class="mass-each-action"><?=$lang['mailbox']['activate'];?></a> |
+ <a id="deactivate_selected_alias" href="#" class="mass-each-action"><?=$lang['mailbox']['deactivate'];?></a>
+ </span>
+ </div>
<span class="footer-add-item"><a href="/add.php?alias"><?=$lang['mailbox']['add_alias'];?></a></span>
</div>
- <hr>
- <div class="mass-actions">
- <span id="select_all_aliases" class="mass-select-all">Toggle all</span>
- <span>– Quick actions:
- <a id="delete_selected_alias" href="#" class="mass-each-action">delete</a> |
- <a id="activate_selected_alias" href="#" class="mass-each-action">activate</a> |
- <a id="deactivate_selected_alias" href="#" class="mass-each-action">deactivate</a>
- </span>
- </div>
</div>
</div> <!-- /tab-content -->