var loading_str = '

Loading...

'; var spinner_opts = { lines: 13 // The number of lines to draw , length: 28 // The length of each line , width: 14 // The line thickness , radius: 42 // The radius of the inner circle , scale: 1 // Scales overall size of the spinner , corners: 1 // Corner roundness (0..1) , color: '#000' // #rgb or #rrggbb or array of colors , opacity: 0.125 // Opacity of the lines , rotate: 0 // The rotation offset , direction: 1 // 1: clockwise, -1: counterclockwise , speed: 1 // Rounds per second , trail: 60 // Afterglow percentage , fps: 20 // Frames per second when using setTimeout() as a fallback for CSS , zIndex: 2e9 // The z-index (defaults to 2000000000) , className: 'spinner' // The CSS class to assign to the spinner , top: '50%' // Top position relative to parent , left: '50%' // Left position relative to parent , shadow: false // Whether to render a shadow , hwaccel: false // Whether to use hardware acceleration , position: 'absolute' // Element positioning } jQuery(document).ready(function($){ /* if($("#footer").length) { $(window).bind("load", function () { var footer = $("#footer"); var pos = footer.position(); var height = $(window).height(); height = height - pos.top; height = height - footer.height(); if (height > 0) { footer.css({ 'margin-top': height + 'px' }); } }); } */ add_csrf_token(); add_csrf_token_form(); function add_csrf_token() { $("").attr({ name: "_csrf_token", class: "_csrf_token _refresh", type: "hidden", value: $.cookie("_csrf_token") }).appendTo("form"); } function remove_csrf_token() { $( "input" ).remove( "._csrf_token._refresh" ); } function add_csrf_token_form() { $('body').append(''); } // Bounce Handler, Mostly. $('body').on('click', 'a.modalbox', function(event){ event.preventDefault(); var responsive_options = { width: '95%', height: '95%', maxWidth: '640px', maxHeight: '480px' }; $.colorbox({ top: 0, fixed: true, initialHeight: 50, opacity: 0.50, href: $(this).attr("href"), maxWidth: '640px', maxHeight: '480px', width: '95%', height: '95%' }); $(window).resize(function(){ $.colorbox.resize({ width: window.innerWidth > parseInt(responsive_options.maxWidth) ? responsive_options.maxWidth : responsive_options.width, height: window.innerHeight > parseInt(responsive_options.maxHeight) ? responsive_options.maxHeight : responsive_options.height }); }); }); // Admin Menu if ($("#navcontainer").length) { admin_menu_notifications(); if($("#screen_meta").length) { var highlight_scrn = $("#screen_meta").attr("data-menu_highlight"); $( ".admin_menu_" + highlight_scrn ).addClass( "active" ); } else { /* alert("needs a highlight_scrn"); */ } $("body").on("click", "#navcontainer", function(event) { $( "a" ).removeClass( "menu_selected" ); }); $("body").on("click", ".change_login", function(event) { $("#lsw_change_to_list").val( $(this).attr("data-change_to_list") ); $("#lsw_location").val( $(this).attr("data-location") ); $("#lsw").submit(); }); } //Mail Sending >> Send a Message if ($("#send_email").length || $("#list_invite").length) { var stickyHeader = $('#buttons').offset().top; $(window).scroll(function(){ if( $(window).scrollTop() > stickyHeader && $('#buttons').width() >= 640) { //$('#buttons').css({position: 'fixed', top: '0px'}); $('#buttons').addClass('floating_panel'); } else { //$('#buttons').css({position: 'static', top: '0px'}); $('#buttons').removeClass('floating_panel'); } }); if($("#additional_email_headers").length){ $("#additional_email_headers").hide(); } $("body").on("click", ".kcfinder_open", function(event) { event.preventDefault(); if($("#kcfinder_enabled").val() == 1) { attachments_openKCFinder(this); }else if($("#core5_filemanager_enabled").val() == 1){ browsecore5FileManager(this); }else if($("#rich_filemanager_enabled").val() == 1){ browserrichFileManager(this); } else { alert("No File Browser set up!"); } }); var send_email_callbacks = $.Callbacks(); send_email_callbacks.add(setup_attachment_fields()); send_email_callbacks.add(setup_schedule_fields()); send_email_callbacks.add(toggle_schedule_options()); send_email_callbacks.add(datetimesetupstuff()); send_email_callbacks.add(ChangeMassMailingButtonLabel(1)); send_email_callbacks.add(mass_mailing_schedules_preview()); send_email_callbacks.fire(); if($('#backdate_datetime').length) { $('#backdate_datetime').datetimepicker({maxDate: 0, format:'Y-m-d H:i:s'}); if($('#backdate_datetime').val() == ""){ var d = new Date(); var year = d.getFullYear(); var month = d.getMonth() + 1; var day = d.getDate(); var hours = d.getHours(); var minutes = d.getMinutes(); var seconds = d.getSeconds(); if(month < 10) { month = "0" + month; } if(day < 10) { day = "0" + day; } if(hours < 10) { hours = "0" + hours; } if(minutes < 10) { minutes = "0" + minutes; } if(seconds < 10) { seconds = "0" + seconds; } $("#backdate_datetime").val(year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds); } } $('#entire_form').on('change keyup keydown', 'input, textarea, select', function (e) { $(this).addClass('changed-input'); }); var save_changes = 'You haven\'t saved your changes.'; $(window).on('beforeunload', function () { if ($('.changed-input').length) { return save_changes; } if ($("#using_ckeditor").length) { if(CKEDITOR.instances['html_message_body'].checkDirty() === true){ return save_changes; } } else if($("#using_tinymce").length) { if(tinymce.activeEditor.isDirty() === true){ return save_changes; } } }); $("body").on("click", ".scheduled_type", function(event) { toggle_schedule_options(); }); $("body").on("change", ".schedule_field", function(event) { mass_mailing_schedules_preview(); }); $("body").on("click", ".manually_run_all_scheduled_mass_mailings", function(event) { var mrasmm = $.Callbacks(); mrasmm.add(save_msg(false)); mrasmm.add(manually_run_all_scheduled_mass_mailings()); mrasmm.fire(); }); $("body").on("click", ".preview_calendar", function(event) { event.preventDefault(); // alert("preview_calendar"); var mrasmm = $.Callbacks(); mrasmm.add(save_msg(false)); mrasmm.add( function(){ window.open($("#s_program_url").val() + '?flavor=mass_mailing_schedules_preview_calendar&draft_id=' + $("#draft_id").val()); return true; }); mrasmm.fire(); }); $("body").on("click", ".remove_attachment", function(event) { if(confirm("Remove Attachment?")) { $("#" + $(this).attr("data-attachment")).val(''); $("#" + $(this).attr("data-attachment") + "_button").text('Select a File...'); $(this).hide(); } }); // alert("setting up send_url_options_setup"); $("body").on("click", ".toggle_send_url_options", function(event) { send_url_options_setup(); }); send_url_options_setup(); $("body").on("submit", "#mass_mailing", function(event) { event.preventDefault(); }); if ($("#send_email").length) { auto_save_as_draft(); $("body").on("click", ".save_msg", function(event) { console.log('.save_msg'); $("#button_action_notice").html('Working...'); $("#save_draft_role").val($(this).attr("data-save_draft_role")); var ds = save_msg(false); // First we make sure the browser support this // Then we test if we're not changing the role of the message - // for example, from stationery to draft: if (history.pushState && $(this).attr("data-save_draft_role") == $("#draft_role").val()) { if (ds === true){ let searchParams = new URLSearchParams(window.location.search); searchParams.set('flavor', $("#flavor").val() ); searchParams.set('draft_id', $("#draft_id").val() ); searchParams.set('draft_role', $("#save_draft_role").val()); let newurl = window.location.protocol + "//" + window.location.host + window.location.pathname + '?' + searchParams.toString(); window.history.pushState({path: newurl}, '', newurl); alert('Message Saved.'); $("#button_action_notice").html(' '); } } else { window.location.replace( $("#s_program_url").val() + '?flavor=' + $("#flavor").val() + '&draft_id=' + $("#draft_id").val() + '&draft_role=' + $("#save_draft_role").val() + '&done=1' ); } }); } $("body").on("click", ".sendmassmailing", function(event) { // remove warning about unsaved changes $('.changed-input').removeClass('changed-input'); if ($("#using_ckeditor").length) { CKEDITOR.instances['html_message_body'].resetDirty(); } else if($("#using_tinymce").length) { tinymce.isNotDirty = 1; } $("#button_action_notice").html('Working...'); var fid = 'mass_mailing'; if ($("#using_ckeditor").length) { if(CKEDITOR.instances['html_message_body']) { CKEDITOR.instances['html_message_body'].updateElement(); } } else if($("#using_tinymce").length) { if($("#html_message_body_ifr").length) { tinyMCE.triggerSave(); } } if($(this).hasClass("preview") === true){ //alert('preview!'); var request = $.ajax({ url: $("#s_program_url").val(), type: "POST", dataType: "json", cache: false, data: $("#mass_mailing").serialize() + '&process=preview', success: function(content) { //if(content.status === 0){ // alert(content.errors); // return false; //} //alert('requrest success!'); // console.log('content.id:' + content.id); // console.log('content.status:' + content.status); // console.log('content.body:' + content.body); // console.log('content.errors:' + content.errors); // // if(content.status == 0){ // alert('Problems saving preference:' . content.error) // } else { // alert('Preference Saved'); // } // YES! $("#draft_id").val(content.id); var responsive_options = { width: '95%', height: '95%', maxWidth: '640px', }; if (content.status === 0){ var return_this = '

Problems found:

' 
								+ content.errors 
								+ '
'; $.colorbox({ html: return_this, opacity: 0.50, maxWidth: '640px', width: '95%', height: '95%' }); $(window).resize(function(){ $.colorbox.resize({ width: window.innerWidth > parseInt(responsive_options.maxWidth) ? responsive_options.maxWidth : responsive_options.width, height: responsive_options.height }); }); return true; } else { $('#draft_notice').text($("#draft_role").val() + ' saved: ' + new Date().format("yyyy-MM-dd h:mm:ss")); if ( $("#mass_mailing_show_previews_in").val() == 'new_window' ){ window.open($("#s_program_url").val() + '?flavor=email_message_preview&id=' + content.preview_draft_id, "_blank"); } else { $.colorbox({ iframe: true, fastIframe: false, href: $("#s_program_url").val() + '?flavor=email_message_preview&id=' + content.preview_draft_id, opacity: 0.50, maxWidth: '640px', width: '95%', height: '95%' }); $(window).resize(function(){ $.colorbox.resize({ width: window.innerWidth > parseInt(responsive_options.maxWidth) ? responsive_options.maxWidth : responsive_options.width, height: responsive_options.height }); }); return true; } } }, error: function(xhr, ajaxOptions, thrownError) { console.log('status: ' + xhr.status); console.log('thrownError:' + thrownError); var responsive_options = { width: '95%', height: '95%', maxWidth: '640px', }; var return_this = '

Problems with creating preview/saving draft - see error log for more details.

'; $.colorbox({ html: return_this, opacity: 0.50, maxWidth: '640px', width: '95%', height: '95%' }); $(window).resize(function(){ $.colorbox.resize({ width: window.innerWidth > parseInt(responsive_options.maxWidth) ? responsive_options.maxWidth : responsive_options.width, height: responsive_options.height }); }); $('#draft_notice').text('Problems saving! ' + new Date().format("yyyy-MM-dd h:mm:ss")); return true; }, complete: function(){ $("#button_action_notice").html(' '); } }); } else { var itsatest = $(this).hasClass("justatest"); if (sendMailingListMessage(fid, itsatest) === true) { if($("#f").val() != 'list_invite') { save_msg(false); //admin_menu_drafts_notification(); } if($("#f").val() == 'list_invite' && itsatest == true) { // alert('now were sending out a test message!'); var request = $.ajax({ url: $("#s_program_url").val(), type: "POST", dataType: "html", cache: false, data: $("#mass_mailing").serialize() + '&process=Send%20Test%20Invitation', success: function(content) { alert("List Invitation Test Sent"); }, error: function(xhr, ajaxOptions, thrownError) { alert('Error Sending List Invitation Test: ' + thrownError); console.log('status: ' + xhr.status); console.log('thrownError:' + thrownError); }, }); } else { $("body").off('submit', '#' + fid); return true; } } } }); $("body").on("click", ".ChangeMassMailingButtonLabel", function(event) { ChangeMassMailingButtonLabel(); }); $("body").on("click", ".preview_message_receivers", function(event) { event.preventDefault(); preview_message_receivers(); }); if ($("#using_ckeditor").length) { /* "rand_string()" is there to avoid caching */ CKEDITOR.replace('html_message_body', { customConfig: $("#support_files_url").val() + '/ckeditor/dada_mail_config.js' + '?' + rand_string(), toolbar: 'DadaMail_Admin' }).on( 'fileUploadRequest', function( evt ) { evt.data.requestData.flavor = 'image_drag_and_drop'; // Copy contents of 'upload' image field to a new field with 'drag_and_dropped_image' var requestDataObject = evt.data.requestData; requestDataObject['file_were_uploading']=requestDataObject['upload']; delete requestDataObject['upload']; }); CKEDITOR.on('dialogDefinition', function (event) { var editor = event.editor; var dialogDefinition = event.data.definition; var dialogName = event.data.name; //alert('editor.config.filebrowserBrowseUrl: ' + editor.config.filebrowserBrowseUrl); var cleanUpFuncRef = CKEDITOR.tools.addFunction(function () { // Do the clean-up of filemanager here (called when an image was selected or cancel was clicked) $('#fm-iframe').remove(); $("body").css("overflow-y", "scroll"); }); var tabCount = dialogDefinition.contents.length; for (var i = 0; i < tabCount; i++) { var browseButton = dialogDefinition.contents[i].get('browse'); if (browseButton !== null) { browseButton.hidden = false; browseButton.onClick = function (dialog, i) { editor._.filebrowserSe = this; var editor_url_query = editor.config.filebrowserBrowseUrl + '&CKEditorFuncNum=' + CKEDITOR.instances[event.editor.name]._.filebrowserFn + '&CKEditorCleanUpFuncNum=' + cleanUpFuncRef + '&langCode=en' + '&CKEditor=' + event.editor.name + '&rand_string=' + rand_string(); // to avoid caching var iframe = $("