diff --git a/src/components/TheSettingsMenu.vue b/src/components/TheSettingsMenu.vue
index ae4031e84f..112d49fe94 100644
--- a/src/components/TheSettingsMenu.vue
+++ b/src/components/TheSettingsMenu.vue
@@ -100,8 +100,10 @@ import {
mdiWebcam,
mdiDipSwitch,
mdiMenu,
+ mdiAdjust,
} from '@mdi/js'
import SettingsMiscellaneousTab from '@/components/settings/SettingsMiscellaneousTab.vue'
+import SettingsSpoolmanTab from '@/components/settings/SettingsSpoolmanTab.vue'
@Component({
components: {
Panel,
@@ -113,6 +115,7 @@ import SettingsMiscellaneousTab from '@/components/settings/SettingsMiscellaneou
SettingsMacrosTab,
SettingsWebcamsTab,
SettingsGeneralTab,
+ SettingsSpoolmanTab,
SettingsDashboardTab,
SettingsGCodeViewerTab,
SettingsEditorTab,
@@ -212,6 +215,14 @@ export default class TheSettingsMenu extends Mixins(BaseMixin) {
})
}
+ if (this.moonrakerComponents.includes('spoolman')) {
+ tabs.push({
+ icon: mdiAdjust,
+ name: 'spoolman',
+ title: this.$t('Settings.SpoolmanTab.Spoolman'),
+ })
+ }
+
return tabs.sort((a, b) => {
if (a.name === 'general') return -1
if (b.name === 'general') return 1
diff --git a/src/components/dialogs/SpoolmanChangeSpoolDialog.vue b/src/components/dialogs/SpoolmanChangeSpoolDialog.vue
index 8c6254dd94..bfd6832447 100644
--- a/src/components/dialogs/SpoolmanChangeSpoolDialog.vue
+++ b/src/components/dialogs/SpoolmanChangeSpoolDialog.vue
@@ -119,7 +119,9 @@ export default class SpoolmanChangeSpoolDialog extends Mixins(BaseMixin) {
}
get spoolManagerUrl() {
- return this.$store.state.server.config.config?.spoolman?.server ?? null
+ return this.$store.state.gui.general.spoolmanUrl === ''
+ ? this.$store.state.server.config.config?.spoolman?.server ?? null
+ : this.$store.state.gui.general.spoolmanUrl ?? null
}
openSpoolManager() {
diff --git a/src/components/panels/SpoolmanPanel.vue b/src/components/panels/SpoolmanPanel.vue
index 054a8786d7..5954810a80 100644
--- a/src/components/panels/SpoolmanPanel.vue
+++ b/src/components/panels/SpoolmanPanel.vue
@@ -90,7 +90,9 @@ export default class SpoolmanPanel extends Mixins(BaseMixin) {
}
get spoolManagerUrl() {
- return this.$store.state.server.config.config?.spoolman?.server ?? null
+ return this.$store.state.gui.general.spoolmanUrl === ''
+ ? this.$store.state.server.config.config?.spoolman?.server ?? null
+ : this.$store.state.gui.general.spoolmanUrl ?? null
}
openSpoolManager() {
diff --git a/src/components/settings/SettingsSpoolmanTab.vue b/src/components/settings/SettingsSpoolmanTab.vue
new file mode 100644
index 0000000000..5bd0036bb7
--- /dev/null
+++ b/src/components/settings/SettingsSpoolmanTab.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/locales/en.json b/src/locales/en.json
index d37a316405..837b9eb695 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -1018,6 +1018,10 @@
"UpdatePrinter": "Update Printer",
"UseConfigJson": "InstanceDB = JSON detected. Please use the config.json to modify the printers list."
},
+ "SpoolmanTab": {
+ "WebURL": "URL of the Spoolman Frontend",
+ "Spoolman": "Spoolman"
+ },
"Store": "store",
"TimelapseTab": {
"Autorender": "Autorender",