openSUSE/osem

View on GitHub
app/views/admin/venues/_form.html.haml

Summary

Maintainability
Test Coverage
.row
  .col-md-12
    .page-header
      %h1 Venue
.tabbable
  %ul.nav.nav-tabs
    %li.active
      = link_to 'Details', '#details-content', 'data-toggle' => 'tab'
    %li
      = link_to 'Commercials', '#commercials-content', 'data-toggle' => 'tab'

  .tab-content
    #details-content.tab-pane.active
      .col-md-8
        = form_for(@venue, url: admin_conference_venue_path(@conference.short_title)) do |f|
          .form-group
            = f.label :name
            %abbr{title: 'This field is required'} *
            = f.text_field :name, required: true, class: 'form-control'
          .form-group
            = f.label :website
            = f.url_field :website, class: 'form-control'
          .form-group
            = f.label :description
            = f.text_area :description, rows: 5, cols: 20, data: { provide: 'markdown' }
            %span.help-block
              = markdown_hint
          .form-group
            = f.label 'Logo'
            %br
            - if @venue.picture?
              = image_tag @venue.picture.thumb.url
            = f.file_field :picture
            = f.hidden_field :picture_cache
            %span.help-block
              This will be displayed on the venue are of the splash page.
          .form-group
            = f.label :street
            %abbr{title: 'This field is required'} *
            = f.text_field :street, required: true, class: 'form-control'
            = f.label :postalcode
            = f.text_field :postalcode, class: 'form-control'
            = f.label :city
            %abbr{title: 'This field is required'} *
            = f.text_field :city, required: true, class: 'form-control'
          .form-group
            = f.label :country
            = f.select :country, I18nData.countries.invert, { include_hidden: false }, { class: 'form-control' }
          .form-group
            = f.label :latitude
            = f.text_field :latitude, class: 'form-control'
          .form-group
            = f.label :longitude
            = f.text_field :longitude, class: 'form-control'
          = f.submit nil, class: 'btn btn-primary'

    #commercials-content.tab-pane
      - if can? :create, @venue.commercial and @venue.id
        - if @venue.commercial.nil?
          .row
            .col-md-6
              #resource-content
              #resource-placeholder{ style: 'background-color:#d3d3d3; float: left; width: 400px; height: 250px; margin: 5px; border-width: 1px; border-style: solid; border-color: rgba(0,0,0,.2);' }

          .row
            .col-md-6
              = form_for(Commercial.new,as: :commercial, url: admin_conference_venue_venue_commercial_path(conference_id: @conference.short_title)) do |f|
                .form-group
                  = f.label :url
                  = f.url_field :url, class: 'form-control', required: 'required'
                %span.help-block
                  Just paste the url of your video/photo provider. Currently supported: YouTube, Vimeo, SpeakerDeck, SlideShare, Instagram, Flickr.
                = f.submit nil, class: 'btn btn-primary pull-right', id: 'commercial_submit_action', disabled: true
          %hr
        - else
          - if @venue.commercial.persisted?
            .col-md-4
              .thumbnail
                .flexvideo{ id: "resource-content-#{@venue.commercial.id}"}
                  = render partial: 'shared/media_item', locals: { commercial: @venue.commercial }
                .caption
                  - if can? :update, @venue.commercial
                    = form_for @venue.commercial, as: :commercial, url: admin_conference_venue_venue_commercial_path(conference_id: @conference.short_title, id: @venue.commercial.id) do |f|
                      .form-group
                        = f.label :url
                        = f.url_field :url, id: "commercial_url_#{@venue.commercial.id}", class: 'form-control', required: 'required'
                        %span.help-block
                          Just paste the url of your video/photo provider. Currently supported: YouTube, Vimeo, SpeakerDeck, SlideShare, Instagram, Flickr.
                      = f.submit nil, class: 'btn btn-success'
                      - if can? :destroy, @venue.commercial
                        = link_to 'Delete', admin_conference_venue_venue_commercial_path(conference_id: @conference.short_title, id: @venue.commercial.id),
                          method: :delete, data: { confirm: 'Are you sure?' }, class: 'btn btn-danger'
            %hr

      - else
        First Create Venue, then update commercial