|
|
@@ -1,5 +1,7 @@
|
|
|
$(document).ready(function() {
|
|
|
|
|
|
+ var lastOpenedBoxData; // Stores JSON-data of last opened editBox
|
|
|
+
|
|
|
function getUrlGetParameter(val) {
|
|
|
var result = "Not found",
|
|
|
tmp = [];
|
|
|
@@ -21,72 +23,85 @@ $(document).ready(function() {
|
|
|
element.children(".spinner").remove();
|
|
|
}
|
|
|
|
|
|
- function loadBox(element, callback) {
|
|
|
-
|
|
|
- $(document).on("click", element, function(e) {
|
|
|
-
|
|
|
- e.preventDefault();
|
|
|
+ function loadBox(element, boxType, saveID, callback) {
|
|
|
+
|
|
|
+ var saveButtonIDs = {
|
|
|
+ saveMailFolder: {id: "save-mail-folder", text: "Mailkonto speichern"},
|
|
|
+ saveDocument: {id: "save-document", text: "Dokument speichern"},
|
|
|
+ saveLabel: {id: "save-label", text: "Label speichern"}
|
|
|
+ };
|
|
|
+
|
|
|
+ if(boxType == "editBox") {
|
|
|
+
|
|
|
+ $(document).on("click", element, function(e) {
|
|
|
+
|
|
|
+ e.preventDefault();
|
|
|
+
|
|
|
+ $.getJSON($(this).attr('href'), function(r) {
|
|
|
+
|
|
|
+ lastOpenedBoxData = r;
|
|
|
+
|
|
|
+ try {
|
|
|
+ var optionsContainer = document.createElement('div');
|
|
|
+
|
|
|
+ $.each(r['options'], function(i) {
|
|
|
+ switch(this.type) {
|
|
|
+ case 'text':
|
|
|
+ $(optionsContainer).append(this.name + "<input id=\"editbox-input-" + this.name + "\" type=\"text\" value=\"" + this.value + "\" class=\"editbox-input\" /><br><br>");
|
|
|
+ break;
|
|
|
+ case 'select':
|
|
|
+ selectHtml = "<select id=\"editbox-input-" + this.name + "\" class=\"editbox-input\">";
|
|
|
+ if(typeof this['values'] !== "undefined" && this['values']) {
|
|
|
+ this['values'].forEach(function(item) { // TODO: jQuery-each?
|
|
|
+ if(r['options'][0]['value'] == item) {
|
|
|
+ selectHtml += "<option selected value=\"" + item + "\">" + item + "</option>"
|
|
|
+ } else {
|
|
|
+ selectHtml += "<option value=\"" + item + "\">" + item + "</option>"
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ selectHtml += "</select>";
|
|
|
+ $(optionsContainer).append(this.name + selectHtml + "<br><br>");
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- $.get($(this).attr('href'), function(r) {
|
|
|
-
|
|
|
- try {
|
|
|
- editBox = $.parseJSON(r);
|
|
|
- var optionsContainer = document.createElement('div');
|
|
|
-
|
|
|
- $.each(editBox['options'], function(i) {
|
|
|
- switch(this.type) {
|
|
|
- case 'text':
|
|
|
- $(optionsContainer).append(this.name + "<input id=\"editbox-input-" + this.name + "\" type=\"text\" value=\"" + this.value + "\" class=\"editbox-input\" /><br><br>");
|
|
|
- break;
|
|
|
- case 'select':
|
|
|
- selectHtml = "<select id=\"editbox-input-" + this.name + "\" class=\"editbox-input\">";
|
|
|
- if(typeof this['values'] !== "undefined" && this['values']) {
|
|
|
- this['values'].forEach(function(item) { // TODO: jQuery-each?
|
|
|
- if(editBox['options'][0]['value'] == item) {
|
|
|
- selectHtml += "<option selected value=\"" + item + "\">" + item + "</option>"
|
|
|
- } else {
|
|
|
- selectHtml += "<option value=\"" + item + "\">" + item + "</option>"
|
|
|
- }
|
|
|
- });
|
|
|
+ $.fancybox({
|
|
|
+ maxWidth : 800,
|
|
|
+ maxHeight : 600,
|
|
|
+ fitToView : true,
|
|
|
+ width : '70%',
|
|
|
+ height : '70%',
|
|
|
+ autoSize : false,
|
|
|
+ title : "<h3>" + r['title'] + "</h3><hr>",
|
|
|
+ content : optionsContainer.innerHTML,
|
|
|
+ helpers : {
|
|
|
+ title: {
|
|
|
+ type : 'inside',
|
|
|
+ position: 'top'
|
|
|
}
|
|
|
-
|
|
|
- selectHtml += "</select>";
|
|
|
- $(optionsContainer).append(this.name + selectHtml + "<br><br>");
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- $.fancybox({
|
|
|
- maxWidth : 800,
|
|
|
- maxHeight : 600,
|
|
|
- fitToView : true,
|
|
|
- width : '70%',
|
|
|
- height : '70%',
|
|
|
- autoSize : false,
|
|
|
- title : "<h3>" + editBox['title'] + "</h3><hr>",
|
|
|
- content : optionsContainer.innerHTML,
|
|
|
- helpers : {
|
|
|
- title: {
|
|
|
- type : 'inside',
|
|
|
- position: 'top'
|
|
|
+ },
|
|
|
+ afterShow : function() {
|
|
|
+ callback();
|
|
|
+ $('.fancybox-inner').append("<a href=\"#\"type=\"button\" id=\"" + saveButtonIDs[saveID]['id'] + "\" class=\"btn btn-success save-button\">" + saveButtonIDs[saveID]['text'] + "</a>");
|
|
|
}
|
|
|
- },
|
|
|
- afterShow : callback
|
|
|
- });
|
|
|
- } catch(e) {
|
|
|
- console.log(e); // DBG
|
|
|
- var n = noty({
|
|
|
- layout : 'topCenter',
|
|
|
- text : 'Irgendwas ist schief gelaufen.<br>Bitte probieren Sie es später noch einmal.',
|
|
|
- type : 'error',
|
|
|
- timeout : 5000
|
|
|
});
|
|
|
- }
|
|
|
- });
|
|
|
+ } catch(e) {
|
|
|
+ console.log(e); // DBG
|
|
|
+ var n = noty({
|
|
|
+ layout : 'topCenter',
|
|
|
+ text : 'Irgendwas ist schief gelaufen.<br>Bitte probieren Sie es später noch einmal.',
|
|
|
+ type : 'error',
|
|
|
+ timeout : 5000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
function getMailboxStatus() {
|
|
|
@@ -119,8 +134,34 @@ $(document).ready(function() {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ function manageLabelListener() {
|
|
|
+ $(document).on("click", "#save-mail-folder", function(e) {
|
|
|
+ e.preventDefault();
|
|
|
+
|
|
|
+ data = {
|
|
|
+ mailboxFolderID: lastOpenedBoxData['mailboxFolderID'],
|
|
|
+ account: $("#editbox-input-account").val(),
|
|
|
+ folder: $("#editbox-input-folder").val(),
|
|
|
+ labelID: getUrlGetParameter("labelId")
|
|
|
+ };
|
|
|
+
|
|
|
+ $.getJSON("ajax.php?action=saveMailFolder", data, function(r) {
|
|
|
+ if(r['status'] == "OK") {
|
|
|
+ location.reload();
|
|
|
+ } else {
|
|
|
+ var n = noty({
|
|
|
+ layout : 'topCenter',
|
|
|
+ text : 'Irgendwas ist schief gelaufen.<br>Bitte probieren Sie es später noch einmal.',
|
|
|
+ type : 'error',
|
|
|
+ timeout : 5000
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
function manageLabelsListener() {
|
|
|
- $(document).on("click", "#save-new-label", function(e) {
|
|
|
+ $(document).on("click", "#save-label", function(e) {
|
|
|
|
|
|
e.preventDefault();
|
|
|
|
|
|
@@ -175,7 +216,7 @@ $(document).ready(function() {
|
|
|
reloadDraftVars();
|
|
|
});
|
|
|
|
|
|
- $(document).on("click", "#save-new-document", function(e) {
|
|
|
+ $(document).on("click", "#save-document", function(e) {
|
|
|
e.preventDefault();
|
|
|
|
|
|
data = {
|
|
|
@@ -197,6 +238,7 @@ $(document).ready(function() {
|
|
|
|
|
|
function reloadDraftVars() {
|
|
|
$.getJSON("ajax.php?action=getDraftVars&draft=" + $(".fancybox-inner select").val(), function(r) {
|
|
|
+
|
|
|
draftVarsContainer = $("#draft-vars");
|
|
|
|
|
|
if(draftVarsContainer.length > 0) {
|
|
|
@@ -204,17 +246,12 @@ $(document).ready(function() {
|
|
|
draftVarsContainer.remove();
|
|
|
}
|
|
|
|
|
|
- $(".fancybox-inner").append("<div id=\"draft-vars\"></div>")
|
|
|
+ $(".fancybox-inner .save-button").before("<div id=\"draft-vars\"></div>");
|
|
|
|
|
|
r.forEach(function(item) {
|
|
|
- //$(".fancybox-inner #draft-vars").append(item + "<input id=\"editbox-draft-vars-" + item + "\" class=\"editbox-draft-vars\" type=\"text\" /><br><br>");
|
|
|
-
|
|
|
$(".fancybox-inner #draft-vars").append(item + "<textarea id=\"editbox-draft-vars-" + item + "\" class=\"editbox-draft-vars\"></textarea><br><br><br>");
|
|
|
|
|
|
})
|
|
|
-
|
|
|
- $(".fancybox-inner #draft-vars").append("<a href=\"#\"type=\"button\" id=\"save-new-document\" class=\"btn btn-success\">Dokument speichern</a>");
|
|
|
-
|
|
|
});
|
|
|
}
|
|
|
|
|
|
@@ -420,14 +457,15 @@ $(document).ready(function() {
|
|
|
settingsListener();
|
|
|
break;
|
|
|
case 'manage-label':
|
|
|
- loadBox('.manage-mailboxfolder', function() {});
|
|
|
+ loadBox('.manage-mailboxfolder', "editBox", "saveMailFolder", function() {});
|
|
|
+ manageLabelListener();
|
|
|
break;
|
|
|
case 'manage-labels':
|
|
|
- loadBox('#add-label', function() { $('.fancybox-inner').append("<a href=\"#\"type=\"button\" id=\"save-new-label\" class=\"btn btn-success\">Label speichern</a>"); });
|
|
|
+ loadBox('#add-label', "editBox", "saveLabel", function() {});
|
|
|
manageLabelsListener();
|
|
|
break;
|
|
|
case 'label':
|
|
|
- loadBox('#new-document', function() { reloadDraftVars(); });
|
|
|
+ loadBox('#new-document', "editBox", "saveDocument", function() { reloadDraftVars(); }); // TODO: Callback auf reloadDraftVars setzen (ohne ();)
|
|
|
newDocumentListener();
|
|
|
break;
|
|
|
default:
|