goldencobra 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +52 -1
- data/app/assets/images/goldencobra/cobra_small.png +0 -0
- data/app/assets/javascripts/goldencobra/active_admin.js +85 -40
- data/app/assets/javascripts/goldencobra/application.js +17 -8
- data/app/assets/javascripts/goldencobra/countable.js +377 -0
- data/app/assets/javascripts/goldencobra/jquery.tools.min.js +85 -18
- data/app/assets/javascripts/goldencobra/notifications.js +39 -0
- data/app/assets/javascripts/goldencobra/togetherjs.js +712 -0
- data/app/assets/stylesheets/goldencobra/active_admin.css.scss +71 -11
- data/app/assets/stylesheets/goldencobra/application.css +48 -29
- data/app/controllers/goldencobra/api/v1/tokens_controller.rb +24 -20
- data/app/controllers/goldencobra/application_controller.rb +30 -14
- data/app/controllers/goldencobra/articles_controller.rb +102 -86
- data/app/controllers/goldencobra/manage_controller.rb +39 -0
- data/app/controllers/goldencobra/sessions_controller.rb +48 -0
- data/app/helpers/goldencobra/application_helper.rb +3 -5
- data/app/helpers/goldencobra/articles_helper.rb +31 -82
- data/app/helpers/goldencobra/login_helper.rb +13 -0
- data/app/helpers/goldencobra/navigation_helper.rb +134 -0
- data/app/mailers/goldencobra/confirmation_mailer.rb +6 -0
- data/app/models/ability.rb +3 -1
- data/app/models/goldencobra/article.rb +308 -68
- data/app/models/goldencobra/author.rb +10 -0
- data/app/models/goldencobra/comment.rb +2 -0
- data/app/models/goldencobra/domain.rb +20 -0
- data/app/models/goldencobra/import.rb +274 -37
- data/app/models/goldencobra/import_metadata.rb +7 -0
- data/app/models/goldencobra/location.rb +21 -13
- data/app/models/goldencobra/menue.rb +24 -4
- data/app/models/goldencobra/metatag.rb +9 -7
- data/app/models/goldencobra/permission.rb +17 -0
- data/app/models/goldencobra/role.rb +9 -5
- data/app/models/goldencobra/role_user.rb +1 -1
- data/app/models/goldencobra/setting.rb +8 -0
- data/app/models/goldencobra/tracking.rb +63 -0
- data/app/models/goldencobra/upload.rb +4 -4
- data/app/models/goldencobra/widget.rb +17 -4
- data/app/models/translation.rb +22 -0
- data/app/models/visitor.rb +7 -4
- data/app/views/goldencobra/admin/articles/_articles_index.html.erb +4 -0
- data/app/views/goldencobra/admin/articles/_image_module_sidebar.html.erb +12 -11
- data/app/views/goldencobra/admin/articles/_layout_sidebar.html.erb +3 -0
- data/app/views/goldencobra/admin/articles/_link_checker.html.erb +31 -0
- data/app/views/goldencobra/admin/articles/_link_checker_index.html.erb +32 -0
- data/app/views/goldencobra/admin/articles/_select_article_type.html.erb +1 -0
- data/app/views/goldencobra/admin/articles/_sort_articles_index.html.erb +5 -0
- data/app/views/goldencobra/admin/articles/_widgets_sidebar.html.erb +1 -1
- data/app/views/goldencobra/admin/shared/_item.html.erb +4 -0
- data/app/views/goldencobra/admin/shared/_next_item.html.erb +5 -0
- data/app/views/goldencobra/admin/shared/_prev_item.html.erb +5 -0
- data/app/views/goldencobra/articles/_edit_article_link.html.erb +1 -1
- data/app/views/goldencobra/articles/_headers.html.erb +5 -1
- data/app/views/goldencobra/articles/_show.html.erb +4 -1
- data/app/views/goldencobra/articles/show.rss.builder +7 -2
- data/app/views/goldencobra/confirmation_mailer/send_support_mail.text.erb +6 -0
- data/app/views/goldencobra/imports/attributes.html.erb +165 -19
- data/app/views/goldencobra/manage/_admin_article_management.html.erb +5 -0
- data/app/views/goldencobra/manage/_admin_article_management_content.html.erb +15 -0
- data/app/views/goldencobra/manage/article_visibility.js.erb +3 -0
- data/app/views/goldencobra/manage/render_admin_menue.js.erb +4 -0
- data/app/views/goldencobra/sessions/_login.html.erb +33 -0
- data/app/views/goldencobra/sessions/_register.html.erb +49 -0
- data/app/views/goldencobra/sessions/login.js.erb +16 -0
- data/config/initializers/articles_controller_hooks.rb +5 -0
- data/config/initializers/geocoder.rb +1 -0
- data/config/initializers/http_validator.rb +4 -4
- data/config/initializers/liquid_tags.rb +3 -3
- data/config/initializers/locale.rb +13 -0
- data/config/initializers/settings.rb +1 -0
- data/config/locales/active_admin.de.yml +5 -5
- data/config/locales/active_admin.en.yml +3 -1
- data/config/locales/activerecord.de.yml +223 -197
- data/config/locales/activerecord.en.yml +135 -132
- data/config/locales/de.yml +15 -2
- data/config/locales/en.yml +8 -2
- data/config/routes.rb +10 -1
- data/config/settings.yml +16 -6
- data/db/migrate/20120313125443_create_goldencobra_permissions.rb +1 -0
- data/db/migrate/20130114154115_add_sorter_to_goldencobra_permissions.rb +1 -1
- data/db/migrate/20130225154241_add_redirect_to_goldencobra_roles.rb +5 -0
- data/db/migrate/20130301144344_add_indextypes_to_goldencobra_articles.rb +5 -0
- data/db/migrate/20130404110743_add_sessions_table.rb +12 -0
- data/db/migrate/20130404121434_create_goldencobra_trackings.rb +13 -0
- data/db/migrate/20130404135801_add_options_to_goldencobra_trackings.rb +6 -0
- data/db/migrate/20130404140858_add_moreoptions_to_goldencobra_trackings.rb +8 -0
- data/db/migrate/20130405071320_add_params_to_goldencobra_trackings.rb +5 -0
- data/db/migrate/20130405073103_add_googleparams_to_goldencobra_trackings.rb +9 -0
- data/db/migrate/20130405074654_add_location_to_tracking.rb +5 -0
- data/db/migrate/20130426123928_add_polymorphic_to_goldencobra_metatags.rb +6 -0
- data/db/migrate/20130507115517_create_translations.rb +13 -0
- data/db/migrate/20130702155529_create_goldencobra_authors.rb +12 -0
- data/db/migrate/20130702160247_rename_authorstobackup_to_goldencobra_articles.rb +11 -0
- data/db/migrate/20130722152135_add_encodingtype_to_goldencobra_imports.rb +5 -0
- data/db/migrate/20130723084542_add_assgroup_to_goldencobra_importer.rb +5 -0
- data/db/migrate/20130724123225_create_goldencobra_import_metadata.rb +16 -0
- data/db/migrate/20130730113452_add_skip_to_goldencobra_locations.rb +5 -0
- data/db/migrate/20130730144331_add_linkchecker_to_goldencobra_articles.rb +5 -0
- data/db/migrate/20130903085746_change_datatype_of_url_paremeters.rb +9 -0
- data/db/migrate/20130909143144_create_goldencobra_domains.rb +11 -0
- data/db/migrate/20130925133203_add_prefix_to_goldencobra_domains.rb +5 -0
- data/db/migrate/20131018111343_add_cache_to_goldencobra_menues.rb +12 -0
- data/db/seeds.rb +165 -5
- data/lib/generators/goldencobra/articletype/templates/edit_index.html.erb +1 -0
- data/lib/generators/goldencobra/articletype/templates/index.html.erb +31 -0
- data/lib/generators/goldencobra/install_generator.rb +12 -6
- data/lib/generators/goldencobra/templates/active_admin.rb.erb +3 -2
- data/lib/generators/goldencobra/templates/apache.tmpl.erb +7 -0
- data/lib/generators/goldencobra/templates/assets/javascripts/application.js +0 -1
- data/lib/generators/goldencobra/templates/assets/stylesheets/application.css.scss +4 -13
- data/lib/generators/goldencobra/templates/assets/stylesheets/footer/{footer.css.scss → content.css.scss} +0 -0
- data/lib/generators/goldencobra/templates/assets/stylesheets/header/{header.css.scss → content.css.scss} +0 -0
- data/lib/generators/goldencobra/templates/assets/stylesheets/{body/body.css.scss → main/content.css.scss} +0 -0
- data/lib/generators/goldencobra/templates/deploy.rb.erb +15 -1
- data/lib/generators/goldencobra/templates/seeds.rb.erb +5 -4
- data/lib/goldencobra/select_current_client.rb +38 -0
- data/lib/goldencobra/version.rb +1 -1
- data/lib/tasks/i18n.rake +60 -0
- data/lib/tasks/import.rake +16 -0
- data/lib/tasks/link_checker.rake +33 -0
- metadata +168 -1224
- data/app/controllers/goldencobra/api/v1/base_controller.rb +0 -16
- data/app/views/goldencobra/admin/articles/_index_of_articles_sidebar.html.erb +0 -11
- data/lib/generators/goldencobra/templates/assets/javascripts/bootstrap.min.js +0 -6
- data/lib/generators/goldencobra/templates/assets/stylesheets/application-mobile.css.scss +0 -137
- data/lib/generators/goldencobra/templates/assets/stylesheets/share/bootstrap-responsive.css +0 -1088
- data/lib/generators/goldencobra/templates/assets/stylesheets/share/bootstrap.css +0 -6039
- data/test/dummy/Guardfile +0 -28
- data/test/dummy/README.rdoc +0 -261
- data/test/dummy/Rakefile +0 -17
- data/test/dummy/app/assets/javascripts/application.js +0 -12
- data/test/dummy/app/assets/stylesheets/active_admin.css.scss +0 -6
- data/test/dummy/app/assets/stylesheets/application.css.scss +0 -13
- data/test/dummy/app/controllers/application_controller.rb +0 -3
- data/test/dummy/app/controllers/extend_goldencobra_articles_controller.rb +0 -19
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/views/layouts/_test.html.erb +0 -1
- data/test/dummy/app/views/layouts/application.html.erb +0 -47
- data/test/dummy/app/views/layouts/for_pdf.html.erb.html +0 -42
- data/test/dummy/config.ru +0 -4
- data/test/dummy/config/application.rb +0 -69
- data/test/dummy/config/boot.rb +0 -10
- data/test/dummy/config/cucumber.yml +0 -8
- data/test/dummy/config/database.yml +0 -41
- data/test/dummy/config/database.yml.template +0 -41
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -41
- data/test/dummy/config/environments/production.rb +0 -73
- data/test/dummy/config/environments/test.rb +0 -40
- data/test/dummy/config/initializers/active_admin.rb +0 -123
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/inflections.rb +0 -15
- data/test/dummy/config/initializers/mime_types.rb +0 -5
- data/test/dummy/config/initializers/secret_token.rb +0 -7
- data/test/dummy/config/initializers/session_store.rb +0 -8
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/active_admin.de.yml +0 -91
- data/test/dummy/config/locales/en.yml +0 -5
- data/test/dummy/config/routes.rb +0 -108
- data/test/dummy/config/sunspot.yml +0 -24
- data/test/dummy/db/production.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +0 -362
- data/test/dummy/db/seeds.rb +0 -5
- data/test/dummy/features/article.feature +0 -245
- data/test/dummy/features/dashboard.feature +0 -23
- data/test/dummy/features/frontend.feature +0 -74
- data/test/dummy/features/location.feature +0 -0
- data/test/dummy/features/menue.feature +0 -50
- data/test/dummy/features/setting.feature +0 -35
- data/test/dummy/features/step_definitions/article_steps.rb +0 -35
- data/test/dummy/features/step_definitions/basic_steps.rb +0 -104
- data/test/dummy/features/step_definitions/devise_steps.rb +0 -36
- data/test/dummy/features/step_definitions/menue_steps.rb +0 -0
- data/test/dummy/features/step_definitions/path_steps.rb +0 -19
- data/test/dummy/features/support/env.rb +0 -93
- data/test/dummy/features/upload.feature +0 -13
- data/test/dummy/features/users.feature +0 -64
- data/test/dummy/features/widget.feature +0 -22
- data/test/dummy/lib/tasks/cucumber.rake +0 -65
- data/test/dummy/lib/tasks/rspec.rake +0 -56
- data/test/dummy/log/development.log +0 -92318
- data/test/dummy/log/test.log +0 -54562
- data/test/dummy/public/422.html +0 -26
- data/test/dummy/public/500.html +0 -25
- data/test/dummy/public/_404.html +0 -26
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/public/stylesheets/active_admin.css.css +0 -94
- data/test/dummy/public/stylesheets/application.css.css +0 -13
- data/test/dummy/public/system/images/1/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/1/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/1/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/1/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/1/original/50x50.png +0 -0
- data/test/dummy/public/system/images/1/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/1/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/10/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/10/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/10/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/10/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/10/original/50x50.png +0 -0
- data/test/dummy/public/system/images/10/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/10/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/11/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/11/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/11/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/11/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/11/original/50x50.png +0 -0
- data/test/dummy/public/system/images/11/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/11/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/12/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/12/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/12/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/12/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/12/original/50x50.png +0 -0
- data/test/dummy/public/system/images/12/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/12/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/13/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/13/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/13/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/13/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/13/original/50x50.png +0 -0
- data/test/dummy/public/system/images/13/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/13/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/14/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/14/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/14/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/14/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/14/original/50x50.png +0 -0
- data/test/dummy/public/system/images/14/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/14/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/15/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/15/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/15/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/15/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/15/original/50x50.png +0 -0
- data/test/dummy/public/system/images/15/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/15/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/16/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/16/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/16/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/16/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/16/original/50x50.png +0 -0
- data/test/dummy/public/system/images/16/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/16/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/17/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/17/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/17/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/17/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/17/original/50x50.png +0 -0
- data/test/dummy/public/system/images/17/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/17/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/18/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/18/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/18/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/18/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/18/original/50x50.png +0 -0
- data/test/dummy/public/system/images/18/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/18/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/19/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/19/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/19/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/19/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/19/original/50x50.png +0 -0
- data/test/dummy/public/system/images/19/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/19/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/2/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/2/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/2/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/2/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/2/original/50x50.png +0 -0
- data/test/dummy/public/system/images/2/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/2/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/20/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/21/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/22/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/23/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/24/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/25/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/26/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/27/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/28/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/29/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/3/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/3/big/Bildschirmfoto_2012-10-31_um_11.57.19.jpg +0 -0
- data/test/dummy/public/system/images/3/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/3/large/Bildschirmfoto_2012-10-31_um_11.57.19.jpg +0 -0
- data/test/dummy/public/system/images/3/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/3/medium/Bildschirmfoto_2012-10-31_um_11.57.19.jpg +0 -0
- data/test/dummy/public/system/images/3/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/3/mini/Bildschirmfoto_2012-10-31_um_11.57.19.jpg +0 -0
- data/test/dummy/public/system/images/3/original/50x50.png +0 -0
- data/test/dummy/public/system/images/3/original/Bildschirmfoto_2012-10-31_um_11.57.19.png +0 -0
- data/test/dummy/public/system/images/3/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/3/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/3/thumb/Bildschirmfoto_2012-10-31_um_11.57.19.jpg +0 -0
- data/test/dummy/public/system/images/30/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/31/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/32/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/33/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/34/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/35/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/36/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/37/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/38/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/39/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/4/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/4/big/Bildschirmfoto_2012-12-07_um_13.28.23.jpg +0 -0
- data/test/dummy/public/system/images/4/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/4/large/Bildschirmfoto_2012-12-07_um_13.28.23.jpg +0 -0
- data/test/dummy/public/system/images/4/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/4/medium/Bildschirmfoto_2012-12-07_um_13.28.23.jpg +0 -0
- data/test/dummy/public/system/images/4/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/4/mini/Bildschirmfoto_2012-12-07_um_13.28.23.jpg +0 -0
- data/test/dummy/public/system/images/4/original/50x50.png +0 -0
- data/test/dummy/public/system/images/4/original/Bildschirmfoto_2012-12-07_um_13.28.23.png +0 -0
- data/test/dummy/public/system/images/4/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/4/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/4/thumb/Bildschirmfoto_2012-12-07_um_13.28.23.jpg +0 -0
- data/test/dummy/public/system/images/40/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/41/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/42/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/5/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/5/big/Bildschirmfoto_2012-12-07_um_14.52.36.jpg +0 -0
- data/test/dummy/public/system/images/5/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/5/large/Bildschirmfoto_2012-12-07_um_14.52.36.jpg +0 -0
- data/test/dummy/public/system/images/5/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/5/medium/Bildschirmfoto_2012-12-07_um_14.52.36.jpg +0 -0
- data/test/dummy/public/system/images/5/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/5/mini/Bildschirmfoto_2012-12-07_um_14.52.36.jpg +0 -0
- data/test/dummy/public/system/images/5/original/50x50.png +0 -0
- data/test/dummy/public/system/images/5/original/Bildschirmfoto_2012-12-07_um_14.52.36.png +0 -0
- data/test/dummy/public/system/images/5/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/5/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/5/thumb/Bildschirmfoto_2012-12-07_um_14.52.36.jpg +0 -0
- data/test/dummy/public/system/images/6/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/6/big/Bildschirmfoto_2012-12-07_um_14.57.23.jpg +0 -0
- data/test/dummy/public/system/images/6/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/6/large/Bildschirmfoto_2012-12-07_um_14.57.23.jpg +0 -0
- data/test/dummy/public/system/images/6/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/6/medium/Bildschirmfoto_2012-12-07_um_14.57.23.jpg +0 -0
- data/test/dummy/public/system/images/6/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/6/mini/Bildschirmfoto_2012-12-07_um_14.57.23.jpg +0 -0
- data/test/dummy/public/system/images/6/original/50x50.png +0 -0
- data/test/dummy/public/system/images/6/original/Bildschirmfoto_2012-12-07_um_14.57.23.png +0 -0
- data/test/dummy/public/system/images/6/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/6/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/6/thumb/Bildschirmfoto_2012-12-07_um_14.57.23.jpg +0 -0
- data/test/dummy/public/system/images/7/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/7/big/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/7/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/7/large/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/7/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/7/medium/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/7/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/7/mini/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/7/original/50x50.png +0 -0
- data/test/dummy/public/system/images/7/original/Bildschirmfoto_2012-12-10_um_11.45.47.png +0 -0
- data/test/dummy/public/system/images/7/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/7/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/7/thumb/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/8/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/8/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/8/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/8/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/8/original/50x50.png +0 -0
- data/test/dummy/public/system/images/8/original/test_import.csv +0 -4
- data/test/dummy/public/system/images/8/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/9/big/50x50.jpg +0 -0
- data/test/dummy/public/system/images/9/big/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/9/large/50x50.jpg +0 -0
- data/test/dummy/public/system/images/9/large/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/9/medium/50x50.jpg +0 -0
- data/test/dummy/public/system/images/9/medium/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/9/mini/50x50.jpg +0 -0
- data/test/dummy/public/system/images/9/mini/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/public/system/images/9/original/50x50.png +0 -0
- data/test/dummy/public/system/images/9/original/Bildschirmfoto_2012-12-10_um_11.45.47.png +0 -0
- data/test/dummy/public/system/images/9/original/test_import.csv +0 -2
- data/test/dummy/public/system/images/9/thumb/50x50.jpg +0 -0
- data/test/dummy/public/system/images/9/thumb/Bildschirmfoto_2012-12-10_um_11.45.47.jpg +0 -0
- data/test/dummy/script/cucumber +0 -10
- data/test/dummy/script/rails +0 -6
- data/test/dummy/spec/controllers/api/v1/tokens_controller_spec.rb +0 -35
- data/test/dummy/spec/controllers/articles_controller_spec.rb +0 -103
- data/test/dummy/spec/factories.rb +0 -99
- data/test/dummy/spec/fixtures/50x50.png +0 -0
- data/test/dummy/spec/integration/article_active_since.rb +0 -46
- data/test/dummy/spec/models/article_spec.rb +0 -135
- data/test/dummy/spec/models/import_spec.rb +0 -51
- data/test/dummy/spec/models/location_spec.rb +0 -26
- data/test/dummy/spec/models/menue_spec.rb +0 -13
- data/test/dummy/spec/models/setting_spec.rb +0 -11
- data/test/dummy/spec/models/user_spec.rb +0 -8
- data/test/dummy/spec/models/visitor_spec.rb +0 -8
- data/test/dummy/spec/models/widget_spec.rb +0 -13
- data/test/dummy/spec/spec_helper.rb +0 -42
- data/test/dummy/spec/test_helpers.rb +0 -24
- data/test/dummy/test_import.csv +0 -4
- data/test/dummy/tmp/cache/assets/BFF/F90/sprockets%2F52f50851d6524895a2886812af912683 +0 -0
- data/test/dummy/tmp/cache/assets/C10/920/sprockets%2Ff213661695d035131a4062379125b7da +0 -0
- data/test/dummy/tmp/cache/assets/C13/840/sprockets%2Fae5565365788994193581f7d235587e2 +0 -0
- data/test/dummy/tmp/cache/assets/C2E/060/sprockets%2F0403655d829f725f379cd71695419a50 +0 -0
- data/test/dummy/tmp/cache/assets/C4D/470/sprockets%2F5a6027ad80312ee007686b8297790c05 +0 -0
- data/test/dummy/tmp/cache/assets/C51/1F0/sprockets%2F79b237703d54d00126c43887f35d092e +0 -0
- data/test/dummy/tmp/cache/assets/C53/D30/sprockets%2F7895b9c27800b57a8e7b17724375a001 +0 -0
- data/test/dummy/tmp/cache/assets/C75/E10/sprockets%2Fe9d6c65205479287744e9c9d867404d9 +0 -0
- data/test/dummy/tmp/cache/assets/C79/660/sprockets%2F004f776712133c4447d6cf06536ba26f +0 -0
- data/test/dummy/tmp/cache/assets/C94/B30/sprockets%2F9f6894b36eca3386a83328bb18888521 +0 -0
- data/test/dummy/tmp/cache/assets/C96/2F0/sprockets%2F423e893a5f74ea10e977779119fd9414 +0 -0
- data/test/dummy/tmp/cache/assets/CA2/200/sprockets%2Fccb437303877ab821396a4951d3c010e +0 -0
- data/test/dummy/tmp/cache/assets/CA2/C80/sprockets%2F87d459d8d98774f16951def10894e035 +0 -0
- data/test/dummy/tmp/cache/assets/CA5/DF0/sprockets%2Fea731728c2dd3651656a0e946204d3a3 +0 -0
- data/test/dummy/tmp/cache/assets/CA7/050/sprockets%2Ff9a2145d9e38104f18a0a04a328b5496 +0 -0
- data/test/dummy/tmp/cache/assets/CB1/510/sprockets%2Fb297fa3bc7ab922a440d958669820702 +0 -0
- data/test/dummy/tmp/cache/assets/CB1/DA0/sprockets%2F568365290ac1cdb0723de971a26957d3 +0 -0
- data/test/dummy/tmp/cache/assets/CBB/5B0/sprockets%2Ff469c44330a1ee8d09e791356e65c481 +0 -0
- data/test/dummy/tmp/cache/assets/CBF/0C0/sprockets%2Ff9375222fa893ed80695b4c2941657ac +0 -0
- data/test/dummy/tmp/cache/assets/CC2/660/sprockets%2F7539094feb779d33388246da1a4e1b98 +0 -0
- data/test/dummy/tmp/cache/assets/CC6/620/sprockets%2F9bdc9a75c686e4209c5137c8155e9844 +0 -0
- data/test/dummy/tmp/cache/assets/CC7/EB0/sprockets%2F653e162f53dc7022963e569bf9b9567f +0 -0
- data/test/dummy/tmp/cache/assets/CCE/0A0/sprockets%2F95c8f4bce53c58733585886f4297c2e2 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/AB0/sprockets%2F6f63c3b89a561114f68fd4ca0033c160 +0 -0
- data/test/dummy/tmp/cache/assets/CD3/E00/sprockets%2F8409ff304869ac45c2d0020f0d3b75d1 +0 -0
- data/test/dummy/tmp/cache/assets/CD4/5C0/sprockets%2F920c6fb184af055d2594433b8b023ef0 +0 -0
- data/test/dummy/tmp/cache/assets/CDA/D00/sprockets%2Fdb91a08476e6c3361e6e1b60048647ba +0 -0
- data/test/dummy/tmp/cache/assets/CDB/F60/sprockets%2F0faf146057232cee715013f4cc2678f9 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/530/sprockets%2F94bac30f3e934702856235bdd089d14b +0 -0
- data/test/dummy/tmp/cache/assets/CDC/CE0/sprockets%2F3fc6d08668b5703011ad6ffc0c254748 +0 -0
- data/test/dummy/tmp/cache/assets/CDD/810/sprockets%2Fcf3266f8064f55cd5d260a36a73815c1 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/A20/sprockets%2Fc9f706d388ff9fbcc678691581833898 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/170/sprockets%2F281660917735e0c50fceb90ee509bf72 +0 -0
- data/test/dummy/tmp/cache/assets/CE2/510/sprockets%2F5c5070d15d55ae08bac4865ed4158488 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/A70/sprockets%2F0b0eb5862c20da7497cd50c6982861d9 +0 -0
- data/test/dummy/tmp/cache/assets/CE5/650/sprockets%2F8ab512c9b33ac90e699b73469d71f061 +0 -0
- data/test/dummy/tmp/cache/assets/CE5/8E0/sprockets%2F1f4ec16550d826ba72ffe82073d36397 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/2F0/sprockets%2Fb42210a5af7151322c14f117a35eabe1 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/A70/sprockets%2F54d5f148fe3d706d075f7ce6809080a2 +0 -0
- data/test/dummy/tmp/cache/assets/CEC/E30/sprockets%2F0d922a4346c9671a9dedd98473fc4651 +0 -0
- data/test/dummy/tmp/cache/assets/CF4/7D0/sprockets%2F867e314f36b2960e74c91de74cf82f19 +0 -0
- data/test/dummy/tmp/cache/assets/CF4/DC0/sprockets%2Fc2d17453e6d9680359596ba6f7a71ec9 +0 -0
- data/test/dummy/tmp/cache/assets/CF6/6A0/sprockets%2F2d7fdc6946a67c4896d30e37735cc763 +0 -0
- data/test/dummy/tmp/cache/assets/CF9/570/sprockets%2F7994695b4e6ddc627c582b6211b768ff +0 -0
- data/test/dummy/tmp/cache/assets/D12/7E0/sprockets%2F14a7de096322b2891e6fa2b71d78fe26 +0 -0
- data/test/dummy/tmp/cache/assets/D15/2C0/sprockets%2F1490b7fd53bc829bf9534ab7ac432596 +0 -0
- data/test/dummy/tmp/cache/assets/D15/810/sprockets%2F78f33aa476ff4593025e3775faaa36d2 +0 -0
- data/test/dummy/tmp/cache/assets/D16/390/sprockets%2F70ed9b780960ed6e61c09e47b11e29c3 +0 -0
- data/test/dummy/tmp/cache/assets/D19/4A0/sprockets%2Fac5ec0ee6599e100703e97579fa7261d +0 -0
- data/test/dummy/tmp/cache/assets/D19/750/sprockets%2F81631db0e26782334ccecf4f9676e1d8 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/B30/sprockets%2Fd84573b6dfe0bf1e70645d87523a0e89 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/630/sprockets%2F67732a58df43ba3cfdd8197d824b7606 +0 -0
- data/test/dummy/tmp/cache/assets/D21/780/sprockets%2Fc312c2683afc34522c0b452dae7fb210 +0 -0
- data/test/dummy/tmp/cache/assets/D29/7A0/sprockets%2F3b490760dbf0dc260772aa4e2c15a0f6 +0 -0
- data/test/dummy/tmp/cache/assets/D2E/610/sprockets%2F48e96be7288ec89bd8043f2ac8a93478 +0 -0
- data/test/dummy/tmp/cache/assets/D2E/8D0/sprockets%2Fcb3137b9eace6c3c33c14b56e4513172 +0 -0
- data/test/dummy/tmp/cache/assets/D30/960/sprockets%2Ff214f51bcae283e093add7c400d52925 +0 -0
- data/test/dummy/tmp/cache/assets/D30/F20/sprockets%2F9b4f2be7a6c0597b4e34201de213b18a +0 -0
- data/test/dummy/tmp/cache/assets/D31/A20/sprockets%2F5bd03bb3b27add55c2972fa0647c0934 +0 -0
- data/test/dummy/tmp/cache/assets/D32/B60/sprockets%2F23180d3b8f47dbc0c42e2ed4544d0e37 +0 -0
- data/test/dummy/tmp/cache/assets/D34/900/sprockets%2F177645c0a4978de97945ef89f0fbd7d6 +0 -0
- data/test/dummy/tmp/cache/assets/D36/770/sprockets%2F8eca64a00035b4ad9fad8c47b2424775 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/9C0/sprockets%2Fb168293b8d37cb72a6502fe3c293ace4 +0 -0
- data/test/dummy/tmp/cache/assets/D3B/C40/sprockets%2F44c2f842c3ac790d3609ced4524dc2c7 +0 -0
- data/test/dummy/tmp/cache/assets/D3D/3E0/sprockets%2F2e3ed683f01a553001ccb87d939cf39b +0 -0
- data/test/dummy/tmp/cache/assets/D3D/6A0/sprockets%2F562a32d9fc82bc1bd4199d68b39b413a +0 -0
- data/test/dummy/tmp/cache/assets/D3F/760/sprockets%2F59c9a5552cc36c2af3b17169fae423f4 +0 -0
- data/test/dummy/tmp/cache/assets/D41/4E0/sprockets%2Faaa2388bb1384c968dff335997a0c2e0 +0 -0
- data/test/dummy/tmp/cache/assets/D41/630/sprockets%2Fd1451c22796c79cbfb852b4790c3ff0b +0 -0
- data/test/dummy/tmp/cache/assets/D41/A40/sprockets%2F91baa46f6fd8dd7c171891032aab3994 +0 -0
- data/test/dummy/tmp/cache/assets/D43/590/sprockets%2F441795811965edb5d705d08eb0ee5cdb +0 -0
- data/test/dummy/tmp/cache/assets/D44/5F0/sprockets%2Fe431840089deb6284bfc4dcf63d74f41 +0 -0
- data/test/dummy/tmp/cache/assets/D48/350/sprockets%2F7e29702b98fbd41fcbbc073735db6847 +0 -0
- data/test/dummy/tmp/cache/assets/D49/BD0/sprockets%2F716e86e0be13a33c2fc5899e92b6c17e +0 -0
- data/test/dummy/tmp/cache/assets/D4D/0F0/sprockets%2Fcb16357e7fdc97371f0397af802bd48f +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D50/AD0/sprockets%2Fc7368da9990672d4d406f6dd20c9fda7 +0 -0
- data/test/dummy/tmp/cache/assets/D53/0A0/sprockets%2F02db19e688520dfe875757a743fd6fec +0 -0
- data/test/dummy/tmp/cache/assets/D59/CA0/sprockets%2Fa3ca9a030c6a20ec1b2d778d359c205f +0 -0
- data/test/dummy/tmp/cache/assets/D59/D70/sprockets%2Fed9f0de1b65ae8d7ef89087c83728461 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/D50/sprockets%2Fe4bcbd6770423c6e30829b1ab25ca5a2 +0 -0
- data/test/dummy/tmp/cache/assets/D64/E80/sprockets%2Ff3c03cbc4ea3c2a890ea60241b89579b +0 -0
- data/test/dummy/tmp/cache/assets/D65/740/sprockets%2F3ecad5f8910df2585ca157b6c4a2d403 +0 -0
- data/test/dummy/tmp/cache/assets/D65/8D0/sprockets%2F4127afd730a8d634672f8a6ea40a1bfd +0 -0
- data/test/dummy/tmp/cache/assets/D67/060/sprockets%2Ffa4b9875d886e6bfcf85d28f769368a2 +0 -0
- data/test/dummy/tmp/cache/assets/D68/AC0/sprockets%2Fee6f1587f10b1bcadc59df0c55045732 +0 -0
- data/test/dummy/tmp/cache/assets/D68/F30/sprockets%2F8e36577579ff9d5526a94cea4fff9d81 +0 -0
- data/test/dummy/tmp/cache/assets/D69/080/sprockets%2Fa0d9cc4f60c3238274667b1b7ffb40bf +0 -0
- data/test/dummy/tmp/cache/assets/D6A/740/sprockets%2F521b0ea73b99734fd68b17bc81a1bcb9 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/420/sprockets%2Fa285aed44ffe06e56a29b7a8323d00f7 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/840/sprockets%2F62730c24299dda29ec65bfaa6a7d407c +0 -0
- data/test/dummy/tmp/cache/assets/D6D/130/sprockets%2Fc6dff37c9c419b325f3a964aed240d31 +0 -0
- data/test/dummy/tmp/cache/assets/D71/A90/sprockets%2F596767e40572cd0eaf290c9aa962daca +0 -0
- data/test/dummy/tmp/cache/assets/D73/1C0/sprockets%2F8a05f13c286aa37cd408ed6564d9f6ea +0 -0
- data/test/dummy/tmp/cache/assets/D73/820/sprockets%2Ff04f155efde7d2c3971b1f4981ed730b +0 -0
- data/test/dummy/tmp/cache/assets/D74/450/sprockets%2F3cb73527d7ec47f4d8eaa88de7033e20 +0 -0
- data/test/dummy/tmp/cache/assets/D77/970/sprockets%2Ff32a746ebfa28c34d7a50748ccb468e9 +0 -0
- data/test/dummy/tmp/cache/assets/D7B/A10/sprockets%2F34f96b747460f8faf7a14a80ab1f7fe8 +0 -0
- data/test/dummy/tmp/cache/assets/D7C/420/sprockets%2F84e5b777b1ddaf30587e5612c6f9d4eb +0 -0
- data/test/dummy/tmp/cache/assets/D7D/A00/sprockets%2Fa84f56f9d0f18841c7a5b8e0a8f91eb5 +0 -0
- data/test/dummy/tmp/cache/assets/D7D/C10/sprockets%2F8e7c7fb587564660236adcdb28dbdf72 +0 -0
- data/test/dummy/tmp/cache/assets/D80/390/sprockets%2Ff78b6e633f833c897d6bafc9061cec24 +0 -0
- data/test/dummy/tmp/cache/assets/D87/BB0/sprockets%2F9db886c59fa287a841b9c7cf5b4a8f61 +0 -0
- data/test/dummy/tmp/cache/assets/D88/0D0/sprockets%2Fdd31ca2b6f0e33b902183fdebd06d324 +0 -0
- data/test/dummy/tmp/cache/assets/D88/6E0/sprockets%2Fdf0c11f1e4bec06fa35c42d370fd2380 +0 -0
- data/test/dummy/tmp/cache/assets/D8B/860/sprockets%2Ff8193ee7181d5fe4ade604e6997b6e9c +0 -0
- data/test/dummy/tmp/cache/assets/D8C/CE0/sprockets%2F8e6e23ae61bf0ab42dc1900d34e190df +0 -0
- data/test/dummy/tmp/cache/assets/D8E/AB0/sprockets%2F3a99cbdb4da1d5bd389fc1350b273c01 +0 -0
- data/test/dummy/tmp/cache/assets/D91/080/sprockets%2Fbcca522c6302f184f12fe0e8a7d7e71a +0 -0
- data/test/dummy/tmp/cache/assets/D93/4C0/sprockets%2F857ecd2092cee11f740b3cf2e373ad2a +0 -0
- data/test/dummy/tmp/cache/assets/D96/1D0/sprockets%2Ff6d45bebb51df55e1924af103053e6ed +0 -0
- data/test/dummy/tmp/cache/assets/D98/4F0/sprockets%2Fe363cb9da92adcb537f4bf391627d0b0 +0 -0
- data/test/dummy/tmp/cache/assets/D9C/0D0/sprockets%2Fe7adcdd24ec3d606b46cf1473b2d9293 +0 -0
- data/test/dummy/tmp/cache/assets/D9F/300/sprockets%2Fc13fc73ceafa45876a901b3e775b83ae +0 -0
- data/test/dummy/tmp/cache/assets/D9F/4B0/sprockets%2Fffd9f9c1d1ac2fd4f02a49384463c0d5 +0 -0
- data/test/dummy/tmp/cache/assets/DA4/2A0/sprockets%2Fdc45f9ee9b2531693f3a8db5ddab6180 +0 -0
- data/test/dummy/tmp/cache/assets/DA6/B10/sprockets%2Fcfeda9155376b6ae46ce439dd073dd90 +0 -0
- data/test/dummy/tmp/cache/assets/DA8/C50/sprockets%2F1dec9fb630bf84ca3fde65f43785191d +0 -0
- data/test/dummy/tmp/cache/assets/DB9/B90/sprockets%2Fe982b7fe9886db374a1476b2f66feebc +0 -0
- data/test/dummy/tmp/cache/assets/DBB/7D0/sprockets%2Fe1bbced2134a660fb19e331adeb4a838 +0 -0
- data/test/dummy/tmp/cache/assets/DC0/2F0/sprockets%2F05f9e5b502095082ea0eafcfc0bced27 +0 -0
- data/test/dummy/tmp/cache/assets/DC3/FD0/sprockets%2Fbe29a1f2c631df2aaa69b4e028392cfd +0 -0
- data/test/dummy/tmp/cache/assets/DC6/9D0/sprockets%2F2c1c5a0a4989f9a0dac4d24b402e9dff +0 -0
- data/test/dummy/tmp/cache/assets/DCA/190/sprockets%2Ff7502d6b417f50ab1ee8e6047ff1cfbc +0 -0
- data/test/dummy/tmp/cache/assets/DCB/F50/sprockets%2F18c5510d6e3d5f3ecfbed2a394a55f5b +0 -0
- data/test/dummy/tmp/cache/assets/DCE/410/sprockets%2Fc9c7dac00ead25d2eb9b983266bfb591 +0 -0
- data/test/dummy/tmp/cache/assets/DD1/150/sprockets%2F2e7e20cfc4faea4ee9f2119d87073df2 +0 -0
- data/test/dummy/tmp/cache/assets/DD2/CE0/sprockets%2Ffc987b85fe1c0c6cb4c37a3536ad44fc +0 -0
- data/test/dummy/tmp/cache/assets/DD9/7D0/sprockets%2Fcc35b025c24bc5ff849c7c6e8a9a79be +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DDE/420/sprockets%2Ffb8b186d5bf0307f86f65fc787d2adeb +0 -0
- data/test/dummy/tmp/cache/assets/DDF/940/sprockets%2F329fdc5e00f88b6747de5d27efcbef62 +0 -0
- data/test/dummy/tmp/cache/assets/DF7/7B0/sprockets%2F61bd6dacddd27b5dd2456a8d3f5504eb +0 -0
- data/test/dummy/tmp/cache/assets/DFA/D20/sprockets%2F5d1556bbc577fa2b606ac53ec8ebdbe5 +0 -0
- data/test/dummy/tmp/cache/assets/E00/8F0/sprockets%2Fb8ecafefa8c6880717034e4f0cdfd2c3 +0 -0
- data/test/dummy/tmp/cache/assets/E03/FD0/sprockets%2Fde09b0aabe29568b6bcdf7af16bf6738 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E0D/8D0/sprockets%2Ffc88a9c4cd6c396ff5a61ad86fd25ce0 +0 -0
- data/test/dummy/tmp/cache/assets/E0E/710/sprockets%2Fd0d6cb86fd5f0346d9adee896d24c7dd +0 -0
- data/test/dummy/tmp/cache/assets/E1F/490/sprockets%2F04e0f8bc9c10ec7be1d91ae72abf2db5 +0 -0
- data/test/dummy/tmp/cache/assets/E2B/000/sprockets%2Fb43faef1ff7e3295ad2bae61de1e88a2 +0 -0
- data/test/dummy/tmp/cache/assets/E2D/F40/sprockets%2Fec8acd2ee03079a3a9aec47f109ca8ff +0 -0
- data/test/dummy/tmp/cache/assets/E32/960/sprockets%2F7ad0f5adacec8f6944e61dd3a94f3c6b +0 -0
- data/test/dummy/tmp/cache/assets/E59/E90/sprockets%2F4e5ba8c5b3af5e1ce55c7bdd4fd4e40d +0 -0
- data/test/dummy/tmp/cache/assets/E62/F70/sprockets%2F8ff8e11cef1cd1bdca97e038847dcacd +0 -0
- data/test/dummy/tmp/cache/assets/E65/8B0/sprockets%2Fea24ed417feeb9fd784ac26b1f5bdff4 +0 -0
- data/test/dummy/tmp/cache/assets/E80/430/sprockets%2Fadf2ddec55dacd94dca3e4ffba434123 +0 -0
- data/test/dummy/tmp/cache/assets/E89/2F0/sprockets%2Ffa96d312c21daeeec3cfe6eeb8cfc009 +0 -0
- data/test/dummy/tmp/cache/sass/05c9fbbbe3be4d084fd1efa8ef5e2fc2ea0eb956/_grid-background.scssc +0 -0
- data/test/dummy/tmp/cache/sass/1d5486afa871296c704553fddbf38547ed9ede2a/_dashboard.scssc +0 -0
- data/test/dummy/tmp/cache/sass/1d5486afa871296c704553fddbf38547ed9ede2a/_logged_out.scssc +0 -0
- data/test/dummy/tmp/cache/sass/21e4dbbe48c3f92dd56a811a538228b10b9ebc3a/_css3.scssc +0 -0
- data/test/dummy/tmp/cache/sass/21e4dbbe48c3f92dd56a811a538228b10b9ebc3a/_support.scssc +0 -0
- data/test/dummy/tmp/cache/sass/21e4dbbe48c3f92dd56a811a538228b10b9ebc3a/_typography.scssc +0 -0
- data/test/dummy/tmp/cache/sass/21e4dbbe48c3f92dd56a811a538228b10b9ebc3a/_utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/28d91a13a7f694aa8cb4c93affa084fc5ab3a182/_bourbon-deprecated-upcoming.scssc +0 -0
- data/test/dummy/tmp/cache/sass/28d91a13a7f694aa8cb4c93affa084fc5ab3a182/_bourbon.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4b0078f37174f0a27e232c2a02f9cd55249e8b6b/_button.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4b0078f37174f0a27e232c2a02f9cd55249e8b6b/_clearfix.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4b0078f37174f0a27e232c2a02f9cd55249e8b6b/_font-family.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4b0078f37174f0a27e232c2a02f9cd55249e8b6b/_hide-text.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4b0078f37174f0a27e232c2a02f9cd55249e8b6b/_html5-input-types.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4b0078f37174f0a27e232c2a02f9cd55249e8b6b/_position.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4b0078f37174f0a27e232c2a02f9cd55249e8b6b/_prefixer.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4b0078f37174f0a27e232c2a02f9cd55249e8b6b/_timing-functions.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4eb4c6d631cec92d6f2f7f8f713f81159173b6da/_footer.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4eb4c6d631cec92d6f2f7f8f713f81159173b6da/_main_structure.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4eb4c6d631cec92d6f2f7f8f713f81159173b6da/_title_bar.scssc +0 -0
- data/test/dummy/tmp/cache/sass/4eb4c6d631cec92d6f2f7f8f713f81159173b6da/_top.scssc +0 -0
- data/test/dummy/tmp/cache/sass/54ea5fa1e7d898a85fc625e8ec840d7bf3256e35/active_admin.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/54ea5fa1e7d898a85fc625e8ec840d7bf3256e35/application.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/5c0f4502f78a9ac0290db1c7855b7f74a3c43029/active_admin.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_all.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_buttons.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_gradients.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_icons.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_reset.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_rounded.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_sections.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_shadows.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_typography.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/847767b28784c5ab91b8888d71cf7e72f65a790a/_variables.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/8b73b9fd6e9fc911906884144988a8fac53d5a3f/_bullets.scssc +0 -0
- data/test/dummy/tmp/cache/sass/8b73b9fd6e9fc911906884144988a8fac53d5a3f/_horizontal-list.scssc +0 -0
- data/test/dummy/tmp/cache/sass/8b73b9fd6e9fc911906884144988a8fac53d5a3f/_inline-block-list.scssc +0 -0
- data/test/dummy/tmp/cache/sass/8b73b9fd6e9fc911906884144988a8fac53d5a3f/_inline-list.scssc +0 -0
- data/test/dummy/tmp/cache/sass/8e10f3df6041b7e72a353720f2fcf9bddfb55870/_utilities.scssc +0 -0
- data/test/dummy/tmp/cache/sass/934faa7fc0ed7b350d1632e7fc73209d3183d8ff/_base.scssc +0 -0
- data/test/dummy/tmp/cache/sass/934faa7fc0ed7b350d1632e7fc73209d3183d8ff/_sprite-img.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9b5c9558da0f81eb6be64dde65845fedbd8605ef/_compass.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_batch_actions.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_blank_slates.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_breadcrumbs.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_buttons.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_columns.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_comments.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_date_picker.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_dropdown_menu.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_flash_messages.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_grid.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_links.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_pagination.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_panels.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_popovers.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_scopes.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_status_tags.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_table_tools.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/9f8e9618ee1bbe32c378d51a27cb5ed09207a737/_tables.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_appearance.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_background-clip.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_background-origin.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_background-size.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_border-radius.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_box-shadow.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_box-sizing.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_box.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_columns.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_filter.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_font-face.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_hyphenation.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_images.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_inline-block.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_opacity.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_regions.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_shared.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_text-shadow.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_transform.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a768930c683e3058d1edd4a6c94b59eb2468e8a4/_transition.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a8972c2597143814459f1a81a43e739d66be3f72/_links.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a8972c2597143814459f1a81a43e739d66be3f72/_lists.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a8972c2597143814459f1a81a43e739d66be3f72/_text.scssc +0 -0
- data/test/dummy/tmp/cache/sass/a8972c2597143814459f1a81a43e739d66be3f72/_vertical_rhythm.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b7b0653394ac0e1e6076e8a6810a6ee79084b7ad/_base.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b7b0653394ac0e1e6076e8a6810a6ee79084b7ad/_forms.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b7b0653394ac0e1e6076e8a6810a6ee79084b7ad/_header.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b7b0653394ac0e1e6076e8a6810a6ee79084b7ad/_mixins.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b7b0653394ac0e1e6076e8a6810a6ee79084b7ad/_typography.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b7b0653394ac0e1e6076e8a6810a6ee79084b7ad/print.css.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b96d7e1b24c988bf6ea98ca519b93f19d8736d99/_ellipsis.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b96d7e1b24c988bf6ea98ca519b93f19d8736d99/_force-wrap.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b96d7e1b24c988bf6ea98ca519b93f19d8736d99/_nowrap.scssc +0 -0
- data/test/dummy/tmp/cache/sass/b96d7e1b24c988bf6ea98ca519b93f19d8736d99/_replacement.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_compact.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_deprecated-webkit-gradient.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_flex-grid.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_grid-width.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_linear-gradient.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_modular-scale.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_radial-gradient.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_render-gradients.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_tint-shade.scssc +0 -0
- data/test/dummy/tmp/cache/sass/bafca0ac67d4233137d57bee4c317a27de143723/_transition-property-name.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_animation.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_appearance.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_background-image.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_background-size.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_background.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_border-image.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_border-radius.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_box-shadow.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_box-sizing.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_columns.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_flex-box.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_font-face.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_hidpi-media-query.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_image-rendering.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_inline-block.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_linear-gradient.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_perspective.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_radial-gradient.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_transform.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_transition.scssc +0 -0
- data/test/dummy/tmp/cache/sass/be71dcd7e0509286420bb09cf8555193ae6adcd4/_user-select.scssc +0 -0
- data/test/dummy/tmp/cache/sass/c699a0a1e879dfe557c4f62edffcb78874fdeaba/_alternating-rows-and-columns.scssc +0 -0
- data/test/dummy/tmp/cache/sass/c699a0a1e879dfe557c4f62edffcb78874fdeaba/_borders.scssc +0 -0
- data/test/dummy/tmp/cache/sass/c699a0a1e879dfe557c4f62edffcb78874fdeaba/_scaffolding.scssc +0 -0
- data/test/dummy/tmp/cache/sass/dec995aab8094a7a65da2f93247fb4bb2e98908f/_clearfix.scssc +0 -0
- data/test/dummy/tmp/cache/sass/dec995aab8094a7a65da2f93247fb4bb2e98908f/_float.scssc +0 -0
- data/test/dummy/tmp/cache/sass/dec995aab8094a7a65da2f93247fb4bb2e98908f/_hacks.scssc +0 -0
- data/test/dummy/tmp/cache/sass/dec995aab8094a7a65da2f93247fb4bb2e98908f/_min.scssc +0 -0
- data/test/dummy/tmp/cache/sass/dec995aab8094a7a65da2f93247fb4bb2e98908f/_reset.scssc +0 -0
- data/test/dummy/tmp/cache/sass/dec995aab8094a7a65da2f93247fb4bb2e98908f/_tag-cloud.scssc +0 -0
- data/test/dummy/tmp/cache/sass/f4493159a7eb74436af172b9596794de284883cb/_color.scssc +0 -0
- data/test/dummy/tmp/cache/sass/f4493159a7eb74436af172b9596794de284883cb/_general.scssc +0 -0
- data/test/dummy/tmp/cache/sass/f4493159a7eb74436af172b9596794de284883cb/_sprites.scssc +0 -0
- data/test/dummy/tmp/cache/sass/f4493159a7eb74436af172b9596794de284883cb/_tables.scssc +0 -0
- data/test/dummy/tmp/cache/sass/fb4477070d0ea7ddb095f8cccd6bdda3ec28d144/_contrast.scssc +0 -0
- data/test/dummy/tmp/cache/sass/fe495f1ae09a53b0219290f25845a87fc0766d07/_hover-link.scssc +0 -0
- data/test/dummy/tmp/cache/sass/fe495f1ae09a53b0219290f25845a87fc0766d07/_link-colors.scssc +0 -0
- data/test/dummy/tmp/cache/sass/fe495f1ae09a53b0219290f25845a87fc0766d07/_unstyled-link.scssc +0 -0
- data/test/dummy/tmp/capybara/capybara-201212141646427583472235.html +0 -70
- data/test/dummy/tmp/capybara/capybara-201212141648005585599735.html +0 -70
- data/test/dummy/tmp/rspec_guard_result +0 -3
- data/test/fixtures/goldencobra/article_images.yml +0 -9
- data/test/fixtures/goldencobra/article_widgets.yml +0 -9
- data/test/fixtures/goldencobra/comments.yml +0 -19
- data/test/fixtures/goldencobra/helps.yml +0 -11
- data/test/fixtures/goldencobra/imports.yml +0 -13
- data/test/fixtures/goldencobra/locations.yml +0 -19
- data/test/fixtures/goldencobra/metatags.yml +0 -11
- data/test/fixtures/goldencobra/permissions.yml +0 -13
- data/test/fixtures/goldencobra/settings.yml +0 -11
- data/test/fixtures/goldencobra/uploads.yml +0 -9
- data/test/fixtures/goldencobra/vita.yml +0 -13
- data/test/fixtures/goldencobra/widgets.yml +0 -13
- data/test/goldencobra_test.rb +0 -7
- data/test/performance/browsing_test.rb +0 -12
- data/test/test_helper.rb +0 -10
- data/test/unit/goldencobra/article_image_test.rb +0 -21
- data/test/unit/goldencobra/article_widget_test.rb +0 -20
- data/test/unit/goldencobra/comment_test.rb +0 -26
- data/test/unit/goldencobra/help_test.rb +0 -21
- data/test/unit/goldencobra/import_test.rb +0 -24
- data/test/unit/goldencobra/location_test.rb +0 -26
- data/test/unit/goldencobra/metatag_test.rb +0 -21
- data/test/unit/goldencobra/permission_test.rb +0 -23
- data/test/unit/goldencobra/setting_test.rb +0 -22
- data/test/unit/goldencobra/upload_test.rb +0 -28
- data/test/unit/goldencobra/vita_test.rb +0 -23
- data/test/unit/goldencobra/widget_test.rb +0 -34
@@ -0,0 +1,39 @@
|
|
1
|
+
module Goldencobra
|
2
|
+
class ManageController < Goldencobra::ApplicationController
|
3
|
+
|
4
|
+
def render_admin_menue
|
5
|
+
user_mod = Goldencobra::Setting.for_key("goldencobra.article.edit_link.user")
|
6
|
+
role_mod = Goldencobra::Setting.for_key("goldencobra.article.edit_link.role")
|
7
|
+
if user_mod.present? && role_mod.present? && eval("#{user_mod} && #{user_mod}.present? && #{user_mod}.has_role?('#{role_mod}')")
|
8
|
+
article = Goldencobra::Article.find_by_id(params[:id])
|
9
|
+
@operator = current_user || current_visitor
|
10
|
+
a = Ability.new(@operator)
|
11
|
+
if a.can?(:manage, article)
|
12
|
+
@article = article
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def article_visibility
|
19
|
+
@article_saved = false
|
20
|
+
@operator = current_user || current_visitor
|
21
|
+
if current_user
|
22
|
+
article = Goldencobra::Article.find(params[:id])
|
23
|
+
ability = Ability.new(current_user)
|
24
|
+
if ability.can?(:update, article)
|
25
|
+
article.active = !article.active
|
26
|
+
article.save
|
27
|
+
@article = article
|
28
|
+
@article_saved = true
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def call_for_support
|
34
|
+
Goldencobra::ConfirmationMailer.send_support_mail(params[:link]).deliver
|
35
|
+
render :text => "200"
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Goldencobra
|
2
|
+
class SessionsController < Goldencobra::ApplicationController
|
3
|
+
layout "application"
|
4
|
+
|
5
|
+
def login
|
6
|
+
@errors = []
|
7
|
+
if params[:usermodel] && params[:usermodel].constantize && params[:usermodel].constantize.present? && params[:usermodel].constantize.attribute_method?(:email)
|
8
|
+
@usermodel = params[:usermodel].constantize.find_by_email(params[:loginmodel][:email])
|
9
|
+
unless @usermodel && params[:usermodel].constantize.attribute_method?(:username)
|
10
|
+
@usermodel = params[:usermodel].constantize.find_by_username(params[:loginmodel][:email])
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
if @usermodel.present?
|
15
|
+
if ::BCrypt::Password.new(@usermodel.encrypted_password) == "#{params[:loginmodel][:password]}#{Devise.pepper}"
|
16
|
+
sign_in @usermodel
|
17
|
+
@usermodel.failed_attempts = 0
|
18
|
+
@usermodel.sign_in_count = @usermodel.sign_in_count.to_i + 1
|
19
|
+
@usermodel.last_sign_in_at = Time.now
|
20
|
+
@usermodel.save
|
21
|
+
@redirect_to = @usermodel.roles.try(:first).try(:redirect_after_login)
|
22
|
+
else
|
23
|
+
@usermodel.failed_attempts = @usermodel.failed_attempts.to_i + 1
|
24
|
+
@usermodel.save
|
25
|
+
@errors << "Wrong username or password"
|
26
|
+
end
|
27
|
+
else
|
28
|
+
@errors << "No User found with this email"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
def logout
|
34
|
+
if params[:usermodel] && params[:usermodel].constantize && params[:usermodel].constantize.present? && params[:usermodel].constantize.attribute_method?(:email)
|
35
|
+
sign_out
|
36
|
+
reset_session
|
37
|
+
end
|
38
|
+
render :js => "window.location.href = '/';"
|
39
|
+
end
|
40
|
+
|
41
|
+
|
42
|
+
def register
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Goldencobra
|
2
2
|
module ApplicationHelper
|
3
3
|
include Goldencobra::ArticlesHelper
|
4
|
+
include Goldencobra::NavigationHelper
|
5
|
+
include Goldencobra::LoginHelper
|
4
6
|
|
5
7
|
def s(name)
|
6
8
|
if name.present?
|
@@ -18,11 +20,7 @@ module Goldencobra
|
|
18
20
|
end
|
19
21
|
|
20
22
|
def edit_article_link
|
21
|
-
|
22
|
-
role_mod = Goldencobra::Setting.for_key("goldencobra.article.edit_link.role")
|
23
|
-
if user_mod.present? && role_mod.present? && eval("#{user_mod} && #{user_mod}.present? && #{user_mod}.has_role?('#{role_mod}')")
|
24
|
-
render :partial => "goldencobra/articles/edit_article_link"
|
25
|
-
end
|
23
|
+
render :partial => "goldencobra/articles/edit_article_link"
|
26
24
|
end
|
27
25
|
|
28
26
|
def basic_goldencobra_headers(options={})
|
@@ -5,17 +5,20 @@ module Goldencobra
|
|
5
5
|
# If external_url_redirect is set and a link_title is given,
|
6
6
|
# display this link title. Otherwise display a generic link title.
|
7
7
|
def read_on(article)
|
8
|
+
target_window = article.redirection_target_in_new_window ? "_blank" : "_top"
|
8
9
|
if article.redirect_link_title.present?
|
9
|
-
link_to article.redirect_link_title, article.external_url_redirect, class
|
10
|
+
link_to article.redirect_link_title, article.external_url_redirect, :class => 'more', :target => target_window
|
10
11
|
else
|
11
|
-
link_to t(:read_on, scope: [:articles]), article.public_url, class
|
12
|
+
link_to t(:read_on, scope: [:articles]), article.public_url, :class => 'more', :target => target_window
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
16
|
+
#Ausgabe aller Hauptbestandteile eines Artikels über "content_for :xy"
|
15
17
|
def render_article_content_parts(article)
|
16
18
|
render :partial => "/goldencobra/articles/show", :locals => {:article => article}
|
17
19
|
end
|
18
20
|
|
21
|
+
|
19
22
|
def render_article_image_gallery
|
20
23
|
if @article
|
21
24
|
result = ""
|
@@ -29,51 +32,6 @@ module Goldencobra
|
|
29
32
|
end
|
30
33
|
end
|
31
34
|
|
32
|
-
def navigation_menu(menue_id, options={})
|
33
|
-
return "id can't be blank" if menue_id.blank?
|
34
|
-
#0 = unlimited, 1 = self, 2 = self and children 1. grades, 3 = self and up to children 2.grades
|
35
|
-
depth = options[:depth] || 0
|
36
|
-
class_name = options[:class] || ""
|
37
|
-
id_name = options[:id] || ""
|
38
|
-
if menue_id.class == String
|
39
|
-
master_menue = Goldencobra::Menue.active.find_by_title(menue_id)
|
40
|
-
else
|
41
|
-
master_menue = Goldencobra::Menue.active.find_by_id(menue_id)
|
42
|
-
end
|
43
|
-
|
44
|
-
if master_menue.present?
|
45
|
-
content = ""
|
46
|
-
master_menue.children.active.includes(:image).collect do |child|
|
47
|
-
content << navigation_menu_helper(child, depth, 1, options)
|
48
|
-
end
|
49
|
-
if id_name.present?
|
50
|
-
result = content_tag(:ul, raw(content),:id => "#{id_name}", :class => "#{class_name} #{depth} navigation #{master_menue.css_class.to_s.gsub(/\W/,' ')}".squeeze(' ').strip)
|
51
|
-
else
|
52
|
-
result = content_tag(:ul, raw(content), :class => "#{class_name} #{depth} navigation #{master_menue.css_class.to_s.gsub(/\W/,' ')}".squeeze(' ').strip)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
return raw(result)
|
56
|
-
end
|
57
|
-
|
58
|
-
|
59
|
-
def breadcrumb(options={})
|
60
|
-
id_name = options[:id] || "breadcrumb"
|
61
|
-
class_name = options[:class] || ""
|
62
|
-
if @article
|
63
|
-
list = ""
|
64
|
-
@article.path.each do |art|
|
65
|
-
link_name = link_to(art.breadcrumb_name, art.public_url)
|
66
|
-
list << content_tag(:li, raw(link_name))
|
67
|
-
end
|
68
|
-
content_list = content_tag(:ol, raw(list))
|
69
|
-
if id_name.present?
|
70
|
-
result = content_tag(:nav, raw(content_list), :id => "#{id_name}", :class => "#{class_name}")
|
71
|
-
else
|
72
|
-
result = content_tag(:nav, raw(content_list), :class => "#{class_name}")
|
73
|
-
end
|
74
|
-
return raw(result)
|
75
|
-
end
|
76
|
-
end
|
77
35
|
|
78
36
|
def index_of_articles(options={})
|
79
37
|
if @article && @article.article_for_index_id.present? && master_index_article = Goldencobra::Article.find_by_id(@article.article_for_index_id)
|
@@ -100,11 +58,19 @@ module Goldencobra
|
|
100
58
|
end
|
101
59
|
|
102
60
|
def render_article_widgets(options={})
|
61
|
+
@timecontrol = Goldencobra::Setting.for_key("goldencobra.widgets.time_control") == "true"
|
103
62
|
custom_css = options[:class] || ""
|
104
63
|
tags = options[:tagged_with] || ""
|
105
64
|
default = options[:default] || "false"
|
106
65
|
widget_wrapper = options[:wrapper] || "section"
|
107
66
|
result = ""
|
67
|
+
if params[:frontend_tags] && params[:frontend_tags].class != String && params[:frontend_tags][:format] && params[:frontend_tags][:format] == "email"
|
68
|
+
#Wenn format email, dann gibt es keinen realen webseit besucher
|
69
|
+
ability = Ability.new()
|
70
|
+
else
|
71
|
+
operator = current_user || current_visitor
|
72
|
+
ability = Ability.new(operator)
|
73
|
+
end
|
108
74
|
if @article
|
109
75
|
widgets = @article.widgets.active
|
110
76
|
if tags.present? && default == "false"
|
@@ -117,20 +83,24 @@ module Goldencobra
|
|
117
83
|
widgets = widgets.order(:sorter)
|
118
84
|
|
119
85
|
widgets.each do |widget|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
86
|
+
#check if current user has permissions to see this widget
|
87
|
+
if ability.can?(:read, widget)
|
88
|
+
template = Liquid::Template.parse(widget.content)
|
89
|
+
alt_template = Liquid::Template.parse(widget.alternative_content)
|
90
|
+
html_data_options = {"class" => "#{widget.css_name} #{custom_css} goldencobra_widget",
|
91
|
+
"id" => widget.id_name.present? ? widget.id_name : "widget_id_#{widget.id}",
|
92
|
+
'data-date-start' => widget.offline_date_start_display,
|
93
|
+
'data-date-end' => widget.offline_date_end_display,
|
94
|
+
'data-offline-active' => widget.offline_time_active,
|
95
|
+
'data-id' => widget.id
|
96
|
+
}
|
97
|
+
html_data_options = html_data_options.merge(widget.offline_time_week)
|
98
|
+
result << content_tag(widget_wrapper, raw(template.render(Goldencobra::Article::LiquidParser)), html_data_options)
|
99
|
+
if @timecontrol
|
100
|
+
result << content_tag(widget_wrapper, raw(alt_template.render(Goldencobra::Article::LiquidParser)),
|
101
|
+
class: "#{widget.css_name} #{custom_css} hidden goldencobra_widget", 'data-id' => widget.id)
|
102
|
+
end
|
103
|
+
end
|
134
104
|
end
|
135
105
|
end
|
136
106
|
return raw(result)
|
@@ -150,26 +120,5 @@ module Goldencobra
|
|
150
120
|
return raw(result)
|
151
121
|
end
|
152
122
|
|
153
|
-
def navigation_menu_helper(child, depth, current_depth, options)
|
154
|
-
child_link = content_tag(:a, child.title, :href => child.target.gsub("\"",''))
|
155
|
-
image_link = child.image.present? ? image_tag(child.image.image(:original)) : ""
|
156
|
-
child_link = child_link + content_tag(:a, image_link, :href => child.target.gsub("\"",''), :class => "navigtion_link_imgage_wrapper") unless options[:show_image] == false
|
157
|
-
child_link = child_link + content_tag(:a, child.description_title, :href => child.target.gsub("\"",''), :class => "navigtion_link_description_title") unless options[:show_description_title] == false
|
158
|
-
template = Liquid::Template.parse(child.description)
|
159
|
-
child_link = child_link + content_tag("div", raw(template.render(Goldencobra::Article::LiquidParser)), :class => "navigtion_link_description") unless options[:show_description] == false
|
160
|
-
child_link = child_link + content_tag(:a, child.call_to_action_name, :href => child.target.gsub("\"",''), :class => "navigtion_link_call_to_action_name") unless options[:show_call_to_action_name] == false
|
161
|
-
current_depth = current_depth + 1
|
162
|
-
if child.children && (depth == 0 || current_depth <= depth)
|
163
|
-
content_level = ""
|
164
|
-
child.children.active.each do |subchild|
|
165
|
-
content_level << navigation_menu_helper(subchild, depth, current_depth, options)
|
166
|
-
end
|
167
|
-
if content_level.present?
|
168
|
-
child_link = child_link + content_tag(:ul, raw(content_level), :class => "level_#{current_depth} children_#{child.children.active.visible.count}" )
|
169
|
-
end
|
170
|
-
end
|
171
|
-
return content_tag(:li, raw(child_link),"data-id" => child.id , :class => "#{child.has_active_child?(request) ? 'has_active_child' : ''} #{child.is_active?(request) ? 'active' : ''} #{child.css_class.gsub(/\W/,' ')}".squeeze(' ').strip)
|
172
|
-
end
|
173
|
-
|
174
123
|
end
|
175
124
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Goldencobra
|
2
|
+
module LoginHelper
|
3
|
+
|
4
|
+
def render_login_widget(usermodel_name)
|
5
|
+
render :partial => "/goldencobra/sessions/login", :locals => {:usermodel => usermodel_name}
|
6
|
+
end
|
7
|
+
|
8
|
+
def render_registration_widget(usermodel_name, associated_model=nil)
|
9
|
+
render :partial => "/goldencobra/sessions/register", :locals => {:usermodel => usermodel_name, :associated_model => associated_model}
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,134 @@
|
|
1
|
+
module Goldencobra
|
2
|
+
module NavigationHelper
|
3
|
+
|
4
|
+
def breadcrumb(options={})
|
5
|
+
id_name = options[:id] || "breadcrumb"
|
6
|
+
class_name = options[:class] || ""
|
7
|
+
if @article
|
8
|
+
list = ""
|
9
|
+
@article.path.each do |art|
|
10
|
+
link_name = link_to(art.breadcrumb_name, art.public_url)
|
11
|
+
list << content_tag(:li, raw(link_name))
|
12
|
+
end
|
13
|
+
content_list = content_tag(:ol, raw(list))
|
14
|
+
if id_name.present?
|
15
|
+
result = content_tag(:nav, raw(content_list), :id => "#{id_name}", :class => "#{class_name}")
|
16
|
+
else
|
17
|
+
result = content_tag(:nav, raw(content_list), :class => "#{class_name}")
|
18
|
+
end
|
19
|
+
return raw(result)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
#
|
24
|
+
# navigation_menu("Hauptmenue", :depth => 1, :class => "top", :id => "menue1", :offset => 1 )
|
25
|
+
# depth: 0 = unlimited, 1 = self, 2 = self and children 1. grades, 3 = self and up to children 2.grades
|
26
|
+
# offset: number of levels to skip, 0 = none
|
27
|
+
|
28
|
+
#<%= navigation_menu("Top-Menu", :current_article => @article, :class => "ul_main_nav", :depth => 1, :offset => 1 %>
|
29
|
+
|
30
|
+
#TODO: offset implementieren
|
31
|
+
def navigation_menu(menue_id, options={})
|
32
|
+
return "id can't be blank" if menue_id.blank?
|
33
|
+
depth = options[:depth] || 9999
|
34
|
+
offset = options[:offset] || 0
|
35
|
+
class_name = options[:class] || ""
|
36
|
+
id_name = options[:id] || ""
|
37
|
+
submenue_of_article = options[:submenue_of_article] || ""
|
38
|
+
current_article = options[:current_article] || ""
|
39
|
+
|
40
|
+
if menue_id.class == String
|
41
|
+
if current_article.present? && current_article.public_url.present?
|
42
|
+
current_menue = Goldencobra::Menue.active.where(:target => current_article.public_url(false)).select{|a| a.path.map(&:title).join("/").include?(menue_id)}.first
|
43
|
+
if current_menue
|
44
|
+
master_menue = Goldencobra::Menue.find_by_id(current_menue.path_ids[offset])
|
45
|
+
else
|
46
|
+
return ""
|
47
|
+
end
|
48
|
+
elsif submenue_of_article.present? && submenue_of_article.public_url.present?
|
49
|
+
master_menue = Goldencobra::Menue.active.where(:target => submenue_of_article.public_url).select{|a| a.path.map(&:title).join("/").include?(menue_id)}.first
|
50
|
+
else
|
51
|
+
master_menue = Goldencobra::Menue.active.find_by_pathname(menue_id)
|
52
|
+
end
|
53
|
+
else
|
54
|
+
master_menue = Goldencobra::Menue.active.find_by_id(menue_id)
|
55
|
+
end
|
56
|
+
|
57
|
+
return "" if master_menue.blank?
|
58
|
+
|
59
|
+
current_depth = master_menue.ancestry_depth
|
60
|
+
#Check for Permission
|
61
|
+
if params[:frontend_tags] && params[:frontend_tags].class != String && params[:frontend_tags][:format] && params[:frontend_tags][:format] == "email"
|
62
|
+
#Wenn format email, dann gibt es keinen realen webseit besucher
|
63
|
+
ability = Ability.new()
|
64
|
+
else
|
65
|
+
operator = current_user || current_visitor
|
66
|
+
ability = Ability.new(operator)
|
67
|
+
end
|
68
|
+
if !ability.can?(:read, master_menue)
|
69
|
+
return ""
|
70
|
+
end
|
71
|
+
if master_menue.present?
|
72
|
+
content = ""
|
73
|
+
subtree_menues = master_menue.subtree.after_depth(current_depth + offset).to_depth(current_depth + depth).active.includes(:permissions).includes(:image)
|
74
|
+
subtree_menues = subtree_menues.to_a.delete_if{|a| !ability.can?(:read, a)}
|
75
|
+
|
76
|
+
current_depth = 1
|
77
|
+
menue_roots(subtree_menues).each do |root|
|
78
|
+
content << navigation_menu_helper(root, options, subtree_menues, current_depth)
|
79
|
+
end
|
80
|
+
|
81
|
+
if id_name.present?
|
82
|
+
result = content_tag(:ul, raw(content),:id => "#{id_name}", :class => "#{class_name} #{depth} navigation #{master_menue.css_class.to_s.gsub(/\W/,' ')}".squeeze(' ').strip)
|
83
|
+
else
|
84
|
+
result = content_tag(:ul, raw(content), :class => "#{class_name} #{depth} navigation #{master_menue.css_class.to_s.gsub(/\W/,' ')}".squeeze(' ').strip)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
return raw(result)
|
88
|
+
end
|
89
|
+
|
90
|
+
private
|
91
|
+
|
92
|
+
def menue_roots(menue_array)
|
93
|
+
min_of_layers = menue_array.map{|a| a.ancestry.split("/").count }.min
|
94
|
+
return menue_array.select{|a| a.ancestry.to_s.split("/").count == min_of_layers }
|
95
|
+
end
|
96
|
+
|
97
|
+
def menue_children(menue_element, menue_array)
|
98
|
+
return menue_array.select{|a| a.ancestry.to_s.split("/").last.to_i == menue_element.id }
|
99
|
+
end
|
100
|
+
|
101
|
+
def navigation_menu_helper(child, options, subtree_menues, current_depth)
|
102
|
+
if @current_client && @current_client.url_prefix.present?
|
103
|
+
child_target_link = @current_client.url_prefix + child.target.gsub("\"",'')
|
104
|
+
else
|
105
|
+
child_target_link = child.target.gsub("\"",'')
|
106
|
+
end
|
107
|
+
child_link = content_tag(:a, child.title, :href => child_target_link)
|
108
|
+
image_link = child.image.present? ? image_tag(child.image.image(:original)) : ""
|
109
|
+
child_link = child_link + content_tag(:a, image_link, :href => child_target_link, :class => "navigtion_link_imgage_wrapper") unless options[:show_image] == false
|
110
|
+
child_link = child_link + content_tag(:a, child.description_title, :href => child_target_link, :class => "navigtion_link_description_title") unless options[:show_description_title] == false
|
111
|
+
template = Liquid::Template.parse(child.description)
|
112
|
+
child_link = child_link + content_tag("div", raw(template.render(Goldencobra::Article::LiquidParser)), :class => "navigtion_link_description") unless options[:show_description] == false
|
113
|
+
child_link = child_link + content_tag(:a, child.call_to_action_name, :href => child_target_link, :class => "navigtion_link_call_to_action_name") unless options[:show_call_to_action_name] == false
|
114
|
+
|
115
|
+
current_depth += 1
|
116
|
+
child_elements = menue_children(child, subtree_menues)
|
117
|
+
visible_child_element_count = 0
|
118
|
+
if child_elements.count > 0
|
119
|
+
content_level = ""
|
120
|
+
child_elements.each do |subchild|
|
121
|
+
if subchild.css_class != "hidden" && subchild.css_class != "not_visible"
|
122
|
+
visible_child_element_count += 1
|
123
|
+
end
|
124
|
+
content_level << navigation_menu_helper(subchild, options, subtree_menues, current_depth)
|
125
|
+
end
|
126
|
+
if content_level.present?
|
127
|
+
child_link = child_link + content_tag(:ul, raw(content_level), :class => "level_#{current_depth} children_#{visible_child_element_count}" )
|
128
|
+
end
|
129
|
+
end
|
130
|
+
return content_tag(:li, raw(child_link),"data-id" => child.id , :class => "#{ visible_child_element_count > 0 ? 'has_children' : ''} #{child.has_active_child?(request, subtree_menues) ? 'has_active_child' : ''} #{child.is_active?(request) ? 'active' : ''} #{child.css_class.gsub(/\W/,' ')}".squeeze(' ').strip)
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
@@ -11,6 +11,12 @@ module Goldencobra
|
|
11
11
|
do_not_deliver!
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
15
|
+
def send_support_mail(link)
|
16
|
+
@link = link
|
17
|
+
mail to: Goldencobra::Setting.for_key("goldencobra.live-support.email"), :subject => "Live Support Anfrage von: #{Goldencobra::Setting.for_key("goldencobra.url")}"
|
18
|
+
end
|
19
|
+
|
14
20
|
end
|
15
21
|
|
16
22
|
# http://stackoverflow.com/questions/6550809/rails-3-how-to-abort-delivery-method-in-actionmailer
|
data/app/models/ability.rb
CHANGED
@@ -3,9 +3,11 @@ class Ability
|
|
3
3
|
|
4
4
|
def initialize(operator=nil)
|
5
5
|
can :read, Goldencobra::Article
|
6
|
+
can :read, Goldencobra::Menue
|
7
|
+
can :read, Goldencobra::Widget
|
6
8
|
|
7
9
|
#Rechte die alle betreffen
|
8
|
-
Goldencobra::Permission.where("role_id IS NULL OR role_id = ''").each do |permission|
|
10
|
+
Goldencobra::Permission.where("action IS NOT NULL").where("role_id IS NULL OR role_id = ''").each do |permission|
|
9
11
|
if permission.subject_id.blank?
|
10
12
|
if permission.action.include?("not_")
|
11
13
|
cannot permission.action.gsub("not_", "").to_sym, permission.subject_class.constantize
|
@@ -1,5 +1,4 @@
|
|
1
1
|
#encoding: utf-8
|
2
|
-
|
3
2
|
# == Schema Information
|
4
3
|
#
|
5
4
|
# Table name: goldencobra_articles
|
@@ -34,7 +33,7 @@
|
|
34
33
|
# index_of_articles_tagged_with :string(255)
|
35
34
|
# sort_order :string(255)
|
36
35
|
# reverse_sort :boolean
|
37
|
-
#
|
36
|
+
# author_backup :string(255)
|
38
37
|
# sorter_limit :integer
|
39
38
|
# not_tagged_with :string(255)
|
40
39
|
# use_frontend_tags :boolean default(FALSE)
|
@@ -43,11 +42,14 @@
|
|
43
42
|
# commentable :boolean default(FALSE)
|
44
43
|
# active_since :datetime default(2012-09-30 12:53:13 UTC)
|
45
44
|
# redirect_link_title :string(255)
|
45
|
+
# display_index_types :string(255) default("show")
|
46
|
+
# author_id :integer
|
46
47
|
#
|
47
48
|
|
48
49
|
|
49
50
|
#For article rendering to string (:render_html) needed
|
50
51
|
include Goldencobra::ApplicationHelper
|
52
|
+
require "open-uri"
|
51
53
|
|
52
54
|
module Goldencobra
|
53
55
|
class Article < ActiveRecord::Base
|
@@ -56,7 +58,11 @@ module Goldencobra
|
|
56
58
|
LiquidParser = {}
|
57
59
|
SortOptions = ["Created_at", "Updated_at", "Random", "Alphabetically"]
|
58
60
|
DynamicRedirectOptions = [[:false,"deaktiviert"],[:latest,"neuester Untereintrag"], [:oldest, "ältester Untereintrag"]]
|
59
|
-
|
61
|
+
DisplayIndexTypes = [["Einzelseiten", "show"],["Übersichtsseiten", "index"], ["Alle Seiten", "all"]]
|
62
|
+
attr_accessor :hint_label, :manual_article_sort
|
63
|
+
ImportDataFunctions = []
|
64
|
+
|
65
|
+
serialize :link_checker, Hash
|
60
66
|
|
61
67
|
has_many :metatags
|
62
68
|
has_many :images, :through => :article_images, :class_name => Goldencobra::Upload
|
@@ -67,27 +73,34 @@ module Goldencobra
|
|
67
73
|
has_many :comments, :class_name => Goldencobra::Comment
|
68
74
|
has_many :permissions, :class_name => Goldencobra::Permission, :foreign_key => "subject_id", :conditions => {:subject_class => "Goldencobra::Article"}
|
69
75
|
|
76
|
+
belongs_to :author
|
77
|
+
|
70
78
|
accepts_nested_attributes_for :metatags, :allow_destroy => true, :reject_if => proc { |attributes| attributes['value'].blank? }
|
71
79
|
accepts_nested_attributes_for :article_images, :allow_destroy => true
|
72
80
|
accepts_nested_attributes_for :permissions, :allow_destroy => true
|
81
|
+
accepts_nested_attributes_for :author, :allow_destroy => true
|
73
82
|
|
74
83
|
acts_as_taggable_on :tags, :frontend_tags #https://github.com/mbleigh/acts-as-taggable-on
|
75
84
|
has_ancestry :orphan_strategy => :restrict
|
76
85
|
friendly_id :for_friendly_name, use: [:slugged] #, :history
|
77
86
|
web_url :external_url_redirect
|
78
87
|
has_paper_trail
|
79
|
-
liquid_methods :title, :created_at, :updated_at, :subtitle, :context_info
|
88
|
+
liquid_methods :title, :created_at, :updated_at, :subtitle, :context_info, :id
|
80
89
|
|
81
90
|
validates_presence_of :title, :article_type
|
82
91
|
validates_format_of :url_name, :with => /\A[\w\d-]+\Z/, allow_blank: true
|
92
|
+
validates_presence_of :breadcrumb, :on => :create
|
93
|
+
validates_length_of :breadcrumb, :within => 1..70, :on => :create
|
83
94
|
|
84
95
|
after_create :set_active_since
|
96
|
+
after_create :notification_event_create
|
85
97
|
before_save :parse_image_gallery_tags
|
98
|
+
before_save :set_url_name_if_blank
|
99
|
+
before_save :set_standard_application_template
|
100
|
+
after_save :set_default_meta_opengraph_values
|
86
101
|
after_save :verify_existence_of_opengraph_image
|
87
|
-
after_save :set_default_opengraph_values
|
88
|
-
after_create :notification_event_create
|
89
102
|
after_update :notification_event_update
|
90
|
-
|
103
|
+
before_destroy :update_parent_article_etag
|
91
104
|
|
92
105
|
attr_protected :startpage
|
93
106
|
|
@@ -104,7 +117,10 @@ module Goldencobra
|
|
104
117
|
scope :for_sitemap, where('dynamic_redirection = "false" AND ( external_url_redirect IS NULL OR external_url_redirect = "") AND active = 1 AND robots_no_index = 0')
|
105
118
|
scope :frontend_tag_name_contains, lambda{|tag_name| tagged_with(tag_name.split(","), :on => :frontend_tags)}
|
106
119
|
scope :tag_name_contains, lambda{|tag_name| tagged_with(tag_name.split(","), :on => :tags)}
|
107
|
-
|
120
|
+
if ActiveRecord::Base.connection.table_exists?("goldencobra_metatags")
|
121
|
+
scope :no_title_tag, where("goldencobra_articles.id NOT IN (?)", Goldencobra::Metatag.where(:name => "Title Tag").where("value IS NOT NULL AND value <> ''").pluck(:article_id).uniq)
|
122
|
+
scope :no_meta_description, where("goldencobra_articles.id NOT IN (?)", Goldencobra::Metatag.where(:name => "Meta Description").where("value IS NOT NULL AND value <> ''").pluck(:article_id).uniq)
|
123
|
+
end
|
108
124
|
|
109
125
|
search_methods :frontend_tag_name_contains
|
110
126
|
search_methods :tag_name_contains
|
@@ -127,8 +143,23 @@ module Goldencobra
|
|
127
143
|
end
|
128
144
|
end
|
129
145
|
|
146
|
+
|
147
|
+
# **************************
|
148
|
+
# **************************
|
130
149
|
# Instance Methods
|
131
150
|
# **************************
|
151
|
+
# **************************
|
152
|
+
|
153
|
+
#scope for index articles, display show articles, index articless or both articles of an current type
|
154
|
+
def self.articletype_for_index(current_article)
|
155
|
+
if current_article.display_index_types == "show"
|
156
|
+
articletype("#{current_article.article_type_form_file} Show")
|
157
|
+
elsif current_article.display_index_types == "index"
|
158
|
+
articletype("#{current_article.article_type_form_file} Index")
|
159
|
+
else
|
160
|
+
where("article_type = '#{current_article.article_type_form_file} Show' OR article_type = '#{current_article.article_type_form_file} Index'")
|
161
|
+
end
|
162
|
+
end
|
132
163
|
|
133
164
|
def render_html(layoutfile="application", localparams={})
|
134
165
|
av = ActionView::Base.new(ActionController::Base.view_paths + ["#{::Goldencobra::Engine.root}/app/views/goldencobra/articles/"])
|
@@ -142,6 +173,59 @@ module Goldencobra
|
|
142
173
|
return html_to_render
|
143
174
|
end
|
144
175
|
|
176
|
+
|
177
|
+
#get all links of a page and make a check for response status and time
|
178
|
+
def set_link_checker
|
179
|
+
links_to_check = []
|
180
|
+
status_for_links = {}
|
181
|
+
doc = Nokogiri::HTML(open(self.absolute_public_url))
|
182
|
+
#find all links and stylesheets
|
183
|
+
doc.css('a,link').each do |link|
|
184
|
+
if add_link_to_checklist(link, "href").present?
|
185
|
+
links_to_check << {"link" => add_link_to_checklist(link, "href"), "pos" => link.path}
|
186
|
+
end
|
187
|
+
end
|
188
|
+
#find all images and javascripts
|
189
|
+
doc.css('img,script').each do |link|
|
190
|
+
if add_link_to_checklist(link,"src").present?
|
191
|
+
links_to_check << {"link" => add_link_to_checklist(link,"src"), "pos" => link.path}
|
192
|
+
end
|
193
|
+
end
|
194
|
+
links_to_check = links_to_check.compact.delete_if{|a| a.blank?}
|
195
|
+
links_to_check.each_with_index do |linkpos|
|
196
|
+
status_for_links[linkpos["link"]] = {"position" => linkpos["pos"]}
|
197
|
+
begin
|
198
|
+
start = Time.now
|
199
|
+
response = open(linkpos["link"])
|
200
|
+
status_for_links[linkpos["link"]]["response_code"] = response.status[0]
|
201
|
+
status_for_links[linkpos["link"]]["response_time"] = Time.now - start
|
202
|
+
rescue Exception => e
|
203
|
+
status_for_links[linkpos["link"]]["response_code"] = "404"
|
204
|
+
status_for_links[linkpos["link"]]["response_error"] = e.to_s
|
205
|
+
end
|
206
|
+
end
|
207
|
+
self.link_checker = status_for_links
|
208
|
+
end
|
209
|
+
|
210
|
+
#helper method for finding links in html document
|
211
|
+
def add_link_to_checklist(link, src_type)
|
212
|
+
begin
|
213
|
+
if link.blank? || link[src_type].blank?
|
214
|
+
return nil
|
215
|
+
elsif link[src_type][0 .. 6] == "http://" || link[src_type][0 .. 6] == "https:/"
|
216
|
+
return "#{link[src_type]}"
|
217
|
+
elsif link[src_type] && link[src_type][0 .. 1] == "//"
|
218
|
+
return "http:/#{link[src_type][/.(.*)/m,1]}"
|
219
|
+
elsif link[src_type] && link[src_type][0] == "/"
|
220
|
+
return "#{Goldencobra::Setting.absolute_base_url}/#{link[src_type][/.(.*)/m,1]}"
|
221
|
+
elsif link[src_type] && !link[src_type].include?("mailto:")
|
222
|
+
return "#{self.absolute_public_url}/#{link[src_type]}"
|
223
|
+
end
|
224
|
+
rescue
|
225
|
+
return nil
|
226
|
+
end
|
227
|
+
end
|
228
|
+
|
145
229
|
def comments_of_subarticles
|
146
230
|
Goldencobra::Comment.where("article_id in (?)", self.subtree_ids)
|
147
231
|
end
|
@@ -154,12 +238,24 @@ module Goldencobra
|
|
154
238
|
end
|
155
239
|
end
|
156
240
|
|
241
|
+
|
242
|
+
#Das ist der Titel, der verwendet wird, wenn daraus ein Menüpunkt erstellt werden soll.
|
243
|
+
#der menue.title hat folgende vorgaben: validates_format_of :title, :with => /^[\w\d\?\.\'\!\s&üÜöÖäÄß\-\:\,\"]+$/
|
244
|
+
def parsed_title
|
245
|
+
self.title.to_s.gsub("/", " ")
|
246
|
+
end
|
247
|
+
|
248
|
+
|
249
|
+
#@article.image_standard @article.image_logo @article.image_logo_medium
|
157
250
|
def self.init_image_methods
|
158
251
|
if ActiveRecord::Base.connection.table_exists?("goldencobra_settings")
|
159
|
-
Goldencobra::Setting.for_key("goldencobra.article.image_positions").split(",").each do |image_type|
|
252
|
+
Goldencobra::Setting.for_key("goldencobra.article.image_positions").split(",").map(&:strip).each do |image_type|
|
160
253
|
define_method "image_#{image_type.underscore}" do
|
161
254
|
self.image(image_type,"original")
|
162
255
|
end
|
256
|
+
define_method "image_alt_#{image_type.underscore}" do
|
257
|
+
self.article_images.where(position: image_type).first.image.alt_text || self.article_images.where(position: image_type).first.image.image_file_name
|
258
|
+
end
|
163
259
|
Goldencobra::Upload.attachment_definitions[:image][:styles].keys.each do |style_name|
|
164
260
|
define_method "image_#{image_type.underscore}_#{style_name.to_s}" do
|
165
261
|
self.image(image_type,style_name)
|
@@ -171,7 +267,6 @@ module Goldencobra
|
|
171
267
|
|
172
268
|
Goldencobra::Article.init_image_methods
|
173
269
|
|
174
|
-
|
175
270
|
def image(position="standard", size="original")
|
176
271
|
any_images = self.article_images.where(position: position)
|
177
272
|
if any_images.any? && any_images.first.image && any_images.first.image.image
|
@@ -211,6 +306,85 @@ module Goldencobra
|
|
211
306
|
end
|
212
307
|
end
|
213
308
|
|
309
|
+
def index_articles(current_operator=nil, user_frontend_tags=nil)
|
310
|
+
if self.article_for_index_id.blank?
|
311
|
+
#Index aller Artikel anzeigen
|
312
|
+
@list_of_articles = Goldencobra::Article.active.articletype_for_index(self)
|
313
|
+
else
|
314
|
+
#Index aller Artikel anzeigen, die Kinder sind von einem Bestimmten artikel
|
315
|
+
parent_article = Goldencobra::Article.find_by_id(self.article_for_index_id)
|
316
|
+
if parent_article
|
317
|
+
@list_of_articles = parent_article.descendants.active.articletype_for_index(self)
|
318
|
+
else
|
319
|
+
@list_of_articles = Goldencobra::Article.active.articletype_for_index(self)
|
320
|
+
end
|
321
|
+
end
|
322
|
+
#include related models
|
323
|
+
@list_of_articles = @list_of_articles.includes("#{self.article_type_form_file.downcase}") if self.respond_to?(self.article_type_form_file.downcase)
|
324
|
+
#get articles with tag
|
325
|
+
if self.index_of_articles_tagged_with.present?
|
326
|
+
@list_of_articles = @list_of_articles.tagged_with(self.index_of_articles_tagged_with.split(",").map{|t| t.strip}, on: :tags, any: true)
|
327
|
+
end
|
328
|
+
#get articles without tag
|
329
|
+
if self.not_tagged_with.present?
|
330
|
+
@list_of_articles = @list_of_articles.tagged_with(self.not_tagged_with.split(",").map{|t| t.strip}, :exclude => true, on: :tags)
|
331
|
+
end
|
332
|
+
#get_articles_by_frontend_tags
|
333
|
+
if user_frontend_tags.present?
|
334
|
+
@list_of_articles = @list_of_articles.tagged_with(user_frontend_tags, on: :frontend_tags, any: true)
|
335
|
+
end
|
336
|
+
#filter with permissions
|
337
|
+
@list_of_articles = filter_with_permissions(@list_of_articles,current_operator)
|
338
|
+
|
339
|
+
#sort list of articles
|
340
|
+
if self.sort_order.present?
|
341
|
+
if self.sort_order == "Random"
|
342
|
+
@list_of_articles = @list_of_articles.flatten.shuffle
|
343
|
+
elsif self.sort_order == "Alphabetical"
|
344
|
+
@list_of_articles = @list_of_articles.flatten.sort_by{|article| article.title }
|
345
|
+
elsif self.sort_order == "Created_at"
|
346
|
+
@list_of_articles = @list_of_articles.flatten.sort_by{|article| article.created_at.to_i }
|
347
|
+
elsif self.respond_to?(self.sort_order)
|
348
|
+
sort_order = self.sort_order.downcase
|
349
|
+
@list_of_articles = @list_of_articles.flatten.sort_by{|article| article.respond_to?(sort_order) ? article.send(sort_order) : article }
|
350
|
+
elsif self.sort_order.include?(".")
|
351
|
+
sort_order = self.sort_order.downcase.split(".")
|
352
|
+
@unsortable = @list_of_articles.flatten.select{|a| !a.respond_to_all?(self.sort_order) }
|
353
|
+
@list_of_articles = @list_of_articles.flatten.delete_if{|a| !a.respond_to_all?(self.sort_order) }
|
354
|
+
@list_of_articles = @list_of_articles.sort_by{|a| eval("a.#{self.sort_order}") }
|
355
|
+
if @unsortable.count > 0
|
356
|
+
@list_of_articles = @unsortable + @list_of_articles
|
357
|
+
@list_of_articles = @list_of_articles.flatten
|
358
|
+
end
|
359
|
+
end
|
360
|
+
if self.reverse_sort
|
361
|
+
@list_of_articles = @list_of_articles.reverse
|
362
|
+
end
|
363
|
+
end
|
364
|
+
if self.sorter_limit && self.sorter_limit > 0
|
365
|
+
@list_of_articles = @list_of_articles[0..self.sorter_limit-1]
|
366
|
+
end
|
367
|
+
|
368
|
+
return @list_of_articles
|
369
|
+
end
|
370
|
+
|
371
|
+
|
372
|
+
# Methode filtert die @list_of_articles.
|
373
|
+
# Rückgabewert: Ein Array all der Artikel, die der operator lesen darf.
|
374
|
+
def filter_with_permissions(list, current_operator)
|
375
|
+
if current_operator && current_operator.respond_to?(:has_role?) && current_operator.has_role?(Goldencobra::Setting.for_key("goldencobra.article.preview.roles").split(",").map{|a| a.strip})
|
376
|
+
return list
|
377
|
+
else
|
378
|
+
a = Ability.new(current_operator)
|
379
|
+
new_list = []
|
380
|
+
list.each do |article|
|
381
|
+
if a.can?(:read, article)
|
382
|
+
new_list << article.id
|
383
|
+
end
|
384
|
+
end
|
385
|
+
end
|
386
|
+
return list.where('goldencobra_articles.id in (?)', new_list)
|
387
|
+
end
|
214
388
|
|
215
389
|
#Gibt ein Textstring zurück der bei den speziellen Artiekltypen für die Volltextsuche durchsucht werden soll
|
216
390
|
def searchable_in_article_type
|
@@ -232,17 +406,20 @@ module Goldencobra
|
|
232
406
|
end
|
233
407
|
end
|
234
408
|
|
235
|
-
def public_url
|
409
|
+
def public_url(with_prefix=true)
|
236
410
|
if self.startpage
|
237
|
-
|
411
|
+
if with_prefix
|
412
|
+
return "#{Goldencobra::Domain.current.try(:url_prefix)}/"
|
413
|
+
else
|
414
|
+
return "/"
|
415
|
+
end
|
238
416
|
else
|
239
|
-
"/#{self.path.select([:ancestry, :url_name, :startpage]).map{|a| a.url_name if !a.startpage}.compact.join("/")}"
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
self.url_name = self.friendly_id.split("--")[0]
|
417
|
+
a_url = "/#{self.path.select([:ancestry, :url_name, :startpage]).map{|a| a.url_name if !a.startpage}.compact.join("/")}"
|
418
|
+
if with_prefix
|
419
|
+
return "#{Goldencobra::Domain.current.try(:url_prefix)}#{a_url}"
|
420
|
+
else
|
421
|
+
return a_url
|
422
|
+
end
|
246
423
|
end
|
247
424
|
end
|
248
425
|
|
@@ -258,62 +435,27 @@ module Goldencobra
|
|
258
435
|
end
|
259
436
|
end
|
260
437
|
|
261
|
-
def
|
438
|
+
def absolute_base_url
|
262
439
|
if Goldencobra::Setting.for_key("goldencobra.use_ssl") == "true"
|
263
|
-
"https://#{Goldencobra::Setting.for_key('goldencobra.url')}
|
440
|
+
"https://#{Goldencobra::Setting.for_key('goldencobra.url')}"
|
264
441
|
else
|
265
|
-
"http://#{Goldencobra::Setting.for_key('goldencobra.url')}
|
266
|
-
end
|
267
|
-
end
|
268
|
-
|
269
|
-
def parse_image_gallery_tags
|
270
|
-
if self.respond_to?(:image_gallery_tags)
|
271
|
-
self.image_gallery_tags = self.image_gallery_tags.compact.delete_if{|a| a.blank?}.join(",") if self.image_gallery_tags.class == Array
|
442
|
+
"http://#{Goldencobra::Setting.for_key('goldencobra.url')}"
|
272
443
|
end
|
273
444
|
end
|
274
445
|
|
275
|
-
def
|
276
|
-
if Goldencobra::
|
277
|
-
Goldencobra::
|
278
|
-
|
279
|
-
|
280
|
-
end
|
281
|
-
|
282
|
-
if self.article_images.any? && self.article_images.first.present? && self.article_images.first.image.present? && self.article_images.first.image.image.present?
|
283
|
-
meta_tag = Goldencobra::Metatag.where(article_id: self.id, name: "OpenGraph Image").first
|
284
|
-
meta_tag.value = "http://#{Goldencobra::Setting.for_key('goldencobra.url')}#{self.article_images.first.image.image.url}"
|
285
|
-
meta_tag.save
|
286
|
-
end
|
287
|
-
end
|
288
|
-
|
289
|
-
def set_default_opengraph_values
|
290
|
-
if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph Title').none?
|
291
|
-
Goldencobra::Metatag.create(name: 'OpenGraph Title',
|
292
|
-
article_id: self.id,
|
293
|
-
value: self.title)
|
294
|
-
end
|
295
|
-
|
296
|
-
if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph URL').none?
|
297
|
-
Goldencobra::Metatag.create(name: 'OpenGraph URL',
|
298
|
-
article_id: self.id,
|
299
|
-
value: self.absolute_public_url)
|
300
|
-
end
|
301
|
-
|
302
|
-
if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph Description').none?
|
303
|
-
if self.teaser.present?
|
304
|
-
value = self.teaser
|
305
|
-
else
|
306
|
-
value = self.content.present? ? self.content.truncate(200) : self.title
|
307
|
-
end
|
308
|
-
Goldencobra::Metatag.create(name: 'OpenGraph Description',
|
309
|
-
article_id: self.id,
|
310
|
-
value: value)
|
446
|
+
def absolute_public_url
|
447
|
+
if Goldencobra::Setting.for_key("goldencobra.use_ssl") == "true"
|
448
|
+
"https://#{Goldencobra::Setting.for_key('goldencobra.url')}#{self.public_url}"
|
449
|
+
else
|
450
|
+
"http://#{Goldencobra::Setting.for_key('goldencobra.url')}#{self.public_url}"
|
311
451
|
end
|
312
452
|
end
|
313
453
|
|
314
454
|
def for_friendly_name
|
315
455
|
if self.url_name.present?
|
316
456
|
self.url_name
|
457
|
+
elsif self.breadcrumb.present?
|
458
|
+
self.breadcrumb
|
317
459
|
else
|
318
460
|
self.title
|
319
461
|
end
|
@@ -410,10 +552,88 @@ module Goldencobra
|
|
410
552
|
|
411
553
|
end
|
412
554
|
|
555
|
+
|
556
|
+
# **************************
|
557
|
+
# **************************
|
558
|
+
# Callback Methods
|
559
|
+
# **************************
|
560
|
+
# **************************
|
561
|
+
|
562
|
+
#Nachdem ein Artikel gelöscht wurde soll sein Elternelement aktualisiert werden, damit ein rss feed oder ähnliches mitbekommt wenn ein kindeintrag gelöscht wurde
|
563
|
+
def update_parent_article_etag
|
564
|
+
if self.parent.present?
|
565
|
+
self.parent.update_attributes(:updated_at => Time.now)
|
566
|
+
end
|
567
|
+
end
|
568
|
+
|
413
569
|
def set_active_since
|
414
570
|
self.active_since = self.created_at
|
415
571
|
end
|
416
572
|
|
573
|
+
def parse_image_gallery_tags
|
574
|
+
if self.respond_to?(:image_gallery_tags)
|
575
|
+
self.image_gallery_tags = self.image_gallery_tags.compact.delete_if{|a| a.blank?}.join(",") if self.image_gallery_tags.class == Array
|
576
|
+
end
|
577
|
+
end
|
578
|
+
|
579
|
+
def set_default_meta_opengraph_values
|
580
|
+
# Diese Zeile schein Überflüssig geworden zu sein, da nun der teaser, description oder title als defaultwerte genommen werden
|
581
|
+
#meta_description = Goldencobra::Setting.for_key('goldencobra.page.default_meta_description_tag')
|
582
|
+
|
583
|
+
if self.teaser.present?
|
584
|
+
meta_description = remove_html_tags(self.teaser)
|
585
|
+
else
|
586
|
+
meta_description = self.content.present? ? remove_html_tags(self.content).truncate(200) : self.title
|
587
|
+
end
|
588
|
+
|
589
|
+
if Goldencobra::Metatag.where(article_id: self.id, name: 'Meta Description').none?
|
590
|
+
Goldencobra::Metatag.create(name: 'Meta Description',
|
591
|
+
article_id: self.id,
|
592
|
+
value: meta_description)
|
593
|
+
end
|
594
|
+
|
595
|
+
if Goldencobra::Metatag.where(article_id: self.id, name: 'Title Tag').none?
|
596
|
+
Goldencobra::Metatag.create(name: 'Title Tag',
|
597
|
+
article_id: self.id,
|
598
|
+
#value: self.breadcrumb.present? ? self.breadcrumb : self.title)
|
599
|
+
value: self.title)
|
600
|
+
end
|
601
|
+
|
602
|
+
if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph Description').none?
|
603
|
+
Goldencobra::Metatag.create(name: 'OpenGraph Description',
|
604
|
+
article_id: self.id,
|
605
|
+
value: meta_description)
|
606
|
+
end
|
607
|
+
|
608
|
+
if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph Title').none?
|
609
|
+
Goldencobra::Metatag.create(name: 'OpenGraph Title',
|
610
|
+
article_id: self.id,
|
611
|
+
value: self.title)
|
612
|
+
end
|
613
|
+
|
614
|
+
if Goldencobra::Metatag.where(article_id: self.id, name: 'OpenGraph URL').none?
|
615
|
+
Goldencobra::Metatag.create(name: 'OpenGraph URL',
|
616
|
+
article_id: self.id,
|
617
|
+
value: self.absolute_public_url)
|
618
|
+
end
|
619
|
+
end
|
620
|
+
|
621
|
+
# helper um links zu entfernen in text
|
622
|
+
def remove_html_tags(text)
|
623
|
+
text.gsub(/<[^<]+?>/, "")
|
624
|
+
end
|
625
|
+
|
626
|
+
def verify_existence_of_opengraph_image
|
627
|
+
if Goldencobra::Metatag.where(article_id: self.id, name: "OpenGraph Image").none?
|
628
|
+
if self.article_images.any? && self.article_images.first.present? && self.article_images.first.image.present? && self.article_images.first.image.image.present?
|
629
|
+
og_img_val = "#{self.absolute_base_url}#{self.article_images.first.image.image.url}"
|
630
|
+
else
|
631
|
+
og_img_val = Goldencobra::Setting.for_key("goldencobra.facebook.opengraph_default_image")
|
632
|
+
end
|
633
|
+
Goldencobra::Metatag.create(name: "OpenGraph Image", article_id: self.id, value: og_img_val)
|
634
|
+
end
|
635
|
+
end
|
636
|
+
|
417
637
|
def notification_event_create
|
418
638
|
ActiveSupport::Notifications.instrument("goldencobra.article.created", :article_id => self.id)
|
419
639
|
end
|
@@ -422,11 +642,31 @@ module Goldencobra
|
|
422
642
|
ActiveSupport::Notifications.instrument("goldencobra.article.updated", :article_id => self.id)
|
423
643
|
end
|
424
644
|
|
645
|
+
def set_url_name_if_blank
|
646
|
+
if self.url_name.blank?
|
647
|
+
#self.url_name = self.breadcrumb
|
648
|
+
self.url_name = self.friendly_id.split("--")[0]
|
649
|
+
end
|
650
|
+
end
|
651
|
+
|
652
|
+
def set_standard_application_template
|
653
|
+
if self.template_file.blank?
|
654
|
+
self.template_file = "application"
|
655
|
+
end
|
656
|
+
end
|
657
|
+
|
658
|
+
# **************************
|
659
|
+
# **************************
|
425
660
|
# Class Methods
|
426
|
-
|
661
|
+
# **************************
|
662
|
+
# **************************
|
427
663
|
|
428
664
|
def self.active
|
429
|
-
Goldencobra::Article.where("active = 1 AND active_since < '#{Time.now.
|
665
|
+
Goldencobra::Article.where("active = 1 AND active_since < '#{Time.now.strftime('%Y-%m-%d %H:%M:%S ')}'")
|
666
|
+
end
|
667
|
+
|
668
|
+
def active?
|
669
|
+
self.active && self.active_since < Time.now.utc
|
430
670
|
end
|
431
671
|
|
432
672
|
def self.search_by_url(url)
|
@@ -434,7 +674,7 @@ module Goldencobra
|
|
434
674
|
articles = Goldencobra::Article.where(:url_name => url.split("/").last.to_s.split(".").first)
|
435
675
|
article_path = "/#{url.split('.').first}"
|
436
676
|
if articles.count > 0
|
437
|
-
article = articles.select{|a| a.public_url == article_path}.first
|
677
|
+
article = articles.select{|a| a.public_url(false) == article_path}.first
|
438
678
|
end
|
439
679
|
return article
|
440
680
|
end
|
@@ -444,7 +684,7 @@ module Goldencobra
|
|
444
684
|
end
|
445
685
|
|
446
686
|
def self.recent(count)
|
447
|
-
Goldencobra::Article.where('title IS NOT NULL').order('
|
687
|
+
Goldencobra::Article.where('title IS NOT NULL').order('created_at DESC').limit(count)
|
448
688
|
end
|
449
689
|
|
450
690
|
def self.recreate_cache
|