From f83e76102f97fc0b7bd38f54cce1e6af3bc7bbda Mon Sep 17 00:00:00 2001 From: Henne Vogelsang Date: Sat, 6 Feb 2016 22:43:08 +0100 Subject: [PATCH 1/2] Make use of holder.js in venue#show --- app/assets/javascripts/application.js | 1 + app/views/admin/venues/show.html.haml | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 98c9fbb1..87f82cde 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -29,6 +29,7 @@ //= require markdown //= require momentjs //= require leaflet +//= require holderjs //= require bootstrap-datetimepicker //= require osem-datepickers //= require osem-datatables diff --git a/app/views/admin/venues/show.html.haml b/app/views/admin/venues/show.html.haml index 00885085..17404040 100644 --- a/app/views/admin/venues/show.html.haml +++ b/app/views/admin/venues/show.html.haml @@ -7,7 +7,12 @@ -if @venue .row .col-md-6 - =image_tag(@conference.venue.photo, class: 'img-responsive img-rounded') unless @conference.venue.photo.blank? + - if @conference.venue.location? + = render 'conference/venue_map' + - elsif @conference.venue.photo.blank? + %img{ "data-src" => "holder.js/300x200?text=No Image Set", class: 'img-responsive img-rounded' } + - elsif !@conference.venue.photo.blank? + =image_tag(@conference.venue.photo, class: 'img-responsive img-rounded') .col-md-6 %address %strong From 33e1c6eae10f233efed44c8fc3d6918ef455cf79 Mon Sep 17 00:00:00 2001 From: Henne Vogelsang Date: Mon, 8 Feb 2016 12:25:42 +0100 Subject: [PATCH 2/2] Beautify venues#show --- app/models/venue.rb | 4 +++ app/views/admin/venues/show.html.haml | 9 +++--- app/views/conference/_venue.html.haml | 38 ++--------------------- app/views/conference/_venue_map.html.haml | 35 +++++++++++++++++++++ 4 files changed, 46 insertions(+), 40 deletions(-) create mode 100644 app/views/conference/_venue_map.html.haml diff --git a/app/models/venue.rb b/app/models/venue.rb index b0cd2b0e..25d3b8cd 100644 --- a/app/models/venue.rb +++ b/app/models/venue.rb @@ -23,6 +23,10 @@ class Venue < ActiveRecord::Base name.name if name end + def location? + !(latitude.blank? || longitude.blank?) + end + private def send_mail_notification diff --git a/app/views/admin/venues/show.html.haml b/app/views/admin/venues/show.html.haml index 17404040..18266ede 100644 --- a/app/views/admin/venues/show.html.haml +++ b/app/views/admin/venues/show.html.haml @@ -25,10 +25,11 @@ = @venue.country_name .row .col-md-12 - = link_to(edit_admin_conference_venue_path(@conference.short_title), class: 'btn btn-primary', disabled: !(can? :update, @venue) ) do - Edit Venue - = link_to(admin_conference_venue_path(@conference.short_title), method: 'delete', class: 'btn btn-danger', disabled: !(can? :destroy, @venue)) do - Delete Venue + %p.text-right + = link_to(edit_admin_conference_venue_path(@conference.short_title), class: 'btn btn-primary', disabled: !(can? :update, @venue) ) do + Edit Venue + = link_to(admin_conference_venue_path(@conference.short_title), method: 'delete', class: 'btn btn-danger', disabled: !(can? :destroy, @venue)) do + Delete Venue -else .row .col-md-12.text-right diff --git a/app/views/conference/_venue.html.haml b/app/views/conference/_venue.html.haml index c07c5f8f..b2b7874b 100644 --- a/app/views/conference/_venue.html.haml +++ b/app/views/conference/_venue.html.haml @@ -1,42 +1,8 @@ = content_for :splash_nav do %li %a.smoothscroll{ href: '#venue' } Venue --if !@conference.venue.latitude.blank? and !@conference.venue.longitude.blank? - #map{style: "height: 500px;" } - - popup = "

#{@conference.venue.name}


#{@conference.venue.street}
#{@conference.venue.city}
#{@conference.venue.country_name}" - - content_for(:script_body) do - :javascript - L.Icon.Default.imagePath = '/assets/leaflet/'; - // create a map in the "map" div, set the view to a given place and zoom - var map = L.map('map', { scrollWheelZoom: false }).setView([#{@conference.venue.latitude}, #{@conference.venue.longitude}], 11); - // add an OpenStreetMap tile layer - L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { - attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox', - maxZoom: 18 - }).addTo(map); - // add a marker in the given location, attach some popup content to it and open the popup - L.marker([#{@conference.venue.latitude}, #{@conference.venue.longitude}]).addTo(map) - .bindPopup("#{popup}") - .openPopup(); - // Turn scrollwheel on when user clicks - map.on('focus', function(e) { - map.scrollWheelZoom.enable(); - }); - // Turn scrollwheel off once the map isn't in the viewport anymore - $('#map').waypoint({ - handler: function(direction) { - map.scrollWheelZoom.disable(); - //alert('map'); - }, - offset: '90%' - }); - $('#map').waypoint({ - handler: function(direction) { - map.scrollWheelZoom.disable(); - //alert('map'); - }, - offset: '10%' - }); +-if @conference.venue.location? + = render 'conference/venue_map' -else .container .row diff --git a/app/views/conference/_venue_map.html.haml b/app/views/conference/_venue_map.html.haml new file mode 100644 index 00000000..eb1bbaee --- /dev/null +++ b/app/views/conference/_venue_map.html.haml @@ -0,0 +1,35 @@ +#map{style: "height: 500px;" } +- popup = "

#{@conference.venue.name}


#{@conference.venue.street}
#{@conference.venue.city}
#{@conference.venue.country_name}" +- content_for(:script_body) do + :javascript + L.Icon.Default.imagePath = '/assets/leaflet/'; + // create a map in the "map" div, set the view to a given place and zoom + var map = L.map('map', { scrollWheelZoom: false }).setView([#{@conference.venue.latitude}, #{@conference.venue.longitude}], 11); + // add an OpenStreetMap tile layer + L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { + attribution: 'Map data © OpenStreetMap contributors, CC-BY-SA, Imagery © Mapbox', + maxZoom: 18 + }).addTo(map); + // add a marker in the given location, attach some popup content to it and open the popup + L.marker([#{@conference.venue.latitude}, #{@conference.venue.longitude}]).addTo(map) + .bindPopup("#{popup}") + .openPopup(); + // Turn scrollwheel on when user clicks + map.on('focus', function(e) { + map.scrollWheelZoom.enable(); + }); + // Turn scrollwheel off once the map isn't in the viewport anymore + $('#map').waypoint({ + handler: function(direction) { + map.scrollWheelZoom.disable(); + //alert('map'); + }, + offset: '90%' + }); + $('#map').waypoint({ + handler: function(direction) { + map.scrollWheelZoom.disable(); + //alert('map'); + }, + offset: '10%' + });