mirror of
https://github.com/TeaOSLab/EdgeAdmin.git
synced 2025-11-03 20:40:26 +08:00
263 lines
5.4 KiB
JavaScript
263 lines
5.4 KiB
JavaScript
Tea.context(function () {
|
|
this.moreOptionsVisible = false
|
|
this.globalMessageBadge = 0
|
|
|
|
if (typeof this.leftMenuItemIsDisabled == "undefined") {
|
|
this.leftMenuItemIsDisabled = false
|
|
}
|
|
|
|
this.$delay(function () {
|
|
if (this.$refs.focus != null) {
|
|
this.$refs.focus.focus()
|
|
}
|
|
|
|
if (!window.IS_POPUP) {
|
|
// 检查消息
|
|
this.checkMessages()
|
|
|
|
// 检查集群节点同步
|
|
this.loadNodeTasks();
|
|
|
|
// 检查DNS同步
|
|
this.loadDNSTasks()
|
|
}
|
|
})
|
|
|
|
/**
|
|
* 切换模板
|
|
*/
|
|
this.changeTheme = function () {
|
|
this.$post("/ui/theme")
|
|
.success(function (resp) {
|
|
teaweb.successToast("界面风格已切换")
|
|
this.teaTheme = resp.data.theme
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 左侧子菜单
|
|
*/
|
|
this.showSubMenu = function (menu) {
|
|
if (menu.alwaysActive) {
|
|
return
|
|
}
|
|
if (this.teaSubMenus.menus != null && this.teaSubMenus.menus.length > 0) {
|
|
this.teaSubMenus.menus.$each(function (k, v) {
|
|
if (menu.id == v.id) {
|
|
return
|
|
}
|
|
v.isActive = false
|
|
})
|
|
}
|
|
menu.isActive = !menu.isActive
|
|
};
|
|
|
|
/**
|
|
* 检查消息
|
|
*/
|
|
this.checkMessages = function () {
|
|
this.$post("/messages/badge")
|
|
.params({})
|
|
.success(function (resp) {
|
|
this.globalMessageBadge = resp.data.count
|
|
|
|
// add dot to title
|
|
let dots = "••• "
|
|
if (typeof document.title == "string") {
|
|
if (resp.data.count > 0) {
|
|
if (!document.title.startsWith(dots)) {
|
|
document.title = dots + document.title
|
|
}
|
|
} else if (document.title.startsWith(dots)) {
|
|
document.title = document.title.substring(dots.length)
|
|
}
|
|
}
|
|
})
|
|
.done(function () {
|
|
let delay = 6000
|
|
if (this.globalMessageBadge > 0) {
|
|
delay = 30000
|
|
}
|
|
this.$delay(function () {
|
|
this.checkMessages()
|
|
}, delay)
|
|
})
|
|
}
|
|
|
|
this.checkMessagesOnce = function () {
|
|
this.$post("/messages/badge")
|
|
.params({})
|
|
.success(function (resp) {
|
|
this.globalMessageBadge = resp.data.count
|
|
})
|
|
}
|
|
|
|
this.showMessages = function () {
|
|
teaweb.popup("/messages", {
|
|
height: "28em",
|
|
width: "50em"
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 底部伸展框
|
|
*/
|
|
this.showQQGroupQrcode = function () {
|
|
teaweb.popup("/about/qq", {
|
|
width: "21em",
|
|
height: "30em"
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 弹窗中默认成功回调
|
|
*/
|
|
if (window.IS_POPUP === true) {
|
|
this.success = window.NotifyPopup
|
|
}
|
|
|
|
/**
|
|
* 节点同步任务
|
|
*/
|
|
this.doingNodeTasks = {
|
|
isDoing: false,
|
|
hasError: false,
|
|
isUpdated: false
|
|
}
|
|
|
|
this.loadNodeTasks = function () {
|
|
if (!Tea.Vue.teaCheckNodeTasks) {
|
|
return
|
|
}
|
|
let isStream = false
|
|
this.$post("/clusters/tasks/check")
|
|
.params({
|
|
isDoing: this.doingNodeTasks.isDoing ? 1 : 0,
|
|
hasError: this.doingNodeTasks.hasError ? 1 : 0,
|
|
isUpdated: this.doingNodeTasks.isUpdated ? 1 : 0
|
|
})
|
|
.timeout(60)
|
|
.success(function (resp) {
|
|
this.doingNodeTasks.isDoing = resp.data.isDoing
|
|
this.doingNodeTasks.hasError = resp.data.hasError
|
|
this.doingNodeTasks.isUpdated = true
|
|
isStream = resp.data.shouldWait
|
|
})
|
|
.done(function () {
|
|
this.$delay(function () {
|
|
this.loadNodeTasks()
|
|
}, isStream ? 5000 : 30000)
|
|
})
|
|
}
|
|
|
|
this.showNodeTasks = function () {
|
|
teaweb.popup("/clusters/tasks/listPopup", {
|
|
height: "28em",
|
|
width: "54em"
|
|
})
|
|
}
|
|
|
|
/**
|
|
* DNS同步任务
|
|
*/
|
|
this.doingDNSTasks = {
|
|
isDoing: false,
|
|
hasError: false,
|
|
isUpdated: false
|
|
}
|
|
|
|
this.loadDNSTasks = function () {
|
|
if (!Tea.Vue.teaCheckDNSTasks) {
|
|
return
|
|
}
|
|
let isStream = false
|
|
this.$post("/dns/tasks/check")
|
|
.params({
|
|
isDoing: this.doingDNSTasks.isDoing ? 1 : 0,
|
|
hasError: this.doingDNSTasks.hasError ? 1 : 0,
|
|
isUpdated: this.doingDNSTasks.isUpdated ? 1 : 0
|
|
})
|
|
.timeout(60)
|
|
.success(function (resp) {
|
|
this.doingDNSTasks.isDoing = resp.data.isDoing
|
|
this.doingDNSTasks.hasError = resp.data.hasError
|
|
this.doingDNSTasks.isUpdated = true
|
|
isStream = resp.data.isStream
|
|
})
|
|
.done(function () {
|
|
this.$delay(function () {
|
|
this.loadDNSTasks()
|
|
}, isStream ? 5000 : 30000)
|
|
})
|
|
}
|
|
|
|
this.showDNSTasks = function () {
|
|
teaweb.popup("/dns/tasks/listPopup", {
|
|
height: "28em",
|
|
width: "54em"
|
|
})
|
|
}
|
|
|
|
this.LANG = function (code) {
|
|
if (window.LANG_MESSAGES != null) {
|
|
let message = window.LANG_MESSAGES[code]
|
|
if (typeof message == "string") {
|
|
return message
|
|
}
|
|
}
|
|
return "{{ LANG('" + code + "') }}"
|
|
}
|
|
});
|
|
|
|
window.NotifySuccess = function (message, url, params) {
|
|
if (typeof (url) == "string" && url.length > 0) {
|
|
if (url[0] != "/") {
|
|
url = Tea.url(url, params);
|
|
}
|
|
}
|
|
return function () {
|
|
teaweb.success(message, function () {
|
|
window.location = url;
|
|
});
|
|
};
|
|
};
|
|
|
|
window.NotifyReloadSuccess = function (message) {
|
|
return function () {
|
|
teaweb.success(message, function () {
|
|
window.location.reload()
|
|
})
|
|
}
|
|
}
|
|
|
|
window.NotifyDelete = function (message, url, params) {
|
|
teaweb.confirm(message, function () {
|
|
Tea.Vue.$post(url)
|
|
.params(params)
|
|
.refresh();
|
|
});
|
|
};
|
|
|
|
window.NotifyPopup = function (resp) {
|
|
window.parent.teaweb.popupFinish(resp);
|
|
};
|
|
|
|
window.ChangePageSize = function (size) {
|
|
let url = window.location.toString();
|
|
url = url.replace(/page=\d+/g, "page=1")
|
|
if (url.indexOf("pageSize") > 0) {
|
|
url = url.replace(/pageSize=\d+/g, "pageSize=" + size)
|
|
} else {
|
|
if (url.indexOf("?") > 0) {
|
|
let anchorIndex = url.indexOf("#")
|
|
if (anchorIndex < 0) {
|
|
url += "&pageSize=" + size;
|
|
} else {
|
|
url = url.substring(0, anchorIndex) + "&pageSize=" + size + url.substr(anchorIndex);
|
|
}
|
|
} else {
|
|
url += "?pageSize=" + size;
|
|
}
|
|
}
|
|
window.location = url;
|
|
}; |