Skip to content
Snippets Groups Projects
Workflows.vue 1.18 KiB
Newer Older
  • Learn to ignore specific revisions
  • paulpestov's avatar
    paulpestov committed
    <template>
      <div class="container mb-3">
        <SelectButton v-model="selectedOption" :options="options" optionLabel="name"></SelectButton>
      </div>
      <WorkflowsList v-if="selectedOption.value === 'list'" :data="data" />
      <WorkflowsTable v-else :data="data" />
    </template>
    
    <script setup>
    import { onMounted, ref, watch } from "vue";
    import api from '@/helpers/api';
    import { useRouter, useRoute } from "vue-router";
    import WorkflowsList from "@/components/workflows/WorkflowsList.vue";
    import WorkflowsTable from "@/components/workflows/WorkflowsTable.vue";
    import { useI18n } from "vue-i18n";
    
    const { t } = useI18n();
    
    const data = ref([]);
    const router = useRouter();
    const route = useRoute();
    
    const options = ref([
      { name: t('list'), value: 'list' },
      { name: t('table'), value: 'table' }
    ]);
    const selectedOption = ref(options.value[0]);
    
    
    watch(selectedOption, ({ value }) => {
      router.push({ query: { view: value } });
    });
    
    onMounted(async () => {
      data.value = await api.getWorkflows();
    
      selectedOption.value = options.value.map((option) => {
        return (!route.query.view || route.query.view === option.value) ? option : options.value[0];
      })[0];
      
    });
    </script>
    
    <style scoped>
    
    </style>