geri 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/Rakefile +26 -0
- data/app/assets/javascripts/geri/admin.js +33 -0
- data/app/assets/javascripts/geri/admin/app.js +758 -0
- data/app/assets/javascripts/geri/admin/editor.js +56 -0
- data/app/assets/javascripts/geri/admin/password_resets.js +2 -0
- data/app/assets/stylesheets/geri/admin.css.less +60 -0
- data/app/assets/stylesheets/geri/admin/app.css +4915 -0
- data/app/assets/stylesheets/geri/admin/ckeditor/contents.css +135 -0
- data/app/assets/stylesheets/geri/admin/editor.css.less +38 -0
- data/app/assets/stylesheets/geri/admin/password_resets.css +4 -0
- data/app/assets/stylesheets/geri/admin/skin-blue.less +142 -0
- data/app/assets/vendor/ckeditor/CHANGES.md +1065 -0
- data/app/assets/vendor/ckeditor/LICENSE.md +1420 -0
- data/app/assets/vendor/ckeditor/README.md +39 -0
- data/app/assets/vendor/ckeditor/adapters/jquery.js +10 -0
- data/app/assets/vendor/ckeditor/build-config.js +69 -0
- data/app/assets/vendor/ckeditor/ckeditor.js +775 -0
- data/app/assets/vendor/ckeditor/config.js +34 -0
- data/app/assets/vendor/ckeditor/contents.css +135 -0
- data/app/assets/vendor/ckeditor/lang/en.js +5 -0
- data/app/assets/vendor/ckeditor/plugins/about/dialogs/about.js +7 -0
- data/app/assets/vendor/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
- data/app/assets/vendor/ckeditor/plugins/about/dialogs/logo_ckeditor.png +0 -0
- data/app/assets/vendor/ckeditor/plugins/clipboard/dialogs/paste.js +12 -0
- data/app/assets/vendor/ckeditor/plugins/dialog/dialogDefinition.js +4 -0
- data/app/assets/vendor/ckeditor/plugins/icons.png +0 -0
- data/app/assets/vendor/ckeditor/plugins/icons_hidpi.png +0 -0
- data/app/assets/vendor/ckeditor/plugins/link/dialogs/anchor.js +7 -0
- data/app/assets/vendor/ckeditor/plugins/link/dialogs/link.js +26 -0
- data/app/assets/vendor/ckeditor/plugins/link/images/anchor.png +0 -0
- data/app/assets/vendor/ckeditor/plugins/link/images/hidpi/anchor.png +0 -0
- data/app/assets/vendor/ckeditor/samples/css/samples.css +1640 -0
- data/app/assets/vendor/ckeditor/samples/img/github-top.png +0 -0
- data/app/assets/vendor/ckeditor/samples/img/header-bg.png +0 -0
- data/app/assets/vendor/ckeditor/samples/img/header-separator.png +0 -0
- data/app/assets/vendor/ckeditor/samples/img/logo.png +0 -0
- data/app/assets/vendor/ckeditor/samples/img/navigation-tip.png +0 -0
- data/app/assets/vendor/ckeditor/samples/index.html +128 -0
- data/app/assets/vendor/ckeditor/samples/js/sample.js +53 -0
- data/app/assets/vendor/ckeditor/samples/js/sf.js +17 -0
- data/app/assets/vendor/ckeditor/samples/old/ajax.html +85 -0
- data/app/assets/vendor/ckeditor/samples/old/api.html +210 -0
- data/app/assets/vendor/ckeditor/samples/old/appendto.html +59 -0
- data/app/assets/vendor/ckeditor/samples/old/assets/inlineall/logo.png +0 -0
- data/app/assets/vendor/ckeditor/samples/old/assets/outputxhtml/outputxhtml.css +204 -0
- data/app/assets/vendor/ckeditor/samples/old/assets/posteddata.php +59 -0
- data/app/assets/vendor/ckeditor/samples/old/assets/sample.jpg +0 -0
- data/app/assets/vendor/ckeditor/samples/old/assets/uilanguages/languages.js +7 -0
- data/app/assets/vendor/ckeditor/samples/old/datafiltering.html +508 -0
- data/app/assets/vendor/ckeditor/samples/old/dialog/assets/my_dialog.js +48 -0
- data/app/assets/vendor/ckeditor/samples/old/dialog/dialog.html +190 -0
- data/app/assets/vendor/ckeditor/samples/old/divreplace.html +144 -0
- data/app/assets/vendor/ckeditor/samples/old/enterkey/enterkey.html +106 -0
- data/app/assets/vendor/ckeditor/samples/old/index.html +122 -0
- data/app/assets/vendor/ckeditor/samples/old/inlineall.html +314 -0
- data/app/assets/vendor/ckeditor/samples/old/inlinebycode.html +124 -0
- data/app/assets/vendor/ckeditor/samples/old/inlinetextarea.html +113 -0
- data/app/assets/vendor/ckeditor/samples/old/jquery.html +103 -0
- data/app/assets/vendor/ckeditor/samples/old/readonly.html +76 -0
- data/app/assets/vendor/ckeditor/samples/old/replacebyclass.html +60 -0
- data/app/assets/vendor/ckeditor/samples/old/replacebycode.html +59 -0
- data/app/assets/vendor/ckeditor/samples/old/sample.css +357 -0
- data/app/assets/vendor/ckeditor/samples/old/sample.js +50 -0
- data/app/assets/vendor/ckeditor/samples/old/sample_posteddata.php +16 -0
- data/app/assets/vendor/ckeditor/samples/old/tabindex.html +78 -0
- data/app/assets/vendor/ckeditor/samples/old/toolbar/toolbar.html +235 -0
- data/app/assets/vendor/ckeditor/samples/old/uicolor.html +72 -0
- data/app/assets/vendor/ckeditor/samples/old/uilanguages.html +122 -0
- data/app/assets/vendor/ckeditor/samples/old/wysiwygarea/fullpage.html +80 -0
- data/app/assets/vendor/ckeditor/samples/old/xhtmlstyle.html +234 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/css/fontello.css +55 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/LICENSE.txt +10 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/config.json +28 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.eot +0 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.svg +14 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.ttf +0 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/font/fontello.woff +0 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/index.html +446 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/js/abstracttoolbarmodifier.js +13 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/js/fulltoolbareditor.js +9 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/js/toolbarmodifier.js +33 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/js/toolbartextmodifier.js +14 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/LICENSE +19 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.css +325 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/codemirror.js +288 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/javascript.js +25 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/neo.css +36 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.css +38 -0
- data/app/assets/vendor/ckeditor/samples/toolbarconfigurator/lib/codemirror/show-hint.js +16 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_ie.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_ie7.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_ie8.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_iequirks.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/dialog_opera.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/editor.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_gecko.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_ie.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_ie7.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_ie8.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/editor_iequirks.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/icons.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/icons_hidpi.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/arrow.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/close.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/hidpi/close.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/hidpi/lock-open.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/hidpi/lock.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/hidpi/refresh.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/lock-open.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/lock.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/images/refresh.png +0 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/readme.md +35 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/sample/bootstrapck-sample.html +127 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/sample/css/bootstrapck-sample.css +1 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/sample/js/analytics.js +4 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/sample/js/jquery-1.11.0.min.js +189 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/gecko/editor_gecko.scss +25 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie/dialog_ie.scss +62 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie/editor_ie.scss +71 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie7/dialog_ie7.scss +68 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie7/editor_ie7.scss +213 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie8/dialog_ie8.scss +24 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/ie8/editor_ie8.scss +27 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/iequirks/dialog_iequirks.scss +21 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/iequirks/editor_iequirks.scss +79 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/browser-specific/opera/dialog_opera.scss +31 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_colorpanel.scss +119 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_elementspath.scss +66 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_mainui.scss +189 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_menu.scss +182 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_panel.scss +199 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_presets.scss +32 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_reset.scss +107 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_richcombo.scss +174 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/_toolbar.scss +317 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/components/editor.scss +66 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/config/_colors.scss +61 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/config/_config.scss +9 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/config/_defaults.scss +37 -0
- data/app/assets/vendor/ckeditor/skins/bootstrapck/scss/dialog/dialog.scss +822 -0
- data/app/assets/vendor/ckeditor/styles.js +111 -0
- data/app/controllers/geri/admin/admin_users_controller.rb +56 -0
- data/app/controllers/geri/admin/dashboard_controller.rb +8 -0
- data/app/controllers/geri/admin/editor_controller.rb +33 -0
- data/app/controllers/geri/admin/password_resets_controller.rb +21 -0
- data/app/controllers/geri/admin/sessions_controller.rb +24 -0
- data/app/controllers/geri/admin_controller.rb +19 -0
- data/app/controllers/geri/application_controller.rb +5 -0
- data/app/controllers/geri/pages_controller.rb +34 -0
- data/app/helpers/geri/admin/dashboard_helper.rb +4 -0
- data/app/helpers/geri/admin/editor_helper.rb +4 -0
- data/app/helpers/geri/admin/pages_helper.rb +45 -0
- data/app/helpers/geri/admin/partials_helper.rb +4 -0
- data/app/helpers/geri/admin/password_resets_helper.rb +4 -0
- data/app/helpers/geri/admin/sessions_helper.rb +4 -0
- data/app/helpers/geri/admin_helper.rb +24 -0
- data/app/helpers/geri/admin_users_helper.rb +4 -0
- data/app/helpers/geri/application_helper.rb +26 -0
- data/app/helpers/geri/meta_helper.rb +32 -0
- data/app/mailers/application_mailer.rb +4 -0
- data/app/mailers/geri/admin_user_mailer.rb +11 -0
- data/app/models/geri/admin_user.rb +14 -0
- data/app/models/geri/content.rb +6 -0
- data/app/models/geri/password_reset.rb +17 -0
- data/app/models/geri/session.rb +20 -0
- data/app/views/geri/admin/admin_users/_form.html.erb +5 -0
- data/app/views/geri/admin/admin_users/edit.html.erb +27 -0
- data/app/views/geri/admin/admin_users/index.html.erb +45 -0
- data/app/views/geri/admin/admin_users/new.html.erb +17 -0
- data/app/views/geri/admin/dashboard/index.html.erb +1 -0
- data/app/views/geri/admin/editor/template.html.erb +17 -0
- data/app/views/geri/admin/password_resets/new.html.erb +17 -0
- data/app/views/geri/admin/sessions/new.html.erb +23 -0
- data/app/views/geri/admin/shared/_aside.html.erb +16 -0
- data/app/views/geri/admin/shared/_header.html.erb +31 -0
- data/app/views/geri/admin/shared/_menu_item.html.erb +17 -0
- data/app/views/geri/admin_user_mailer/reset_password_email.text.erb +7 -0
- data/app/views/layouts/geri/admin.html.erb +24 -0
- data/app/views/layouts/geri/admin/sessions.html.erb +21 -0
- data/app/views/layouts/mailer.html.erb +5 -0
- data/app/views/layouts/mailer.text.erb +1 -0
- data/config/initializers/geri.rb +7 -0
- data/config/initializers/sorcery.rb +463 -0
- data/config/locales/devise.en.yml +62 -0
- data/config/locales/en.yml +13 -0
- data/config/routes.rb +23 -0
- data/db/migrate/20160409151523_create_geri_contents.rb +8 -0
- data/db/migrate/20160411205412_sorcery_core.rb +20 -0
- data/lib/generators/geri/install/USAGE +8 -0
- data/lib/generators/geri/install/install_generator.rb +54 -0
- data/lib/generators/geri/install/templates/bower.json +8 -0
- data/lib/generators/geri/install/templates/index.html.erb +46 -0
- data/lib/generators/geri/install/templates/initializer.rb +12 -0
- data/lib/generators/geri/install/templates/layout.html.erb +11 -0
- data/lib/generators/geri/install/templates/site.css.less +1 -0
- data/lib/generators/geri/install/templates/site.js +1 -0
- data/lib/geri.rb +7 -0
- data/lib/geri/cli.rb +6 -0
- data/lib/geri/cli/base.rb +23 -0
- data/lib/geri/cli/extension.rb +18 -0
- data/lib/geri/config.rb +29 -0
- data/lib/geri/config/menu_item.rb +35 -0
- data/lib/geri/engine.rb +34 -0
- data/lib/geri/tasks.rb +3 -0
- data/lib/geri/tasks/create_admin_user.rb +40 -0
- data/lib/geri/version.rb +3 -0
- data/lib/tasks/geri_tasks.rake +15 -0
- 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 — 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> » 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> – "My Dialog" dialog window opened with the "My Dialog" toolbar button.</li>
|
156
|
+
<li><strong>Creating a custom button</strong> – Add button to open the dialog with "My Dialog" toolbar button.</li>
|
157
|
+
</ol>
|
158
|
+
<textarea cols="80" id="editor1" name="editor1" rows="10"><p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></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> – Add new tab "My Tab" to dialog window.</li>
|
166
|
+
<li><strong>Removing a dialog window tab</strong> – Remove "Second Tab" page from the dialog window.</li>
|
167
|
+
<li><strong>Adding dialog window fields</strong> – Add "My Custom Field" to the dialog window.</li>
|
168
|
+
<li><strong>Removing dialog window field</strong> – Remove "Select Field" selection field from the dialog window.</li>
|
169
|
+
<li><strong>Setting default values for dialog window fields</strong> – Set default value of "Text Field" text field. </li>
|
170
|
+
<li><strong>Setup initial focus for dialog window</strong> – Put initial focus on "My Custom Field" text field. </li>
|
171
|
+
</ol>
|
172
|
+
<textarea cols="80" id="editor2" name="editor2" rows="10"><p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p></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 © 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 — 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> » 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><div></code> elements
|
80
|
+
with a CKEditor instance on the fly, following user's doubleclick. The content
|
81
|
+
that was previously placed inside the <code><div></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><div></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 © 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 — 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 "Enter" key in CKEditor">
|
13
|
+
<meta name="ckeditor-sample-group" content="Advanced Samples">
|
14
|
+
<meta name="ckeditor-sample-description" content="Configuring the behavior of <em>Enter</em> and <em>Shift+Enter</em> 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> » 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> – new <code><p></code> paragraphs are created;</li>
|
54
|
+
<li><strong><code>ENTER_BR</code></strong> – lines are broken with <code><br></code> elements;</li>
|
55
|
+
<li><strong><code>ENTER_DIV</code></strong> – new <code><div></code> blocks are created.</li>
|
56
|
+
</ul>
|
57
|
+
<p>
|
58
|
+
The sample code below shows how to configure CKEditor to create a <code><div></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><textarea></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 <P> (recommended)</option>
|
73
|
+
<option value="3">Create a new <DIV></option>
|
74
|
+
<option value="2">Break the line with a <BR></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 <P></option>
|
81
|
+
<option value="3">Create a new <DIV></option>
|
82
|
+
<option selected="selected" value="2">Break the line with a <BR> (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 <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</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 © 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>
|