mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2024-11-14 01:20:27 +00:00
332 lines
9.6 KiB
JavaScript
332 lines
9.6 KiB
JavaScript
|
var Inbox = function () {
|
||
|
|
||
|
var content = $('.inbox-content');
|
||
|
var loading = $('.inbox-loading');
|
||
|
var listListing = '';
|
||
|
|
||
|
var loadInbox = function (el, name) {
|
||
|
var url = 'inbox_inbox.html';
|
||
|
var title = $('.inbox-nav > li.' + name + ' a').attr('data-title');
|
||
|
listListing = name;
|
||
|
|
||
|
loading.show();
|
||
|
content.html('');
|
||
|
toggleButton(el);
|
||
|
|
||
|
$.ajax({
|
||
|
type: "GET",
|
||
|
cache: false,
|
||
|
url: url,
|
||
|
dataType: "html",
|
||
|
success: function(res)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
|
||
|
$('.inbox-nav > li.active').removeClass('active');
|
||
|
$('.inbox-nav > li.' + name).addClass('active');
|
||
|
$('.inbox-header > h1').text(title);
|
||
|
|
||
|
loading.hide();
|
||
|
content.html(res);
|
||
|
if (Layout.fixContentHeight) {
|
||
|
Layout.fixContentHeight();
|
||
|
}
|
||
|
Metronic.initUniform();
|
||
|
},
|
||
|
error: function(xhr, ajaxOptions, thrownError)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
},
|
||
|
async: false
|
||
|
});
|
||
|
|
||
|
// handle group checkbox:
|
||
|
jQuery('body').on('change', '.mail-group-checkbox', function () {
|
||
|
var set = jQuery('.mail-checkbox');
|
||
|
var checked = jQuery(this).is(":checked");
|
||
|
jQuery(set).each(function () {
|
||
|
$(this).attr("checked", checked);
|
||
|
});
|
||
|
jQuery.uniform.update(set);
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var loadMessage = function (el, name, resetMenu) {
|
||
|
var url = 'inbox_view.html';
|
||
|
|
||
|
loading.show();
|
||
|
content.html('');
|
||
|
toggleButton(el);
|
||
|
|
||
|
var message_id = el.parent('tr').attr("data-messageid");
|
||
|
|
||
|
$.ajax({
|
||
|
type: "GET",
|
||
|
cache: false,
|
||
|
url: url,
|
||
|
dataType: "html",
|
||
|
data: {'message_id': message_id},
|
||
|
success: function(res)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
|
||
|
if (resetMenu) {
|
||
|
$('.inbox-nav > li.active').removeClass('active');
|
||
|
}
|
||
|
$('.inbox-header > h1').text('View Message');
|
||
|
|
||
|
loading.hide();
|
||
|
content.html(res);
|
||
|
Layout.fixContentHeight();
|
||
|
Metronic.initUniform();
|
||
|
},
|
||
|
error: function(xhr, ajaxOptions, thrownError)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
},
|
||
|
async: false
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var initWysihtml5 = function () {
|
||
|
$('.inbox-wysihtml5').wysihtml5({
|
||
|
"stylesheets": ["../../assets/global/plugins/bootstrap-wysihtml5/wysiwyg-color.css"]
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var initFileupload = function () {
|
||
|
|
||
|
$('#fileupload').fileupload({
|
||
|
// Uncomment the following to send cross-domain cookies:
|
||
|
//xhrFields: {withCredentials: true},
|
||
|
url: '../../assets/global/plugins/jquery-file-upload/server/php/',
|
||
|
autoUpload: true
|
||
|
});
|
||
|
|
||
|
// Upload server status check for browsers with CORS support:
|
||
|
if ($.support.cors) {
|
||
|
$.ajax({
|
||
|
url: '../../assets/global/plugins/jquery-file-upload/server/php/',
|
||
|
type: 'HEAD'
|
||
|
}).fail(function () {
|
||
|
$('<span class="alert alert-error"/>')
|
||
|
.text('Upload server currently unavailable - ' +
|
||
|
new Date())
|
||
|
.appendTo('#fileupload');
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
var loadCompose = function (el) {
|
||
|
var url = 'inbox_compose.html';
|
||
|
|
||
|
loading.show();
|
||
|
content.html('');
|
||
|
toggleButton(el);
|
||
|
|
||
|
// load the form via ajax
|
||
|
$.ajax({
|
||
|
type: "GET",
|
||
|
cache: false,
|
||
|
url: url,
|
||
|
dataType: "html",
|
||
|
success: function(res)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
|
||
|
$('.inbox-nav > li.active').removeClass('active');
|
||
|
$('.inbox-header > h1').text('Compose');
|
||
|
|
||
|
loading.hide();
|
||
|
content.html(res);
|
||
|
|
||
|
initFileupload();
|
||
|
initWysihtml5();
|
||
|
|
||
|
$('.inbox-wysihtml5').focus();
|
||
|
Layout.fixContentHeight();
|
||
|
Metronic.initUniform();
|
||
|
},
|
||
|
error: function(xhr, ajaxOptions, thrownError)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
},
|
||
|
async: false
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var loadReply = function (el) {
|
||
|
var messageid = $(el).attr("data-messageid");
|
||
|
var url = 'inbox_reply.html?messageid=' + messageid;
|
||
|
|
||
|
loading.show();
|
||
|
content.html('');
|
||
|
toggleButton(el);
|
||
|
|
||
|
// load the form via ajax
|
||
|
$.ajax({
|
||
|
type: "GET",
|
||
|
cache: false,
|
||
|
url: url,
|
||
|
dataType: "html",
|
||
|
success: function(res)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
|
||
|
$('.inbox-nav > li.active').removeClass('active');
|
||
|
$('.inbox-header > h1').text('Reply');
|
||
|
|
||
|
loading.hide();
|
||
|
content.html(res);
|
||
|
$('[name="message"]').val($('#reply_email_content_body').html());
|
||
|
|
||
|
handleCCInput(); // init "CC" input field
|
||
|
|
||
|
initFileupload();
|
||
|
initWysihtml5();
|
||
|
Layout.fixContentHeight();
|
||
|
Metronic.initUniform();
|
||
|
},
|
||
|
error: function(xhr, ajaxOptions, thrownError)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
},
|
||
|
async: false
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var loadSearchResults = function (el) {
|
||
|
var url = 'inbox_inbox.html';
|
||
|
|
||
|
loading.show();
|
||
|
content.html('');
|
||
|
toggleButton(el);
|
||
|
|
||
|
$.ajax({
|
||
|
type: "GET",
|
||
|
cache: false,
|
||
|
url: url,
|
||
|
dataType: "html",
|
||
|
success: function(res)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
|
||
|
$('.inbox-nav > li.active').removeClass('active');
|
||
|
$('.inbox-header > h1').text('Search');
|
||
|
|
||
|
loading.hide();
|
||
|
content.html(res);
|
||
|
Layout.fixContentHeight();
|
||
|
Metronic.initUniform();
|
||
|
},
|
||
|
error: function(xhr, ajaxOptions, thrownError)
|
||
|
{
|
||
|
toggleButton(el);
|
||
|
},
|
||
|
async: false
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var handleCCInput = function () {
|
||
|
var the = $('.inbox-compose .mail-to .inbox-cc');
|
||
|
var input = $('.inbox-compose .input-cc');
|
||
|
the.hide();
|
||
|
input.show();
|
||
|
$('.close', input).click(function () {
|
||
|
input.hide();
|
||
|
the.show();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var handleBCCInput = function () {
|
||
|
|
||
|
var the = $('.inbox-compose .mail-to .inbox-bcc');
|
||
|
var input = $('.inbox-compose .input-bcc');
|
||
|
the.hide();
|
||
|
input.show();
|
||
|
$('.close', input).click(function () {
|
||
|
input.hide();
|
||
|
the.show();
|
||
|
});
|
||
|
}
|
||
|
|
||
|
var toggleButton = function(el) {
|
||
|
if (typeof el == 'undefined') {
|
||
|
return;
|
||
|
}
|
||
|
if (el.attr("disabled")) {
|
||
|
el.attr("disabled", false);
|
||
|
} else {
|
||
|
el.attr("disabled", true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return {
|
||
|
//main function to initiate the module
|
||
|
init: function () {
|
||
|
|
||
|
// handle compose btn click
|
||
|
$('.inbox').on('click', '.compose-btn a', function () {
|
||
|
loadCompose($(this));
|
||
|
});
|
||
|
|
||
|
// handle discard btn
|
||
|
$('.inbox').on('click', '.inbox-discard-btn', function(e) {
|
||
|
e.preventDefault();
|
||
|
loadInbox($(this), listListing);
|
||
|
});
|
||
|
|
||
|
// handle reply and forward button click
|
||
|
$('.inbox').on('click', '.reply-btn', function () {
|
||
|
loadReply($(this));
|
||
|
});
|
||
|
|
||
|
// handle view message
|
||
|
$('.inbox-content').on('click', '.view-message', function () {
|
||
|
loadMessage($(this));
|
||
|
});
|
||
|
|
||
|
// handle inbox listing
|
||
|
$('.inbox-nav > li.inbox > a').click(function () {
|
||
|
loadInbox($(this), 'inbox');
|
||
|
});
|
||
|
|
||
|
// handle sent listing
|
||
|
$('.inbox-nav > li.sent > a').click(function () {
|
||
|
loadInbox($(this), 'sent');
|
||
|
});
|
||
|
|
||
|
// handle draft listing
|
||
|
$('.inbox-nav > li.draft > a').click(function () {
|
||
|
loadInbox($(this), 'draft');
|
||
|
});
|
||
|
|
||
|
// handle trash listing
|
||
|
$('.inbox-nav > li.trash > a').click(function () {
|
||
|
loadInbox($(this), 'trash');
|
||
|
});
|
||
|
|
||
|
//handle compose/reply cc input toggle
|
||
|
$('.inbox-content').on('click', '.mail-to .inbox-cc', function () {
|
||
|
handleCCInput();
|
||
|
});
|
||
|
|
||
|
//handle compose/reply bcc input toggle
|
||
|
$('.inbox-content').on('click', '.mail-to .inbox-bcc', function () {
|
||
|
handleBCCInput();
|
||
|
});
|
||
|
|
||
|
//handle loading content based on URL parameter
|
||
|
if (Metronic.getURLParameter("a") === "view") {
|
||
|
loadMessage();
|
||
|
} else if (Metronic.getURLParameter("a") === "compose") {
|
||
|
loadCompose();
|
||
|
} else {
|
||
|
$('.inbox-nav > li.inbox > a').click();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
};
|
||
|
|
||
|
}();
|