Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'web/html/xui/inbound_modal.html')
-rw-r--r--web/html/xui/inbound_modal.html178
1 files changed, 178 insertions, 0 deletions
diff --git a/web/html/xui/inbound_modal.html b/web/html/xui/inbound_modal.html
new file mode 100644
index 00000000..8d72ca2f
--- /dev/null
+++ b/web/html/xui/inbound_modal.html
@@ -0,0 +1,178 @@
+{{define "inboundModal"}}
+<a-modal id="inbound-modal" v-model="inModal.visible" :title="inModal.title" @ok="inModal.ok"
+ :confirm-loading="inModal.confirmLoading" :closable="true" :mask-closable="false"
+ :ok-text="inModal.okText" cancel-text='{{ i18n "close" }}'>
+ {{template "form/inbound"}}
+</a-modal>
+<script>
+
+ const inModal = {
+ title: '',
+ visible: false,
+ confirmLoading: false,
+ okText: '{{ i18n "sure" }}',
+ isEdit: false,
+ confirm: null,
+ inbound: new Inbound(),
+ dbInbound: new DBInbound(),
+ ok() {
+ ObjectUtil.execute(inModal.confirm, inModal.inbound, inModal.dbInbound);
+ },
+ show({ title='', okText='{{ i18n "sure" }}', inbound=null, dbInbound=null, confirm=(inbound, dbInbound)=>{}, isEdit=false }) {
+ this.title = title;
+ this.okText = okText;
+ if (inbound) {
+ this.inbound = Inbound.fromJson(inbound.toJson());
+ } else {
+ this.inbound = new Inbound();
+ }
+ if (dbInbound) {
+ this.dbInbound = new DBInbound(dbInbound);
+ } else {
+ this.dbInbound = new DBInbound();
+ }
+ this.confirm = confirm;
+ this.visible = true;
+ this.isEdit = isEdit;
+ },
+ close() {
+ inModal.visible = false;
+ inModal.loading(false);
+ },
+ loading(loading) {
+ inModal.confirmLoading = loading;
+ },
+ };
+
+ const protocols = {
+ VMESS: Protocols.VMESS,
+ VLESS: Protocols.VLESS,
+ TROJAN: Protocols.TROJAN,
+ SHADOWSOCKS: Protocols.SHADOWSOCKS,
+ DOKODEMO: Protocols.DOKODEMO,
+ SOCKS: Protocols.SOCKS,
+ HTTP: Protocols.HTTP,
+ };
+
+ new Vue({
+ delimiters: ['[[', ']]'],
+ el: '#inbound-modal',
+ data: {
+ inModal: inModal,
+ Protocols: protocols,
+ SSMethods: SSMethods,
+ get inbound() {
+ return inModal.inbound;
+ },
+ get dbInbound() {
+ return inModal.dbInbound;
+ },
+ get isEdit() {
+ return inModal.isEdit;
+ }
+ },
+ methods: {
+ streamNetworkChange(oldValue) {
+ if (oldValue === 'kcp') {
+ this.inModal.inbound.tls = false;
+ }
+ },
+ addClient(protocol, clients) {
+ switch (protocol) {
+ case Protocols.VMESS: return clients.push(new Inbound.VmessSettings.Vmess());
+ case Protocols.VLESS: return clients.push(new Inbound.VLESSSettings.VLESS());
+ case Protocols.TROJAN: return clients.push(new Inbound.TrojanSettings.Trojan());
+ default: return null;
+ }
+ },
+ removeClient(index, clients) {
+ clients.splice(index, 1);
+ },
+
+ async resetClientTraffic(client,event) {
+ const msg = await HttpUtil.post('/xui/inbound/resetClientTraffic/'+ client.email);
+ if (!msg.success) {
+ return;
+ }
+ clientStats = this.inbound.clientStats
+ if(clientStats.length > 0)
+ {
+ for (const key in clientStats) {
+ if (Object.hasOwnProperty.call(clientStats, key)) {
+ if(clientStats[key]['email'] == client.email){
+ clientStats[key]['up'] = 0
+ clientStats[key]['down'] = 0
+ }
+ }
+ }
+ }
+ },
+ isExpiry(index) {
+ return this.inbound.isExpiry(index)
+ },
+ getUpStats(email) {
+ clientStats = this.inbound.clientStats
+ if(clientStats.length > 0)
+ {
+ for (const key in clientStats) {
+ if (Object.hasOwnProperty.call(clientStats, key)) {
+ if(clientStats[key]['email'] == email)
+ return clientStats[key]['up']
+
+ }
+ }
+ }
+
+ },
+ getDownStats(email) {
+ clientStats = this.inbound.clientStats
+ if(clientStats.length > 0)
+ {
+ for (const key in clientStats) {
+ if (Object.hasOwnProperty.call(clientStats, key)) {
+ if(clientStats[key]['email'] == email)
+ return clientStats[key]['down']
+
+ }
+ }
+ }
+ },
+ isClientEnable(email) {
+ clientStats = this.inbound.clientStats
+ if(clientStats.length > 0)
+ {
+ for (const key in clientStats) {
+ if (Object.hasOwnProperty.call(clientStats, key)) {
+ if(clientStats[key]['email'] == email)
+ return clientStats[key]['enable']
+
+ }
+ }
+ }
+ },
+
+ getHeaderText(email) {
+ if(email == "")
+ return "Add Client"
+
+ return email + (this.isClientEnable(email) == true ? ' Active' : ' Deactive')
+ },
+
+ getHeaderStyle(email) {
+ return (this.isClientEnable(email) == true ? '' : 'deactive-client')
+ },
+
+ getNewEmail(client) {
+ var chars = 'abcdefghijklmnopqrstuvwxyz1234567890';
+ var string = '';
+ var len = 6 + Math.floor(Math.random() * 5)
+ for(var ii=0; ii<len; ii++){
+ string += chars[Math.floor(Math.random() * chars.length)];
+ }
+ client.email = string + "@gmail.com"
+ }
+ },
+ });
+
+</script>
+{{end}}