| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | 
							- <template lang="pug">
 
-   v-dialog(
 
-     v-model='dialogOpen'
 
-     max-width='650'
 
-     )
 
-     v-card
 
-       .dialog-header
 
-         span {{$t('common:user.search')}}
 
-         v-spacer
 
-         v-progress-circular(
 
-           indeterminate
 
-           color='white'
 
-           :size='20'
 
-           :width='2'
 
-           v-show='searchLoading'
 
-           )
 
-       v-card-text.pt-5
 
-         v-text-field(
 
-           outlined
 
-           :label='$t(`common:user.searchPlaceholder`)'
 
-           v-model='search'
 
-           prepend-inner-icon='mdi-account-search-outline'
 
-           color='primary'
 
-           ref='searchIpt'
 
-           hide-details
 
-           )
 
-         v-list.grey.mt-3.py-0.radius-7(
 
-           :class='$vuetify.theme.dark ? `darken-3-d5` : `lighten-3`'
 
-           two-line
 
-           dense
 
-           )
 
-           template(v-for='(usr, idx) in items')
 
-             v-list-item(:key='usr.id', @click='setUser(usr.id)')
 
-               v-list-item-avatar(size='40', color='primary')
 
-                 span.body-1.white--text {{usr.name | initials}}
 
-               v-list-item-content
 
-                 v-list-item-title.body-2 {{usr.name}}
 
-                 v-list-item-subtitle {{usr.email}}
 
-               v-list-item-action
 
-                 v-icon(color='primary') mdi-arrow-right
 
-             v-divider.my-0(v-if='idx < items.length - 1')
 
-       v-card-chin
 
-         v-spacer
 
-         v-btn(
 
-           text
 
-           @click='close'
 
-           :disabled='loading'
 
-           ) {{$t('common:actions.cancel')}}
 
- </template>
 
- <script>
 
- import _ from 'lodash'
 
- import searchUsersQuery from 'gql/common/common-users-query-search.gql'
 
- export default {
 
-   filters: {
 
-     initials(val) {
 
-       return val.split(' ').map(v => v.substring(0, 1)).join('')
 
-     }
 
-   },
 
-   props: {
 
-     multiple: {
 
-       type: Boolean,
 
-       default: false
 
-     },
 
-     value: {
 
-       type: Boolean,
 
-       default: false
 
-     }
 
-   },
 
-   data() {
 
-     return {
 
-       loading: false,
 
-       searchLoading: false,
 
-       search: '',
 
-       items: []
 
-     }
 
-   },
 
-   computed: {
 
-     dialogOpen: {
 
-       get() { return this.value },
 
-       set(value) { this.$emit('input', value) }
 
-     }
 
-   },
 
-   watch: {
 
-     value(newValue, oldValue) {
 
-       if (newValue && !oldValue) {
 
-         this.search = ''
 
-         this.selectedItems = null
 
-         _.delay(() => { this.$refs.searchIpt.focus() }, 100)
 
-       }
 
-     }
 
-   },
 
-   methods: {
 
-     close() {
 
-       this.$emit('input', false)
 
-     },
 
-     setUser(id) {
 
-       this.$emit('select', id)
 
-       this.close()
 
-     },
 
-     searchFilter(item, queryText, itemText) {
 
-       return _.includes(_.toLower(item.email), _.toLower(queryText)) || _.includes(_.toLower(item.name), _.toLower(queryText))
 
-     }
 
-   },
 
-   apollo: {
 
-     items: {
 
-       query: searchUsersQuery,
 
-       variables() {
 
-         return {
 
-           query: this.search
 
-         }
 
-       },
 
-       fetchPolicy: 'cache-and-network',
 
-       skip() {
 
-         return !this.search || this.search.length < 2
 
-       },
 
-       update: (data) => data.users.search,
 
-       watchLoading (isLoading) {
 
-         this.searchLoading = isLoading
 
-       }
 
-     }
 
-   }
 
- }
 
- </script>
 
 
  |