pwb 1.0.0 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/javascripts/comfy/admin/cms/custom.js.coffee +1 -0
- data/app/assets/stylesheets/comfy/admin/cms/custom.sass +1 -0
- data/app/assets/stylesheets/pwb/themes/berlin/inmo.scss +6 -1
- data/app/assets/stylesheets/pwb/themes/berlin/main.scss +12 -11
- data/app/assets/stylesheets/pwb/themes/default/shame.scss +1 -1
- data/app/controllers/pwb/admin_panel_controller.rb +2 -2
- data/app/controllers/pwb/api/v1/cms_pages_controller.rb +102 -0
- data/app/controllers/pwb/api/v1/website_controller.rb +7 -0
- data/app/controllers/pwb/api_public/v1/props_controller.rb +2 -2
- data/app/controllers/pwb/application_api_controller.rb +3 -7
- data/app/controllers/pwb/application_controller.rb +2 -3
- data/app/controllers/pwb/comfy_controller.rb +106 -0
- data/app/controllers/pwb/css_controller.rb +1 -2
- data/app/controllers/pwb/devise/registrations_controller.rb +2 -5
- data/app/controllers/pwb/devise_controller.rb +3 -8
- data/app/controllers/pwb/export/properties_controller.rb +5 -6
- data/app/controllers/pwb/export/translations_controller.rb +1 -5
- data/app/controllers/pwb/export/web_contents_controller.rb +1 -4
- data/app/controllers/pwb/export/website_controller.rb +0 -1
- data/app/controllers/pwb/import/mls_controller.rb +3 -6
- data/app/controllers/pwb/import/properties_controller.rb +2 -4
- data/app/controllers/pwb/import/scrapper_controller.rb +6 -9
- data/app/controllers/pwb/props_controller.rb +10 -13
- data/app/controllers/pwb/search_controller.rb +16 -16
- data/app/controllers/pwb/sections_controller.rb +21 -22
- data/app/controllers/pwb/welcome_controller.rb +1 -2
- data/app/helpers/pwb/application_helper.rb +37 -0
- data/app/helpers/pwb/css_helper.rb +9 -0
- data/app/models/pwb/cms_page_container.rb +9 -0
- data/app/models/pwb/content.rb +10 -6
- data/app/models/pwb/prop.rb +12 -4
- data/app/models/pwb/section.rb +1 -1
- data/app/models/pwb/website.rb +14 -1
- data/app/resources/pwb/api/v1/cms_block_resource.rb +11 -0
- data/app/resources/pwb/api/v1/cms_page_resource.rb +27 -0
- data/app/themes/berlin/views/layouts/pwb/application.html.erb +25 -9
- data/app/themes/berlin/views/pwb/props/show.html.erb +5 -5
- data/app/themes/berlin/views/pwb/search/_search_results.html.erb +2 -1
- data/app/themes/berlin/views/pwb/search/buy.html.erb +1 -1
- data/app/themes/berlin/views/pwb/search/rent.html.erb +2 -1
- data/app/themes/berlin/views/pwb/sections/about_us.html.erb +3 -2
- data/app/themes/berlin/views/pwb/sections/cms.html.erb +34 -0
- data/app/themes/berlin/views/pwb/sections/contact_us.html.erb +2 -1
- data/app/themes/berlin/views/pwb/welcome/_about_us_to_del.html.erb +35 -0
- data/app/themes/berlin/views/pwb/welcome/{_adv_search.html.erb → _adv_search_to_del.html.erb} +0 -0
- data/app/themes/berlin/views/pwb/welcome/_landing_carousel.html.erb +1 -1
- data/app/themes/berlin/views/pwb/welcome/_latest_properties.html.erb +2 -1
- data/app/themes/default/views/layouts/pwb/application.html.erb +24 -3
- data/app/themes/default/views/pwb/sections/about_us.html.erb +1 -2
- data/app/themes/default/views/pwb/sections/cms.html.erb +30 -0
- data/app/themes/default/views/pwb/welcome/_single_property_row.html.erb +2 -1
- data/app/themes/default/views/pwb/welcome/index.html.erb +3 -1
- data/app/views/layouts/pwb/devise.html.erb +1 -0
- data/app/views/pwb/_analytics.html.erb +15 -0
- data/app/views/pwb/_footer.html.erb +0 -12
- data/app/views/pwb/custom_css/{berlin.css.erb → _berlin.css.erb} +0 -1
- data/app/views/pwb/custom_css/{default.css.erb → _default.css.erb} +0 -1
- data/app/views/pwb/custom_css/_shared.css.erb +1 -0
- data/app/views/pwb/props/_images_section_carousel.html.erb +13 -27
- data/app/views/pwb/props/_prop_info_list.html.erb +1 -1
- data/app/views/pwb/search/_search_result_item.html.erb +62 -64
- data/app/views/pwb/search/_search_result_item_to_del.html.erb +3 -3
- data/config/client_setups/default.json +59 -21
- data/config/cms_page_containers/about-us.json +18 -0
- data/config/cms_page_containers/about.json +107 -0
- data/config/cms_page_containers/landing.json +19 -0
- data/config/cms_page_containers/legal.json +17 -0
- data/config/cms_page_containers/sell.json +96 -0
- data/config/initializers/cloudinary.rb +3 -0
- data/config/initializers/comfortable_mexican_sofa.rb +142 -0
- data/config/locales/admin.en.yml +213 -0
- data/config/locales/admin.es.yml +32 -17
- data/config/locales/admin.ru.yml +432 -0
- data/config/locales/admin.zh.yml.tmp +226 -0
- data/config/locales/de.yml +31 -32
- data/config/locales/devise.zh-HK.yml +119 -0
- data/config/locales/en.yml +3 -0
- data/config/locales/es.yml +3 -5
- data/config/locales/rails.zh-HK.yml +210 -0
- data/config/locales/ru.yml +11 -11
- data/config/locales/zh-HK.yml +154 -0
- data/config/routes.rb +17 -2
- data/db/cms_fixtures/cms/categories/pages.yml +3 -0
- data/db/cms_fixtures/cms/files/_rerenting-landing_framed.png.yml +6 -0
- data/{spec/dummy/public/system/comfy/cms/files/files/000/000/003/original → db/cms_fixtures/cms/files}/rerenting-landing_framed.png +0 -0
- data/db/cms_fixtures/cms/layouts/about-us/attributes.yml +4 -0
- data/db/cms_fixtures/cms/layouts/about-us/content.html +0 -0
- data/db/cms_fixtures/cms/layouts/about-us/javascript.js +0 -0
- data/db/cms_fixtures/cms/layouts/about-us/people/attributes.yml +4 -0
- data/db/cms_fixtures/cms/layouts/about-us/people/content.html +55 -0
- data/db/cms_fixtures/cms/layouts/about-us/services/attributes.yml +4 -0
- data/db/cms_fixtures/cms/layouts/about-us/services/content.html +32 -0
- data/db/cms_fixtures/cms/layouts/about-us/services/javascript.js +0 -0
- data/db/cms_fixtures/cms/layouts/about-us/services/stylesheet.css +0 -0
- data/db/cms_fixtures/cms/layouts/about-us/stylesheet.css +0 -0
- data/db/cms_fixtures/cms/layouts/default-layout/attributes.yml +4 -0
- data/db/cms_fixtures/cms/layouts/default-layout/content.html +51 -0
- data/db/cms_fixtures/cms/layouts/default-layout/javascript.js +0 -0
- data/db/cms_fixtures/cms/layouts/default-layout/stylesheet.css +0 -0
- data/db/cms_fixtures/cms/pages/index/about-us/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_d.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/content_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/content_b.html +0 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/content_c.html +0 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_b.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_c.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/title_a.html +1 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/title_b.html +0 -0
- data/db/cms_fixtures/cms/pages/index/about-us/services/title_c.html +0 -0
- data/db/cms_fixtures/cms/pages/index/attributes.yml +8 -0
- data/db/cms_fixtures/cms/pages/index/content.html +1 -0
- data/db/cms_fixtures/cms/pages/index/title.html +0 -0
- data/db/cms_fixtures/cms/snippets/snippet1/attributes.yml +3 -0
- data/db/cms_fixtures/cms/snippets/snippet1/content.html +1 -0
- data/db/cms_fixtures/sample-site/categories/files.yml +1 -0
- data/db/cms_fixtures/sample-site/categories/pages.yml +1 -0
- data/db/cms_fixtures/sample-site/categories/snippets.yml +1 -0
- data/db/cms_fixtures/sample-site/files/_sample.jpg.yml +5 -0
- data/db/cms_fixtures/sample-site/files/sample.jpg +0 -0
- data/db/cms_fixtures/sample-site/layouts/default/attributes.yml +1 -0
- data/db/cms_fixtures/sample-site/layouts/default/content.html +5 -0
- data/db/cms_fixtures/sample-site/layouts/default/javascript.js +1 -0
- data/db/cms_fixtures/sample-site/layouts/default/nested/attributes.yml +2 -0
- data/db/cms_fixtures/sample-site/layouts/default/nested/content.haml +3 -0
- data/db/cms_fixtures/sample-site/layouts/default/nested/javascript.js +1 -0
- data/db/cms_fixtures/sample-site/layouts/default/nested/stylesheet.css +1 -0
- data/db/cms_fixtures/sample-site/layouts/default/stylesheet.css +1 -0
- data/db/cms_fixtures/sample-site/pages/index/attributes.yml +6 -0
- data/db/cms_fixtures/sample-site/pages/index/child/attributes.yml +3 -0
- data/db/cms_fixtures/sample-site/pages/index/child/left.haml +1 -0
- data/db/cms_fixtures/sample-site/pages/index/child/right.html +1 -0
- data/db/cms_fixtures/sample-site/pages/index/child/thumbnail.png +0 -0
- data/db/cms_fixtures/sample-site/pages/index/content.html +2 -0
- data/db/cms_fixtures/sample-site/snippets/default/attributes.yml +4 -0
- data/db/cms_fixtures/sample-site/snippets/default/content.html +1 -0
- data/db/migrate/20170513221300_create_cms.rb +133 -0
- data/db/seeds/spain/translations.rb +2 -2
- data/db/seeds/translations_ca.rb +92 -0
- data/db/seeds/translations_de.rb +86 -85
- data/db/seeds/translations_en.rb +73 -73
- data/db/seeds/translations_es.rb +79 -78
- data/db/seeds/translations_ru.rb +92 -0
- data/db/yml_seeds/prop/flat_for_rent.yml +4 -4
- data/db/yml_seeds/sections.yml +2 -2
- data/db/yml_seeds/website.yml +3 -1
- data/lib/pwb/cms_data_loader.rb +38 -0
- data/lib/pwb/engine.rb +1 -0
- data/lib/pwb/locale_loader.rb +47 -0
- data/lib/pwb/seeder.rb +8 -5
- data/lib/pwb/version.rb +1 -1
- data/lib/tasks/pwb_tasks.rake +1 -0
- data/spec/dummy/config/routes.rb +5 -0
- data/spec/dummy/config/secrets.yml +5 -0
- data/spec/dummy/db/schema.rb +111 -1
- data/spec/dummy/log/development.log +0 -0
- data/spec/features/pwb/admin_spec.rb +14 -40
- data/spec/features/pwb/admin_spec_tmp.rb +54 -0
- data/spec/fixtures/to_import/pwb-properties.csv +2 -2
- data/spec/views/pwb/application_layout.html.erb_spec.rb +1 -0
- metadata +207 -235
- data/app/themes/berlin/views/pwb/welcome/_about_us.html.erb +0 -36
- data/db/seeds/translations_others.rb +0 -215
- data/spec/dummy/public/assets/application-af04b226fd7202dfc532ce7aedb95a0128277937e90d3b3a3d35e1cce9e16886.css +0 -16
- data/spec/dummy/public/assets/application-af04b226fd7202dfc532ce7aedb95a0128277937e90d3b3a3d35e1cce9e16886.css.gz +0 -0
- data/spec/dummy/public/assets/application-ec8550e416fd8df1557ddb7f132ccd38baaafd36e4c5c9aff8420fbd47c0313f.js +0 -617
- data/spec/dummy/public/assets/application-ec8550e416fd8df1557ddb7f132ccd38baaafd36e4c5c9aff8420fbd47c0313f.js.gz +0 -0
- data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot +0 -0
- data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-13634da87d9e23f8c3ed9108ce1724d183a39ad072e73e1b3d8cbf646d2d0407.eot.gz +0 -0
- data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg +0 -288
- data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-42f60659d265c1a3c30f9fa42abcbb56bd4a53af4d83d316d6dd7a36903c43e5.svg.gz +0 -0
- data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-a26394f7ede100ca118eff2eda08596275a9839b959c226e15439557a5a80742.woff +0 -0
- data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf +0 -0
- data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-e395044093757d82afcb138957d06a1ea9361bdcf0b442d06a18a8051af57456.ttf.gz +0 -0
- data/spec/dummy/public/assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2 +0 -0
- data/spec/dummy/public/assets/pwb/application-0dc6ff845cde8e032ed365593c17fe09c18a6966d44f551946bf1673d8d1ac51.css +0 -13
- data/spec/dummy/public/assets/pwb/application-0dc6ff845cde8e032ed365593c17fe09c18a6966d44f551946bf1673d8d1ac51.css.gz +0 -0
- data/spec/dummy/public/assets/pwb/application-b4df8e7ae7700a0d09d88175af77e7f457ca2fbe15ae08450551ebf3bfb0c4d1.js +0 -15656
- data/spec/dummy/public/assets/pwb/application-b4df8e7ae7700a0d09d88175af77e7f457ca2fbe15ae08450551ebf3bfb0c4d1.js.gz +0 -0
- data/spec/dummy/public/assets/pwb/themes/berlin-279c2e3a7fa11a902fdee83a6819dcc315ff8eb240cfad21b1322cedadb07ea7.js +0 -18690
- data/spec/dummy/public/assets/pwb/themes/berlin-279c2e3a7fa11a902fdee83a6819dcc315ff8eb240cfad21b1322cedadb07ea7.js.gz +0 -0
- data/spec/dummy/public/assets/pwb/themes/berlin-8038d5cfd670e73fbffb581f6bb8d8c00ac448957945622c5c34438c467d218b.css +0 -8582
- data/spec/dummy/public/assets/pwb/themes/berlin-8038d5cfd670e73fbffb581f6bb8d8c00ac448957945622c5c34438c467d218b.css.gz +0 -0
- data/spec/dummy/public/assets/pwb/themes/chic-facdff61de4827adfd797b6a36ffd6c8b432072df7190ed722d039f971caa539.css +0 -3500
- data/spec/dummy/public/assets/pwb/themes/chic-facdff61de4827adfd797b6a36ffd6c8b432072df7190ed722d039f971caa539.css.gz +0 -0
- data/spec/dummy/public/assets/pwb/themes/default-d697fb0c278f500986e614ddd7eb41fd7db502a54f3370b3e8166cc1714509d0.css +0 -8423
- data/spec/dummy/public/assets/pwb/themes/default-d697fb0c278f500986e614ddd7eb41fd7db502a54f3370b3e8166cc1714509d0.css.gz +0 -0
- data/spec/dummy/public/assets/pwb_admin_panel/application-2d624898965d7a347eb7f365feab34257032c25051633370811ed7dfd24d7c8c.js +0 -61
- data/spec/dummy/public/assets/pwb_admin_panel/application-2d624898965d7a347eb7f365feab34257032c25051633370811ed7dfd24d7c8c.js.gz +0 -0
- data/spec/dummy/public/assets/pwb_admin_panel/application-f0e38d58d1ce32501b22edd16697f45b561fa44b5be9265398a05e8dee169885.css +0 -17970
- data/spec/dummy/public/assets/pwb_admin_panel/application-f0e38d58d1ce32501b22edd16697f45b561fa44b5be9265398a05e8dee169885.css.gz +0 -0
- data/spec/dummy/public/img/about-us.png +0 -0
- data/spec/dummy/public/img/agents/agent-1.png +0 -0
- data/spec/dummy/public/img/agents/agent-3.png +0 -0
- data/spec/dummy/public/img/agents/agent-4.png +0 -0
- data/spec/dummy/public/img/agents/agent-5.png +0 -0
- data/spec/dummy/public/img/banner-ads.jpg +0 -0
- data/spec/dummy/public/img/blog-img-1.jpg +0 -0
- data/spec/dummy/public/img/blog-img-2.jpg +0 -0
- data/spec/dummy/public/img/blog-img-3.jpg +0 -0
- data/spec/dummy/public/img/client-brand-1.png +0 -0
- data/spec/dummy/public/img/client-brand-2.png +0 -0
- data/spec/dummy/public/img/client-brand-3.png +0 -0
- data/spec/dummy/public/img/client-brand-4.png +0 -0
- data/spec/dummy/public/img/client-brand-5.png +0 -0
- data/spec/dummy/public/img/favicon.ico +0 -0
- data/spec/dummy/public/img/gallery/big/1.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/10.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/11 - Copy.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/12.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/2.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/3.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/4.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/5.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/6.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/7.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/8.jpg +0 -0
- data/spec/dummy/public/img/gallery/big/9.jpg +0 -0
- data/spec/dummy/public/img/gallery/fancybox_buttons.png +0 -0
- data/spec/dummy/public/img/gallery/fancybox_loading.gif +0 -0
- data/spec/dummy/public/img/gallery/fancybox_loading@2x.gif +0 -0
- data/spec/dummy/public/img/gallery/fancybox_overlay.png +0 -0
- data/spec/dummy/public/img/gallery/fancybox_sprite.png +0 -0
- data/spec/dummy/public/img/gallery/fancybox_sprite@2x.png +0 -0
- data/spec/dummy/public/img/gallery/small/1.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/10.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/11.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/12.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/2.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/3.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/4.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/5.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/6.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/7.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/8.jpg +0 -0
- data/spec/dummy/public/img/gallery/small/9.jpg +0 -0
- data/spec/dummy/public/img/item/1.jpg +0 -0
- data/spec/dummy/public/img/item/2.jpg +0 -0
- data/spec/dummy/public/img/item/3.jpg +0 -0
- data/spec/dummy/public/img/item/4.jpg +0 -0
- data/spec/dummy/public/img/item/5.jpg +0 -0
- data/spec/dummy/public/img/item/6.jpg +0 -0
- data/spec/dummy/public/img/logo.png +0 -0
- data/spec/dummy/public/img/promo-banner.jpg +0 -0
- data/spec/dummy/public/img/property-header-bg.jpg +0 -0
- data/spec/dummy/public/img/property-view-2.jpg +0 -0
- data/spec/dummy/public/img/signin-bg.jpg +0 -0
- data/spec/dummy/public/img/slider/1.jpg +0 -0
- data/spec/dummy/public/img/slider/2.jpg +0 -0
- data/spec/dummy/public/img/slider/3.jpg +0 -0
- data/spec/dummy/public/img/slider/4.jpg +0 -0
- data/spec/dummy/public/img/slider/5.jpg +0 -0
- data/spec/dummy/public/img/slider/6.jpg +0 -0
- data/spec/dummy/public/img/testimonial-1.png +0 -0
- data/spec/dummy/public/img/testimonial-2.png +0 -0
- data/spec/dummy/public/img/testimonial-3.png +0 -0
- data/spec/dummy/public/img/testimonial-bg.jpg +0 -0
- data/spec/dummy/public/js/bootstrap.js +0 -2363
- data/spec/dummy/public/js/custom.js +0 -355
- data/spec/dummy/public/js/jquery.fancybox.pack.js +0 -46
- data/spec/dummy/public/js/jquery.min.js +0 -5
- data/spec/dummy/public/js/jquery.mixitup.js +0 -2098
- data/spec/dummy/public/js/nouislider.js +0 -1899
- data/spec/dummy/public/js/slick.js +0 -2670
- data/spec/dummy/public/system/comfy/cms/files/files/000/000/003/cms_thumb/rerenting-landing_framed.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2344b18a108db8c20c5f6b1760e737006abacc2
|
4
|
+
data.tar.gz: 89708feddefa2c2fd85e8de643887c097a3bd1d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c3839ba5b0c53acba955504b44d4139ad5ef418310ed8bab0f1daf8e335b206d6fa75863df54754c416143a6b9628daef20ca689538a49d392e6b400b183fcb8
|
7
|
+
data.tar.gz: 58590fd4afc2f37f285fa4714d69c82ffbc8ba2e80a818c20e4a46cc4a405c2c728b70c0153c803afb137281e53b748eb3c3e397f8d0aa2f84d7401872b29cdc
|
data/README.md
CHANGED
@@ -32,7 +32,7 @@ Install into an existing Rails project by adding these lines in your application
|
|
32
32
|
```ruby
|
33
33
|
gem 'pwb', git: 'https://github.com/etewiah/property_web_builder', branch: 'master'
|
34
34
|
gem 'globalize', git: 'https://github.com/globalize/globalize'
|
35
|
-
|
35
|
+
gem 'paloma', github: 'fredngo/paloma'
|
36
36
|
```
|
37
37
|
|
38
38
|
Also, be sure to use Postgres as your database (by having the "pg" gem and Postgres installed locally
|
@@ -0,0 +1 @@
|
|
1
|
+
# Custom JS for the admin area
|
@@ -0,0 +1 @@
|
|
1
|
+
// custom CSS for admin area
|
@@ -234,7 +234,8 @@ img {
|
|
234
234
|
|
235
235
|
#aa-menu-area {
|
236
236
|
left: 0;
|
237
|
-
|
237
|
+
/*Ed - reduced below from 20px*/
|
238
|
+
padding-top: 2px;
|
238
239
|
position: absolute;
|
239
240
|
right: 0;
|
240
241
|
top: 35px;
|
@@ -268,8 +269,9 @@ img {
|
|
268
269
|
}
|
269
270
|
|
270
271
|
#aa-menu-area .main-navbar .navbar-header .aa-logo-img img {
|
271
|
-
width: 100
|
272
|
+
/*width: 100%;*/
|
272
273
|
height: 100%;
|
274
|
+
object-fit: cover;
|
273
275
|
}
|
274
276
|
|
275
277
|
#aa-menu-area .main-navbar .navbar-nav li a {
|
@@ -306,7 +308,7 @@ img {
|
|
306
308
|
|
307
309
|
#aa-menu-area .navbar-fixed-top {
|
308
310
|
background-color: #FFF;
|
309
|
-
padding: 15px 0
|
311
|
+
/*padding: 15px 0;*/
|
310
312
|
-webkit-transition: all 0.5s;
|
311
313
|
-moz-transition: all 0.5s;
|
312
314
|
-ms-transition: all 0.5s;
|
@@ -546,6 +548,7 @@ img {
|
|
546
548
|
#aa-slider .aa-slider-area .aa-top-slider .aa-top-slider-single img {
|
547
549
|
width: 100%;
|
548
550
|
height: 700px;
|
551
|
+
object-fit: cover;
|
549
552
|
}
|
550
553
|
|
551
554
|
#aa-slider .aa-slider-area .aa-top-slider .aa-top-slider-single .aa-top-slider-content {
|
@@ -832,7 +835,7 @@ img {
|
|
832
835
|
.aa-properties-item {
|
833
836
|
display: inline;
|
834
837
|
float: left;
|
835
|
-
/* margin-top: 30px;
|
838
|
+
/* margin-top: 30px;
|
836
839
|
*/
|
837
840
|
margin-bottom: 30px;
|
838
841
|
width: 100%;
|
@@ -855,6 +858,7 @@ img {
|
|
855
858
|
.aa-properties-item .aa-properties-item-img img {
|
856
859
|
width: 100%;
|
857
860
|
height: 239px;
|
861
|
+
object-fit: cover;
|
858
862
|
}
|
859
863
|
|
860
864
|
.aa-properties-item .aa-tag {
|
@@ -1384,6 +1388,7 @@ img {
|
|
1384
1388
|
.aa-properties-details .aa-properties-details-img img {
|
1385
1389
|
height: 500px;
|
1386
1390
|
width: 100%;
|
1391
|
+
object-fit: cover;
|
1387
1392
|
}
|
1388
1393
|
|
1389
1394
|
.aa-properties-details .aa-properties-details-img .slick-prev,
|
@@ -1426,6 +1431,7 @@ img {
|
|
1426
1431
|
margin-bottom: 10px;
|
1427
1432
|
}
|
1428
1433
|
|
1434
|
+
|
1429
1435
|
/*
|
1430
1436
|
-tick before each extra
|
1431
1437
|
.aa-properties-details .aa-properties-info ul li:before {
|
@@ -1496,13 +1502,12 @@ img {
|
|
1496
1502
|
}
|
1497
1503
|
|
1498
1504
|
|
1499
|
-
|
1500
1505
|
/*==================
|
1501
1506
|
FOOTER SECTION
|
1502
1507
|
====================*/
|
1503
1508
|
|
1504
1509
|
#aa-footer {
|
1505
|
-
/* background-color: #444;
|
1510
|
+
/* background-color: #444;
|
1506
1511
|
*/
|
1507
1512
|
display: inline;
|
1508
1513
|
float: left;
|
@@ -1523,7 +1528,7 @@ img {
|
|
1523
1528
|
}
|
1524
1529
|
|
1525
1530
|
#aa-footer .aa-footer-area .aa-footer-left p {
|
1526
|
-
/* color: #fff;
|
1531
|
+
/* color: #fff;
|
1527
1532
|
*/
|
1528
1533
|
margin-bottom: 0;
|
1529
1534
|
padding-bottom: 10px;
|
@@ -1626,8 +1631,6 @@ img {
|
|
1626
1631
|
/*Ed - for mobile show full length photos */
|
1627
1632
|
height: 100%;
|
1628
1633
|
}
|
1629
|
-
|
1630
|
-
|
1631
1634
|
#aa-menu-area .main-navbar .navbar-nav li a {
|
1632
1635
|
padding-left: 8px;
|
1633
1636
|
padding-right: 8px;
|
@@ -1932,8 +1935,6 @@ img {
|
|
1932
1935
|
#aa-properties .aa-properties-content .aa-properties-content-body .aa-list-view li .aa-properties-item .aa-properties-item-img {
|
1933
1936
|
width: 100%;
|
1934
1937
|
}
|
1935
|
-
|
1936
|
-
|
1937
1938
|
#aa-properties .aa-properties-content .aa-properties-content-body .aa-list-view li .aa-properties-item .aa-properties-item-content {
|
1938
1939
|
border-top: medium none;
|
1939
1940
|
width: 100%;
|
@@ -4,8 +4,8 @@ module Pwb
|
|
4
4
|
class AdminPanelController < ActionController::Base
|
5
5
|
layout 'pwb/admin_panel'
|
6
6
|
def show
|
7
|
-
unless current_user && current_user.admin
|
8
|
-
render 'pwb/errors/admin_required', :
|
7
|
+
unless current_user && current_user.admin
|
8
|
+
render 'pwb/errors/admin_required', layout: "layouts/pwb/devise"
|
9
9
|
end
|
10
10
|
end
|
11
11
|
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
module Pwb
|
2
|
+
# http://localhost:3000/api/v1/cms-pages.json
|
3
|
+
class Api::V1::CmsPagesController < JSONAPI::ResourceController
|
4
|
+
# skip_before_action :verify_content_type_header
|
5
|
+
# Skipping action below allows me to browse to endpoint
|
6
|
+
# without having set mime type
|
7
|
+
skip_before_action :ensure_valid_accept_media_type
|
8
|
+
# skip_before_action :verify_accept_header
|
9
|
+
|
10
|
+
def set_photo
|
11
|
+
# This only creates a content photo
|
12
|
+
# - does not associate it with a cms page yet
|
13
|
+
photo = ContentPhoto.create
|
14
|
+
# TODO: - figure out how to remove orphaned photos
|
15
|
+
if params[:file]
|
16
|
+
photo.image = params[:file]
|
17
|
+
end
|
18
|
+
photo.save!
|
19
|
+
photo.reload
|
20
|
+
render json: photo.to_json
|
21
|
+
end
|
22
|
+
|
23
|
+
def meta
|
24
|
+
@admin_setup = Pwb::CmsPageContainer.where(name: params[:page_name]).first || {}
|
25
|
+
render json: @admin_setup.as_json["attributes"]
|
26
|
+
end
|
27
|
+
|
28
|
+
def create
|
29
|
+
new_page = Comfy::Cms::Page.new(cms_page_create_params["attributes"].except("blocks"))
|
30
|
+
cms_page_create_params[:attributes][:blocks].each do |block_params|
|
31
|
+
new_block = Comfy::Cms::Block.new block_params
|
32
|
+
new_block.identifier = "idd"
|
33
|
+
new_block.save!
|
34
|
+
new_page.blocks << new_block
|
35
|
+
end
|
36
|
+
|
37
|
+
new_page.site_id = 1
|
38
|
+
new_page.layout_id = 1
|
39
|
+
# new_page.slug = "en"
|
40
|
+
byebug
|
41
|
+
new_page.label = "lbl"
|
42
|
+
|
43
|
+
new_page.save!
|
44
|
+
|
45
|
+
serialized_page = JSONAPI::ResourceSerializer.new(Pwb::Api::V1::CmsPageResource).serialize_to_hash(Pwb::Api::V1::CmsPageResource.new(new_page, nil))
|
46
|
+
# updated_caches.push {}
|
47
|
+
# serialized_page[:data]["attributes"]["updated-caches"] = updated_caches
|
48
|
+
render json: serialized_page
|
49
|
+
|
50
|
+
end
|
51
|
+
|
52
|
+
def update
|
53
|
+
updated_caches = []
|
54
|
+
refresh_all_locales = false
|
55
|
+
cms_page_update_params[:attributes][:blocks].each do |block_params|
|
56
|
+
block = Comfy::Cms::Block.find block_params[:id]
|
57
|
+
if block_params[:is_image]
|
58
|
+
# for images I want to update all language variants of the block
|
59
|
+
cross_locale_blocks = Comfy::Cms::Block.where(identifier: block_params[:identifier])
|
60
|
+
cross_locale_blocks.each do |cross_locale_block|
|
61
|
+
cross_locale_block.update block_params.slice :content
|
62
|
+
end
|
63
|
+
refresh_all_locales = true
|
64
|
+
else
|
65
|
+
block.update block_params.slice :content
|
66
|
+
end
|
67
|
+
# blocks.push block
|
68
|
+
end
|
69
|
+
|
70
|
+
if refresh_all_locales
|
71
|
+
pages = Comfy::Cms::Page.where(label: cms_page_update_params[:attributes][:label])
|
72
|
+
pages.each do |page|
|
73
|
+
page.clear_content_cache
|
74
|
+
updated_caches.push({
|
75
|
+
page_id: page.id,
|
76
|
+
page_content_cache: page.content_cache
|
77
|
+
})
|
78
|
+
end
|
79
|
+
else
|
80
|
+
page = Comfy::Cms::Page.find cms_page_update_params[:id]
|
81
|
+
page.clear_content_cache
|
82
|
+
# need to call content_cache again for refresh
|
83
|
+
page.content_cache
|
84
|
+
end
|
85
|
+
|
86
|
+
# below ensures valid json_api response is sent:
|
87
|
+
page = Comfy::Cms::Page.find cms_page_update_params[:id]
|
88
|
+
serialized_page = JSONAPI::ResourceSerializer.new(Pwb::Api::V1::CmsPageResource).serialize_to_hash(Pwb::Api::V1::CmsPageResource.new(page, nil))
|
89
|
+
updated_caches.push {}
|
90
|
+
serialized_page[:data]["attributes"]["updated-caches"] = updated_caches
|
91
|
+
# [{id: 22, cc: "dddd"}]
|
92
|
+
render json: serialized_page
|
93
|
+
end
|
94
|
+
|
95
|
+
def cms_page_create_params
|
96
|
+
params.require(:data).permit(attributes: [:slug, :site_id, :label, blocks: [:content, :identifier, :info, :is_image]])
|
97
|
+
end
|
98
|
+
def cms_page_update_params
|
99
|
+
params.require(:data).permit(:id, attributes: [:label, blocks: [:content, :id, :identifier, :info, :is_image]])
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -13,6 +13,10 @@ module Pwb
|
|
13
13
|
# which is ugly but works
|
14
14
|
@website.social_media = params[:website][:social_media]
|
15
15
|
@website.style_variables = params[:website][:style_variables]
|
16
|
+
@website.sale_price_options_from = params[:website][:sale_price_options_from]
|
17
|
+
@website.sale_price_options_till = params[:website][:sale_price_options_till]
|
18
|
+
@website.rent_price_options_from = params[:website][:rent_price_options_from]
|
19
|
+
@website.rent_price_options_till = params[:website][:rent_price_options_till]
|
16
20
|
@website.save!
|
17
21
|
end
|
18
22
|
render json: @website
|
@@ -25,6 +29,9 @@ module Pwb
|
|
25
29
|
:company_name, :display_name, :default_area_unit,
|
26
30
|
:phone_number_primary, :phone_number_other,
|
27
31
|
:theme_name, :default_currency, :default_client_locale,
|
32
|
+
:raw_css, :analytics_id_type, :analytics_id,
|
33
|
+
:sale_price_options_from, :sale_price_options_till,
|
34
|
+
:rent_price_options_from, :rent_price_options_till,
|
28
35
|
supported_locales: []
|
29
36
|
)
|
30
37
|
end
|
@@ -12,8 +12,8 @@ module Pwb
|
|
12
12
|
# verify_content_type_header
|
13
13
|
# verify_accept_header
|
14
14
|
|
15
|
-
|
16
|
-
|
15
|
+
before_action :cors_preflight_check
|
16
|
+
after_action :cors_set_access_control_headers
|
17
17
|
|
18
18
|
# For all responses in this controller, return the CORS access control headers.
|
19
19
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
module Pwb
|
2
2
|
class ApplicationApiController < ActionController::Base
|
3
|
-
|
4
3
|
protect_from_forgery with: :exception, prepend: true
|
5
4
|
# include ActionController::HttpAuthentication::Token::ControllerMethods
|
6
5
|
|
@@ -8,7 +7,6 @@ module Pwb
|
|
8
7
|
# , :authenticate_user_from_token!, :set_locale
|
9
8
|
after_action :set_csrf_token
|
10
9
|
|
11
|
-
|
12
10
|
def self.default_url_options
|
13
11
|
{ locale: I18n.locale }
|
14
12
|
end
|
@@ -18,12 +16,11 @@ module Pwb
|
|
18
16
|
def check_user
|
19
17
|
unless current_user && current_user.admin
|
20
18
|
# unless request.subdomain.present? && (request.subdomain.downcase == current_user.tenants.first.subdomain.downcase)
|
21
|
-
|
19
|
+
render_json_error "unauthorised_user"
|
22
20
|
end
|
23
|
-
|
24
21
|
end
|
25
22
|
|
26
|
-
def render_json_error(message, opts={})
|
23
|
+
def render_json_error(message, opts = {})
|
27
24
|
render json: message, status: opts[:status] || 422
|
28
25
|
end
|
29
26
|
|
@@ -34,11 +31,10 @@ module Pwb
|
|
34
31
|
def set_csrf_token
|
35
32
|
# http://rajatsingla.in/ruby/2016/08/06/how-to-add-csrf-in-ember-app.html
|
36
33
|
if request.xhr?
|
37
|
-
response.headers['X-CSRF-Token'] =
|
34
|
+
response.headers['X-CSRF-Token'] = form_authenticity_token.to_s
|
38
35
|
response.headers['X-CSRF-Param'] = "authenticity_token"
|
39
36
|
end
|
40
37
|
# works in conjunction with updating the headers via client app
|
41
38
|
end
|
42
|
-
|
43
39
|
end
|
44
40
|
end
|
@@ -2,13 +2,13 @@ module Pwb
|
|
2
2
|
class ApplicationController < ActionController::Base
|
3
3
|
protect_from_forgery with: :exception
|
4
4
|
|
5
|
-
before_action :footer_content, :current_agency_and_website, :sections,
|
5
|
+
before_action :footer_content, :current_agency_and_website, :sections,
|
6
6
|
:set_locale, :set_theme_path
|
7
7
|
|
8
8
|
def set_theme_path
|
9
9
|
theme_name = Website.unique_instance.theme_name
|
10
10
|
theme_name = theme_name.present? ? theme_name : "default"
|
11
|
-
|
11
|
+
# || "default"
|
12
12
|
# if Agency.last && Agency.last.theme_name.present?
|
13
13
|
# theme_name = Agency.last.theme_name
|
14
14
|
# end
|
@@ -56,6 +56,5 @@ module Pwb
|
|
56
56
|
@sections ||= Section.order("sort_order")
|
57
57
|
@show_admin_link = true
|
58
58
|
end
|
59
|
-
|
60
59
|
end
|
61
60
|
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
require_dependency 'pwb/application_controller'
|
2
|
+
|
3
|
+
module Pwb
|
4
|
+
# based on
|
5
|
+
# comfortable-mexican-sofa/app/controllers/comfy/cms/content_controller.rb
|
6
|
+
class ComfyController < ApplicationController
|
7
|
+
# Comfy::Cms::BaseController
|
8
|
+
|
9
|
+
# Authentication module must have `authenticate` method
|
10
|
+
include ComfortableMexicanSofa.config.public_auth.to_s.constantize
|
11
|
+
|
12
|
+
# Authorization module must have `authorize` method
|
13
|
+
include ComfortableMexicanSofa.config.public_authorization.to_s.constantize
|
14
|
+
|
15
|
+
before_action :load_cms_site
|
16
|
+
# before_action :load_fixtures
|
17
|
+
# before_action :load_cms_page
|
18
|
+
# :authenticate,
|
19
|
+
# :authorize,
|
20
|
+
# :only => :show
|
21
|
+
|
22
|
+
rescue_from ActiveRecord::RecordNotFound, with: :page_not_found
|
23
|
+
|
24
|
+
def show
|
25
|
+
@cms_pages = []
|
26
|
+
|
27
|
+
begin
|
28
|
+
cms_page_container = Pwb::CmsPageContainer.find(params[:page_slug])
|
29
|
+
@title_key = cms_page_container.pageTitleKey
|
30
|
+
cms_page_container.cmsPartsList.each do |cms_part|
|
31
|
+
@cms_page = Comfy::Cms::Page.where({label: cms_part["label"], slug: I18n.locale}).first
|
32
|
+
# @cms_site.pages.published.find_by_full_path!("/about-us/services")
|
33
|
+
@cms_pages.push @cms_page if @cms_page
|
34
|
+
end
|
35
|
+
rescue ActiveHash::RecordNotFound
|
36
|
+
end
|
37
|
+
|
38
|
+
@content_area_cols = Content.where(tag: 'content-area-cols').order('sort_order')
|
39
|
+
|
40
|
+
render "/pwb/sections/cms"
|
41
|
+
|
42
|
+
# cms_page_path = "/#{params[:page_slug]}-page"
|
43
|
+
# https://github.com/comfy/comfortable-mexican-sofa/wiki/View-rendering
|
44
|
+
# below makes use of Comfy view rendering:
|
45
|
+
|
46
|
+
# return render :cms_page => cms_page_path, :layout => "pwb/application", :cms_blocks => {
|
47
|
+
# :jumbotron => 'Content About Events'
|
48
|
+
# # :column_b => { :template => '/events/index' },
|
49
|
+
# # :column_c => { :partial => '/events/calendar' }
|
50
|
+
# }
|
51
|
+
# return render @cms_page.content_cache
|
52
|
+
# , layout: "application"
|
53
|
+
end
|
54
|
+
|
55
|
+
def render_sitemap
|
56
|
+
render
|
57
|
+
end
|
58
|
+
|
59
|
+
protected
|
60
|
+
|
61
|
+
def load_cms_site
|
62
|
+
# TODO: - load diff sites depending on locale//
|
63
|
+
@cms_site = ::Comfy::Cms::Site.find_by_locale :es
|
64
|
+
# (::Comfy::Cms::Site.find_by_locale I18n.locale) || (::Comfy::Cms::Site.find_by_locale :en)
|
65
|
+
end
|
66
|
+
|
67
|
+
# def render_page(status = 200)
|
68
|
+
# # below will ren
|
69
|
+
# if @cms_layout = @cms_page.layout
|
70
|
+
# # app_layout = (@cms_layout.app_layout.blank? || request.xhr?) ? false : @cms_layout.app_layout
|
71
|
+
# app_layout = "application"
|
72
|
+
# render :inline => @cms_page.content_cache,
|
73
|
+
# :layout => app_layout,
|
74
|
+
# :status => status,
|
75
|
+
# :content_type => mime_type
|
76
|
+
# else
|
77
|
+
# render :plain => I18n.t('comfy.cms.content.layout_not_found'), :status => 404
|
78
|
+
# end
|
79
|
+
# end
|
80
|
+
|
81
|
+
# it's possible to control mimetype of a page by creating a `mime_type` field
|
82
|
+
def mime_type
|
83
|
+
mime_block = @cms_page.blocks.find_by_identifier(:mime_type)
|
84
|
+
mime_block && mime_block.content || 'text/html'
|
85
|
+
end
|
86
|
+
|
87
|
+
def load_fixtures
|
88
|
+
return unless ComfortableMexicanSofa.config.enable_fixtures
|
89
|
+
ComfortableMexicanSofa::Fixture::Importer.new(@cms_site.identifier).import!
|
90
|
+
end
|
91
|
+
|
92
|
+
def load_cms_page(_page_key)
|
93
|
+
@cms_page = @cms_site.pages.published.find_by_full_path!("/[:cms_path]")
|
94
|
+
end
|
95
|
+
|
96
|
+
def page_not_found
|
97
|
+
@cms_page = @cms_site.pages.published.find_by_full_path!('/404')
|
98
|
+
|
99
|
+
respond_to do |format|
|
100
|
+
format.html { render_page(404) }
|
101
|
+
end
|
102
|
+
rescue ActiveRecord::RecordNotFound
|
103
|
+
raise ActionController::RoutingError, "Page Not Found at: \"#{params[:cms_path]}\""
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|