From 75c8c6faaeefed18f12a4ce652c4161567219910 Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sat, 18 Jul 2015 12:23:26 +0200 Subject: readded cookie to styling plugin --- lib/plugins/styling/script.js | 95 +++++++++++++++++++++++++++---------------- 1 file changed, 59 insertions(+), 36 deletions(-) (limited to 'lib') diff --git a/lib/plugins/styling/script.js b/lib/plugins/styling/script.js index 84b251eab..f2d550b21 100644 --- a/lib/plugins/styling/script.js +++ b/lib/plugins/styling/script.js @@ -2,10 +2,58 @@ jQuery(function () { - var doreload = 1; + /** + * Function to reload the preview styles in the main window + * + * @param {window} target the main window + */ + function applyPreview(target) { + // remove style + var $style = target.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); + $style.attr('href', ''); + + // append the loader screen + $loader = target.jQuery('#plugin__styling_loader'); + if (!$loader.length) { + $loader = jQuery('
' + LANG.plugins.styling.loader + '
'); + $loader.css({ + 'position': 'absolute', + 'width': '100%', + 'height': '100%', + 'top': 0, + 'left': 0, + 'z-index': 5000, + 'background-color': '#fff', + 'opacity': '0.7', + 'color': '#000', + 'font-size': '2.5em', + 'text-align': 'center', + 'line-height': 1.5, + 'padding-top': '2em' + }); + target.jQuery('body').append($loader); + } + + // load preview in main window (timeout works around chrome updating CSS weirdness) + target.setTimeout(function () { + var now = new Date().getTime(); + $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); + }, 500); + } + var doreload = 1; var $styling_plugin = jQuery('#plugin__styling'); - if (!$styling_plugin.length) return; + + // if we are not on the plugin page (either main or popup) + if (!$styling_plugin.length) { + // handle the preview cookie + if(DokuCookie.getValue('styling_plugin') == 1) { + applyPreview(window); + } + return; // nothing more to do here + } + + /* ---- from here on we're in the popup or admin page ---- */ // add the color picker $styling_plugin.find('.color').iris({}); @@ -18,15 +66,18 @@ jQuery(function () { $btn.click(function (e) { var windowFeatures = "menubar=no,location=no,resizable=yes,scrollbars=yes,status=false,width=500,height=500"; - window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling', windowFeatures) + window.open(DOKU_BASE + 'lib/plugins/styling/popup.php', 'styling_popup', windowFeatures); e.preventDefault(); }).wrap('

'); - return; + return; // we exit here if this is not the popup } + /* ---- from here on we're in the popup only ---- */ + // reload the main page on close window.onunload = function(e) { if(doreload) { + window.opener.DokuCookie.setValue('styling_plugin', 0); window.opener.document.location.reload(); } return null; @@ -37,37 +88,9 @@ jQuery(function () { doreload = false; }); - // remove style - var $style = window.opener.jQuery('link[rel=stylesheet][href*="lib/exe/css.php"]'); - $style.attr('href', ''); - - // append the loader screen - $loader = window.opener.jQuery('#plugin__styling_loader'); - if (!$loader.length) { - $loader = jQuery('
' + LANG.plugins.styling.loader + '
'); - $loader.css({ - 'position': 'absolute', - 'width': '100%', - 'height': '100%', - 'top': 0, - 'left': 0, - 'z-index': 5000, - 'background-color': '#fff', - 'opacity': '0.7', - 'color': '#000', - 'font-size': '2.5em', - 'text-align': 'center', - 'line-height': 1.5, - 'padding-top': '2em' - }); - window.opener.jQuery('body').append($loader); - } - - // load preview in main window (timeout works around chrome updating CSS weirdness) - window.setTimeout(function() { - var now = new Date().getTime(); - $style.attr('href', DOKU_BASE + 'lib/exe/css.php?preview=1&tseed=' + now); - }, 500); - + // on first load apply preview + applyPreview(window.opener); + // enable the preview cookie + window.opener.DokuCookie.setValue('styling_plugin', 1); }); -- cgit v1.2.3