Setup Screen: Initial styling and layout adjustments
This commit is contained in:
parent
3479db5593
commit
db39ca0d21
@ -578,58 +578,3 @@ span.state-transition-arrow.lazy {
|
|||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------ First Time Wizard ------------ */
|
|
||||||
|
|
||||||
.first-time-wizard {
|
|
||||||
--color-check-failed: var(--color-status-failed);
|
|
||||||
--color-check-ok: var(--color-status-completed);
|
|
||||||
|
|
||||||
/* TODO: this is not always the best layout, as the content will get shifted
|
|
||||||
* to the right on narrow media. It's probably better to just not use the
|
|
||||||
* 3-column layout for the first-time wizard, and use a width-limited centered
|
|
||||||
* div instead. */
|
|
||||||
grid-column: col-2;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.first-time-wizard h1 {
|
|
||||||
border-bottom: thin solid var(--color-accent);
|
|
||||||
}
|
|
||||||
.first-time-wizard section {
|
|
||||||
font-size: larger;
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
.first-time-wizard p.hint {
|
|
||||||
color: var(--color-text-hint);
|
|
||||||
font-size: smaller;
|
|
||||||
}
|
|
||||||
.first-time-wizard .check-ok {
|
|
||||||
color: var(--color-check-ok);
|
|
||||||
}
|
|
||||||
.first-time-wizard .check-failed {
|
|
||||||
color: var(--color-check-failed);
|
|
||||||
}
|
|
||||||
.first-time-wizard .check-ok::before {
|
|
||||||
content: "✔ ";
|
|
||||||
}
|
|
||||||
.first-time-wizard .check-failed::before {
|
|
||||||
content: "❌ ";
|
|
||||||
}
|
|
||||||
|
|
||||||
.first-time-wizard .blender-selector {
|
|
||||||
padding: 0.5em;
|
|
||||||
outline: thin solid var(--color-border);
|
|
||||||
border-radius: var(--border-radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
.first-time-wizard .blender-selector.selected-blender {
|
|
||||||
color: var(--color-accent-text);
|
|
||||||
background-color: var(--color-accent-background);
|
|
||||||
outline-width: var(--border-width);
|
|
||||||
}
|
|
||||||
.first-time-wizard .blender-selector button {
|
|
||||||
display: block;
|
|
||||||
margin-left: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* ------------ /First Time Wizard ------------ */
|
|
||||||
|
@ -1,14 +1,32 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="first-time-wizard">
|
<div class="setup-container">
|
||||||
<h1>Welcome to Flamenco!</h1>
|
<section class="setup-step step-intro">
|
||||||
|
<h1>Welcome</h1>
|
||||||
|
|
||||||
<section>
|
<ul class="progress">
|
||||||
<p>Before Flamenco can be used, a few things need to be set up. This
|
<li class="active"><span></span></li>
|
||||||
wizard will guide you through the configuration.</p>
|
<li><span></span></li>
|
||||||
|
<li><span></span></li>
|
||||||
|
<li><span></span></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<p>Let's set you up.</p>
|
||||||
|
|
||||||
|
<div class="btn-bar">
|
||||||
|
<button class="btn btn-primary align-center">Start Setup</button>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
|
||||||
|
<section class="setup-step is-active">
|
||||||
<h2>Shared Storage</h2>
|
<h2>Shared Storage</h2>
|
||||||
|
|
||||||
|
<ul class="progress">
|
||||||
|
<li><span></span></li>
|
||||||
|
<li class="active"><span></span></li>
|
||||||
|
<li><span></span></li>
|
||||||
|
<li><span></span></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<p>Flamenco needs some shared storage, to have a central place where the
|
<p>Flamenco needs some shared storage, to have a central place where the
|
||||||
Manager and Workers exchange files. This could be a NAS in your network,
|
Manager and Workers exchange files. This could be a NAS in your network,
|
||||||
or some other file sharing server.</p>
|
or some other file sharing server.</p>
|
||||||
@ -31,11 +49,23 @@
|
|||||||
:class="{ 'check-ok': sharedStorageCheckResult.is_usable, 'check-failed': !sharedStorageCheckResult.is_usable }">
|
:class="{ 'check-ok': sharedStorageCheckResult.is_usable, 'check-failed': !sharedStorageCheckResult.is_usable }">
|
||||||
{{ sharedStorageCheckResult.cause }}
|
{{ sharedStorageCheckResult.cause }}
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<div class="btn-bar btn-bar-wide">
|
||||||
|
<button class="btn">Back</button>
|
||||||
|
<button class="btn btn-primary" disabled>Next</button>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section class="setup-step">
|
||||||
<h2>Which Blender?</h2>
|
<h2>Which Blender?</h2>
|
||||||
|
|
||||||
|
<ul class="progress">
|
||||||
|
<li><span></span></li>
|
||||||
|
<li><span></span></li>
|
||||||
|
<li class="active"><span></span></li>
|
||||||
|
<li><span></span></li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<p>Choose which Blender to use below:</p>
|
<p>Choose which Blender to use below:</p>
|
||||||
|
|
||||||
<p v-if="isBlenderExeFinding">... finding Blenders ...</p>
|
<p v-if="isBlenderExeFinding">... finding Blenders ...</p>
|
||||||
@ -65,6 +95,11 @@
|
|||||||
Found something, it is selected above.</p>
|
Found something, it is selected above.</p>
|
||||||
<p v-if="blenderExeCheckResult != null && !blenderExeCheckResult.is_usable" class="check-failed">
|
<p v-if="blenderExeCheckResult != null && !blenderExeCheckResult.is_usable" class="check-failed">
|
||||||
{{ blenderExeCheckResult.cause }}</p>
|
{{ blenderExeCheckResult.cause }}</p>
|
||||||
|
|
||||||
|
<div class="btn-bar btn-bar-wide">
|
||||||
|
<button class="btn">Back</button>
|
||||||
|
<button class="btn btn-primary">Next</button>
|
||||||
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section v-if="isConfigComplete">
|
<section v-if="isConfigComplete">
|
||||||
@ -148,6 +183,8 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.findBlenderExePath();
|
this.findBlenderExePath();
|
||||||
|
|
||||||
|
document.body.classList.add('is-first-time-wizard');
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// SocketIO connection event handlers:
|
// SocketIO connection event handlers:
|
||||||
@ -253,3 +290,146 @@ export default {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
<style>
|
||||||
|
:root {
|
||||||
|
--wiz-progress-indicator-size: 6px;
|
||||||
|
--wiz-progress-indicator-border-width: 2px;
|
||||||
|
--wiz-progress-indicator-color: var(--color-text-hint);
|
||||||
|
--wiz-progress-indicator-color-active: var(--color-accent);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.is-first-time-wizard #app {
|
||||||
|
grid-template-areas:
|
||||||
|
"header"
|
||||||
|
"col-full-width"
|
||||||
|
"footer";
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 1280px) {
|
||||||
|
body.is-first-time-wizard #app {
|
||||||
|
grid-template-areas:
|
||||||
|
"header"
|
||||||
|
"col-full-width"
|
||||||
|
"footer";
|
||||||
|
grid-template-columns: 1fr;
|
||||||
|
grid-template-rows: var(--header-height) 1fr var(--footer-height);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container {
|
||||||
|
--color-check-failed: var(--color-status-failed);
|
||||||
|
--color-check-ok: var(--color-status-completed);
|
||||||
|
|
||||||
|
max-width: 640px;
|
||||||
|
margin: auto;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-step {
|
||||||
|
background-color: var(--color-background-column);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
display: none;
|
||||||
|
padding: var(--spacer) var(--spacer-lg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-step.is-active{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.step-intro {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
list-style: none;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Progress indicator dot. */
|
||||||
|
.progress li span {
|
||||||
|
background-color: var(--wiz-progress-indicator-color);
|
||||||
|
border-radius: 50%;
|
||||||
|
border: var(--wiz-progress-indicator-border-width) solid var(--color-background-column);
|
||||||
|
box-shadow: 0 0 0 var(--wiz-progress-indicator-border-width) var(--wiz-progress-indicator-color);
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
height: var(--wiz-progress-indicator-size);
|
||||||
|
position: relative;
|
||||||
|
width: var(--wiz-progress-indicator-size);
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress li.active span {
|
||||||
|
background-color: var(--color-accent);
|
||||||
|
box-shadow: 0 0 0 var(--wiz-progress-indicator-border-width) var(--wiz-progress-indicator-color-active);
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress li.active+li span,
|
||||||
|
.progress li.active+li+li span,
|
||||||
|
.progress li.active+li+li+li span,
|
||||||
|
.progress li.active+li+li+li+span {
|
||||||
|
background-color: var(--color-background-column);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Progress indicator line between dots. */
|
||||||
|
.progress:before {
|
||||||
|
background-color: var(--wiz-progress-indicator-color);
|
||||||
|
content: '';
|
||||||
|
display: block;
|
||||||
|
height: var(--wiz-progress-indicator-border-width);
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container h1 {
|
||||||
|
font-size: xx-large;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container section {
|
||||||
|
font-size: larger;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container p.hint {
|
||||||
|
color: var(--color-text-hint);
|
||||||
|
font-size: smaller;
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container .check-ok {
|
||||||
|
color: var(--color-check-ok);
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container .check-failed {
|
||||||
|
color: var(--color-check-failed);
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container .check-ok::before {
|
||||||
|
content: "✔ ";
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container .check-failed::before {
|
||||||
|
content: "❌ ";
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container .blender-selector {
|
||||||
|
padding: 0.5em;
|
||||||
|
outline: thin solid var(--color-border);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container .blender-selector.selected-blender {
|
||||||
|
color: var(--color-accent-text);
|
||||||
|
background-color: var(--color-accent-background);
|
||||||
|
outline-width: var(--border-width);
|
||||||
|
}
|
||||||
|
|
||||||
|
.setup-container .blender-selector button {
|
||||||
|
display: block;
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user