# Media

W module tym obsługiwany jest menedżer plików, w którym można zarządzać:

  • dyskami
  • katalogami
  • plikami

Można go włączyć w dwóch trybach:

  • strony src/modules/media/pages/FileIndexPage.vue
  • pop-up src/modules/media/components/MediaManagerDialog.vue

# useMediaManager

Żeby włączyć menedżer plików w trybie pop-up zalecane jest użycie funkcji show w composable useMediaManager. Zwraca ona wybrany plik lub wiele plików w zależności od wartości w multiple.

Przykład użycia:

<script setup>
  const selectedFiles = ref(null);

  const { show } = useMediaManager({
    multiple: true,
  });

  async function showMediaManager() {
    selectedFiles.value = await show();
  }
</script>

# Przypisywanie do modeli

Tak jak jest to opisane w sekcji backendowej konieczne jest wysłanie parametru media_files podczas tworzenia/edycji danego modelu. Możliwe jest również użycie croppera, który dokona przekształcenia pliku graficznego i wyśle dane w parametrze coordinates.

# VFileCollection

Obsługa dodawania pliku z MediaManagera. Można dodać jeden lub wiele plików (w zależności od propsa multiple).

















 
 
 
 
 
 
 
 
 











<template>
  <base-form @submit="onSubmit">
    <div class="row q-col-gutter-md">
      <v-input
        class="col-sm-3 col-xs-12"
        name="first_name"
        :label="$t('labels.first_name')"
      />

      <v-input
        class="col-sm-3 col-xs-12"
        name="last_name"
        :label="$t('labels.last_name')"
      />
    </div>

    <v-file-collection
        :label="$t('labels.avatar')"
        type="image"
        name="media_files.avatar"
        :cropper-props="{
            maxWidth: 400,
            maxHeight: 400,
        }"
    />

    <div class="row justify-end">
      <q-btn
        color="secondary"
        :label="$t('buttons.create')"
        type="submit"
      />
    </div>
  </base-form>
</template>

TIP

Podanie parametrów maxWidth, maxHeight do cropperProps spowoduje wyświetlenie informacji w oknie croppera na temat pożądanych wartości. Pozostałe cropperProps związane są bezpośrednio z biblioteką Advanced Cropper (opens new window).

# VImageCollection

Za pomocą tego komponentu możemy dodać dwie wersje grafiki: desktop oraz mobile.

Nazwą kolekcji możemy sterować poprzez propsy:

  • nameDesktop
  • nameMobile