Skip to content
Snippets Groups Projects
MetaOwners.vue 1.57 KiB
Newer Older
  • Learn to ignore specific revisions
  •   <FormGroup :label="t('showMeta.owners')" class="tw-order-last" :is-saving="owners.isSaving">
    
          v-model="owners.value"
          :disabled="!authStore.isSuperuser"
    
          :search-provider="searchUsers"
    
          <template #default="{ choice, ...itemAttrs }">
            <li v-bind="itemAttrs">
    
              <UserPreview :user="choice as SteeringUser" transparent />
    
            </li>
          </template>
          <template #selected="{ deselect }">
    
            <template v-for="user in owners.value" :key="user.id">
    
              <UserPreview :user="user" removable @remove="deselect(user)" />
            </template>
          </template>
        </ComboBoxSimple>
      </FormGroup>
    
    <script lang="ts" setup>
    import { useI18n } from '@/i18n'
    
    import { Show } from '@/types'
    import FormGroup from '@/components/generic/FormGroup.vue'
    
    import ComboBoxSimple from '@/components/ComboBoxSimple.vue'
    import UserPreview from '@/components/UserPreview.vue'
    
    import { useAuthStore, useShowStore, useUserStore } from '@/stores'
    import { useRelationList } from '@/form'
    
    import { SteeringUser } from '@/stores/auth'
    
    const { t } = useI18n()
    const authStore = useAuthStore()
    const userStore = useUserStore()
    const showStore = useShowStore()
    const owners = useRelationList(showStore, () => props.show, 'ownerIds', userStore, {
      sortBy: ['lastName', 'firstName', 'username', 'email'],
    
    })
    
    function searchUsers(query: string, signal: AbortSignal) {
    
        query: new URLSearchParams({ search: query }),
        requestInit: { signal },
      })