QutBioacoustics/baw-server

View on GitHub
app/views/projects/show.html.haml

Summary

Maintainability
Test Coverage
- content_for :meta_title, "Project #{@project.name}"
- content_for :page_title do
  = @project.name
- @info_bar = {model: @project, icon: 'globe'}

- content_for :page_actions do
  - is_owner = Access::Core.can?(current_user, :owner, @project)
  = nav_item(href: make_visualise_path(@project),
    title: t('baw.shared.links.visualize.title'),
    tooltip: t('baw.shared.links.visualize.description'),
    icon: 'map' )
  - if can? :edit, @project
    = edit_link(edit_project_path(@project), 'project')
  - if can? :update_permissions, @project
    = edit_link(project_permissions_path(@project), 'permissions', 'key')
  - if can? :create_sites, @project
    = new_link(new_project_site_path(@project), 'site')
  - if can?(:update_sites, @project)
    = nav_item(href: edit_sites_project_path(@project),
        title: t('baw.shared.links.site_mapping.title'),
        tooltip: t('baw.shared.links.site_mapping.description') )
  - if can?(:destroy, @project)
    = destroy_button(@project, 'project')

- content_for :right_sidebar do
  = render partial: 'shared/sidebar_metadata_users', locals: { title: 'Owned by', users: @project.owners }
  - levels = Access::Core.user_levels(current_user, @project)
  - level = Access::Core.highest(levels)
  - unless level.blank?
    - level_name = Access::Core.get_level_name(level)
    = render partial: 'shared/sidebar_metadata', locals: {title: 'Your access level', text: level_name}

- site_markers = []

.col-sm-12
  .row
    .col-sm-4
      .thumbnail
        = image_tag @project.image.url(:span3), alt: @project.name
    .col-sm-8
      = raw @project.description_html
  .row
    .col-sm-12
      %h2
        Sites

  .row
    .col-sm-6
      %ul.list-group
        - NaturalSort.sort(@project.sites, :name).each do |site|
          - if !site.longitude.blank? && !site.latitude.blank?
            - site_markers.push({title: site.name, lat: site.latitude, lng: site.longitude})
          %li.list-group-item
            .media
              .media-left
                %a{href: project_site_path(@project, site)}
                  = image_tag site.image.url(:span1), alt: site.name, class: 'media-object'
              .media-body
                %h4.media-heading
                  = link_to truncate(site.name, length: 45), project_site_path(@project, site)
                %ul.nav.nav-pills.pull-right{style: 'margin-bottom:0'}
                  %li
                    %a{href: project_site_path(@project, site)}
                      %span.fa.fa-info-circle{aria: {hidden: 'true'}}
                      Details
                  - play_details = site.get_bookmark_or_recording
                  - unless play_details.nil?
                    %li
                      %a{href: make_listen_path(play_details[:audio_recording], play_details[:start_offset_seconds])}
                        %span.fa.fa-play-circle{aria: {hidden: 'true'}}
                        Play
                  - else
                    %li
                      %a{href: '#', title: 'No audio recordings in this site', data: {toggle: 'tooltip',  placement: 'top'}}
                        No audio
                  %li
                    %a{href: make_visualise_path(site)}
                      %span.fa.fa-eye{aria: {hidden: 'true'}}
                      Visualise

    .col-sm-6
      - if site_markers.size > 0
        =render partial: 'shared/google_maps', locals: {markers: site_markers}
      - else
        .map-placeholder
          %span.map-placeholder-text No locations specified.