.stf-logs(ng-controller='LogsCtrl')
  .widget-container.fluid-height
    .widget-content
      table.table.table-condensed.logcat-filters-table(ng-show='true')
        tr
          td(width='1%')
            button(ng-model='started', uib-btn-checkbox, title='{{"Start/Stop Logging"|translate}}').btn.btn-xs.btn-primary-outline
              i.fa.fa-list-alt
              span(ng-if='started') {{"Stop"|translate}}
              span(ng-if='!started') {{"Get"|translate}}
          td(width='6%')
            select(ng-model='filters.priority', ng-options='l.name for l in filters.levelNumbers')
              option(value='', disabled, selected) {{"Level"|translate}}
          td(width='10%')
            input(ng-model='filters.date', type='text', placeholder='{{"Time"|translate}}').input-sm.form-control
          td(width='8%', ng-if='$root.platform == "native"')
            input(ng-model='filters.pid', type='text', placeholder='{{"PID"|translate}}').input-sm.form-control
          td(width='8%', ng-if='$root.platform == "native"')
            input(ng-model='filters.tid', type='text', placeholder='{{"TID"|translate}}').input-sm.form-control
          td(width='14%', ng-if='$root.platform == "native"')
            input(ng-model='filters.tag', type='text', placeholder='{{"Tag"|translate}}').input-sm.form-control
          td(width='40%')
            input(ng-model='filters.message', type='text', placeholder='{{"Text"|translate}}').input-sm.form-control
          td(width='0')
            button(ng-click='clearTable()', ng-disabled='false', title='{{"Clear"|translate}}').btn.btn-xs.btn-danger-outline
              i.fa.fa-trash-o
              span(translate)  Clear

      logcat-table(add-row='lastEntry')
