$_page = isset($vars['page']) ? $vars['page'] : '';
$r_page = pagename_urlencode($_page);
-
+ $is_edit_preview = isset($vars['preview']);
// Canonical URL
$canonical_url = get_page_uri($_page, PKWK_URI_ABSOLUTE);
}
}
// Embed Scripting data
- $html_scripting_data = get_html_scripting_data($_page);
+ $html_scripting_data = get_html_scripting_data($_page, $is_edit_preview);
// Compat: 'HTML convert time' without time about MenuBar and skin
$taketime = elapsedtime();
/**
* Get data used by JavaScript modules
+ *
+ * @param $page page name
+ * @param $in_editing true if preview in editing
*/
-function get_html_scripting_data($page)
+function get_html_scripting_data($page, $in_editing)
{
global $ticket_link_sites, $plugin;
global $external_link_cushion_page, $external_link_cushion;
$page_name_data = <<<EOS
<input type="hidden" class="page-name" value="$h_page_name" />
EOS;
+ // Page is editing (preview)
+ $in_editing_value = ($plugin === 'edit' && $in_editing) ? 'true' : 'false';
+ $page_edit_data = <<<EOS
+<input type="hidden" class="page-in-edit" value="$in_editing_value" />
+EOS;
// AutoTicketLink
$filtered_ticket_link_sites = array();
foreach ($ticket_link_sites as $s) {
$site_props
$plugin_prop
$page_name_data
+$page_edit_data
$ticketlink_data
$external_link_cushion_data
$topicpath_data
var textArea = editForm.querySelector('textarea[name="msg"]');
if (!textArea) return;
originalText = textArea.value;
+ var isPreview = false;
+ var inEditE = document.querySelector('#pukiwiki-site-properties .page-in-edit');
+ if (inEditE && inEditE.value) {
+ isPreview = (inEditE.value === 'true');
+ }
var cancelForm = document.querySelector('.edit_form form._plugin_edit_cancel');
var submited = false;
editForm.addEventListener('submit', function() {
window.addEventListener('beforeunload', function(e) {
if (canceled) return;
if (submited) return;
- if (trim(textArea.value) === trim(originalText)) return;
+ if (!isPreview) {
+ if (trim(textArea.value) === trim(originalText)) return;
+ }
var message = 'Data you have entered will not be saved.';
if (unloadBeforeMsgE && unloadBeforeMsgE.value) {
message = unloadBeforeMsgE.value;