Skip to content

Commit a4b1189

Browse files
committed
Add basic outline for stage manager tab
1 parent 7a9e5b5 commit a4b1189

File tree

2 files changed

+125
-1
lines changed

2 files changed

+125
-1
lines changed

client/src/views/show/config/ConfigStage.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
<b-tab title="Props">
1919
<props-list />
2020
</b-tab>
21+
<b-tab title="Stage Manager">
22+
<stage-manager />
23+
</b-tab>
2124
</b-tabs>
2225
</b-col>
2326
</b-row>
@@ -28,9 +31,12 @@
2831
import CrewList from '@/vue_components/show/config/stage/CrewList.vue';
2932
import SceneryList from '@/vue_components/show/config/stage/SceneryList.vue';
3033
import PropsList from '@/vue_components/show/config/stage/PropsList.vue';
34+
import StageManager from '@/vue_components/show/config/stage/StageManager.vue';
3135
3236
export default {
3337
name: 'ConfigCrew',
34-
components: { PropsList, SceneryList, CrewList },
38+
components: {
39+
StageManager, PropsList, SceneryList, CrewList,
40+
},
3541
};
3642
</script>
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
<template>
2+
<b-container
3+
v-show="loaded"
4+
class="mx-0 px-0 stage-manager-container"
5+
fluid
6+
>
7+
<div
8+
class="sticky-header"
9+
:style="{ top: navbarHeight + 'px' }"
10+
>
11+
<b-row class="script-row">
12+
<b-col cols="2">
13+
<b-button
14+
v-b-modal.go-to-scene
15+
:disabled="orderedScenes.length === 0"
16+
variant="success"
17+
>
18+
Go to Scene
19+
</b-button>
20+
</b-col>
21+
<b-col
22+
cols="2"
23+
style="text-align: right"
24+
>
25+
<b-button
26+
variant="success"
27+
:disabled="currentSceneIndex === 0"
28+
@click="decrScene"
29+
>
30+
Prev Page
31+
</b-button>
32+
</b-col>
33+
<b-col cols="4">
34+
<p>Current Scene: {{ currentScene }}</p>
35+
</b-col>
36+
<b-col
37+
cols="2"
38+
style="text-align: left"
39+
>
40+
<b-button
41+
variant="success"
42+
:disabled="orderedScenes.length === 0 || currentSceneIndex === orderedScenes.length -1"
43+
@click="incrScene"
44+
>
45+
Next Scene
46+
</b-button>
47+
</b-col>
48+
<b-col cols="2">
49+
<b-dropdown
50+
:disabled="orderedScenes.length === 0"
51+
right
52+
text="Add"
53+
variant="success"
54+
>
55+
<b-dropdown-item-button v-b-modal.add-scenery>
56+
Scenery
57+
</b-dropdown-item-button>
58+
<b-dropdown-item-button v-b-modal.add-prop>
59+
Prop
60+
</b-dropdown-item-button>
61+
</b-dropdown>
62+
</b-col>
63+
</b-row>
64+
</div>
65+
</b-container>
66+
</template>
67+
68+
<script>
69+
export default {
70+
name: 'StageManager',
71+
data() {
72+
return {
73+
loaded: false,
74+
navbarHeight: 0,
75+
currentSceneIndex: 0,
76+
};
77+
},
78+
computed: {
79+
orderedScenes() {
80+
return [];
81+
},
82+
},
83+
mounted() {
84+
this.loaded = true;
85+
this.calculateNavbarHeight();
86+
},
87+
created() {
88+
window.addEventListener('resize', this.calculateNavbarHeight);
89+
},
90+
destroyed() {
91+
window.removeEventListener('resize', this.calculateNavbarHeight);
92+
},
93+
methods: {
94+
calculateNavbarHeight() {
95+
const navbar = document.querySelector('.navbar');
96+
if (navbar) {
97+
this.navbarHeight = navbar.offsetHeight;
98+
} else {
99+
this.navbarHeight = 56;
100+
}
101+
},
102+
},
103+
};
104+
</script>
105+
106+
<style scoped>
107+
.stage-manager-container {
108+
position: relative;
109+
}
110+
111+
.sticky-header {
112+
position: sticky;
113+
z-index: 100;
114+
padding: 10px 0;
115+
border-bottom: 1px solid #dee2e6;
116+
background: var(--body-background);
117+
}
118+
</style>

0 commit comments

Comments
 (0)