aboutsummaryrefslogtreecommitdiff
path: root/src-vue/src/views/DeveloperView.vue
diff options
context:
space:
mode:
authorGeckoEidechse <gecko.eidechse+git@pm.me>2023-04-26 21:58:55 +0200
committerGeckoEidechse <gecko.eidechse+git@pm.me>2023-04-26 21:58:55 +0200
commit10616b295eb23c8250a0d874fe05211f73a8ba81 (patch)
treeaa9496bd16d973f69f6c4d9df7695cae469fad83 /src-vue/src/views/DeveloperView.vue
parent85bb5253657c16d9674a9be2f6c8090b413ca7fb (diff)
parente38ab60e1e4f565f0dafdb7b539e386a390594d7 (diff)
downloadFlightCore-10616b295eb23c8250a0d874fe05211f73a8ba81.tar.gz
FlightCore-10616b295eb23c8250a0d874fe05211f73a8ba81.zip
Merge branch 'main' into fix/handle-failed-download
Diffstat (limited to 'src-vue/src/views/DeveloperView.vue')
-rw-r--r--src-vue/src/views/DeveloperView.vue149
1 files changed, 99 insertions, 50 deletions
diff --git a/src-vue/src/views/DeveloperView.vue b/src-vue/src/views/DeveloperView.vue
index 52117b8d..7e11bd11 100644
--- a/src-vue/src/views/DeveloperView.vue
+++ b/src-vue/src/views/DeveloperView.vue
@@ -27,12 +27,8 @@
Launch Northstar (bypass all checks)
</el-button>
- <h3>Mod install:</h3>
-
- <el-input v-model="mod_to_install_field_string" placeholder="Please input Thunderstore dependency string (example: AuthorName-ModName-1.2.3)" clearable />
-
- <el-button type="primary" @click="installMod">
- Install mod
+ <el-button type="primary" @click="launchGameViaSteam">
+ Launch Northstar via Steam
</el-button>
<h3>Repair:</h3>
@@ -44,6 +40,48 @@
<h3>Testing</h3>
<pull-requests-selector />
+
+ <h3>Mod install:</h3>
+
+ <el-input v-model="mod_to_install_field_string" placeholder="Please input Thunderstore dependency string (example: AuthorName-ModName-1.2.3)" clearable />
+
+ <el-button type="primary" @click="installMod">
+ Install mod
+ </el-button>
+
+ <h3>Release management</h3>
+
+ <el-button type="primary" @click="getTags">
+ Get tags
+ </el-button>
+
+ <el-select v-model="firstTag" class="m-2" placeholder="First tag">
+ <el-option
+ v-for="item in ns_release_tags"
+ :key="item.value"
+ :label="item.label"
+ :value="item"
+ />
+ </el-select>
+ <el-select v-model="secondTag" class="m-2" placeholder="Second tag">
+ <el-option
+ v-for="item in ns_release_tags"
+ :key="item.value"
+ :label="item.label"
+ :value="item"
+ />
+ </el-select>
+
+ <el-button type="primary" @click="compareTags">
+ Compare Tags
+ </el-button>
+
+ <el-input
+ v-model="release_notes_text"
+ type="textarea"
+ :rows="5"
+ placeholder="Output"
+ />
</el-scrollbar>
</div>
</template>
@@ -51,9 +89,10 @@
<script lang="ts">
import { defineComponent } from "vue";
import { invoke } from "@tauri-apps/api";
-import { ElNotification } from "element-plus";
import { GameInstall } from "../utils/GameInstall";
+import { TagWrapper } from "../../../src-tauri/bindings/TagWrapper";
import PullRequestsSelector from "../components/PullRequestsSelector.vue";
+import { showErrorNotification, showNotification } from "../utils/ui";
export default defineComponent({
name: "DeveloperView",
@@ -63,44 +102,54 @@ export default defineComponent({
data() {
return {
mod_to_install_field_string : "",
+ release_notes_text : "",
+ first_tag: { label: '', value: {name: ''} },
+ second_tag: { label: '', value: {name: ''} },
+ ns_release_tags: [] as TagWrapper[],
}
},
+ computed: {
+ firstTag: {
+ get(): TagWrapper {
+ return this.first_tag;
+ },
+ set(value: TagWrapper) {
+ this.first_tag = value;
+ }
+ },
+ secondTag: {
+ get(): TagWrapper {
+ return this.second_tag;
+ },
+ set(value: TagWrapper) {
+ this.second_tag = value;
+ }
+ },
+ },
methods: {
disableDevMode() {
this.$store.commit('toggleDeveloperMode');
},
async crashApplication() {
await invoke("force_panic");
- ElNotification({
- title: 'Error',
- message: "Never should have been able to get here!",
- type: 'error',
- position: 'bottom-right'
- });
+ showErrorNotification("Never should have been able to get here!");
},
async checkLinuxCompatibility() {
await invoke("linux_checks")
.then(() => {
- ElNotification({
- title: 'Linux compatible',
- message: 'All checks passed',
- type: 'success',
- position: 'bottom-right'
- });
+ showNotification('Linux compatible', 'All checks passed');
})
.catch((error) => {
- ElNotification({
- title: 'Not linux compatible',
- message: error,
- type: 'error',
- position: 'bottom-right'
- });
+ showNotification('Not Linux compatible', error, 'error');
console.error(error);
});
},
async launchGameWithoutChecks() {
this.$store.commit('launchGame', true);
},
+ async launchGameViaSteam() {
+ this.$store.commit('launchGameSteam', true);
+ },
async getInstalledMods() {
let game_install = {
game_path: this.$store.state.game_path,
@@ -112,20 +161,10 @@ export default defineComponent({
console.log(message);
// Just a visual indicator that it worked
- ElNotification({
- title: 'Success',
- message: "Success",
- type: 'success',
- position: 'bottom-right'
- });
+ showNotification('Success');
})
.catch((error) => {
- ElNotification({
- title: 'Error',
- message: error,
- type: 'error',
- position: 'bottom-right'
- });
+ showErrorNotification(error);
});
},
async installMod() {
@@ -134,22 +173,32 @@ export default defineComponent({
install_type: this.$store.state.install_type
} as GameInstall;
let mod_to_install = this.mod_to_install_field_string;
- await invoke("install_mod_caller", { gameInstall: game_install, thunderstoreModString: mod_to_install }).then((message) => {
+ await invoke<string>("install_mod_caller", { gameInstall: game_install, thunderstoreModString: mod_to_install }).then((message) => {
// Show user notification if mod install completed.
- ElNotification({
- title: `Installed ${mod_to_install}`,
- message: message as string,
- type: 'success',
- position: 'bottom-right'
- });
+ showNotification(`Installed ${mod_to_install}`, message);
})
.catch((error) => {
- ElNotification({
- title: 'Error',
- message: error,
- type: 'error',
- position: 'bottom-right'
- });
+ showErrorNotification(error);
+ });
+ },
+ async getTags() {
+ await invoke<TagWrapper[]>("get_list_of_tags")
+ .then((message) => {
+ this.ns_release_tags = message;
+ showNotification("Done", "Fetched tags");
+ })
+ .catch((error) => {
+ showErrorNotification(error);
+ });
+ },
+ async compareTags() {
+ await invoke<string>("compare_tags", {firstTag: this.firstTag.value, secondTag: this.secondTag.value})
+ .then((message) => {
+ this.release_notes_text = message;
+ showNotification("Done", "Generated release notes");
+ })
+ .catch((error) => {
+ showErrorNotification(error);
});
},
}