geri 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/Rakefile +26 -0
  4. data/app/assets/javascripts/geri/admin.js +33 -0
  5. data/app/assets/javascripts/geri/admin/app.js +758 -0
  6. data/app/assets/javascripts/geri/admin/editor.js +56 -0
  7. data/app/assets/javascripts/geri/admin/password_resets.js +2 -0
  8. data/app/assets/stylesheets/geri/admin.css.less +60 -0
  9. data/app/assets/stylesheets/geri/admin/app.css +4915 -0
  10. data/app/assets/stylesheets/geri/admin/ckeditor/contents.css +135 -0
  11. data/app/assets/stylesheets/geri/admin/editor.css.less +38 -0
  12. data/app/assets/stylesheets/geri/admin/password_resets.css +4 -0
  13. data/app/assets/stylesheets/geri/admin/skin-blue.less +142 -0
  14. data/app/assets/vendor/ckeditor/CHANGES.md +1065 -0
  15. data/app/assets/vendor/ckeditor/LICENSE.md +1420 -0
  16. data/app/assets/vendor/ckeditor/README.md +39 -0
  17. data/app/assets/vendor/ckeditor/adapters/jquery.js +10 -0
  18. data/app/assets/vendor/ckeditor/build-config.js +69 -0
  19. data/app/assets/vendor/ckeditor/ckeditor.js +775 -0
  20. data/app/assets/vendor/ckeditor/config.js +34 -0
  21. data/app/assets/vendor/ckeditor/contents.css +135 -0
  22. data/app/assets/vendor/ckeditor/lang/en.js +5 -0
  23. data/app/assets/vendor/ckeditor/plugins/about/dialogs/about.js +7 -0
  24. data/app/assets/vendor/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
  25. data/app/assets/vendor/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
  26. data/app/assets/vendor/ckeditor/plugins/clipboard/dialogs/paste.js +12 -0
  27. data/app/assets/vendor/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
  28. data/app/assets/vendor/ckeditor/plugins/icons.png +0 -0
  29. data/app/assets/vendor/ckeditor/plugins/icons_hidpi.png +0 -0
  30. data/app/assets/vendor/ckeditor/plugins/link/dialogs/anchor.js +7 -0
  31. data/app/assets/vendor/ckeditor/plugins/link/dialogs/link.js +26 -0
  32. data/app/assets/vendor/ckeditor/plugins/link/images/anchor.png +0 -0
  33. data/app/assets/vendor/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
  34. data/app/assets/vendor/ckeditor/samples/css/samples.css +1640 -0
  35. data/app/assets/vendor/ckeditor/samples/img/github-top.png +0 -0
  36. data/app/assets/vendor/ckeditor/samples/img/header-bg.png +0 -0
  37. data/app/assets/vendor/ckeditor/samples/img/header-separator.png +0 -0
  38. data/app/assets/vendor/ckeditor/samples/img/logo.png +0 -0
  39. data/app/assets/vendor/ckeditor/samples/img/navigation-tip.png +0 -0
  40. data/app/assets/vendor/ckeditor/samples/index.html +128 -0
  41. data/app/assets/vendor/ckeditor/samples/js/sample.js +53 -0
  42. data/app/assets/vendor/ckeditor/samples/js/sf.js +17 -0
  43. data/app/assets/vendor/ckeditor/samples/old/ajax.html +85 -0
  44. data/app/assets/vendor/ckeditor/samples/old/api.html +210 -0
  45. data/app/assets/vendor/ckeditor/samples/old/appendto.html +59 -0
  46. data/app/assets/vendor/ckeditor/samples/old/assets/inlineall/logo.png +0 -0
  47. data/app/assets/vendor/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css +204 -0
  48. data/app/assets/vendor/ckeditor/samples/old/assets/posteddata.php +59 -0
  49. data/app/assets/vendor/ckeditor/samples/old/assets/sample.jpg +0 -0
  50. data/app/assets/vendor/ckeditor/samples/old/assets/uilanguages/languages.js +7 -0
  51. data/app/assets/vendor/ckeditor/samples/old/datafiltering.html +508 -0
  52. data/app/assets/vendor/ckeditor/samples/old/dialog/assets/my_dialog.js +48 -0
  53. data/app/assets/vendor/ckeditor/samples/old/dialog/dialog.html +190 -0
  54. data/app/assets/vendor/ckeditor/samples/old/divreplace.html +144 -0
  55. data/app/assets/vendor/ckeditor/samples/old/enterkey/enterkey.html +106 -0
  56. data/app/assets/vendor/ckeditor/samples/old/index.html +122 -0
  57. data/app/assets/vendor/ckeditor/samples/old/inlineall.html +314 -0
  58. data/app/assets/vendor/ckeditor/samples/old/inlinebycode.html +124 -0
  59. data/app/assets/vendor/ckeditor/samples/old/inlinetextarea.html +113 -0
  60. data/app/assets/vendor/ckeditor/samples/old/jquery.html +103 -0
  61. data/app/assets/vendor/ckeditor/samples/old/readonly.html +76 -0
  62. data/app/assets/vendor/ckeditor/samples/old/replacebyclass.html +60 -0
  63. data/app/assets/vendor/ckeditor/samples/old/replacebycode.html +59 -0
  64. data/app/assets/vendor/ckeditor/samples/old/sample.css +357 -0
  65. data/app/assets/vendor/ckeditor/samples/old/sample.js +50 -0
  66. data/app/assets/vendor/ckeditor/samples/old/sample_posteddata.php +16 -0
  67. data/app/assets/vendor/ckeditor/samples/old/tabindex.html +78 -0
  68. data/app/assets/vendor/ckeditor/samples/old/toolbar/toolbar.html +235 -0
  69. data/app/assets/vendor/ckeditor/samples/old/uicolor.html +72 -0
  70. data/app/assets/vendor/ckeditor/samples/old/uilanguages.html +122 -0
  71. data/app/assets/vendor/ckeditor/samples/old/wysiwygarea/fullpage.html +80 -0
  72. data/app/assets/vendor/ckeditor/samples/old/xhtmlstyle.html +234 -0
  73. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/css/fontello.css +55 -0
  74. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt +10 -0
  75. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/config.json +28 -0
  76. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.eot +0 -0
  77. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.svg +14 -0
  78. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.ttf +0 -0
  79. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.woff +0 -0
  80. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/index.html +446 -0
  81. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js +13 -0
  82. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js +9 -0
  83. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js +33 -0
  84. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js +14 -0
  85. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE +19 -0
  86. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css +325 -0
  87. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js +288 -0
  88. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js +25 -0
  89. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css +36 -0
  90. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css +38 -0
  91. data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js +16 -0
  92. data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog.css +1 -0
  93. data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_ie.css +1 -0
  94. data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_ie7.css +1 -0
  95. data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_ie8.css +1 -0
  96. data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_iequirks.css +1 -0
  97. data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_opera.css +1 -0
  98. data/app/assets/vendor/ckeditor/skins/bootstrapck/editor.css +1 -0
  99. data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_gecko.css +1 -0
  100. data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_ie.css +1 -0
  101. data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_ie7.css +1 -0
  102. data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_ie8.css +1 -0
  103. data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_iequirks.css +1 -0
  104. data/app/assets/vendor/ckeditor/skins/bootstrapck/icons.png +0 -0
  105. data/app/assets/vendor/ckeditor/skins/bootstrapck/icons_hidpi.png +0 -0
  106. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/arrow.png +0 -0
  107. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/close.png +0 -0
  108. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/hidpi/close.png +0 -0
  109. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/hidpi/lock-open.png +0 -0
  110. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/hidpi/lock.png +0 -0
  111. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/hidpi/refresh.png +0 -0
  112. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/lock-open.png +0 -0
  113. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/lock.png +0 -0
  114. data/app/assets/vendor/ckeditor/skins/bootstrapck/images/refresh.png +0 -0
  115. data/app/assets/vendor/ckeditor/skins/bootstrapck/readme.md +35 -0
  116. data/app/assets/vendor/ckeditor/skins/bootstrapck/sample/bootstrapck-sample.html +127 -0
  117. data/app/assets/vendor/ckeditor/skins/bootstrapck/sample/css/bootstrapck-sample.css +1 -0
  118. data/app/assets/vendor/ckeditor/skins/bootstrapck/sample/js/analytics.js +4 -0
  119. data/app/assets/vendor/ckeditor/skins/bootstrapck/sample/js/jquery-1.11.0.min.js +189 -0
  120. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/gecko/editor_gecko.scss +25 -0
  121. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie/dialog_ie.scss +62 -0
  122. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie/editor_ie.scss +71 -0
  123. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie7/dialog_ie7.scss +68 -0
  124. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie7/editor_ie7.scss +213 -0
  125. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie8/dialog_ie8.scss +24 -0
  126. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie8/editor_ie8.scss +27 -0
  127. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/iequirks/dialog_iequirks.scss +21 -0
  128. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/iequirks/editor_iequirks.scss +79 -0
  129. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/opera/dialog_opera.scss +31 -0
  130. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_colorpanel.scss +119 -0
  131. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_elementspath.scss +66 -0
  132. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_mainui.scss +189 -0
  133. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_menu.scss +182 -0
  134. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_panel.scss +199 -0
  135. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_presets.scss +32 -0
  136. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_reset.scss +107 -0
  137. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_richcombo.scss +174 -0
  138. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_toolbar.scss +317 -0
  139. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/editor.scss +66 -0
  140. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/config/_colors.scss +61 -0
  141. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/config/_config.scss +9 -0
  142. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/config/_defaults.scss +37 -0
  143. data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/dialog/dialog.scss +822 -0
  144. data/app/assets/vendor/ckeditor/styles.js +111 -0
  145. data/app/controllers/geri/admin/admin_users_controller.rb +56 -0
  146. data/app/controllers/geri/admin/dashboard_controller.rb +8 -0
  147. data/app/controllers/geri/admin/editor_controller.rb +33 -0
  148. data/app/controllers/geri/admin/password_resets_controller.rb +21 -0
  149. data/app/controllers/geri/admin/sessions_controller.rb +24 -0
  150. data/app/controllers/geri/admin_controller.rb +19 -0
  151. data/app/controllers/geri/application_controller.rb +5 -0
  152. data/app/controllers/geri/pages_controller.rb +34 -0
  153. data/app/helpers/geri/admin/dashboard_helper.rb +4 -0
  154. data/app/helpers/geri/admin/editor_helper.rb +4 -0
  155. data/app/helpers/geri/admin/pages_helper.rb +45 -0
  156. data/app/helpers/geri/admin/partials_helper.rb +4 -0
  157. data/app/helpers/geri/admin/password_resets_helper.rb +4 -0
  158. data/app/helpers/geri/admin/sessions_helper.rb +4 -0
  159. data/app/helpers/geri/admin_helper.rb +24 -0
  160. data/app/helpers/geri/admin_users_helper.rb +4 -0
  161. data/app/helpers/geri/application_helper.rb +26 -0
  162. data/app/helpers/geri/meta_helper.rb +32 -0
  163. data/app/mailers/application_mailer.rb +4 -0
  164. data/app/mailers/geri/admin_user_mailer.rb +11 -0
  165. data/app/models/geri/admin_user.rb +14 -0
  166. data/app/models/geri/content.rb +6 -0
  167. data/app/models/geri/password_reset.rb +17 -0
  168. data/app/models/geri/session.rb +20 -0
  169. data/app/views/geri/admin/admin_users/_form.html.erb +5 -0
  170. data/app/views/geri/admin/admin_users/edit.html.erb +27 -0
  171. data/app/views/geri/admin/admin_users/index.html.erb +45 -0
  172. data/app/views/geri/admin/admin_users/new.html.erb +17 -0
  173. data/app/views/geri/admin/dashboard/index.html.erb +1 -0
  174. data/app/views/geri/admin/editor/template.html.erb +17 -0
  175. data/app/views/geri/admin/password_resets/new.html.erb +17 -0
  176. data/app/views/geri/admin/sessions/new.html.erb +23 -0
  177. data/app/views/geri/admin/shared/_aside.html.erb +16 -0
  178. data/app/views/geri/admin/shared/_header.html.erb +31 -0
  179. data/app/views/geri/admin/shared/_menu_item.html.erb +17 -0
  180. data/app/views/geri/admin_user_mailer/reset_password_email.text.erb +7 -0
  181. data/app/views/layouts/geri/admin.html.erb +24 -0
  182. data/app/views/layouts/geri/admin/sessions.html.erb +21 -0
  183. data/app/views/layouts/mailer.html.erb +5 -0
  184. data/app/views/layouts/mailer.text.erb +1 -0
  185. data/config/initializers/geri.rb +7 -0
  186. data/config/initializers/sorcery.rb +463 -0
  187. data/config/locales/devise.en.yml +62 -0
  188. data/config/locales/en.yml +13 -0
  189. data/config/routes.rb +23 -0
  190. data/db/migrate/20160409151523_create_geri_contents.rb +8 -0
  191. data/db/migrate/20160411205412_sorcery_core.rb +20 -0
  192. data/lib/generators/geri/install/USAGE +8 -0
  193. data/lib/generators/geri/install/install_generator.rb +54 -0
  194. data/lib/generators/geri/install/templates/bower.json +8 -0
  195. data/lib/generators/geri/install/templates/index.html.erb +46 -0
  196. data/lib/generators/geri/install/templates/initializer.rb +12 -0
  197. data/lib/generators/geri/install/templates/layout.html.erb +11 -0
  198. data/lib/generators/geri/install/templates/site.css.less +1 -0
  199. data/lib/generators/geri/install/templates/site.js +1 -0
  200. data/lib/geri.rb +7 -0
  201. data/lib/geri/cli.rb +6 -0
  202. data/lib/geri/cli/base.rb +23 -0
  203. data/lib/geri/cli/extension.rb +18 -0
  204. data/lib/geri/config.rb +29 -0
  205. data/lib/geri/config/menu_item.rb +35 -0
  206. data/lib/geri/engine.rb +34 -0
  207. data/lib/geri/tasks.rb +3 -0
  208. data/lib/geri/tasks/create_admin_user.rb +40 -0
  209. data/lib/geri/version.rb +3 -0
  210. data/lib/tasks/geri_tasks.rake +15 -0
  211. metadata +449 -0
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
3
+ * For licensing, see LICENSE.md or http://ckeditor.com/license
4
+ */
5
+
6
+ CKEDITOR.dialog.add( 'myDialog', function() {
7
+ return {
8
+ title: 'My Dialog',
9
+ minWidth: 400,
10
+ minHeight: 200,
11
+ contents: [
12
+ {
13
+ id: 'tab1',
14
+ label: 'First Tab',
15
+ title: 'First Tab',
16
+ elements: [
17
+ {
18
+ id: 'input1',
19
+ type: 'text',
20
+ label: 'Text Field'
21
+ },
22
+ {
23
+ id: 'select1',
24
+ type: 'select',
25
+ label: 'Select Field',
26
+ items: [
27
+ [ 'option1', 'value1' ],
28
+ [ 'option2', 'value2' ]
29
+ ]
30
+ }
31
+ ]
32
+ },
33
+ {
34
+ id: 'tab2',
35
+ label: 'Second Tab',
36
+ title: 'Second Tab',
37
+ elements: [
38
+ {
39
+ id: 'button1',
40
+ type: 'button',
41
+ label: 'Button Field'
42
+ }
43
+ ]
44
+ }
45
+ ]
46
+ };
47
+ } );
48
+
@@ -0,0 +1,190 @@
1
+ <!DOCTYPE html>
2
+ <!--
3
+ Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
4
+ For licensing, see LICENSE.md or http://ckeditor.com/license
5
+ -->
6
+ <html>
7
+ <head>
8
+ <meta charset="utf-8">
9
+ <title>Using API to Customize Dialog Windows &mdash; CKEditor Sample</title>
10
+ <script src="../../../ckeditor.js"></script>
11
+ <link rel="stylesheet" href="../../../samples/old/sample.css">
12
+ <meta name="ckeditor-sample-name" content="Using the JavaScript API to customize dialog windows">
13
+ <meta name="ckeditor-sample-group" content="Advanced Samples">
14
+ <meta name="ckeditor-sample-description" content="Using the dialog windows API to customize dialog windows without changing the original editor code.">
15
+ <style>
16
+
17
+ .cke_button__mybutton_icon
18
+ {
19
+ display: none !important;
20
+ }
21
+
22
+ .cke_button__mybutton_label
23
+ {
24
+ display: inline !important;
25
+ }
26
+
27
+ </style>
28
+ <script>
29
+
30
+ CKEDITOR.on( 'instanceCreated', function( ev ){
31
+ var editor = ev.editor;
32
+
33
+ // Listen for the "pluginsLoaded" event, so we are sure that the
34
+ // "dialog" plugin has been loaded and we are able to do our
35
+ // customizations.
36
+ editor.on( 'pluginsLoaded', function() {
37
+
38
+ // If our custom dialog has not been registered, do that now.
39
+ if ( !CKEDITOR.dialog.exists( 'myDialog' ) ) {
40
+ // We need to do the following trick to find out the dialog
41
+ // definition file URL path. In the real world, you would simply
42
+ // point to an absolute path directly, like "/mydir/mydialog.js".
43
+ var href = document.location.href.split( '/' );
44
+ href.pop();
45
+ href.push( 'assets/my_dialog.js' );
46
+ href = href.join( '/' );
47
+
48
+ // Finally, register the dialog.
49
+ CKEDITOR.dialog.add( 'myDialog', href );
50
+ }
51
+
52
+ // Register the command used to open the dialog.
53
+ editor.addCommand( 'myDialogCmd', new CKEDITOR.dialogCommand( 'myDialog' ) );
54
+
55
+ // Add the a custom toolbar buttons, which fires the above
56
+ // command..
57
+ editor.ui.add( 'MyButton', CKEDITOR.UI_BUTTON, {
58
+ label: 'My Dialog',
59
+ command: 'myDialogCmd'
60
+ });
61
+ });
62
+ });
63
+
64
+ // When opening a dialog, its "definition" is created for it, for
65
+ // each editor instance. The "dialogDefinition" event is then
66
+ // fired. We should use this event to make customizations to the
67
+ // definition of existing dialogs.
68
+ CKEDITOR.on( 'dialogDefinition', function( ev ) {
69
+ // Take the dialog name and its definition from the event data.
70
+ var dialogName = ev.data.name;
71
+ var dialogDefinition = ev.data.definition;
72
+
73
+ // Check if the definition is from the dialog we're
74
+ // interested on (the "Link" dialog).
75
+ if ( dialogName == 'myDialog' && ev.editor.name == 'editor2' ) {
76
+ // Get a reference to the "Link Info" tab.
77
+ var infoTab = dialogDefinition.getContents( 'tab1' );
78
+
79
+ // Add a new text field to the "tab1" tab page.
80
+ infoTab.add( {
81
+ type: 'text',
82
+ label: 'My Custom Field',
83
+ id: 'customField',
84
+ 'default': 'Sample!',
85
+ validate: function() {
86
+ if ( ( /\d/ ).test( this.getValue() ) )
87
+ return 'My Custom Field must not contain digits';
88
+ }
89
+ });
90
+
91
+ // Remove the "select1" field from the "tab1" tab.
92
+ infoTab.remove( 'select1' );
93
+
94
+ // Set the default value for "input1" field.
95
+ var input1 = infoTab.get( 'input1' );
96
+ input1[ 'default' ] = 'www.example.com';
97
+
98
+ // Remove the "tab2" tab page.
99
+ dialogDefinition.removeContents( 'tab2' );
100
+
101
+ // Add a new tab to the "Link" dialog.
102
+ dialogDefinition.addContents( {
103
+ id: 'customTab',
104
+ label: 'My Tab',
105
+ accessKey: 'M',
106
+ elements: [
107
+ {
108
+ id: 'myField1',
109
+ type: 'text',
110
+ label: 'My Text Field'
111
+ },
112
+ {
113
+ id: 'myField2',
114
+ type: 'text',
115
+ label: 'Another Text Field'
116
+ }
117
+ ]
118
+ });
119
+
120
+ // Provide the focus handler to start initial focus in "customField" field.
121
+ dialogDefinition.onFocus = function() {
122
+ var urlField = this.getContentElement( 'tab1', 'customField' );
123
+ urlField.select();
124
+ };
125
+ }
126
+ });
127
+
128
+ var config = {
129
+ extraPlugins: 'dialog',
130
+ toolbar: [ [ 'MyButton' ] ]
131
+ };
132
+
133
+ </script>
134
+ </head>
135
+ <body>
136
+ <h1 class="samples">
137
+ <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; Using CKEditor Dialog API
138
+ </h1>
139
+ <div class="warning deprecated">
140
+ This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>.
141
+ </div>
142
+ <div class="description">
143
+ <p>
144
+ This sample shows how to use the
145
+ <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.dialog">CKEditor Dialog API</a>
146
+ to customize CKEditor dialog windows without changing the original editor code.
147
+ The following customizations are being done in the example below:
148
+ </p>
149
+ <p>
150
+ For details on how to create this setup check the source code of this sample page.
151
+ </p>
152
+ </div>
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>
154
+ <ol>
155
+ <li><strong>Creating a custom dialog window</strong> &ndash; "My Dialog" dialog window opened with the "My Dialog" toolbar button.</li>
156
+ <li><strong>Creating a custom button</strong> &ndash; Add button to open the dialog with "My Dialog" toolbar button.</li>
157
+ </ol>
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>
159
+ <script>
160
+ // Replace the <textarea id="editor1"> with an CKEditor instance.
161
+ CKEDITOR.replace( 'editor1', config );
162
+ </script>
163
+ <p>The below editor modify the dialog definition of the above added dialog using the <code>dialogDefinition</code> event:</p>
164
+ <ol>
165
+ <li><strong>Adding dialog tab</strong> &ndash; Add new tab "My Tab" to dialog window.</li>
166
+ <li><strong>Removing a dialog window tab</strong> &ndash; Remove "Second Tab" page from the dialog window.</li>
167
+ <li><strong>Adding dialog window fields</strong> &ndash; Add "My Custom Field" to the dialog window.</li>
168
+ <li><strong>Removing dialog window field</strong> &ndash; Remove "Select Field" selection field from the dialog window.</li>
169
+ <li><strong>Setting default values for dialog window fields</strong> &ndash; Set default value of "Text Field" text field. </li>
170
+ <li><strong>Setup initial focus for dialog window</strong> &ndash; Put initial focus on "My Custom Field" text field. </li>
171
+ </ol>
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>
173
+ <script>
174
+
175
+ // Replace the <textarea id="editor1"> with an CKEditor instance.
176
+ CKEDITOR.replace( 'editor2', config );
177
+
178
+ </script>
179
+ <div id="footer">
180
+ <hr>
181
+ <p>
182
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
183
+ </p>
184
+ <p id="copy">
185
+ Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
186
+ Knabben. All rights reserved.
187
+ </p>
188
+ </div>
189
+ </body>
190
+ </html>
@@ -0,0 +1,144 @@
1
+ <!DOCTYPE html>
2
+ <!--
3
+ Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
4
+ For licensing, see LICENSE.md or http://ckeditor.com/license
5
+ -->
6
+ <html>
7
+ <head>
8
+ <meta charset="utf-8">
9
+ <title>Replace DIV &mdash; CKEditor Sample</title>
10
+ <script src="../../ckeditor.js"></script>
11
+ <link href="sample.css" rel="stylesheet">
12
+ <style>
13
+
14
+ div.editable
15
+ {
16
+ border: solid 2px transparent;
17
+ padding-left: 15px;
18
+ padding-right: 15px;
19
+ }
20
+
21
+ div.editable:hover
22
+ {
23
+ border-color: black;
24
+ }
25
+
26
+ </style>
27
+ <script>
28
+
29
+ // Uncomment the following code to test the "Timeout Loading Method".
30
+ // CKEDITOR.loadFullCoreTimeout = 5;
31
+
32
+ window.onload = function() {
33
+ // Listen to the double click event.
34
+ if ( window.addEventListener )
35
+ document.body.addEventListener( 'dblclick', onDoubleClick, false );
36
+ else if ( window.attachEvent )
37
+ document.body.attachEvent( 'ondblclick', onDoubleClick );
38
+
39
+ };
40
+
41
+ function onDoubleClick( ev ) {
42
+ // Get the element which fired the event. This is not necessarily the
43
+ // element to which the event has been attached.
44
+ var element = ev.target || ev.srcElement;
45
+
46
+ // Find out the div that holds this element.
47
+ var name;
48
+
49
+ do {
50
+ element = element.parentNode;
51
+ }
52
+ while ( element && ( name = element.nodeName.toLowerCase() ) &&
53
+ ( name != 'div' || element.className.indexOf( 'editable' ) == -1 ) && name != 'body' );
54
+
55
+ if ( name == 'div' && element.className.indexOf( 'editable' ) != -1 )
56
+ replaceDiv( element );
57
+ }
58
+
59
+ var editor;
60
+
61
+ function replaceDiv( div ) {
62
+ if ( editor )
63
+ editor.destroy();
64
+
65
+ editor = CKEDITOR.replace( div );
66
+ }
67
+
68
+ </script>
69
+ </head>
70
+ <body>
71
+ <h1 class="samples">
72
+ <a href="index.html">CKEditor Samples</a> &raquo; Replace DIV with CKEditor on the Fly
73
+ </h1>
74
+ <div class="warning deprecated">
75
+ This sample is not maintained anymore. Check out the <a href="http://sdk.ckeditor.com/">brand new samples in CKEditor SDK</a>.
76
+ </div>
77
+ <div class="description">
78
+ <p>
79
+ This sample shows how to automatically replace <code>&lt;div&gt;</code> elements
80
+ with a CKEditor instance on the fly, following user's doubleclick. The content
81
+ that was previously placed inside the <code>&lt;div&gt;</code> element will now
82
+ be moved into CKEditor editing area.
83
+ </p>
84
+ <p>
85
+ For details on how to create this setup check the source code of this sample page.
86
+ </p>
87
+ </div>
88
+ <p>
89
+ Double-click any of the following <code>&lt;div&gt;</code> elements to transform them into
90
+ editor instances.
91
+ </p>
92
+ <div class="editable">
93
+ <h3>
94
+ Part 1
95
+ </h3>
96
+ <p>
97
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
98
+ semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
99
+ rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
100
+ nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
101
+ eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
102
+ </p>
103
+ </div>
104
+ <div class="editable">
105
+ <h3>
106
+ Part 2
107
+ </h3>
108
+ <p>
109
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
110
+ semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
111
+ rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
112
+ nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
113
+ eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
114
+ </p>
115
+ <p>
116
+ Donec velit. Mauris massa. Vestibulum non nulla. Nam suscipit arcu nec elit. Phasellus
117
+ sollicitudin iaculis ante. Ut non mauris et sapien tincidunt adipiscing. Vestibulum
118
+ vitae leo. Suspendisse nec mi tristique nulla laoreet vulputate.
119
+ </p>
120
+ </div>
121
+ <div class="editable">
122
+ <h3>
123
+ Part 3
124
+ </h3>
125
+ <p>
126
+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Cras et ipsum quis mi
127
+ semper accumsan. Integer pretium dui id massa. Suspendisse in nisl sit amet urna
128
+ rutrum imperdiet. Nulla eu tellus. Donec ante nisi, ullamcorper quis, fringilla
129
+ nec, sagittis eleifend, pede. Nulla commodo interdum massa. Donec id metus. Fusce
130
+ eu ipsum. Suspendisse auctor. Phasellus fermentum porttitor risus.
131
+ </p>
132
+ </div>
133
+ <div id="footer">
134
+ <hr>
135
+ <p>
136
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
137
+ </p>
138
+ <p id="copy">
139
+ Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
140
+ Knabben. All rights reserved.
141
+ </p>
142
+ </div>
143
+ </body>
144
+ </html>
@@ -0,0 +1,106 @@
1
+ <!DOCTYPE html>
2
+ <!--
3
+ Copyright (c) 2003-2016, CKSource - Frederico Knabben. All rights reserved.
4
+ For licensing, see LICENSE.md or http://ckeditor.com/license
5
+ -->
6
+ <html>
7
+ <head>
8
+ <meta charset="utf-8">
9
+ <title>ENTER Key Configuration &mdash; CKEditor Sample</title>
10
+ <script src="../../../ckeditor.js"></script>
11
+ <link href="../../../samples/old/sample.css" rel="stylesheet">
12
+ <meta name="ckeditor-sample-name" content="Using the &quot;Enter&quot; key in CKEditor">
13
+ <meta name="ckeditor-sample-group" content="Advanced Samples">
14
+ <meta name="ckeditor-sample-description" content="Configuring the behavior of &lt;em&gt;Enter&lt;/em&gt; and &lt;em&gt;Shift+Enter&lt;/em&gt; keys.">
15
+ <script>
16
+
17
+ var editor;
18
+
19
+ function changeEnter() {
20
+ // If we already have an editor, let's destroy it first.
21
+ if ( editor )
22
+ editor.destroy( true );
23
+
24
+ // Create the editor again, with the appropriate settings.
25
+ editor = CKEDITOR.replace( 'editor1', {
26
+ extraPlugins: 'enterkey',
27
+ enterMode: Number( document.getElementById( 'xEnter' ).value ),
28
+ shiftEnterMode: Number( document.getElementById( 'xShiftEnter' ).value )
29
+ });
30
+ }
31
+
32
+ window.onload = changeEnter;
33
+
34
+ </script>
35
+ </head>
36
+ <body>
37
+ <h1 class="samples">
38
+ <a href="../../../samples/old/index.html">CKEditor Samples</a> &raquo; ENTER Key Configuration
39
+ </h1>
40
+ <div class="warning deprecated">
41
+ This sample is not maintained anymore. Check out its <a href="http://sdk.ckeditor.com/samples/enterkey.html">brand new version in CKEditor SDK</a>.
42
+ </div>
43
+ <div class="description">
44
+ <p>
45
+ This sample shows how to configure the <em>Enter</em> and <em>Shift+Enter</em> keys
46
+ to perform actions specified in the
47
+ <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-enterMode"><code>enterMode</code></a>
48
+ and <a class="samples" href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-shiftEnterMode"><code>shiftEnterMode</code></a>
49
+ parameters, respectively.
50
+ You can choose from the following options:
51
+ </p>
52
+ <ul class="samples">
53
+ <li><strong><code>ENTER_P</code></strong> &ndash; new <code>&lt;p&gt;</code> paragraphs are created;</li>
54
+ <li><strong><code>ENTER_BR</code></strong> &ndash; lines are broken with <code>&lt;br&gt;</code> elements;</li>
55
+ <li><strong><code>ENTER_DIV</code></strong> &ndash; new <code>&lt;div&gt;</code> blocks are created.</li>
56
+ </ul>
57
+ <p>
58
+ The sample code below shows how to configure CKEditor to create a <code>&lt;div&gt;</code> block when <em>Enter</em> key is pressed.
59
+ </p>
60
+ <pre class="samples">
61
+ CKEDITOR.replace( '<em>textarea_id</em>', {
62
+ <strong>enterMode: CKEDITOR.ENTER_DIV</strong>
63
+ });</pre>
64
+ <p>
65
+ Note that <code><em>textarea_id</em></code> in the code above is the <code>id</code> attribute of
66
+ the <code>&lt;textarea&gt;</code> element to be replaced.
67
+ </p>
68
+ </div>
69
+ <div style="float: left; margin-right: 20px">
70
+ When <em>Enter</em> is pressed:<br>
71
+ <select id="xEnter" onchange="changeEnter();">
72
+ <option selected="selected" value="1">Create a new &lt;P&gt; (recommended)</option>
73
+ <option value="3">Create a new &lt;DIV&gt;</option>
74
+ <option value="2">Break the line with a &lt;BR&gt;</option>
75
+ </select>
76
+ </div>
77
+ <div style="float: left">
78
+ When <em>Shift+Enter</em> is pressed:<br>
79
+ <select id="xShiftEnter" onchange="changeEnter();">
80
+ <option value="1">Create a new &lt;P&gt;</option>
81
+ <option value="3">Create a new &lt;DIV&gt;</option>
82
+ <option selected="selected" value="2">Break the line with a &lt;BR&gt; (recommended)</option>
83
+ </select>
84
+ </div>
85
+ <br style="clear: both">
86
+ <form action="../../../samples/sample_posteddata.php" method="post">
87
+ <p>
88
+ <br>
89
+ <textarea cols="80" id="editor1" name="editor1" rows="10">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;.</textarea>
90
+ </p>
91
+ <p>
92
+ <input type="submit" value="Submit">
93
+ </p>
94
+ </form>
95
+ <div id="footer">
96
+ <hr>
97
+ <p>
98
+ CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
99
+ </p>
100
+ <p id="copy">
101
+ Copyright &copy; 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
102
+ Knabben. All rights reserved.
103
+ </p>
104
+ </div>
105
+ </body>
106
+ </html>