$(document).ready(function() {
function getUrlGetParameter(val) {
var result = "Not found",
tmp = [];
location.search
.substr(1)
.split("&")
.forEach(function (item) {
tmp = item.split("=");
if (tmp[0] === val) result = decodeURIComponent(tmp[1]);
});
return result;
}
function addSpinner(element) {
element.append("
");
}
function removeSpinner(element) {
element.children(".spinner").remove();
}
function loadBox(element, callback) {
$(document).on("click", element, function(e) {
e.preventDefault();
$.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 + "
");
break;
case 'select':
selectHtml = "";
$(optionsContainer).append(this.name + selectHtml + "
");
break;
default:
break;
}
});
$.fancybox({
maxWidth : 800,
maxHeight : 600,
fitToView : true,
width : '70%',
height : '70%',
autoSize : false,
title : "" + editBox['title'] + "
",
content : optionsContainer.innerHTML,
helpers : {
title: {
type : 'inside',
position: 'top'
}
},
afterShow : callback
});
} catch(e) {
console.log(e); // DBG
var n = noty({
layout : 'topCenter',
text : 'Irgendwas ist schief gelaufen.
Bitte probieren Sie es später noch einmal.',
type : 'error',
timeout : 5000
});
}
});
});
}
function getMailboxStatus() {
$("#settings-mailboxes tr").each(function(item) {
var thisTr = this;
if(this.attributes.length > 0) {
if($(this).children("td:first").children().length > 0) {
$(this).children("td:first").children().remove();
}
addSpinner($(this).children("td:first"));
$.getJSON("ajax.php?action=getMailboxStatus&mailboxId=" + $(this).attr("data-mailbox-id"), function(r) {
if(r['connected'] == true) {
removeSpinner($(thisTr).children("td:first"));
$(thisTr).children("td:first").append("");
} else {
removeSpinner($(thisTr).children("td:first"));
$(thisTr).children("td:first").append("");
}
});
}
});
}
function settingsListener() {
$(document).on("click", "#refresh-mailaccounts", function(e) {
e.preventDefault();
getMailboxStatus();
});
}
function newLabelListener() {
$(document).on("click", "#save-new-label", function(e) {
e.preventDefault();
data = {
name: $("#editbox-input-name").val(),
path: $("#editbox-input-path").val()
};
$.getJSON("ajax.php?action=saveNewLabel", data, function(r) {
if(r['status'] == "OK") {
location.reload();
} else {
var n = noty({
layout : 'topCenter',
text : 'Irgendwas ist schief gelaufen.
Bitte probieren Sie es später noch einmal.',
type : 'error',
timeout : 5000
});
}
});
});
}
function newDocumentListener() {
$(document).on("change", ".fancybox-inner select", function(e) {
reloadDraftVars();
});
$(document).on("click", "#save-new-document", function(e) {
e.preventDefault();
data = {
draft: $("#editbox-input-vorlage").val(),
filename: $("#editbox-input-filename").val(),
labelId: getUrlGetParameter("labelId"),
draftVars: {}
};
$(".editbox-draft-vars").each(function(i) {
data['draftVars'][$(this).attr("id").replace("editbox-draft-vars-", "")] = $(this).val();
});
$.getJSON("ajax.php?action=saveNewDocument", data, function(r) {
console.log(r);
});
});
}
function reloadDraftVars() {
$.getJSON("ajax.php?action=getDraftVars&draft=" + $(".fancybox-inner select").val(), function(r) {
draftVarsContainer = $("#draft-vars");
if(draftVarsContainer.length > 0) {
console.log(draftVarsContainer);
draftVarsContainer.remove();
}
$(".fancybox-inner").append("")
r.forEach(function(item) {
//$(".fancybox-inner #draft-vars").append(item + "
");
$(".fancybox-inner #draft-vars").append(item + "
");
})
$(".fancybox-inner #draft-vars").append("Dokument speichern");
});
}
$.fn.editable.defaults.mode = 'inline';
$.fn.editableform.buttons =
''+
'';
$('.editable-element-text').editable({
escape: false,
success: function(response, newValue) {
console.log(response); // Debug output from ajax.php
if(response.status == 'error') return response.msg; //msg will be shown in editable form
},
error: function (xhr, status, error) {
//var err = eval("(" + xhr.responseText + ")");
return xhr.statusText;
},
params: function(params) {
params.action = 'updateMailaccounts';
return params;
}
});
$('.editable-element-select-protocol').editable({
defaultValue: 'imap',
source: [
{value: 'imap', text: 'IMAP'},
{value: 'pop3', text: 'POP3'}
],
success: function(response, newValue) {
console.log(response); // Debug output from ajax.php
if(response.status == 'error') return response.msg; //msg will be shown in editable form
},
error: function (xhr, status, error) {
//var err = eval("(" + xhr.responseText + ")");
return xhr.statusText;
},
params: function(params) {
params.action = 'updateMailaccounts';
return params;
}
});
$('.editable-element-select-use-ssl').editable({
defaultValue: '1',
source: [
{value: '1', text: 'On'},
{value: '0', text: 'Off'}
],
success: function(response, newValue) {
console.log(response); // Debug output from ajax.php
if(response.status == 'error') return response.msg; //msg will be shown in editable form
},
error: function (xhr, status, error) {
//var err = eval("(" + xhr.responseText + ")");
return xhr.statusText;
},
params: function(params) {
params.action = 'updateMailaccounts';
return params;
}
});
$('.editable-element-select-no-valid-cert').editable({
defaultValue: '0',
source: [
{value: '0', text: 'On'},
{value: '1', text: 'Off'}
],
success: function(response, newValue) {
console.log(response); // Debug output from ajax.php
if(response.status == 'error') return response.msg; //msg will be shown in editable form
},
error: function (xhr, status, error) {
//var err = eval("(" + xhr.responseText + ")");
return xhr.statusText;
},
params: function(params) {
params.action = 'updateMailaccounts';
return params;
}
});
$('#add-mailaccount').on('click', function(e) {
e.preventDefault();
var uId = $(this).attr('data-uid');
$.ajax({
url: 'ajax.php',
type: 'POST',
data: {'action': 'addDefaultMailaccount', 'user-id': uId},
success: function (result) {
console.log(result);
location.reload();
}
});
});
function fancyBoxLoader() {
$.ajax({
url: 'ajax.php',
data: {'action': 'getMailAccountsByUid', 'uId': $('.manage-mailboxfolder').attr('data-uid')},
type: 'GET',
global: false,
async: true,
dataType: 'json',
success: function(data) {
result = data;
$('.editable-element-select-mailaccount').editable({
//defaultValue: '0',
source: result,
success: function(response, newValue) {
console.log(response); // Debug output from ajax.php
if(response.status == 'error') return response.msg; //msg will be shown in editable form
},
error: function (xhr, status, error) {
//var err = eval("(" + xhr.responseText + ")");
return xhr.statusText;
},
params: function(params) {
params.action = 'updateMailfolder';
return params;
}
});
}
});
$('.editable-element-text').editable({
escape: false,
success: function(response, newValue) {
console.log(response); // Debug output from ajax.php
if(response.status == 'error') return response.msg; //msg will be shown in editable form
},
error: function (xhr, status, error) {
//var err = eval("(" + xhr.responseText + ")");
return xhr.statusText;
},
params: function(params) {
params.action = 'updateMailfolder';
return params;
}
});
}
$('.remove-mailaccount').on('click', function(e) {
e.preventDefault();
var id = $(this).attr('data-id');
$.ajax({
url: 'ajax.php',
type: 'POST',
data: {'action': 'removeMailaccount', 'id': id},
success: function (result) {
console.log(result);
location.reload();
}
});
});
$('.remove-mailboxfolder').on('click', function(e) {
e.preventDefault();
var id = $(this).attr('data-id');
$.ajax({
url: 'ajax.php',
type: 'POST',
data: {'action': 'removeMailboxFolder', 'id': id},
success: function (result) {
console.log(result);
location.reload();
}
});
});
$('#add-mailboxfolder').on('click', function(e) {
e.preventDefault();
var uId = $(this).attr('data-uid');
var lId = $(this).attr('data-lid');
$.ajax({
url: 'ajax.php',
type: 'POST',
data: {'action': 'addDefaultMailfolder', 'user-id': uId, 'label-id': lId},
success: function (result) {
console.log(result);
location.reload();
},
error: function(result) {
console.log(result);
}
});
});
switch(getUrlGetParameter("action")) {
case 'settings':
getMailboxStatus();
settingsListener();
break;
case 'manage-label':
loadBox('.manage-mailboxfolder', function() {});
break;
case 'manage-labels':
loadBox('#add-label', function() { $('.fancybox-inner').append("Label speichern"); });
newLabelListener();
break;
case 'label':
loadBox('#new-document', function() { reloadDraftVars(); });
newDocumentListener();
break;
default:
break;
}
});