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:
authorMHSanaei <ho3ein.sanaei@gmail.com>2023-12-13 18:57:36 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2023-12-13 19:03:11 +0300
commit8d18c8e98f1b6531d1997feb6933419d71401968 (patch)
tree1283d10c68f3a9b9b2cbeeec95fb34a84e9689e3 /web/html/xui/client_bulk_modal.html
parent82e2241bdd9552f57d24c8de4fce6c5320efba4c (diff)
[gui] redesign forms
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
Diffstat (limited to 'web/html/xui/client_bulk_modal.html')
-rw-r--r--web/html/xui/client_bulk_modal.html317
1 files changed, 117 insertions, 200 deletions
diff --git a/web/html/xui/client_bulk_modal.html b/web/html/xui/client_bulk_modal.html
index e0295110..1fa64306 100644
--- a/web/html/xui/client_bulk_modal.html
+++ b/web/html/xui/client_bulk_modal.html
@@ -2,206 +2,123 @@
<a-modal id="client-bulk-modal" v-model="clientsBulkModal.visible" :title="clientsBulkModal.title"
@ok="clientsBulkModal.ok" :confirm-loading="clientsBulkModal.confirmLoading" :closable="true" :mask-closable="false"
:ok-text="clientsBulkModal.okText" cancel-text='{{ i18n "close" }}' :class="themeSwitcher.currentTheme">
- <a-form layout="inline">
- <table width="100%" class="ant-table-tbody">
- <tr>
- <td>{{ i18n "pages.client.method" }}</td>
- <td>
- <a-form-item>
- <a-select v-model="clientsBulkModal.emailMethod" buttonStyle="solid" style="width: 250px"
- :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option :value="0">Random</a-select-option>
- <a-select-option :value="1">Random+Prefix</a-select-option>
- <a-select-option :value="2">Random+Prefix+Num</a-select-option>
- <a-select-option :value="3">Random+Prefix+Num+Postfix</a-select-option>
- <a-select-option :value="4">Prefix+Num+Postfix</a-select-option>
- </a-select>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="clientsBulkModal.emailMethod>1">
- <td>{{ i18n "pages.client.first" }}</td>
- <td>
- <a-form-item>
- <a-input-number v-model="clientsBulkModal.firstNum" :min="1"></a-input-number>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="clientsBulkModal.emailMethod>1">
- <td>{{ i18n "pages.client.last" }}</td>
- <td>
- <a-form-item>
- <a-input-number v-model="clientsBulkModal.lastNum"
- :min="clientsBulkModal.firstNum"></a-input-number>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="clientsBulkModal.emailMethod>0">
- <td>{{ i18n "pages.client.prefix" }}</td>
- <td>
- <a-form-item>
- <a-input v-model="clientsBulkModal.emailPrefix" style="width: 250px"></a-input>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="clientsBulkModal.emailMethod>2">
- <td>{{ i18n "pages.client.postfix" }}</td>
- <td>
- <a-form-item>
- <a-input v-model="clientsBulkModal.emailPostfix" style="width: 250px"></a-input>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="clientsBulkModal.emailMethod < 2">
- <td>{{ i18n "pages.client.clientCount" }}</td>
- <td>
- <a-form-item>
- <a-input-number v-model="clientsBulkModal.quantity" :min="1" :max="100"></a-input-number>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="clientsBulkModal.inbound.canEnableTlsFlow()">
- <td>Flow</td>
- <td>
- <a-form-item>
- <a-select v-model="clientsBulkModal.flow" style="width: 250px"
- :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="" selected>{{ i18n "none" }}</a-select-option>
- <a-select-option v-for="key in TLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option>
- </a-select>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="app.subSettings.enable">
- <td>Subscription
- <a-tooltip>
- <template slot="title">
- <span>{{ i18n "pages.inbounds.subscriptionDesc" }}</span>
- </template>
- <a-icon @click="client.subId = RandomUtil.randomLowerAndNum(16)" type="sync"></a-icon>
- </a-tooltip>
- </td>
- <td>
- <a-form-item>
- <a-input v-model.trim="clientsBulkModal.subId" style="width: 250px"></a-input>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="app.tgBotEnable">
- <td>Telegram ID
- <a-tooltip>
- <template slot="title">
- <span>{{ i18n "pages.inbounds.telegramDesc" }}</span>
- </template>
- <a-icon type="question-circle" theme="filled"></a-icon>
- </a-tooltip>
- </td>
- <td>
- <a-form-item>
- <a-input v-model.trim="clientsBulkModal.tgId" style="width: 250px"></a-input>
- </a-form-item>
- </td>
- </tr>
- <tr>
- <td>
- <label>
- <span>{{ i18n "pages.inbounds.IPLimit" }}</span>
- <a-tooltip>
- <template slot="title">
- <span>{{ i18n "pages.inbounds.IPLimitDesc" }}</span>
- </template>
- <a-icon type="question-circle" theme="filled"></a-icon>
- </a-tooltip>
- </label>
- </td>
- <td>
- <a-form-item>
- <a-input-number v-model="clientsBulkModal.limitIp" min="0"></a-input-number>
- </a-form-item>
- </td>
- </tr>
- <tr>
- <td v-if="clientsBulkModal.inbound.xtls">
- <label>Flow</label>
- </td>
- <td v-if="clientsBulkModal.inbound.xtls">
- <a-form-item>
- <a-select v-model="clientsBulkModal.flow" style="width: 200px"
- :dropdown-class-name="themeSwitcher.currentTheme">
- <a-select-option value="">{{ i18n "none" }}</a-select-option>
- <a-select-option v-for="key in XTLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option>
- </a-select>
- </a-form-item>
- </td>
- </tr>
- <tr>
- <td>
- <span>{{ i18n "pages.inbounds.totalFlow" }}</span>(GB)
- <a-tooltip>
- <template slot="title">
- 0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
- </template>
- <a-icon type="question-circle" theme="filled"></a-icon>
- </a-tooltip>
- </td>
- <td>
- <a-form-item>
- <a-input-number v-model="clientsBulkModal.totalGB" :min="0"></a-input-number>
- </a-form-item>
- </td>
- </tr>
- <tr>
- <td>{{ i18n "pages.client.delayedStart" }}</td>
- <td>
- <a-form-item>
- <a-switch v-model="clientsBulkModal.delayedStart"
- @click="clientsBulkModal.expiryTime=0"></a-switch>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="clientsBulkModal.delayedStart">
- <td>{{ i18n "pages.client.expireDays" }}</td>
- <td>
- <a-form-item>
- <a-input-number v-model.number="delayedExpireDays" :min="0"></a-input-number>
- </a-form-item>
- </td>
- </tr>
- <tr v-else>
- <td>
- <span>{{ i18n "pages.inbounds.expireDate" }}</span>
- <a-tooltip>
- <template slot="title">
- <span>{{ i18n "pages.inbounds.leaveBlankToNeverExpire" }}</span>
- </template>
- <a-icon type="question-circle" theme="filled"></a-icon>
- </a-tooltip>
- </td>
- <td>
- <a-form-item>
- <a-date-picker :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss"
- :dropdown-class-name="themeSwitcher.currentTheme" v-model="clientsBulkModal.expiryTime"
- style="width: 250px;"></a-date-picker>
- </a-form-item>
- </td>
- </tr>
- <tr v-if="clientsBulkModal.expiryTime != 0">
- <td>
- <span>{{ i18n "pages.client.renew" }}</span>
- <a-tooltip>
- <template slot="title">
- <span>{{ i18n "pages.client.renewDesc" }}</span>
- </template>
- <a-icon type="question-circle" theme="filled"></a-icon>
- </a-tooltip>
- </td>
- <td>
- <a-form-item>
- <a-input-number v-model.number="clientsBulkModal.reset" :min="0"></a-input-number>
- </a-form-item>
- </td>
- </tr>
- </table>
+ <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
+ <a-form-item label='{{ i18n "pages.client.method" }}'>
+ <a-select v-model="clientsBulkModal.emailMethod" buttonStyle="solid"
+ :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option :value="0">Random</a-select-option>
+ <a-select-option :value="1">Random+Prefix</a-select-option>
+ <a-select-option :value="2">Random+Prefix+Num</a-select-option>
+ <a-select-option :value="3">Random+Prefix+Num+Postfix</a-select-option>
+ <a-select-option :value="4">Prefix+Num+Postfix</a-select-option>
+ </a-select>
+ </a-form-item>
+ <a-form-item label='{{ i18n "pages.client.first" }}' v-if="clientsBulkModal.emailMethod>1">
+ <a-input-number v-model="clientsBulkModal.firstNum" :min="1"></a-input-number>
+ </a-form-item>
+ <a-form-item label='{{ i18n "pages.client.last" }}' v-if="clientsBulkModal.emailMethod>1">
+ <a-input-number v-model="clientsBulkModal.lastNum" :min="clientsBulkModal.firstNum"></a-input-number>
+ </a-form-item>
+ <a-form-item label='{{ i18n "pages.client.prefix" }}' v-if="clientsBulkModal.emailMethod>0">
+ <a-input v-model="clientsBulkModal.emailPrefix"></a-input>
+ </a-form-item>
+ <a-form-item label='{{ i18n "pages.client.postfix" }}' v-if="clientsBulkModal.emailMethod>2">
+ <a-input v-model="clientsBulkModal.emailPostfix"></a-input>
+ </a-form-item>
+ <a-form-item label='{{ i18n "pages.client.clientCount" }}' v-if="clientsBulkModal.emailMethod < 2">
+ <a-input-number v-model="clientsBulkModal.quantity" :min="1" :max="100"></a-input-number>
+ </a-form-item>
+ <a-form-item label='Flow' v-if="clientsBulkModal.inbound.canEnableTlsFlow()">
+ <a-select v-model="clientsBulkModal.flow" :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option value="" selected>{{ i18n "none" }}</a-select-option>
+ <a-select-option v-for="key in TLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option>
+ </a-select>
+ </a-form-item>
+ <a-form-item label='Flow' v-if="clientsBulkModal.inbound.xtls">
+ <a-select v-model="clientsBulkModal.flow" :dropdown-class-name="themeSwitcher.currentTheme">
+ <a-select-option value="" selected>{{ i18n "none" }}</a-select-option>
+ <a-select-option v-for="key in XTLS_FLOW_CONTROL" :value="key">[[ key ]]</a-select-option>
+ </a-select>
+ </a-form-item>
+ <a-form-item v-if="app.subSettings.enable">
+ <template slot="label">
+ <a-tooltip>
+ <template slot="title">
+ <span>{{ i18n "pages.inbounds.subscriptionDesc" }}</span>
+ </template>
+ Subscription
+ <a-icon @click="clientsBulkModal.subId = RandomUtil.randomLowerAndNum(16)" type="sync"></a-icon>
+ </a-tooltip>
+ </template>
+ <a-input v-model.trim="clientsBulkModal.subId"></a-input>
+ </a-form-item>
+ <a-form-item v-if="app.tgBotEnable">
+ <template slot="label">
+ <a-tooltip>
+ <template slot="title">
+ <span>{{ i18n "pages.inbounds.telegramDesc" }}</span>
+ </template>
+ Telegram ID
+ <a-icon type="question-circle" theme="filled"></a-icon>
+ </a-tooltip>
+ </template>
+ <a-input v-model.trim="clientsBulkModal.tgId"></a-input>
+ </a-form-item>
+ <a-form-item>
+ <template slot="label">
+ <a-tooltip>
+ <template slot="title">
+ <span>{{ i18n "pages.inbounds.IPLimitDesc" }}</span>
+ </template>
+ <span>{{ i18n "pages.inbounds.IPLimit" }} </span>
+ <a-icon type="question-circle" theme="filled"></a-icon>
+ </a-tooltip>
+ </template>
+ <a-input-number v-model="clientsBulkModal.limitIp" min="0"></a-input-number>
+ </a-form-item>
+ <a-form-item>
+ <template slot="label">
+ <a-tooltip>
+ <template slot="title">
+ 0 <span>{{ i18n "pages.inbounds.meansNoLimit" }}</span>
+ </template>
+ {{ i18n "pages.inbounds.totalFlow" }} (GB)
+ <a-icon type="question-circle" theme="filled"></a-icon>
+ </a-tooltip>
+ </template>
+ <a-input-number v-model="clientsBulkModal.totalGB" :min="0"></a-input-number>
+ </a-form-item>
+ <a-form-item label='{{ i18n "pages.client.delayedStart" }}'>
+ <a-switch v-model="clientsBulkModal.delayedStart" @click="clientsBulkModal.expiryTime=0"></a-switch>
+ </a-form-item>
+ <a-form-item label='{{ i18n "pages.client.expireDays" }}' v-if="clientsBulkModal.delayedStart">
+ <a-input-number v-model.number="delayedExpireDays" :min="0"></a-input-number>
+ </a-form-item>
+ <a-form-item v-else>
+ <template slot="label">
+ <a-tooltip>
+ <template slot="title">
+ <span>{{ i18n "pages.inbounds.leaveBlankToNeverExpire" }}</span>
+ </template>
+ {{ i18n "pages.inbounds.expireDate" }}
+ <a-icon type="question-circle" theme="filled"></a-icon>
+ </a-tooltip>
+ </template>
+ <a-date-picker :show-time="{ format: 'HH:mm:ss' }" format="YYYY-MM-DD HH:mm:ss"
+ :dropdown-class-name="themeSwitcher.currentTheme" v-model="clientsBulkModal.expiryTime"></a-date-picker>
+ </a-form-item>
+ <a-form-item v-if="clientsBulkModal.expiryTime != 0">
+ <template slot="label">
+ <span>{{ i18n "pages.client.renew" }}</span>
+ <a-tooltip>
+ <template slot="title">
+ <span>{{ i18n "pages.client.renewDesc" }}</span>
+ </template>
+ <a-icon type="question-circle" theme="filled"></a-icon>
+ </a-tooltip>
+ </template>
+ <a-input-number v-model.number="clientsBulkModal.reset" :min="0"></a-input-number>
+ </a-form-item>
</a-form>
</a-modal>
<script>