@fdm-monster/client-next 0.0.1 → 0.0.3

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 (199) hide show
  1. package/.yarn/install-state.gz +0 -0
  2. package/RELEASE_NOTES.MD +28 -1
  3. package/dist/assets/MaterialIcons-Regular-BjXOXp5c.eot +0 -0
  4. package/dist/assets/MaterialIcons-Regular-DEUTIz1o.ttf +0 -0
  5. package/dist/assets/MaterialIcons-Regular-DOtZ65Va.woff2 +0 -0
  6. package/dist/assets/MaterialIcons-Regular-FsbMSDLx.woff +0 -0
  7. package/dist/assets/index-CHzfWKPO.css +5 -0
  8. package/dist/assets/index-WVqTlgq7.js +90 -0
  9. package/dist/assets/index-WVqTlgq7.js.map +1 -0
  10. package/dist/favicon.ico +0 -0
  11. package/dist/img/DavidZwart.jpg +0 -0
  12. package/dist/img/OIG.JYDC2RaWdz7g9.jpg +0 -0
  13. package/dist/img/OIG.jpg +0 -0
  14. package/dist/img/icons/android-chrome-256x256.png +0 -0
  15. package/dist/img/icons/android-chrome-384x384.png +0 -0
  16. package/dist/img/icons/android-chrome-512x512.png +0 -0
  17. package/dist/img/icons/favicon.svg +1 -0
  18. package/dist/img/logo.png +0 -0
  19. package/dist/img/logo.svg +1 -0
  20. package/dist/img/manifest.webmanifest +33 -0
  21. package/dist/img/octoprint-tentacle.svg +144 -0
  22. package/dist/img/thumbail_unknown.jpg +0 -0
  23. package/dist/img/vbanner.jpg +0 -0
  24. package/dist/index.html +24 -0
  25. package/dist/robots.txt +2 -0
  26. package/package.json +1 -1
  27. package/.all-contributorsrc +0 -57
  28. package/.editorconfig +0 -5
  29. package/.eslintrc.js +0 -126
  30. package/.github/FUNDING.yml +0 -3
  31. package/.github/workflows/release-client.yml +0 -94
  32. package/.github/workflows/vue-publish.yml +0 -26
  33. package/.prettierignore +0 -15
  34. package/.whitesource +0 -12
  35. package/renovate.json +0 -30
  36. package/src/App.vue +0 -60
  37. package/src/AppLoader.vue +0 -383
  38. package/src/assets/adjectives.json +0 -1468
  39. package/src/assets/logo.svg +0 -6
  40. package/src/assets/nouns.json +0 -4309
  41. package/src/auto-imports.d.ts +0 -139
  42. package/src/backend/app.service.ts +0 -39
  43. package/src/backend/auth.service.ts +0 -56
  44. package/src/backend/base.service.ts +0 -57
  45. package/src/backend/batch.service.ts +0 -37
  46. package/src/backend/camera-stream.service.ts +0 -33
  47. package/src/backend/custom-gcode.service.ts +0 -11
  48. package/src/backend/dto/octoprint-settings.dto.ts +0 -168
  49. package/src/backend/first-time-setup.service.ts +0 -17
  50. package/src/backend/floor.service.ts +0 -84
  51. package/src/backend/index.ts +0 -4
  52. package/src/backend/print-completions.service.ts +0 -11
  53. package/src/backend/printer-file.service.ts +0 -91
  54. package/src/backend/printer-group.service.ts +0 -62
  55. package/src/backend/printer-job.service.ts +0 -20
  56. package/src/backend/printer-settings.service.ts +0 -28
  57. package/src/backend/printers.service.ts +0 -136
  58. package/src/backend/server-private.service.ts +0 -55
  59. package/src/backend/server.api.ts +0 -132
  60. package/src/backend/settings.service.ts +0 -85
  61. package/src/backend/user.service.ts +0 -51
  62. package/src/components/AboutHelp/AboutView.vue +0 -164
  63. package/src/components/CameraGrid/CameraGridView.vue +0 -111
  64. package/src/components/FirstTimeSetup/FirstTimeSetupView.vue +0 -354
  65. package/src/components/Generic/Actions/PrinterConnectionAction.vue +0 -56
  66. package/src/components/Generic/Actions/PrinterCreateAction.vue +0 -22
  67. package/src/components/Generic/Actions/PrinterDeleteAction.vue +0 -29
  68. package/src/components/Generic/Actions/PrinterQuickStopAction.vue +0 -35
  69. package/src/components/Generic/Actions/PrinterSettingsAction.vue +0 -35
  70. package/src/components/Generic/Actions/PrinterUrlAction.vue +0 -24
  71. package/src/components/Generic/Actions/RefreshFilesAction.vue +0 -50
  72. package/src/components/Generic/Actions/SyncPrinterNameAction.vue +0 -36
  73. package/src/components/Generic/Dialogs/AddOrUpdateCameraStreamDialog.vue +0 -131
  74. package/src/components/Generic/Dialogs/AddOrUpdateFloorDialog.vue +0 -141
  75. package/src/components/Generic/Dialogs/AddOrUpdatePrinterDialog.vue +0 -303
  76. package/src/components/Generic/Dialogs/BaseDialog.vue +0 -81
  77. package/src/components/Generic/Dialogs/BatchJsonCreateDialog.vue +0 -109
  78. package/src/components/Generic/Dialogs/BatchReprintDialog.vue +0 -190
  79. package/src/components/Generic/Dialogs/PrinterChecksPanel.vue +0 -37
  80. package/src/components/Generic/Dialogs/PrinterControlDialog.vue +0 -202
  81. package/src/components/Generic/Dialogs/PrinterMaintenanceDialog.vue +0 -130
  82. package/src/components/Generic/Dialogs/YamlImportExportDialog.vue +0 -186
  83. package/src/components/Generic/Dialogs/dialog.constants.ts +0 -19
  84. package/src/components/Generic/FileExplorerSideNav.vue +0 -734
  85. package/src/components/Generic/Loaders/GridLoader.vue +0 -68
  86. package/src/components/Generic/NavigationDrawer.vue +0 -69
  87. package/src/components/Generic/PrintJobsMenu.vue +0 -148
  88. package/src/components/Generic/Snackbars/AppErrorSnackbar.vue +0 -64
  89. package/src/components/Generic/Snackbars/AppInfoSnackbar.vue +0 -63
  90. package/src/components/Generic/Snackbars/AppProgressSnackbar.vue +0 -158
  91. package/src/components/Generic/Vuetify/TooltipButton.vue +0 -47
  92. package/src/components/HelpOverlay/HelpOverlay.vue +0 -57
  93. package/src/components/Login/LoginForm.vue +0 -206
  94. package/src/components/Login/LoginView.spec.ts +0 -64
  95. package/src/components/Login/LoginView.vue +0 -65
  96. package/src/components/Login/Logo.vue +0 -13
  97. package/src/components/Login/PermissionDenied.vue +0 -109
  98. package/src/components/Login/RegistrationForm.vue +0 -207
  99. package/src/components/Login/RegistrationView.vue +0 -17
  100. package/src/components/Login/__snapshots__/LoginView.spec.ts.snap +0 -1051
  101. package/src/components/NotFound/NotFoundView.vue +0 -39
  102. package/src/components/PrintStatistics/PrintStatistics.vue +0 -168
  103. package/src/components/PrintStatistics/PrintStatisticsView.vue +0 -15
  104. package/src/components/PrinterGrid/HomeToolbar.vue +0 -90
  105. package/src/components/PrinterGrid/PrinterGrid.vue +0 -164
  106. package/src/components/PrinterGrid/PrinterGridTile.vue +0 -438
  107. package/src/components/PrinterGrid/PrinterGridView.vue +0 -210
  108. package/src/components/PrinterList/FileControlList.vue +0 -40
  109. package/src/components/PrinterList/PrinterDetails.vue +0 -91
  110. package/src/components/PrinterList/PrintersView.vue +0 -492
  111. package/src/components/Settings/AccountSettings.vue +0 -163
  112. package/src/components/Settings/DiagnosticsSettings.vue +0 -137
  113. package/src/components/Settings/EmergencyCommands.vue +0 -265
  114. package/src/components/Settings/FloorSettings.vue +0 -276
  115. package/src/components/Settings/GridSettings.vue +0 -127
  116. package/src/components/Settings/OctoPrintSettings.vue +0 -188
  117. package/src/components/Settings/ServerProtectionSettings.vue +0 -370
  118. package/src/components/Settings/SettingsView.vue +0 -73
  119. package/src/components/Settings/SoftwareUpgradeSettings.vue +0 -297
  120. package/src/components/Settings/UserManagementSettings.vue +0 -257
  121. package/src/components/TopBar.vue +0 -147
  122. package/src/components.d.ts +0 -70
  123. package/src/directives/file-upload.directive.ts +0 -117
  124. package/src/directives/printer-drop-position.directive.ts +0 -92
  125. package/src/env.d.ts +0 -6
  126. package/src/main.ts +0 -76
  127. package/src/models/batch/reprint.dto.ts +0 -79
  128. package/src/models/batch.model.ts +0 -11
  129. package/src/models/camera-streams/camera-stream.ts +0 -19
  130. package/src/models/floors/floor.model.ts +0 -30
  131. package/src/models/octoprint/connection-options.model.ts +0 -8
  132. package/src/models/plugins/firmware-updates/prusa-firmware-release.model.ts +0 -57
  133. package/src/models/print-completions/print-completions.model.ts +0 -49
  134. package/src/models/printers/crud/create-printer.model.ts +0 -26
  135. package/src/models/printers/file-upload-commands.model.ts +0 -4
  136. package/src/models/printers/gcode/gcode-analysis.model.ts +0 -30
  137. package/src/models/printers/printer-current-job.model.ts +0 -90
  138. package/src/models/printers/printer-file.model.ts +0 -48
  139. package/src/models/printers/printer.model.ts +0 -18
  140. package/src/models/server/client-releases.model.ts +0 -27
  141. package/src/models/server/export-yaml.model.ts +0 -11
  142. package/src/models/server/features.model.ts +0 -37
  143. package/src/models/server/github-rate-limit.model.ts +0 -21
  144. package/src/models/server/version.model.ts +0 -14
  145. package/src/models/settings/printer-file-clean-settings.model.ts +0 -5
  146. package/src/models/settings/server-settings.dto.ts +0 -19
  147. package/src/models/settings/settings.model.ts +0 -57
  148. package/src/models/socketio-messages/socketio-message.model.ts +0 -53
  149. package/src/models/uploads/queued-upload.model.ts +0 -12
  150. package/src/models/user.model.ts +0 -15
  151. package/src/plugins/README.md +0 -3
  152. package/src/plugins/index.ts +0 -17
  153. package/src/plugins/vuetify.ts +0 -53
  154. package/src/router/index.ts +0 -192
  155. package/src/router/route-names.ts +0 -14
  156. package/src/router/utils.ts +0 -23
  157. package/src/shared/alert.events.ts +0 -14
  158. package/src/shared/app.constants.ts +0 -23
  159. package/src/shared/auth.constants.ts +0 -34
  160. package/src/shared/dialog.composable.ts +0 -41
  161. package/src/shared/drag.constants.ts +0 -19
  162. package/src/shared/experimental.constants.ts +0 -1
  163. package/src/shared/http-client.ts +0 -162
  164. package/src/shared/noun-adjectives.data.ts +0 -24
  165. package/src/shared/printer-grid.constants.ts +0 -5
  166. package/src/shared/printer-state.constants.ts +0 -194
  167. package/src/shared/snackbar.composable.ts +0 -66
  168. package/src/shared/socketio.service.ts +0 -104
  169. package/src/store/auth.store.ts +0 -255
  170. package/src/store/connection.store.ts +0 -66
  171. package/src/store/dialog.store.ts +0 -114
  172. package/src/store/features.store.ts +0 -57
  173. package/src/store/floor.store.ts +0 -173
  174. package/src/store/grid.store.ts +0 -10
  175. package/src/store/index.ts +0 -4
  176. package/src/store/printer-state.store.ts +0 -246
  177. package/src/store/printer.store.ts +0 -236
  178. package/src/store/profile.store.ts +0 -25
  179. package/src/store/settings.store.ts +0 -64
  180. package/src/store/test-printer.store.ts +0 -70
  181. package/src/store/uploads.store.ts +0 -75
  182. package/src/styles/README.md +0 -3
  183. package/src/styles/settings.scss +0 -10
  184. package/src/types/global.d.ts +0 -15
  185. package/src/utils/array.utils.ts +0 -15
  186. package/src/utils/date.utils.ts +0 -5
  187. package/src/utils/download-file.util.ts +0 -25
  188. package/src/utils/error.utils.ts +0 -3
  189. package/src/utils/file-size.util.ts +0 -11
  190. package/src/utils/id.type.ts +0 -1
  191. package/src/utils/sentry.util.ts +0 -8
  192. package/src/utils/test.util.ts +0 -30
  193. package/src/utils/time.utils.ts +0 -2
  194. package/src/utils/uploads-state.utils.ts +0 -58
  195. package/src/utils/validation.utils.ts +0 -14
  196. package/src/vite-env.d.ts +0 -7
  197. package/test/setup-axios-mock.ts +0 -15
  198. /package/{src/assets/logo.png → dist/assets/logo-CJVdjy51.png} +0 -0
  199. /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>