doctype html html

head
  title = self.class
  meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
  meta name="viewport" content="width=device-width, initial-scale=1.0"
  - assets_mapper route(:assets), suffix: Frontline::ASSETS_SUFFIX do
    == js_tag  'jquery'
    == js_tag  'jquery.cookie'

    - cd 'bootstrap'
    == js_tag  'js/bootstrap.min'
    == css_tag 'css/bootstrap.min'
    == css_tag 'css/bootstrap-responsive.min'

    - cd '../select2'
    == js_tag  'select2.min'
    == css_tag 'select2'

    - cd '../noty'
    == js_tag 'jquery.noty'
    == js_tag 'layouts/top'
    == js_tag 'layouts/topRight'
    == js_tag 'themes/default'

    - cd '/'
    == js_tag  'ansi_up'
    == js_tag  'typeahead.min'
    == css_tag 'typeahead.js-bootstrap'
    == css_tag 'select2-bootstrap'
    == js_tag  'api'
    == js_tag  'xhr'
    == css_tag 'ui'

  javascript:
    Frontline = new FrontlineAPI();
    gitDeployer = new Frontline.Git('#{Frontline::Index.route :git}');
    var fileCrudifier = new Frontline.FileCRUD('#{Frontline::Index.route(:file)}');

body
  .container-fluid
    .row-fluid
      .span
        - if session[:application]
          .navbar.navbar-fixed-top
            .navbar-inner
              .container

                a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"
                  span.icon-bar
                  span.icon-bar
                  span.icon-bar

                .nav-collapse.collapse
                  ul.nav
                    li.divider-vertical
                    li
                      a href=Frontline::Index::base_url
                        i.icon-list
                        |  Applications
                    li.divider-vertical

                    li.dropdown
                      a.dropdown-toggle href="#" data-toggle="dropdown"
                        i.icon-wrench
                        | 
                        span.text-info
                          = session[:application].first
                        | 
                        b.caret
                      ul.dropdown-menu
                        - applications.each do |(name,path)|
                          li class=('active' if name == session[:application].first)
                            a href=Frontline::Index.route(:application, name: name) = name
                    li.divider-vertical

                    - [ \
                      Frontline::Controllers, \
                      Frontline::Models, \
                      Frontline::Sources, \
                    ].each do |ctrl|
                      li class=('active' if rq.script_name =~ /\A#{ctrl.base_url}/)
                        a href=ctrl.base_url = ctrl.name.split('::').last
                      li.divider-vertical

                    li.dropdown
                      a.dropdown-toggle href="#" data-toggle="dropdown"
                        | Maintenance 
                        b.caret
                      ul.dropdown-menu
                        - maintenance_files.each do |file|
                          li
                            - onclick = "fileCrudifier.toggleEditor('%s');"
                            a href="#" onclick=(onclick % file)
                              i.icon-pencil
                              |  
                              = File.basename(file)

                        li.divider
                        - %w[install update].each do |task|
                          li
                            - onclick = "Frontline.runCmd('%s')" % Frontline::Index.route(:bundler, task)
                            a href="#" onclick=onclick
                              i.icon-play
                              |  
                              = 'bundle %s' % task

                        - if datamapper?
                          li.divider
                          - %w[auto_migrate auto_upgrade].each do |task|
                            li
                              - confirm = 'This will run %s for ALL MODELS! Continue?' % task
                              - url = Frontline::Models.route(:run_datamapper_task, task)
                              - onclick = "Frontline.runCmd('%s', '%s')" % [url, confirm]
                              a href="#" onclick=onclick
                                i.icon-play
                                |  
                                = task.gsub('_', ' ')

                        li.divider
                          li
                            - onclick = "Frontline.runSpecs('%s');" % Frontline::Controllers.route(:run_specs)
                            a href="#" onclick=onclick
                              i.icon-play
                              span  Run Specs

                        li.divider
                          li.dropdown-submenu
                            a href="#" Outstanding Migrations
                            ul.dropdown-menu
                              - %w[up down].each do |vector|
                                li
                                  - onclick = "new Frontline.Migrations('%s').run('%s');"
                                  a href="#" onclick=(onclick % [Frontline::Models.route(:run_migrations), vector])
                                    i class=('icon-arrow-%s' % vector)
                                    span  Run #{vector}

                    li.divider-vertical
                    li.dropdown.sticky-dropdown
                      a.dropdown-toggle href="#" data-toggle="dropdown"
                        |  Git 
                        b.caret
                      ul.dropdown-menu

                        li
                          a href="#" onclick="gitDeployer.push();"
                            b git push

                        li.divider

                        li style="margin: 0 1em 0 1em;"
                          .text-info git add . && git commit -am
                          input#GitCommit type="text" placeholder="type message and press enter"
                        li.divider

                        li style="margin: 0 1em 0 1em;"
                          .text-info git remote add origin
                          input#GitOrigin type="text" placeholder="type URL and press enter"
                        li.divider

                        li
                          a href="#" onclick="gitDeployer.init();"
                            b git init

                    li.divider-vertical
                    li.hide#lastOperationToggler
                      a href="#" onclick="$('#PTYModal').modal(); return false;" Logs

        .content
          == yield

          #editorContainer
          #PTYModal.modal.hide.fade.FrontlineModal
            .modal-header
              button.close type="button" data-dismiss="modal" aria-hidden="true" ×
              b#PTYModalHeader
            pre.modal-body#PTYModalBody

          javascript:
            $(function() {
              new FrontlineAPI().PTYEventListener("#{Frontline::Index.route(:streamer)}");
            });