mirror of
https://github.com/donaldzou/WGDashboard.git
synced 2024-11-06 16:00:28 +01:00
I think this is it :)
This commit is contained in:
parent
d81dce536c
commit
c2cbaf0937
@ -57,14 +57,14 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
## Table of Content
|
## 📋 Table of Content
|
||||||
|
|
||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
* [📣 What's New: v4.0](#-whats-new-v40)
|
* [📣 What's New: v4.0](#-whats-new-v40)
|
||||||
* [🎉 New Features](#-new-features)
|
* [🎉 New Features](#-new-features)
|
||||||
* [🧐 Other Changes](#-other-changes)
|
* [🧐 Other Changes](#-other-changes)
|
||||||
* [🥘 New Experimental Features](#-new-experimental-features)
|
* [🥘 New Experimental Features](#-new-experimental-features)
|
||||||
* [Table of Content](#table-of-content)
|
* [📋 Table of Content](#-table-of-content)
|
||||||
* [💡 Features](#-features)
|
* [💡 Features](#-features)
|
||||||
* [📝 Requirements](#-requirements)
|
* [📝 Requirements](#-requirements)
|
||||||
* [Supported Operating Systems](#supported-operating-systems)
|
* [Supported Operating Systems](#supported-operating-systems)
|
||||||
@ -91,7 +91,7 @@
|
|||||||
* [Solution 1 from @DaanSelen](#solution-1-from-daanselen)
|
* [Solution 1 from @DaanSelen](#solution-1-from-daanselen)
|
||||||
* [Solution 2 from @shuricksumy](#solution-2-from-shuricksumy)
|
* [Solution 2 from @shuricksumy](#solution-2-from-shuricksumy)
|
||||||
* [📖 WGDashboard REST API Documentation & How to use API Key](#-wgdashboard-rest-api-documentation--how-to-use-api-key)
|
* [📖 WGDashboard REST API Documentation & How to use API Key](#-wgdashboard-rest-api-documentation--how-to-use-api-key)
|
||||||
* [🥘 Experimental Functions](#-experimental-functions)
|
* [🥘 Experimental Features](#-experimental-features)
|
||||||
* [Cross-Server Access](#cross-server-access)
|
* [Cross-Server Access](#cross-server-access)
|
||||||
* [Desktop App](#desktop-app)
|
* [Desktop App](#desktop-app)
|
||||||
* [🔍 Screenshot](#-screenshot)
|
* [🔍 Screenshot](#-screenshot)
|
||||||
@ -531,7 +531,7 @@ Please visit [shuricksumy/docker-wgdashboard](https://github.com/shuricksumy/doc
|
|||||||
|
|
||||||
Please visit the [API Documentation](./docs/api-documents.md)
|
Please visit the [API Documentation](./docs/api-documents.md)
|
||||||
|
|
||||||
## 🥘 Experimental Functions
|
## 🥘 Experimental Features
|
||||||
|
|
||||||
### Cross-Server Access
|
### Cross-Server Access
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@ import secrets
|
|||||||
import subprocess
|
import subprocess
|
||||||
import time
|
import time
|
||||||
import re
|
import re
|
||||||
|
import urllib.error
|
||||||
import uuid
|
import uuid
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from typing import Any
|
from typing import Any
|
||||||
@ -2003,6 +2004,24 @@ def API_traceroute_execute():
|
|||||||
else:
|
else:
|
||||||
return ResponseObject(False, "Please provide ipAddress")
|
return ResponseObject(False, "Please provide ipAddress")
|
||||||
|
|
||||||
|
@app.route(f'{APP_PREFIX}/api/getDashboardUpdate')
|
||||||
|
def API_getDashboardUpdate():
|
||||||
|
import urllib.request as req;
|
||||||
|
|
||||||
|
try:
|
||||||
|
r = req.urlopen("https://api.github.com/repos/donaldzou/WGDashboard/releases/latest", timeout=5).read()
|
||||||
|
data = dict(json.loads(r))
|
||||||
|
tagName = data.get('tag_name')
|
||||||
|
htmlUrl = data.get('html_url')
|
||||||
|
if tagName is not None and htmlUrl is not None:
|
||||||
|
if tagName != DASHBOARD_VERSION:
|
||||||
|
return ResponseObject(message=f"{tagName} is now avaible for update!", data=htmlUrl)
|
||||||
|
else:
|
||||||
|
return ResponseObject(message="You're on the latest version")
|
||||||
|
return ResponseObject(False)
|
||||||
|
|
||||||
|
except urllib.error.HTTPError as e:
|
||||||
|
return ResponseObject(False, f"Request to GitHub API failed. Returned a {e.code} status.")
|
||||||
|
|
||||||
'''
|
'''
|
||||||
Sign Up
|
Sign Up
|
||||||
@ -2111,7 +2130,6 @@ _, app_port = DashboardConfig.GetConfig("Server", "app_port")
|
|||||||
_, WG_CONF_PATH = DashboardConfig.GetConfig("Server", "wg_conf_path")
|
_, WG_CONF_PATH = DashboardConfig.GetConfig("Server", "wg_conf_path")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WireguardConfigurations: dict[str, WireguardConfiguration] = {}
|
WireguardConfigurations: dict[str, WireguardConfiguration] = {}
|
||||||
WireguardConfigurations = _getConfigurationList()
|
WireguardConfigurations = _getConfigurationList()
|
||||||
|
|
||||||
|
2
src/static/app/dist/assets/index.css
vendored
2
src/static/app/dist/assets/index.css
vendored
File diff suppressed because one or more lines are too long
40
src/static/app/dist/assets/index.js
vendored
40
src/static/app/dist/assets/index.js
vendored
File diff suppressed because one or more lines are too long
@ -2,6 +2,7 @@
|
|||||||
import {wgdashboardStore} from "@/stores/wgdashboardStore.js";
|
import {wgdashboardStore} from "@/stores/wgdashboardStore.js";
|
||||||
import {WireguardConfigurationsStore} from "@/stores/WireguardConfigurationsStore.js";
|
import {WireguardConfigurationsStore} from "@/stores/WireguardConfigurationsStore.js";
|
||||||
import {DashboardConfigurationStore} from "@/stores/DashboardConfigurationStore.js";
|
import {DashboardConfigurationStore} from "@/stores/DashboardConfigurationStore.js";
|
||||||
|
import {fetchGet} from "@/utilities/fetch.js";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "navbar",
|
name: "navbar",
|
||||||
@ -9,6 +10,27 @@ export default {
|
|||||||
const wireguardConfigurationsStore = WireguardConfigurationsStore();
|
const wireguardConfigurationsStore = WireguardConfigurationsStore();
|
||||||
const dashboardConfigurationStore = DashboardConfigurationStore();
|
const dashboardConfigurationStore = DashboardConfigurationStore();
|
||||||
return {wireguardConfigurationsStore, dashboardConfigurationStore}
|
return {wireguardConfigurationsStore, dashboardConfigurationStore}
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return {
|
||||||
|
updateAvailable: false,
|
||||||
|
updateMessage: "Checking for update...",
|
||||||
|
updateUrl: ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
fetchGet("/api/getDashboardUpdate", {}, (res) => {
|
||||||
|
if (res.status){
|
||||||
|
if (res.data){
|
||||||
|
this.updateAvailable = true
|
||||||
|
this.updateUrl = res.data
|
||||||
|
}
|
||||||
|
this.updateMessage = res.message
|
||||||
|
}else{
|
||||||
|
this.updateMessage = "Failed to check available update"
|
||||||
|
console.log(`Failed to get update: ${res.message}`)
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -65,11 +87,20 @@ export default {
|
|||||||
@click="this.dashboardConfigurationStore.signOut()"
|
@click="this.dashboardConfigurationStore.signOut()"
|
||||||
role="button" style="font-weight: bold">
|
role="button" style="font-weight: bold">
|
||||||
<i class="bi bi-box-arrow-left me-2"></i>
|
<i class="bi bi-box-arrow-left me-2"></i>
|
||||||
Sign Out</a></li>
|
Sign Out</a>
|
||||||
</ul>
|
</li>
|
||||||
<ul class="nav flex-column">
|
<li class="nav-item" style="font-size: 0.8rem">
|
||||||
<li class="nav-item"><a href="https://github.com/donaldzou/WGDashboard/releases/tag/"><small class="nav-link text-muted"></small></a></li>
|
<a :href="this.updateUrl" v-if="this.updateAvailable" class="text-decoration-none" target="_blank">
|
||||||
|
<small class="nav-link text-muted rounded-3" >
|
||||||
|
{{ this.updateMessage }}
|
||||||
|
</small>
|
||||||
|
</a>
|
||||||
|
<small class="nav-link text-muted" v-else>
|
||||||
|
{{ this.updateMessage }}
|
||||||
|
</small>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user