qbrick 2.5.0.pre
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.
- checksums.yaml +7 -0
- data/README.md +423 -0
- data/Rakefile +82 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/LICENSE.txt +674 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/README.md +62 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/dialogs/anchor.js.coffee +81 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/dialogs/link.js.coffee +1353 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/images/anchor.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/images/hidpi/anchor.png +0 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/lang/de.js +68 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/lang/en.js +68 -0
- data/app/assets/javascripts/ckeditor/plugins/adv_link/plugin.js.coffee +282 -0
- data/app/assets/javascripts/kuhsaft/application.js.coffee +7 -0
- data/app/assets/javascripts/kuhsaft/cms/application.js.coffee.erb +136 -0
- data/app/assets/javascripts/kuhsaft/views/read_more_view.js.coffee +17 -0
- data/app/assets/stylesheets/kuhsaft/application.css.sass +1 -0
- data/app/assets/stylesheets/kuhsaft/cms/application.css.sass +204 -0
- data/app/assets/stylesheets/kuhsaft/modules/_text_brick.css.sass +16 -0
- data/app/controllers/kuhsaft/api/pages_controller.rb +14 -0
- data/app/controllers/kuhsaft/cms/admin_controller.rb +18 -0
- data/app/controllers/kuhsaft/cms/assets_controller.rb +38 -0
- data/app/controllers/kuhsaft/cms/bricks_controller.rb +61 -0
- data/app/controllers/kuhsaft/cms/ckimages_controller.rb +26 -0
- data/app/controllers/kuhsaft/cms/pages_controller.rb +71 -0
- data/app/controllers/kuhsaft/pages_controller.rb +38 -0
- data/app/controllers/kuhsaft/sitemaps_controller.rb +12 -0
- data/app/helpers/cms_helper.rb +27 -0
- data/app/helpers/kuhsaft/admin_helper.rb +20 -0
- data/app/helpers/kuhsaft/cms/admin_helper.rb +21 -0
- data/app/helpers/kuhsaft/cms/pages_helper.rb +17 -0
- data/app/helpers/pages_helper.rb +49 -0
- data/app/helpers/sitemaps_helper.rb +12 -0
- data/app/models/kuhsaft/accordion_brick.rb +15 -0
- data/app/models/kuhsaft/accordion_item_brick.rb +21 -0
- data/app/models/kuhsaft/anchor_brick.rb +17 -0
- data/app/models/kuhsaft/asset.rb +29 -0
- data/app/models/kuhsaft/asset_brick.rb +26 -0
- data/app/models/kuhsaft/brick.rb +137 -0
- data/app/models/kuhsaft/brick_type.rb +7 -0
- data/app/models/kuhsaft/brick_type_filter.rb +18 -0
- data/app/models/kuhsaft/ckimage.rb +5 -0
- data/app/models/kuhsaft/cms.rb +7 -0
- data/app/models/kuhsaft/column_brick.rb +22 -0
- data/app/models/kuhsaft/image_brick.rb +16 -0
- data/app/models/kuhsaft/image_size.rb +51 -0
- data/app/models/kuhsaft/link_brick.rb +21 -0
- data/app/models/kuhsaft/page.rb +160 -0
- data/app/models/kuhsaft/page_type.rb +11 -0
- data/app/models/kuhsaft/partition.rb +18 -0
- data/app/models/kuhsaft/placeholder_brick.rb +23 -0
- data/app/models/kuhsaft/publish_state.rb +24 -0
- data/app/models/kuhsaft/slider_brick.rb +18 -0
- data/app/models/kuhsaft/text_brick.rb +23 -0
- data/app/models/kuhsaft/two_column_brick.rb +46 -0
- data/app/models/kuhsaft/video_brick.rb +22 -0
- data/app/uploaders/kuhsaft/asset_brick_asset_uploader.rb +43 -0
- data/app/uploaders/kuhsaft/asset_uploader.rb +50 -0
- data/app/uploaders/kuhsaft/ckimage_uploader.rb +16 -0
- data/app/uploaders/kuhsaft/image_brick_image_uploader.rb +35 -0
- data/app/views/kuhsaft/accordion_bricks/_accordion_brick.html.haml +3 -0
- data/app/views/kuhsaft/accordion_bricks/accordion_brick/_edit.html.haml +0 -0
- data/app/views/kuhsaft/accordion_item_bricks/_accordion_item_brick.html.haml +8 -0
- data/app/views/kuhsaft/accordion_item_bricks/accordion_item_brick/_edit.html.haml +1 -0
- data/app/views/kuhsaft/anchor_bricks/_anchor_brick.html.haml +1 -0
- data/app/views/kuhsaft/anchor_bricks/anchor_brick/_edit.html.haml +1 -0
- data/app/views/kuhsaft/asset_bricks/_asset_brick.html.haml +2 -0
- data/app/views/kuhsaft/asset_bricks/asset_brick/_edit.html.haml +8 -0
- data/app/views/kuhsaft/cms/admin/_brick_type_dropdown.html.haml +14 -0
- data/app/views/kuhsaft/cms/admin/_content_language_switch.html.haml +7 -0
- data/app/views/kuhsaft/cms/admin/_empty_state.html.haml +5 -0
- data/app/views/kuhsaft/cms/admin/_flash.html.haml +7 -0
- data/app/views/kuhsaft/cms/admin/_main_navigation.html.haml +6 -0
- data/app/views/kuhsaft/cms/assets/_form.html.haml +15 -0
- data/app/views/kuhsaft/cms/assets/_list.html.haml +11 -0
- data/app/views/kuhsaft/cms/assets/edit.html.haml +2 -0
- data/app/views/kuhsaft/cms/assets/index.html.haml +3 -0
- data/app/views/kuhsaft/cms/assets/new.html.haml +2 -0
- data/app/views/kuhsaft/cms/bricks/_brick_header.html.haml +43 -0
- data/app/views/kuhsaft/cms/bricks/_brick_item.html.haml +25 -0
- data/app/views/kuhsaft/cms/bricks/_brick_list.html.haml +4 -0
- data/app/views/kuhsaft/cms/bricks/_new.html.haml +41 -0
- data/app/views/kuhsaft/cms/bricks/_sort_form.html.haml +3 -0
- data/app/views/kuhsaft/cms/bricks/create.js.erb +11 -0
- data/app/views/kuhsaft/cms/bricks/destroy.js.erb +10 -0
- data/app/views/kuhsaft/cms/bricks/new.js.erb +14 -0
- data/app/views/kuhsaft/cms/bricks/update.js.erb +8 -0
- data/app/views/kuhsaft/cms/ckimages/create.html.haml +11 -0
- data/app/views/kuhsaft/cms/ckimages/destroy.js.erb +2 -0
- data/app/views/kuhsaft/cms/ckimages/index.html.haml +13 -0
- data/app/views/kuhsaft/cms/pages/_branch.html.haml +19 -0
- data/app/views/kuhsaft/cms/pages/_form.html.haml +45 -0
- data/app/views/kuhsaft/cms/pages/edit.html.haml +16 -0
- data/app/views/kuhsaft/cms/pages/index.html.haml +14 -0
- data/app/views/kuhsaft/cms/pages/new.html.haml +1 -0
- data/app/views/kuhsaft/cms/pages/show.html.haml +0 -0
- data/app/views/kuhsaft/cms/pages/sort.js.erb +0 -0
- data/app/views/kuhsaft/column_bricks/_column_brick.html.haml +3 -0
- data/app/views/kuhsaft/column_bricks/column_brick/_edit.html.haml +0 -0
- data/app/views/kuhsaft/image_bricks/_image_brick.html.haml +11 -0
- data/app/views/kuhsaft/image_bricks/image_brick/_edit.html.haml +13 -0
- data/app/views/kuhsaft/link_bricks/_link_brick.html.haml +2 -0
- data/app/views/kuhsaft/link_bricks/link_brick/_edit.html.haml +4 -0
- data/app/views/kuhsaft/pages/index.html.haml +7 -0
- data/app/views/kuhsaft/pages/show.html.haml +11 -0
- data/app/views/kuhsaft/placeholder_bricks/_placeholder_brick.html.haml +2 -0
- data/app/views/kuhsaft/placeholder_bricks/placeholder_brick/_edit.html.haml +1 -0
- data/app/views/kuhsaft/search/_form.html.haml +2 -0
- data/app/views/kuhsaft/search/_results.html.haml +8 -0
- data/app/views/kuhsaft/search/_results_entry.html.haml +13 -0
- data/app/views/kuhsaft/sitemaps/index.xml.haml +9 -0
- data/app/views/kuhsaft/slider_bricks/_slider_brick.html.haml +10 -0
- data/app/views/kuhsaft/slider_bricks/slider_brick/_edit.html.haml +0 -0
- data/app/views/kuhsaft/text_bricks/_text_brick.html.haml +11 -0
- data/app/views/kuhsaft/text_bricks/text_brick/_edit.html.haml +2 -0
- data/app/views/kuhsaft/two_column_bricks/_two_column_brick.html.haml +3 -0
- data/app/views/kuhsaft/two_column_bricks/two_column_brick/_childs.html.haml +5 -0
- data/app/views/kuhsaft/two_column_bricks/two_column_brick/_edit.html.haml +1 -0
- data/app/views/kuhsaft/video_bricks/_video_brick.html.haml +9 -0
- data/app/views/kuhsaft/video_bricks/video_brick/_edit.html.haml +8 -0
- data/app/views/layouts/kuhsaft/cms/application.html.haml +25 -0
- data/app/views/layouts/kuhsaft/cms/ckimages.html.haml +18 -0
- data/config/initializers/simple_form.rb +142 -0
- data/config/initializers/simple_form_bootstrap.rb +45 -0
- data/config/locales/de.yml +207 -0
- data/config/locales/en.yml +211 -0
- data/config/locales/models/kuhsaft/accordion_brick/de.yml +4 -0
- data/config/locales/models/kuhsaft/accordion_brick/en.yml +4 -0
- data/config/locales/models/kuhsaft/accordion_item_brick/de.yml +7 -0
- data/config/locales/models/kuhsaft/accordion_item_brick/en.yml +7 -0
- data/config/locales/models/kuhsaft/anchor_brick/de.yml +7 -0
- data/config/locales/models/kuhsaft/anchor_brick/en.yml +7 -0
- data/config/locales/models/kuhsaft/asset_brick/de.yml +9 -0
- data/config/locales/models/kuhsaft/asset_brick/en.yml +9 -0
- data/config/locales/models/kuhsaft/brick/de.yml +5 -0
- data/config/locales/models/kuhsaft/brick/en.yml +5 -0
- data/config/locales/models/kuhsaft/column_brick/de.yml +4 -0
- data/config/locales/models/kuhsaft/column_brick/en.yml +4 -0
- data/config/locales/models/kuhsaft/image_brick/de.yml +11 -0
- data/config/locales/models/kuhsaft/image_brick/en.yml +11 -0
- data/config/locales/models/kuhsaft/image_size/de.yml +13 -0
- data/config/locales/models/kuhsaft/image_size/en.yml +13 -0
- data/config/locales/models/kuhsaft/link_brick/de.yml +10 -0
- data/config/locales/models/kuhsaft/link_brick/en.yml +10 -0
- data/config/locales/models/kuhsaft/page/de.yml +19 -0
- data/config/locales/models/kuhsaft/page/en.yml +19 -0
- data/config/locales/models/kuhsaft/placeholder_brick/de.yml +8 -0
- data/config/locales/models/kuhsaft/placeholder_brick/en.yml +8 -0
- data/config/locales/models/kuhsaft/slider_brick/de.yml +4 -0
- data/config/locales/models/kuhsaft/slider_brick/en.yml +4 -0
- data/config/locales/models/kuhsaft/text_brick/de.yml +11 -0
- data/config/locales/models/kuhsaft/text_brick/en.yml +11 -0
- data/config/locales/models/kuhsaft/two_column_brick/de.yml +7 -0
- data/config/locales/models/kuhsaft/two_column_brick/en.yml +7 -0
- data/config/locales/models/kuhsaft/video_brick/de.yml +9 -0
- data/config/locales/models/kuhsaft/video_brick/en.yml +9 -0
- data/config/locales/simple_form.en.yml +26 -0
- data/config/locales/views/kuhsaft/cms/admin/de.yml +13 -0
- data/config/locales/views/kuhsaft/cms/admin/en.yml +12 -0
- data/config/locales/views/kuhsaft/cms/bricks/de.yml +18 -0
- data/config/locales/views/kuhsaft/cms/bricks/en.yml +18 -0
- data/config/locales/views/kuhsaft/cms/pages/de.yml +31 -0
- data/config/locales/views/kuhsaft/cms/pages/en.yml +31 -0
- data/config/locales/views/kuhsaft/image_brick/de.yml +6 -0
- data/config/locales/views/kuhsaft/image_brick/en.yml +6 -0
- data/config/locales/views/kuhsaft/search/de.yml +12 -0
- data/config/locales/views/kuhsaft/search/en.yml +12 -0
- data/config/locales/views/kuhsaft/text_brick/de.yml +6 -0
- data/config/locales/views/kuhsaft/text_brick/en.yml +6 -0
- data/config/locales/views/kuhsaft/video_brick/de.yml +7 -0
- data/config/locales/views/kuhsaft/video_brick/en.yml +7 -0
- data/config/routes.rb +30 -0
- data/db/migrate/01_create_kuhsaft_pages.rb +31 -0
- data/db/migrate/02_create_kuhsaft_bricks.rb +23 -0
- data/db/migrate/03_create_kuhsaft_brick_types.rb +12 -0
- data/db/migrate/04_create_kuhsaft_assets.rb +10 -0
- data/db/migrate/05_remove_cms_admin.rb +9 -0
- data/db/migrate/06_add_template_name_to_kuhsaft_bricks.rb +7 -0
- data/db/migrate/07_add_default_value_to_brick_type_enabled.rb +6 -0
- data/db/migrate/08_add_display_styles_to_bricks.rb +5 -0
- data/db/migrate/09_add_additional_fields_to_kuhsaft_bricks.rb +6 -0
- data/db/migrate/10_add_redirect_url_to_kuhsaft_pages.rb +7 -0
- data/db/migrate/11_update_url_and_redirect_url_value.rb +45 -0
- data/db/migrate/12_regenerate_fulltext.rb +12 -0
- data/db/migrate/13_add_page_title_to_pages.rb +7 -0
- data/db/migrate/14_move_kuhsaft_assets.rb +22 -0
- data/db/migrate/15_add_alt_text_to_bricks.rb +5 -0
- data/db/migrate/16_update_default_value_for_page_type.rb +9 -0
- data/db/migrate/17_set_page_type_to_content_for_empty_fields.rb +7 -0
- data/db/migrate/18_add_identifier_to_kuhsaft_pages.rb +6 -0
- data/db/migrate/19_add_col_count_to_bricks.rb +5 -0
- data/db/migrate/20_create_kuhsaft_ckimages.rb +9 -0
- data/db/seeds.rb +20 -0
- data/lib/generators/kuhsaft/assets/install_generator.rb +25 -0
- data/lib/generators/kuhsaft/translations/add_generator.rb +41 -0
- data/lib/kuhsaft.rb +22 -0
- data/lib/kuhsaft/brick_list.rb +87 -0
- data/lib/kuhsaft/engine.rb +27 -0
- data/lib/kuhsaft/gridded.rb +20 -0
- data/lib/kuhsaft/image_uploader_mounting.rb +22 -0
- data/lib/kuhsaft/orderable.rb +71 -0
- data/lib/kuhsaft/page_tree.rb +14 -0
- data/lib/kuhsaft/partial_extractor.rb +21 -0
- data/lib/kuhsaft/searchable.rb +69 -0
- data/lib/kuhsaft/touch_placeholders.rb +31 -0
- data/lib/kuhsaft/translatable.rb +54 -0
- data/lib/kuhsaft/version.rb +3 -0
- data/lib/tasks/kuhsaft_tasks.rake +22 -0
- data/lib/templates/kuhsaft/assets/ck-config.js.coffee +48 -0
- data/lib/templates/kuhsaft/assets/customizations.css.sass +0 -0
- data/lib/templates/kuhsaft/assets/customizations.js.coffee +0 -0
- data/lib/templates/kuhsaft/translations/add_translation.erb +8 -0
- data/spec/controllers/kuhsaft/api/pages_controller_spec.rb +70 -0
- data/spec/controllers/kuhsaft/pages_controller_spec.rb +90 -0
- data/spec/controllers/kuhsaft/sitemaps_controller_spec.rb +13 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/images/spec-image.png +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/javascripts/kuhsaft/cms/ck-config.js.coffee +48 -0
- data/spec/dummy/app/assets/javascripts/kuhsaft/cms/customizations.js.coffee +0 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/assets/stylesheets/kuhsaft/cms/customizations.css.sass +0 -0
- data/spec/dummy/app/controllers/application_controller.rb +4 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +26 -0
- data/spec/dummy/config/boot.rb +3 -0
- data/spec/dummy/config/database.yml +19 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +81 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/kuhsaft.rb +5 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +3 -0
- data/spec/dummy/db/.gitkeep +0 -0
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/factories.rb +26 -0
- data/spec/features/cms_pages_spec.rb +76 -0
- data/spec/features/search_spec.rb +78 -0
- data/spec/helpers/kuhsaft/cms/admin_helper_spec.rb +25 -0
- data/spec/helpers/kuhsaft/cms/pages_helper_spec.rb +46 -0
- data/spec/helpers/kuhsaft/pages_helper_spec.rb +21 -0
- data/spec/kuhsaft_spec.rb +7 -0
- data/spec/lib/brick_list_spec.rb +50 -0
- data/spec/lib/engine_spec.rb +25 -0
- data/spec/lib/gridded_spec.rb +24 -0
- data/spec/lib/image_uploader_mounting_spec.rb +14 -0
- data/spec/lib/page_tree_spec.rb +38 -0
- data/spec/lib/searchable_spec.rb +30 -0
- data/spec/lib/touch_placeholders_spec.rb +44 -0
- data/spec/lib/translatable_spec.rb +155 -0
- data/spec/models/accordion_brick_spec.rb +38 -0
- data/spec/models/accordion_item_brick_spec.rb +50 -0
- data/spec/models/anchor_brick_spec.rb +26 -0
- data/spec/models/asset_brick_spec.rb +45 -0
- data/spec/models/asset_spec.rb +41 -0
- data/spec/models/brick_spec.rb +134 -0
- data/spec/models/brick_type_filter_spec.rb +64 -0
- data/spec/models/column_brick_spec.rb +32 -0
- data/spec/models/image_brick_spec.rb +49 -0
- data/spec/models/image_size_spec.rb +36 -0
- data/spec/models/link_brick_spec.rb +51 -0
- data/spec/models/page_spec.rb +472 -0
- data/spec/models/placeholder_brick_spec.rb +46 -0
- data/spec/models/publish_state_spec.rb +33 -0
- data/spec/models/slider_brick_spec.rb +26 -0
- data/spec/models/text_brick_spec.rb +30 -0
- data/spec/models/two_column_brick_spec.rb +82 -0
- data/spec/models/video_brick_spec.rb +32 -0
- data/spec/spec_helper.rb +81 -0
- data/spec/support/kuhsaft_spec_helper.rb +8 -0
- data/spec/support/write_expectation.rb +57 -0
- data/spec/views/kuhsaft/sitemaps/index.xml.haml_spec.rb +67 -0
- data/vendor/assets/javascripts/bootstrap-modal-v2.js +376 -0
- data/vendor/assets/javascripts/bootstrap-modalmanager.js +423 -0
- data/vendor/assets/javascripts/jquery.nestable.js +485 -0
- data/vendor/assets/stylesheets/bootstrap_modal.css +214 -0
- data/vendor/assets/stylesheets/nestable.css +84 -0
- metadata +870 -0
|
Binary file
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
|
3
|
+
For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
4
|
+
*/
|
|
5
|
+
CKEDITOR.plugins.setLang( 'adv_link', 'de', {
|
|
6
|
+
localPages:'CMS Seite',
|
|
7
|
+
selectPageLabel:'Wählen Sie eine Seite aus',
|
|
8
|
+
selectPageTitle:'Wählen Sie eine Seite aus, auf die Sie verlinken möchten',
|
|
9
|
+
acccessKey: 'Zugriffstaste',
|
|
10
|
+
advanced: 'Erweitert',
|
|
11
|
+
advisoryContentType: 'Inhaltstyp',
|
|
12
|
+
advisoryTitle: 'Titel Beschreibung',
|
|
13
|
+
anchor: {
|
|
14
|
+
toolbar: 'Anker einfügen/editieren',
|
|
15
|
+
menu: 'Anker-Eigenschaften',
|
|
16
|
+
title: 'Anker-Eigenschaften',
|
|
17
|
+
name: 'Anker Name',
|
|
18
|
+
errorName: 'Bitte geben Sie den Namen des Ankers ein',
|
|
19
|
+
remove: 'Anker entfernen'
|
|
20
|
+
},
|
|
21
|
+
anchorId: 'nach Element Id',
|
|
22
|
+
anchorName: 'nach Anker Name',
|
|
23
|
+
charset: 'Ziel-Zeichensatz',
|
|
24
|
+
cssClasses: 'Stylesheet Klasse',
|
|
25
|
+
emailAddress: 'E-Mail Adresse',
|
|
26
|
+
emailBody: 'Nachrichtentext',
|
|
27
|
+
emailSubject: 'Betreffzeile',
|
|
28
|
+
id: 'Id',
|
|
29
|
+
info: 'Link-Info',
|
|
30
|
+
langCode: 'Sprachenkürzel',
|
|
31
|
+
langDir: 'Schreibrichtung',
|
|
32
|
+
langDirLTR: 'Links nach Rechts (LTR)',
|
|
33
|
+
langDirRTL: 'Rechts nach Links (RTL)',
|
|
34
|
+
menu: 'Link editieren',
|
|
35
|
+
name: 'Name',
|
|
36
|
+
noAnchors: '(keine Anker im Dokument vorhanden)',
|
|
37
|
+
noEmail: 'Bitte geben Sie e-Mail Adresse an',
|
|
38
|
+
noUrl: 'Bitte geben Sie die Link-URL an',
|
|
39
|
+
other: '<andere>',
|
|
40
|
+
popupDependent: 'Abhängig (Netscape)',
|
|
41
|
+
popupFeatures: 'Pop-up Fenster-Eigenschaften',
|
|
42
|
+
popupFullScreen: 'Vollbild (IE)',
|
|
43
|
+
popupLeft: 'Linke Position',
|
|
44
|
+
popupLocationBar: 'Adress-Leiste',
|
|
45
|
+
popupMenuBar: 'Menü-Leiste',
|
|
46
|
+
popupResizable: 'Größe änderbar',
|
|
47
|
+
popupScrollBars: 'Rollbalken',
|
|
48
|
+
popupStatusBar: 'Statusleiste',
|
|
49
|
+
popupToolbar: 'Symbolleiste',
|
|
50
|
+
popupTop: 'Obere Position',
|
|
51
|
+
rel: 'Beziehung',
|
|
52
|
+
selectAnchor: 'Anker auswählen',
|
|
53
|
+
styles: 'Style',
|
|
54
|
+
tabIndex: 'Tab-Index',
|
|
55
|
+
target: 'Zielseite',
|
|
56
|
+
targetFrame: '<Frame>',
|
|
57
|
+
targetFrameName: 'Ziel-Fenster-Name',
|
|
58
|
+
targetPopup: '<Pop-up Fenster>',
|
|
59
|
+
targetPopupName: 'Pop-up Fenster-Name',
|
|
60
|
+
title: 'Link',
|
|
61
|
+
toAnchor: 'Anker in dieser Seite',
|
|
62
|
+
toEmail: 'E-Mail',
|
|
63
|
+
toUrl: 'URL',
|
|
64
|
+
toolbar: 'Link einfügen/editieren',
|
|
65
|
+
type: 'Link-Typ',
|
|
66
|
+
unlink: 'Link entfernen',
|
|
67
|
+
upload: 'Hochladen'
|
|
68
|
+
});
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
|
3
|
+
For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
4
|
+
*/
|
|
5
|
+
CKEDITOR.plugins.setLang( 'adv_link', 'en', {
|
|
6
|
+
localPages:'CMS Pages',
|
|
7
|
+
selectPageLabel:'Select a page',
|
|
8
|
+
selectPageTitle:'Select the page you want to link to',
|
|
9
|
+
acccessKey: 'Access Key',
|
|
10
|
+
advanced: 'Advanced',
|
|
11
|
+
advisoryContentType: 'Advisory Content Type',
|
|
12
|
+
advisoryTitle: 'Advisory Title',
|
|
13
|
+
anchor: {
|
|
14
|
+
toolbar: 'Anchor',
|
|
15
|
+
menu: 'Edit Anchor',
|
|
16
|
+
title: 'Anchor Properties',
|
|
17
|
+
name: 'Anchor Name',
|
|
18
|
+
errorName: 'Please type the anchor name',
|
|
19
|
+
remove: 'Remove Anchor'
|
|
20
|
+
},
|
|
21
|
+
anchorId: 'By Element Id',
|
|
22
|
+
anchorName: 'By Anchor Name',
|
|
23
|
+
charset: 'Linked Resource Charset',
|
|
24
|
+
cssClasses: 'Stylesheet Classes',
|
|
25
|
+
emailAddress: 'E-Mail Address',
|
|
26
|
+
emailBody: 'Message Body',
|
|
27
|
+
emailSubject: 'Message Subject',
|
|
28
|
+
id: 'Id',
|
|
29
|
+
info: 'Link Info',
|
|
30
|
+
langCode: 'Language Code',
|
|
31
|
+
langDir: 'Language Direction',
|
|
32
|
+
langDirLTR: 'Left to Right (LTR)',
|
|
33
|
+
langDirRTL: 'Right to Left (RTL)',
|
|
34
|
+
menu: 'Edit Link',
|
|
35
|
+
name: 'Name',
|
|
36
|
+
noAnchors: '(No anchors available in the document)',
|
|
37
|
+
noEmail: 'Please type the e-mail address',
|
|
38
|
+
noUrl: 'Please type the link URL',
|
|
39
|
+
other: '<other>',
|
|
40
|
+
popupDependent: 'Dependent (Netscape)',
|
|
41
|
+
popupFeatures: 'Popup Window Features',
|
|
42
|
+
popupFullScreen: 'Full Screen (IE)',
|
|
43
|
+
popupLeft: 'Left Position',
|
|
44
|
+
popupLocationBar: 'Location Bar',
|
|
45
|
+
popupMenuBar: 'Menu Bar',
|
|
46
|
+
popupResizable: 'Resizable',
|
|
47
|
+
popupScrollBars: 'Scroll Bars',
|
|
48
|
+
popupStatusBar: 'Status Bar',
|
|
49
|
+
popupToolbar: 'Toolbar',
|
|
50
|
+
popupTop: 'Top Position',
|
|
51
|
+
rel: 'Relationship',
|
|
52
|
+
selectAnchor: 'Select an Anchor',
|
|
53
|
+
styles: 'Style',
|
|
54
|
+
tabIndex: 'Tab Index',
|
|
55
|
+
target: 'Target',
|
|
56
|
+
targetFrame: '<frame>',
|
|
57
|
+
targetFrameName: 'Target Frame Name',
|
|
58
|
+
targetPopup: '<popup window>',
|
|
59
|
+
targetPopupName: 'Popup Window Name',
|
|
60
|
+
title: 'Link',
|
|
61
|
+
toAnchor: 'Link to anchor in the text',
|
|
62
|
+
toEmail: 'E-mail',
|
|
63
|
+
toUrl: 'URL',
|
|
64
|
+
toolbar: 'Link',
|
|
65
|
+
type: 'Link Type',
|
|
66
|
+
unlink: 'Unlink',
|
|
67
|
+
upload: 'Upload'
|
|
68
|
+
});
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
###
|
|
2
|
+
@license Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
|
|
3
|
+
For licensing, see LICENSE.md or http://ckeditor.com/license
|
|
4
|
+
###
|
|
5
|
+
CKEDITOR.plugins.add "adv_link",
|
|
6
|
+
requires: "dialog,fakeobjects"
|
|
7
|
+
lang: "en,es,fr,it" # %REMOVE_LINE_CORE%
|
|
8
|
+
icons: "anchor,anchor-rtl,link,unlink" # %REMOVE_LINE_CORE%
|
|
9
|
+
hidpi: true # %REMOVE_LINE_CORE%
|
|
10
|
+
onLoad: ->
|
|
11
|
+
cssWithDir = (dir) ->
|
|
12
|
+
template.replace(/%1/g, (if dir is "rtl" then "right" else "left")).replace /%2/g, "cke_contents_" + dir
|
|
13
|
+
iconPath = CKEDITOR.getUrl(@path + "images" + ((if CKEDITOR.env.hidpi then "/hidpi" else "")) + "/anchor.png")
|
|
14
|
+
baseStyle = "background:url(" + iconPath + ") no-repeat %1 center;border:1px dotted #00f;background-size:16px;"
|
|
15
|
+
template = ".%2 a.cke_anchor," + ".%2 a.cke_anchor_empty" + ",.cke_editable.%2 a[name]" + ",.cke_editable.%2 a[data-cke-saved-name]" + "{" + baseStyle + "padding-%1:18px;" + "cursor:auto;" + "}" + ((if CKEDITOR.env.ie then ("a.cke_anchor_empty" + "{" + "display:inline-block;" + "}") else "")) + ".%2 img.cke_anchor" + "{" + baseStyle + "width:16px;" + "min-height:15px;" + "height:1.15em;" + "vertical-align:" + ((if CKEDITOR.env.opera then "middle" else "text-bottom")) + ";" + "}"
|
|
16
|
+
CKEDITOR.addCss cssWithDir("ltr") + cssWithDir("rtl")
|
|
17
|
+
return
|
|
18
|
+
|
|
19
|
+
init: (editor) ->
|
|
20
|
+
allowed = "a[!href]"
|
|
21
|
+
required = "a[href]"
|
|
22
|
+
allowed = allowed.replace("]", ",accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)") if CKEDITOR.dialog.isTabEnabled(editor, "link", "advanced")
|
|
23
|
+
allowed = allowed.replace("]", ",target,onclick]") if CKEDITOR.dialog.isTabEnabled(editor, "link", "target")
|
|
24
|
+
|
|
25
|
+
# Add the link and unlink buttons.
|
|
26
|
+
editor.addCommand "link", new CKEDITOR.dialogCommand("link",
|
|
27
|
+
allowedContent: allowed
|
|
28
|
+
requiredContent: required
|
|
29
|
+
)
|
|
30
|
+
editor.addCommand "anchor", new CKEDITOR.dialogCommand("anchor",
|
|
31
|
+
allowedContent: "a[!name,id]"
|
|
32
|
+
requiredContent: "a[name]"
|
|
33
|
+
)
|
|
34
|
+
editor.addCommand "unlink", new CKEDITOR.unlinkCommand()
|
|
35
|
+
editor.addCommand "removeAnchor", new CKEDITOR.removeAnchorCommand()
|
|
36
|
+
editor.setKeystroke CKEDITOR.CTRL + 76, "link" #L
|
|
37
|
+
if editor.ui.addButton
|
|
38
|
+
editor.ui.addButton "Link",
|
|
39
|
+
label: editor.lang.link.toolbar
|
|
40
|
+
command: "link"
|
|
41
|
+
toolbar: "links,10"
|
|
42
|
+
|
|
43
|
+
editor.ui.addButton "Unlink",
|
|
44
|
+
label: editor.lang.link.unlink
|
|
45
|
+
command: "unlink"
|
|
46
|
+
toolbar: "links,20"
|
|
47
|
+
|
|
48
|
+
editor.ui.addButton "Anchor",
|
|
49
|
+
label: editor.lang.link.anchor.toolbar
|
|
50
|
+
command: "anchor"
|
|
51
|
+
toolbar: "links,30"
|
|
52
|
+
|
|
53
|
+
CKEDITOR.dialog.add "link", @path + "dialogs/link.js"
|
|
54
|
+
CKEDITOR.dialog.add "anchor", @path + "dialogs/anchor.js"
|
|
55
|
+
editor.on "doubleclick", (evt) ->
|
|
56
|
+
element = CKEDITOR.plugins.link.getSelectedLink(editor) or evt.data.element
|
|
57
|
+
unless element.isReadOnly()
|
|
58
|
+
if element.is("a")
|
|
59
|
+
evt.data.dialog = (if (element.getAttribute("name") and (not element.getAttribute("href") or not element.getChildCount())) then "anchor" else "link")
|
|
60
|
+
editor.getSelection().selectElement element
|
|
61
|
+
else evt.data.dialog = "anchor" if CKEDITOR.plugins.link.tryRestoreFakeAnchor(editor, element)
|
|
62
|
+
return
|
|
63
|
+
|
|
64
|
+
# If the "menu" plugin is loaded, register the menu items.
|
|
65
|
+
if editor.addMenuItems
|
|
66
|
+
editor.addMenuItems
|
|
67
|
+
anchor:
|
|
68
|
+
label: editor.lang.link.anchor.menu
|
|
69
|
+
command: "anchor"
|
|
70
|
+
group: "anchor"
|
|
71
|
+
order: 1
|
|
72
|
+
|
|
73
|
+
removeAnchor:
|
|
74
|
+
label: editor.lang.link.anchor.remove
|
|
75
|
+
command: "removeAnchor"
|
|
76
|
+
group: "anchor"
|
|
77
|
+
order: 5
|
|
78
|
+
|
|
79
|
+
link:
|
|
80
|
+
label: editor.lang.link.menu
|
|
81
|
+
command: "link"
|
|
82
|
+
group: "link"
|
|
83
|
+
order: 1
|
|
84
|
+
|
|
85
|
+
unlink:
|
|
86
|
+
label: editor.lang.link.unlink
|
|
87
|
+
command: "unlink"
|
|
88
|
+
group: "link"
|
|
89
|
+
order: 5
|
|
90
|
+
|
|
91
|
+
# If the "contextmenu" plugin is loaded, register the listeners.
|
|
92
|
+
if editor.contextMenu
|
|
93
|
+
editor.contextMenu.addListener (element, selection) ->
|
|
94
|
+
return null if not element or element.isReadOnly()
|
|
95
|
+
anchor = CKEDITOR.plugins.link.tryRestoreFakeAnchor(editor, element)
|
|
96
|
+
return null if not anchor and not (anchor = CKEDITOR.plugins.link.getSelectedLink(editor))
|
|
97
|
+
menu = {}
|
|
98
|
+
if anchor.getAttribute("href") and anchor.getChildCount()
|
|
99
|
+
menu =
|
|
100
|
+
link: CKEDITOR.TRISTATE_OFF
|
|
101
|
+
unlink: CKEDITOR.TRISTATE_OFF
|
|
102
|
+
menu.anchor = menu.removeAnchor = CKEDITOR.TRISTATE_OFF if anchor and anchor.hasAttribute("name")
|
|
103
|
+
menu
|
|
104
|
+
|
|
105
|
+
return
|
|
106
|
+
|
|
107
|
+
afterInit: (editor) ->
|
|
108
|
+
# Register a filter to displaying placeholders after mode change.
|
|
109
|
+
dataProcessor = editor.dataProcessor
|
|
110
|
+
dataFilter = dataProcessor and dataProcessor.dataFilter
|
|
111
|
+
htmlFilter = dataProcessor and dataProcessor.htmlFilter
|
|
112
|
+
pathFilters = editor._.elementsPath and editor._.elementsPath.filters
|
|
113
|
+
if dataFilter
|
|
114
|
+
dataFilter.addRules elements:
|
|
115
|
+
a: (element) ->
|
|
116
|
+
attributes = element.attributes
|
|
117
|
+
return null unless attributes.name
|
|
118
|
+
isEmpty = not element.children.length
|
|
119
|
+
if CKEDITOR.plugins.link.synAnchorSelector
|
|
120
|
+
|
|
121
|
+
# IE needs a specific class name to be applied
|
|
122
|
+
# to the anchors, for appropriate styling.
|
|
123
|
+
ieClass = (if isEmpty then "cke_anchor_empty" else "cke_anchor")
|
|
124
|
+
cls = attributes["class"]
|
|
125
|
+
attributes["class"] = (cls or "") + " " + ieClass if attributes.name and (not cls or cls.indexOf(ieClass) < 0)
|
|
126
|
+
if isEmpty and CKEDITOR.plugins.link.emptyAnchorFix
|
|
127
|
+
attributes.contenteditable = "false"
|
|
128
|
+
attributes["data-cke-editable"] = 1
|
|
129
|
+
else return editor.createFakeParserElement(element, "cke_anchor", "anchor") if CKEDITOR.plugins.link.fakeAnchor and isEmpty
|
|
130
|
+
null
|
|
131
|
+
|
|
132
|
+
if CKEDITOR.plugins.link.emptyAnchorFix and htmlFilter
|
|
133
|
+
htmlFilter.addRules elements:
|
|
134
|
+
a: (element) ->
|
|
135
|
+
delete element.attributes.contenteditable
|
|
136
|
+
|
|
137
|
+
return
|
|
138
|
+
|
|
139
|
+
if pathFilters
|
|
140
|
+
pathFilters.push (element, name) ->
|
|
141
|
+
"anchor" if CKEDITOR.plugins.link.tryRestoreFakeAnchor(editor, element) or (element.getAttribute("name") and (not element.getAttribute("href") or not element.getChildCount())) if name is "a"
|
|
142
|
+
|
|
143
|
+
return
|
|
144
|
+
|
|
145
|
+
###
|
|
146
|
+
Set of link plugin's helpers.
|
|
147
|
+
|
|
148
|
+
@class
|
|
149
|
+
@singleton
|
|
150
|
+
###
|
|
151
|
+
CKEDITOR.plugins.link =
|
|
152
|
+
|
|
153
|
+
###
|
|
154
|
+
Get the surrounding link element of current selection.
|
|
155
|
+
|
|
156
|
+
CKEDITOR.plugins.link.getSelectedLink( editor );
|
|
157
|
+
|
|
158
|
+
// The following selection will all return the link element.
|
|
159
|
+
|
|
160
|
+
<a href="#">li^nk</a>
|
|
161
|
+
<a href="#">[link]</a>
|
|
162
|
+
text[<a href="#">link]</a>
|
|
163
|
+
<a href="#">li[nk</a>]
|
|
164
|
+
[<b><a href="#">li]nk</a></b>]
|
|
165
|
+
[<a href="#"><b>li]nk</b></a>
|
|
166
|
+
|
|
167
|
+
@since 3.2.1
|
|
168
|
+
@param {CKEDITOR.editor} editor
|
|
169
|
+
###
|
|
170
|
+
getSelectedLink: (editor) ->
|
|
171
|
+
selection = editor.getSelection()
|
|
172
|
+
selectedElement = selection.getSelectedElement()
|
|
173
|
+
return selectedElement if selectedElement and selectedElement.is("a")
|
|
174
|
+
range = selection.getRanges(true)[0]
|
|
175
|
+
if range
|
|
176
|
+
range.shrink CKEDITOR.SHRINK_TEXT
|
|
177
|
+
return editor.elementPath(range.getCommonAncestor()).contains("a", 1)
|
|
178
|
+
null
|
|
179
|
+
|
|
180
|
+
###
|
|
181
|
+
Opera and WebKit don't make it possible to select empty anchors. Fake
|
|
182
|
+
elements must be used for them.
|
|
183
|
+
|
|
184
|
+
@readonly
|
|
185
|
+
@property {Boolean}
|
|
186
|
+
###
|
|
187
|
+
fakeAnchor: CKEDITOR.env.opera or CKEDITOR.env.webkit
|
|
188
|
+
|
|
189
|
+
###
|
|
190
|
+
For browsers that don't support CSS3 `a[name]:empty()`, note IE9 is included because of #7783.
|
|
191
|
+
|
|
192
|
+
@readonly
|
|
193
|
+
@property {Boolean}
|
|
194
|
+
###
|
|
195
|
+
synAnchorSelector: CKEDITOR.env.ie
|
|
196
|
+
|
|
197
|
+
###
|
|
198
|
+
For browsers that have editing issue with empty anchor.
|
|
199
|
+
|
|
200
|
+
@readonly
|
|
201
|
+
@property {Boolean}
|
|
202
|
+
###
|
|
203
|
+
emptyAnchorFix: CKEDITOR.env.ie and CKEDITOR.env.version < 8
|
|
204
|
+
|
|
205
|
+
###
|
|
206
|
+
@param {CKEDITOR.editor} editor
|
|
207
|
+
@param {CKEDITOR.dom.element} element
|
|
208
|
+
@todo
|
|
209
|
+
###
|
|
210
|
+
tryRestoreFakeAnchor: (editor, element) ->
|
|
211
|
+
if element and element.data("cke-real-element-type") and element.data("cke-real-element-type") is "anchor"
|
|
212
|
+
link = editor.restoreRealElement(element)
|
|
213
|
+
link if link.data("cke-saved-name")
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
# TODO Much probably there's no need to expose these as public objects.
|
|
217
|
+
CKEDITOR.unlinkCommand = ->
|
|
218
|
+
|
|
219
|
+
CKEDITOR.unlinkCommand:: =
|
|
220
|
+
exec: (editor) ->
|
|
221
|
+
style = new CKEDITOR.style(
|
|
222
|
+
element: "a"
|
|
223
|
+
type: CKEDITOR.STYLE_INLINE
|
|
224
|
+
alwaysRemoveElement: 1
|
|
225
|
+
)
|
|
226
|
+
editor.removeStyle style
|
|
227
|
+
return
|
|
228
|
+
|
|
229
|
+
refresh: (editor, path) ->
|
|
230
|
+
|
|
231
|
+
# Despite our initial hope, document.queryCommandEnabled() does not work
|
|
232
|
+
# for this in Firefox. So we must detect the state by element paths.
|
|
233
|
+
element = path.lastElement and path.lastElement.getAscendant("a", true)
|
|
234
|
+
if element and element.getName() is "a" and element.getAttribute("href") and element.getChildCount()
|
|
235
|
+
@setState CKEDITOR.TRISTATE_OFF
|
|
236
|
+
else
|
|
237
|
+
@setState CKEDITOR.TRISTATE_DISABLED
|
|
238
|
+
return
|
|
239
|
+
|
|
240
|
+
contextSensitive: 1
|
|
241
|
+
startDisabled: 1
|
|
242
|
+
requiredContent: "a[href]"
|
|
243
|
+
|
|
244
|
+
CKEDITOR.removeAnchorCommand = ->
|
|
245
|
+
|
|
246
|
+
CKEDITOR.removeAnchorCommand:: =
|
|
247
|
+
exec: (editor) ->
|
|
248
|
+
sel = editor.getSelection()
|
|
249
|
+
bms = sel.createBookmarks()
|
|
250
|
+
anchor = undefined
|
|
251
|
+
if sel and (anchor = sel.getSelectedElement()) and ((if CKEDITOR.plugins.link.fakeAnchor and not anchor.getChildCount() then CKEDITOR.plugins.link.tryRestoreFakeAnchor(editor, anchor) else anchor.is("a")))
|
|
252
|
+
anchor.remove 1
|
|
253
|
+
else
|
|
254
|
+
if anchor = CKEDITOR.plugins.link.getSelectedLink(editor)
|
|
255
|
+
if anchor.hasAttribute("href")
|
|
256
|
+
anchor.removeAttributes
|
|
257
|
+
name: 1
|
|
258
|
+
"data-cke-saved-name": 1
|
|
259
|
+
|
|
260
|
+
anchor.removeClass "cke_anchor"
|
|
261
|
+
else
|
|
262
|
+
anchor.remove 1
|
|
263
|
+
sel.selectBookmarks bms
|
|
264
|
+
return
|
|
265
|
+
|
|
266
|
+
requiredContent: "a[name]"
|
|
267
|
+
|
|
268
|
+
CKEDITOR.tools.extend CKEDITOR.config,
|
|
269
|
+
|
|
270
|
+
###
|
|
271
|
+
@cfg {Boolean} [linkShowAdvancedTab=true]
|
|
272
|
+
@member CKEDITOR.config
|
|
273
|
+
@todo
|
|
274
|
+
###
|
|
275
|
+
linkShowAdvancedTab: true
|
|
276
|
+
|
|
277
|
+
###
|
|
278
|
+
@cfg {Boolean} [linkShowTargetTab=true]
|
|
279
|
+
@member CKEDITOR.config
|
|
280
|
+
@todo
|
|
281
|
+
###
|
|
282
|
+
linkShowTargetTab: true
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
#= depend_on_asset kuhsaft/cms/ck-config
|
|
2
|
+
#
|
|
3
|
+
#= require jquery
|
|
4
|
+
#= require jquery_ujs
|
|
5
|
+
#= require jquery.remotipart
|
|
6
|
+
#= require jquery-ui
|
|
7
|
+
#= require bootstrap
|
|
8
|
+
#= require bootstrap-modal-v2
|
|
9
|
+
#= require bootstrap-modalmanager
|
|
10
|
+
#= require ckeditor-jquery
|
|
11
|
+
#= require jquery.nestable
|
|
12
|
+
#= require_tree .
|
|
13
|
+
#
|
|
14
|
+
# Disable timestamp for ckeditor internal asset loading. This prevents issues with Asset Pipeline on production.
|
|
15
|
+
root = exports ? this
|
|
16
|
+
root.CKEDITOR.timestamp = null
|
|
17
|
+
|
|
18
|
+
# As @ryabrody & @k-graefenhain found out there is obviously a bug which causes the asset_path_helper to return paths always without digest:
|
|
19
|
+
# https://github.com/rails/sprockets-rails/issues/66
|
|
20
|
+
# That's why we need the environment switch here:
|
|
21
|
+
CKEDITOR.config.customConfig = "<%= asset_path('kuhsaft/cms/ck-config.js') %>"
|
|
22
|
+
|
|
23
|
+
loadTextEditor = ->
|
|
24
|
+
CKEDITOR.replaceAll('ckeditor')
|
|
25
|
+
|
|
26
|
+
updateInputsForRedirectPage = (redirect_url, keywords, description) ->
|
|
27
|
+
redirect_url.removeAttr('disabled')
|
|
28
|
+
keywords.attr('disabled', 'disabled')
|
|
29
|
+
description.attr('disabled', 'disabled')
|
|
30
|
+
|
|
31
|
+
clearInputsFromRedirectPage = (redirect_url, keywords, description) ->
|
|
32
|
+
redirect_url.attr('disabled', 'disabled')
|
|
33
|
+
keywords.removeAttr('disabled')
|
|
34
|
+
description.removeAttr('disabled')
|
|
35
|
+
|
|
36
|
+
checkPageType = ->
|
|
37
|
+
redirect_url = $('#page_redirect_url')
|
|
38
|
+
keywords = $('#page_keywords')
|
|
39
|
+
description = $('#page_description')
|
|
40
|
+
if ($('#page_page_type option:selected').val() == 'redirect')
|
|
41
|
+
updateInputsForRedirectPage(redirect_url, keywords, description)
|
|
42
|
+
else
|
|
43
|
+
clearInputsFromRedirectPage(redirect_url, keywords, description)
|
|
44
|
+
|
|
45
|
+
sortableBrick = ->
|
|
46
|
+
$(".brick-list").each (idx, elem) ->
|
|
47
|
+
$(elem).sortable(
|
|
48
|
+
handle: '.brick-item-header',
|
|
49
|
+
axis: "y",
|
|
50
|
+
update: (event, ui) ->
|
|
51
|
+
idList = $(this).find("> .brick-item")
|
|
52
|
+
.each (idx, elem) ->
|
|
53
|
+
$(this).find("input.position-field").val(idx+1)
|
|
54
|
+
.map ->
|
|
55
|
+
$(this).data('id')
|
|
56
|
+
|
|
57
|
+
sortForm = $('#bricks-sort-form form')
|
|
58
|
+
sortForm.find('input[name="bricks[ids]"]').val(idList.toArray().join(','))
|
|
59
|
+
sortForm.trigger('submit')
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
window.initSubmitLinks = (selector = null)->
|
|
63
|
+
selector ||= $('body')
|
|
64
|
+
|
|
65
|
+
selector.find('a.submit')
|
|
66
|
+
.click (e)->
|
|
67
|
+
$('textarea.ckeditor').each (index, elem) ->
|
|
68
|
+
CKEDITOR.instances[elem.id].updateElement()
|
|
69
|
+
|
|
70
|
+
form = $(this).closest('form')
|
|
71
|
+
form.submit()
|
|
72
|
+
e.preventDefault()
|
|
73
|
+
|
|
74
|
+
window.initSavePopover = (selector) ->
|
|
75
|
+
link = selector.find('a.submit')
|
|
76
|
+
link.popover(placement: 'top', trigger: 'manual')
|
|
77
|
+
|
|
78
|
+
# initial delay
|
|
79
|
+
setTimeout ->
|
|
80
|
+
link.popover('show')
|
|
81
|
+
# fade out delay
|
|
82
|
+
setTimeout ->
|
|
83
|
+
link.popover('hide')
|
|
84
|
+
, 1500
|
|
85
|
+
, 50
|
|
86
|
+
|
|
87
|
+
window.initCKEditor = (selector) ->
|
|
88
|
+
CKEDITOR.replace(selector)
|
|
89
|
+
|
|
90
|
+
window.toggleCollapseBricksNav = (bool = false) ->
|
|
91
|
+
if bool
|
|
92
|
+
$('#collapse-bricks-nav').removeClass('hidden')
|
|
93
|
+
else
|
|
94
|
+
$('#collapse-bricks-nav').addClass('hidden')
|
|
95
|
+
|
|
96
|
+
# Stop propagation for display styles dropdown
|
|
97
|
+
window.stopPropagationOfDisplayStyles = (selector) ->
|
|
98
|
+
selector.click (e) ->
|
|
99
|
+
e.stopPropagation()
|
|
100
|
+
|
|
101
|
+
$(document).ajaxSuccess ->
|
|
102
|
+
sortableBrick()
|
|
103
|
+
|
|
104
|
+
$(document).ready ->
|
|
105
|
+
loadTextEditor()
|
|
106
|
+
checkPageType()
|
|
107
|
+
sortableBrick()
|
|
108
|
+
initSubmitLinks()
|
|
109
|
+
stopPropagationOfDisplayStyles($('#display-styles ul'))
|
|
110
|
+
|
|
111
|
+
$('#page_page_type').change ->
|
|
112
|
+
checkPageType()
|
|
113
|
+
|
|
114
|
+
$('.dd').nestable(
|
|
115
|
+
collapseBtnHTML: '<button data-action="collapse"><i class="icon-minus-sign"></i></button>'
|
|
116
|
+
expandBtnHTML: '<button data-action="expand"><i class="icon-plus-sign"></i></button>'
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
$('.dd').on('change', ->
|
|
120
|
+
pageTree = $('.dd').nestable('serialize')
|
|
121
|
+
url = '/cms/pages/sort'
|
|
122
|
+
$.post(url, { page_tree: pageTree }, "json")
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
# collapse / expand all
|
|
126
|
+
$('#expand-all').click ->
|
|
127
|
+
$('.brick-item-content').each (index, elem) ->
|
|
128
|
+
$(elem).collapse('show')
|
|
129
|
+
$('.resize-toggler').each (index, elem) ->
|
|
130
|
+
$(elem).removeClass('collapsed')
|
|
131
|
+
|
|
132
|
+
$('#collapse-all').click ->
|
|
133
|
+
$('.brick-item-content').each (index, elem) ->
|
|
134
|
+
$(elem).collapse('hide')
|
|
135
|
+
$('.resize-toggler').each (index, elem) ->
|
|
136
|
+
$(elem).addClass('collapsed')
|