/public/admin/assets/pages/scripts/inbox.js
JavaScript | 336 lines | 262 code | 56 blank | 18 comment | 11 complexity | 4c35ad39b4cfd131588284bf30a45e53 MD5 | raw file
- var AppInbox = function () {
- var content = $('.inbox-content');
- var loading = $('.inbox-loading');
- var listListing = '';
- var loadInbox = function (el, name) {
- var url = 'app_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();
- }
- App.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 = 'app_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();
- App.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 = 'app_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();
- App.initUniform();
- },
- error: function(xhr, ajaxOptions, thrownError)
- {
- toggleButton(el);
- },
- async: false
- });
- }
- var loadReply = function (el) {
- var messageid = $(el).attr("data-messageid");
- var url = 'app_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();
- App.initUniform();
- },
- error: function(xhr, ajaxOptions, thrownError)
- {
- toggleButton(el);
- },
- async: false
- });
- }
- var loadSearchResults = function (el) {
- var url = 'app_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();
- App.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 (App.getURLParameter("a") === "view") {
- loadMessage();
- } else if (App.getURLParameter("a") === "compose") {
- loadCompose();
- } else {
- $('.inbox-nav > li.inbox > a').click();
- }
- }
- };
- }();
- jQuery(document).ready(function() {
- AppInbox.init();
- });