@fdm-monster/client-next 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/dist/assets/MaterialIcons-Regular-BjXOXp5c.eot +0 -0
  3. package/dist/assets/MaterialIcons-Regular-DEUTIz1o.ttf +0 -0
  4. package/dist/assets/MaterialIcons-Regular-DOtZ65Va.woff2 +0 -0
  5. package/dist/assets/MaterialIcons-Regular-FsbMSDLx.woff +0 -0
  6. package/dist/assets/index-CHzfWKPO.css +5 -0
  7. package/dist/assets/index-CnWtkGvw.js +90 -0
  8. package/dist/assets/index-CnWtkGvw.js.map +1 -0
  9. package/dist/favicon.ico +0 -0
  10. package/dist/img/DavidZwart.jpg +0 -0
  11. package/dist/img/OIG.JYDC2RaWdz7g9.jpg +0 -0
  12. package/dist/img/OIG.jpg +0 -0
  13. package/dist/img/icons/android-chrome-256x256.png +0 -0
  14. package/dist/img/icons/android-chrome-384x384.png +0 -0
  15. package/dist/img/icons/android-chrome-512x512.png +0 -0
  16. package/dist/img/icons/favicon.svg +1 -0
  17. package/dist/img/logo.png +0 -0
  18. package/dist/img/logo.svg +1 -0
  19. package/dist/img/manifest.webmanifest +33 -0
  20. package/dist/img/octoprint-tentacle.svg +144 -0
  21. package/dist/img/thumbail_unknown.jpg +0 -0
  22. package/dist/img/vbanner.jpg +0 -0
  23. package/dist/index.html +24 -0
  24. package/dist/robots.txt +2 -0
  25. package/package.json +1 -1
  26. package/.all-contributorsrc +0 -57
  27. package/.editorconfig +0 -5
  28. package/.eslintrc.js +0 -126
  29. package/.github/FUNDING.yml +0 -3
  30. package/.github/workflows/release-client.yml +0 -94
  31. package/.github/workflows/vue-publish.yml +0 -26
  32. package/.prettierignore +0 -15
  33. package/.whitesource +0 -12
  34. package/renovate.json +0 -30
  35. package/src/App.vue +0 -60
  36. package/src/AppLoader.vue +0 -383
  37. package/src/assets/adjectives.json +0 -1468
  38. package/src/assets/logo.svg +0 -6
  39. package/src/assets/nouns.json +0 -4309
  40. package/src/auto-imports.d.ts +0 -139
  41. package/src/backend/app.service.ts +0 -39
  42. package/src/backend/auth.service.ts +0 -56
  43. package/src/backend/base.service.ts +0 -57
  44. package/src/backend/batch.service.ts +0 -37
  45. package/src/backend/camera-stream.service.ts +0 -33
  46. package/src/backend/custom-gcode.service.ts +0 -11
  47. package/src/backend/dto/octoprint-settings.dto.ts +0 -168
  48. package/src/backend/first-time-setup.service.ts +0 -17
  49. package/src/backend/floor.service.ts +0 -84
  50. package/src/backend/index.ts +0 -4
  51. package/src/backend/print-completions.service.ts +0 -11
  52. package/src/backend/printer-file.service.ts +0 -91
  53. package/src/backend/printer-group.service.ts +0 -62
  54. package/src/backend/printer-job.service.ts +0 -20
  55. package/src/backend/printer-settings.service.ts +0 -28
  56. package/src/backend/printers.service.ts +0 -136
  57. package/src/backend/server-private.service.ts +0 -55
  58. package/src/backend/server.api.ts +0 -132
  59. package/src/backend/settings.service.ts +0 -85
  60. package/src/backend/user.service.ts +0 -51
  61. package/src/components/AboutHelp/AboutView.vue +0 -164
  62. package/src/components/CameraGrid/CameraGridView.vue +0 -111
  63. package/src/components/FirstTimeSetup/FirstTimeSetupView.vue +0 -354
  64. package/src/components/Generic/Actions/PrinterConnectionAction.vue +0 -56
  65. package/src/components/Generic/Actions/PrinterCreateAction.vue +0 -22
  66. package/src/components/Generic/Actions/PrinterDeleteAction.vue +0 -29
  67. package/src/components/Generic/Actions/PrinterQuickStopAction.vue +0 -35
  68. package/src/components/Generic/Actions/PrinterSettingsAction.vue +0 -35
  69. package/src/components/Generic/Actions/PrinterUrlAction.vue +0 -24
  70. package/src/components/Generic/Actions/RefreshFilesAction.vue +0 -50
  71. package/src/components/Generic/Actions/SyncPrinterNameAction.vue +0 -36
  72. package/src/components/Generic/Dialogs/AddOrUpdateCameraStreamDialog.vue +0 -131
  73. package/src/components/Generic/Dialogs/AddOrUpdateFloorDialog.vue +0 -141
  74. package/src/components/Generic/Dialogs/AddOrUpdatePrinterDialog.vue +0 -303
  75. package/src/components/Generic/Dialogs/BaseDialog.vue +0 -81
  76. package/src/components/Generic/Dialogs/BatchJsonCreateDialog.vue +0 -109
  77. package/src/components/Generic/Dialogs/BatchReprintDialog.vue +0 -190
  78. package/src/components/Generic/Dialogs/PrinterChecksPanel.vue +0 -37
  79. package/src/components/Generic/Dialogs/PrinterControlDialog.vue +0 -202
  80. package/src/components/Generic/Dialogs/PrinterMaintenanceDialog.vue +0 -130
  81. package/src/components/Generic/Dialogs/YamlImportExportDialog.vue +0 -186
  82. package/src/components/Generic/Dialogs/dialog.constants.ts +0 -19
  83. package/src/components/Generic/FileExplorerSideNav.vue +0 -734
  84. package/src/components/Generic/Loaders/GridLoader.vue +0 -68
  85. package/src/components/Generic/NavigationDrawer.vue +0 -69
  86. package/src/components/Generic/PrintJobsMenu.vue +0 -148
  87. package/src/components/Generic/Snackbars/AppErrorSnackbar.vue +0 -64
  88. package/src/components/Generic/Snackbars/AppInfoSnackbar.vue +0 -63
  89. package/src/components/Generic/Snackbars/AppProgressSnackbar.vue +0 -158
  90. package/src/components/Generic/Vuetify/TooltipButton.vue +0 -47
  91. package/src/components/HelpOverlay/HelpOverlay.vue +0 -57
  92. package/src/components/Login/LoginForm.vue +0 -206
  93. package/src/components/Login/LoginView.spec.ts +0 -64
  94. package/src/components/Login/LoginView.vue +0 -65
  95. package/src/components/Login/Logo.vue +0 -13
  96. package/src/components/Login/PermissionDenied.vue +0 -109
  97. package/src/components/Login/RegistrationForm.vue +0 -207
  98. package/src/components/Login/RegistrationView.vue +0 -17
  99. package/src/components/Login/__snapshots__/LoginView.spec.ts.snap +0 -1051
  100. package/src/components/NotFound/NotFoundView.vue +0 -39
  101. package/src/components/PrintStatistics/PrintStatistics.vue +0 -168
  102. package/src/components/PrintStatistics/PrintStatisticsView.vue +0 -15
  103. package/src/components/PrinterGrid/HomeToolbar.vue +0 -90
  104. package/src/components/PrinterGrid/PrinterGrid.vue +0 -164
  105. package/src/components/PrinterGrid/PrinterGridTile.vue +0 -438
  106. package/src/components/PrinterGrid/PrinterGridView.vue +0 -210
  107. package/src/components/PrinterList/FileControlList.vue +0 -40
  108. package/src/components/PrinterList/PrinterDetails.vue +0 -91
  109. package/src/components/PrinterList/PrintersView.vue +0 -492
  110. package/src/components/Settings/AccountSettings.vue +0 -163
  111. package/src/components/Settings/DiagnosticsSettings.vue +0 -137
  112. package/src/components/Settings/EmergencyCommands.vue +0 -265
  113. package/src/components/Settings/FloorSettings.vue +0 -276
  114. package/src/components/Settings/GridSettings.vue +0 -127
  115. package/src/components/Settings/OctoPrintSettings.vue +0 -188
  116. package/src/components/Settings/ServerProtectionSettings.vue +0 -370
  117. package/src/components/Settings/SettingsView.vue +0 -73
  118. package/src/components/Settings/SoftwareUpgradeSettings.vue +0 -297
  119. package/src/components/Settings/UserManagementSettings.vue +0 -257
  120. package/src/components/TopBar.vue +0 -147
  121. package/src/components.d.ts +0 -70
  122. package/src/directives/file-upload.directive.ts +0 -117
  123. package/src/directives/printer-drop-position.directive.ts +0 -92
  124. package/src/env.d.ts +0 -6
  125. package/src/main.ts +0 -76
  126. package/src/models/batch/reprint.dto.ts +0 -79
  127. package/src/models/batch.model.ts +0 -11
  128. package/src/models/camera-streams/camera-stream.ts +0 -19
  129. package/src/models/floors/floor.model.ts +0 -30
  130. package/src/models/octoprint/connection-options.model.ts +0 -8
  131. package/src/models/plugins/firmware-updates/prusa-firmware-release.model.ts +0 -57
  132. package/src/models/print-completions/print-completions.model.ts +0 -49
  133. package/src/models/printers/crud/create-printer.model.ts +0 -26
  134. package/src/models/printers/file-upload-commands.model.ts +0 -4
  135. package/src/models/printers/gcode/gcode-analysis.model.ts +0 -30
  136. package/src/models/printers/printer-current-job.model.ts +0 -90
  137. package/src/models/printers/printer-file.model.ts +0 -48
  138. package/src/models/printers/printer.model.ts +0 -18
  139. package/src/models/server/client-releases.model.ts +0 -27
  140. package/src/models/server/export-yaml.model.ts +0 -11
  141. package/src/models/server/features.model.ts +0 -37
  142. package/src/models/server/github-rate-limit.model.ts +0 -21
  143. package/src/models/server/version.model.ts +0 -14
  144. package/src/models/settings/printer-file-clean-settings.model.ts +0 -5
  145. package/src/models/settings/server-settings.dto.ts +0 -19
  146. package/src/models/settings/settings.model.ts +0 -57
  147. package/src/models/socketio-messages/socketio-message.model.ts +0 -53
  148. package/src/models/uploads/queued-upload.model.ts +0 -12
  149. package/src/models/user.model.ts +0 -15
  150. package/src/plugins/README.md +0 -3
  151. package/src/plugins/index.ts +0 -17
  152. package/src/plugins/vuetify.ts +0 -53
  153. package/src/router/index.ts +0 -192
  154. package/src/router/route-names.ts +0 -14
  155. package/src/router/utils.ts +0 -23
  156. package/src/shared/alert.events.ts +0 -14
  157. package/src/shared/app.constants.ts +0 -23
  158. package/src/shared/auth.constants.ts +0 -34
  159. package/src/shared/dialog.composable.ts +0 -41
  160. package/src/shared/drag.constants.ts +0 -19
  161. package/src/shared/experimental.constants.ts +0 -1
  162. package/src/shared/http-client.ts +0 -162
  163. package/src/shared/noun-adjectives.data.ts +0 -24
  164. package/src/shared/printer-grid.constants.ts +0 -5
  165. package/src/shared/printer-state.constants.ts +0 -194
  166. package/src/shared/snackbar.composable.ts +0 -66
  167. package/src/shared/socketio.service.ts +0 -104
  168. package/src/store/auth.store.ts +0 -255
  169. package/src/store/connection.store.ts +0 -66
  170. package/src/store/dialog.store.ts +0 -114
  171. package/src/store/features.store.ts +0 -57
  172. package/src/store/floor.store.ts +0 -173
  173. package/src/store/grid.store.ts +0 -10
  174. package/src/store/index.ts +0 -4
  175. package/src/store/printer-state.store.ts +0 -246
  176. package/src/store/printer.store.ts +0 -236
  177. package/src/store/profile.store.ts +0 -25
  178. package/src/store/settings.store.ts +0 -64
  179. package/src/store/test-printer.store.ts +0 -70
  180. package/src/store/uploads.store.ts +0 -75
  181. package/src/styles/README.md +0 -3
  182. package/src/styles/settings.scss +0 -10
  183. package/src/types/global.d.ts +0 -15
  184. package/src/utils/array.utils.ts +0 -15
  185. package/src/utils/date.utils.ts +0 -5
  186. package/src/utils/download-file.util.ts +0 -25
  187. package/src/utils/error.utils.ts +0 -3
  188. package/src/utils/file-size.util.ts +0 -11
  189. package/src/utils/id.type.ts +0 -1
  190. package/src/utils/sentry.util.ts +0 -8
  191. package/src/utils/test.util.ts +0 -30
  192. package/src/utils/time.utils.ts +0 -2
  193. package/src/utils/uploads-state.utils.ts +0 -58
  194. package/src/utils/validation.utils.ts +0 -14
  195. package/src/vite-env.d.ts +0 -7
  196. package/test/setup-axios-mock.ts +0 -15
  197. /package/{src/assets/logo.png → dist/assets/logo-CJVdjy51.png} +0 -0
  198. /package/{src/assets → dist/img/icons}/android-chrome-192x192.png +0 -0
@@ -1,276 +0,0 @@
1
- <template>
2
- <v-card>
3
- <v-toolbar color="primary">
4
- <v-avatar>
5
- <v-icon>settings</v-icon>
6
- </v-avatar>
7
- <v-toolbar-title> Floor Management </v-toolbar-title>
8
- </v-toolbar>
9
-
10
- <v-list
11
- subheader
12
- lines="three"
13
- >
14
- <v-list-subheader> Floors </v-list-subheader>
15
-
16
- <v-list-item>
17
- <v-list-item-title> Create new floor </v-list-item-title>
18
- <v-list-item-subtitle>
19
- Creates an empty department/floor to view printer groups
20
- <br />
21
- <v-btn
22
- color="primary"
23
- @click="createFloor()"
24
- >
25
- Create floor
26
- </v-btn>
27
- </v-list-item-subtitle>
28
- </v-list-item>
29
- </v-list>
30
-
31
- <v-divider />
32
-
33
- <v-row no-gutters>
34
- <v-col>
35
- <v-list density="compact">
36
- <v-list-item-group v-model="selectedItem">
37
- <v-list-item
38
- v-for="floor of floors"
39
- :key="floor.id"
40
- >
41
- <v-list-item-title>
42
- {{ floor.name }}
43
- </v-list-item-title>
44
- <v-list-item-subtitle>
45
- {{ floor.printers.length || 0 }} assigned
46
- </v-list-item-subtitle>
47
-
48
- <v-list-item-action-text>
49
- Floor number: {{ floor.floor }}
50
- </v-list-item-action-text>
51
- </v-list-item>
52
- </v-list-item-group>
53
- </v-list>
54
- </v-col>
55
-
56
- <v-col>
57
- <v-toolbar>
58
- <v-hover v-slot="{ isHovering, props }">
59
- <v-toolbar-title v-bind="props">
60
- <v-edit-dialog
61
- v-if="selectedFloor"
62
- @open="setEditedPrinterFloorName"
63
- @save="updatePrinterFloorName"
64
- >
65
- <v-btn color="secondary">
66
- <v-icon
67
- v-if="isHovering"
68
- size="small"
69
- >
70
- edit
71
- </v-icon>
72
- {{ selectedFloor.name }}
73
- </v-btn>
74
-
75
- <template #input>
76
- <v-text-field
77
- v-model="editedFloorName"
78
- v-model:return-value="editedFloorName"
79
- counter
80
- label="Edit"
81
- single-line
82
- />
83
- </template>
84
- </v-edit-dialog>
85
-
86
- <span v-else> Select a floor on the left </span>
87
- </v-toolbar-title>
88
- </v-hover>
89
-
90
- <v-hover v-slot="{ isHovering, props }">
91
- <v-toolbar-title v-bind="props">
92
- <v-edit-dialog
93
- v-if="selectedFloor"
94
- @open="setEditedPrinterFloorNumber"
95
- @save="updatePrinterFloorNumber"
96
- >
97
- <v-btn color="secondary">
98
- <v-icon
99
- v-if="isHovering"
100
- size="small"
101
- >
102
- edit
103
- </v-icon>
104
- {{ selectedFloor.floor }}
105
- </v-btn>
106
-
107
- <template #input>
108
- <v-text-field
109
- v-model="editedFloorNumber"
110
- v-model:return-value="editedFloorNumber"
111
- label="Edit"
112
- single-line
113
- type="number"
114
- />
115
- </template>
116
- </v-edit-dialog>
117
- </v-toolbar-title>
118
- </v-hover>
119
-
120
- <v-spacer />
121
-
122
- <v-btn
123
- v-if="selectedFloor"
124
- color="primary"
125
- @click="clickDeleteFloor()"
126
- >
127
- <v-icon>delete</v-icon>
128
- Delete floor
129
- </v-btn>
130
- </v-toolbar>
131
-
132
- <v-list v-if="selectedFloor">
133
- <v-list-item
134
- v-for="x in showAddedPrinters"
135
- :key="x"
136
- >
137
- <v-list-item-content v-if="printerInFloor(selectedFloor, x)">
138
- <v-list-item-title>
139
- {{ printerInFloor(selectedFloor, x)?.name }}
140
- </v-list-item-title>
141
- </v-list-item-content>
142
-
143
- <v-list-item-action v-if="printerInFloor(selectedFloor, x)">
144
- <v-btn @click="deletePrinterFromFloor(selectedFloor, x)">
145
- <v-icon>close</v-icon>
146
- Clear
147
- </v-btn>
148
- </v-list-item-action>
149
- </v-list-item>
150
- </v-list>
151
- </v-col>
152
- </v-row>
153
- </v-card>
154
- </template>
155
-
156
- <script lang="ts">
157
- import { defineComponent } from 'vue'
158
- import { FloorDto } from '@/models/floors/floor.model'
159
- import { usePrinterStore } from '@/store/printer.store'
160
- import { useDialogsStore } from '@/store/dialog.store'
161
- import { DialogName } from '@/components/Generic/Dialogs/dialog.constants'
162
- import { PrinterDto } from '@/models/printers/printer.model'
163
- import { useFloorStore } from '@/store/floor.store'
164
- import { useSnackbar } from '@/shared/snackbar.composable'
165
-
166
- interface Data {
167
- editedFloorName: string
168
- editedFloorNumber: number
169
- selectedItem: number
170
- }
171
-
172
- export default defineComponent({
173
- name: 'FloorSettings',
174
-
175
- props: {},
176
- setup: () => {
177
- return {
178
- printersStore: usePrinterStore(),
179
- floorStore: useFloorStore(),
180
- dialogsStore: useDialogsStore(),
181
- snackbar: useSnackbar()
182
- }
183
- },
184
- data: (): Data => ({
185
- selectedItem: 0,
186
- editedFloorName: '',
187
- editedFloorNumber: 0
188
- }),
189
-
190
- computed: {
191
- floors() {
192
- return this.floorStore.floors
193
- },
194
-
195
- selectedFloor() {
196
- return this.floorStore.floors[this.selectedItem]
197
- },
198
-
199
- showAddedPrinters() {
200
- return this.selectedFloor.printers?.length + 1
201
- },
202
-
203
- unassignedPrinters() {
204
- return this.floorStore.floorlessPrinters
205
- }
206
- },
207
-
208
- watch: {},
209
-
210
- created() {},
211
-
212
- mounted() {},
213
-
214
- methods: {
215
- printerInFloor(floor: FloorDto, index: number): PrinterDto | undefined {
216
- if (!floor?.printers) return
217
-
218
- const floorPrinter = floor.printers[index - 1]
219
- if (!floorPrinter) return
220
- return this.printersStore.printer(floorPrinter.printerId)
221
- },
222
-
223
- async createFloor() {
224
- this.dialogsStore.openDialogWithContext(DialogName.AddOrUpdateFloorDialog)
225
- },
226
-
227
- setEditedPrinterFloorName() {
228
- this.editedFloorName = this.selectedFloor.name
229
- },
230
-
231
- setEditedPrinterFloorNumber() {
232
- this.editedFloorNumber = this.selectedFloor.floor
233
- },
234
-
235
- async updatePrinterFloorName() {
236
- if (!this.selectedFloor?.id) return
237
- const { id: floorId } = this.selectedFloor
238
- await this.floorStore.updateFloorName({
239
- floorId,
240
- name: this.editedFloorName
241
- })
242
- this.snackbar.info('Floor name updated')
243
- },
244
-
245
- async updatePrinterFloorNumber() {
246
- if (!this.selectedFloor?.id) return
247
- const { id: floorId } = this.selectedFloor
248
- await this.floorStore.updateFloorNumber({
249
- floorId,
250
- floorNumber: this.editedFloorNumber
251
- })
252
- this.snackbar.info('Floor level updated')
253
- // Adapt to potential sort change
254
- this.selectedItem = -1
255
- },
256
-
257
- async clickDeleteFloor() {
258
- if (!this.selectedFloor?.id) return
259
-
260
- await this.floorStore.deleteFloor(this.selectedFloor.id)
261
- this.snackbar.info('Floor deleted')
262
- },
263
-
264
- async deletePrinterFromFloor(floor: FloorDto, index: number) {
265
- const printer = this.printerInFloor(floor, index)
266
- if (!floor?.id || !printer?.id) return
267
-
268
- await this.floorStore.deletePrinterFromFloor({
269
- floorId: floor.id,
270
- printerId: printer.id
271
- })
272
- this.snackbar.info('Printer removed from floor')
273
- }
274
- }
275
- })
276
- </script>
@@ -1,127 +0,0 @@
1
- <template>
2
- <v-card>
3
- <v-toolbar color="primary">
4
- <v-avatar>
5
- <v-icon>settings</v-icon>
6
- </v-avatar>
7
- <v-toolbar-title> Grid Settings </v-toolbar-title>
8
- </v-toolbar>
9
-
10
- <v-list
11
- subheader
12
- lines="three"
13
- >
14
- <v-list-subheader> Grid Rows and Columns </v-list-subheader>
15
- <v-list-item>
16
- <v-row v-if="settingsStore.settings?.frontend">
17
- <v-col cols="2">
18
- <v-select
19
- v-model="settingsStore.settings.frontend.gridRows"
20
- :items="rowOptions()"
21
- label="Set the grid rows"
22
- />
23
- </v-col>
24
- <v-col cols="2">
25
- <v-select
26
- v-model="settingsStore.settings.frontend.gridCols"
27
- :items="colOptions()"
28
- label="Set the grid columns"
29
- />
30
- </v-col>
31
- <v-col cols="1" />
32
- <v-col>
33
- <v-btn
34
- color="primary"
35
- @click="updateGridSettings()"
36
- >
37
- Save tile settings
38
- </v-btn>
39
- </v-col>
40
- </v-row>
41
- </v-list-item>
42
- </v-list>
43
-
44
- <v-divider />
45
- <v-list
46
- subheader
47
- lines="three"
48
- >
49
- <v-list-subheader> Large or Compact Tiles </v-list-subheader>
50
- <v-list-item>
51
- <v-row v-if="settingsStore.settings?.frontend">
52
- <v-col cols="5">
53
- <v-checkbox
54
- v-model="settingsStore.settings.frontend.largeTiles"
55
- label="Large tiles"
56
- />
57
- </v-col>
58
- <v-col cols="1">
59
- <v-btn
60
- color="primary"
61
- @click="updateGridSettings()"
62
- >
63
- Save tile settings
64
- </v-btn>
65
- </v-col>
66
- </v-row>
67
- </v-list-item>
68
- </v-list>
69
- </v-card>
70
- </template>
71
- <script lang="ts">
72
- import { defineComponent } from 'vue'
73
- import { useSettingsStore } from '../../store/settings.store'
74
- import { colOptions, rowOptions } from '../../shared/printer-grid.constants'
75
- import { useSnackbar } from '@/shared/snackbar.composable'
76
-
77
- interface Data {
78
- property: number
79
- }
80
-
81
- export default defineComponent({
82
- name: 'GridSettings',
83
- components: {},
84
-
85
- props: {},
86
- setup: () => {
87
- return {
88
- settingsStore: useSettingsStore(),
89
- snackbar: useSnackbar()
90
- }
91
- },
92
- data: (): Data => ({
93
- property: 0
94
- }),
95
-
96
- computed: {
97
- largeTilesSettings() {
98
- return this.settingsStore.largeTiles
99
- }
100
- },
101
-
102
- watch: {},
103
-
104
- async created() {},
105
-
106
- async mounted() {},
107
-
108
- methods: {
109
- rowOptions() {
110
- return rowOptions
111
- },
112
-
113
- colOptions() {
114
- return colOptions
115
- },
116
-
117
- async updateGridSettings() {
118
- await this.settingsStore.updateFrontendSettings({
119
- gridCols: this.settingsStore.gridCols,
120
- gridRows: this.settingsStore.gridRows,
121
- largeTiles: this.largeTilesSettings
122
- })
123
- this.snackbar.info('Grid settings updated')
124
- }
125
- }
126
- })
127
- </script>
@@ -1,188 +0,0 @@
1
- <template>
2
- <v-card>
3
- <v-toolbar color="primary">
4
- <v-avatar>
5
- <v-icon>settings</v-icon>
6
- </v-avatar>
7
- <v-toolbar-title> OctoPrint Settings </v-toolbar-title>
8
- </v-toolbar>
9
- <v-list lines="three">
10
- <v-list-item>
11
- <v-list-item-title> Pre-upload file cleanup </v-list-item-title>
12
- <v-list-item-subtitle>
13
- Automatically cleanup old files to ensure the SD card has enough
14
- space.
15
- <br />
16
- <v-checkbox
17
- v-model="fileHandlingSettings.autoRemoveOldFilesBeforeUpload"
18
- label="Remove old file before upload"
19
- />
20
- <v-text-field
21
- v-model="fileHandlingSettings.autoRemoveOldFilesCriteriumDays"
22
- :disabled="!fileHandlingSettings.autoRemoveOldFilesBeforeUpload"
23
- label="Amount of days to keep files"
24
- min="0"
25
- variant="outlined"
26
- type="number"
27
- />
28
- <v-checkbox
29
- v-model="fileHandlingSettings.autoRemoveOldFilesAtBoot"
30
- label="Remove old files when (re)booting the server"
31
- />
32
- <v-btn
33
- color="primary"
34
- @click="setFileCleanSettings()"
35
- >
36
- save file clean settings
37
- </v-btn>
38
- </v-list-item-subtitle>
39
- </v-list-item>
40
-
41
- <v-list-item>
42
- <v-list-item-title> Connection Timeout </v-list-item-title>
43
- <v-list-item-subtitle v-if="settingsStore.settings?.timeout">
44
- The connection timeout is the amount of time in milliseconds that the
45
- server will wait for OctoPrint to respond before giving up
46
- <v-text-field
47
- v-model="settingsStore.settings.timeout.apiTimeout"
48
- label="Connection Timeout"
49
- min="0"
50
- variant="outlined"
51
- type="number"
52
- />
53
- <v-btn
54
- color="primary"
55
- @click="updateTimeoutSettings()"
56
- >
57
- save connection timeout
58
- </v-btn>
59
- </v-list-item-subtitle>
60
- </v-list-item>
61
-
62
- <v-list-item>
63
- <v-list-item-title> Clean file references </v-list-item-title>
64
- <v-list-item-subtitle>
65
- Clear out the file references for all printers - this does not remove
66
- them from OctoPrint!
67
- <br />
68
- <v-btn
69
- color="primary"
70
- @click="purgeFiles()"
71
- >
72
- Purge file references
73
- </v-btn>
74
- </v-list-item-subtitle>
75
- </v-list-item>
76
-
77
- <v-list-item>
78
- <v-list-item-title>
79
- Disable inefficient GCode analysis
80
- </v-list-item-title>
81
- <v-list-item-subtitle>
82
- Disable GCode analysis on all printers at once, preventing CPU
83
- intensive and inaccurate time/size estimates.
84
- <br />
85
- <v-btn
86
- color="primary"
87
- @click="bulkDisableGCodeAnalysis()"
88
- >
89
- Bulk disable GCode Analysis
90
- </v-btn>
91
- </v-list-item-subtitle>
92
- </v-list-item>
93
- </v-list>
94
- </v-card>
95
- </template>
96
-
97
- <script lang="ts">
98
- import { defineComponent } from 'vue'
99
- import { PrinterFileService, SettingsService } from '@/backend'
100
- import { PrinterSettingsService } from '@/backend/printer-settings.service'
101
- import { FileCleanSettings } from '@/models/settings/printer-file-clean-settings.model'
102
- import { usePrinterStore } from '@/store/printer.store'
103
- import { usePrinterStateStore } from '@/store/printer-state.store'
104
- import { useSnackbar } from '@/shared/snackbar.composable'
105
- import { useSettingsStore } from '@/store/settings.store'
106
-
107
- interface Data {
108
- fileHandlingSettings: FileCleanSettings
109
- }
110
-
111
- export default defineComponent({
112
- name: 'FdmSettings',
113
-
114
- props: {},
115
- setup: () => {
116
- return {
117
- settingsStore: useSettingsStore(),
118
- printersStore: usePrinterStore(),
119
- snackbar: useSnackbar(),
120
- printerStateStore: usePrinterStateStore()
121
- }
122
- },
123
- data: (): Data => ({
124
- fileHandlingSettings: {
125
- autoRemoveOldFilesBeforeUpload: false,
126
- autoRemoveOldFilesAtBoot: false,
127
- autoRemoveOldFilesCriteriumDays: 7
128
- }
129
- }),
130
-
131
- computed: {},
132
-
133
- watch: {},
134
-
135
- async created() {
136
- const settings = await SettingsService.getSettings()
137
- this.fileHandlingSettings = settings.printerFileClean
138
- },
139
-
140
- mounted() {},
141
- methods: {
142
- async updateTimeoutSettings() {
143
- if (!this.settingsStore.settings?.timeout?.apiTimeout) {
144
- this.snackbar.error('Timeout not set')
145
- return
146
- }
147
- if (this.settingsStore.settings.timeout.apiTimeout < 1000) {
148
- this.snackbar.error(
149
- 'Timeout is too low - please set it to at least 1000 milliseconds'
150
- )
151
- } else {
152
- await this.settingsStore.updateTimeoutSettings(
153
- this.settingsStore.settings?.timeout
154
- )
155
- this.snackbar.info('Timeout settings updated')
156
- }
157
- },
158
-
159
- async setFileCleanSettings() {
160
- const serverSettings = await SettingsService.setFileCleanSettings(
161
- this.fileHandlingSettings
162
- )
163
- this.fileHandlingSettings = serverSettings.printerFileClean
164
- },
165
-
166
- async purgeFiles() {
167
- await PrinterFileService.purgeFiles()
168
-
169
- this.snackbar.openInfoMessage({
170
- title: 'Successfully purged all references to printer files!'
171
- })
172
- },
173
-
174
- async bulkDisableGCodeAnalysis() {
175
- const printers = this.printerStateStore.onlinePrinters
176
- this.snackbar.openInfoMessage({
177
- title: `Trying to disable gcode analysis for ${printers.length} online printers.`
178
- })
179
- for (const printer of Object.values(printers)) {
180
- await PrinterSettingsService.setGCodeAnalysis(printer.id, false)
181
- }
182
- this.snackbar.openInfoMessage({
183
- title: `Finished disabling gcode analysis for ${printers.length} online printers.`
184
- })
185
- }
186
- }
187
- })
188
- </script>