JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.5
[ckeditor.git] / _source / plugins / placeholder / dialogs / placeholder.js
diff --git a/_source/plugins/placeholder/dialogs/placeholder.js b/_source/plugins/placeholder/dialogs/placeholder.js
new file mode 100644 (file)
index 0000000..8885ecd
--- /dev/null
@@ -0,0 +1,78 @@
+/*\r
+ * Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+ * For licensing, see LICENSE.html or http://ckeditor.com/license\r
+ */\r
+\r
+(function()\r
+{\r
+       function placeholderDialog( editor, isEdit )\r
+       {\r
+\r
+               var lang = editor.lang.placeholder,\r
+                       generalLabel = editor.lang.common.generalTab;\r
+               return {\r
+                       title : lang.title,\r
+                       minWidth : 300,\r
+                       minHeight : 80,\r
+                       contents :\r
+                       [\r
+                               {\r
+                                       id : 'info',\r
+                                       label : generalLabel,\r
+                                       title : generalLabel,\r
+                                       elements :\r
+                                       [\r
+                                               {\r
+                                                       id : 'text',\r
+                                                       type : 'text',\r
+                                                       style : 'width: 100%;',\r
+                                                       label : lang.text,\r
+                                                       'default' : '',\r
+                                                       required : true,\r
+                                                       validate : CKEDITOR.dialog.validate.notEmpty( lang.textMissing ),\r
+                                                       setup : function( element )\r
+                                                       {\r
+                                                               if ( isEdit )\r
+                                                                       this.setValue( element.getText().slice( 2, -2 ) );\r
+                                                       },\r
+                                                       commit : function( element )\r
+                                                       {\r
+                                                               var text = '[[' + this.getValue() + ']]';\r
+                                                               // The placeholder must be recreated.\r
+                                                               CKEDITOR.plugins.placeholder.createPlaceholder( editor, element, text );\r
+                                                       }\r
+                                               }\r
+                                       ]\r
+                               }\r
+                       ],\r
+                       onShow : function()\r
+                       {\r
+                               if ( isEdit )\r
+                               {\r
+                                       var range = editor.getSelection().getRanges()[0];\r
+                                       range.shrink( CKEDITOR.SHRINK_TEXT );\r
+                                       var node = range.startContainer;\r
+                                       while( node && !( node.type == CKEDITOR.NODE_ELEMENT && node.data( 'cke-placeholder' ) ) )\r
+                                               node = node.getParent();\r
+                                       this._element = node;\r
+                               }\r
+\r
+                               this.setupContent( this._element );\r
+                       },\r
+                       onOk : function()\r
+                       {\r
+                               this.commitContent( this._element );\r
+                               delete this._element;\r
+                       }\r
+               };\r
+       }\r
+\r
+       CKEDITOR.dialog.add( 'createplaceholder', function( editor )\r
+               {\r
+                       return placeholderDialog( editor );\r
+               });\r
+       CKEDITOR.dialog.add( 'editplaceholder', function( editor )\r
+               {\r
+                       return placeholderDialog( editor, 1 );\r
+               });\r
+} )();\r