Skip to content

Commit da0d630

Browse files
committed
feat: adds status column to job files list
Signed-off-by: Pedro Lamas <[email protected]>
1 parent 33076b2 commit da0d630

File tree

5 files changed

+182
-180
lines changed

5 files changed

+182
-180
lines changed

src/components/widgets/filesystem/FileSystem.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,6 +319,7 @@ export default class FileSystem extends Mixins(StateMixin, FilesMixin, ServicesM
319319
if (this.currentRoot === 'gcodes') {
320320
headers = [
321321
...headers,
322+
{ text: this.$t('app.general.table.header.status'), value: 'history.status', configurable: true },
322323
{ text: this.$t('app.general.table.header.height'), value: 'object_height', configurable: true },
323324
{ text: this.$t('app.general.table.header.first_layer_height'), value: 'first_layer_height', configurable: true },
324325
{ text: this.$t('app.general.table.header.layer_height'), value: 'layer_height', configurable: true },

src/components/widgets/filesystem/FileSystemBrowser.vue

Lines changed: 175 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -80,185 +80,178 @@
8080
{{ item.name }}
8181
</file-row-item>
8282

83-
<file-row-item
84-
v-if="root === 'gcodes'"
85-
:headers="headers"
86-
item-value="object_height"
87-
>
88-
<span v-if="item.object_height !== undefined">
89-
{{ $filters.getReadableLengthString(item.object_height) }}
90-
</span>
91-
</file-row-item>
92-
93-
<file-row-item
94-
v-if="root === 'gcodes'"
95-
:headers="headers"
96-
item-value="first_layer_height"
97-
>
98-
<span v-if="item.first_layer_height !== undefined">
99-
{{ item.first_layer_height }} mm
100-
</span>
101-
</file-row-item>
102-
103-
<file-row-item
104-
v-if="root === 'gcodes'"
105-
:headers="headers"
106-
item-value="layer_height"
107-
>
108-
<span v-if="item.layer_height !== undefined">
109-
{{ item.layer_height }} mm
110-
</span>
111-
</file-row-item>
112-
113-
<file-row-item
114-
v-if="root === 'gcodes'"
115-
:headers="headers"
116-
item-value="filament_name"
117-
>
118-
<span v-if="item.filament_name !== undefined">
119-
{{ item.filament_name }}
120-
</span>
121-
</file-row-item>
122-
123-
<file-row-item
124-
v-if="root === 'gcodes'"
125-
:headers="headers"
126-
item-value="filament_type"
127-
>
128-
<span v-if="item.filament_type !== undefined">
129-
{{ item.filament_type }}
130-
</span>
131-
</file-row-item>
132-
133-
<file-row-item
134-
v-if="root === 'gcodes'"
135-
:headers="headers"
136-
item-value="filament_total"
137-
>
138-
<span v-if="item.filament_total !== undefined">
139-
{{ $filters.getReadableLengthString(item.filament_total) }}
140-
</span>
141-
</file-row-item>
142-
143-
<file-row-item
144-
v-if="root === 'gcodes'"
145-
:headers="headers"
146-
item-value="filament_weight_total"
147-
>
148-
<span v-if="item.filament_weight_total !== undefined">
149-
{{ $filters.getReadableWeightString(item.filament_weight_total) }}
150-
</span>
151-
</file-row-item>
152-
153-
<file-row-item
154-
v-if="root === 'gcodes'"
155-
:headers="headers"
156-
item-value="history.filament_used"
157-
>
158-
<span v-if="item.history && item.history.filament_used !== undefined">
159-
{{ $filters.getReadableLengthString(item.history.filament_used) }}
160-
</span>
161-
</file-row-item>
162-
163-
<file-row-item
164-
v-if="root === 'gcodes'"
165-
:headers="headers"
166-
item-value="nozzle_diameter"
167-
>
168-
<span v-if="item.nozzle_diameter !== undefined">
169-
{{ item.nozzle_diameter }} mm
170-
</span>
171-
</file-row-item>
172-
173-
<file-row-item
174-
v-if="root === 'gcodes'"
175-
:headers="headers"
176-
item-value="slicer"
177-
>
178-
<span v-if="item.slicer !== undefined">
179-
{{ item.slicer }}
180-
</span>
181-
</file-row-item>
182-
183-
<file-row-item
184-
v-if="root === 'gcodes'"
185-
:headers="headers"
186-
item-value="slicer_version"
187-
>
188-
<span v-if="item.slicer_version !== undefined">
189-
{{ item.slicer_version }}
190-
</span>
191-
</file-row-item>
192-
193-
<file-row-item
194-
v-if="root === 'gcodes'"
195-
:headers="headers"
196-
item-value="estimated_time"
197-
>
198-
<span v-if="item.estimated_time !== undefined">
199-
{{ $filters.formatCounterSeconds(item.estimated_time) }}
200-
</span>
201-
</file-row-item>
202-
203-
<file-row-item
204-
v-if="root === 'gcodes'"
205-
:headers="headers"
206-
item-value="history.print_duration"
207-
>
208-
<span v-if="item.history && item.history.print_duration !== undefined">
209-
{{ $filters.formatCounterSeconds(item.history.print_duration) }}
210-
</span>
211-
</file-row-item>
212-
213-
<file-row-item
214-
v-if="root === 'gcodes'"
215-
:headers="headers"
216-
item-value="history.total_duration"
217-
>
218-
<span v-if="item.history && item.history.total_duration !== undefined">
219-
{{ $filters.formatCounterSeconds(item.history.total_duration) }}
220-
</span>
221-
</file-row-item>
222-
223-
<file-row-item
224-
v-if="root === 'gcodes'"
225-
:headers="headers"
226-
item-value="first_layer_bed_temp"
227-
>
228-
<span v-if="item.first_layer_bed_temp !== undefined">
229-
{{ item.first_layer_bed_temp }}<small>°C</small>
230-
</span>
231-
</file-row-item>
232-
233-
<file-row-item
234-
v-if="root === 'gcodes'"
235-
:headers="headers"
236-
item-value="first_layer_extr_temp"
237-
>
238-
<span v-if="item.first_layer_extr_temp !== undefined">
239-
{{ item.first_layer_extr_temp }}<small>°C</small>
240-
</span>
241-
</file-row-item>
242-
243-
<file-row-item
244-
v-if="root === 'gcodes'"
245-
:headers="headers"
246-
item-value="chamber_temp"
247-
>
248-
<span v-if="item.chamber_temp !== undefined">
249-
{{ item.chamber_temp }}<small>°C</small>
250-
</span>
251-
</file-row-item>
252-
253-
<file-row-item
254-
v-if="root === 'gcodes'"
255-
:headers="headers"
256-
item-value="print_start_time"
257-
>
258-
<span v-if="item.print_start_time !== undefined && item.print_start_time !== null">
259-
{{ $filters.formatDateTime(item.print_start_time * 1000) }}
260-
</span>
261-
</file-row-item>
83+
<template v-if="root === 'gcodes'">
84+
<file-row-item
85+
:headers="headers"
86+
item-value="history.status"
87+
>
88+
<span v-if="item.history && item.history.status !== undefined">
89+
<job-history-item-status :job="item.history" />
90+
</span>
91+
</file-row-item>
92+
93+
<file-row-item
94+
:headers="headers"
95+
item-value="object_height"
96+
>
97+
<span v-if="item.object_height !== undefined">
98+
{{ $filters.getReadableLengthString(item.object_height) }}
99+
</span>
100+
</file-row-item>
101+
102+
<file-row-item
103+
:headers="headers"
104+
item-value="first_layer_height"
105+
>
106+
<span v-if="item.first_layer_height !== undefined">
107+
{{ item.first_layer_height }} mm
108+
</span>
109+
</file-row-item>
110+
111+
<file-row-item
112+
:headers="headers"
113+
item-value="layer_height"
114+
>
115+
<span v-if="item.layer_height !== undefined">
116+
{{ item.layer_height }} mm
117+
</span>
118+
</file-row-item>
119+
120+
<file-row-item
121+
:headers="headers"
122+
item-value="filament_name"
123+
>
124+
<span v-if="item.filament_name !== undefined">
125+
{{ item.filament_name }}
126+
</span>
127+
</file-row-item>
128+
129+
<file-row-item
130+
:headers="headers"
131+
item-value="filament_type"
132+
>
133+
<span v-if="item.filament_type !== undefined">
134+
{{ item.filament_type }}
135+
</span>
136+
</file-row-item>
137+
138+
<file-row-item
139+
:headers="headers"
140+
item-value="filament_total"
141+
>
142+
<span v-if="item.filament_total !== undefined">
143+
{{ $filters.getReadableLengthString(item.filament_total) }}
144+
</span>
145+
</file-row-item>
146+
147+
<file-row-item
148+
:headers="headers"
149+
item-value="filament_weight_total"
150+
>
151+
<span v-if="item.filament_weight_total !== undefined">
152+
{{ $filters.getReadableWeightString(item.filament_weight_total) }}
153+
</span>
154+
</file-row-item>
155+
156+
<file-row-item
157+
:headers="headers"
158+
item-value="history.filament_used"
159+
>
160+
<span v-if="item.history && item.history.filament_used !== undefined">
161+
{{ $filters.getReadableLengthString(item.history.filament_used) }}
162+
</span>
163+
</file-row-item>
164+
165+
<file-row-item
166+
:headers="headers"
167+
item-value="nozzle_diameter"
168+
>
169+
<span v-if="item.nozzle_diameter !== undefined">
170+
{{ item.nozzle_diameter }} mm
171+
</span>
172+
</file-row-item>
173+
174+
<file-row-item
175+
:headers="headers"
176+
item-value="slicer"
177+
>
178+
<span v-if="item.slicer !== undefined">
179+
{{ item.slicer }}
180+
</span>
181+
</file-row-item>
182+
183+
<file-row-item
184+
:headers="headers"
185+
item-value="slicer_version"
186+
>
187+
<span v-if="item.slicer_version !== undefined">
188+
{{ item.slicer_version }}
189+
</span>
190+
</file-row-item>
191+
192+
<file-row-item
193+
:headers="headers"
194+
item-value="estimated_time"
195+
>
196+
<span v-if="item.estimated_time !== undefined">
197+
{{ $filters.formatCounterSeconds(item.estimated_time) }}
198+
</span>
199+
</file-row-item>
200+
201+
<file-row-item
202+
:headers="headers"
203+
item-value="history.print_duration"
204+
>
205+
<span v-if="item.history && item.history.print_duration !== undefined">
206+
{{ $filters.formatCounterSeconds(item.history.print_duration) }}
207+
</span>
208+
</file-row-item>
209+
210+
<file-row-item
211+
:headers="headers"
212+
item-value="history.total_duration"
213+
>
214+
<span v-if="item.history && item.history.total_duration !== undefined">
215+
{{ $filters.formatCounterSeconds(item.history.total_duration) }}
216+
</span>
217+
</file-row-item>
218+
219+
<file-row-item
220+
:headers="headers"
221+
item-value="first_layer_bed_temp"
222+
>
223+
<span v-if="item.first_layer_bed_temp !== undefined">
224+
{{ item.first_layer_bed_temp }}<small>°C</small>
225+
</span>
226+
</file-row-item>
227+
228+
<file-row-item
229+
:headers="headers"
230+
item-value="first_layer_extr_temp"
231+
>
232+
<span v-if="item.first_layer_extr_temp !== undefined">
233+
{{ item.first_layer_extr_temp }}<small>°C</small>
234+
</span>
235+
</file-row-item>
236+
237+
<file-row-item
238+
:headers="headers"
239+
item-value="chamber_temp"
240+
>
241+
<span v-if="item.chamber_temp !== undefined">
242+
{{ item.chamber_temp }}<small>°C</small>
243+
</span>
244+
</file-row-item>
245+
246+
<file-row-item
247+
:headers="headers"
248+
item-value="print_start_time"
249+
>
250+
<span v-if="item.print_start_time !== undefined && item.print_start_time !== null">
251+
{{ $filters.formatDateTime(item.print_start_time * 1000) }}
252+
</span>
253+
</file-row-item>
254+
</template>
262255

263256
<file-row-item
264257
:headers="headers"
@@ -290,11 +283,13 @@ import type { AppTableHeader } from '@/types'
290283
import FilesMixin from '@/mixins/files'
291284
292285
import FileRowItem from './FileRowItem.vue'
286+
import JobHistoryItemStatus from '@/components/widgets/history/JobHistoryItemStatus.vue'
293287
import { SupportedImageFormats, SupportedVideoFormats } from '@/globals'
294288
295289
@Component({
296290
components: {
297-
FileRowItem
291+
FileRowItem,
292+
JobHistoryItemStatus
298293
}
299294
})
300295
export default class FileSystemBrowser extends Mixins(FilesMixin) {

src/store/config/state.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ export const defaultState = (): ConfigState => {
8888
},
8989
tableHeaders: {
9090
gcodes_dashboard: [
91+
{ value: 'history.status', visible: false },
9192
{ value: 'first_layer_extr_temp', visible: false },
9293
{ value: 'first_layer_bed_temp', visible: false },
9394
{ value: 'chamber_temp', visible: false },

src/store/files/types.metadata.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
export interface KlipperFileMeta {
2+
modified: number | string;
3+
size: number;
4+
uuid?: string;
25
chamber_temp?: number;
36
estimated_time?: number;
47
filament_name?: string;

0 commit comments

Comments
 (0)