<?php if(!defined('PmWiki'))exit; /** Page Not Saved Warning for PmWiki Written by (c) Petko Yotov 2009-2015 This text is written for PmWiki; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. See pmwiki.php for full details and lack of warranty. Copyright 2009-2015 Petko Yotov www.pmwiki.org/petko */ $RecipeInfo['NotSaved']['Version'] = '20150329'; SDV($NsWarning, '$[Content was modified, but not saved!]'); SDVA($HTMLFooterFmt, array('Notsaved' => '<script type="text/javascript"><!-- function NsSubmit() { if(NsPromptAuthor && typeof(NsForm.author)!="undefined" && NsForm.author.value=="") { var r = uPrompt(NsPromptAuthor, ""); if(typeof(r)=="string")NsForm.author.value=r; else {NsForm.author.focus(); return false;} } if(NsPromptSum && typeof(NsForm.csum)!="undefined" && NsForm.csum.value=="") { var r = uPrompt(NsPromptSum, ""); if(typeof(r)=="string")NsForm.csum.value=r; else {NsForm.csum.focus(); return false;} } NsMessage=""; return true; } function uPrompt(msg) { var ua = navigator.userAgent; var idx = ua.indexOf("MSIE "); var sel = false; if(NsForm.author.type == "select-one") { if(NsForm.author.options[NsForm.author.selectedIndex].value == "") sel = true; } if(sel || (idx>0 && parseFloat( ua.substring(idx+4) )>=7) ) { alert(msg); return false; } else return prompt(msg, ""); } var NsMessage = ""; var NsForm = false; var NsPreview = false; var NsPromptSum = false; var NsPromptAuthor = false; for(var i=0; i<document.forms.length; i++) { var f = document.forms[i]; for(var j=0; j<f.elements.length; j++) { var e = f.elements[j]; if(e.type == "submit" && e.name.match(/^post(edit|draft)?$/)) { NsForm = f; e.onclick = NsSubmit; } else if(e.type == "submit" && e.name.match(/^(preview|cancel)$/)) e.onclick = function(){NsMessage="";return true;}; } if(NsForm) break; } window.onbeforeunload = function(ev) { if(!NsForm || NsMessage=="") return; if (typeof ev == "undefined")ev = window.event; var tarea = document.getElementById("text"); if (tarea && tarea.codemirror) tarea.codemirror.save(); for(var i=0; i<NsForm.elements.length; i++) { var e = NsForm.elements[i]; if(NsPreview || (e.type.match(/^text(area)?$/) && e.value != e.defaultValue)) { if (ev) {ev.returnValue = NsMessage;} return NsMessage; } } } //--></script>')); if(@$_REQUEST['preview']>'') $HTMLFooterFmt['Notsaved'] = str_replace('//-->', 'NsPreview = true;//-->', $HTMLFooterFmt['Notsaved']); if(IsEnabled($NsPromptSum, false)) $HTMLFooterFmt['Notsaved'] = str_replace('var NsPromptSum = false;', "var NsPromptSum = \"".addslashes($NsPromptSum)."\";", $HTMLFooterFmt['Notsaved']); if(IsEnabled($NsPromptAuthor, false)) $HTMLFooterFmt['Notsaved'] = str_replace('var NsPromptAuthor = false;', "var NsPromptAuthor = \"".addslashes($NsPromptAuthor)."\";", $HTMLFooterFmt['Notsaved']); if(IsEnabled($NsWarning, false)) $HTMLFooterFmt['Notsaved'] = str_replace('var NsMessage = "";', "var NsMessage = \"".addslashes($NsWarning)."\";", $HTMLFooterFmt['Notsaved']);