controlshift/prague-server

View on GitHub
app/views/layouts/application.html.haml

Summary

Maintainability
Test Coverage
!!!
%html
  %head
    %title= content_for?(:title) ? content_for(:title) : (current_user && current_user.organization ? current_user.organization.name : 'TakeCharge')
    = stylesheet_link_tag    'application', media: "all", data: {'turbolinks-track' => 'reload'}
    = javascript_include_tag 'application', data: {'turbolinks-track' => 'reload'}
    = csrf_meta_tags
    - if ENV['SEGMENT_WRITE_KEY'].present?
      :javascript
        !function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.0.1";
        analytics.load("#{ENV['SEGMENT_WRITE_KEY']}");
        analytics.page()
        }}();

  %body{class: "body-#{controller_name} body-#{controller_name}-#{action_name} locale-#{I18n.locale}"}
    .navbar.navbar-default{:role => "navigation"}
      .container
        .navbar-header
          %button.navbar-toggle{"data-target" => ".navbar-collapse", "data-toggle" => "collapse", :type => "button"}
            %span.sr-only Toggle navigation
            %span.icon-bar
            %span.icon-bar
            %span.icon-bar
          %a.navbar-brand{:href => root_path}
            = image_tag 'logo.png'
        .navbar-collapse.collapse
          %ul.nav.navbar-nav.navbar-right

            - if current_user

              - if current_user.organization
                %li
                  - if current_user.organization.stripe_live_mode?
                    %input{:type =>"checkbox", :name =>"organization_test_mode", :checked => current_user.organization.live?, id: 'organization_test_mode', 'data-update-path' => toggle_organization_path(current_user.organization), 'data-on-text' => 'Live', 'data-off-text' => 'Test' }
                  - else
                    %a{'data-toggle'=>'tooltip', 'data-placement'=>'bottom', 'title'=>"Must complete Stripe setup before using TakeCharge"}
                      Test Mode (locked by Stripe)
                %li
                  %a{class: "dropdown-toggle", href:'#', type:'button', id:'orgMenu', 'data-toggle' => 'dropdown', 'aria-expanded' => 'false'}
                    = current_organization.name
                    %span{class: 'caret'}
                  %ul{class:'dropdown-menu', role:'menu', 'aria-labelledby' => "orgMenu"}
                    %li= link_to 'Dashboard', organization_path(current_organization)
                    %li= link_to 'Charges', organization_charges_path(current_organization)
                    %li= link_to 'Users', organization_users_path(current_organization)
                    %li= link_to 'Settings', organization_settings_path(current_organization)
                %li
                  %a{class: "dropdown-toggle", href: '#', type: 'button', id:'userMenu', 'data-toggle' => 'dropdown', 'aria-expanded' => 'false'}
                    = current_user.email
                    %span{class: 'caret'}
                  %ul{class:'dropdown-menu', role:'menu', 'aria-labelledby' => "userMenu"}
                    %li= link_to 'Admin', admin_path if can? :manage, :all
                    %li= link_to "Sign out", destroy_user_session_path, method: :delete
            - else
              %li= link_to 'Sign in', new_user_session_path

    .container#main
      - flash.each do |type, message|
        .div{class:"alert #{bootstrap_class_for(type)} fade in"}
          %button.close{"data-dismiss"=>"alert"} ×
          = message
      = yield
    %footer

    = yield :end_of_body