Skip to content

Commit 2cb102a

Browse files
authored
Merge pull request #38 from Jont828/settings-version
Fetch version using mixin on page load to avoid lag
2 parents ed875a0 + c9a8cab commit 2cb102a

File tree

4 files changed

+70
-49
lines changed

4 files changed

+70
-49
lines changed

web/src/components/SettingsCard.vue

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<v-list-item-title>Version</v-list-item-title>
3232
</v-list-item-content>
3333
<v-list-item-action>
34-
{{ gitVersion }}
34+
{{ version }}
3535
</v-list-item-action>
3636
</v-list-item>
3737
<v-list-item
@@ -143,23 +143,14 @@ import { useSettingsStore } from "../stores/settings.js";
143143
export default {
144144
name: "SettingsCard",
145145
components: {},
146-
async beforeMount() {
147-
await this.fetchVersion();
146+
props: {
147+
version: String,
148148
},
149149
methods: {
150150
toggleDarkTheme(val) {
151151
this.$vuetify.theme.dark = val;
152152
},
153-
async fetchVersion() {
154-
const response = await Vue.axios.get("/version");
155-
if (response.data == null) {
156-
console.error("failed getting git version info");
157-
return;
158-
}
159-
160-
console.log("Git version is", response.data);
161-
this.gitVersion = response.data.gitVersion;
162-
}
153+
// TODO: Do this once on page load so this doesn't take a minute and lag.
163154
},
164155
setup() {
165156
const store = useSettingsStore();
@@ -170,7 +161,6 @@ export default {
170161
return {
171162
fileTypes: ["YAML", "JSON"],
172163
pollingInterval: ["1s", "5s", "10s", "30s", "1m", "5m", "Off"],
173-
gitVersion: "",
174164
};
175165
},
176166
};

web/src/mixins/setVersion.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import Vue from "vue";
2+
3+
export const setVersion = {
4+
data() {
5+
return {
6+
gitVersion: ""
7+
}
8+
},
9+
async beforeMount() {
10+
await this.fetchVersion();
11+
},
12+
methods: {
13+
async fetchVersion() {
14+
const response = await Vue.axios.get("/version");
15+
if (response.data == null) {
16+
console.error("Failed getting git version info");
17+
return;
18+
}
19+
20+
console.log("Git version:", response.data);
21+
this.gitVersion = response.data.gitVersion;
22+
}
23+
}
24+
}

web/src/views/DescribeCluster.vue

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
<SettingsCard
7070
@close="() => { showSettingsOverlay = !showSettingsOverlay }"
7171
class="settingsCard"
72+
:version="gitVersion"
7273
/>
7374
</v-overlay>
7475
</div>
@@ -84,6 +85,7 @@ import AlertError from "../components/AlertError.vue";
8485
import SettingsCard from "../components/SettingsCard.vue";
8586
8687
import { useSettingsStore } from "../stores/settings.js";
88+
import { setVersion } from "../mixins/setVersion.js";
8789
8890
import _ from "lodash";
8991
import colors from "vuetify/lib/util/colors";
@@ -97,12 +99,39 @@ export default {
9799
CustomResourceDefinition,
98100
AlertError,
99101
},
102+
mixins: [setVersion],
103+
data() {
104+
return {
105+
showSettingsOverlay: false,
106+
showAboutOverlay: false,
107+
alert: false,
108+
errorMessage: "",
109+
treeIsReady: false,
110+
resourceIsReady: false,
111+
resource: {},
112+
selected: {},
113+
treeData: {},
114+
cachedTreeString: "",
115+
treeConfig: { nodeWidth: 180, nodeHeight: 50, levelHeight: 120 },
116+
scale: 1,
117+
legend: {
118+
cluster: "Cluster API",
119+
bootstrap: "Bootstrap Provider",
120+
controlplane: "Control Plane Provider",
121+
infrastructure: "Infrastructure Provider",
122+
addons: "Add-ons",
123+
virtual: "None",
124+
},
125+
gitVersion: ""
126+
};
127+
},
100128
setup() {
101129
const store = useSettingsStore();
102130
return { store };
103131
},
104132
async beforeMount() {
105133
await this.fetchCluster();
134+
await this.fetchVersion();
106135
},
107136
computed: {
108137
theme() {
@@ -306,30 +335,6 @@ export default {
306335
);
307336
},
308337
},
309-
data() {
310-
return {
311-
showSettingsOverlay: false,
312-
showAboutOverlay: false,
313-
alert: false,
314-
errorMessage: "",
315-
treeIsReady: false,
316-
resourceIsReady: false,
317-
resource: {},
318-
selected: {},
319-
treeData: {},
320-
cachedTreeString: "",
321-
treeConfig: { nodeWidth: 180, nodeHeight: 50, levelHeight: 120 },
322-
scale: 1,
323-
legend: {
324-
cluster: "Cluster API",
325-
bootstrap: "Bootstrap Provider",
326-
controlplane: "Control Plane Provider",
327-
infrastructure: "Infrastructure Provider",
328-
addons: "Add-Ons",
329-
virtual: "None",
330-
},
331-
};
332-
},
333338
};
334339
</script>
335340

web/src/views/ManagementCluster.vue

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ import Vue from "vue";
3737
import ManagementClusterTree from "../components/ManagementClusterTree.vue";
3838
import SettingsCard from "../components/SettingsCard.vue";
3939
import AppBar from "../components/AppBar.vue";
40+
4041
import { useSettingsStore } from "../stores/settings.js";
42+
import { setVersion } from "../mixins/setVersion.js";
4143
4244
export default {
4345
name: "ManagementCluster",
@@ -46,6 +48,17 @@ export default {
4648
SettingsCard,
4749
AppBar,
4850
},
51+
mixins: [setVersion],
52+
data() {
53+
return {
54+
showSettingsOverlay: false,
55+
treeConfig: { nodeWidth: 300, nodeHeight: 140, levelHeight: 275 },
56+
treeData: {},
57+
cachedTreeString: "",
58+
treeIsReady: false,
59+
scale: 1,
60+
};
61+
},
4962
setup() {
5063
const store = useSettingsStore();
5164
return { store };
@@ -66,17 +79,6 @@ export default {
6679
this.selected = {};
6780
clearInterval(this.polling);
6881
},
69-
data() {
70-
return {
71-
showSettingsOverlay: false,
72-
treeConfig: { nodeWidth: 300, nodeHeight: 140, levelHeight: 275 },
73-
treeData: {},
74-
cachedTreeString: "",
75-
treeIsReady: false,
76-
scale: 1,
77-
gitVersion: "",
78-
};
79-
},
8082
watch: {
8183
"store.selectedInterval": function (val) {
8284
console.log("Overview store.selectedInterval: " + val);

0 commit comments

Comments
 (0)