.row .col-md-12 .tabbable %ul.nav.nav-tabs %li.active = link_to "Proposal", "#proposal-content", "data-toggle"=>"tab" %li = link_to 'Commercials', '#commercials-content', 'data-toggle'=>'tab' %li = link_to "Attachments", "#attachment-content", "data-toggle"=>"tab" .tab-content #proposal-content.tab-pane.active = render 'proposal/proposal_form' #commercials-content.tab-pane %p.text-muted You can add commercials for your event. These commercials will be displayed on the event detail site. If you don't add a commercial, the conference commercial will be displayed! We currently support the following commercial types: YouTube, Vimeo, Instagram, Flickr, Speakerdeck and SlideShare. - @event.commercials.each_slice(3) do |slice| .row - slice.each do |commercial| .col-md-4 .thumbnail %h3.text-center = commercial.commercial_type .flexvideo = render partial: 'shared/media_item', locals: { commercial_type: commercial.commercial_type, commercial_id: commercial.commercial_id } - if can? :update, commercial = link_to 'Edit', edit_conference_proposal_commercial_path(@conference.short_title, @event.id, commercial.id), class: 'btn btn-primary' - if can? :destrooy, commercial = link_to 'Delete', conference_proposal_commercial_path(@conference.short_title, @event.id, commercial.id), :method => :delete, :data => { :confirm => 'Are you sure?' }, class: 'btn btn-danger' - if can? :create, @event.commercials.new %hr = link_to 'Add Commercial', new_conference_proposal_commercial_path(@conference.short_title, @event.id), class: 'btn btn-primary' #attachment-content.tab-pane = form_for EventAttachment.new, :url => conference_proposal_event_attachment_index_path(@conference.short_title, @event), :html => { :multipart => true, :id => "fileupload" } do |f| %table.table.table-striped %thead %th %th %b Filename %th %b Title %th %b Size %th %b Public %th %th %tbody.files .row-fluid.fileupload-buttonbar .btn.btn-success.fileinput-button %span.fa.fa-plus Add files... = f.file_field :attachment = f.hidden_field :event_id, :value => @event.id :javascript $(document).ready( function() { $('#fileupload').fileupload(); $('#fileupload').bind('fileuploadsubmit', function (e, data) { var inputs = data.context.find(':input'); if (inputs.filter('[required][value=""]').first().focus().length) { return false; } data.formData = inputs.serializeArray(); }); $.getJSON($('#fileupload').prop('action'), function (files) { var fu = $('#fileupload').data('fileupload'), template; fu._adjustMaxNumberOfFiles(-files.length); template = fu._renderDownload(files) .appendTo($('#fileupload .files')); fu._reflow = fu._transition && template.length && template[0].offsetWidth; template.addClass('in'); $('#loading').remove(); }); } ); :plain