src/pyams_skin/resources/js/ext/tinymce/dev/plugins/pagebreak/plugin.js
changeset 69 a361355b55c7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pyams_skin/resources/js/ext/tinymce/dev/plugins/pagebreak/plugin.js	Wed Jun 17 10:00:10 2015 +0200
@@ -0,0 +1,88 @@
+/**
+ * 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 */
+
+tinymce.PluginManager.add('pagebreak', function(editor) {
+	var pageBreakClass = 'mce-pagebreak', separatorHtml = editor.getParam('pagebreak_separator', '<!-- pagebreak -->');
+
+	var pageBreakSeparatorRegExp = new RegExp(separatorHtml.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {
+		return '\\' + a;
+	}), 'gi');
+
+	var pageBreakPlaceHolderHtml = '<img src="' + tinymce.Env.transparentSrc + '" class="' +
+		pageBreakClass + '" data-mce-resize="false" />';
+
+	// Register commands
+	editor.addCommand('mcePageBreak', function() {
+		if (editor.settings.pagebreak_split_block) {
+			editor.insertContent('<p>' + pageBreakPlaceHolderHtml + '</p>');
+		} else {
+			editor.insertContent(pageBreakPlaceHolderHtml);
+		}
+	});
+
+	// Register buttons
+	editor.addButton('pagebreak', {
+		title: 'Page break',
+		cmd: 'mcePageBreak'
+	});
+
+	editor.addMenuItem('pagebreak', {
+		text: 'Page break',
+		icon: 'pagebreak',
+		cmd: 'mcePageBreak',
+		context: 'insert'
+	});
+
+	editor.on('ResolveName', function(e) {
+		if (e.target.nodeName == 'IMG' && editor.dom.hasClass(e.target, pageBreakClass)) {
+			e.name = 'pagebreak';
+		}
+	});
+
+	editor.on('click', function(e) {
+		e = e.target;
+
+		if (e.nodeName === 'IMG' && editor.dom.hasClass(e, pageBreakClass)) {
+			editor.selection.select(e);
+		}
+	});
+
+	editor.on('BeforeSetContent', function(e) {
+		e.content = e.content.replace(pageBreakSeparatorRegExp, pageBreakPlaceHolderHtml);
+	});
+
+	editor.on('PreInit', function() {
+		editor.serializer.addNodeFilter('img', function(nodes) {
+			var i = nodes.length, node, className;
+
+			while (i--) {
+				node = nodes[i];
+				className = node.attr('class');
+				if (className && className.indexOf('mce-pagebreak') !== -1) {
+					// Replace parent block node if pagebreak_split_block is enabled
+					var parentNode = node.parent;
+					if (editor.schema.getBlockElements()[parentNode.name] && editor.settings.pagebreak_split_block) {
+						parentNode.type = 3;
+						parentNode.value = separatorHtml;
+						parentNode.raw = true;
+						node.remove();
+						continue;
+					}
+
+					node.type = 3;
+					node.value = separatorHtml;
+					node.raw = true;
+				}
+			}
+		});
+	});
+});
\ No newline at end of file