Use global dashboard user profile in apps view
This commit is contained in:
@@ -1,19 +1,17 @@
|
||||
<script setup>
|
||||
|
||||
import { ref, computed, useTemplateRef, onMounted, onUnmounted } from 'vue';
|
||||
import { ref, computed, useTemplateRef, onMounted, onUnmounted, inject } from 'vue';
|
||||
import { Button, ButtonGroup, SingleSelect, Icon, TableView, TextInput } from 'pankow';
|
||||
import { API_ORIGIN, APP_TYPES, HSTATES, ISTATES, RSTATES } from '../constants.js';
|
||||
import AppsModel from '../models/AppsModel.js';
|
||||
import ApplinksModel from '../models/ApplinksModel.js';
|
||||
import DomainsModel from '../models/DomainsModel.js';
|
||||
import ProfileModel from '../models/ProfileModel.js';
|
||||
import ApplinkDialog from '../components/ApplinkDialog.vue';
|
||||
import PostInstallDialog from '../components/PostInstallDialog.vue';
|
||||
|
||||
const appsModel = AppsModel.create();
|
||||
const domainsModel = DomainsModel.create();
|
||||
const applinksModel = ApplinksModel.create();
|
||||
const profileModel = ProfileModel.create();
|
||||
|
||||
const VIEW_TYPE = {
|
||||
LIST: 'list',
|
||||
@@ -24,7 +22,7 @@ let refreshInterval;
|
||||
|
||||
const ready = ref(false);
|
||||
const filter = ref('');
|
||||
const profile = ref({});
|
||||
const profile = inject('profile');
|
||||
const apps = ref([]);
|
||||
const viewType = ref((localStorage.appsView && (localStorage.appsView === VIEW_TYPE.GRID || localStorage.appsView === VIEW_TYPE.LIST)) ? localStorage.appsView : VIEW_TYPE.GRID);
|
||||
const tagFilter = ref('');
|
||||
@@ -196,14 +194,9 @@ function toggleView() {
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
let [error, result] = await profileModel.get();
|
||||
if (error) return console.error(error);
|
||||
|
||||
profile.value = result;
|
||||
|
||||
await refreshApps();
|
||||
|
||||
[error, result] = await domainsModel.list();
|
||||
const [error, result] = await domainsModel.list();
|
||||
if (error) return console.error(error);
|
||||
|
||||
domainFilterOptions.value = domainFilterOptions.value.concat(result.map(d => { d.id = d.domain; return d; }));
|
||||
@@ -232,9 +225,9 @@ onUnmounted(() => {
|
||||
{{ $t('apps.title') }}
|
||||
<div style="display: flex; gap: 4px; flex-wrap: wrap; margin-top: 10px;">
|
||||
<TextInput v-model="filter" :placeholder="$t('apps.searchPlaceholder')" />
|
||||
<SingleSelect class="pankow-no-mobile" v-if="profile.isAtLeastAdmin && tagFilterOptions.length > 1" :options="tagFilterOptions" option-key="id" option-label="name" v-model="tagFilter" />
|
||||
<SingleSelect class="pankow-no-mobile" v-if="profile.isAtLeastAdmin" :options="tagFilterOptions" option-key="id" option-label="name" v-model="tagFilter" />
|
||||
<SingleSelect class="pankow-no-mobile" v-if="profile.isAtLeastAdmin" :options="stateFilterOptions" option-key="id" v-model="stateFilter" />
|
||||
<SingleSelect class="pankow-no-mobile" v-if="profile.isAtLeastAdmin && domainFilterOptions.length > 2" :options="domainFilterOptions" option-key="id" option-label="domain" v-model="domainFilter" />
|
||||
<SingleSelect class="pankow-no-mobile" v-if="profile.isAtLeastAdmin" :options="domainFilterOptions" option-key="id" option-label="domain" v-model="domainFilter" />
|
||||
<Button tool outline secondary @click="toggleView()" :icon="viewType === VIEW_TYPE.GRID ? 'fas fa-list' : 'fas fa-grip'"></Button>
|
||||
</div>
|
||||
</h1>
|
||||
|
||||
Reference in New Issue
Block a user