diff --git a/app/assets/javascripts/osem-schedule.js b/app/assets/javascripts/osem-schedule.js index 12b207bc..baae1933 100644 --- a/app/assets/javascripts/osem-schedule.js +++ b/app/assets/javascripts/osem-schedule.js @@ -116,3 +116,28 @@ $(document).ready( function() { } }); }); + +function eventClicked(e, element){ + var url = $(element).data('url'); + if(e.ctrlKey) + window.open(url,'_blank'); + else + window.location = url; +} + +/* Links inside event-panel (to make ctrl + click work for these links): + = link_to text, '#', onClick: 'insideLinkClicked();', 'data-url' => url +*/ +function insideLinkClicked(event){ + // stops the click from propagating + if (!event) // for IE + var event = window.event; + event.cancelBubble = true; + if (event.stopPropagation) event.stopPropagation(); + + var url = $(event.target).data('url'); + if(event.ctrlKey) + window.open(url,'_blank'); + else + window.location = url; +} diff --git a/app/views/schedules/_event.html.haml b/app/views/schedules/_event.html.haml index 1be0e685..b9e91e95 100644 --- a/app/views/schedules/_event.html.haml +++ b/app/views/schedules/_event.html.haml @@ -1,4 +1,4 @@ -.panel.panel-default.event-panel{ id: "link-#{event.id}" } +.panel.panel-default.event-panel{ onClick: 'eventClicked(event, this);', "data-url" => "#{url_for(conference_program_proposal_path(@conference.short_title, event.id))}" } .panel-body - if speaker = event.speakers.first = image_tag speaker.gravatar_url, :class => "img-circle pull-right all-speaker-pic", | @@ -30,14 +30,3 @@ %span.fa.fa-road %span.label{ style: "background-color: #{event.track.color}; color: #{ contrast_color(event.track.color) }" } = event.track.name - -:javascript - - $("#link-#{event.id}").click(function(e) { - var url = "#{url_for(conference_program_proposal_path(@conference.short_title, event.id))}"; - - if(e.ctrlKey) - window.open(url,'_blank'); - else - window.location = url; - });