pwb 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +40 -25
- data/app/assets/fonts/fonts/FontAwesome.otf +0 -0
- data/app/assets/fonts/fonts/fontawesome-webfont.eot +0 -0
- data/app/assets/fonts/fonts/fontawesome-webfont.svg +2668 -637
- data/app/assets/fonts/fonts/fontawesome-webfont.ttf +0 -0
- data/app/assets/fonts/fonts/fontawesome-webfont.woff +0 -0
- data/app/assets/fonts/fonts/fontawesome-webfont.woff2 +0 -0
- data/app/assets/javascripts/pwb/shared/page-content.js +24 -0
- data/app/assets/javascripts/pwb/shared/squares-container.js +58 -0
- data/app/assets/javascripts/pwb/shared/vue-main.js +1 -1
- data/app/assets/javascripts/pwb/shared/vue-squares.js.erb +74 -0
- data/app/assets/javascripts/pwb/squares/tabable-section.js +47 -0
- data/app/assets/javascripts/pwb/themes/squares.js.erb +45 -0
- data/app/assets/javascripts/pwb/themes/vic.js.erb +152 -0
- data/app/assets/javascripts/pwb_admin_panel/application_legacy_1.js +5 -0
- data/app/assets/stylesheets/pwb/themes/berlin.scss +4 -0
- data/app/assets/stylesheets/pwb/themes/berlin/main.scss +1 -1
- data/app/assets/stylesheets/pwb/themes/default.scss +1 -0
- data/app/assets/stylesheets/pwb/themes/default/carousel.scss +2 -1
- data/app/assets/stylesheets/pwb/themes/default/landing_content_areas.scss +13 -13
- data/app/assets/stylesheets/pwb/themes/default/shame.scss +0 -16
- data/app/assets/stylesheets/pwb/themes/matt.scss +18 -0
- data/app/assets/stylesheets/pwb/themes/shared/liquid_templates.scss +37 -0
- data/app/assets/stylesheets/pwb/themes/shared/shame.scss +7 -0
- data/app/assets/stylesheets/pwb/themes/squares.scss +22 -0
- data/app/assets/stylesheets/pwb/themes/squares/vue-material-docs.scss +200 -0
- data/app/assets/stylesheets/pwb/themes/squares/vue-material-vars.scss +141 -0
- data/app/assets/stylesheets/pwb/themes/vic.scss +104 -0
- data/app/assets/stylesheets/pwb/themes/vic/general.scss +15 -0
- data/app/assets/stylesheets/pwb/themes/vic/landing.scss +189 -0
- data/app/assets/stylesheets/pwb/themes/vic/slider.scss +127 -0
- data/app/assets/stylesheets/pwb_admin_panel/application_legacy_1.scss +6 -0
- data/app/controllers/pwb/admin_panel_controller.rb +7 -1
- data/app/controllers/pwb/api/v1/clients_controller.rb +35 -0
- data/app/controllers/pwb/api/v1/contacts_controller.rb +41 -0
- data/app/controllers/pwb/api/v1/links_controller.rb +47 -0
- data/app/controllers/pwb/api/v1/page_controller.rb +117 -0
- data/app/controllers/pwb/api/v1/page_fragments_controller.rb +74 -0
- data/app/controllers/pwb/api/v1/properties_controller.rb +30 -9
- data/app/controllers/pwb/api/v1/sections_controller.rb +27 -26
- data/app/controllers/pwb/api/v1/website_controller.rb +11 -11
- data/app/controllers/pwb/application_controller.rb +22 -11
- data/app/controllers/pwb/{sections_controller.rb → contact_us_controller.rb} +24 -45
- data/app/controllers/pwb/css_controller.rb +5 -2
- data/app/controllers/pwb/pages_controller.rb +36 -0
- data/app/controllers/pwb/search_controller.rb +33 -11
- data/app/controllers/pwb/squares_controller.rb +48 -0
- data/app/controllers/pwb/welcome_controller.rb +30 -5
- data/app/helpers/pwb/application_helper.rb +50 -49
- data/app/helpers/pwb/css_helper.rb +14 -0
- data/app/helpers/pwb/navigation_helper.rb +82 -0
- data/app/models/pwb/contact.rb +25 -0
- data/app/models/pwb/content.rb +26 -8
- data/app/models/pwb/content_photo.rb +18 -0
- data/app/models/pwb/link.rb +41 -0
- data/app/models/pwb/message.rb +1 -1
- data/app/models/pwb/page.rb +227 -0
- data/app/models/pwb/page_content.rb +33 -0
- data/app/models/pwb/page_part.rb +17 -0
- data/app/models/pwb/preset_style.rb +37 -0
- data/app/models/pwb/prop.rb +4 -0
- data/app/models/pwb/website.rb +64 -9
- data/app/resources/pwb/api/v1/{section_resource.rb → client_resource.rb} +3 -4
- data/app/resources/pwb/api/v1/property_resource.rb +23 -4
- data/app/resources/pwb/api/v1/web_content_resource.rb +1 -1
- data/app/resources/pwb/api_public/v1/prop_resource.rb +9 -2
- data/{db/cms_fixtures/cms/layouts/about-us/content.html → app/themes/airbnb/views/layouts/pwb/_generic_modal.html.erb} +0 -0
- data/{db/cms_fixtures/cms/layouts/about-us/javascript.js → app/themes/airbnb/views/layouts/pwb/_login_modal.html.erb} +0 -0
- data/app/themes/airbnb/views/layouts/pwb/application.html.erb +82 -0
- data/app/themes/airbnb/views/pwb/_footer.html.erb +25 -0
- data/app/themes/airbnb/views/pwb/props/_images_section_carousel.html.erb +43 -0
- data/app/themes/airbnb/views/pwb/props/show.html.erb +69 -0
- data/app/themes/airbnb/views/pwb/search/_search_form_for_rent.html.erb +183 -0
- data/app/themes/airbnb/views/pwb/search/_search_results.html.erb +34 -0
- data/app/themes/airbnb/views/pwb/search/buy.html.erb +65 -0
- data/app/themes/airbnb/views/pwb/search/rent.html.erb +87 -0
- data/app/themes/airbnb/views/pwb/sections/_contact_us_form.html.erb +49 -0
- data/app/themes/airbnb/views/pwb/sections/contact_us.html.erb +56 -0
- data/app/themes/airbnb/views/pwb/welcome/_content_area_cols.html.erb +12 -0
- data/app/themes/airbnb/views/pwb/welcome/_single_property_row.html.erb +51 -0
- data/app/themes/airbnb/views/pwb/welcome/index.html.erb +66 -0
- data/app/themes/berlin/views/pwb/_footer.html.erb +15 -20
- data/app/themes/berlin/views/pwb/_header.html.erb +7 -9
- data/app/themes/berlin/views/pwb/pages/show.html.erb +50 -0
- data/app/themes/berlin/views/pwb/search/buy.html.erb +1 -1
- data/app/themes/berlin/views/pwb/search/rent.html.erb +1 -2
- data/app/themes/berlin/views/pwb/sections/contact_us.html.erb +1 -1
- data/app/themes/berlin/views/pwb/welcome/index.html.erb +51 -7
- data/app/themes/config.json +14 -0
- data/app/themes/default/views/pwb/{sections/cms.html.erb → pages/show.html.erb} +9 -8
- data/app/themes/default/views/pwb/search/buy.html.erb +1 -1
- data/app/themes/default/views/pwb/search/rent.html.erb +1 -1
- data/app/themes/default/views/pwb/sections/about_us.html.erb +8 -7
- data/app/themes/default/views/pwb/sections/contact_us.html.erb +40 -30
- data/app/themes/default/views/pwb/sections/static.html.erb +3 -20
- data/app/themes/default/views/pwb/welcome/_single_property_row.html.erb +1 -1
- data/app/themes/default/views/pwb/welcome/index.html.erb +7 -38
- data/app/themes/matt/views/layouts/pwb/application.html.erb +45 -0
- data/app/themes/matt/views/pwb/_footer.html.erb +60 -0
- data/app/themes/matt/views/pwb/_header.html.erb +105 -0
- data/app/themes/matt/views/pwb/search/buy.html.erb +65 -0
- data/app/themes/matt/views/pwb/welcome/index.html.erb +132 -0
- data/app/themes/vic/views/layouts/pwb/application.html.erb +94 -0
- data/app/themes/vic/views/pwb/_header.html.erb +100 -0
- data/app/themes/vic/views/pwb/props/_images_section_carousel.html.erb +43 -0
- data/app/themes/vic/views/pwb/props/show.html.erb +69 -0
- data/app/themes/vic/views/pwb/search/buy.html.erb +65 -0
- data/app/themes/vic/views/pwb/search/rent.html.erb +65 -0
- data/app/themes/vic/views/pwb/sections/_contact_us_form.html.erb +49 -0
- data/app/themes/vic/views/pwb/sections/contact_us.html.erb +56 -0
- data/app/themes/vic/views/pwb/welcome/_content_area_cols.html.erb +12 -0
- data/app/themes/vic/views/pwb/welcome/_single_property_row.html.erb +51 -0
- data/app/themes/vic/views/pwb/welcome/index.html.erb +27 -0
- data/app/views/devise/shared/_links.html.erb +1 -1
- data/app/views/layouts/pwb/admin_panel_error.html.erb +19 -0
- data/app/views/layouts/pwb/admin_panel_legacy_1.html.erb +21 -0
- data/app/views/layouts/pwb/squares.html.erb +72 -0
- data/app/views/pwb/_footer.html.erb +2 -6
- data/app/views/pwb/_header.html.erb +23 -25
- data/app/views/pwb/admin_panel/show_legacy_1.html.erb +3 -0
- data/app/views/pwb/custom_css/_berlin.css.erb +0 -67
- data/app/views/pwb/custom_css/_default.css.erb +0 -22
- data/app/views/pwb/custom_css/_shared.css.erb +4 -3
- data/app/views/pwb/custom_css/_vic.css.erb +10 -0
- data/app/views/pwb/props/_images_section_carousel.html.erb +1 -1
- data/app/views/pwb/search/_search_result_item.html.erb +1 -1
- data/app/views/pwb/squares/show_client.html.erb +26 -0
- data/app/views/pwb/squares/show_prop.html.erb +26 -0
- data/app/views/pwb/squares/vue.html.erb +1 -0
- data/config/client_setups/default.json +28 -27
- data/config/initializers/i18n_globalise.rb +4 -0
- data/config/locales/admin.en.yml +38 -7
- data/config/locales/admin.es.yml +60 -6
- data/config/locales/admin.pt.yml +474 -0
- data/config/locales/admin.ru.yml +49 -6
- data/config/locales/devise.it.yml +137 -0
- data/config/locales/en.yml +7 -7
- data/config/locales/it.yml +160 -0
- data/config/locales/pt.yml +2 -0
- data/config/locales/rails.it.yml +213 -0
- data/config/locales/tr.yml +36 -36
- data/config/locales/vi.yml +5 -5
- data/config/preset_styles/green_amber.json +23 -0
- data/config/preset_styles/purple_teal.json +23 -0
- data/config/preset_styles/red_light.json +18 -0
- data/config/routes.rb +35 -23
- data/db/example_images/carousel_villa_with_pool.jpg +0 -0
- data/db/example_images/flat_luxury_dining_area.jpg +0 -0
- data/db/example_images/flat_luxury_living_area.jpg +0 -0
- data/db/migrate/20161120103546_create_pwb_props.rb +3 -3
- data/db/migrate/20161122174847_create_pwb_sections.rb +9 -8
- data/db/migrate/20161128221919_create_pwb_clients.rb +1 -0
- data/db/migrate/20170315195413_add_extra_cols_to_pwb_sections.rb +7 -6
- data/db/migrate/20170716075456_create_pwb_pages.rb +23 -0
- data/db/migrate/20170716110121_translate_pages.rb +17 -0
- data/db/migrate/20170720183443_create_pwb_links.rb +29 -0
- data/db/migrate/20170720201601_translate_links.rb +13 -0
- data/db/migrate/20170915094326_create_pwb_page_contents.rb +17 -0
- data/db/migrate/20170917215533_add_page_part_key_to_pwb_contents.rb +7 -0
- data/db/migrate/20170919134945_add_block_key_to_pwb_content_photos.rb +5 -0
- data/db/migrate/20170923195321_create_pwb_contacts.rb +33 -0
- data/db/migrate/20171011212930_create_pwb_page_parts.rb +30 -0
- data/db/seeds/translations_es.rb +1 -87
- data/db/seeds/translations_it.rb +92 -0
- data/db/yml_seeds/agency_address.yml +8 -8
- data/db/yml_seeds/contacts.yml +13 -0
- data/db/yml_seeds/content_translations/en.yml +73 -0
- data/db/yml_seeds/content_translations/es.yml +74 -0
- data/db/yml_seeds/content_translations/it.yml +73 -0
- data/db/yml_seeds/content_translations/pt.yml +73 -0
- data/db/yml_seeds/{content/footer.yml → footer.yml} +0 -0
- data/db/yml_seeds/links.yml +389 -0
- data/db/yml_seeds/page_parts/ABOUT_PAGE_PARTS.md +5 -0
- data/db/yml_seeds/page_parts/about-us__content_html.yml +24 -0
- data/db/yml_seeds/page_parts/about-us__our_agency.yml +51 -0
- data/db/yml_seeds/page_parts/contact-us__content_html.yml +24 -0
- data/db/yml_seeds/page_parts/contact-us__form_and_map.yml +17 -0
- data/db/yml_seeds/page_parts/home__about_us_services.yml +85 -0
- data/db/yml_seeds/page_parts/home__content_html.yml +24 -0
- data/db/yml_seeds/page_parts/home__landing_hero.yml +51 -0
- data/db/yml_seeds/page_parts/legal__content_html.yml +24 -0
- data/db/yml_seeds/page_parts/privacy__content_html.yml +24 -0
- data/db/yml_seeds/page_parts/sell__content_html.yml +24 -0
- data/db/yml_seeds/pages/about.yml +11 -0
- data/db/yml_seeds/pages/buy.yml +23 -0
- data/db/yml_seeds/pages/contact.yml +12 -0
- data/db/yml_seeds/pages/home.yml +15 -0
- data/db/yml_seeds/pages/legal_notice.yml +11 -0
- data/db/yml_seeds/pages/privacy_policy.yml +11 -0
- data/db/yml_seeds/pages/rent.yml +15 -0
- data/db/yml_seeds/pages/sell.yml +13 -0
- data/db/yml_seeds/prop/flat_for_rent.yml +11 -11
- data/db/yml_seeds/prop/flat_for_rent_2.yml +57 -0
- data/db/yml_seeds/prop/flat_for_sale.yml +11 -12
- data/db/yml_seeds/prop/flat_for_sale_2.yml +56 -0
- data/db/yml_seeds/prop/villa_for_rent.yml +14 -14
- data/db/yml_seeds/prop/villa_for_sale.yml +15 -15
- data/db/yml_seeds/prop_spain/flat_for_rent.yml +58 -0
- data/db/yml_seeds/prop_spain/flat_for_sale.yml +58 -0
- data/db/yml_seeds/prop_spain/villa_for_rent.yml +58 -0
- data/db/yml_seeds/prop_spain/villa_for_sale.yml +59 -0
- data/db/yml_seeds/sections.yml +119 -119
- data/db/yml_seeds/{content → to_delete}/about_us.yml +0 -0
- data/db/yml_seeds/{content → to_delete}/carousel.yml +0 -0
- data/db/yml_seeds/{content → to_delete}/content_columns.yml +0 -0
- data/db/yml_seeds/to_delete/footer.yml +15 -0
- data/db/yml_seeds/{content → to_delete}/sell.yml +0 -0
- data/db/yml_seeds/{content → to_delete}/static.yml +0 -0
- data/db/yml_seeds/website.yml +2 -1
- data/lib/pwb/engine.rb +16 -2
- data/lib/pwb/pages_seeder.rb +190 -0
- data/lib/pwb/seeder.rb +56 -14
- data/lib/pwb/version.rb +1 -1
- data/lib/tasks/pwb_tasks.rake +19 -2
- data/spec/controllers/pwb/api/v1/propeties_controller_spec.rb +2 -2
- data/spec/controllers/pwb/welcome_controller_spec.rb +18 -5
- data/spec/dummy/config/initializers/assets.rb +9 -0
- data/spec/dummy/config/routes.rb +2 -0
- data/spec/dummy/config/secrets.yml +3 -0
- data/spec/dummy/db/migrate/20171201161323_create_property_web_scraper_import_hosts.property_web_scraper.rb +22 -0
- data/spec/dummy/db/migrate/20171201161324_create_property_web_scraper_listings.property_web_scraper.rb +84 -0
- data/spec/dummy/db/schema.rb +475 -398
- data/spec/factories/pwb_contacts.rb +5 -0
- data/spec/factories/pwb_contents.rb +3 -0
- data/spec/factories/pwb_links.rb +5 -0
- data/spec/factories/pwb_page_contents.rb +5 -0
- data/spec/factories/pwb_page_parts.rb +8 -0
- data/spec/factories/pwb_pages.rb +29 -0
- data/spec/factories/pwb_prop_photos.rb +11 -2
- data/spec/fixtures/mls/properties_interealty.json +1 -496
- data/spec/fixtures/params/bulk_create.json +3 -3
- data/spec/libraries/pwb/pages_seeder_spec.rb +56 -0
- data/spec/libraries/pwb/seeder_spec.rb +14 -10
- data/spec/models/pwb/contact_spec.rb +7 -0
- data/spec/models/pwb/link_spec.rb +7 -0
- data/spec/models/pwb/page_content_spec.rb +7 -0
- data/spec/models/pwb/page_part_spec.rb +7 -0
- data/spec/models/pwb/page_spec.rb +28 -0
- data/spec/models/pwb/website_spec.rb +10 -0
- data/spec/rails_helper.rb +1 -1
- data/spec/requests/pwb/themes_spec.rb +15 -10
- data/spec/views/pwb/application_layout.html.erb_spec.rb +28 -21
- data/spec/views/pwb/contact_us.html.erb_spec.rb +11 -0
- data/spec/views/pwb/welcome.html.erb_spec.rb +13 -9
- metadata +230 -244
- data/app/controllers/pwb/api/v1/cms_pages_controller.rb +0 -102
- data/app/controllers/pwb/comfy_controller.rb +0 -106
- data/app/models/pwb/cms_page_container.rb +0 -9
- data/app/models/pwb/section.rb +0 -35
- data/app/models/pwb/welcome.rb +0 -4
- data/app/resources/pwb/api/v1/cms_block_resource.rb +0 -11
- data/app/resources/pwb/api/v1/cms_page_resource.rb +0 -27
- data/app/themes/berlin/views/pwb/sections/about_us.html.erb +0 -59
- data/app/themes/berlin/views/pwb/sections/cms.html.erb +0 -34
- data/app/themes/berlin/views/pwb/sections/static.html.erb +0 -58
- data/app/views/pwb/search/_search_result_item_to_del.html.erb +0 -56
- data/config/cms_page_containers/about-us.json +0 -18
- data/config/cms_page_containers/about.json +0 -107
- data/config/cms_page_containers/landing.json +0 -19
- data/config/cms_page_containers/legal.json +0 -17
- data/config/cms_page_containers/sell.json +0 -96
- data/config/initializers/comfortable_mexican_sofa.rb +0 -142
- data/config/initializers/i18n.rb +0 -1
- data/db/cms_fixtures/cms/categories/pages.yml +0 -3
- data/db/cms_fixtures/cms/files/_rerenting-landing_framed.png.yml +0 -6
- data/db/cms_fixtures/cms/files/rerenting-landing_framed.png +0 -0
- data/db/cms_fixtures/cms/layouts/about-us/attributes.yml +0 -4
- data/db/cms_fixtures/cms/layouts/about-us/people/attributes.yml +0 -4
- data/db/cms_fixtures/cms/layouts/about-us/people/content.html +0 -55
- data/db/cms_fixtures/cms/layouts/about-us/services/attributes.yml +0 -4
- data/db/cms_fixtures/cms/layouts/about-us/services/content.html +0 -32
- 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 +0 -4
- data/db/cms_fixtures/cms/layouts/default-layout/content.html +0 -51
- 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 +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/people/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_details_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_img_url_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_name_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/de/person_title_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_details_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_img_url_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_name_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/en/person_title_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_details_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_img_url_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_name_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/es/person_title_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_details_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_name_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/pt/person_title_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_details_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_img_url_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_name_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/people/ru/person_title_d.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/services/content_a.html +0 -1
- 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 +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/content_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/de/title_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/content_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/en/title_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/attributes.yml +0 -8
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/content_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_a.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_b.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/es/title_c.html +0 -1
- data/db/cms_fixtures/cms/pages/index/about-us/services/title_a.html +0 -1
- 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 +0 -8
- data/db/cms_fixtures/cms/pages/index/content.html +0 -1
- data/db/cms_fixtures/cms/pages/index/title.html +0 -0
- data/db/cms_fixtures/cms/snippets/snippet1/attributes.yml +0 -3
- data/db/cms_fixtures/cms/snippets/snippet1/content.html +0 -1
- data/db/cms_fixtures/sample-site/categories/files.yml +0 -1
- data/db/cms_fixtures/sample-site/categories/pages.yml +0 -1
- data/db/cms_fixtures/sample-site/categories/snippets.yml +0 -1
- data/db/cms_fixtures/sample-site/files/_sample.jpg.yml +0 -5
- data/db/cms_fixtures/sample-site/files/sample.jpg +0 -0
- data/db/cms_fixtures/sample-site/layouts/default/attributes.yml +0 -1
- data/db/cms_fixtures/sample-site/layouts/default/content.html +0 -5
- data/db/cms_fixtures/sample-site/layouts/default/javascript.js +0 -1
- data/db/cms_fixtures/sample-site/layouts/default/nested/attributes.yml +0 -2
- data/db/cms_fixtures/sample-site/layouts/default/nested/content.haml +0 -3
- data/db/cms_fixtures/sample-site/layouts/default/nested/javascript.js +0 -1
- data/db/cms_fixtures/sample-site/layouts/default/nested/stylesheet.css +0 -1
- data/db/cms_fixtures/sample-site/layouts/default/stylesheet.css +0 -1
- data/db/cms_fixtures/sample-site/pages/index/attributes.yml +0 -6
- data/db/cms_fixtures/sample-site/pages/index/child/attributes.yml +0 -3
- data/db/cms_fixtures/sample-site/pages/index/child/left.haml +0 -1
- data/db/cms_fixtures/sample-site/pages/index/child/right.html +0 -1
- data/db/cms_fixtures/sample-site/pages/index/child/thumbnail.png +0 -0
- data/db/cms_fixtures/sample-site/pages/index/content.html +0 -2
- data/db/cms_fixtures/sample-site/snippets/default/attributes.yml +0 -4
- data/db/cms_fixtures/sample-site/snippets/default/content.html +0 -1
- data/db/migrate/20170315212222_translate_sections.rb +0 -15
- data/db/migrate/20170513221300_create_cms.rb +0 -133
- data/lib/pwb/cms_data_loader.rb +0 -38
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/log/test.log +0 -0
- data/spec/dummy/public/uploads/pwb/content_photo/image/1/carousel_windows.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/content_photo/image/2/carousel_deck_chair.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/content_photo/image/3/carousel_grass.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/content_photo/image/4/carousel_grass.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/1/flat_balcony.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/1/gdaje3atcct1gx2ngv9u.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/1/new_villa.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/2/flat_balcony.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/2/kitchen_modern.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/2/rxo23syongfydjpoizrd.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/3/mansion_front.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/3/vzlptgtccsk2d2ewp4id.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/4/mansion_bedroom.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/4/xwayprwnmmmhrzrgwvch.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/5/flat_window.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/5/ilxn2u37bak0v60u6f8q.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/6/kitchen_classic.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/7/flat_balcony.jpg +0 -0
- data/spec/dummy/public/uploads/pwb/prop_photo/image/8/lounge_cosy.jpg +0 -0
- data/spec/factories/pwb_sections.rb +0 -4
- data/spec/models/pwb/section_spec.rb +0 -11
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,24 @@
|
|
1
|
+
var INMOAPP = INMOAPP || {};
|
2
|
+
INMOAPP.PageContent = Vue.component('page-content', {
|
3
|
+
// name: "SquaresContainer",
|
4
|
+
mounted: function() {
|
5
|
+
// var vm = this;
|
6
|
+
// $(this.$el).selectpicker(this.selectPickerTexts);
|
7
|
+
// .trigger('change')
|
8
|
+
// // emit event on change.
|
9
|
+
// .on('change', function() {
|
10
|
+
// vm.$emit('input', this.value)
|
11
|
+
// });
|
12
|
+
},
|
13
|
+
props: {
|
14
|
+
pageTitle: String
|
15
|
+
},
|
16
|
+
methods: {
|
17
|
+
toggleSidenav() {
|
18
|
+
this.$root.toggleSidenav();
|
19
|
+
}
|
20
|
+
},
|
21
|
+
mounted() {
|
22
|
+
document.title = this.pageTitle + ' - Vue Material';
|
23
|
+
}
|
24
|
+
});
|
@@ -0,0 +1,58 @@
|
|
1
|
+
var INMOAPP = INMOAPP || {};
|
2
|
+
Vue.component('squares-container', {
|
3
|
+
// name: "SquaresContainer",
|
4
|
+
mounted: function() {
|
5
|
+
// var vm = this;
|
6
|
+
// $(this.$el).selectpicker(this.selectPickerTexts);
|
7
|
+
// .trigger('change')
|
8
|
+
// // emit event on change.
|
9
|
+
// .on('change', function() {
|
10
|
+
// vm.$emit('input', this.value)
|
11
|
+
// });
|
12
|
+
},
|
13
|
+
// props: ['selectOptions', 'selectPickerTexts', 'selected'],
|
14
|
+
watch: {
|
15
|
+
props(val) {
|
16
|
+
val.forEach(function(prop){
|
17
|
+
prop.url = "/tabs/" + prop[".key"];
|
18
|
+
});
|
19
|
+
// debugger;
|
20
|
+
// let total = this.events.length;
|
21
|
+
},
|
22
|
+
},
|
23
|
+
firebase: function() {
|
24
|
+
return {
|
25
|
+
props: {
|
26
|
+
source: INMOAPP.fbDb.ref('props/pwb1'),
|
27
|
+
// asObject: true,
|
28
|
+
// Optional, allows you to handle any errors.
|
29
|
+
cancelCallback(err) {
|
30
|
+
debugger;
|
31
|
+
console.error(err);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
}
|
35
|
+
},
|
36
|
+
data: () => {
|
37
|
+
return {
|
38
|
+
props: []
|
39
|
+
}
|
40
|
+
},
|
41
|
+
methods: {
|
42
|
+
// toggleLeftSidenav() {
|
43
|
+
// this.$refs.leftSidenav.toggle();
|
44
|
+
// },
|
45
|
+
// toggleRightSidenav() {
|
46
|
+
// this.$refs.rightSidenav.toggle();
|
47
|
+
// },
|
48
|
+
// closeRightSidenav() {
|
49
|
+
// this.$refs.rightSidenav.close();
|
50
|
+
// },
|
51
|
+
// open(ref) {
|
52
|
+
// console.log('Opened: ' + ref);
|
53
|
+
// },
|
54
|
+
// close(ref) {
|
55
|
+
// console.log('Closed: ' + ref);
|
56
|
+
// }
|
57
|
+
}
|
58
|
+
});
|
@@ -0,0 +1,74 @@
|
|
1
|
+
var INMOAPP = INMOAPP || {};
|
2
|
+
window.onload = function() {
|
3
|
+
|
4
|
+
// var pwbGM = Vue.component('gmap-map', VueGoogleMaps);
|
5
|
+
Vue.use(VueRouter);
|
6
|
+
// var pwbHH = Vue.component('Hello', Hello.default);
|
7
|
+
|
8
|
+
// 1. Define route components.
|
9
|
+
// These can be imported from other files
|
10
|
+
const Foo = { template: '<div>foo</div>' }
|
11
|
+
const Bar = { template: '<div>bar</div>' }
|
12
|
+
|
13
|
+
// 2. Define some routes
|
14
|
+
// Each route should map to a component. The "component" can
|
15
|
+
// either be an actual component constructor created via
|
16
|
+
// `Vue.extend()`, or just a component options object.
|
17
|
+
// We'll talk about nested routes later.
|
18
|
+
const routes = [
|
19
|
+
// { path: '/foo', component: Hello.default },
|
20
|
+
{ path: '/bar', component: INMOAPP.TabableSection },
|
21
|
+
{ path: '/tabs/:id', component: INMOAPP.TabableSection },
|
22
|
+
// { path: '/tabs/', component: INMOAPP.TabableSection }
|
23
|
+
]
|
24
|
+
|
25
|
+
// 3. Create the router instance and pass the `routes` option
|
26
|
+
// You can pass in additional options here, but let's
|
27
|
+
// keep it simple for now.
|
28
|
+
const router = new VueRouter({
|
29
|
+
mode: 'history',
|
30
|
+
base: '/propertysquares/',
|
31
|
+
routes // short for `routes: routes`
|
32
|
+
})
|
33
|
+
// var VueMaterial = Vue.component('vue-material');
|
34
|
+
Vue.use(VueMaterial);
|
35
|
+
// Vue.use(VueMaterial.mdCore) //Required to boot vue material
|
36
|
+
// Vue.use(VueMaterial.mdButton)
|
37
|
+
// Vue.use(VueMaterial.mdIcon)
|
38
|
+
// Vue.use(VueMaterial.mdSidenav)
|
39
|
+
// Vue.use(VueMaterial.mdToolbar)
|
40
|
+
|
41
|
+
var firebaseApp = firebase.initializeApp({
|
42
|
+
// apiKey: process.env.FIREBASE_API,
|
43
|
+
authDomain: '<%= Rails.application.secrets.fb_instance_id %>.firebaseapp.com',
|
44
|
+
databaseURL: 'https://<%= Rails.application.secrets.fb_instance_id %>.firebaseio.com',
|
45
|
+
projectId: '<%= Rails.application.secrets.fb_instance_id %>',
|
46
|
+
storageBucket: ''
|
47
|
+
// messagingSenderId: process.env.FIREBASE_SENDER
|
48
|
+
})
|
49
|
+
INMOAPP.fbDb = firebaseApp.database()
|
50
|
+
|
51
|
+
|
52
|
+
INMOAPP.pwbVue = new Vue({
|
53
|
+
el: '#squares-vue',
|
54
|
+
data: {},
|
55
|
+
router
|
56
|
+
// firebase: {
|
57
|
+
// // simple syntax, bind as an array by default
|
58
|
+
// anArray: INMOAPP.fbDb.ref('props'),
|
59
|
+
// // can also bind to a query
|
60
|
+
// // anArray: INMOAPP.fbDb.ref('url/to/my/collection').limitToLast(25)
|
61
|
+
// // full syntax
|
62
|
+
// anObject: {
|
63
|
+
// source: INMOAPP.fbDb.ref('url/to/my/object'),
|
64
|
+
// // optionally bind as an object
|
65
|
+
// asObject: true,
|
66
|
+
// // optionally provide the cancelCallback
|
67
|
+
// cancelCallback: function() {},
|
68
|
+
// // this is called once the data has been retrieved from firebase
|
69
|
+
// readyCallback: function() {}
|
70
|
+
// }
|
71
|
+
// }
|
72
|
+
});
|
73
|
+
|
74
|
+
}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
var INMOAPP = INMOAPP || {};
|
2
|
+
INMOAPP.TabableSection = Vue.component('tabable-section', {
|
3
|
+
template: `<div class="main-content component-docs">` +
|
4
|
+
`<md-tabs md-fixed class="md-transparent">` +
|
5
|
+
`<md-tab id="movies" md-label="Movies">Some content` +
|
6
|
+
`</md-tab>` +
|
7
|
+
`<md-tab id="shops" md-label="Shp">shop content` +
|
8
|
+
`</md-tab></md-tabs>` +
|
9
|
+
`</div>`,
|
10
|
+
watch: {
|
11
|
+
listing(val) {
|
12
|
+
// debugger;
|
13
|
+
// val.forEach(function(prop){
|
14
|
+
// prop.url = "/tabs/" + prop[".key"];
|
15
|
+
// });
|
16
|
+
},
|
17
|
+
},
|
18
|
+
firebase: function() {
|
19
|
+
return {
|
20
|
+
listing: {
|
21
|
+
source: INMOAPP.fbDb.ref('listing/pwb1/' + this.$route.params.id),
|
22
|
+
// asObject: true,
|
23
|
+
// Optional, allows you to handle any errors.
|
24
|
+
cancelCallback(err) {
|
25
|
+
// debugger;
|
26
|
+
console.error(err);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
},
|
31
|
+
data: () => {
|
32
|
+
return {
|
33
|
+
listing: []
|
34
|
+
}
|
35
|
+
},
|
36
|
+
// props: {
|
37
|
+
// pageTitle: String
|
38
|
+
// },
|
39
|
+
methods: {
|
40
|
+
toggleSidenav() {
|
41
|
+
this.$root.toggleSidenav();
|
42
|
+
}
|
43
|
+
},
|
44
|
+
mounted() {
|
45
|
+
// document.title = this.pageTitle + ' - Vue Material';
|
46
|
+
}
|
47
|
+
});
|
@@ -0,0 +1,45 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file. JavaScript code in this file should be added after the last require_* statement.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
// require jquery.turbolinks
|
15
|
+
|
16
|
+
// below needed for bootstrap-select to work
|
17
|
+
// require berlin/bootstrap
|
18
|
+
// require berlin/custom
|
19
|
+
|
20
|
+
//= require lodash-4.16.4
|
21
|
+
// lodash used for google maps
|
22
|
+
|
23
|
+
<%
|
24
|
+
# ...
|
25
|
+
if Rails.env.development?
|
26
|
+
require_asset ("vue-2.4.2")
|
27
|
+
else
|
28
|
+
require_asset ("vue-2.4.2.prod")
|
29
|
+
end
|
30
|
+
|
31
|
+
require_asset ("vue-router-2.7.0")
|
32
|
+
require_asset ("firebase-4.0.0")
|
33
|
+
require_asset ("vuefire-1.4.3")
|
34
|
+
require_asset ("vue-google-maps")
|
35
|
+
require_asset ("vue-material-0.7.4")
|
36
|
+
# require_asset ("vue-social-sharing")
|
37
|
+
# require_asset ("squares-manager-0.0.1")
|
38
|
+
require_asset ("../shared/squares-container")
|
39
|
+
require_asset ("../shared/page-content")
|
40
|
+
require_asset ("../squares/tabable-section")
|
41
|
+
require_asset ("../shared/vue-squares")
|
42
|
+
|
43
|
+
%>
|
44
|
+
|
45
|
+
|
@@ -0,0 +1,152 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file. JavaScript code in this file should be added after the last require_* statement.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
// require jquery.turbolinks
|
15
|
+
//= require jquery_ujs
|
16
|
+
//= require paloma
|
17
|
+
//= require_tree ../paloma
|
18
|
+
// require bootstrap-sprockets
|
19
|
+
//= require bootstrap-select
|
20
|
+
//= require berlin/slick
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
//= require lodash-4.16.4
|
25
|
+
// lodash used for google maps
|
26
|
+
<%
|
27
|
+
# ...
|
28
|
+
if Rails.env.development?
|
29
|
+
require_asset ("vue-2.4.2")
|
30
|
+
else
|
31
|
+
require_asset ("vue-2.4.2.prod")
|
32
|
+
end
|
33
|
+
|
34
|
+
require_asset ("vue-social-sharing")
|
35
|
+
require_asset ("vue-google-maps")
|
36
|
+
require_asset ("../shared/select-picker")
|
37
|
+
require_asset ("../shared/inmo-map")
|
38
|
+
require_asset ("../shared/slick-carousel")
|
39
|
+
require_asset ("../shared/vue-main")
|
40
|
+
|
41
|
+
%>
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
46
|
+
// $(document).on('page:change', function() {
|
47
|
+
// once turbolinks is activated, will have to change to above
|
48
|
+
$(document).on('ready', function() {
|
49
|
+
INMOAPP.pageHolder = {};
|
50
|
+
// debugger;
|
51
|
+
Paloma.start();
|
52
|
+
// Paloma.executeHook();
|
53
|
+
// Paloma.engine.start();
|
54
|
+
});
|
55
|
+
|
56
|
+
// global namespace
|
57
|
+
var INMOAPP = INMOAPP || {};
|
58
|
+
// sub namespace
|
59
|
+
INMOAPP.pageHolder = {};
|
60
|
+
|
61
|
+
|
62
|
+
INMOAPP.showMap = function(currentItemForMap) {
|
63
|
+
if (typeof(INMOAPP.pageHolder.map) === "undefined") {
|
64
|
+
INMOAPP.renderMap(currentItemForMap, "600px", true);
|
65
|
+
} else {
|
66
|
+
// okay, we've got a map and we need to resize it
|
67
|
+
google.maps.event.addListener(INMOAPP.pageHolder.map, 'idle', function() {
|
68
|
+
google.maps.event.trigger(INMOAPP.pageHolder.map, 'resize');
|
69
|
+
var center = INMOAPP.pageHolder.map.getCenter();
|
70
|
+
INMOAPP.pageHolder.map.setCenter(center);
|
71
|
+
});
|
72
|
+
|
73
|
+
}
|
74
|
+
};
|
75
|
+
|
76
|
+
INMOAPP.renderMap = function(currentItemForMap, minHeight, showMarker) {
|
77
|
+
if ($("#inmo-map-canvas").length > 0) {
|
78
|
+
// $("#inmo-map-canvas").show();
|
79
|
+
var mapOptions = {
|
80
|
+
// maxZoom: 20,
|
81
|
+
// minZoom: 9,
|
82
|
+
scrollwheel: false,
|
83
|
+
zoom: 15,
|
84
|
+
// center: mapCenter,
|
85
|
+
// mapTypeId: google.maps.MapTypeId.ROADMAP
|
86
|
+
styles: [{
|
87
|
+
"featureType": "poi",
|
88
|
+
"elementType": "labels",
|
89
|
+
"stylers": [{
|
90
|
+
"visibility": "off"
|
91
|
+
}]
|
92
|
+
}]
|
93
|
+
};
|
94
|
+
mapOptions.mapTypeId = google.maps.MapTypeId.ROADMAP;
|
95
|
+
|
96
|
+
if (minHeight) {
|
97
|
+
$("#inmo-map-canvas").css("min-height", minHeight);
|
98
|
+
}
|
99
|
+
INMOAPP.pageHolder.map = new google.maps.Map(document.getElementById(
|
100
|
+
'inmo-map-canvas'), mapOptions);
|
101
|
+
|
102
|
+
if (currentItemForMap && currentItemForMap.latitude) {
|
103
|
+
var propertyLatLng = new google.maps.LatLng(
|
104
|
+
parseFloat(currentItemForMap.latitude),
|
105
|
+
parseFloat(currentItemForMap.longitude)
|
106
|
+
);
|
107
|
+
// var allMapMarkers = this.get('geo.allMapMarkers') || [];
|
108
|
+
var formatted_address = currentItemForMap.street_address || "";
|
109
|
+
if (showMarker) {
|
110
|
+
INMOAPP.addMarker(propertyLatLng, formatted_address);
|
111
|
+
}
|
112
|
+
google.maps.event.addListener(INMOAPP.pageHolder.map, 'idle', function() {
|
113
|
+
google.maps.event.trigger(INMOAPP.pageHolder.map, 'resize');
|
114
|
+
// var center = INMOAPP.pageHolder.map.getCenter();
|
115
|
+
INMOAPP.pageHolder.map.setCenter(propertyLatLng);
|
116
|
+
});
|
117
|
+
}
|
118
|
+
|
119
|
+
}
|
120
|
+
};
|
121
|
+
|
122
|
+
INMOAPP.addMarker = function(latlng, formatted_address) {
|
123
|
+
var newMarker = new google.maps.Marker({
|
124
|
+
position: latlng,
|
125
|
+
map: INMOAPP.pageHolder.map
|
126
|
+
});
|
127
|
+
};
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
|
132
|
+
// below 2 called after search results loaded (client side) - html would not be
|
133
|
+
// ready on document.ready...
|
134
|
+
INMOAPP.sortSearchResults = function() {
|
135
|
+
var $wrapper = $('#ordered-properties');
|
136
|
+
if ($("#order-price-desc").hasClass("active")) {
|
137
|
+
$wrapper.find('.property-item').sort(function(a, b) {
|
138
|
+
return (parseInt(b.dataset.price) - parseInt(a.dataset.price));
|
139
|
+
}).appendTo($wrapper);
|
140
|
+
} else if ($("#order-price-asc").hasClass("active")) {
|
141
|
+
$wrapper.find('.property-item').sort(function(a, b) {
|
142
|
+
return (parseInt(a.dataset.price) - parseInt(b.dataset.price));
|
143
|
+
}).appendTo($wrapper);
|
144
|
+
}
|
145
|
+
};
|
146
|
+
INMOAPP.truncateDescriptions = function() {
|
147
|
+
// $(".truncated_description").each(function(el) {
|
148
|
+
// var trimmedString = $(this)[0].textContent.trim().substring(0, 200);
|
149
|
+
// $(this).html(trimmedString);
|
150
|
+
// $(this).show();
|
151
|
+
// });
|
152
|
+
};
|