diff --git a/web/app/src/views/FirstTimeWizardView.vue b/web/app/src/views/FirstTimeWizardView.vue index 6c9ec54a..4accda91 100644 --- a/web/app/src/views/FirstTimeWizardView.vue +++ b/web/app/src/views/FirstTimeWizardView.vue @@ -7,7 +7,7 @@ v-for="step in 4" :key="step" @click="jumpToStep(step)" :class="{ - current: step == currentSetupStep, + current: step == currentSetupStep, done: step < currentSetupStep, disabled: step > overallSetupStep, }" @@ -37,11 +37,11 @@
More information is available on the online documentation at flamenco.blender.org.
-Please specify a storage path (or drive), where you want to store your Flamenco data. @@ -57,24 +57,23 @@
Using a service like Syncthing, ownCloud, or Dropbox for this is not recommended, as Flamenco can't coordinate data synchronization.
-{{ sharedStorageCheckResult.cause }}
This is the configuration that will be used by Flamenco:
@@ -194,9 +218,9 @@ function debounce(func, wait, immediate) { export default { name: 'FirstTimeWizardView', components: { - NotificationBar, UpdateListener, StepItem, + NotificationBar, }, data: () => ({ sharedStoragePath: "", @@ -213,9 +237,9 @@ export default { isBlenderExeChecking: false, blenderExeCheckResult: null, // api.BlenderPathCheckResult sourceLabels: { - file_association: "This Blender runs when you double-click a .blend file.", - path_envvar: "This Blender was found on the $PATH environment.", - input_path: "You pointed Flamenco to this executable.", + file_association: "Blender that runs when you double-click a .blend file.", + path_envvar: "Blender that was found on the $PATH environment.", + input_path: "Another Blender executable.", }, isConfirming: false, isConfirmed: false, @@ -238,6 +262,22 @@ export default { isConfigComplete() { return this.isSharedStorageValid && this.isSelectedBlenderValid; }, + autoFoundBlenderPathEnvvar() { + return this.autoFoundBlenders.find(b => b.source === 'path_envvar'); + }, + autoFoundBlenderFileAssociation() { + return this.autoFoundBlenders.find(b => b.source === 'file_association'); + }, + blenderFromInputPath() { + return this.allBlenders.find(b => b.source === 'input_path'); + }, + setupConfirmIsClickable() { + if (this.isConfirming || this.isConfirmed) { + return false; + } else { + return true; + } + } }, mounted() { this.findBlenderExePath(); @@ -251,20 +291,22 @@ export default { onSIODisconnected(reason) { }, - checkSharedStoragePath() { + nextStepAfterCheckSharedStoragePath() { const pathCheck = new PathCheckInput(this.cleanSharedStoragePath); console.log("requesting path check:", pathCheck); - this.metaAPI.checkSharedStoragePath({ pathCheckInput: pathCheck }) + return this.metaAPI.checkSharedStoragePath({ pathCheckInput: pathCheck }) .then((result) => { console.log("Storage path check result:", result); this.sharedStorageCheckResult = result; + if (this.isSharedStorageValid) { + this.nextStep(); + } }) .catch((error) => { console.log("Error checking storage path:", error); }) }, - findBlenderExePath() { this.isBlenderExeFinding = true; this.autoFoundBlenders = []; @@ -305,6 +347,8 @@ export default { this.blenderExeCheckResult = result; if (result.is_usable) { this.selectedBlender = result; + } else if (this.selectedBlender.source === 'input_path') { + this.selectedBlender = null; } this._refreshAllBlenders(); }) @@ -324,12 +368,6 @@ export default { } }, - nextStepAfterStoragePath() { - if (this.isSharedStorageValid) { - this.nextStep(); - } - }, - nextStep() { if (this.overallSetupStep <= this.currentSetupStep) { this.overallSetupStep = this.currentSetupStep + 1; @@ -377,6 +415,10 @@ export default {