]> git.immae.eu Git - perso/Immae/Projets/packagist/connexionswing-ckeditor-component.git/blame - release/samples/old/dialog/dialog.html
Upgrade to 4.5.7 and add some plugin
[perso/Immae/Projets/packagist/connexionswing-ckeditor-component.git] / release / samples / old / dialog / dialog.html
CommitLineData
7adcb81e
IB
1<!DOCTYPE html>\r
2<!--\r
3b35bd27 3Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.\r
7adcb81e
IB
4For licensing, see LICENSE.md or http://ckeditor.com/license\r
5-->\r
6<html>\r
7<head>\r
8 <meta charset="utf-8">\r
9 <title>Using API to Customize Dialog Windows &mdash; CKEditor Sample</title>\r
10 <script src="../../../ckeditor.js"></script>\r
11 <link rel="stylesheet" href="../../../samples/old/sample.css">\r
12 <meta name="ckeditor-sample-name" content="Using the JavaScript API to customize dialog windows">\r
13 <meta name="ckeditor-sample-group" content="Advanced Samples">\r
14 <meta name="ckeditor-sample-description" content="Using the dialog windows API to customize dialog windows without changing the original editor code.">\r
15 <style>\r
16\r
17 .cke_button__mybutton_icon\r
18 {\r
19 display: none !important;\r
20 }\r
21\r
22 .cke_button__mybutton_label\r
23 {\r
24 display: inline !important;\r
25 }\r
26\r
27 </style>\r
28 <script>\r
29\r
30 CKEDITOR.on( 'instanceCreated', function( ev ){\r
31 var editor = ev.editor;\r
32\r
33 // Listen for the "pluginsLoaded" event, so we are sure that the\r
34 // "dialog" plugin has been loaded and we are able to do our\r
35 // customizations.\r
36 editor.on( 'pluginsLoaded', function() {\r
37\r
38 // If our custom dialog has not been registered, do that now.\r
39 if ( !CKEDITOR.dialog.exists( 'myDialog' ) ) {\r
40 // We need to do the following trick to find out the dialog\r
41 // definition file URL path. In the real world, you would simply\r
42 // point to an absolute path directly, like "/mydir/mydialog.js".\r
43 var href = document.location.href.split( '/' );\r
44 href.pop();\r
45 href.push( 'assets/my_dialog.js' );\r
46 href = href.join( '/' );\r
47\r
48 // Finally, register the dialog.\r
49 CKEDITOR.dialog.add( 'myDialog', href );\r
50 }\r
51\r
52 // Register the command used to open the dialog.\r
53 editor.addCommand( 'myDialogCmd', new CKEDITOR.dialogCommand( 'myDialog' ) );\r
54\r
55 // Add the a custom toolbar buttons, which fires the above\r
56 // command..\r
57 editor.ui.add( 'MyButton', CKEDITOR.UI_BUTTON, {\r
58 label: 'My Dialog',\r
59 command: 'myDialogCmd'\r
60 });\r
61 });\r
62 });\r
63\r
64 // When opening a dialog, its "definition" is created for it, for\r
65 // each editor instance. The "dialogDefinition" event is then\r
66 // fired. We should use this event to make customizations to the\r
67 // definition of existing dialogs.\r
68 CKEDITOR.on( 'dialogDefinition', function( ev ) {\r
69 // Take the dialog name and its definition from the event data.\r
70 var dialogName = ev.data.name;\r
71 var dialogDefinition = ev.data.definition;\r
72\r
73 // Check if the definition is from the dialog we're\r
74 // interested on (the "Link" dialog).\r
75 if ( dialogName == 'myDialog' && ev.editor.name == 'editor2' ) {\r
76 // Get a reference to the "Link Info" tab.\r
77 var infoTab = dialogDefinition.getContents( 'tab1' );\r
78\r
79 // Add a new text field to the "tab1" tab page.\r
80 infoTab.add( {\r
81 type: 'text',\r
82 label: 'My Custom Field',\r
83 id: 'customField',\r
84 'default': 'Sample!',\r
85 validate: function() {\r
86 if ( ( /\d/ ).test( this.getValue() ) )\r
87 return 'My Custom Field must not contain digits';\r
88 }\r
89 });\r
90\r
91 // Remove the "select1" field from the "tab1" tab.\r
92 infoTab.remove( 'select1' );\r
93\r
94 // Set the default value for "input1" field.\r
95 var input1 = infoTab.get( 'input1' );\r
96 input1[ 'default' ] = 'www.example.com';\r
97\r
98 // Remove the "tab2" tab page.\r
99 dialogDefinition.removeContents( 'tab2' );\r
100\r
101 // Add a new tab to the "Link" dialog.\r
102 dialogDefinition.addContents( {\r
103 id: 'customTab',\r
104 label: 'My Tab',\r
105 accessKey: 'M',\r
106 elements: [\r
107 {\r
108 id: 'myField1',\r
109 type: 'text',\r
110 label: 'My Text Field'\r
111 },\r
112 {\r
113 id: 'myField2',\r
114 type: 'text',\r
115 label: 'Another Text Field'\r
116 }\r
117 ]\r
118 });\r
119\r
120 // Provide the focus handler to start initial focus in "customField" field.\r
121 dialogDefinition.onFocus = function() {\r
122 var urlField = this.getContentElement( 'tab1', 'customField' );\r
123 urlField.select();\r
124 };\r
125 }\r
126 });\r
127\r
128 var config = {\r
129 extraPlugins: 'dialog',\r
130 toolbar: [ [ 'MyButton' ] ]\r
131 };\r
132\r
133 </script>\r
134</head>\r
135<body>\r
136 <h1 class="samples">\r
137 <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Using CKEditor Dialog API\r
138 </h1>\r
139 <div class="warning deprecated">\r
140 This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>.\r
141 </div>\r
142 <div class="description">\r
143 <p>\r
144 This sample shows how to use the\r
145 <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.dialog">CKEditor Dialog API</a>\r
146 to customize CKEditor dialog windows without changing the original editor code.\r
147 The following customizations are being done in the example below:\r
148 </p>\r
149 <p>\r
150 For details on how to create this setup check the source code of this sample page.\r
151 </p>\r
152 </div>\r
153 <p>A custom dialog is added to the editors using the <code>pluginsLoaded</code> event, from an external <a target="_blank" href="assets/my_dialog.js">dialog definition file</a>:</p>\r
154 <ol>\r
155 <li><strong>Creating a custom dialog window</strong> &ndash; "My Dialog" dialog window opened with the "My Dialog" toolbar button.</li>\r
156 <li><strong>Creating a custom button</strong> &ndash; Add button to open the dialog with "My Dialog" toolbar button.</li>\r
157 </ol>\r
158 <textarea cols="80" id="editor1" name="editor1" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>\r
159 <script>\r
160 // Replace the <textarea id="editor1"> with an CKEditor instance.\r
161 CKEDITOR.replace( 'editor1', config );\r
162 </script>\r
163 <p>The below editor modify the dialog definition of the above added dialog using the <code>dialogDefinition</code> event:</p>\r
164 <ol>\r
165 <li><strong>Adding dialog tab</strong> &ndash; Add new tab "My Tab" to dialog window.</li>\r
166 <li><strong>Removing a dialog window tab</strong> &ndash; Remove "Second Tab" page from the dialog window.</li>\r
167 <li><strong>Adding dialog window fields</strong> &ndash; Add "My Custom Field" to the dialog window.</li>\r
168 <li><strong>Removing dialog window field</strong> &ndash; Remove "Select Field" selection field from the dialog window.</li>\r
169 <li><strong>Setting default values for dialog window fields</strong> &ndash; Set default value of "Text Field" text field. </li>\r
170 <li><strong>Setup initial focus for dialog window</strong> &ndash; Put initial focus on "My Custom Field" text field. </li>\r
171 </ol>\r
172 <textarea cols="80" id="editor2" name="editor2" rows="10">&lt;p&gt;This is some &lt;strong&gt;sample text&lt;/strong&gt;. You are using &lt;a href="http://ckeditor.com/"&gt;CKEditor&lt;/a&gt;.&lt;/p&gt;</textarea>\r
173 <script>\r
174\r
175 // Replace the <textarea id="editor1"> with an CKEditor instance.\r
176 CKEDITOR.replace( 'editor2', config );\r
177\r
178 </script>\r
179 <div id="footer">\r
180 <hr>\r
181 <p>\r
182 CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
183 </p>\r
184 <p id="copy">\r
3b35bd27 185 Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
7adcb81e
IB
186 Knabben. All rights reserved.\r
187 </p>\r
188 </div>\r
189</body>\r
190</html>\r