noodall-ui 0.0.2
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.
- data/.document +5 -0
- data/.gitignore +29 -0
- data/Gemfile +29 -0
- data/Gemfile.lock +205 -0
- data/LICENSE +20 -0
- data/README.rdoc +17 -0
- data/Rakefile +17 -0
- data/app/controllers/noodall/admin/assets_controller.rb +241 -0
- data/app/controllers/noodall/admin/base_controller.rb +8 -0
- data/app/controllers/noodall/admin/components_controller.rb +22 -0
- data/app/controllers/noodall/admin/groups_controller.rb +11 -0
- data/app/controllers/noodall/admin/nodes_controller.rb +159 -0
- data/app/controllers/noodall/nodes_controller.rb +41 -0
- data/app/helpers/noodall/admin/assets_helper.rb +15 -0
- data/app/helpers/noodall/admin/base_helper.rb +14 -0
- data/app/helpers/noodall/admin/nodes_helper.rb +37 -0
- data/app/helpers/noodall/components_helper.rb +38 -0
- data/app/helpers/noodall/layout_helper.rb +25 -0
- data/app/helpers/noodall/nodes_helper.rb +72 -0
- data/app/models/asset.rb +103 -0
- data/app/views/layouts/noodall_admin.html.erb +66 -0
- data/app/views/noodall/admin/assets/_browser.html.erb +28 -0
- data/app/views/noodall/admin/assets/_form.html.erb +54 -0
- data/app/views/noodall/admin/assets/_menu.html.erb +8 -0
- data/app/views/noodall/admin/assets/_show.html.erb +48 -0
- data/app/views/noodall/admin/assets/_tags.html.erb +13 -0
- data/app/views/noodall/admin/assets/add.html.erb +10 -0
- data/app/views/noodall/admin/assets/form.html.erb +12 -0
- data/app/views/noodall/admin/assets/form.js.erb +2 -0
- data/app/views/noodall/admin/assets/index.html.erb +65 -0
- data/app/views/noodall/admin/assets/index.js.erb +1 -0
- data/app/views/noodall/admin/assets/show.html.erb +3 -0
- data/app/views/noodall/admin/assets/show.js.erb +1 -0
- data/app/views/noodall/admin/assets/tags.html.erb +3 -0
- data/app/views/noodall/admin/assets/tags.js.erb +1 -0
- data/app/views/noodall/admin/components/_component.erb +0 -0
- data/app/views/noodall/admin/nodes/_body.html.erb +5 -0
- data/app/views/noodall/admin/nodes/_branch.html.erb +10 -0
- data/app/views/noodall/admin/nodes/_home.html.erb +27 -0
- data/app/views/noodall/admin/nodes/_slot_form.html.erb +16 -0
- data/app/views/noodall/admin/nodes/change_template.html.erb +38 -0
- data/app/views/noodall/admin/nodes/index.html.erb +69 -0
- data/app/views/noodall/admin/nodes/new.html.erb +30 -0
- data/app/views/noodall/admin/nodes/show.html.erb +144 -0
- data/app/views/noodall/admin/nodes/tree.html.erb +3 -0
- data/app/views/noodall/admin/nodes/tree.js.erb +2 -0
- data/app/views/noodall/components/_component.erb +0 -0
- data/app/views/noodall/nodes/search.html.erb +14 -0
- data/app/views/noodall/nodes/sitemap.html.erb +3 -0
- data/app/views/noodall/nodes/sitemap.xml.rxml +22 -0
- data/config/application.rb +29 -0
- data/config/boot.rb +13 -0
- data/config/cucumber.yml +8 -0
- data/config/database.yml +14 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +30 -0
- data/config/environments/production.rb +50 -0
- data/config/environments/test.rb +35 -0
- data/config/locales/en.yml +5 -0
- data/config.ru +4 -0
- data/demo/controllers/application_controller.rb +22 -0
- data/demo/initializers/dragonfly.rb +1 -0
- data/demo/initializers/mongo_mapper.rb +13 -0
- data/demo/initializers/noodall.rb +2 -0
- data/demo/initializers/secret_token.rb +7 -0
- data/demo/initializers/session_store.rb +8 -0
- data/demo/models/gallery.rb +17 -0
- data/demo/models/page_a.rb +9 -0
- data/demo/models/page_b.rb +4 -0
- data/demo/models/page_c.rb +7 -0
- data/demo/models/promo.rb +22 -0
- data/demo/models/user.rb +12 -0
- data/demo/routes.rb +3 -0
- data/demo/seeds.rb +8 -0
- data/demo/views/admin/components/_gallery.html.erb +49 -0
- data/demo/views/admin/components/_promo.html.erb +34 -0
- data/demo/views/admin/nodes/_page_a.html.erb +47 -0
- data/demo/views/admin/nodes/_page_b.html.erb +35 -0
- data/demo/views/admin/nodes/_page_c.html.erb +35 -0
- data/demo/views/components/_gallery.html.erb +23 -0
- data/demo/views/components/_promo.html.erb +5 -0
- data/demo/views/layouts/application.html.erb +121 -0
- data/demo/views/nodes/page_a.html.erb +14 -0
- data/demo/views/nodes/page_b.html.erb +9 -0
- data/demo/views/nodes/page_c.html.erb +12 -0
- data/features/change_templates.feature +25 -0
- data/features/content_templates.feature +18 -0
- data/features/gallery_component.feature +22 -0
- data/features/manage_assets.feature +28 -0
- data/features/manage_content_tree.feature +42 -0
- data/features/preview.feature +8 -0
- data/features/promo_component.feature +18 -0
- data/features/publish_content.feature +28 -0
- data/features/search.feature +12 -0
- data/features/sitemap.feature +9 -0
- data/features/step_definitions/asset_steps.rb +66 -0
- data/features/step_definitions/cms_node_steps.rb +126 -0
- data/features/step_definitions/component_steps.rb +137 -0
- data/features/step_definitions/content_steps.rb +187 -0
- data/features/step_definitions/date_select_steps.rb +39 -0
- data/features/step_definitions/groups_access_steps.rb +92 -0
- data/features/step_definitions/node_steps.rb +25 -0
- data/features/step_definitions/preview_steps.rb +7 -0
- data/features/step_definitions/pubish_content_steps.rb +45 -0
- data/features/step_definitions/search_steps.rb +21 -0
- data/features/step_definitions/sign_in_steps.rb +3 -0
- data/features/step_definitions/web_steps.rb +219 -0
- data/features/support/env.rb +52 -0
- data/features/support/logo.png +0 -0
- data/features/support/paths.rb +56 -0
- data/generators/component/USAGE +8 -0
- data/generators/component/component_generator.rb +35 -0
- data/generators/component/lib/insert_commands.rb +61 -0
- data/generators/component/templates/admin_template.html.erb +50 -0
- data/generators/component/templates/factory.rb +5 -0
- data/generators/component/templates/model.rb +8 -0
- data/generators/component/templates/template.html.erb +41 -0
- data/generators/node/USAGE +8 -0
- data/generators/node/lib/insert_commands.rb +47 -0
- data/generators/node/node_generator.rb +35 -0
- data/generators/node/templates/admin_template.html.erb +49 -0
- data/generators/node/templates/factory.rb +5 -0
- data/generators/node/templates/model.rb +11 -0
- data/generators/node/templates/template.html.erb +41 -0
- data/generators/node_features/USAGE +8 -0
- data/generators/node_features/node_features_generator.rb +16 -0
- data/lib/generators/noodall/node/USAGE +8 -0
- data/lib/generators/noodall/node/node_generator.rb +21 -0
- data/lib/generators/noodall/node/templates/admin_template.html.erb +52 -0
- data/lib/generators/noodall/node/templates/factory.rb +8 -0
- data/lib/generators/noodall/node/templates/model.rb +13 -0
- data/lib/generators/noodall/node/templates/template.html.erb +12 -0
- data/lib/noodall/canable.rb +1 -0
- data/lib/noodall/dragonfly.rb +23 -0
- data/lib/noodall/engine.rb +13 -0
- data/lib/noodall/permalinks.rb +12 -0
- data/lib/noodall/routes.rb +45 -0
- data/lib/noodall/ui/version.rb +5 -0
- data/lib/noodall/ui.rb +17 -0
- data/lib/noodall/video_thumbnail_encoder.rb +31 -0
- data/lib/noodall-ui.rb +6 -0
- data/lib/tasks/cucumber.rake +53 -0
- data/log/.gitignore +0 -0
- data/noodall-ui.gemspec +28 -0
- data/public/favicon.ico +0 -0
- data/public/images/admin/add-small.png +0 -0
- data/public/images/admin/add.png +0 -0
- data/public/images/admin/add_file.gif +0 -0
- data/public/images/admin/advanced.gif +0 -0
- data/public/images/admin/back.png +0 -0
- data/public/images/admin/cancel-small.gif +0 -0
- data/public/images/admin/cancel.gif +0 -0
- data/public/images/admin/change-bg.gif +0 -0
- data/public/images/admin/change.gif +0 -0
- data/public/images/admin/check.png +0 -0
- data/public/images/admin/clear.gif +0 -0
- data/public/images/admin/close.png +0 -0
- data/public/images/admin/create.gif +0 -0
- data/public/images/admin/delete.gif +0 -0
- data/public/images/admin/delete.png +0 -0
- data/public/images/admin/doc-icon.png +0 -0
- data/public/images/admin/document.png +0 -0
- data/public/images/admin/down.png +0 -0
- data/public/images/admin/download.png +0 -0
- data/public/images/admin/draft.gif +0 -0
- data/public/images/admin/draft.png +0 -0
- data/public/images/admin/edit.gif +0 -0
- data/public/images/admin/edit.png +0 -0
- data/public/images/admin/image.png +0 -0
- data/public/images/admin/image_small.png +0 -0
- data/public/images/admin/info-white.png +0 -0
- data/public/images/admin/info.png +0 -0
- data/public/images/admin/media.gif +0 -0
- data/public/images/admin/nav-2.gif +0 -0
- data/public/images/admin/nav.gif +0 -0
- data/public/images/admin/next.png +0 -0
- data/public/images/admin/no-type-icon.png +0 -0
- data/public/images/admin/pagination.gif +0 -0
- data/public/images/admin/pdf-icon.png +0 -0
- data/public/images/admin/prev.png +0 -0
- data/public/images/admin/preview.gif +0 -0
- data/public/images/admin/publish.gif +0 -0
- data/public/images/admin/remove.gif +0 -0
- data/public/images/admin/reset.gif +0 -0
- data/public/images/admin/select_image.gif +0 -0
- data/public/images/admin/select_images.gif +0 -0
- data/public/images/admin/set.gif +0 -0
- data/public/images/admin/sort.png +0 -0
- data/public/images/admin/tag.png +0 -0
- data/public/images/admin/templates/article-page.gif +0 -0
- data/public/images/admin/templates/articles-list.gif +0 -0
- data/public/images/admin/templates/course-page.gif +0 -0
- data/public/images/admin/templates/event-page.gif +0 -0
- data/public/images/admin/templates/events-list.gif +0 -0
- data/public/images/admin/templates/home.gif +0 -0
- data/public/images/admin/templates/landing-page.gif +0 -0
- data/public/images/admin/templates/page-a.gif +0 -0
- data/public/images/admin/templates/page-b.gif +0 -0
- data/public/images/admin/templates/school-landing-page.gif +0 -0
- data/public/images/admin/templates/study-landing-page.gif +0 -0
- data/public/images/admin/top-level.png +0 -0
- data/public/images/admin/top-level_small.png +0 -0
- data/public/images/admin/txt-icon.png +0 -0
- data/public/images/admin/uncheck.png +0 -0
- data/public/images/admin/up.png +0 -0
- data/public/images/admin/update.gif +0 -0
- data/public/images/admin/upload.png +0 -0
- data/public/images/admin/video.png +0 -0
- data/public/images/admin/view.png +0 -0
- data/public/images/admin/xls-icon.png +0 -0
- data/public/images/fancybox/blank.gif +0 -0
- data/public/images/fancybox/fancy_close.png +0 -0
- data/public/images/fancybox/fancy_loading.png +0 -0
- data/public/images/fancybox/fancy_nav_left.png +0 -0
- data/public/images/fancybox/fancy_nav_right.png +0 -0
- data/public/images/fancybox/fancy_shadow_e.png +0 -0
- data/public/images/fancybox/fancy_shadow_n.png +0 -0
- data/public/images/fancybox/fancy_shadow_ne.png +0 -0
- data/public/images/fancybox/fancy_shadow_nw.png +0 -0
- data/public/images/fancybox/fancy_shadow_s.png +0 -0
- data/public/images/fancybox/fancy_shadow_se.png +0 -0
- data/public/images/fancybox/fancy_shadow_sw.png +0 -0
- data/public/images/fancybox/fancy_shadow_w.png +0 -0
- data/public/images/fancybox/fancy_title_left.png +0 -0
- data/public/images/fancybox/fancy_title_main.png +0 -0
- data/public/images/fancybox/fancy_title_over.png +0 -0
- data/public/images/fancybox/fancy_title_right.png +0 -0
- data/public/images/fancybox/fancybox-x.png +0 -0
- data/public/images/fancybox/fancybox-y.png +0 -0
- data/public/images/fancybox/fancybox.png +0 -0
- data/public/images/plupload/backgrounds.gif +0 -0
- data/public/images/plupload/buttons-disabled.png +0 -0
- data/public/images/plupload/buttons.png +0 -0
- data/public/images/plupload/delete.gif +0 -0
- data/public/images/plupload/done.gif +0 -0
- data/public/images/plupload/error.gif +0 -0
- data/public/images/plupload/throbber.gif +0 -0
- data/public/images/plupload/transp50.png +0 -0
- data/public/javascripts/admin/application.js +586 -0
- data/public/javascripts/admin/asset_edit.js +30 -0
- data/public/javascripts/admin/assets.js +98 -0
- data/public/javascripts/admin/gotham.font.js +20 -0
- data/public/javascripts/admin/jquery.jqtransform.js +366 -0
- data/public/javascripts/admin/nodes.js +30 -0
- data/public/javascripts/admin/tiny_mce_config.js +118 -0
- data/public/javascripts/ajaxify.js +20 -0
- data/public/javascripts/application.js +37 -0
- data/public/javascripts/carousel.lite.js +1 -0
- data/public/javascripts/cufon-yui.js +8 -0
- data/public/javascripts/fancybox.js +1078 -0
- data/public/javascripts/plupload/gears_init.js +86 -0
- data/public/javascripts/plupload/jquery.plupload.queue.min.js +1 -0
- data/public/javascripts/plupload/plupload.flash.swf +0 -0
- data/public/javascripts/plupload/plupload.full.min.js +1 -0
- data/public/javascripts/plupload/plupload.silverlight.xap +0 -0
- data/public/javascripts/rails.js +132 -0
- data/public/javascripts/tiny_mce/jquery.tinymce.js +1 -0
- data/public/javascripts/tiny_mce/langs/en.js +169 -0
- data/public/javascripts/tiny_mce/license.txt +504 -0
- data/public/javascripts/tiny_mce/plugins/advhr/css/advhr.css +5 -0
- data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js +57 -0
- data/public/javascripts/tiny_mce/plugins/advhr/js/rule.js +43 -0
- data/public/javascripts/tiny_mce/plugins/advhr/langs/en_dlg.js +5 -0
- data/public/javascripts/tiny_mce/plugins/advhr/rule.htm +57 -0
- data/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css +13 -0
- data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js +50 -0
- data/public/javascripts/tiny_mce/plugins/advimage/image.htm +232 -0
- data/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/advimage/js/image.js +443 -0
- data/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js +43 -0
- data/public/javascripts/tiny_mce/plugins/advlink/css/advlink.css +8 -0
- data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js +61 -0
- data/public/javascripts/tiny_mce/plugins/advlink/js/advlink.js +528 -0
- data/public/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js +52 -0
- data/public/javascripts/tiny_mce/plugins/advlink/link.htm +333 -0
- data/public/javascripts/tiny_mce/plugins/advlist/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/advlist/editor_plugin_src.js +154 -0
- data/public/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +117 -0
- data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js +422 -0
- data/public/javascripts/tiny_mce/plugins/autosave/langs/en.js +4 -0
- data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +120 -0
- data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +127 -0
- data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js +82 -0
- data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js +43 -0
- data/public/javascripts/tiny_mce/plugins/emotions/emotions.htm +40 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/emotions/js/emotions.js +22 -0
- data/public/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js +20 -0
- data/public/javascripts/tiny_mce/plugins/example/dialog.htm +22 -0
- data/public/javascripts/tiny_mce/plugins/example/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/example/editor_plugin_src.js +84 -0
- data/public/javascripts/tiny_mce/plugins/example/img/example.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/example/js/dialog.js +19 -0
- data/public/javascripts/tiny_mce/plugins/example/langs/en.js +3 -0
- data/public/javascripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/css/fullpage.css +182 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +149 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/fullpage.htm +571 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/js/fullpage.js +471 -0
- data/public/javascripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +85 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +148 -0
- data/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +109 -0
- data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin_src.js +54 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +635 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
- data/public/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
- data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +83 -0
- data/public/javascripts/tiny_mce/plugins/layer/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/layer/editor_plugin_src.js +212 -0
- data/public/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +136 -0
- data/public/javascripts/tiny_mce/plugins/media/css/content.css +6 -0
- data/public/javascripts/tiny_mce/plugins/media/css/media.css +16 -0
- data/public/javascripts/tiny_mce/plugins/media/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/media/editor_plugin_src.js +414 -0
- data/public/javascripts/tiny_mce/plugins/media/img/flash.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/flv_player.swf +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/realmedia.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/trans.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/img/windowsmedia.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/media/js/embed.js +73 -0
- data/public/javascripts/tiny_mce/plugins/media/js/media.js +630 -0
- data/public/javascripts/tiny_mce/plugins/media/langs/en_dlg.js +103 -0
- data/public/javascripts/tiny_mce/plugins/media/media.htm +817 -0
- data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +53 -0
- data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +90 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/css/content.css +1 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +77 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js +929 -0
- data/public/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -0
- data/public/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -0
- data/public/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
- data/public/javascripts/tiny_mce/plugins/paste/pastetext.htm +27 -0
- data/public/javascripts/tiny_mce/plugins/paste/pasteword.htm +21 -0
- data/public/javascripts/tiny_mce/plugins/preview/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/preview/editor_plugin_src.js +53 -0
- data/public/javascripts/tiny_mce/plugins/preview/example.html +28 -0
- data/public/javascripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
- data/public/javascripts/tiny_mce/plugins/preview/preview.html +17 -0
- data/public/javascripts/tiny_mce/plugins/print/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/print/editor_plugin_src.js +34 -0
- data/public/javascripts/tiny_mce/plugins/save/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/save/editor_plugin_src.js +101 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +57 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +130 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +16 -0
- data/public/javascripts/tiny_mce/plugins/searchreplace/searchreplace.htm +99 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +341 -0
- data/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
- data/public/javascripts/tiny_mce/plugins/style/css/props.css +13 -0
- data/public/javascripts/tiny_mce/plugins/style/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/style/editor_plugin_src.js +55 -0
- data/public/javascripts/tiny_mce/plugins/style/js/props.js +641 -0
- data/public/javascripts/tiny_mce/plugins/style/langs/en_dlg.js +63 -0
- data/public/javascripts/tiny_mce/plugins/style/props.htm +726 -0
- data/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +112 -0
- data/public/javascripts/tiny_mce/plugins/table/cell.htm +178 -0
- data/public/javascripts/tiny_mce/plugins/table/css/cell.css +17 -0
- data/public/javascripts/tiny_mce/plugins/table/css/row.css +25 -0
- data/public/javascripts/tiny_mce/plugins/table/css/table.css +13 -0
- data/public/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/table/editor_plugin_src.js +1118 -0
- data/public/javascripts/tiny_mce/plugins/table/js/cell.js +286 -0
- data/public/javascripts/tiny_mce/plugins/table/js/merge_cells.js +27 -0
- data/public/javascripts/tiny_mce/plugins/table/js/row.js +237 -0
- data/public/javascripts/tiny_mce/plugins/table/js/table.js +449 -0
- data/public/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +74 -0
- data/public/javascripts/tiny_mce/plugins/table/merge_cells.htm +32 -0
- data/public/javascripts/tiny_mce/plugins/table/row.htm +155 -0
- data/public/javascripts/tiny_mce/plugins/table/table.htm +187 -0
- data/public/javascripts/tiny_mce/plugins/template/blank.htm +12 -0
- data/public/javascripts/tiny_mce/plugins/template/css/template.css +23 -0
- data/public/javascripts/tiny_mce/plugins/template/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/template/editor_plugin_src.js +159 -0
- data/public/javascripts/tiny_mce/plugins/template/js/template.js +106 -0
- data/public/javascripts/tiny_mce/plugins/template/langs/en_dlg.js +15 -0
- data/public/javascripts/tiny_mce/plugins/template/template.htm +32 -0
- data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +76 -0
- data/public/javascripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +98 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +141 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +141 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +148 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm +141 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm +161 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +144 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm +161 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +126 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js +63 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +231 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +62 -0
- data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +32 -0
- data/public/javascripts/tiny_mce/themes/advanced/about.htm +54 -0
- data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +26 -0
- data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +53 -0
- data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +73 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1167 -0
- data/public/javascripts/tiny_mce/themes/advanced/image.htm +80 -0
- data/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/about.js +72 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/anchor.js +37 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/charmap.js +335 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js +253 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/image.js +245 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/link.js +156 -0
- data/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js +62 -0
- data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +62 -0
- data/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +51 -0
- data/public/javascripts/tiny_mce/themes/advanced/link.htm +58 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css +35 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +117 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +213 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +35 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +116 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +215 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
- data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
- data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +26 -0
- data/public/javascripts/tiny_mce/themes/simple/editor_template.js +1 -0
- data/public/javascripts/tiny_mce/themes/simple/editor_template_src.js +85 -0
- data/public/javascripts/tiny_mce/themes/simple/img/icons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/simple/langs/en.js +11 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/default/content.css +25 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css +32 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
- data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
- data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
- data/public/javascripts/tiny_mce/tiny_mce_popup.js +5 -0
- data/public/javascripts/tiny_mce/tiny_mce_src.js +13134 -0
- data/public/javascripts/tiny_mce/utils/editable_selects.js +70 -0
- data/public/javascripts/tiny_mce/utils/form_utils.js +200 -0
- data/public/javascripts/tiny_mce/utils/mctabs.js +77 -0
- data/public/javascripts/tiny_mce/utils/validate.js +220 -0
- data/public/stylesheets/admin/fancybox.css +341 -0
- data/public/stylesheets/admin/forms.css +520 -0
- data/public/stylesheets/admin/handheld.css +6 -0
- data/public/stylesheets/admin/ie.css +118 -0
- data/public/stylesheets/admin/ie6.css +23 -0
- data/public/stylesheets/admin/ie8.css +16 -0
- data/public/stylesheets/admin/layout.css +723 -0
- data/public/stylesheets/admin/print.css +27 -0
- data/public/stylesheets/admin/reset.css +81 -0
- data/public/stylesheets/admin/skin.css +698 -0
- data/public/stylesheets/admin/tinymce.css +2 -0
- data/public/stylesheets/admin/typography.css +207 -0
- data/public/stylesheets/ellipsis.xml +15 -0
- data/public/stylesheets/fancybox.css +313 -0
- data/public/stylesheets/forms.css +7 -0
- data/public/stylesheets/ie.css +12 -0
- data/public/stylesheets/ie8.css +8 -0
- data/public/stylesheets/layout.css +31 -0
- data/public/stylesheets/plupload.queue.css +181 -0
- data/public/stylesheets/reset.css +84 -0
- data/public/stylesheets/sass/forms.scss +7 -0
- data/public/stylesheets/sass/ie.scss +12 -0
- data/public/stylesheets/sass/ie8.scss +8 -0
- data/public/stylesheets/sass/layout.scss +45 -0
- data/public/stylesheets/sass/skin.scss +35 -0
- data/public/stylesheets/sass/typography.scss +162 -0
- data/public/stylesheets/skin.css +22 -0
- data/public/stylesheets/typography.css +162 -0
- data/script/cucumber +10 -0
- data/script/rails +6 -0
- data/spec/factories/asset.rb +16 -0
- data/spec/factories/component.rb +9 -0
- data/spec/factories/node.rb +15 -0
- data/spec/factories/user.rb +5 -0
- data/spec/files/beef.png +0 -0
- data/spec/files/get_video.flv +0 -0
- data/spec/files/test.pdf +0 -0
- data/spec/noodall-ui_spec.rb +9 -0
- data/spec/spec_helper.rb +4 -0
- data/tmp/.gitignore +0 -0
- metadata +685 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
2
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
3
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
4
|
+
|
|
5
|
+
<!--
|
|
6
|
+
HTML5 - When your ready to do so
|
|
7
|
+
<!doctype html>
|
|
8
|
+
<html lang="en">
|
|
9
|
+
-->
|
|
10
|
+
|
|
11
|
+
<head>
|
|
12
|
+
|
|
13
|
+
<title><%#= Settings.site_name %> - <%= page_title %></title>
|
|
14
|
+
|
|
15
|
+
<!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
|
|
16
|
+
Remove this if you use the .htaccess -->
|
|
17
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
|
18
|
+
|
|
19
|
+
<!-- Mobile Viewport Fix
|
|
20
|
+
j.mp/mobileviewport & davidbcalhoun.com/2010/viewport-metatag
|
|
21
|
+
device-width : Occupy full width of the screen in its current orientation
|
|
22
|
+
initial-scale = 1.0 retains dimensions instead of zooming out if page height > device height
|
|
23
|
+
maximum-scale = 1.0 retains dimensions instead of zooming in if page width < device width
|
|
24
|
+
-->
|
|
25
|
+
<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">
|
|
26
|
+
|
|
27
|
+
<meta name="description" content="<%=h page_description %>" />
|
|
28
|
+
<meta name="keywords" content="<%=h page_keywords %>" />
|
|
29
|
+
|
|
30
|
+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
31
|
+
<meta http-equiv="content-language" content="en" />
|
|
32
|
+
|
|
33
|
+
<meta name="author" content="<%#= Settings.site_name %>" />
|
|
34
|
+
<meta name="copyright" content="<%= Time.now.year %>, <%#= Settings.site_name %>" />
|
|
35
|
+
|
|
36
|
+
<meta name="Geo.Country" content="GB" />
|
|
37
|
+
<meta name="Geo.Region" content="GB-BST" />
|
|
38
|
+
|
|
39
|
+
<!-- so:Style Sheets -->
|
|
40
|
+
<%= stylesheet_link_tag 'reset', 'layout', 'skin', 'typography', 'forms', :media => 'screen,tv,projection' %>
|
|
41
|
+
<!--[if lte IE 8]><link href="/stylesheets/ie8.css" media="screen" rel="Stylesheet" type="text/css" /><![endif]-->
|
|
42
|
+
<!--[if lte IE 7]><link href="/stylesheets/ie.css" media="screen" rel="Stylesheet" type="text/css" /><![endif]-->
|
|
43
|
+
<!-- eo:Style Sheets -->
|
|
44
|
+
|
|
45
|
+
<!-- Place favicon.ico and apple-touch-icon.png in the root of your domain and delete these references -->
|
|
46
|
+
<link rel="shortcut icon" href="/favicon.ico">
|
|
47
|
+
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
|
|
48
|
+
|
|
49
|
+
<!-- so:JavaScripts -->
|
|
50
|
+
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
|
|
51
|
+
<script type="text/javascript">
|
|
52
|
+
google.load("jquery", "1.4");
|
|
53
|
+
google.load("swfobject", "2.2");
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
<%= javascript_include_tag 'rails', 'cufon-yui', 'fancybox', 'carousel.lite', 'application' %>
|
|
57
|
+
<%= csrf_meta_tag %>
|
|
58
|
+
|
|
59
|
+
<!-- so:JavaScripts -->
|
|
60
|
+
|
|
61
|
+
<%= yield :head %>
|
|
62
|
+
|
|
63
|
+
<!--
|
|
64
|
+
Asynchronous google analytics: mathiasbynens.be/notes/async-analytics-snippet
|
|
65
|
+
change the UA-XXXXX-X to be your site's ID
|
|
66
|
+
Now at the top cos google said so!
|
|
67
|
+
-->
|
|
68
|
+
<script>
|
|
69
|
+
var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
|
|
70
|
+
(function(d, t) {
|
|
71
|
+
var g = d.createElement(t),
|
|
72
|
+
s = d.getElementsByTagName(t)[0];
|
|
73
|
+
g.async = true;
|
|
74
|
+
g.src = '//www.google-analytics.com/ga.js';
|
|
75
|
+
s.parentNode.insertBefore(g, s);
|
|
76
|
+
})(document, 'script');
|
|
77
|
+
</script>
|
|
78
|
+
|
|
79
|
+
</head>
|
|
80
|
+
|
|
81
|
+
</head>
|
|
82
|
+
<body id="<%= page_id %>" class="<%= page_class %>">
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
<div id="wrapper">
|
|
86
|
+
|
|
87
|
+
<div id="header">
|
|
88
|
+
<h1><a href="/" id="logo">Site Name</a></h1>
|
|
89
|
+
</div>
|
|
90
|
+
|
|
91
|
+
<!-- so:main-navigation -->
|
|
92
|
+
<ul class="nav" id="main-nav">
|
|
93
|
+
<li></li>
|
|
94
|
+
</ul>
|
|
95
|
+
<!-- so:main-navigation -->
|
|
96
|
+
|
|
97
|
+
<div id="content">
|
|
98
|
+
<%= yield %>
|
|
99
|
+
</div>
|
|
100
|
+
|
|
101
|
+
<%= form_tag(noodall_search_path, :method => :get, :class => 'search') do %>
|
|
102
|
+
<%= text_field_tag :q, params[:q], :value => 'Enter keyword(s) here' %>
|
|
103
|
+
<%= submit_tag 'Search' %>
|
|
104
|
+
<% end %>
|
|
105
|
+
|
|
106
|
+
<div id="footer">
|
|
107
|
+
<!-- so:main-navigation -->
|
|
108
|
+
<ul class="nav" id="footer-nav">
|
|
109
|
+
<li></li>
|
|
110
|
+
</ul>
|
|
111
|
+
<!-- eo:main-navigation -->
|
|
112
|
+
|
|
113
|
+
<%= yield :footer %>
|
|
114
|
+
</div>
|
|
115
|
+
|
|
116
|
+
</div>
|
|
117
|
+
<!--[if IE]><script type="text/javascript"> Cufon.now(); </script><![endif]-->
|
|
118
|
+
<!-- Last Updated: <%#= GlobalUpdateTime::Stamp.read %> -->
|
|
119
|
+
|
|
120
|
+
</body>
|
|
121
|
+
</html>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<h1><%=h @node.title %></h1>
|
|
2
|
+
|
|
3
|
+
<%= component(@node, 'main_slot_0') %>
|
|
4
|
+
|
|
5
|
+
<div id="body"><%= @node.body.html_safe %></div>
|
|
6
|
+
|
|
7
|
+
<%= component(@node, 'small_slot_0') %>
|
|
8
|
+
<%= component(@node, 'small_slot_1') %>
|
|
9
|
+
<%= component(@node, 'small_slot_2') %>
|
|
10
|
+
<%= component(@node, 'small_slot_3') %>
|
|
11
|
+
|
|
12
|
+
<%= component(@node, 'wide_slot_0') %>
|
|
13
|
+
<%= component(@node, 'wide_slot_1') %>
|
|
14
|
+
<%= component(@node, 'wide_slot_2') %>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<h1><%=h @node.title %></h1>
|
|
2
|
+
|
|
3
|
+
<%= component(@node, 'main_slot_0') %>
|
|
4
|
+
|
|
5
|
+
<div id="body"><%= @node.body.html_safe %></div>
|
|
6
|
+
|
|
7
|
+
<%= component(@node, 'wide_slot_0') %>
|
|
8
|
+
<%= component(@node, 'wide_slot_1') %>
|
|
9
|
+
<%= component(@node, 'wide_slot_2') %>
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@cms
|
|
2
|
+
Feature: Change templates
|
|
3
|
+
In order to change the style of a page without the need to delete it a website editor should be able to change the template of a node
|
|
4
|
+
|
|
5
|
+
Scenario: Change template
|
|
6
|
+
Given a page exists using the "Page A" template
|
|
7
|
+
And I am editing the content
|
|
8
|
+
When I follow "Change Template"
|
|
9
|
+
And I choose "Page C"
|
|
10
|
+
And I press "Change"
|
|
11
|
+
And I visit the content page
|
|
12
|
+
Then the page should be in the "Page C" template
|
|
13
|
+
|
|
14
|
+
Scenario: Prevent Template Change if sub content not allowed in new template
|
|
15
|
+
Given a page exists using the "Page A" template
|
|
16
|
+
And that page has "Page A" subpages
|
|
17
|
+
And that page has a "Page A" parent
|
|
18
|
+
And I am editing the content
|
|
19
|
+
When I follow "Change Template"
|
|
20
|
+
And I choose "Page C"
|
|
21
|
+
And I press "Change"
|
|
22
|
+
Then I should see "Template cannot be changed as sub content is not allowed in this template"
|
|
23
|
+
When I visit the content page
|
|
24
|
+
Then the page should be in the "Page A" template
|
|
25
|
+
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Feature: Content Templates
|
|
2
|
+
In order to change how the content looks and acts on the website a website editor will be able to select from predetermined templates
|
|
3
|
+
|
|
4
|
+
Scenario: Create Root Content
|
|
5
|
+
Given I create a new root
|
|
6
|
+
Then I should be able select a template from the following:
|
|
7
|
+
| Template |
|
|
8
|
+
| Page A |
|
|
9
|
+
| Page C |
|
|
10
|
+
|
|
11
|
+
Scenario Outline: Create Child Content
|
|
12
|
+
Given I create a new child under an ancestor in "<Ancestor Template Name>" template
|
|
13
|
+
Then I should be able select a template from the "<Allowed Templates>"
|
|
14
|
+
|
|
15
|
+
Examples:
|
|
16
|
+
| Ancestor Template Name | Allowed Templates |
|
|
17
|
+
| Page A | Page A, Page B, Page C |
|
|
18
|
+
| Page C | Page C, Page B |
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
@wip
|
|
2
|
+
Feature: Gallery Component
|
|
3
|
+
To provide the ability to show many images on the website, website editors will be able
|
|
4
|
+
to create a gallery of images within a template
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given I am signed in as a website editor
|
|
8
|
+
|
|
9
|
+
@javascript
|
|
10
|
+
Scenario: Gallery Module
|
|
11
|
+
Given I am editing content
|
|
12
|
+
When I click a "Wide" component slot
|
|
13
|
+
And select the "Gallery" component
|
|
14
|
+
And fill in the following within the component:
|
|
15
|
+
| Title | Big Promotion |
|
|
16
|
+
| Description | A really big thing is happening! |
|
|
17
|
+
Then I add some images to from the asset library
|
|
18
|
+
And I press "Save" within the component
|
|
19
|
+
And I press "Publish"
|
|
20
|
+
And I visit the content page
|
|
21
|
+
Then I should see the gallery thumbnails
|
|
22
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Feature: Manage assets
|
|
2
|
+
In order to allow easy access to documents whilst editing a website editor will be able to easily upload, browse and modify documents
|
|
3
|
+
|
|
4
|
+
Scenario: Upload an Asset
|
|
5
|
+
Given I am using the asset library
|
|
6
|
+
When I upload a file
|
|
7
|
+
And enter tags
|
|
8
|
+
Then it should appear in the asset library
|
|
9
|
+
When I follow "Show"
|
|
10
|
+
Then I should see "Viewing"
|
|
11
|
+
When I follow "Edit"
|
|
12
|
+
Then I should see "Editing Asset"
|
|
13
|
+
|
|
14
|
+
Scenario: Browse Assets
|
|
15
|
+
Given files have been uploaded to the asset library
|
|
16
|
+
When I am using the asset library
|
|
17
|
+
Then I should be able to browse assets by content type
|
|
18
|
+
And I should be able to browse assets by tags
|
|
19
|
+
|
|
20
|
+
@javascript
|
|
21
|
+
Scenario: Insert an asset
|
|
22
|
+
Given files have been uploaded to the asset library
|
|
23
|
+
When I am editing content
|
|
24
|
+
And I click the editor "Insert Asset" button
|
|
25
|
+
And follow "Images"
|
|
26
|
+
And I click "Add" on an Asset
|
|
27
|
+
Then the "Image" asset should appear in the content editor
|
|
28
|
+
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
Feature: Manage Content Tree
|
|
2
|
+
In order to provide up to date information in a structured manner on the website a website editor will be able to manage the content in a tree structure
|
|
3
|
+
|
|
4
|
+
Background:
|
|
5
|
+
Given the website has been populated with content based on the site map
|
|
6
|
+
|
|
7
|
+
Scenario: Browse Content Tree
|
|
8
|
+
Given I am on the content admin page
|
|
9
|
+
Then I should see a list of the roots
|
|
10
|
+
When I click on a root
|
|
11
|
+
Then I should see a list the of the root’s children
|
|
12
|
+
When I click on a child
|
|
13
|
+
Then I should see a list of the child’s children
|
|
14
|
+
|
|
15
|
+
Scenario: Create Root Content
|
|
16
|
+
Given I am on the content admin page
|
|
17
|
+
Then I should be able to create a new root
|
|
18
|
+
And I should see the root listed within the roots
|
|
19
|
+
|
|
20
|
+
Scenario: Create Sub Content
|
|
21
|
+
Given I am on the content admin page
|
|
22
|
+
When I click on a root
|
|
23
|
+
Then I should be able to create a new child
|
|
24
|
+
And I should see the child listed within the root’s children
|
|
25
|
+
|
|
26
|
+
Scenario: Delete Content
|
|
27
|
+
Given I am on the content admin page
|
|
28
|
+
Then I should be able to delete content
|
|
29
|
+
And the content and all of it’s sub content will be removed from the website
|
|
30
|
+
|
|
31
|
+
Scenario: Reorder Children
|
|
32
|
+
Given I am on the content admin page
|
|
33
|
+
When I click on a root
|
|
34
|
+
Then I should be able change the order of the root’s children
|
|
35
|
+
|
|
36
|
+
@javascript
|
|
37
|
+
Scenario: Move Child to another Parent
|
|
38
|
+
Given I am on the content admin page
|
|
39
|
+
When I click on a root
|
|
40
|
+
Then I should be able to move a child content to another parent
|
|
41
|
+
And I should see the child listed within the other parent’s children
|
|
42
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
@cms @wip
|
|
2
|
+
Feature: PREVIEW CONTENT
|
|
3
|
+
A preview function will allow a website editor to view how content will look before they save it
|
|
4
|
+
|
|
5
|
+
Scenario: Preview Content
|
|
6
|
+
Given I am editing content
|
|
7
|
+
And I click preview
|
|
8
|
+
Then I should see how the content will look in the website
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Feature: Promo Component
|
|
2
|
+
In order to promotional information on a page a website editor will be able
|
|
3
|
+
to add text and image content wthin component slots
|
|
4
|
+
|
|
5
|
+
@javascript
|
|
6
|
+
Scenario: Add a promo component
|
|
7
|
+
Given I am signed in as a website editor
|
|
8
|
+
And I am editing content
|
|
9
|
+
When I click a "Small" component slot
|
|
10
|
+
And select the "Promo" component
|
|
11
|
+
And fill in the following within the component:
|
|
12
|
+
| Title | Big Promotion |
|
|
13
|
+
| Description | A really big thing is happening! |
|
|
14
|
+
| Link | http://wearebeef.co.uk |
|
|
15
|
+
And I press "Save" within the component
|
|
16
|
+
And I press "Publish"
|
|
17
|
+
And I visit the content page
|
|
18
|
+
Then I should see "Big Promotion"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
Feature: Publish Content
|
|
2
|
+
In order to control when content is available on the website a website administrator will be able to define the time period for which content is published
|
|
3
|
+
|
|
4
|
+
Scenario: Publish content
|
|
5
|
+
Given content exists
|
|
6
|
+
When I publish the content
|
|
7
|
+
Then the content should be visible on the website
|
|
8
|
+
When I save content as draft
|
|
9
|
+
Then the content should not be visible on the website
|
|
10
|
+
|
|
11
|
+
Scenario: Publish content for set period
|
|
12
|
+
Given content exists
|
|
13
|
+
And I publish content between "20th July 2010" and "30th July 2010"
|
|
14
|
+
And today is "15th July 2010"
|
|
15
|
+
Then the content should not be visible on the website
|
|
16
|
+
When today is "25th July 2010"
|
|
17
|
+
Then the content should be visible on the website
|
|
18
|
+
When today is "5th August 2010"
|
|
19
|
+
Then the content should not be visible on the website
|
|
20
|
+
|
|
21
|
+
Scenario: Publish content for set period
|
|
22
|
+
Given today is "5th August 2010"
|
|
23
|
+
And published content exists with publish to date: "30th July 2010"
|
|
24
|
+
Then the content should not be visible on the website
|
|
25
|
+
When I am editing the content
|
|
26
|
+
And I clear the publish to date
|
|
27
|
+
Then the content should be visible on the website
|
|
28
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
Feature: Search
|
|
2
|
+
To allow website visitors to easily find content the website will have a keyword search facility that searches all content on the site
|
|
3
|
+
|
|
4
|
+
Background:
|
|
5
|
+
Given there is content that can be searched
|
|
6
|
+
|
|
7
|
+
Scenario: Search
|
|
8
|
+
Given I enter a search term in the search input
|
|
9
|
+
And press "Search"
|
|
10
|
+
Then I should see a paginated list of content that matches my search term ordered by relevance
|
|
11
|
+
|
|
12
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
@website
|
|
2
|
+
Feature: SITE MAP
|
|
3
|
+
In order to allow website visitors to see on overview of the entire site the website will
|
|
4
|
+
provide a site map showing all content on the website
|
|
5
|
+
|
|
6
|
+
Scenario: View Site Map
|
|
7
|
+
Given the website has been populated with content based on the site map
|
|
8
|
+
When I am on the site map page
|
|
9
|
+
Then I should see a tree style list that contains all content
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Given /^I am using the asset library$/ do
|
|
2
|
+
visit noodall_admin_assets_path
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
When /^I upload a file$/ do
|
|
6
|
+
click_link "Upload"
|
|
7
|
+
fill_in "Title", :with => "A loverly asset"
|
|
8
|
+
attach_file("File", "#{Rails.root}/spec/files/beef.png")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
When /^enter tags$/ do
|
|
12
|
+
fill_in "Tags", :with => "you, me, things, stuff"
|
|
13
|
+
fill_in "Description", :with => "Some nice info"
|
|
14
|
+
click_button "Create"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
Then /^it should appear in the asset library$/ do
|
|
18
|
+
page.should_not have_content('Errors')
|
|
19
|
+
page.should have_content('A loverly asset')
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Given /^files have been uploaded to the asset library$/ do
|
|
23
|
+
20.times { Factory(:asset) }
|
|
24
|
+
20.times { Factory(:document_asset) }
|
|
25
|
+
20.times { Factory(:video_asset) }
|
|
26
|
+
|
|
27
|
+
20.times { Factory(:asset, :title => "Tagged Asset", :tags => ['RAC','lorem','dolar']) }
|
|
28
|
+
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
Then /^I should be able to browse assets by content type$/ do
|
|
32
|
+
within(:css, "ul.choices") { click_link "Images" }
|
|
33
|
+
page.should_not have_content('Document asset')
|
|
34
|
+
page.should_not have_content('Video asset')
|
|
35
|
+
within(:css, "ul.choices") { click_link "Documents" }
|
|
36
|
+
page.should_not have_content('Image asset')
|
|
37
|
+
page.should_not have_content('Video asset')
|
|
38
|
+
within(:css, "ul.choices") { click_link "Videos" }
|
|
39
|
+
page.should_not have_content('Document asset')
|
|
40
|
+
page.should_not have_content('Image asset')
|
|
41
|
+
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
Then /^I should be able to browse assets by tags$/ do
|
|
45
|
+
within(:css, "ul.choices") { click_link "Images" }
|
|
46
|
+
within(:css, "div#tags") { click_link "RAC" }
|
|
47
|
+
page.should_not have_content('Image asset')
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
When /^I click the editor "([^"]*)" button$/ do |button_name|
|
|
51
|
+
within('.mceToolbar') do
|
|
52
|
+
click_link button_name
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
When /^I click "([^"]*)" on an Asset$/ do |button_name|
|
|
57
|
+
within('#browser-list ul li:first') do
|
|
58
|
+
click_link button_name
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
Then /^the "([^"]*)" asset should appear in the content editor$/ do |asset_type|
|
|
63
|
+
within_frame('node_body_ifr') do
|
|
64
|
+
page.should have_css("#tinymce img[src^='/media/']")
|
|
65
|
+
end
|
|
66
|
+
end
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
Given /^the website has been populated with content based on the site map$/ do
|
|
2
|
+
seed_file = File.join(Rails.root, "demo", "seeds.rb")
|
|
3
|
+
load(seed_file)
|
|
4
|
+
end
|
|
5
|
+
|
|
6
|
+
When /^I click on a root$/ do
|
|
7
|
+
@_page = Noodall::Node.roots.last
|
|
8
|
+
within("tbody tr:last") { click_link "Children" }
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
Then /^I should see a list the of the root’s children$/ do
|
|
12
|
+
@_page.children.each do |child|
|
|
13
|
+
page.should have_content(child.title)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
When /^I click on a child$/ do
|
|
18
|
+
@_child = @_page.children.first
|
|
19
|
+
within(:css, "tbody tr:first") { click_link "Children" }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Then /^I should see a list of the child’s children$/ do
|
|
23
|
+
@_child.children.each do |gchild|
|
|
24
|
+
page.should have_content(gchild.title)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
Then /^I should be able to create a new root$/ do
|
|
29
|
+
click_link 'New'
|
|
30
|
+
|
|
31
|
+
fill_in 'Title', :with => 'New Root'
|
|
32
|
+
|
|
33
|
+
click_button 'Create'
|
|
34
|
+
|
|
35
|
+
page.should have_content(' was successfully created.')
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Then /^I should see the root listed within the roots$/ do
|
|
39
|
+
visit noodall_admin_nodes_path
|
|
40
|
+
page.should have_content('New Root')
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
Then /^I should be able to create a new child$/ do
|
|
44
|
+
click_link 'New'
|
|
45
|
+
|
|
46
|
+
fill_in 'Title', :with => 'New Child'
|
|
47
|
+
|
|
48
|
+
click_button 'Create'
|
|
49
|
+
|
|
50
|
+
page.should have_content(' was successfully created.')
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
Then /^I should see the child listed within the root’s children$/ do
|
|
54
|
+
visit noodall_admin_node_nodes_path(@_page)
|
|
55
|
+
page.should have_content('New Child')
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
Then /^I should be able to delete content$/ do
|
|
59
|
+
@_deleted_node = Noodall::Node.roots.last
|
|
60
|
+
@_deleted_node_children = @_deleted_node.children
|
|
61
|
+
|
|
62
|
+
within(:css, 'table tbody tr:last') { click_link "Delete" }
|
|
63
|
+
page.should have_content("deleted")
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
Then /^the content and all of it’s sub content will be removed from the website$/ do
|
|
67
|
+
|
|
68
|
+
lambda { visit node_path(@_deleted_node) }.should raise_error(MongoMapper::DocumentNotFound)
|
|
69
|
+
|
|
70
|
+
@_deleted_node_children.each do |child|
|
|
71
|
+
lambda { visit node_path(child) }.should raise_error(MongoMapper::DocumentNotFound)
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
Then /^I should be able to move a child content to another parent$/ do
|
|
76
|
+
@_child = @_page.children.first
|
|
77
|
+
@_new_parent = Noodall::Node.roots.first
|
|
78
|
+
within(:css, "table tbody tr#node-#{@_child.id}") { click_link "Edit" }
|
|
79
|
+
# Simulates what we are now doing with JS
|
|
80
|
+
click_link "Advanced"
|
|
81
|
+
within(:css, '#parent-title' ) { click_link "Edit" }
|
|
82
|
+
within(:css, 'ol.tree' ) { click_link @_new_parent.title }
|
|
83
|
+
click_button 'Draft'
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
Then /^I should see the child listed within the other parent’s children$/ do
|
|
87
|
+
visit noodall_admin_node_nodes_path(@_new_parent)
|
|
88
|
+
within('tbody') do
|
|
89
|
+
page.should have_content(@_child.title)
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
Then /^I should be able change the order of the root’s children$/ do
|
|
94
|
+
table = table(tableish("table tr", 'td, th'))
|
|
95
|
+
title = table.hashes[2]['Title'] # 2 as zero index
|
|
96
|
+
within(:css, 'table tbody tr:nth(3)') { click_link "up" }
|
|
97
|
+
table = table(tableish("table tr", 'td, th'))
|
|
98
|
+
table.hashes[1]['Title'].should == title
|
|
99
|
+
within(:css, 'table tbody tr:nth(2)' ) { click_link "down" }
|
|
100
|
+
within(:css, 'table tbody tr:nth(3)' ) { click_link "down" }
|
|
101
|
+
table = table(tableish("table tr", 'td, th'))
|
|
102
|
+
table.hashes[3]['Title'].should == title
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
When /^I create a new child under an ancestor in "([^"]+)" template$/ do |template_title|
|
|
106
|
+
template = template_title.downcase.gsub(' ','_')
|
|
107
|
+
#create the ancester
|
|
108
|
+
parent = Factory(template.to_sym)
|
|
109
|
+
|
|
110
|
+
visit noodall_admin_node_nodes_path(parent)
|
|
111
|
+
click_link 'New'
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
Then /^I should be able select a template from the "([^"]+)"$/ do |sub_template_string|
|
|
115
|
+
sub_templates = sub_template_string.split(', ')
|
|
116
|
+
|
|
117
|
+
sub_templates.each do |sub_template|
|
|
118
|
+
choose sub_template
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
Then /^I should see a list of the roots$/ do
|
|
123
|
+
Noodall::Node.roots.each do |root|
|
|
124
|
+
page.should have_content(root.title)
|
|
125
|
+
end
|
|
126
|
+
end
|