Browse Source

add dashboard version process

pull/288/head
yedf2 4 years ago
parent
commit
8e36721cfb
  1. 9
      dashboard/src/api/api_dtm.ts
  2. 18
      dashboard/src/layout/aside.vue
  3. 9
      dashboard/src/store/modules/layout.ts
  4. 11
      dashboard/src/type/store/layout.ts
  5. 2
      dtmsvr/api.go
  6. 3
      dtmsvr/api_http.go
  7. 13
      dtmsvr/entry/main.go

9
dashboard/src/api/api_dtm.ts

@ -6,10 +6,17 @@ export interface IListAllTransactionsReq {
position?: number
}
export function listAllTransactions<T>(payload:IListAllTransactionsReq):Promise<AxiosResponse<T>> {
export function listAllTransactions<T>(payload: IListAllTransactionsReq): Promise<AxiosResponse<T>> {
return request({
url: '/dtmsvr/all',
method: 'get',
params: payload
})
}
export function getDtmVersion(): Promise<AxiosResponse<any>> {
return request({
url: '/dtmsvr/version',
method: 'get',
})
}

18
dashboard/src/layout/aside.vue

@ -4,7 +4,7 @@
<Sidebar />
</a-layout-sider>
<a-layout style="padding: 0 24px 24px">
<!-- <div style="color:#f00"> !!! local start mode, dashboard is served from en.dtm.pub. version may not match your dtm </div> -->
<div v-if="layout.dtmVersion && layout.dtmVersion != dashVer" style="color:#f00"> !!! dashboard version: {{dashVer}} != dtm version: {{layout.dtmVersion}}. </div>
<a-breadcrumb style="margin: 16px 0">
<a-breadcrumb-item>{{ mainNav }}</a-breadcrumb-item>
<a-breadcrumb-item>{{ subNav }}</a-breadcrumb-item>
@ -27,18 +27,21 @@ import { useLayoutStore } from '../store/modules/layout'
import { IMenubarList } from '../type/store/layout'
import { findCurrentMenubar } from '../utils/util'
import { computed, onMounted, ref } from 'vue'
import { getDtmVersion } from '../api/api_dtm'
const dashVer = import.meta.env.VITE_DASHBOARD_VERSION
const route = useRoute()
const { getMenubar } = useLayoutStore()
const layout = useLayoutStore()
const mainNav = computed(() => {
const currentMenubar = findCurrentMenubar(getMenubar.menuList, true)
const currentMenubar = findCurrentMenubar(layout.getMenubar.menuList, true)
return currentMenubar?.meta.title
})
const subNav = computed(() => {
let subNav = ''
const currentMenubar = findCurrentMenubar(getMenubar.menuList, true)
const currentMenubar = findCurrentMenubar(layout.getMenubar.menuList, true)
currentMenubar.children?.forEach(v => {
if (route.path.indexOf(v.path) !== -1) {
subNav = v.meta.title
@ -50,7 +53,7 @@ const subNav = computed(() => {
const page = computed(() => {
let page = ''
const currentMenubar = findCurrentMenubar(getMenubar.menuList, true)
const currentMenubar = findCurrentMenubar(layout.getMenubar.menuList, true)
currentMenubar.children?.forEach(v => {
v.children?.forEach(vv => {
if (route.path == vv.path) {
@ -61,6 +64,11 @@ const page = computed(() => {
return page
})
onMounted(() => {
layout.loadDtmVersion()
})
</script>
<style lang="postcss" scoped>

9
dashboard/src/store/modules/layout.ts

@ -1,16 +1,18 @@
import { defineStore } from 'pinia';
import { allowRouter } from '/@/router';
import { ILayout, IMenubar, IMenubarList, IStatus } from '/@/type/store/layout';
import { getDtmVersion } from '/@/api/api_dtm';
export const useLayoutStore = defineStore({
id: 'layout',
state: ():ILayout => ({
state: (): ILayout => ({
menubar: {
menuList: []
},
status: {
isLoading: false
},
dtmVersion: "",
}),
getters: {
getMenubar(): IMenubar {
@ -27,5 +29,10 @@ export const useLayoutStore = defineStore({
concatAllowRoutes(): void {
allowRouter.reverse().forEach(v => this.menubar.menuList.unshift(v))
},
async loadDtmVersion(): Promise<void> {
const { data: { version } } = await getDtmVersion()
this.dtmVersion = version
console.log("dtm version: ", this.dtmVersion)
}
}
})

11
dashboard/src/type/store/layout.ts

@ -1,14 +1,15 @@
export interface IMenubar {
menuList: Array<IMenubarList>
menuList: Array<IMenubarList>
}
export interface ILayout {
menubar: IMenubar
status: IStatus
menubar: IMenubar
status: IStatus
dtmVersion: string
}
export interface IStatus {
isLoading: boolean
isLoading: boolean
}
export interface IMenubarList {
@ -16,7 +17,7 @@ export interface IMenubarList {
id?: number | string
name: string
path: string
redirect?: string
redirect?: string
meta: {
icon?: string
title: string

2
dtmsvr/api.go

@ -15,6 +15,8 @@ import (
"github.com/dtm-labs/dtm/dtmsvr/storage"
)
var Version = ""
func svcSubmit(t *TransGlobal) interface{} {
t.Status = dtmcli.StatusSubmitted
branches, err := t.saveNew()

3
dtmsvr/api_http.go

@ -19,6 +19,9 @@ import (
)
func addRoute(engine *gin.Engine) {
engine.GET("/api/dtmsvr/version", dtmutil.WrapHandler2(func(c *gin.Context) interface{} {
return gin.H{"version": Version}
}))
engine.GET("/api/dtmsvr/newGid", dtmutil.WrapHandler2(newGid))
engine.POST("/api/dtmsvr/prepare", dtmutil.WrapHandler2(prepare))
engine.POST("/api/dtmsvr/submit", dtmutil.WrapHandler2(submit))

13
dtmsvr/entry/main.go

@ -14,13 +14,6 @@ import (
"go.uber.org/automaxprocs/maxprocs"
)
func ver(version *string) {
if *version == "" {
*version = "v0.0.0-dev"
}
fmt.Printf("dtm version: %s\n", *version)
}
func usage() {
cmd := filepath.Base(os.Args[0])
s := "Usage: %s [options]\n\n"
@ -37,11 +30,15 @@ var confFile = flag.String("c", "", "Path to the server configuration file.")
// Main is the entry point of dtm server.
func Main(version *string) *gin.Engine {
flag.Parse()
if *version == "" {
*version = "v0.0.0-dev"
}
dtmsvr.Version = *version
if flag.NArg() > 0 || *isHelp {
usage()
return nil
} else if *isVersion {
ver(version)
fmt.Printf("dtm version: %s\n", *version)
return nil
}
logger.Infof("dtm version is: %s", *version)

Loading…
Cancel
Save