Update pankow to improve busy states and dialogs

This commit is contained in:
Johannes Zellner
2025-07-11 22:33:31 +02:00
parent fd4f3147f9
commit c47d5565c2
4 changed files with 25 additions and 22 deletions
+5 -2
View File
@@ -1,7 +1,7 @@
<script setup>
import { ref, computed, useTemplateRef, onMounted, onUnmounted, inject } from 'vue';
import { Button, ButtonGroup, SingleSelect, Icon, TableView, TextInput } from '@cloudron/pankow';
import { Button, ButtonGroup, SingleSelect, Icon, TableView, TextInput, ProgressBar } from '@cloudron/pankow';
import { API_ORIGIN, APP_TYPES, HSTATES, ISTATES, RSTATES } from '../constants.js';
import AppsModel from '../models/AppsModel.js';
import ApplinksModel from '../models/ApplinksModel.js';
@@ -232,7 +232,10 @@ onUnmounted(() => {
</div>
</h1>
<div v-show="ready">
<div v-if="!ready">
<ProgressBar mode="indeterminate" :show-label="false" :slim="true"/>
</div>
<div v-else>
<TransitionGroup name="grid-animation" tag="div" class="grid" v-if="viewType === VIEW_TYPE.GRID">
<a v-for="app in filteredApps" :key="app.id" class="grid-item" @click="onOpenApp(app, $event)" :href="'https://' + app.fqdn" target="_blank">
<img :alt="app.label || app.subdomain || app.fqdn" :src="app.iconUrl" v-fallback-image="API_ORIGIN + '/img/appicon_fallback.png'"/>
+4 -4
View File
@@ -6,7 +6,7 @@ const t = i18n.t;
import moment from 'moment';
import { ref, computed, useTemplateRef, onMounted, onUnmounted, inject, watch, nextTick } from 'vue';
import { TextInput, Spinner, InputDialog, SingleSelect } from '@cloudron/pankow';
import { TextInput, ProgressBar, InputDialog, SingleSelect } from '@cloudron/pankow';
import AppsModel from '../models/AppsModel.js';
import AppstoreModel from '../models/AppstoreModel.js';
import AppInstallDialog from '../components/AppInstallDialog.vue';
@@ -182,12 +182,12 @@ onUnmounted(() => {
</script>
<template>
<div class="content" style="width: 100%;">
<div class="content" style="width: 100%; height: 100%;">
<InputDialog ref="inputDialog"/>
<AppInstallDialog ref="appInstallDialog" @close="onAppInstallDialogClose"/>
<div v-if="!ready" style="width: 100%; text-align: center;">
<Spinner class="pankow-spinner-large"/>
<div v-if="!ready" style="height: 100%; display: flex; flex-direction: column; justify-content: center;">
<ProgressBar mode="indeterminate" :show-label="false" :slim="true"/>
</div>
<div v-else-if="appstoreTokenError">
Cloudron not registered. Reset registration <a href="#/cloudron-account">here</a>.