Opetushallitus/eperusteet-opintopolku

View on GitHub
eperusteet-opintopolku-app/yo/app/views/haku/haku.jade

Summary

Maintainability
Test Coverage
mixin gicon(icon, text)
  span(class="glyphicon glyphicon-" + icon)
  span=" "
  span(kaanna=text)

mixin giconrtl(icon, text)
  span(kaanna=text)
  span=" "
  span(class="glyphicon glyphicon-" + icon)

mixin label(icon, text, type)
  span(class="label label-" + type)
    +gicon(icon, text)

mixin haku()
  span(uib-dropdown ng-if="!hakuparametrit.kieli")
    a.dropdown-toggle(uib-dropdown-toggle)
      +giconrtl("chevron-down", "'haku-julkaisukieli'")
    ul.dropdown-menu.dropdown-menu-right(uib-dropdown-menu)
      li(ng-repeat="kieli in sisaltokielet" ng-class="{active: hakuparametrit.kieli === kieli}")
        a(kaanna="kieli" ng-click="muutaHakua('kieli', kieli)")

  span(ng-if="hakuparametrit.kieli")
    a(ng-click="poistaHakukriteeri('kieli')")
      +giconrtl("remove", "hakuparametrit.kieli")

  span(uib-dropdown ng-hide="piilotaKoulutustyyppi()" ng-if="!hakuparametrit.tyyppi")
    a.dropdown-toggle(uib-dropdown-toggle)
      +giconrtl("chevron-down", "'tyyppi'")
    ul.dropdown-menu.dropdown-menu-right(uib-dropdown-menu)
      li(ng-repeat="koodi in koulutustyypit" ng-class="{active: hakuparametrit.tyyppi === koodi}")
        a(kaanna="koodi" ng-click="muutaHakua('tyyppi',koodi)")

  span(ng-hide="piilotaKoulutustyyppi()" ng-if="hakuparametrit.tyyppi")
    a(ng-click="poistaHakukriteeri('tyyppi')")
      +giconrtl("remove", "hakuparametrit.tyyppi")

.haku
  h1.hidden-xs(kaanna='sivu.otsikko')

  .haku-box
    input.form-control(type="text" placeholder="{{'hae-nimella' | kaanna}}" ng-model="hakuparametrit.nimi" ng-change="hakuMuuttui()")

    .haku-filtered
      mixin switchField(field, locale)
        a(href="" ng-click="switchHakua('" + field + "')")
          span(class="label label-" + locale)
            span(ng-if="hakuparametrit." + field)
              +gicon("ok", "'" + locale + "'")
            span(kaanna="'" + locale + "'" ng-if="!hakuparametrit." + field)

      +switchField('tuleva', 'tulevat')
      +switchField('voimassaolo', 'voimassaolevat')
      +switchField('siirtyma', 'siirtymassa')
      +switchField('poistunut', 'poistuneet')
      +switchField('tutkintonimikkeet', 'tutkintonimikkeet')
      +switchField('osaamisalat', 'osaamisalat')
      +switchField('tutkinnonosat', 'tutkinnonosat')

      .haku-filters
        +haku
      .clearfix

  p.kokonaismaara(ng-show="$$hasActiveSpinner === false")
    span(kaanna="'loydettyjen-tutkintojen-maara'")
    span=": "
    span(ng-bind="kokonaismaara")

  div(ng-repeat="peruste in perusteet.data")
    .haku-box
      .color-box(ng-class="peruste.$$tila")
        .text-box
          p
            a.nimi(ui-sref='root.esitys.peruste({ perusteId: peruste.id, suoritustapa: hakuparametrit.suoritustapa})')
              span(ng-bind="peruste.nimi | kaanna")

            span.alarm-marker(
              ng-show="peruste.korvaavatPerusteet.length > 0"
              uib-popover-html="peruste.$$korvaavatPerusteet"
              popover-placement="bottom")
              +gicon("alert")

            span.alarm-marker(
              ng-show="peruste.korvattavatPerusteet.length > 0"
              uib-popover-html="peruste.$$korvattavatPerusteet"
              popover-placement="bottom")
              +gicon("alert")

          p.tutkintonimikkeet(ng-if="hakuparametrit.tutkintonimikkeet && peruste.$$tutkintonimikkeet.koodisto.length > 0")
            span(kaanna="'tutkintonimikkeet'" style="font-weight: bold;")
            =": "
            span(ng-repeat="nimike in peruste.$$tutkintonimikkeet.koodisto | unique:'tutkintonimikeArvo'")
              span(kaanna="nimike.$tutkintonimikeNimi")
              span {{$last ? '' : ', '}}

          p.osaamisalat(ng-if="hakuparametrit.osaamisalat && peruste.osaamisalat.length > 0")
            span(kaanna="'osaamisalat'" style="font-weight: bold;")
            =": "
            span(ng-repeat="osaamisala in peruste.osaamisalat")
              span(kaanna="osaamisala.nimi")
              span {{$last ? '' : ', '}}

          // p.pvm(ng-if="peruste.$$tila === 'voimassa' || peruste.$$tila === 'tuleva'")
          p.pvm
            span(kaanna="'voimaantulo-pvm'")
            =" "
            span(pvm="peruste.voimassaoloAlkaa")

          // p.pvm(ng-if="peruste.$$tila === 'arkistoitu'")
          p.pvm(ng-if="peruste.voimassaoloLoppuu")
            span(kaanna="'voimassaolo-paattymispvm'")
            =" "
            span(pvm="peruste.voimassaoloLoppuu")

          // EP-1486
          p.pvm(ng-if="peruste.siirtymaPaattyy")
            span(kaanna="'siirtyman-paattyminen'")
            =" "
            span(pvm="peruste.siirtymaPaattyy")

          mixin korvaavuusLista(lista)
            table.table
              thead
                tr
                  td(ng-bind="'diaarinumero-label' | kaanna")
                  td(ng-bind="'nimi' | kaanna")
                  td(ng-bind="'voimaantulo-pvm' | kaanna")
              tbody
                tr(ng-repeat="korvaava in " + lista)
                  td(ng-bind="korvaava.diaarinumero")
                  td(ng-bind="korvaava.nimi | kaanna")
                  td(pvm="korvaava.voimassaoloAlkaa")

  .text-center(ng-show="kokonaismaara > hakuparametrit.sivukoko")
    ul(uib-pagination
       ng-model='nykyinenSivu'
       ng-change='pageChanged()'
       total-items='kokonaismaara'
       items-per-page='hakuparametrit.sivukoko')