geri 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>