{I" class:ETI"ProcessedAsset;FI"logical_path;TI"polyblock/polyblock.js;FI" pathname;TI"i/Applications/XAMPP/xamppfiles/htdocs/polyblock/app/assets/javascripts/polyblock/polyblock.js.coffee;FI"content_type;TI"application/javascript;TI" mtime;Tl+J5ěRI" length;Ti˘+I" digest;TI"%99993613baf5a361b041bd01c87bf346;FI" source;TI"˘+(function() { var unsavedChanges; CKEDITOR.disableAutoInline = true; unsavedChanges = false; window.onbeforeunload = function() { if (unsavedChanges) { return "Are you sure you want to leave this page? Your unsaved changes will not be stored!"; } }; $(function() { return $(document).ready(function() { var blocks, fetch_blocks, has_switch, initialize, pb_switch; fetch_blocks = function() { return $(".polyblock[contenteditable='true']").not('.polyblock-condensed'); }; blocks = fetch_blocks(); if (!blocks.length) { return; } pb_switch = $('.polyblock-switch'); has_switch = pb_switch.is('*'); initialize = function() { var blockclones, changeChecker, changeText, convertFromTextarea, convertToTextarea, currentMode, editorModeOff, editorModeOn, indicator, initialBodyPadding, instanciateCKEditor, previousMode, revertChanges, saveChanges, showSavedChanges, showUnsavedChanges, startListening, stopListening, verbose; blockclones = {}; instanciateCKEditor = function(id) { var editor; return editor = CKEDITOR.inline(id, { on: { contentDom: function() { return editor.document.on('keydown', function(e) { if ((e.data.$.ctrlKey || e.data.$.metaKey) && e.data.$.keyCode === 83) { try { e.data.$.preventDefault(); } catch (_error) {} saveChanges(); return false; } }); }, focus: function(e) { editorModeOn(); return startListening(id); }, blur: function(e) { return stopListening(); } } }); }; blocks.each(function() { var id; id = $(this).attr('id'); blockclones[id] = $(this).clone(); if (!_.contains(_.keys(CKEDITOR.instances), id)) { return instanciateCKEditor(id); } }); verbose = false; changeChecker = null; indicator = $('.pb-change-indicator'); changeText = $('.pb-change-text'); startListening = function(which) { var buffer; stopListening(); if (verbose) { console.log("I'm listening..."); } buffer = CKEDITOR.instances[which].getData(); return changeChecker = setInterval(function() { var reading; if (verbose) { console.log("Checking for changes..."); } reading = CKEDITOR.instances[which].getData(); if (reading !== buffer && !unsavedChanges) { return showUnsavedChanges(); } else if (reading === buffer && unsavedChanges) { return showSavedChanges(); } }, 1000); }; stopListening = function() { if (changeChecker == null) { return; } if (verbose) { console.log("I'm no longer listening."); } clearInterval(changeChecker); return changeChecker = null; }; showUnsavedChanges = function() { indicator.transition({ rotate: "-30deg", color: "red" }); changeText.html("You have unsaved changes.").transition({ color: "red" }); return unsavedChanges = true; }; showSavedChanges = function() { indicator.transition({ rotate: "0deg", color: "green" }); changeText.html("All changes saved.").transition({ color: "green" }); return unsavedChanges = false; }; initialBodyPadding = $('body').css("padding-bottom"); editorModeOn = function(pb) { return $('#pb_bar').show("slide", { direction: "down" }, 250, function() { $('body').css("padding-bottom", $("#pb_bar").height() + 20); return typeof pb === "function" ? pb() : void 0; }); }; editorModeOff = function(pb) { return $('#pb_bar').hide("slide", { direction: "down" }, 250, function() { $('body').css("padding-bottom", initialBodyPadding); return typeof pb === "function" ? pb() : void 0; }); }; saveChanges = function() { var pbs; showSavedChanges(); pbs = _.map(blocks, function(b) { return { id: $(b).attr("data-pbid"), name: $(b).attr("data-pbname"), content: $(b).html() }; }); return $.post("/polyblock/update", { pbs: pbs }, function(data) { return editorModeOff(function() { return alertify.success("Your changes have been saved."); }); }); }; revertChanges = function(pb) { if (!confirm("Are you sure you want to discard your changes?")) { return; } return editorModeOff(function() { blocks.each(function() { return $(this).replaceWith(blockclones[$(this).attr("id")]); }); return alertify.success("Your changes have been discarded."); }); }; currentMode = previousMode = "WYSIWYG"; convertToTextarea = function(block, content, tab) { var previous_textarea, replaceIt, tabchars, textarea, _this = this; if (content == null) { content = null; } if (tab == null) { tab = "\t"; } tabchars = tab.replace(/\\/, "").length; previous_textarea = $("textarea[data-pbid=" + (block.attr("data-pbid")) + "]"); if (content == null) { content = previous_textarea.is("*") ? previous_textarea.val() : block.html(); } textarea = $('