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,28 @@
|
|
1
|
+
{
|
2
|
+
"name": "",
|
3
|
+
"css_prefix_text": "icon-",
|
4
|
+
"css_use_suffix": false,
|
5
|
+
"hinting": true,
|
6
|
+
"units_per_em": 1000,
|
7
|
+
"ascent": 850,
|
8
|
+
"glyphs": [
|
9
|
+
{
|
10
|
+
"uid": "f48ae54adfb27d8ada53d0fd9e34ee10",
|
11
|
+
"css": "trash-empty",
|
12
|
+
"code": 59392,
|
13
|
+
"src": "fontawesome"
|
14
|
+
},
|
15
|
+
{
|
16
|
+
"uid": "1c4068ed75209e21af36017df8871802",
|
17
|
+
"css": "down-big",
|
18
|
+
"code": 59393,
|
19
|
+
"src": "fontawesome"
|
20
|
+
},
|
21
|
+
{
|
22
|
+
"uid": "95376bf082bfec6ce06ea1cda7bd7ead",
|
23
|
+
"css": "up-big",
|
24
|
+
"code": 59394,
|
25
|
+
"src": "fontawesome"
|
26
|
+
}
|
27
|
+
]
|
28
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<?xml version="1.0" standalone="no"?>
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
3
|
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4
|
+
<metadata>Copyright (C) 2014 by original authors @ fontello.com</metadata>
|
5
|
+
<defs>
|
6
|
+
<font id="fontello" horiz-adv-x="1000" >
|
7
|
+
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
8
|
+
<missing-glyph horiz-adv-x="1000" />
|
9
|
+
<glyph glyph-name="trash" unicode="" d="m286 439v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m143 0v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m142 0v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q7 0 12-5t5-13z m72-404v529h-500v-529q0-12 4-22t8-15t6-5h464q2 0 6 5t8 15t4 22z m-375 601h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q22 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
|
10
|
+
<glyph glyph-name="down-big" unicode="" d="m899 386q0-30-21-50l-363-364q-22-21-51-21q-29 0-50 21l-363 364q-21 20-21 50q0 29 21 51l41 41q22 21 51 21q29 0 50-21l164-164v393q0 29 21 50t51 22h71q29 0 50-22t21-50v-393l164 164q21 21 51 21q29 0 50-21l42-42q21-21 21-50z" horiz-adv-x="928.6" />
|
11
|
+
<glyph glyph-name="up-big" unicode="" d="m899 308q0-28-21-50l-42-42q-21-21-50-21q-30 0-51 21l-164 164v-393q0-29-20-47t-51-19h-71q-30 0-51 19t-21 47v393l-164-164q-20-21-50-21t-50 21l-42 42q-21 21-21 50q0 30 21 51l363 363q20 21 50 21q30 0 51-21l363-363q21-22 21-51z" horiz-adv-x="928.6" />
|
12
|
+
</font>
|
13
|
+
</defs>
|
14
|
+
</svg>
|
@@ -0,0 +1,446 @@
|
|
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
|
+
<!--[if IE 8]><html class="ie8"><![endif]-->
|
7
|
+
<!--[if gt IE 8]><html><![endif]-->
|
8
|
+
<!--[if !IE]><!--><html><!--<![endif]-->
|
9
|
+
<head>
|
10
|
+
<meta charset="utf-8">
|
11
|
+
<title>Toolbar Configurator</title>
|
12
|
+
<script src="../../ckeditor.js"></script>
|
13
|
+
<script>
|
14
|
+
if ( CKEDITOR.env.ie && CKEDITOR.env.version < 9 )
|
15
|
+
CKEDITOR.tools.enableHtml5Elements( document );
|
16
|
+
</script>
|
17
|
+
<link rel="stylesheet" href="lib/codemirror/codemirror.css">
|
18
|
+
<link rel="stylesheet" href="lib/codemirror/show-hint.css">
|
19
|
+
<link rel="stylesheet" href="lib/codemirror/neo.css">
|
20
|
+
<link rel="stylesheet" href="css/fontello.css">
|
21
|
+
<link rel="stylesheet" href="../css/samples.css">
|
22
|
+
</head>
|
23
|
+
<body id="toolbar">
|
24
|
+
|
25
|
+
<nav class="navigation-a">
|
26
|
+
<div class="grid-container">
|
27
|
+
<ul class="navigation-a-left grid-width-70">
|
28
|
+
<li><a href="http://ckeditor.com">Project Homepage</a></li>
|
29
|
+
<li><a href="http://dev.ckeditor.com/">I found a bug</a></li>
|
30
|
+
<li><a href="http://github.com/ckeditor/ckeditor-dev" class="icon-pos-right icon-navigation-a-github">Fork CKEditor on GitHub</a></li>
|
31
|
+
</ul>
|
32
|
+
<ul class="navigation-a-right grid-width-30">
|
33
|
+
<li><a href="http://ckeditor.com/blog-list">CKEditor Blog</a></li>
|
34
|
+
</ul>
|
35
|
+
</div>
|
36
|
+
</nav>
|
37
|
+
|
38
|
+
<header class="header-a">
|
39
|
+
<div class="grid-container">
|
40
|
+
<h1 class="header-a-logo grid-width-30">
|
41
|
+
<a href="../index.html"><img src="../img/logo.png" alt="CKEditor Logo"></a>
|
42
|
+
</h1>
|
43
|
+
<nav class="navigation-b grid-width-70">
|
44
|
+
<ul>
|
45
|
+
<li><a href="../index.html" class="button-a">Start</a></li>
|
46
|
+
<li><a href="index.html" class="button-a button-a-background">Toolbar configurator</a></li>
|
47
|
+
</ul>
|
48
|
+
</nav>
|
49
|
+
</div>
|
50
|
+
</header>
|
51
|
+
|
52
|
+
<main>
|
53
|
+
<div class="adjoined-top">
|
54
|
+
<div class="grid-container">
|
55
|
+
<div class="content grid-width-100">
|
56
|
+
<div class="grid-container-nested">
|
57
|
+
<h1 class="grid-width-60">
|
58
|
+
Toolbar Configurator
|
59
|
+
<a href="#help-content" type="button" title="Configurator help" id="help" class="button-a button-a-background button-a-no-text icon-pos-left icon-question-mark">Help</a>
|
60
|
+
</h1>
|
61
|
+
|
62
|
+
<div class="grid-width-40 grid-switch-magic">
|
63
|
+
<div class="switch">
|
64
|
+
<span class="balloon-a balloon-a-se">Select configurator type</span>
|
65
|
+
<input type="radio" name="radio" data-num="1" id="radio-basic" />
|
66
|
+
<input type="radio" name="radio" data-num="2" id="radio-advanced" />
|
67
|
+
<label data-for="1" for="radio-basic">Basic</label>
|
68
|
+
<span class="switch-inner">
|
69
|
+
<span class="handler"></span>
|
70
|
+
</span>
|
71
|
+
<label data-for="2" for="radio-advanced">Advanced</label>
|
72
|
+
</div>
|
73
|
+
</div>
|
74
|
+
</div>
|
75
|
+
</div>
|
76
|
+
</div>
|
77
|
+
</div>
|
78
|
+
<div class="adjoined-bottom">
|
79
|
+
<div class="grid-container">
|
80
|
+
<div class="grid-width-100">
|
81
|
+
<div class="editors-container">
|
82
|
+
<div id="editor-basic"></div>
|
83
|
+
<div id="editor-advanced"></div>
|
84
|
+
</div>
|
85
|
+
</div>
|
86
|
+
</div>
|
87
|
+
</div>
|
88
|
+
|
89
|
+
<div class="grid-container configurator">
|
90
|
+
<div class="content grid-width-100">
|
91
|
+
<div class="configurator">
|
92
|
+
<div>
|
93
|
+
<div id="toolbarModifierWrapper"></div>
|
94
|
+
</div>
|
95
|
+
</div>
|
96
|
+
</div>
|
97
|
+
</div>
|
98
|
+
|
99
|
+
<div id="help-content">
|
100
|
+
<div class="grid-container">
|
101
|
+
<div class="grid-width-100">
|
102
|
+
<h2>What Am I Doing Here?</h2>
|
103
|
+
|
104
|
+
<div class="grid-container grid-container-nested">
|
105
|
+
<div class="basic">
|
106
|
+
<div class="grid-width-50">
|
107
|
+
<p>Arrange <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbarGroups">toolbar groups</a>, toggle <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-removeButtons">button visibility</a> according to your needs and get your toolbar configuration.</p>
|
108
|
+
<p>You can replace the content of the <a href="../../config.js"><code>config.js</code></a> file with the generated configuration. If you already set some configuration options you will need to merge both configurations.</p>
|
109
|
+
</div>
|
110
|
+
<div class="grid-width-50">
|
111
|
+
<p>Read more about different ways of <a href="http://docs.ckeditor.com/#!/guide/dev_configuration">setting configuration</a> and do not forget about <strong>clearing browser cache</strong>.</p>
|
112
|
+
<p>Arranging toolbar groups is the recommended way of configuring the toolbar, but if you need more freedom you can use the <a href="#advanced">advanced configurator</a>.</p>
|
113
|
+
</div>
|
114
|
+
</div>
|
115
|
+
<div class="advanced" style="display: none;">
|
116
|
+
<div class="grid-width-50">
|
117
|
+
<p>With this code editor you can edit your <a href="http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-toolbar">toolbar configuration</a> live.</p>
|
118
|
+
<p>You can replace the content of the <a href="../../config.js"><code>config.js</code></a> file with the generated configuration. If you already set some configuration options you will need to merge both configurations.</p>
|
119
|
+
</div>
|
120
|
+
<div class="grid-width-50">
|
121
|
+
<p>Read more about different ways of <a href="http://docs.ckeditor.com/#!/guide/dev_configuration">setting configuration</a> and do not forget about <strong>clearing browser cache</strong>.</p>
|
122
|
+
</div>
|
123
|
+
</div>
|
124
|
+
</div>
|
125
|
+
|
126
|
+
<p class="grid-container grid-container-nested">
|
127
|
+
<button type="button" class="help-content-close grid-width-100 button-a button-a-background">Got it. Let's play!</button>
|
128
|
+
</p>
|
129
|
+
</div>
|
130
|
+
</div>
|
131
|
+
</div>
|
132
|
+
</main>
|
133
|
+
|
134
|
+
<footer class="footer-a grid-container">
|
135
|
+
<p class="grid-width-100">
|
136
|
+
CKEditor – The text editor for the Internet – <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
|
137
|
+
</p>
|
138
|
+
<p class="grid-width-100" id="copy">
|
139
|
+
Copyright © 2003-2016, <a class="samples" href="http://cksource.com/">CKSource</a> – Frederico Knabben. All rights reserved.
|
140
|
+
</p>
|
141
|
+
</footer>
|
142
|
+
|
143
|
+
<script src="lib/codemirror/codemirror.js"></script>
|
144
|
+
<script src="lib/codemirror/javascript.js"></script>
|
145
|
+
<script src="lib/codemirror/show-hint.js"></script>
|
146
|
+
|
147
|
+
<script src="js/fulltoolbareditor.js"></script>
|
148
|
+
<script src="js/abstracttoolbarmodifier.js"></script>
|
149
|
+
<script src="js/toolbarmodifier.js"></script>
|
150
|
+
<script src="js/toolbartextmodifier.js"></script>
|
151
|
+
<script src="../js/sf.js"></script>
|
152
|
+
|
153
|
+
<script>
|
154
|
+
( function() {
|
155
|
+
'use strict';
|
156
|
+
|
157
|
+
var mode = ( window.location.hash.substr( 1 ) === 'advanced' ) ? 'advanced' : 'basic',
|
158
|
+
configuratorSection = CKEDITOR.document.findOne( 'main > .grid-container.configurator' ),
|
159
|
+
basicInstruction = CKEDITOR.document.findOne( '#help-content .basic' ),
|
160
|
+
advancedInstruction = CKEDITOR.document.findOne( '#help-content .advanced' ),
|
161
|
+
|
162
|
+
// Configurator mode switcher.
|
163
|
+
modeSwitchBasic = CKEDITOR.document.getById( 'radio-basic' ),
|
164
|
+
modeSwitchAdvanced = CKEDITOR.document.getById( 'radio-advanced' );
|
165
|
+
|
166
|
+
// Initial setup
|
167
|
+
function updateSwitcher() {
|
168
|
+
if ( mode === 'advanced' ) {
|
169
|
+
modeSwitchAdvanced.$.checked = true;
|
170
|
+
} else {
|
171
|
+
modeSwitchBasic.$.checked = true;
|
172
|
+
}
|
173
|
+
}
|
174
|
+
|
175
|
+
updateSwitcher();
|
176
|
+
|
177
|
+
CKEDITOR.document.getWindow().on( 'hashchange', function( e ) {
|
178
|
+
var hash = window.location.hash.substr( 1 );
|
179
|
+
if ( !( hash === 'advanced' || hash === 'basic' ) ) {
|
180
|
+
return;
|
181
|
+
}
|
182
|
+
mode = hash;
|
183
|
+
onToolbarsDone( mode );
|
184
|
+
} );
|
185
|
+
|
186
|
+
CKEDITOR.document.getWindow().on( 'resize', function() {
|
187
|
+
updateToolbar( ( mode === 'basic' ? toolbarModifier : toolbarTextModifier )[ 'editorInstance' ] );
|
188
|
+
} );
|
189
|
+
|
190
|
+
function onRefresh( modifier ) {
|
191
|
+
modifier = modifier || this;
|
192
|
+
|
193
|
+
if ( mode === 'basic' && modifier instanceof ToolbarConfigurator.ToolbarTextModifier ) {
|
194
|
+
return;
|
195
|
+
}
|
196
|
+
|
197
|
+
// CodeMirror container becomes visible, so we need to refresh and to avoid rendering problems.
|
198
|
+
if ( mode === 'advanced' && modifier instanceof ToolbarConfigurator.ToolbarTextModifier ) {
|
199
|
+
modifier.codeContainer.refresh();
|
200
|
+
}
|
201
|
+
|
202
|
+
updateToolbar( modifier.editorInstance );
|
203
|
+
}
|
204
|
+
|
205
|
+
function updateToolbar( editor ) {
|
206
|
+
var editorContainer = editor.container;
|
207
|
+
|
208
|
+
// Not always editor is loaded.
|
209
|
+
if ( !editorContainer ) {
|
210
|
+
return;
|
211
|
+
}
|
212
|
+
|
213
|
+
var displayStyle = editorContainer.getStyle( 'display' );
|
214
|
+
|
215
|
+
editorContainer.setStyle( 'display', 'block' );
|
216
|
+
|
217
|
+
var newHeight = editorContainer.getSize( 'height' );
|
218
|
+
|
219
|
+
var newMarginTop = parseInt( editorContainer.getComputedStyle( 'margin-top' ), 10 );
|
220
|
+
newMarginTop = ( isNaN( newMarginTop ) ? 0 : Number( newMarginTop ) );
|
221
|
+
|
222
|
+
var newMarginBottom = parseInt( editorContainer.getComputedStyle( 'margin-bottom' ), 10 );
|
223
|
+
newMarginBottom = ( isNaN( newMarginBottom ) ? 0 : Number( newMarginBottom ) );
|
224
|
+
|
225
|
+
var result = newHeight + newMarginTop + newMarginBottom;
|
226
|
+
|
227
|
+
editorContainer.setStyle( 'display', displayStyle );
|
228
|
+
|
229
|
+
editor.container.getAscendant( 'div' ).setStyle( 'height', result + 'px' );
|
230
|
+
}
|
231
|
+
|
232
|
+
var toolbarModifier = new ToolbarConfigurator.ToolbarModifier( 'editor-basic' );
|
233
|
+
|
234
|
+
var done = 0;
|
235
|
+
toolbarModifier.init( onToolbarInit );
|
236
|
+
toolbarModifier.onRefresh = onRefresh;
|
237
|
+
|
238
|
+
CKEDITOR.document.getById( 'toolbarModifierWrapper' ).append( toolbarModifier.mainContainer );
|
239
|
+
|
240
|
+
var toolbarTextModifier = new ToolbarConfigurator.ToolbarTextModifier( 'editor-advanced' );
|
241
|
+
toolbarTextModifier.init( onToolbarInit );
|
242
|
+
toolbarTextModifier.onRefresh = onRefresh;
|
243
|
+
|
244
|
+
function onToolbarInit() {
|
245
|
+
if ( ++done === 2 ) {
|
246
|
+
onToolbarsDone();
|
247
|
+
|
248
|
+
positionSticky.watch( CKEDITOR.document.findOne( '.toolbar' ), function() {
|
249
|
+
return mode === 'advanced';
|
250
|
+
} );
|
251
|
+
}
|
252
|
+
}
|
253
|
+
|
254
|
+
function onToolbarsDone() {
|
255
|
+
if ( mode === 'basic' ) {
|
256
|
+
toggleModeBasic( false );
|
257
|
+
} else {
|
258
|
+
toggleModeAdvanced( false );
|
259
|
+
}
|
260
|
+
|
261
|
+
updateSwitcher();
|
262
|
+
|
263
|
+
setTimeout( function() {
|
264
|
+
CKEDITOR.document.findOne( '.editors-container' ).addClass( 'active' );
|
265
|
+
CKEDITOR.document.findOne( '#toolbarModifierWrapper' ).addClass( 'active' );
|
266
|
+
}, 200 );
|
267
|
+
}
|
268
|
+
|
269
|
+
CKEDITOR.document.getById( 'toolbarModifierWrapper' ).append( toolbarTextModifier.mainContainer );
|
270
|
+
|
271
|
+
function toogleModeSwitch( onElement, offElement, onModifier, offModifier ) {
|
272
|
+
onElement.addClass( 'fancy-button-active' );
|
273
|
+
offElement.removeClass( 'fancy-button-active' );
|
274
|
+
|
275
|
+
onModifier.showUI();
|
276
|
+
offModifier.hideUI();
|
277
|
+
}
|
278
|
+
|
279
|
+
function toggleModeBasic( callOnRefresh ) {
|
280
|
+
callOnRefresh = ( callOnRefresh !== false );
|
281
|
+
mode = 'basic';
|
282
|
+
window.location.hash = '#basic';
|
283
|
+
toogleModeSwitch( modeSwitchBasic, modeSwitchAdvanced, toolbarModifier, toolbarTextModifier );
|
284
|
+
|
285
|
+
configuratorSection.removeClass( 'freed-width' );
|
286
|
+
basicInstruction.show();
|
287
|
+
advancedInstruction.hide();
|
288
|
+
|
289
|
+
callOnRefresh && onRefresh( toolbarModifier );
|
290
|
+
}
|
291
|
+
|
292
|
+
function toggleModeAdvanced( callOnRefresh ) {
|
293
|
+
callOnRefresh = ( callOnRefresh !== false );
|
294
|
+
mode = 'advanced';
|
295
|
+
window.location.hash = '#advanced';
|
296
|
+
toogleModeSwitch( modeSwitchAdvanced, modeSwitchBasic, toolbarTextModifier, toolbarModifier );
|
297
|
+
|
298
|
+
configuratorSection.addClass( 'freed-width' );
|
299
|
+
advancedInstruction.show();
|
300
|
+
basicInstruction.hide();
|
301
|
+
|
302
|
+
callOnRefresh && onRefresh( toolbarTextModifier );
|
303
|
+
}
|
304
|
+
|
305
|
+
modeSwitchBasic.on( 'click', toggleModeBasic );
|
306
|
+
modeSwitchAdvanced.on( 'click', toggleModeAdvanced );
|
307
|
+
|
308
|
+
//
|
309
|
+
// Position:sticky for the toolbar.
|
310
|
+
//
|
311
|
+
|
312
|
+
// Will make elements behave like they were styled with position:sticky.
|
313
|
+
var positionSticky = {
|
314
|
+
// Store object: {
|
315
|
+
// element: CKEDITOR.dom.element, // Element which will float.
|
316
|
+
// placeholder: CKEDITOR.dom.element, // Placeholder which is place to prevent page bounce.
|
317
|
+
// isFixed: boolean // Whether element float now.
|
318
|
+
// }
|
319
|
+
watched: [],
|
320
|
+
|
321
|
+
active: [],
|
322
|
+
|
323
|
+
staticContainer: null,
|
324
|
+
|
325
|
+
init: function() {
|
326
|
+
var element = CKEDITOR.dom.element.createFromHtml(
|
327
|
+
'<div class="staticContainer">' +
|
328
|
+
'<div class="grid-container" >' +
|
329
|
+
'<div class="grid-width-100">' +
|
330
|
+
'<div class="inner"></div>' +
|
331
|
+
'</div>' +
|
332
|
+
'</div>' +
|
333
|
+
'</div>' );
|
334
|
+
|
335
|
+
this.staticContainer = element.findOne( '.inner' );
|
336
|
+
|
337
|
+
CKEDITOR.document.getBody().append( element );
|
338
|
+
},
|
339
|
+
|
340
|
+
watch: function( element, preventFunc ) {
|
341
|
+
this.watched.push( {
|
342
|
+
element: element,
|
343
|
+
placeholder: new CKEDITOR.dom.element( 'div' ),
|
344
|
+
isFixed: false,
|
345
|
+
preventFunc: preventFunc
|
346
|
+
} );
|
347
|
+
},
|
348
|
+
|
349
|
+
checkAll: function() {
|
350
|
+
for ( var i = 0; i < this.watched.length; i++ ) {
|
351
|
+
this.check( this.watched[ i ] );
|
352
|
+
}
|
353
|
+
},
|
354
|
+
|
355
|
+
check: function( element ) {
|
356
|
+
var isFixed = element.isFixed;
|
357
|
+
var shouldBeFixed = this.shouldBeFixed( element );
|
358
|
+
|
359
|
+
// Nothing to be done.
|
360
|
+
if ( isFixed === shouldBeFixed ) {
|
361
|
+
return;
|
362
|
+
}
|
363
|
+
|
364
|
+
var placeholder = element.placeholder;
|
365
|
+
|
366
|
+
if ( isFixed ) {
|
367
|
+
// Unfixing.
|
368
|
+
|
369
|
+
element.element.insertBefore( placeholder );
|
370
|
+
placeholder.remove();
|
371
|
+
|
372
|
+
element.element.removeStyle( 'margin' );
|
373
|
+
|
374
|
+
this.active.splice( CKEDITOR.tools.indexOf( this.active, element ), 1 );
|
375
|
+
|
376
|
+
} else {
|
377
|
+
// Fixing.
|
378
|
+
placeholder.setStyle( 'width', element.element.getSize( 'width' ) + 'px' );
|
379
|
+
placeholder.setStyle( 'height', element.element.getSize( 'height' ) + 'px' );
|
380
|
+
placeholder.setStyle( 'margin-bottom', element.element.getComputedStyle( 'margin-bottom' ) );
|
381
|
+
placeholder.setStyle( 'display', element.element.getComputedStyle( 'display' ) );
|
382
|
+
placeholder.insertAfter( element.element );
|
383
|
+
|
384
|
+
this.staticContainer.append( element.element );
|
385
|
+
|
386
|
+
this.active.push( element );
|
387
|
+
}
|
388
|
+
|
389
|
+
element.isFixed = !element.isFixed;
|
390
|
+
},
|
391
|
+
|
392
|
+
shouldBeFixed: function( element ) {
|
393
|
+
if ( element.preventFunc && element.preventFunc() ) {
|
394
|
+
return false;
|
395
|
+
}
|
396
|
+
|
397
|
+
// If element is already fixed we are checking it's placeholder.
|
398
|
+
var related = ( element.isFixed ? element.placeholder : element.element ),
|
399
|
+
clientRect = related.$.getBoundingClientRect(),
|
400
|
+
staticHeight = this.staticContainer.getSize('height' ),
|
401
|
+
elemHeight = element.element.getSize( 'height' );
|
402
|
+
|
403
|
+
if ( element.isFixed ) {
|
404
|
+
return ( clientRect.top + elemHeight < staticHeight );
|
405
|
+
} else {
|
406
|
+
return ( clientRect.top < staticHeight );
|
407
|
+
}
|
408
|
+
}
|
409
|
+
};
|
410
|
+
|
411
|
+
positionSticky.init();
|
412
|
+
|
413
|
+
CKEDITOR.document.getWindow().on( 'scroll',
|
414
|
+
new CKEDITOR.tools.eventsBuffer( 100, positionSticky.checkAll, positionSticky ).input
|
415
|
+
);
|
416
|
+
|
417
|
+
// Make the toolbar sticky.
|
418
|
+
positionSticky.watch( CKEDITOR.document.findOne( '.editors-container' ) );
|
419
|
+
|
420
|
+
// Help button and help-content.
|
421
|
+
( function() {
|
422
|
+
var helpButton = CKEDITOR.document.getById( 'help' ),
|
423
|
+
helpContent = CKEDITOR.document.getById( 'help-content' );
|
424
|
+
|
425
|
+
// Don't show help button on IE8 because it's unsupported by Pico Modal.
|
426
|
+
if ( CKEDITOR.env.ie && CKEDITOR.env.version == 8 ) {
|
427
|
+
helpButton.hide();
|
428
|
+
} else {
|
429
|
+
// Display help modal when the button is clicked.
|
430
|
+
helpButton.on( 'click', function( evt ) {
|
431
|
+
SF.modal( {
|
432
|
+
// Clone modal content from DOM.
|
433
|
+
content: helpContent.getHtml(),
|
434
|
+
|
435
|
+
afterCreate: function( modal ) {
|
436
|
+
// Enable modal content button to close the modal.
|
437
|
+
new CKEDITOR.dom.element( modal.modalElem() ).findOne( '.help-content-close' ).once( 'click', modal.close );
|
438
|
+
}
|
439
|
+
} ).show();
|
440
|
+
} );
|
441
|
+
}
|
442
|
+
} )();
|
443
|
+
} )();
|
444
|
+
</script>
|
445
|
+
</body>
|
446
|
+
</html>
|