diff options
Diffstat (limited to 'web/html/xui/client_modal.html')
| -rw-r--r-- | web/html/xui/client_modal.html | 154 |
1 files changed, 15 insertions, 139 deletions
diff --git a/web/html/xui/client_modal.html b/web/html/xui/client_modal.html index cb15e1e7..4b270607 100644 --- a/web/html/xui/client_modal.html +++ b/web/html/xui/client_modal.html @@ -15,16 +15,8 @@ confirmLoading: false, title: '', okText: '', - group: { - canGroup: true, - isGroup: false, - currentClient: null, - inbounds: [], - clients: [], - editIds: [] - }, + isEdit: false, dbInbound: new DBInbound(), - dbInbounds: null, inbound: new Inbound(), clients: [], clientStats: [], @@ -33,137 +25,33 @@ clientIps: null, delayedStart: false, ok() { - if (clientModal.group.isGroup && clientModal.group.canGroup) { - const currentClient = clientModal.group.currentClient; - - clientModal.group.clients.forEach((client, index) => { - const { email, limitIp, totalGB, expiryTime, reset, enable, subId, tgId, flow } = currentClient; - - const match = email.match(/^(.*?)__/); - const new_email = match ? match[1] : email; - - client.email = `${new_email}__${index + 1}`; - client.limitIp = limitIp; - client.totalGB = totalGB; - client.expiryTime = expiryTime; - client.reset = reset; - client.enable = enable; - - if (subId) { - client.subId = subId; - } - if (tgId) { - client.tgId = tgId; - } - if (flow) { - client.flow = flow; - } - }); - - if (clientModal.isEdit) { - ObjectUtil.execute(clientModal.confirm, clientModal.group.clients, clientModal.group.inbounds, clientModal.group.editIds); - }else{ - ObjectUtil.execute(clientModal.confirm, clientModal.group.clients, clientModal.group.inbounds); - } + if (clientModal.isEdit) { + ObjectUtil.execute(clientModal.confirm, clientModalApp.client, clientModal.dbInbound.id, clientModal.oldClientId); } else { - if (clientModal.isEdit){ - ObjectUtil.execute(clientModal.confirm, clientModalApp.client, clientModal.dbInbound.id, clientModal.oldClientId); - }else{ - ObjectUtil.execute(clientModal.confirm, clientModalApp.client, clientModal.dbInbound.id); - } + ObjectUtil.execute(clientModal.confirm, clientModalApp.client, clientModal.dbInbound.id); } }, - show({ title = '', okText = '{{ i18n "sure" }}', index = null, dbInbound = null, dbInbounds = null, confirm = () => { }, isEdit = false }) { - this.group = { - canGroup: true, - isGroup: false, - currentClient: null, - inbounds: [], - clients: [], - editIds: [] - } - this.dbInbounds = dbInbounds; + show({ title = '', okText = '{{ i18n "sure" }}', index = null, dbInbound = null, confirm = () => { }, isEdit = false }) { this.visible = true; this.title = title; this.okText = okText; this.isEdit = isEdit; - if (dbInbounds !== null && Array.isArray(dbInbounds)) { - if (isEdit) { - this.showProcess(dbInbound, index); - let processSingleEdit = true - if (this.group.canGroup){ - this.group.currentClient = this.clients[this.index] - const response = this.getGroupInboundsClients(dbInbounds,this.group.currentClient) - if (response.clients.length > 1){ - this.group.isGroup = true; - this.group.inbounds = response.inbounds - this.group.clients = response.clients - this.group.editIds = response.editIds - if (this.clients[index].expiryTime < 0) { - this.delayedStart = true; - } - processSingleEdit = false - } - } - if(processSingleEdit){ - this.singleEditClientProcess(index) - } - } else { - this.group.isGroup = true; - dbInbounds.forEach((dbInboundItem) => { - this.showProcess(dbInboundItem); - this.addClient(this.inbound.protocol, this.clients); - this.group.inbounds.push(dbInboundItem.id) - this.group.clients.push(this.clients[this.index]) - }) - this.group.currentClient = this.clients[this.index] - } - } else { - this.showProcess(dbInbound, index); - if (isEdit) { - this.singleEditClientProcess(index) - } else { - this.addClient(this.inbound.protocol, this.clients); - } - } - this.clientStats = this.dbInbound.clientStats.find(row => row.email === this.clients[this.index].email); - this.confirm = confirm; - }, - showProcess(dbInbound, index = null) { this.dbInbound = new DBInbound(dbInbound); this.inbound = dbInbound.toInbound(); this.clients = this.inbound.clients; this.index = index === null ? this.clients.length : index; this.delayedStart = false; - }, - singleEditClientProcess(index) { - if (this.clients[index].expiryTime < 0) { - this.delayedStart = true; - } - this.oldClientId = this.getClientId(this.dbInbound.protocol, this.clients[index]); - }, - getGroupInboundsClients(dbInbounds, currentClient) { - const response = { - inbounds: [], - clients: [], - editIds: [] - } - dbInbounds.forEach((dbInboundItem) => { - const dbInbound = new DBInbound(dbInboundItem); - const inbound = dbInbound.toInbound(); - const clients = inbound.clients; - if (clients.length > 0){ - clients.forEach((client) => { - if (client['subId'] === currentClient['subId']){ - response.inbounds.push(dbInboundItem.id) - response.clients.push(client) - response.editIds.push(this.getClientId(dbInbound.protocol, client)) - } - }) + if (isEdit) { + if (this.clients[index].expiryTime < 0) { + this.delayedStart = true; } - }) - return response; - }, + this.oldClientId = this.getClientId(dbInbound.protocol, clients[index]); + } else { + this.addClient(this.inbound.protocol, this.clients); + } + this.clientStats = this.dbInbound.clientStats.find(row => row.email === this.clients[this.index].email); + this.confirm = confirm; + }, getClientId(protocol, client) { switch (protocol) { case Protocols.TROJAN: return client.password; @@ -206,18 +94,6 @@ get isEdit() { return this.clientModal.isEdit; }, - get isGroup() { - return this.clientModal.group.isGroup; - }, - get isGroupEdit() { - return this.clientModal.group.canGroup; - }, - set isGroupEdit(value) { - this.clientModal.group.canGroup = value; - if (!value){ - this.clientModal.singleEditClientProcess(this.clientModal.index) - } - }, get datepicker() { return app.datepicker; }, |
