zuzak/gov.zk

View on GitHub
views/books/longlist.pug

Summary

Maintainability
Test Coverage
extends ../skeleton
block breadcrumb
  li
    a(href=__('/book-club')) #{__('book-club')}
  li
    a(href=__('/book-club/long-list')) #{__('long-list')}
mixin isbnform(action, book)
  details
    summary
      span.summary #{__('longlist-'+action+'-isbn-header')}
    form(method='POST')
      // label(for='isbn'+i) ISBN
      input(type='hidden',name='title',value=book.title)
      input(type='hidden',name='author',value=book.author)
      input(type='number',maxlength='13',name='isbn',style='width:9em;',id='isbn'+i,placeholder=book.isbn,size='11').form-control
      input(type='submit',value=__('longlist-'+action+'-isbn-button')).button
block content
  h1.heading-xlarge #{__('long-list')}
  .grid-row
    .column-two-thirds
      if state.advertise == 'LONGLIST'
        p.lede #{__('longlist-lede-present')}
        p.font-small #{__('longlist-secondpara-present')}
      else
        p.lede #{__('longlist-lede-past')}
        p.font-small #{__('longlist-secondpara-past')}
      p.panel #{__('longlist-metadataproblem', { glyph: '✗'})}
    if state.allowVoting
      .grid-row
        .column-two-thirds
          p.font-small.
            These texts can now be <a href="/book-club/short-list">voted on</a>.
    if req.user && state.addToLonglist
      .grid-row
        .column-two-thirds
          p
          p
            a(href=__('/book-club/long-list/add-a-book')).button #{__('longlist-add-book')}
    else
      .grid-row
        .column-two-thirds
          p #{__('longlist-add-book-disabled')}
    .grid-row
      .column-full
        table
          thead
            tr
              th
                th #{__('longlist-title')}
              th #{__('longlist-author')}
              th(colspan="2") #{__('longlist-status')}
              th #{__('book-congress')}

          - i = 0
          for book in books
            - i++
            tr
              if book.isbn
                td.numeric
                  a(href='book/'+book.isbn)
                    if book.upstream && book.upstream.imageLinks && book.upstream.imageLinks.smallThumbnail
                      img(src=book.upstream.imageLinks.smallThumbnail.replace('http://','//'), style="height:2em")
                    else
                      span #{i}
              else
                td.numeric #{i}
              td
                em #{book.title}
              td #{book.author}
              if book.isbn 
                //- user supplied ISBN
                if book.upstream
                  //- upstream data fetched
                  if book.upstream.imageLinks && book.upstream.imageLinks.thumbnail && book.upstream.description
                    if book.upstream && book.upstream.oclc && book.upstream.oclc && book.upstream.oclc.congress
                      if book.longlistedBy === req.user
                        td.green(title=__('longlist-metadata-ok')) ✓
                        td
                          strong #{book.longlistedBy}
                      else
                        td.green(title=__('longlist-metadata-ok')) ✓
                        td #{book.longlistedBy}
                      td
                        - classification = book.upstream.oclc.congress.substring(0,2).replace(/[0-9]/g, '')
                        abbr(title=__('book-congress-'+ classification.toLowerCase())) #{classification}
                    else
                      td.red(title=__('longlist-metadata-missing')) ✓
                      td(colspan="2")
                        +isbnform('edit', book)
                  else
                    //- bad upstream
                    td.red(title=__('longlist-metadata-bad')) ✗
                    td(colspan="2")
                      +isbnform('edit', book)
                else
                  //- no upstream
                  td.red(title=__('longlist-metadata-bad')) ✗
                  td(colspan="2")
                    a(href='book/'+book.isbn) #{__('longlist-getdata')}
              else
                  td.red(title=__('longlist-metadata-bad')) ✗
                  td(colspan="2")
                    +isbnform('add', book)
          else
            tr
              td(colspan="6").center #{__('longlist-nobooks')}
    if req.user && state == 'LONGLIST'
      .grid-row
        .column-two-thirds
          p
          p
            a(href=__('/book-club/long-list/add-a-book')).button #{__('longlist-add-book')}