This commit is contained in:
2018-11-15 19:45:13 +00:00
parent 3d748adbe1
commit 2491e9de8e
4 changed files with 146 additions and 0 deletions

View 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);
});
});
}
};

View File

@@ -51,6 +51,14 @@ export default {
body: JSON.stringify(data) body: JSON.stringify(data)
}; };
}, },
fetch() {
/* GET WITH AUTH */
return {
method: "get",
mode: "cors",
headers: this.postAuthorizedHeaders()
};
},
APIUrl(apiPath) { APIUrl(apiPath) {
if ("" == store.state.apiUrl) { if ("" == store.state.apiUrl) {
//construct the api url and store it //construct the api url and store it

View File

@@ -2,5 +2,102 @@
<div class="about"> <div class="about">
<v-img :src="require('../assets/bw-logo.svg')" class="my-3" contain height="200"></v-img> <v-img :src="require('../assets/bw-logo.svg')" class="my-3" contain height="200"></v-img>
<h1>About AyaNova</h1> <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> </div>
</template> </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>

View File

@@ -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) #if (DEBUG)
/// <summary> /// <summary>