This commit is contained in:
19
app/ayanova/src/api/apimeta.js
Normal file
19
app/ayanova/src/api/apimeta.js
Normal file
@@ -0,0 +1,19 @@
|
||||
/* xeslint-disable */
|
||||
import apiUtil from "./apiutil";
|
||||
|
||||
export default {
|
||||
fetchAPIInfo() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
//step 2: get it
|
||||
fetch(apiUtil.APIUrl("ServerInfo"), apiUtil.fetch())
|
||||
.then(apiUtil.status)
|
||||
.then(apiUtil.json)
|
||||
.then(response => {
|
||||
resolve(response);
|
||||
})
|
||||
.catch(function(error) {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -51,6 +51,14 @@ export default {
|
||||
body: JSON.stringify(data)
|
||||
};
|
||||
},
|
||||
fetch() {
|
||||
/* GET WITH AUTH */
|
||||
return {
|
||||
method: "get",
|
||||
mode: "cors",
|
||||
headers: this.postAuthorizedHeaders()
|
||||
};
|
||||
},
|
||||
APIUrl(apiPath) {
|
||||
if ("" == store.state.apiUrl) {
|
||||
//construct the api url and store it
|
||||
|
||||
@@ -2,5 +2,102 @@
|
||||
<div class="about">
|
||||
<v-img :src="require('../assets/bw-logo.svg')" class="my-3" contain height="200"></v-img>
|
||||
<h1>About AyaNova</h1>
|
||||
<v-list two-line subheader>
|
||||
<v-subheader>Server</v-subheader>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>API version</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.serverVersion }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>DB Schema version</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.dbSchemaVersion }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>Server local time</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.serverLocalTime }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>Server timezone</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.serverTimeZone }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
</v-list>
|
||||
<v-divider></v-divider>
|
||||
<v-list two-line subheader>
|
||||
<v-subheader>License</v-subheader>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>Licensed to</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.license.license.licensedTo }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>DB instance ID</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.license.license.dbId }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>Key serial</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.license.license.keySerial }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>License expiration</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.license.license.licenseExpiration }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>Maintenance expiration</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.license.license.maintenanceExpiration }}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
<v-list-tile avatar>
|
||||
<v-list-tile-content>
|
||||
<v-list-tile-title>Licensed features</v-list-tile-title>
|
||||
<v-list-tile-sub-title>{{ serverInfo.license.license.features}}</v-list-tile-sub-title>
|
||||
</v-list-tile-content>
|
||||
</v-list-tile>
|
||||
</v-list>
|
||||
<h4>{{ serverInfo }}</h4>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/* xeslint-disable */
|
||||
import apiMeta from "../api/apimeta";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
serverInfo: {}
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
apiMeta
|
||||
.fetchAPIInfo()
|
||||
.then(response => {
|
||||
this.serverInfo = response.data;
|
||||
})
|
||||
.catch(function(error) {
|
||||
/* xeslint-disable-next-line */
|
||||
//console.log(error);
|
||||
//TODO: turn this into a general error handling method for every form
|
||||
//probablyo an error component with error message slot to fill in
|
||||
alert(error);
|
||||
});
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
|
||||
@@ -71,6 +71,28 @@ namespace AyaNova.Api.Controllers
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get API server info for general display
|
||||
///
|
||||
/// Required roles: Any
|
||||
///
|
||||
/// </summary>
|
||||
/// <returns>API server info</returns>
|
||||
[HttpGet("ServerInfo")]
|
||||
public ActionResult ServerInfo()
|
||||
{
|
||||
return Ok(new
|
||||
{
|
||||
data = new
|
||||
{
|
||||
ServerVersion = AyaNovaVersion.FullNameAndVersion,
|
||||
DBSchemaVersion = AySchema.currentSchema,
|
||||
ServerLocalTime = DateUtil.ServerDateTimeString(System.DateTime.UtcNow),
|
||||
ServerTimeZone = TimeZoneInfo.Local.Id,
|
||||
License = AyaNova.Core.License.LicenseInfoAsJson
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
#if (DEBUG)
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user