Skip to content

Commit 417f652

Browse files
committed
V1.0.4
Add dashboard widget fix lint
1 parent 1f92724 commit 417f652

17 files changed

+8084
-6937
lines changed

q-manui/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "q-manui",
3-
"version": "1.0.3",
4-
"description": "DenoMan 1.0.3",
3+
"version": "1.0.4",
4+
"description": "DenoMan 1.0.4",
55
"productName": "q-manui",
66
"author": "Sameh Fakoua <s.fakoua@gmail.com>",
77
"private": true,
@@ -13,6 +13,7 @@
1313
"build": "quasar build"
1414
},
1515
"dependencies": {
16+
"@quasar/cli": "^2.3.0",
1617
"@quasar/extras": "^1.16.4",
1718
"axios": "^1.2.1",
1819
"lodash": "^4.17.21",

q-manui/src/components/ServerComponent.vue

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
<service-details-component
2323
:service="selectedService"
2424
v-on:on-open-service="
25-
(svr: ServiceType) => {
25+
(svr: ServiceModel) => {
2626
openService(svr);
2727
}
2828
"
@@ -34,12 +34,12 @@
3434
<div class="q-a-xl no-margin no-padding">
3535
<services-list-component
3636
v-on:on-select-service="
37-
(svr: ServiceType) => {
37+
(svr: ServiceModel) => {
3838
selectedService = svr;
3939
}
4040
"
4141
v-on:on-open-service="
42-
(svr: ServiceType) => {
42+
(svr: ServiceModel) => {
4343
openService(svr);
4444
}
4545
"
@@ -56,7 +56,7 @@
5656
<header>
5757
<div class="fit row wrap justify-between items-start content-start">
5858
<div class="text-caption caption dialog-title">
59-
{{ doubleClickedService.data?.caption }}
59+
{{ doubleClickedService?.caption }}
6060
</div>
6161
<div class="overflow: auto;">
6262
<q-btn
@@ -169,9 +169,7 @@ import ServiceDetailsComponent from '../components/ServiceDetailsComponent.vue';
169169
import ServiceWindowComponent from '../components/service-window/ServiceWindowComponent.vue';
170170
import DashboardComponent from '../components/dashboard/DashboardComponent.vue';
171171
172-
import { ServiceModel, ServiceType } from './models';
173-
174-
//import { ServiceModel, ServiceType } from './repo/models';
172+
import { ServiceModel } from './models';
175173
176174
export default defineComponent({
177175
name: 'ServerComponent',
@@ -182,16 +180,16 @@ export default defineComponent({
182180
DashboardComponent,
183181
},
184182
methods: {
185-
openService(service: ServiceType) {
183+
openService(service: ServiceModel) {
186184
this.doubleClickedService = service;
187185
this.isDialogOpen = true;
188186
(this.$refs.serviceWindow as HTMLDialogElement).showModal();
189187
},
190188
},
191189
192190
setup() {
193-
const doubleClickedService = ref<ServiceType>(new ServiceType());
194-
const selectedService = ref<ServiceType>(new ServiceType());
191+
const doubleClickedService = ref<ServiceModel | undefined>(undefined);
192+
const selectedService = ref<ServiceModel | undefined>(undefined);
195193
const isDialogOpen = ref(false);
196194
const serviceWindow = ref<HTMLDialogElement | null>(null);
197195
@@ -205,9 +203,9 @@ export default defineComponent({
205203
}
206204
});
207205
bus.on('serviceChanged', (service) => {
208-
selectedService.value = new ServiceType(service as ServiceModel);
206+
selectedService.value = service;
209207
if (isDialogOpen.value) {
210-
doubleClickedService.value = new ServiceType(service as ServiceModel);
208+
doubleClickedService.value = service;
211209
serviceWindow.value?.showModal();
212210
}
213211
});

q-manui/src/components/ServiceDetailsComponent.vue

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
<template>
22
<div class="container column justify-between">
33
<div>
4-
<div v-if="!service.data" class="text-weight-bold text-primary mb-12">
4+
<div v-if="!service" class="text-weight-bold text-primary mb-12">
55
Select a service
66
</div>
7-
<div v-if="service.data">
7+
<div v-if="service">
88
<div class="text-weight-bold text-primary mb-12">
9-
{{ service.data?.caption }}
9+
{{ service.caption }}
1010
</div>
1111
<div>
1212
<q-btn outline size="sm" color="primary" label="Actions">
@@ -19,7 +19,7 @@
1919
<q-item
2020
clickable
2121
@click="controlService('Start')"
22-
:disable="service?.data?.state !== 'Stopped'"
22+
:disable="service?.state !== 'Stopped'"
2323
>
2424
<q-item-section avatar class="q-item-section-item">
2525
<q-icon name="play_arrow" size="20px" />
@@ -29,7 +29,7 @@
2929
<q-item
3030
clickable
3131
@click="controlService('Stop')"
32-
:disable="!service?.data?.acceptStop"
32+
:disable="!service?.acceptStop"
3333
>
3434
<q-item-section avatar class="q-item-section-item">
3535
<q-icon name="stop" size="20px" />
@@ -40,10 +40,7 @@
4040
clickable
4141
@click="controlService('Suspend')"
4242
:disable="
43-
!(
44-
service?.data?.state === 'Running' &&
45-
service?.data?.acceptPause
46-
)
43+
!(service?.state === 'Running' && service?.acceptPause)
4744
"
4845
>
4946
<q-item-section avatar class="q-item-section-item">
@@ -54,7 +51,7 @@
5451
<q-item
5552
clickable
5653
@click="controlService('Resume')"
57-
:disable="service?.data?.state !== 'Paused'"
54+
:disable="service?.state !== 'Paused'"
5855
>
5956
<q-item-section avatar class="q-item-section-item">
6057
<q-icon name="motion_photos_paused" size="20px" />
@@ -64,7 +61,7 @@
6461
<q-item
6562
clickable
6663
@click="controlService('Restart')"
67-
:disable="service?.data?.state !== 'Running'"
64+
:disable="service?.state !== 'Running'"
6865
>
6966
<q-item-section avatar class="q-item-section-item">
7067
<q-icon name="replay" size="20px" />
@@ -85,11 +82,11 @@
8582

8683
<div class="text-weight-bold mt-12">Path to executable:</div>
8784
<div class="mb-12 div-path-name">
88-
{{ service.data?.pathName.replaceAll('|', '\\') }}
85+
{{ service.pathName.replaceAll('|', '\\') }}
8986
</div>
9087
<div class="text-weight-bold">Description:</div>
9188
<div>
92-
{{ service.data?.description }}
89+
{{ service.description }}
9390
</div>
9491
</div>
9592
</div>
@@ -144,21 +141,21 @@
144141
overflow-wrap: anywhere;
145142
}
146143
</style>
144+
147145
<script lang="ts">
148-
import { defineComponent, ref } from 'vue';
149-
import { api } from 'boot/axios';
146+
import { PropType, defineComponent, ref } from 'vue';
147+
import { getSystemInformation } from './service-api';
150148
151-
import { ControlAction, ServiceType } from './models';
149+
import { ControlAction, ServiceModel, SystemModel } from './models';
152150
import { bus } from 'boot/bus';
153-
import { useHostsStore } from 'src/stores/hosts-store';
154151
155152
export default defineComponent({
156153
name: 'ServiceDetailsComponent',
157154
158155
props: {
159156
service: {
160-
type: ServiceType,
161-
required: true,
157+
type: Object as PropType<ServiceModel>,
158+
required: false,
162159
},
163160
},
164161
@@ -169,31 +166,28 @@ export default defineComponent({
169166
async controlService(action: ControlAction) {
170167
bus.emit('controlService', {
171168
action: action,
172-
name: this.service?.data?.name,
169+
name: this.service?.name,
173170
});
174171
},
175172
},
176173
177174
emits: ['onOpenService'],
178175
179176
setup() {
180-
const store = useHostsStore();
181-
182-
const params = store.$state[0];
177+
const data = ref<SystemModel>({} as SystemModel);
183178
184-
const data = ref([]);
185179
const isLoading = ref(true);
186-
api
187-
.get('http://localhost:8001/api/system', { params })
180+
getSystemInformation()
188181
.then((response) => {
189-
data.value = response.data;
182+
data.value = response;
190183
})
191184
.catch(() => {
192185
console.log('error');
193186
})
194187
.finally(() => {
195188
isLoading.value = false;
196189
});
190+
197191
return {
198192
data,
199193
isLoading,

q-manui/src/components/ServicesListComponent.vue

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,11 @@
180180
import { defineComponent, onMounted, ref } from 'vue';
181181
182182
import * as serviceApi from './service-api';
183-
import { ControlAction, ServiceModel, ServiceType } from './models';
183+
import { ControlAction, ServiceModel } from './models';
184184
import { bus } from 'boot/bus';
185-
import { useQuasar } from 'quasar';
185+
import { QTableColumn, useQuasar } from 'quasar';
186186
187-
const columns = [
187+
const columns: QTableColumn[] = [
188188
{
189189
name: 'caption',
190190
label: 'Name',
@@ -242,21 +242,21 @@ export default defineComponent({
242242
name: 'ServicesListComponent',
243243
244244
methods: {
245-
onSelect(row: any) {
245+
onSelect(row: ServiceModel) {
246246
this.selected = [row];
247247
const service = this.selected[0] as ServiceModel;
248248
249249
this.setDisabledControls(service);
250-
this.$emit('onSelectService', new ServiceType(row as ServiceModel));
250+
this.$emit('onSelectService', row as ServiceModel);
251251
},
252252
rowStyle(service: ServiceModel): string {
253253
if (service.isSystemDriver) {
254254
return 'text-blue-6 text-weight-thin system-driver';
255255
}
256256
return service.state == 'Stopped' ? 'text-red-6' : 'bg-white text-black';
257257
},
258-
onDoubleClick(row: any) {
259-
this.$emit('onOpenService', new ServiceType(row as ServiceModel));
258+
onDoubleClick(row: ServiceModel) {
259+
this.$emit('onOpenService', row as ServiceModel);
260260
},
261261
controlService(action: ControlAction) {
262262
if (this.selected && this.selected.length > 0) {
@@ -279,12 +279,12 @@ export default defineComponent({
279279
emits: ['onSelectService', 'onOpenService'],
280280
281281
setup() {
282-
const services = ref<Array<ServiceModel>>([]); //All services
283-
const data = ref<Array<ServiceModel>>([]); //Services filtered by isSystemData
282+
const services = ref<ServiceModel[]>([]); //All services
283+
const data = ref<ServiceModel[]>([]); //Services filtered by isSystemData
284284
const isLoading = ref(true);
285285
const showSystemDriver = ref(false);
286286
const disabledControls = ref<boolean[]>([true, true, true, true, true]);
287-
const selected = ref([] as any[]);
287+
const selected = ref([] as ServiceModel[]);
288288
const $q = useQuasar();
289289
290290
const loadServices = async () => {
@@ -310,6 +310,8 @@ export default defineComponent({
310310
onMounted(async () => {
311311
await loadServices();
312312
isLoading.value = false;
313+
314+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
313315
bus.on('controlService', async (action: any) => {
314316
$q.loading.show();
315317
const res = await serviceApi.controlService(action.action, action.name);

0 commit comments

Comments
 (0)