skylinecms 3.0.8 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +131 -10
- data/README.md +1 -2
- data/Rakefile +3 -3
- data/app/controllers/skyline/application_controller.rb +40 -4
- data/app/controllers/skyline/articles_controller.rb +4 -4
- data/app/controllers/skyline/browser/tabs/media_library/media_files_controller.rb +1 -1
- data/app/controllers/skyline/content_controller.rb +4 -3
- data/app/controllers/skyline/{media_files_data_controller.rb → media/data_controller.rb} +61 -59
- data/app/controllers/skyline/media/dirs_controller.rb +83 -0
- data/app/controllers/skyline/media/files_controller.rb +80 -0
- data/app/controllers/skyline/sections_controller.rb +10 -3
- data/app/controllers/skyline/settings_controller.rb +4 -2
- data/app/controllers/skyline/user_preferences_controller.rb +18 -0
- data/app/controllers/skyline/users_controller.rb +1 -1
- data/app/controllers/skyline/variant_current_editor_controller.rb +2 -0
- data/app/helpers/skyline/application_helper.rb +39 -35
- data/app/helpers/skyline/dialog_helper.rb +11 -10
- data/app/helpers/skyline/editors/boolean.rb +2 -2
- data/app/helpers/skyline/editors/page_browser.rb +2 -0
- data/app/helpers/skyline/editors/wysiwyg.rb +1 -1
- data/app/helpers/skyline/js_layout_helper.rb +19 -0
- data/app/helpers/skyline/media/dirs_helper.rb +2 -0
- data/app/helpers/skyline/media/files_helper.rb +6 -0
- data/app/helpers/skyline/media_files_helper.rb +2 -2
- data/app/helpers/skyline/menu_helper.rb +33 -0
- data/app/helpers/skyline/message_generator.rb +5 -1
- data/app/helpers/skyline/notification_generator.rb +6 -0
- data/app/helpers/skyline/plugin_helper.rb +21 -0
- data/app/helpers/skyline/presenters/presenter.rb +4 -13
- data/app/helpers/skyline/presenters/table.rb +0 -27
- data/app/helpers/skyline/ref_object_helper.rb +2 -2
- data/app/helpers/skyline/tree_helper.rb +74 -5
- data/app/models/skyline/article.rb +18 -6
- data/app/models/skyline/article_version.rb +1 -1
- data/app/models/skyline/image_ref.rb +9 -5
- data/app/models/skyline/inline_ref.rb +3 -2
- data/app/models/skyline/link_section_link.rb +2 -2
- data/app/models/skyline/media_file.rb +33 -10
- data/app/models/skyline/page.rb +10 -9
- data/app/models/skyline/section.rb +1 -1
- data/app/models/skyline/sections/content_collection_section.rb +1 -1
- data/app/models/skyline/sections/content_item_section.rb +1 -1
- data/app/models/skyline/sections/heading_section.rb +1 -1
- data/app/models/skyline/sections/iframe_section.rb +2 -2
- data/app/models/skyline/sections/link_section.rb +1 -1
- data/app/models/skyline/sections/media_section.rb +32 -5
- data/app/models/skyline/sections/page_fragment_section.rb +1 -1
- data/app/models/skyline/sections/raw_section.rb +1 -1
- data/app/models/skyline/sections/redirect_section.rb +4 -4
- data/app/models/skyline/sections/rss_section.rb +7 -2
- data/app/models/skyline/sections/splitter_section.rb +1 -1
- data/app/models/skyline/sections/wysiwyg_section.rb +3 -3
- data/app/models/skyline/site.rb +1 -1
- data/app/models/skyline/user.rb +1 -1
- data/app/models/skyline/user_preference.rb +69 -0
- data/app/models/skyline/variant.rb +1 -1
- data/app/templates/skyline/sections/content_item_section/default/index.html.erb +1 -1
- data/app/templates/skyline/sections/media_section/default/index.html.erb +9 -9
- data/app/views/skyline/articles/_list.html.erb +34 -0
- data/app/views/skyline/articles/edit.html.erb +13 -6
- data/app/views/skyline/articles/index.html.erb +12 -43
- data/app/views/skyline/articles/page/_index.html.erb +13 -11
- data/app/views/skyline/authentications/new.html.erb +2 -2
- data/app/views/skyline/browser/links/_index.html.erb +4 -2
- data/app/views/skyline/browser/tabs/media_library/_index.html.erb +12 -13
- data/app/views/skyline/browser/tabs/media_library/media_files/_index.html.erb +122 -51
- data/app/views/skyline/browser/tabs/media_library/media_files/_show.html.erb +7 -7
- data/app/views/skyline/content/list.rhtml +1 -3
- data/app/views/skyline/content/presenters/_table.html.erb +45 -0
- data/app/views/skyline/layouts/content.html.erb +1 -1
- data/app/views/skyline/layouts/media.html.erb +2 -1
- data/app/views/skyline/layouts/pages.html.erb +10 -0
- data/app/views/skyline/link_section_links/_form.html.erb +0 -1
- data/app/views/skyline/locales/show.js.erb +2 -2
- data/app/views/skyline/media/dirs/_edit.html.erb +42 -0
- data/app/views/skyline/media/dirs/_index.html.erb +14 -0
- data/app/views/skyline/media/dirs/_show.html.erb +34 -0
- data/app/views/skyline/media/dirs/index.html.erb +36 -0
- data/app/views/skyline/media/files/_edit.html.erb +101 -0
- data/app/views/skyline/media/files/_index.html.erb +68 -0
- data/app/views/skyline/media/files/_new.html.erb +45 -0
- data/app/views/skyline/publications/_index.html.erb +2 -2
- data/app/views/skyline/sections/_media_section.html.erb +12 -2
- data/app/views/skyline/sections/_wysiwyg_section.html.erb +2 -3
- data/app/views/skyline/settings/index.html +14 -0
- data/app/views/skyline/shared/_head.html.erb +2 -0
- data/app/views/skyline/shared/_header_area.html.erb +7 -5
- data/app/views/skyline/users/index.html.erb +31 -16
- data/config/initializers/dependencies.rb +6 -1
- data/config/initializers/observers.rb +1 -2
- data/config/initializers/rails_defaults.rb +1 -1
- data/config/locales/en-US.yml +110 -68
- data/config/locales/nl-NL.yml +117 -77
- data/config/routes.rb +36 -32
- data/db/fixtures/roles_and_rights.rb +65 -40
- data/db/migrate/20090302102548_add_media_nodes.rb +2 -2
- data/db/migrate/20090309133933_add_description_to_media_nodes.rb +2 -2
- data/db/migrate/20090309134731_add_tags.rb +2 -2
- data/db/migrate/20090309135746_create_media_files_tags.rb +2 -2
- data/db/migrate/20090319091342_create_media_caches.rb +2 -2
- data/db/migrate/20090327083240_create_users.rb +2 -2
- data/db/migrate/20090327084656_create_roles.rb +2 -2
- data/db/migrate/20090327084719_create_rights.rb +2 -2
- data/db/migrate/20090327084739_create_grants.rb +2 -2
- data/db/migrate/20090327090918_create_rights_roles.rb +2 -2
- data/db/migrate/20090408115155_create_ref_objects.rb +2 -2
- data/db/migrate/20090504140044_create_test_sections.rb +2 -2
- data/db/migrate/20090506083107_add_refering_column_name_to_ref_objects.rb +2 -2
- data/db/migrate/20090706124019_add_skyline_media_node_title.rb +1 -1
- data/db/migrate/20090904121447_create_skyline_referable_uris.rb +6 -6
- data/db/migrate/20091221145204_add_skyline_media_section_link.rb +11 -0
- data/db/migrate/20100109145958_add_associated_tags_index.rb +9 -0
- data/db/migrate/20100115111440_create_skyline_user_preferences.rb +14 -0
- data/db/migrate/20100120113953_remove_unused_articles_index.rb +9 -0
- data/db/migrate/20100409073447_change_referable_uri_to_text.rb +9 -0
- data/doc/Bundler.md +33 -28
- data/doc/MIGRATION.md +48 -0
- data/lib/skyline/{content_item.rb → belongs_to_referable.rb} +57 -88
- data/lib/skyline/configuration.rb +14 -15
- data/lib/skyline/content/content.rb +14 -2
- data/lib/skyline/deprecated/version3_0_8.rb +106 -0
- data/lib/skyline/{form_builder_with_errors.rb → form_builder.rb} +5 -5
- data/lib/skyline/{referable.rb → has_many_referables_in.rb} +22 -12
- data/lib/skyline/javascript_generator_methods.rb +1 -1
- data/lib/skyline/plugins_manager.rb +135 -14
- data/lib/skyline/rendering/helpers/renderer_helper.rb +14 -9
- data/lib/skyline/{renderer.rb → rendering/renderer.rb} +3 -4
- data/lib/skyline/{renderable_scope_interface.rb → rendering/scopes/interface.rb} +1 -1
- data/lib/skyline/{wildcard_renderable_scope.rb → rendering/scopes/wildcard.rb} +3 -3
- data/lib/skyline/{section_item.rb → sections/interface.rb} +17 -10
- data/lib/skyline/settings.rb +29 -19
- data/lib/skyline/taggable.rb +3 -3
- data/lib/skyline/version.rb +2 -2
- data/{tasks → lib/tasks}/database.rake +14 -2
- data/{tasks → lib/tasks}/implementation.rake +0 -0
- data/lib/tasks/testing.rake +41 -0
- data/public/skyline/images/backgrounds/panel-dt.gif +0 -0
- data/public/skyline/javascripts/src/application.js +114 -120
- data/public/skyline/javascripts/src/browser.js +22 -4
- data/public/skyline/javascripts/src/library_uploader.js +13 -3
- data/public/skyline/javascripts/src/sections.js +57 -6
- data/public/skyline/javascripts/src/skyline/src/dialog.js +6 -0
- data/public/skyline/javascripts/src/skyline/src/drag.js +6 -0
- data/public/skyline/javascripts/src/skyline/src/events.js +50 -0
- data/public/skyline/javascripts/src/skyline/src/field_replicator.js +12 -11
- data/public/skyline/javascripts/src/skyline/src/layout.js +172 -30
- data/public/skyline/javascripts/src/skyline/src/menu.js +3 -0
- data/public/skyline/javascripts/src/skyline/src/menubutton.js +3 -0
- data/public/skyline/javascripts/src/skyline/src/skyline.js +3 -0
- data/public/skyline/javascripts/src/skyline/src/table.js +398 -0
- data/public/skyline/javascripts/src/skyline/src/tabs.js +2 -2
- data/public/skyline/javascripts/src/skyline/src/tag_selector.js +34 -26
- data/public/skyline/javascripts/src/skyline/src/tree.js +3 -0
- data/public/skyline/javascripts/src/skyline/src/uploader.js +2 -2
- data/public/skyline/javascripts/src/skyline/src/utils.js +3 -0
- data/public/skyline/javascripts/src/skyline/test/_dynamic_right.html +24 -0
- data/public/skyline/javascripts/src/skyline/test/_right_content.html +1 -0
- data/public/skyline/javascripts/src/skyline/test/basic_layout.html +190 -0
- data/public/skyline/javascripts/src/skyline/test/dialog.html +101 -0
- data/public/skyline/javascripts/src/skyline/test/draggablefiles.html +196 -0
- data/public/skyline/javascripts/src/skyline/test/dynamic_layout.html +89 -0
- data/public/skyline/javascripts/src/skyline/test/field_replicator.html +60 -0
- data/public/skyline/javascripts/src/skyline/test/last-closed.gif +0 -0
- data/public/skyline/javascripts/src/skyline/test/last-open.gif +0 -0
- data/public/skyline/javascripts/src/skyline/test/menubutton.html +81 -0
- data/public/skyline/javascripts/src/skyline/test/middle.gif +0 -0
- data/public/skyline/javascripts/src/skyline/test/sortable.html +121 -0
- data/public/skyline/javascripts/src/skyline/test/table.html +521 -0
- data/public/skyline/javascripts/src/skyline/test/tagselector.html +72 -0
- data/public/skyline/javascripts/src/skyline/test/toggle.html +95 -0
- data/public/skyline/javascripts/src/skyline/test/tree.html +310 -0
- data/public/skyline/javascripts/src/skyline/test/tree.png +0 -0
- data/public/skyline/javascripts/src/skyline/test/undohtml.css +27 -0
- data/public/skyline/javascripts/src/skyline/vendor/fancyupload/Swiff.Uploader.js +2 -2
- data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-core.js +1 -354
- data/public/skyline/javascripts/src/skyline/vendor/mootools/mootools-more.js +64 -52
- data/public/skyline/javascripts/src/skyline.editor/assets/content.css +1 -1
- data/public/skyline/javascripts/src/skyline.editor/src/script_loader.js +156 -75
- data/public/skyline/javascripts/src/skyline.editor/src/skyline.editor.js +14 -4
- data/public/skyline/javascripts/src/skyline.editor/src/theme.js +8 -0
- data/public/skyline/javascripts/src/skyline.editor/test/dialog.html +28 -0
- data/public/skyline/javascripts/src/skyline.editor/test/lorem.html +7 -0
- data/public/skyline/javascripts/src/skyline.editor/test/multiple_editors.html +87 -0
- data/public/skyline/javascripts/src/skyline.editor/test/undohtml.css +27 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/changelog.txt +205 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/css/content.css +54 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/custom_formats.html +111 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/full.html +19 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/menu.html +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/simple.html +6 -2
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/skins.html +14 -10
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/translate.html +7 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/word.html +8 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/langs/en.js +18 -2
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js +154 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +52 -44
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js +388 -17
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js +4 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +58 -6
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js +8 -5
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +10 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js +18 -8
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +12 -6
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +136 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js +18 -9
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/media/media.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +7 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js +564 -124
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm +2 -8
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm +2 -8
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +7 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +4 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm +4 -9
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +106 -27
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js +6 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/style/props.htm +4 -11
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +7 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/cell.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js +921 -918
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js +41 -24
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js +18 -20
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/row.js +48 -23
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/js/table.js +24 -15
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm +3 -8
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/row.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/table/table.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js +10 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/template/template.htm +2 -9
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +26 -16
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +98 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +3 -10
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +3 -10
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm +3 -10
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm +3 -11
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +11 -15
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm +3 -11
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +8 -5
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +7 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +7 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +7 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js +7 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +8 -8
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +7 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/about.htm +1 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm +2 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js +252 -188
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/image.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js +7 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js +10 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js +2 -2
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js +4 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/link.htm +2 -7
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css +7 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css +4 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css +5 -6
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css +7 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +3 -2
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +4 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm +2 -8
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js +5 -5
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_popup.js +1 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_src.js +5492 -4341
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/editable_selects.js +5 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/form_utils.js +6 -5
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/mctabs.js +5 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/utils/validate.js +5 -4
- data/public/skyline/javascripts/src/skyline.js +3 -1
- data/public/skyline/javascripts/src/user_preferences.js +49 -0
- data/public/skyline/stylesheets/general.css +149 -47
- data/rails/init.rb +3 -3
- data/test/factories.rb +28 -0
- data/test/integration/media_browser_super_access_test.rb +52 -0
- data/test/integration/media_browser_user_access_test.rb +50 -0
- data/test/integration/user_preferences_test.rb +73 -0
- data/test/mocks/test_content_object.rb +32 -0
- data/test/mocks/test_section.rb +22 -0
- data/test/test_helper.rb +60 -0
- data/test/unit/inline_ref_test.rb +195 -0
- data/test/unit/locales_test.rb +82 -0
- data/test/unit/page_test.rb +204 -0
- data/test/unit/test_content_object_test.rb +69 -0
- data/test/unit/test_section_test.rb +247 -0
- data/test/unit/user_preference_test.rb +123 -0
- data/test/unit/user_test.rb +74 -0
- data/test/user_access_helper.rb +36 -0
- data/vendor/digitpaint/personify/test/fixtures/multiple_tags.txt +8 -0
- data/vendor/digitpaint/personify/test/parse_runner.rb +25 -0
- data/vendor/digitpaint/personify/test/parser_test.rb +109 -0
- data/vendor/digitpaint/personify/test/test_helper.rb +16 -0
- data/vendor/digitpaint/personify/vendor/treetop/.gitignore +5 -0
- data/vendor/mootools-on-rails/lib/mootools_on_rails/mootools_helper.rb +13 -4
- data/vendor/mootools-on-rails/test/mootools_helper_test.rb +138 -0
- data/vendor/mootools-on-rails/test/test_helper.rb +5 -0
- data/vendor/weppos/url_validation.rb +76 -0
- metadata +384 -189
- data/app/controllers/skyline/media_dirs_controller.rb +0 -56
- data/app/controllers/skyline/media_files_controller.rb +0 -87
- data/app/helpers/skyline/presenters/article_list.rb +0 -139
- data/app/observers/skyline/media_file_observer.rb +0 -32
- data/app/views/skyline/media_dirs/_edit.html.erb +0 -25
- data/app/views/skyline/media_dirs/_index.html.erb +0 -14
- data/app/views/skyline/media_dirs/index.html.erb +0 -42
- data/app/views/skyline/media_files/_edit.html.erb +0 -75
- data/app/views/skyline/media_files/_header.html.erb +0 -3
- data/app/views/skyline/media_files/_index.html.erb +0 -51
- data/app/views/skyline/media_files/_new.html.erb +0 -50
- data/db/migrate/20090603104115_prefix_tables_for_skyline.rb +0 -30
- data/lib/skyline/indexer.rb +0 -36
- data/lib/skyline/renderable_scope.rb +0 -27
- data/lib/skyline/rendering/helpers/settings_helper.rb +0 -26
- data/lib/skyline/searchable_item.rb +0 -132
- data/lib/skyline/url_validation.rb +0 -66
- data/public/skyline/images/backgrounds/splitter.gif +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/build.bat +0 -2
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/build.xml +0 -364
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/examples/full_jquery.html +0 -94
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/AddOnManager.js +0 -95
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/CommandManager.js +0 -54
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ControlManager.js +0 -489
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Developer.js +0 -91
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Editor.js +0 -2295
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/EditorCommands.js +0 -934
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/EditorManager.js +0 -453
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ForceBlocks.js +0 -644
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/Popup.js +0 -412
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/UndoManager.js +0 -183
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/WindowManager.js +0 -169
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/jquery/adapter.js +0 -240
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/jquery/jquery.tinymce.js +0 -179
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/adapter/prototype/adapter.js +0 -38
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/BlockQuote.js +0 -135
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/CutCopyPaste.js +0 -24
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/InsertHorizontalRule.js +0 -15
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/RemoveFormat.js +0 -173
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/commands/UndoRedo.js +0 -38
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/DOMUtils.js +0 -1823
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Element.js +0 -199
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/EventUtils.js +0 -349
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Range.js +0 -721
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/ScriptLoader.js +0 -351
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Selection.js +0 -747
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Serializer.js +0 -979
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/Sizzle.js +0 -975
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/StringWriter.js +0 -200
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/TridentSelection.js +0 -273
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/dom/XMLWriter.js +0 -155
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/firebug/firebug-lite.js +0 -2518
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/tinymce.js +0 -549
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Button.js +0 -68
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/ColorSplitButton.js +0 -212
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Container.js +0 -56
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Control.js +0 -182
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/DropMenu.js +0 -397
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/ListBox.js +0 -320
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Menu.js +0 -175
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/MenuButton.js +0 -128
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/MenuItem.js +0 -69
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/NativeListBox.js +0 -198
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Separator.js +0 -34
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/SplitButton.js +0 -99
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/ui/Toolbar.js +0 -86
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/Cookie.js +0 -126
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/Dispatcher.js +0 -101
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSON.js +0 -81
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSONP.js +0 -25
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/JSONRequest.js +0 -87
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/URI.js +0 -289
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/util/XHR.js +0 -80
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/classes/xml/Parser.js +0 -126
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/jquery.tinymce.js +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/compat2x/editor_plugin.js +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/compat2x/editor_plugin_src.js +0 -616
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/blank.htm +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin.js +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/plugins/safari/editor_plugin_src.js +0 -438
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_dev.js +0 -128
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_jquery.js +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_jquery_src.js +0 -12198
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_prototype.js +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/jscripts/tiny_mce/tiny_mce_prototype_src.js +0 -13057
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api.html +0 -18
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api_jquery.html +0 -18
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/api_prototype.html +0 -19
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/basic.html +0 -548
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/crossdomain.html +0 -87
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/css/unit.css +0 -120
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/index.html +0 -10
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/jquery_plugin.html +0 -112
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/js/api.js +0 -1438
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/js/testrunner.js +0 -791
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/main.html +0 -8
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/media.html +0 -221
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/menu.html +0 -22
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/parts.html +0 -90
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/paste.html +0 -132
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/performance.html +0 -152
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/range.html +0 -522
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/removeformat.html +0 -88
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/selection.html +0 -235
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/config.ini +0 -27
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/footer.html +0 -3
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/header.html +0 -6
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/index.php +0 -1
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/instructions.txt +0 -4
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/logo.png +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/selectors.list +0 -40
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/style.css +0 -181
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/index.php +0 -112
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/slickspeed.js +0 -147
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/system/template.php +0 -47
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/slickspeed/template.html +0 -2865
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tests/test.xml +0 -6
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/ant-contrib.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/js_build_tools.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnClientAdapter.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnant.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnjavahl.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/svnkit.jar +0 -0
- data/public/skyline/javascripts/src/skyline.editor/vendor/tinymce/tools/ant/yuicompressor.jar +0 -0
@@ -0,0 +1,73 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'user_access_helper'
|
3
|
+
|
4
|
+
class UserPreferencesTest < ActionController::IntegrationTest
|
5
|
+
include UserAccessHelper
|
6
|
+
context "User preferences" do
|
7
|
+
setup do
|
8
|
+
@user = Factory(:user)
|
9
|
+
@user.force_password!("qwedsa")
|
10
|
+
|
11
|
+
@user.user_preferences << Factory(:user_preference, :key => "a.", :encoded_value => 1.to_yaml)
|
12
|
+
|
13
|
+
@u = login(@user,"qwedsa")
|
14
|
+
end
|
15
|
+
|
16
|
+
should "be stored in a cookie with value and sent on request" do
|
17
|
+
@u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"my_field" => "a.email@address.com"}))
|
18
|
+
@u.get "/skyline"
|
19
|
+
@u.assert_equal('a.email@address.com', @user.user_preferences.get('my_field'))
|
20
|
+
end
|
21
|
+
|
22
|
+
should "be stored in a cookie with serialized hash and sent on request" do
|
23
|
+
up_my_hash = {'a' => 1, 'b' => 2}
|
24
|
+
@u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"my_hash" => up_my_hash}))
|
25
|
+
@u.get "/skyline"
|
26
|
+
@u.assert_equal(up_my_hash, @user.user_preferences.get('my_hash'))
|
27
|
+
end
|
28
|
+
|
29
|
+
should "be able to collect multiple values and send after request" do
|
30
|
+
@u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"my_field" => "a.email@address.com", "my_hash" => {'a' => 1, 'b' => 2}}))
|
31
|
+
@u.get "/skyline"
|
32
|
+
@u.assert_equal({'a' => 1, 'b' => 2}, @user.user_preferences.get('my_hash'))
|
33
|
+
@u.assert_equal('a.email@address.com', @user.user_preferences.get('my_field'))
|
34
|
+
end
|
35
|
+
|
36
|
+
should "have empty value in cookie after request" do
|
37
|
+
@u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"my_field" => "a.email@address.com"}))
|
38
|
+
@u.cookies["my_own_field"] = "Do not delete me"
|
39
|
+
|
40
|
+
@u.get "/skyline"
|
41
|
+
|
42
|
+
@u.assert("", cookies["skyline_up"])
|
43
|
+
@u.assert("Do not delete me", cookies["my_own_field"])
|
44
|
+
end
|
45
|
+
|
46
|
+
should "be able to be set through controller" do
|
47
|
+
@u.post "skyline/user_preferences",
|
48
|
+
'skyline_up' => ActiveSupport::JSON.encode({"my_hash" => {"a" => 1, "b" => 2}})
|
49
|
+
|
50
|
+
@u.assert_equal({'a' => 1, 'b' => 2}, @user.user_preferences.get('my_hash'))
|
51
|
+
end
|
52
|
+
|
53
|
+
should "be able to delete through controller" do
|
54
|
+
@u.assert @user.user_preferences.has_key?("a")
|
55
|
+
@u.post "skyline/user_preferences",
|
56
|
+
'skyline_up' => ActiveSupport::JSON.encode({"a" => "_delete"})
|
57
|
+
|
58
|
+
@u.assert !@user.user_preferences.has_key?("a")
|
59
|
+
end
|
60
|
+
|
61
|
+
should "store delete value in cookie and handle correctly" do
|
62
|
+
@u.assert @user.user_preferences.has_key?("a")
|
63
|
+
@u.cookies["skyline_up"] = CGI::escape(ActiveSupport::JSON.encode({"_delete" => ["a","b"]}))
|
64
|
+
|
65
|
+
@u.get "/skyline"
|
66
|
+
|
67
|
+
@u.assert !@user.user_preferences.has_key?("a")
|
68
|
+
@u.assert !@user.user_preferences.has_key?("b")
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
end
|
73
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
class Skyline::TestContentObject < ActiveRecord::Base
|
2
|
+
include Skyline::BelongsToReferable
|
3
|
+
|
4
|
+
belongs_to_referable :image
|
5
|
+
|
6
|
+
# before_save :create_object_ref
|
7
|
+
# after_save :update_object_ref
|
8
|
+
#
|
9
|
+
# belongs_to :image, :class_name => "Skyline::ObjectRef", :foreign_key => :image_id, :dependent => :destroy
|
10
|
+
#
|
11
|
+
# def image=(image)
|
12
|
+
# @image = image
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
# private
|
16
|
+
# def create_object_ref
|
17
|
+
# unless @image.nil?
|
18
|
+
# @object_ref = Skyline::ObjectRef.find_or_create_by_id(self.image_id)
|
19
|
+
# @object_ref.update_attributes(
|
20
|
+
# :referable_id =>@image.id,
|
21
|
+
# :referable_type =>@image.class.name,
|
22
|
+
# :refering_type =>self.class.name,
|
23
|
+
# :refering_column_name =>"image_id")
|
24
|
+
# self.image_id = @object_ref.id if self.image_id.nil?
|
25
|
+
# self.image = @object_ref
|
26
|
+
# end
|
27
|
+
# end
|
28
|
+
#
|
29
|
+
# def update_object_ref
|
30
|
+
# Skyline::ObjectRef.update_all({:refering_id => self.id}, "id = #{@object_ref.id}") unless @object_ref.blank?
|
31
|
+
# end
|
32
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class Skyline::TestSection < ActiveRecord::Base
|
2
|
+
include Skyline::Sections::Interface
|
3
|
+
include Skyline::HasManyReferablesIn
|
4
|
+
|
5
|
+
has_many_referables_in :body_a
|
6
|
+
has_many_referables_in :body_b
|
7
|
+
|
8
|
+
attr_accessor :fail_validation
|
9
|
+
|
10
|
+
validate :validate_fail_validation
|
11
|
+
|
12
|
+
self.table_name = "skyline_test_sections"
|
13
|
+
|
14
|
+
protected
|
15
|
+
|
16
|
+
def validate_fail_validation
|
17
|
+
self.errors.add_to_base("FAILED!!") if self.fail_validation == true
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
end
|
22
|
+
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,60 @@
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
2
|
+
ENV['RAILS_ROOT'] ||= File.dirname(__FILE__) + '/../../../..'
|
3
|
+
require File.expand_path(File.join(ENV['RAILS_ROOT'], 'config/environment.rb'))
|
4
|
+
require 'test_help'
|
5
|
+
# include ActionController::TestProcess
|
6
|
+
require 'factories'
|
7
|
+
|
8
|
+
SILENT_SEED = true
|
9
|
+
|
10
|
+
class ActiveSupport::TestCase
|
11
|
+
# Transactional fixtures accelerate your tests by wrapping each test method
|
12
|
+
# in a transaction that's rolled back on completion. This ensures that the
|
13
|
+
# test database remains unchanged so your fixtures don't have to be reloaded
|
14
|
+
# between every test method. Fewer database queries means faster tests.
|
15
|
+
#
|
16
|
+
# Read Mike Clark's excellent walkthrough at
|
17
|
+
# http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
|
18
|
+
#
|
19
|
+
# Every Active Record database supports transactions except MyISAM tables
|
20
|
+
# in MySQL. Turn off transactional fixtures in this case; however, if you
|
21
|
+
# don't care one way or the other, switching from MyISAM to InnoDB tables
|
22
|
+
# is recommended.
|
23
|
+
#
|
24
|
+
# The only drawback to using transactional fixtures is when you actually
|
25
|
+
# need to test transactions. Since your test is bracketed by a transaction,
|
26
|
+
# any transactions started in your code will be automatically rolled back.
|
27
|
+
self.use_transactional_fixtures = true
|
28
|
+
|
29
|
+
# Instantiated fixtures are slow, but give you @david where otherwise you
|
30
|
+
# would need people(:david). If you don't want to migrate your existing
|
31
|
+
# test cases which use the @david style and don't mind the speed hit (each
|
32
|
+
# instantiated fixtures translates to a database query per test method),
|
33
|
+
# then set this back to true.
|
34
|
+
self.use_instantiated_fixtures = false
|
35
|
+
|
36
|
+
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
|
37
|
+
#
|
38
|
+
# Note: You'll currently still have to declare fixtures explicitly in integration tests
|
39
|
+
# -- they do not yet inherit this setting
|
40
|
+
# fixtures :all
|
41
|
+
|
42
|
+
# Add more helper methods to be used by all tests here...
|
43
|
+
|
44
|
+
#convert [REF:id] tags back to html without specific object
|
45
|
+
def ref_id_convert(value,with_refs=false)
|
46
|
+
refs = Hash[*Skyline::InlineRef.all.map{ |m| [m.id, m]}.flatten]
|
47
|
+
|
48
|
+
return value unless value.kind_of?(String)
|
49
|
+
v = value.gsub(/\[REF:(\d+)\]/) do |match|
|
50
|
+
i = match[5..-2]
|
51
|
+
refs[i.to_i].to_start_html(with_refs)
|
52
|
+
end
|
53
|
+
|
54
|
+
outp = v.gsub(/\[\/REF:(\d+)\]/) do |match|
|
55
|
+
i = match[6..-2]
|
56
|
+
refs[i.to_i].to_end_html
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,195 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
require 'mocks/test_section.rb'
|
3
|
+
|
4
|
+
class BogusSection
|
5
|
+
def id; @id ||= 10000; end
|
6
|
+
|
7
|
+
attr_accessor :body
|
8
|
+
end
|
9
|
+
|
10
|
+
class TestSectionTest < ActiveSupport::TestCase
|
11
|
+
|
12
|
+
context "InlineRef class" do
|
13
|
+
setup do
|
14
|
+
@section = BogusSection.new
|
15
|
+
end
|
16
|
+
|
17
|
+
context "parsing html" do
|
18
|
+
|
19
|
+
should "create new refs" do
|
20
|
+
html = "abcdefghi <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' /> <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' />"
|
21
|
+
parsed_html, ids = Skyline::InlineRef.parse_html(html,@section,:body)
|
22
|
+
assert_equal 2, ids.size
|
23
|
+
assert_equal 2,Skyline::InlineRef.count(:conditions => {:refering_id => @section.id, :refering_type => @section.class.name})
|
24
|
+
|
25
|
+
assert_equal ids,Skyline::InlineRef.all(ids).map(&:id)
|
26
|
+
ids.each do |id|
|
27
|
+
assert parsed_html =~ /\[REF:#{id}\]/
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
should "delete unused refs" do
|
32
|
+
html = "abcdefghi <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' /> <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' />"
|
33
|
+
parsed_html, ids = Skyline::InlineRef.parse_html(html,@section,:body)
|
34
|
+
assert_equal 2, ids.size
|
35
|
+
assert_equal 2,Skyline::InlineRef.count(:conditions => {:refering_id => @section.id, :refering_type => @section.class.name})
|
36
|
+
assert_equal ids,Skyline::InlineRef.all(ids).map(&:id)
|
37
|
+
|
38
|
+
new_html = "abcdefghi <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' />"
|
39
|
+
new_parsed_html, new_ids = Skyline::InlineRef.parse_html(new_html,@section,:body)
|
40
|
+
assert_equal 1, new_ids.size
|
41
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => @section.id, :refering_type => @section.class.name})
|
42
|
+
assert_equal new_ids,Skyline::InlineRef.all(new_ids).map(&:id)
|
43
|
+
assert_equal new_ids,Skyline::InlineRef.all(ids).map(&:id)
|
44
|
+
end
|
45
|
+
|
46
|
+
should "update existing refs" do
|
47
|
+
html = "abcdefghi <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' /> bla bla"
|
48
|
+
section = Skyline::TestSection.new(:body_a => html)
|
49
|
+
assert section.save
|
50
|
+
refs_1 = Skyline::InlineRef.all(:conditions => {:refering_id => section.id, :refering_type => section.class.name}).map(&:id)
|
51
|
+
section.body_a = section.body_a(true).gsub("skyline-referable-id='1'","skyline-referable-id='2'")
|
52
|
+
assert section.save
|
53
|
+
refs_2 = Skyline::InlineRef.all(:conditions => {:refering_id => section.id, :refering_type => section.class.name}).map(&:id)
|
54
|
+
|
55
|
+
assert_equal refs_1,refs_2
|
56
|
+
end
|
57
|
+
|
58
|
+
should "only update it's own refs and replace 'foreign' refs" do
|
59
|
+
html = "abcdefghi <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' /> bla bla"
|
60
|
+
section_1 = Skyline::TestSection.new(:body_a => html)
|
61
|
+
assert section_1.save
|
62
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => section_1.id, :refering_type => section_1.class.name})
|
63
|
+
|
64
|
+
section_2 = Skyline::TestSection.new(:body_a => section_1.body_a(true))
|
65
|
+
assert section_2.save
|
66
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => section_2.id, :refering_type => section_2.class.name})
|
67
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => section_1.id, :refering_type => section_1.class.name})
|
68
|
+
|
69
|
+
assert_not_equal section_1.body_a(true), section_2.body_a(true)
|
70
|
+
end
|
71
|
+
|
72
|
+
should "make sure that copying a ref from one field to another doesn't break" do
|
73
|
+
html = "abcdefghi <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' /> bla bla"
|
74
|
+
s1 = Skyline::TestSection.new(:body_a => html)
|
75
|
+
assert s1.save
|
76
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => s1.id, :refering_type => s1.class.name, :refering_column_name => "body_a"})
|
77
|
+
|
78
|
+
s1.body_b = s1.body_a(true)
|
79
|
+
assert s1.save
|
80
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => s1.id, :refering_type => s1.class.name, :refering_column_name => "body_a"})
|
81
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => s1.id, :refering_type => s1.class.name, :refering_column_name => "body_b"})
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
85
|
+
|
86
|
+
context "converting REFS to html" do
|
87
|
+
|
88
|
+
setup do
|
89
|
+
@html = "a <img src='' skyline-referable-id='1' skyline-referable-type='Skyline::Page' /> <a href='' skyline-referable-id='2' skyline-referable-type='Skyline::Page'>test</a>"
|
90
|
+
@parsed_html, @ref_ids = Skyline::InlineRef.parse_html(@html,@section,:body)
|
91
|
+
assert_equal 2,Skyline::InlineRef.count(:conditions => {:refering_id => @section.id, :refering_type => @section.class.name})
|
92
|
+
end
|
93
|
+
|
94
|
+
should "return all refs on #hash_refs_for_object" do
|
95
|
+
refs = Skyline::InlineRef.hash_refs_for_object(@section,:body)
|
96
|
+
assert_equal 2,refs.keys.size
|
97
|
+
end
|
98
|
+
|
99
|
+
end
|
100
|
+
|
101
|
+
context "with external links" do
|
102
|
+
|
103
|
+
setup do
|
104
|
+
@html = "<a href=\"http://www.google.com\" skyline-referable-type=\"Skyline::ReferableUri\">Link1</a>link1</a> <a href=\"http://www.digitpaint.nl\" skyline-referable-type=\"Skyline::ReferableUri\">link2</a>"
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
should "create a ReferableUri object for each external link" do
|
109
|
+
s1 = Skyline::TestSection.new(:body_a => @html)
|
110
|
+
assert s1.save
|
111
|
+
|
112
|
+
refs = Skyline::InlineRef.all(:conditions => {:refering_id => s1.id, :refering_type => s1.class.name, :refering_column_name => "body_a"})
|
113
|
+
assert_equal 2, refs.size
|
114
|
+
referable_uris = refs.map(&:referable)
|
115
|
+
uris = referable_uris.map(&:uri)
|
116
|
+
|
117
|
+
assert_equal 2,referable_uris.select{|r| r.kind_of?(Skyline::ReferableUri) }.size
|
118
|
+
assert_equal ["http://www.google.com", "http://www.digitpaint.nl"], uris
|
119
|
+
end
|
120
|
+
|
121
|
+
should "not break when recovering from a validation" do
|
122
|
+
s1 = Skyline::TestSection.new(:body_a => @html)
|
123
|
+
s1.fail_validation = true
|
124
|
+
|
125
|
+
assert !s1.save
|
126
|
+
assert_equal 0,Skyline::InlineRef.count(:conditions => {:refering_id => s1.id, :refering_type => s1.class.name, :refering_column_name => "body_a"})
|
127
|
+
|
128
|
+
s2 = Skyline::TestSection.new(:body_a => s1.body_a(true), :id => '')
|
129
|
+
s2.fail_validation = false
|
130
|
+
|
131
|
+
assert s2.save
|
132
|
+
refs = Skyline::InlineRef.all(:conditions => {:refering_id => s2.id, :refering_type => s2.class.name, :refering_column_name => "body_a"})
|
133
|
+
assert_equal 2,refs.size
|
134
|
+
|
135
|
+
referable_uris = refs.map(&:referable)
|
136
|
+
uris = referable_uris.map(&:uri)
|
137
|
+
|
138
|
+
assert_equal 2,referable_uris.select{|r| r.kind_of?(Skyline::ReferableUri) }.size
|
139
|
+
assert_equal ["http://www.google.com", "http://www.digitpaint.nl"], uris
|
140
|
+
|
141
|
+
end
|
142
|
+
|
143
|
+
end
|
144
|
+
|
145
|
+
|
146
|
+
context "on an object with callbacks" do
|
147
|
+
|
148
|
+
should "not fail when after_create does another save" do
|
149
|
+
class TS1 < Skyline::TestSection
|
150
|
+
attr_accessor :skip_extra_save
|
151
|
+
after_create :after_creating
|
152
|
+
def after_creating
|
153
|
+
return if self.skip_extra_save
|
154
|
+
self.skip_extra_save = true
|
155
|
+
self.save
|
156
|
+
end
|
157
|
+
end
|
158
|
+
s1 = TS1.new(:body_a => "<a href=\"http://www.google.com\" skyline-referable-type=\"Skyline::ReferableUri\">Link1</a>link1</a>")
|
159
|
+
|
160
|
+
assert s1.save
|
161
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => s1.id, :refering_type => s1.class.name, :refering_column_name => "body_a"})
|
162
|
+
assert_nothing_raised{ s1.body_a(true) }
|
163
|
+
|
164
|
+
s1.reload
|
165
|
+
assert s1.save
|
166
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => s1.id, :refering_type => s1.class.name, :refering_column_name => "body_a"})
|
167
|
+
assert_nothing_raised{ s1.body_a(true) }
|
168
|
+
end
|
169
|
+
|
170
|
+
should "not fail when after_save does another save" do
|
171
|
+
class TS2 < Skyline::TestSection
|
172
|
+
attr_accessor :skip_extra_save
|
173
|
+
after_save :after_saving
|
174
|
+
def after_saving
|
175
|
+
return if self.skip_extra_save
|
176
|
+
self.skip_extra_save = true
|
177
|
+
self.save
|
178
|
+
end
|
179
|
+
end
|
180
|
+
s1 = TS2.new(:body_a => "<a href=\"http://www.google.com\" skyline-referable-type=\"Skyline::ReferableUri\">Link1</a>link1</a>")
|
181
|
+
|
182
|
+
assert s1.save
|
183
|
+
|
184
|
+
s1.reload
|
185
|
+
assert s1.save
|
186
|
+
assert_equal 1,Skyline::InlineRef.count(:conditions => {:refering_id => s1.id, :refering_type => s1.class.name, :refering_column_name => "body_a"})
|
187
|
+
assert_nothing_raised{ s1.body_a(true) }
|
188
|
+
end
|
189
|
+
|
190
|
+
|
191
|
+
end
|
192
|
+
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
@@ -0,0 +1,82 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Skyline::LocalesTest < ActiveSupport::TestCase
|
4
|
+
context "The locale files" do
|
5
|
+
setup do
|
6
|
+
@original_load_path = I18n.load_path.dup
|
7
|
+
@origignal_locale = I18n.locale
|
8
|
+
I18n.load_path = I18n.load_path.select{|p| (p =~ /vendor\/plugins\/skyline/)}
|
9
|
+
I18n.backend = I18n::Backend::Simple.new
|
10
|
+
|
11
|
+
@standard_locale = :"nl-NL"
|
12
|
+
@other_locales = I18n.available_locales.select{|l| l.to_s =~ /^[a-z]{2}-[A-Z]{2}$/}
|
13
|
+
@other_locales -= [@standard_locale]
|
14
|
+
end
|
15
|
+
|
16
|
+
should "should all have all entries" do
|
17
|
+
I18n.locale = @standard_locale
|
18
|
+
standard = I18n.translate("")
|
19
|
+
|
20
|
+
@other_locales.each do |l|
|
21
|
+
I18n.locale = l
|
22
|
+
other = I18n.translate("")
|
23
|
+
|
24
|
+
missing_keys = differences(standard, other)
|
25
|
+
if missing_keys.any?
|
26
|
+
puts "\n" + "-" * 80
|
27
|
+
puts "\nMissing translations in language file: #{l.to_s}"
|
28
|
+
print_differences(missing_keys)
|
29
|
+
puts "\n\n1: one entry is missing"
|
30
|
+
puts "*: complete subtree is missing"
|
31
|
+
puts "\n" + "-" * 80
|
32
|
+
end
|
33
|
+
assert_equal missing_keys.size, 0
|
34
|
+
|
35
|
+
missing_keys = differences(other, standard)
|
36
|
+
if missing_keys.any?
|
37
|
+
puts "\n" + "-" * 80
|
38
|
+
puts "\nObsolete translations in language file: #{l.to_s}"
|
39
|
+
print_differences(missing_keys)
|
40
|
+
puts "\n\n1: one entry is obsolete"
|
41
|
+
puts "*: complete subtree is obsolete"
|
42
|
+
puts "\n" + "-" * 80
|
43
|
+
end
|
44
|
+
assert_equal missing_keys.size, 0
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
teardown do
|
49
|
+
I18n.load_path = @original_load_path
|
50
|
+
I18n.backend = I18n::Backend::Simple.new
|
51
|
+
I18n.locale = @origignal_locale
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def differences(standard, other)
|
56
|
+
missing = {}
|
57
|
+
standard.keys.each do |k|
|
58
|
+
if standard[k].kind_of?(Hash)
|
59
|
+
if other[k]
|
60
|
+
d = differences(standard[k], other[k])
|
61
|
+
missing[k] = d if d.any?
|
62
|
+
else
|
63
|
+
missing[k] = "*"
|
64
|
+
end
|
65
|
+
else
|
66
|
+
missing[k] = "1" unless other.keys.include?(k)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
missing
|
70
|
+
end
|
71
|
+
|
72
|
+
def print_differences(missing_keys, indent = 2)
|
73
|
+
missing_keys.each do |k, v|
|
74
|
+
if v.kind_of?(String)
|
75
|
+
puts v + " " * indent + k.inspect
|
76
|
+
else
|
77
|
+
puts " " + " " * indent + k.inspect
|
78
|
+
print_differences(v, indent + 2)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
@@ -0,0 +1,204 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Skyline::PageTest < ActiveSupport::TestCase
|
4
|
+
context "A new page" do
|
5
|
+
setup do
|
6
|
+
@page = Factory(:page)
|
7
|
+
assert !@page.new_record?
|
8
|
+
end
|
9
|
+
|
10
|
+
should "have one variant" do
|
11
|
+
assert_equal 1, @page.variants.size
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "A page" do
|
16
|
+
setup do
|
17
|
+
@page = Factory(:page)
|
18
|
+
assert !@page.new_record?
|
19
|
+
|
20
|
+
@variant = @page.variants.first
|
21
|
+
@section_a = @variant.sections.create
|
22
|
+
@section_b = @variant.sections.create
|
23
|
+
@section_c = @variant.sections.create
|
24
|
+
|
25
|
+
@section_a.sectionable = Factory(:wysiwyg_section, :body => "Hallo, dit is de body")
|
26
|
+
@section_b.sectionable = Factory(:wysiwyg_section, :body => "Tweede sectie!")
|
27
|
+
@section_c.sectionable = Factory(:rss_section, :url => "http://www.google.nl/x.rss", :show_count => 1)
|
28
|
+
|
29
|
+
@section_a.save
|
30
|
+
@section_b.save
|
31
|
+
@section_c.save
|
32
|
+
|
33
|
+
@variant.reload
|
34
|
+
end
|
35
|
+
|
36
|
+
should "have 3 sections when 3 sections are created" do
|
37
|
+
assert_equal 3, @page.variants.first.sections.size
|
38
|
+
end
|
39
|
+
|
40
|
+
should "not be publishable when its not saved" do
|
41
|
+
@variant.data.url_part = "test"
|
42
|
+
assert_raise(StandardError) {@variant.publish}
|
43
|
+
end
|
44
|
+
|
45
|
+
should "be publishable" do
|
46
|
+
@variant.data.url_part = "test"
|
47
|
+
@variant.save
|
48
|
+
assert published_publication = @variant.publish
|
49
|
+
|
50
|
+
assert_not_equal published_publication, @variant
|
51
|
+
|
52
|
+
# published publication should have its own sections
|
53
|
+
assert_equal [], published_publication.sections.collect{|s| s.id} & @variant.sections.collect{|s| s.id}
|
54
|
+
|
55
|
+
# published publication should have its own sectionables
|
56
|
+
assert_equal [], published_publication.sections.collect{|s| s.sectionable.id} & @variant.sections.collect{|s| s.sectionable.id}
|
57
|
+
end
|
58
|
+
|
59
|
+
should "should reference the published publication via .published_publication" do
|
60
|
+
@variant.data.url_part = "test"
|
61
|
+
@variant.save
|
62
|
+
publised_publication = @variant.publish
|
63
|
+
|
64
|
+
assert_equal publised_publication, @variant.page.published_publication
|
65
|
+
assert_equal publised_publication.variant, @variant
|
66
|
+
end
|
67
|
+
|
68
|
+
should "should always keep the variant of a published publication" do
|
69
|
+
@variant.data.url_part = "test"
|
70
|
+
@variant.save
|
71
|
+
publised_publication = @variant.publish
|
72
|
+
|
73
|
+
assert_raise(StandardError) {@variant.destroy}
|
74
|
+
end
|
75
|
+
|
76
|
+
should "be destroyed when the last variant is destroyed" do
|
77
|
+
assert !@variant.page.frozen?
|
78
|
+
@variant.destroy
|
79
|
+
assert @variant.page.frozen?
|
80
|
+
end
|
81
|
+
|
82
|
+
should "have the published variant know its the published variant" do
|
83
|
+
@variant.data.url_part = "test"
|
84
|
+
@variant.save
|
85
|
+
@variant.publish
|
86
|
+
assert @variant.published_variant?
|
87
|
+
end
|
88
|
+
|
89
|
+
should "have the published variant know whether is has been modified" do
|
90
|
+
@variant.attributes = {:data_attributes => {:class => @variant.article.data_class.name, :url_part => "test"}}
|
91
|
+
@variant.save
|
92
|
+
@variant.reload
|
93
|
+
|
94
|
+
@variant.publish
|
95
|
+
assert_equal true, @variant.identical_published_variant?
|
96
|
+
@variant.data.custom_title_tag = "testing 123"
|
97
|
+
@variant.save
|
98
|
+
assert_equal false, @variant.identical_published_variant?
|
99
|
+
end
|
100
|
+
|
101
|
+
should "have the published variant know it has been modified when a section is modified via accepts_nested_attributes_for" do
|
102
|
+
@variant.attributes = {:data_attributes => {:class => @variant.article.data_class.name, :url_part => "test"}}
|
103
|
+
@variant.save
|
104
|
+
@variant.reload
|
105
|
+
|
106
|
+
@variant.publish
|
107
|
+
|
108
|
+
assert_equal true, @variant.identical_published_variant?
|
109
|
+
@variant.attributes = {"sections_attributes" => {1 => {'id' => @section_a.id, 'sectionable_attributes' => {'id' => @section_a.sectionable_id, 'body' => 'pino'}}}}
|
110
|
+
@variant.save
|
111
|
+
assert_equal false, @variant.identical_published_variant?
|
112
|
+
end
|
113
|
+
|
114
|
+
should "be able to rollback a publication" do
|
115
|
+
assert_equal [@variant], @variant.page.variants(true)
|
116
|
+
|
117
|
+
@variant.data.url_part = "test"
|
118
|
+
@variant.save
|
119
|
+
@variant.publish
|
120
|
+
|
121
|
+
assert_equal [@variant], @variant.page.variants(true)
|
122
|
+
|
123
|
+
publication = @variant.page.publications(true).first
|
124
|
+
variant = publication.rollback({'name' => "nieuwe variant"})
|
125
|
+
assert_not_equal publication, variant
|
126
|
+
assert_equal "nieuwe variant", variant.name
|
127
|
+
assert_equal publication.data.title, variant.data.title
|
128
|
+
assert_equal publication.version, variant.version
|
129
|
+
|
130
|
+
# @variant.page.variants contains exactly @variant and variant (no matter which order)
|
131
|
+
assert_equal 2, ([@variant, variant] & @variant.page.variants(true)).size
|
132
|
+
end
|
133
|
+
|
134
|
+
should "let a variant to be saved when a version attribute is set and it matches the current version" do
|
135
|
+
@variant.data.url_part = "test"
|
136
|
+
@variant.version = @variant.version
|
137
|
+
assert @variant.save
|
138
|
+
end
|
139
|
+
|
140
|
+
should "not let a variant to be saved when the actual version is higher than the version of the variant when it was retrieved" do
|
141
|
+
variant_id = @variant.id
|
142
|
+
current_version = @variant.version
|
143
|
+
|
144
|
+
# bob sends a POST request to save the Variant
|
145
|
+
bobs_variant = Skyline::Variant.find_by_id(variant_id)
|
146
|
+
bobs_variant.attributes = {:version => current_version, :data_attributes => {:class => bobs_variant.article.data_class.name, :url_part => "bob's url_part"}}
|
147
|
+
assert bobs_variant.save
|
148
|
+
|
149
|
+
# alice's save will fail
|
150
|
+
alices_variant = Skyline::Variant.find_by_id(variant_id)
|
151
|
+
bobs_variant_version = alices_variant.version
|
152
|
+
alices_variant.attributes = {:version => current_version, :data_attributes => {:class => alices_variant.article.data_class.name, :url_part => "alice's url_part"}}
|
153
|
+
assert !alices_variant.save
|
154
|
+
|
155
|
+
# after confirming she really wants to overwrite Bob's changes she can save the Variant by specifying Bob's version number
|
156
|
+
# if someone again edits the Variant between the save and confirmation the same problem and question arrises
|
157
|
+
alices_variant = Skyline::Variant.find(variant_id)
|
158
|
+
alices_variant.attributes = {:version => bobs_variant_version, :data_attributes => {:class => alices_variant.article.data_class.name, :url_part => "alice's url_part"}}
|
159
|
+
assert alices_variant.save
|
160
|
+
end
|
161
|
+
|
162
|
+
should "return the published variant as default_variant if the page is published" do
|
163
|
+
@variant.data.url_part = "test"
|
164
|
+
@variant.save
|
165
|
+
@variant.publish
|
166
|
+
assert_equal @variant, @variant.page.default_variant
|
167
|
+
end
|
168
|
+
|
169
|
+
should "return the last published variant as default_variant if the page is not published *anymore*" do
|
170
|
+
@variant.attributes = {:data_attributes => {:class => @variant.article.data_class.name, :url_part => "test"}}
|
171
|
+
@variant.save
|
172
|
+
@variant.reload
|
173
|
+
|
174
|
+
@variant.publish
|
175
|
+
@variant.page.depublish
|
176
|
+
assert_equal @variant, @variant.page.default_variant(true)
|
177
|
+
|
178
|
+
new_variant = @variant.clone
|
179
|
+
new_variant.save
|
180
|
+
new_variant.publish
|
181
|
+
|
182
|
+
new_variant.page.depublish
|
183
|
+
|
184
|
+
@variant.reload
|
185
|
+
assert_equal new_variant, @variant.page.default_variant(true)
|
186
|
+
end
|
187
|
+
|
188
|
+
should "return the last edited variant as default_variant if the page is *never* published" do
|
189
|
+
@variant.attributes = {:data_attributes => {:class => @variant.article.data_class.name, :url_part => "test"}}
|
190
|
+
@variant.save
|
191
|
+
@variant.reload
|
192
|
+
|
193
|
+
Skyline::Page.connection.execute("UPDATE skyline_article_versions SET updated_at='2009-01-01' WHERE id=#{@variant.id}")
|
194
|
+
assert_equal @variant, @variant.page.default_variant(true)
|
195
|
+
|
196
|
+
new_variant = @variant.clone
|
197
|
+
new_variant.save
|
198
|
+
|
199
|
+
@variant.article.set_default_variant!(new_variant)
|
200
|
+
|
201
|
+
assert_equal new_variant, @variant.page.default_variant(true)
|
202
|
+
end
|
203
|
+
end
|
204
|
+
end
|