close modal only after success msg

Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
This commit is contained in:
MHSanaei 2024-02-27 16:01:20 +03:30
parent 6b34a3ae13
commit 9b026572cf
3 changed files with 14 additions and 21 deletions

View file

@ -50,7 +50,6 @@ func (a *SUBController) initRouter(g *gin.RouterGroup) {
} }
func (a *SUBController) subs(c *gin.Context) { func (a *SUBController) subs(c *gin.Context) {
println(c.Request.Header["User-Agent"][0])
subId := c.Param("subid") subId := c.Param("subid")
host := strings.Split(c.Request.Host, ":")[0] host := strings.Split(c.Request.Host, ":")[0]
subs, header, err := a.subService.GetSubs(subId, host) subs, header, err := a.subService.GetSubs(subId, host)
@ -76,7 +75,6 @@ func (a *SUBController) subs(c *gin.Context) {
} }
func (a *SUBController) subJsons(c *gin.Context) { func (a *SUBController) subJsons(c *gin.Context) {
println(c.Request.Header["User-Agent"][0])
subId := c.Param("subid") subId := c.Param("subid")
host := strings.Split(c.Request.Host, ":")[0] host := strings.Split(c.Request.Host, ":")[0]
jsonSub, header, err := a.subJsonService.GetJson(subId, host) jsonSub, header, err := a.subJsonService.GetJson(subId, host)

View file

@ -1,6 +1,7 @@
{{define "promptModal"}} {{define "promptModal"}}
<a-modal id="prompt-modal" v-model="promptModal.visible" :title="promptModal.title" <a-modal id="prompt-modal" v-model="promptModal.visible" :title="promptModal.title"
:closable="true" @ok="promptModal.ok" :mask-closable="false" :closable="true" @ok="promptModal.ok" :mask-closable="false"
:confirm-loading="promptModal.confirmLoading"
:ok-text="promptModal.okText" cancel-text='{{ i18n "cancel" }}' :class="themeSwitcher.currentTheme"> :ok-text="promptModal.okText" cancel-text='{{ i18n "cancel" }}' :class="themeSwitcher.currentTheme">
<a-input id="prompt-modal-input" :type="promptModal.type" <a-input id="prompt-modal-input" :type="promptModal.type"
v-model="promptModal.value" v-model="promptModal.value"
@ -17,6 +18,7 @@
value: '', value: '',
okText: '{{ i18n "sure"}}', okText: '{{ i18n "sure"}}',
visible: false, visible: false,
confirmLoading: false,
keyEnter(e) { keyEnter(e) {
if (this.type !== 'textarea') { if (this.type !== 'textarea') {
e.preventDefault(); e.preventDefault();
@ -30,7 +32,6 @@
} }
}, },
ok() { ok() {
promptModal.close();
promptModal.confirm(promptModal.value); promptModal.confirm(promptModal.value);
}, },
confirm() {}, confirm() {},
@ -53,7 +54,10 @@
}, },
close() { close() {
this.visible = false; this.visible = false;
} },
loading(loading=true) {
this.confirmLoading = loading;
},
}; };
const promptModalApp = new Vue({ const promptModalApp = new Vue({

View file

@ -848,9 +848,7 @@
okText: '{{ i18n "pages.inbounds.create"}}', okText: '{{ i18n "pages.inbounds.create"}}',
cancelText: '{{ i18n "close" }}', cancelText: '{{ i18n "close" }}',
confirm: async (inbound, dbInbound) => { confirm: async (inbound, dbInbound) => {
inModal.loading(); await this.addInbound(inbound, dbInbound, inModal);
await this.addInbound(inbound, dbInbound);
inModal.close();
}, },
isEdit: false isEdit: false
}); });
@ -865,9 +863,7 @@
inbound: inbound, inbound: inbound,
dbInbound: dbInbound, dbInbound: dbInbound,
confirm: async (inbound, dbInbound) => { confirm: async (inbound, dbInbound) => {
inModal.loading();
await this.updateInbound(inbound, dbInbound); await this.updateInbound(inbound, dbInbound);
inModal.close();
}, },
isEdit: true isEdit: true
}); });
@ -917,9 +913,7 @@
okText: '{{ i18n "pages.client.submitAdd"}}', okText: '{{ i18n "pages.client.submitAdd"}}',
dbInbound: dbInbound, dbInbound: dbInbound,
confirm: async (clients, dbInboundId) => { confirm: async (clients, dbInboundId) => {
clientModal.loading(); await this.addClient(clients, dbInboundId, clientModal);
await this.addClient(clients, dbInboundId);
clientModal.close();
}, },
isEdit: false isEdit: false
}); });
@ -931,9 +925,7 @@
okText: '{{ i18n "pages.client.bulk"}}', okText: '{{ i18n "pages.client.bulk"}}',
dbInbound: dbInbound, dbInbound: dbInbound,
confirm: async (clients, dbInboundId) => { confirm: async (clients, dbInboundId) => {
clientsBulkModal.loading(); await this.addClient(clients, dbInboundId, clientsBulkModal);
await this.addClient(clients, dbInboundId);
clientsBulkModal.close();
}, },
}); });
}, },
@ -962,19 +954,19 @@
default: return clients.findIndex(item => item.id === client.id && item.email === client.email); default: return clients.findIndex(item => item.id === client.id && item.email === client.email);
} }
}, },
async addClient(clients, dbInboundId) { async addClient(clients, dbInboundId, modal) {
const data = { const data = {
id: dbInboundId, id: dbInboundId,
settings: '{"clients": [' + clients.toString() + ']}', settings: '{"clients": [' + clients.toString() + ']}',
}; };
await this.submit(`/panel/inbound/addClient`, data); await this.submit(`/panel/inbound/addClient`, data, modal);
}, },
async updateClient(client, dbInboundId, clientId) { async updateClient(client, dbInboundId, clientId) {
const data = { const data = {
id: dbInboundId, id: dbInboundId,
settings: '{"clients": [' + client.toString() + ']}', settings: '{"clients": [' + client.toString() + ']}',
}; };
await this.submit(`/panel/inbound/updateClient/${clientId}`, data); await this.submit(`/panel/inbound/updateClient/${clientId}`, data, clientModal);
}, },
resetTraffic(dbInboundId) { resetTraffic(dbInboundId) {
dbInbound = this.dbInbounds.find(row => row.id === dbInboundId); dbInbound = this.dbInbounds.find(row => row.id === dbInboundId);
@ -1077,8 +1069,8 @@
await this.updateClient(clients[index], dbInboundId, clientId); await this.updateClient(clients[index], dbInboundId, clientId);
this.loading(false); this.loading(false);
}, },
async submit(url, data) { async submit(url, data, modal) {
const msg = await HttpUtil.postWithModal(url, data); const msg = await HttpUtil.postWithModal(url, data, modal);
if (msg.success) { if (msg.success) {
await this.getDBInbounds(); await this.getDBInbounds();
} }
@ -1237,7 +1229,6 @@
okText: '{{ i18n "pages.inbounds.import" }}', okText: '{{ i18n "pages.inbounds.import" }}',
confirm: async (dbInboundText) => { confirm: async (dbInboundText) => {
await this.submit('/panel/inbound/import', {data: dbInboundText}, promptModal); await this.submit('/panel/inbound/import', {data: dbInboundText}, promptModal);
promptModal.close();
}, },
}); });
}, },