Skip to content
Snippets Groups Projects
SearchResults.vue 3.19 KiB
Newer Older
Ole Voldsæter's avatar
Ole Voldsæter committed
<template>
    <div class="flex-container" :class="$vuetify.breakpoint.name">
Ole Voldsæter's avatar
Ole Voldsæter committed
      <ul class="hits" v-if="results_bob.length">
        <li  class="article_container" v-for="(result, index) in results_bob" :key="index + results_hash" tabindex="-1">
          <Article
              :article="result"
              @article-click="article_link_click"
              @details-click="details_click">
          </Article>
        </li>
Ole Voldsæter's avatar
Ole Voldsæter committed
      <ul class="hits" v-if="results_nob.length">
        <li class="article_container" v-for="(result, index) in results_nob" :key="index + results_hash" tabindex="-1">
          <Article
              :article="result"
              @article-click="article_link_click"
              @details-click="details_click"
              :class="right_col_class_name">
          </Article>
        </li>
Ole Voldsæter's avatar
Ole Voldsæter committed
      </ul>
Ole Voldsæter's avatar
Ole Voldsæter committed
</template>

<script>
import Article from './Article.vue'
Ole Voldsæter's avatar
Ole Voldsæter committed
export default {
  name: 'SearchResults',
  props: {
    hits: Array,
    lang: String
Ole Voldsæter's avatar
Ole Voldsæter committed
  },
  computed: {
    right_col_class_name: function() {
      if (this.$vuetify.breakpoint.mdAndUp) {
        if (this.results_bob.length) {
          return 'righ_hand_column'
        }
      }
      return ''
    },
Ole Voldsæter's avatar
Ole Voldsæter committed
    results_bob: function(){
      return this.hits.filter(hit => hit.dictionary == 'bob')
Ole Voldsæter's avatar
Ole Voldsæter committed
    },
      return this.hits.filter(hit => hit.dictionary == 'nob')
      return this.hits.reduce((hash, hit) => (hash + hit.article_id) % 10000, 0)
Ole Voldsæter's avatar
Ole Voldsæter committed
    }
Ole Voldsæter's avatar
Ole Voldsæter committed
  },
  methods: {
    article_link_click: function(item) {
      this.$emit('article-click', item)
    },
    details_click: function(item) {
      this.$emit('details-click', item)
Ole Voldsæter's avatar
Ole Voldsæter committed
  }
}

</script>
<style >
Ole Voldsæter's avatar
Ole Voldsæter committed
    color: var(--v-primary-base);
    margin: 0px;
    padding: 20px 0px 20px 0px;
    margin-top:0px;
  .flex-container.xs, .flex-container.sm {
    padding: 0px !important;
Ole Voldsæter's avatar
Ole Voldsæter committed
    min-width: 50%;
  #search_results details.xs, #search_results details.sm {
    display: none;
  }

  #search_results .article_content.xs, #search_results .article_content.sm {
    position: relative;
    height: 100px;
    overflow: hidden;
  }

  #search_results .article_content.xs > section, #search_results .article_content.sm > section {
    display: none;
  }

  #search_results .article_content.xs h3, #search_results .article_content.sm h3 {
    display: none;
  }

  #search_results .article_content.xs > section.definitions, #search_results .article_content.sm > section.definitions {
    display: block;
  }

  #search_results .article_content.xs > .fade, #search_results .article_content.sm  > .fade {
Ole Voldsæter's avatar
Ole Voldsæter committed
    display: inline-block;
    text-align: right;
    font-size: 20px;
    font-weight: bold;
Ole Voldsæter's avatar
Ole Voldsæter committed
    color: var(--v-primary-base);
    padding-top: 30px;
    width:100%;
    height:60px;
    position:absolute;
    left:0;
    top:40px;
    background:linear-gradient(rgba(255, 255, 255, 0) 0px, var(--v-tertiary-base));

  article.righ_hand_column div.inflection-wrapper {
    right: -35px;
  }