--- a/src/pyams_skin/resources/js/ext/tinymce/dev/plugins/autosave/plugin.js Sun Jul 19 02:02:20 2020 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,165 +0,0 @@
-/**
- * plugin.js
- *
- * Copyright, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://www.tinymce.com/license
- * Contributing: http://www.tinymce.com/contributing
- */
-
-/*global tinymce:true */
-
-// Internal unload handler will be called before the page is unloaded
-// Needs to be outside the plugin since it would otherwise keep
-// a reference to editor in closue scope
-/*eslint no-func-assign:0 */
-tinymce._beforeUnloadHandler = function() {
- var msg;
-
- tinymce.each(tinymce.editors, function(editor) {
- // Store a draft for each editor instance
- if (editor.plugins.autosave) {
- editor.plugins.autosave.storeDraft();
- }
-
- // Setup a return message if the editor is dirty
- if (!msg && editor.isDirty() && editor.getParam("autosave_ask_before_unload", true)) {
- msg = editor.translate("You have unsaved changes are you sure you want to navigate away?");
- }
- });
-
- return msg;
-};
-
-tinymce.PluginManager.add('autosave', function(editor) {
- var settings = editor.settings, LocalStorage = tinymce.util.LocalStorage, prefix, started;
-
- prefix = settings.autosave_prefix || 'tinymce-autosave-{path}{query}-{id}-';
- prefix = prefix.replace(/\{path\}/g, document.location.pathname);
- prefix = prefix.replace(/\{query\}/g, document.location.search);
- prefix = prefix.replace(/\{id\}/g, editor.id);
-
- function parseTime(time, defaultTime) {
- var multipels = {
- s: 1000,
- m: 60000
- };
-
- time = /^(\d+)([ms]?)$/.exec('' + (time || defaultTime));
-
- return (time[2] ? multipels[time[2]] : 1) * parseInt(time, 10);
- }
-
- function hasDraft() {
- var time = parseInt(LocalStorage.getItem(prefix + "time"), 10) || 0;
-
- if (new Date().getTime() - time > settings.autosave_retention) {
- removeDraft(false);
- return false;
- }
-
- return true;
- }
-
- function removeDraft(fire) {
- LocalStorage.removeItem(prefix + "draft");
- LocalStorage.removeItem(prefix + "time");
-
- if (fire !== false) {
- editor.fire('RemoveDraft');
- }
- }
-
- function storeDraft() {
- if (!isEmpty() && editor.isDirty()) {
- LocalStorage.setItem(prefix + "draft", editor.getContent({format: 'raw', no_events: true}));
- LocalStorage.setItem(prefix + "time", new Date().getTime());
- editor.fire('StoreDraft');
- }
- }
-
- function restoreDraft() {
- if (hasDraft()) {
- editor.setContent(LocalStorage.getItem(prefix + "draft"), {format: 'raw'});
- editor.fire('RestoreDraft');
- }
- }
-
- function startStoreDraft() {
- if (!started) {
- setInterval(function() {
- if (!editor.removed) {
- storeDraft();
- }
- }, settings.autosave_interval);
-
- started = true;
- }
- }
-
- settings.autosave_interval = parseTime(settings.autosave_interval, '30s');
- settings.autosave_retention = parseTime(settings.autosave_retention, '20m');
-
- function postRender() {
- var self = this;
-
- self.disabled(!hasDraft());
-
- editor.on('StoreDraft RestoreDraft RemoveDraft', function() {
- self.disabled(!hasDraft());
- });
-
- startStoreDraft();
- }
-
- function restoreLastDraft() {
- editor.undoManager.beforeChange();
- restoreDraft();
- removeDraft();
- editor.undoManager.add();
- }
-
- editor.addButton('restoredraft', {
- title: 'Restore last draft',
- onclick: restoreLastDraft,
- onPostRender: postRender
- });
-
- editor.addMenuItem('restoredraft', {
- text: 'Restore last draft',
- onclick: restoreLastDraft,
- onPostRender: postRender,
- context: 'file'
- });
-
- function isEmpty(html) {
- var forcedRootBlockName = editor.settings.forced_root_block;
-
- html = tinymce.trim(typeof html == "undefined" ? editor.getBody().innerHTML : html);
-
- return html === '' || new RegExp(
- '^<' + forcedRootBlockName + '[^>]*>((\u00a0| |[ \t]|<br[^>]*>)+?|)<\/' + forcedRootBlockName + '>|<br>$', 'i'
- ).test(html);
- }
-
- if (editor.settings.autosave_restore_when_empty !== false) {
- editor.on('init', function() {
- if (hasDraft() && isEmpty()) {
- restoreDraft();
- }
- });
-
- editor.on('saveContent', function() {
- removeDraft();
- });
- }
-
- window.onbeforeunload = tinymce._beforeUnloadHandler;
-
- this.hasDraft = hasDraft;
- this.storeDraft = storeDraft;
- this.restoreDraft = restoreDraft;
- this.removeDraft = removeDraft;
- this.isEmpty = isEmpty;
-});
\ No newline at end of file