diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-05-04 14:20:24 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2026-05-04 14:20:24 +0300 |
| commit | e19061d513b8c4fb2207b4a553a96ea086089612 (patch) | |
| tree | 8a05450f0f6d3e8a2a182976b1a38bf5cca824ea /web/html/component | |
| parent | 51e2fb6dbfb6f3f21b3f578c15c3dc0d47c4a66e (diff) | |
TLS: Remove ECH Force Query
Diffstat (limited to 'web/html/component')
| -rw-r--r-- | web/html/component/aClientTable.html | 87 | ||||
| -rw-r--r-- | web/html/component/aCustomStatistic.html | 18 | ||||
| -rw-r--r-- | web/html/component/aPersianDatepicker.html | 5 | ||||
| -rw-r--r-- | web/html/component/aSettingListItem.html | 4 | ||||
| -rw-r--r-- | web/html/component/aSidebar.html | 7 | ||||
| -rw-r--r-- | web/html/component/aTableSortable.html | 19 | ||||
| -rw-r--r-- | web/html/component/aThemeSwitch.html | 6 |
7 files changed, 92 insertions, 54 deletions
diff --git a/web/html/component/aClientTable.html b/web/html/component/aClientTable.html index 0e32d45c..6e525396 100644 --- a/web/html/component/aClientTable.html +++ b/web/html/component/aClientTable.html @@ -2,30 +2,39 @@ <template slot="actions" slot-scope="text, client, index"> <a-tooltip> <template slot="title">{{ i18n "qrCode" }}</template> - <a-icon :style="{ fontSize: '22px', marginInlineStart: '14px' }" class="normal-icon" type="qrcode" v-if="record.hasLink()" @click="showQrcode(record.id,client);"></a-icon> + <a-icon :style="{ fontSize: '22px', marginInlineStart: '14px' }" class="normal-icon" type="qrcode" + v-if="record.hasLink()" @click="showQrcode(record.id,client);"></a-icon> </a-tooltip> <a-tooltip> <template slot="title">{{ i18n "pages.client.edit" }}</template> - <a-icon :style="{ fontSize: '22px' }" class="normal-icon" type="edit" @click="openEditClient(record.id,client);"></a-icon> + <a-icon :style="{ fontSize: '22px' }" class="normal-icon" type="edit" + @click="openEditClient(record.id,client);"></a-icon> </a-tooltip> <a-tooltip> <template slot="title">{{ i18n "info" }}</template> - <a-icon :style="{ fontSize: '22px' }" class="normal-icon" type="info-circle" @click="showInfo(record.id,client);"></a-icon> + <a-icon :style="{ fontSize: '22px' }" class="normal-icon" type="info-circle" + @click="showInfo(record.id,client);"></a-icon> </a-tooltip> <a-tooltip> <template slot="title">{{ i18n "pages.inbounds.resetTraffic" }}</template> - <a-popconfirm @confirm="resetClientTraffic(client,record.id,false)" title='{{ i18n "pages.inbounds.resetTrafficContent"}}' :overlay-class-name="themeSwitcher.currentTheme" ok-text='{{ i18n "reset"}}' cancel-text='{{ i18n "cancel"}}'> + <a-popconfirm @confirm="resetClientTraffic(client,record.id,false)" + title='{{ i18n "pages.inbounds.resetTrafficContent"}}' :overlay-class-name="themeSwitcher.currentTheme" + ok-text='{{ i18n "reset"}}' cancel-text='{{ i18n "cancel"}}'> <a-icon slot="icon" type="question-circle-o" :style="{ color: 'var(--color-primary-100)'}"></a-icon> - <a-icon :style="{ fontSize: '22px', cursor: 'pointer' }" class="normal-icon" type="retweet" v-if="client.email.length > 0"></a-icon> + <a-icon :style="{ fontSize: '22px', cursor: 'pointer' }" class="normal-icon" type="retweet" + v-if="client.email.length > 0"></a-icon> </a-popconfirm> </a-tooltip> <a-tooltip> <template slot="title"> <span :style="{ color: '#FF4D4F' }"> {{ i18n "delete"}}</span> </template> - <a-popconfirm @confirm="delClient(record.id,client,false)" title='{{ i18n "pages.inbounds.deleteClientContent"}}' :overlay-class-name="themeSwitcher.currentTheme" ok-text='{{ i18n "delete"}}' ok-type="danger" cancel-text='{{ i18n "cancel"}}'> + <a-popconfirm @confirm="delClient(record.id,client,false)" title='{{ i18n "pages.inbounds.deleteClientContent"}}' + :overlay-class-name="themeSwitcher.currentTheme" ok-text='{{ i18n "delete"}}' ok-type="danger" + cancel-text='{{ i18n "cancel"}}'> <a-icon slot="icon" type="question-circle-o" :style="{ color: '#e04141' }"></a-icon> - <a-icon :style="{ fontSize: '22px', cursor: 'pointer' }" class="delete-icon" type="delete" v-if="isRemovable(record.id)"></a-icon> + <a-icon :style="{ fontSize: '22px', cursor: 'pointer' }" class="delete-icon" type="delete" + v-if="isRemovable(record.id)"></a-icon> </a-popconfirm> </a-tooltip> </template> @@ -34,7 +43,7 @@ </template> <template slot="online" slot-scope="text, client, index"> <a-popover :overlay-class-name="themeSwitcher.currentTheme"> - <template slot="content" > + <template slot="content"> {{ i18n "lastOnline" }}: [[ formatLastOnline(client.email) ]] </template> <template v-if="client.enable && isClientOnline(client.email)"> @@ -53,7 +62,8 @@ <template v-else-if="!client.enable">{{ i18n "disabled" }}</template> <template v-else-if="client.enable && isClientOnline(client.email)">{{ i18n "online" }}</template> </template> - <a-badge :class="isClientOnline(client.email)? 'online-animation' : ''" :color="client.enable ? statsExpColor(record, client.email) : themeSwitcher.isDarkTheme ? '#2c3950' : '#bcbcbc'"></a-badge> + <a-badge :class="isClientOnline(client.email)? 'online-animation' : ''" + :color="client.enable ? statsExpColor(record, client.email) : themeSwitcher.isDarkTheme ? '#2c3950' : '#bcbcbc'"></a-badge> </a-tooltip> <a-space direction="vertical" :size="2"> <span class="client-email">[[ client.email ]]</span> @@ -87,10 +97,13 @@ <tr class="tr-table-box"> <td class="tr-table-rt"> [[ SizeFormatter.sizeFormat(getSumStats(record, client.email)) ]] </td> <td class="tr-table-bar" v-if="!client.enable"> - <a-progress :stroke-color="themeSwitcher.isDarkTheme ? 'rgb(72 84 105)' : '#bcbcbc'" :show-info="false" :percent="statsProgress(record, client.email)" /> + <a-progress :stroke-color="themeSwitcher.isDarkTheme ? 'rgb(72 84 105)' : '#bcbcbc'" :show-info="false" + :percent="statsProgress(record, client.email)" /> </td> <td class="tr-table-bar" v-else-if="client.totalGB > 0"> - <a-progress :stroke-color="clientStatsColor(record, client.email)" :show-info="false" :status="isClientDepleted(record, client.email)? 'exception' : ''" :percent="statsProgress(record, client.email)" /> + <a-progress :stroke-color="clientStatsColor(record, client.email)" :show-info="false" + :status="isClientDepleted(record, client.email)? 'exception' : ''" + :percent="statsProgress(record, client.email)" /> </td> <td v-else class="infinite-bar tr-table-bar"> <a-progress :show-info="false" :percent="100"></a-progress> @@ -118,7 +131,8 @@ <tr class="tr-table-box"> <td class="tr-table-rt"> [[ IntlUtil.formatRelativeTime(client.expiryTime) ]] </td> <td class="infinite-bar tr-table-bar"> - <a-progress :show-info="false" :status="isClientDepleted(record, client.email)? 'exception' : ''" :percent="expireProgress(client.expiryTime, client.reset)" /> + <a-progress :show-info="false" :status="isClientDepleted(record, client.email)? 'exception' : ''" + :percent="expireProgress(client.expiryTime, client.reset)" /> </td> <td class="tr-table-lt">[[ client.reset + "d" ]]</td> </tr> @@ -131,11 +145,16 @@ <span v-if="client.expiryTime < 0">{{ i18n "pages.client.delayedStart" }}</span> <span v-else>[[ IntlUtil.formatDate(client.expiryTime) ]]</span> </template> - <a-tag :style="{ minWidth: '50px', border: 'none' }" :color="ColorUtils.userExpiryColor(app.expireDiff, client, themeSwitcher.isDarkTheme)"> [[ IntlUtil.formatRelativeTime(client.expiryTime) ]] </a-tag> + <a-tag :style="{ minWidth: '50px', border: 'none' }" + :color="ColorUtils.userExpiryColor(app.expireDiff, client, themeSwitcher.isDarkTheme)"> [[ + IntlUtil.formatRelativeTime(client.expiryTime) ]] </a-tag> </a-popover> - <a-tag v-else :color="ColorUtils.userExpiryColor(app.expireDiff, client, themeSwitcher.isDarkTheme)" :style="{ border: 'none' }" class="infinite-tag"> + <a-tag v-else :color="ColorUtils.userExpiryColor(app.expireDiff, client, themeSwitcher.isDarkTheme)" + :style="{ border: 'none' }" class="infinite-tag"> <svg height="10px" width="14px" viewBox="0 0 640 512" fill="currentColor"> - <path d="M484.4 96C407 96 349.2 164.1 320 208.5C290.8 164.1 233 96 155.6 96C69.75 96 0 167.8 0 256s69.75 160 155.6 160C233.1 416 290.8 347.9 320 303.5C349.2 347.9 407 416 484.4 416C570.3 416 640 344.2 640 256S570.3 96 484.4 96zM155.6 368C96.25 368 48 317.8 48 256s48.25-112 107.6-112c67.75 0 120.5 82.25 137.1 112C276 285.8 223.4 368 155.6 368zM484.4 368c-67.75 0-120.5-82.25-137.1-112C364 226.2 416.6 144 484.4 144C543.8 144 592 194.2 592 256S543.8 368 484.4 368z" fill="currentColor"></path> + <path + d="M484.4 96C407 96 349.2 164.1 320 208.5C290.8 164.1 233 96 155.6 96C69.75 96 0 167.8 0 256s69.75 160 155.6 160C233.1 416 290.8 347.9 320 303.5C349.2 347.9 407 416 484.4 416C570.3 416 640 344.2 640 256S570.3 96 484.4 96zM155.6 368C96.25 368 48 317.8 48 256s48.25-112 107.6-112c67.75 0 120.5 82.25 137.1 112C276 285.8 223.4 368 155.6 368zM484.4 368c-67.75 0-120.5-82.25-137.1-112C364 226.2 416.6 144 484.4 144C543.8 144 592 194.2 592 256S543.8 368 484.4 368z" + fill="currentColor"></path> </svg> </a-tag> </template> @@ -165,7 +184,8 @@ <span :style="{ color: '#FF4D4F' }"> {{ i18n "delete"}}</span> </a-menu-item> <a-menu-item> - <a-switch v-model="client.enable" size="small" @change="switchEnableClient(record.id, client, $event)"></a-switch> + <a-switch v-model="client.enable" size="small" + @change="switchEnableClient(record.id, client, $event)"></a-switch> {{ i18n "enable"}} </a-menu-item> </a-menu> @@ -179,9 +199,11 @@ <td colspan="3" :style="{ textAlign: 'center' }">{{ i18n "pages.inbounds.traffic" }}</td> </tr> <tr> - <td width="80px" :style="{ margin: '0', textAlign: 'right', fontSize: '1em' }"> [[ SizeFormatter.sizeFormat(getUpStats(record, client.email) + getDownStats(record, client.email)) ]] </td> + <td width="80px" :style="{ margin: '0', textAlign: 'right', fontSize: '1em' }"> [[ + SizeFormatter.sizeFormat(getUpStats(record, client.email) + getDownStats(record, client.email)) ]] </td> <td width="120px" v-if="!client.enable"> - <a-progress :stroke-color="themeSwitcher.isDarkTheme ? 'rgb(72 84 105)' : '#bcbcbc'" :show-info="false" :percent="statsProgress(record, client.email)" /> + <a-progress :stroke-color="themeSwitcher.isDarkTheme ? 'rgb(72 84 105)' : '#bcbcbc'" :show-info="false" + :percent="statsProgress(record, client.email)" /> </td> <td width="120px" v-else-if="client.totalGB > 0"> <a-popover :overlay-class-name="themeSwitcher.currentTheme"> @@ -197,11 +219,14 @@ </tr> </table> </template> - <a-progress :stroke-color="clientStatsColor(record, client.email)" :show-info="false" :status="isClientDepleted(record, client.email)? 'exception' : ''" :percent="statsProgress(record, client.email)" /> + <a-progress :stroke-color="clientStatsColor(record, client.email)" :show-info="false" + :status="isClientDepleted(record, client.email)? 'exception' : ''" + :percent="statsProgress(record, client.email)" /> </a-popover> </td> <td width="120px" v-else class="infinite-bar"> - <a-progress :stroke-color="themeSwitcher.isDarkTheme ? '#2c1e32':'#F2EAF1'" :show-info="false" :percent="100"></a-progress> + <a-progress :stroke-color="themeSwitcher.isDarkTheme ? '#2c1e32':'#F2EAF1'" :show-info="false" + :percent="100"></a-progress> </td> <td width="80px"> <template v-if="client.totalGB > 0">[[ client._totalGB + "GB" ]]</template> @@ -216,14 +241,16 @@ </tr> <tr> <template v-if="client.expiryTime !=0 && client.reset >0"> - <td width="80px" :style="{ margin: '0', textAlign: 'right', fontSize: '1em' }"> [[ IntlUtil.formatRelativeTime(client.expiryTime) ]] </td> + <td width="80px" :style="{ margin: '0', textAlign: 'right', fontSize: '1em' }"> [[ + IntlUtil.formatRelativeTime(client.expiryTime) ]] </td> <td width="120px" class="infinite-bar"> <a-popover :overlay-class-name="themeSwitcher.currentTheme"> <template slot="content"> <span v-if="client.expiryTime < 0">{{ i18n "pages.client.delayedStart" }}</span> <span v-else>[[ IntlUtil.formatDate(client.expiryTime) ]]</span> </template> - <a-progress :show-info="false" :status="isClientDepleted(record, client.email)? 'exception' : ''" :percent="expireProgress(client.expiryTime, client.reset)" /> + <a-progress :show-info="false" :status="isClientDepleted(record, client.email)? 'exception' : ''" + :percent="expireProgress(client.expiryTime, client.reset)" /> </a-popover> </td> <td width="60px">[[ client.reset + "d" ]]</td> @@ -235,11 +262,16 @@ <span v-if="client.expiryTime < 0">{{ i18n "pages.client.delayedStart" }}</span> <span v-else>[[ IntlUtil.formatDate(client.expiryTime) ]]</span> </template> - <a-tag :style="{ minWidth: '50px', border: 'none' }" :color="ColorUtils.userExpiryColor(app.expireDiff, client, themeSwitcher.isDarkTheme)"> [[ IntlUtil.formatRelativeTime(client.expiryTime) ]] </a-tag> + <a-tag :style="{ minWidth: '50px', border: 'none' }" + :color="ColorUtils.userExpiryColor(app.expireDiff, client, themeSwitcher.isDarkTheme)"> [[ + IntlUtil.formatRelativeTime(client.expiryTime) ]] </a-tag> </a-popover> - <a-tag v-else :color="client.enable ? 'purple' : themeSwitcher.isDarkTheme ? '#2c3950' : '#bcbcbc'" class="infinite-tag"> + <a-tag v-else :color="client.enable ? 'purple' : themeSwitcher.isDarkTheme ? '#2c3950' : '#bcbcbc'" + class="infinite-tag"> <svg height="10px" width="14px" viewBox="0 0 640 512" fill="currentColor"> - <path d="M484.4 96C407 96 349.2 164.1 320 208.5C290.8 164.1 233 96 155.6 96C69.75 96 0 167.8 0 256s69.75 160 155.6 160C233.1 416 290.8 347.9 320 303.5C349.2 347.9 407 416 484.4 416C570.3 416 640 344.2 640 256S570.3 96 484.4 96zM155.6 368C96.25 368 48 317.8 48 256s48.25-112 107.6-112c67.75 0 120.5 82.25 137.1 112C276 285.8 223.4 368 155.6 368zM484.4 368c-67.75 0-120.5-82.25-137.1-112C364 226.2 416.6 144 484.4 144C543.8 144 592 194.2 592 256S543.8 368 484.4 368z" fill="currentColor"></path> + <path + d="M484.4 96C407 96 349.2 164.1 320 208.5C290.8 164.1 233 96 155.6 96C69.75 96 0 167.8 0 256s69.75 160 155.6 160C233.1 416 290.8 347.9 320 303.5C349.2 347.9 407 416 484.4 416C570.3 416 640 344.2 640 256S570.3 96 484.4 96zM155.6 368C96.25 368 48 317.8 48 256s48.25-112 107.6-112c67.75 0 120.5 82.25 137.1 112C276 285.8 223.4 368 155.6 368zM484.4 368c-67.75 0-120.5-82.25-137.1-112C364 226.2 416.6 144 484.4 144C543.8 144 592 194.2 592 256S543.8 368 484.4 368z" + fill="currentColor"></path> </svg> </a-tag> </template> @@ -248,7 +280,8 @@ </table> </template> <a-badge> - <a-icon v-if="!client.enable" slot="count" type="pause-circle" theme="filled" :style="{ color: themeSwitcher.isDarkTheme ? '#2c3950' : '#bcbcbc' }"></a-icon> + <a-icon v-if="!client.enable" slot="count" type="pause-circle" theme="filled" + :style="{ color: themeSwitcher.isDarkTheme ? '#2c3950' : '#bcbcbc' }"></a-icon> <a-button shape="round" size="small" :style="{ fontSize: '14px', padding: '0 10px' }"> <a-icon type="solution"></a-icon> </a-button> @@ -271,4 +304,4 @@ - </template> </template> -{{end}} +{{end}}
\ No newline at end of file diff --git a/web/html/component/aCustomStatistic.html b/web/html/component/aCustomStatistic.html index 0bff128d..e9bfe83b 100644 --- a/web/html/component/aCustomStatistic.html +++ b/web/html/component/aCustomStatistic.html @@ -1,13 +1,13 @@ {{define "component/customStatistic"}} <template> - <a-statistic :title="title" :value="value"> - <template #prefix> - <slot name="prefix"></slot> - </template> - <template #suffix> - <slot name="suffix"></slot> - </template> - </a-statistic> + <a-statistic :title="title" :value="value"> + <template #prefix> + <slot name="prefix"></slot> + </template> + <template #suffix> + <slot name="suffix"></slot> + </template> + </a-statistic> </template> {{end}} @@ -16,9 +16,11 @@ .dark .ant-statistic-content { color: var(--dark-color-text-primary) } + .dark .ant-statistic-title { color: rgba(255, 255, 255, 0.55) } + .ant-statistic-content { font-size: 16px; } diff --git a/web/html/component/aPersianDatepicker.html b/web/html/component/aPersianDatepicker.html index ebd85a08..e8b09b92 100644 --- a/web/html/component/aPersianDatepicker.html +++ b/web/html/component/aPersianDatepicker.html @@ -42,7 +42,7 @@ }; }, watch: { - value: function (date) { + value: function(date) { this.date = this.convertToJalalian(date) } }, @@ -52,7 +52,8 @@ }, methods: { convertToGregorian(date) { - return date ? moment(moment(date, 'jYYYY/jMM/jDD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')) : null + return date ? moment(moment(date, 'jYYYY/jMM/jDD HH:mm:ss').format('YYYY-MM-DD HH:mm:ss')) : + null }, convertToJalalian(date) { return date && moment.isMoment(date) ? date.format('jYYYY/jMM/jDD HH:mm:ss') : null diff --git a/web/html/component/aSettingListItem.html b/web/html/component/aSettingListItem.html index 27a7abac..7ad13456 100644 --- a/web/html/component/aSettingListItem.html +++ b/web/html/component/aSettingListItem.html @@ -26,7 +26,7 @@ type: String, required: false, defaultValue: "default", - validator: function (value) { + validator: function(value) { return ['small', 'default'].includes(value) } } @@ -46,4 +46,4 @@ } }) </script> -{{end}} +{{end}}
\ No newline at end of file diff --git a/web/html/component/aSidebar.html b/web/html/component/aSidebar.html index b69c8f3f..9c89a96d 100644 --- a/web/html/component/aSidebar.html +++ b/web/html/component/aSidebar.html @@ -43,8 +43,7 @@ Vue.component('a-sidebar', { data() { return { - tabs: [ - { + tabs: [{ key: '{{ .base_path }}panel/', icon: 'dashboard', title: '{{ i18n "menu.dashboard"}}' @@ -79,8 +78,8 @@ }, methods: { openLink(key) { - return key.startsWith('http') ? - window.open(key) : + return key.startsWith('http') ? + window.open(key) : location.href = key }, closeDrawer() { diff --git a/web/html/component/aTableSortable.html b/web/html/component/aTableSortable.html index 4abad8ef..b3606527 100644 --- a/web/html/component/aTableSortable.html +++ b/web/html/component/aTableSortable.html @@ -1,6 +1,6 @@ {{define "component/sortableTableTrigger"}} -<a-icon type="drag" class="sortable-icon" :style="{ cursor: 'move' }" @mouseup="mouseUpHandler" @mousedown="mouseDownHandler" - @click="clickHandler" /> +<a-icon type="drag" class="sortable-icon" :style="{ cursor: 'move' }" @mouseup="mouseUpHandler" + @mousedown="mouseDownHandler" @click="clickHandler" /> {{end}} {{define "component/aTableSortable"}} @@ -49,7 +49,7 @@ sortable, } }, - render: function (createElement) { + render: function(createElement) { return createElement('a-table', { class: { 'ant-table-is-sorting': this.isDragging(), @@ -64,12 +64,12 @@ drop: (e) => this.dropHandler(e), }, scopedSlots: this.$scopedSlots, - locale: { - filterConfirm: `{{ i18n "confirm" }}`, - filterReset: `{{ i18n "reset" }}`, - emptyText: `{{ i18n "noData" }}` + locale: { + filterConfirm: `{{ i18n "confirm" }}`, + filterReset: `{{ i18n "reset" }}`, + emptyText: `{{ i18n "noData" }}` } - }, this.$slots.default,) + }, this.$slots.default, ) }, created() { this.$memoSort = {}; @@ -148,7 +148,8 @@ class: { ...(parentMethodResult?.class || {}), [DRAGGABLE_ROW_CLASS]: true, - ['dragging']: this.isDragging() ? (newIndex === null ? index === currentIndex : index === newIndex) : false, + ['dragging']: this.isDragging() ? (newIndex === null ? index === currentIndex : index === newIndex) : + false, }, }; } diff --git a/web/html/component/aThemeSwitch.html b/web/html/component/aThemeSwitch.html index ca340da3..2107e5a8 100644 --- a/web/html/component/aThemeSwitch.html +++ b/web/html/component/aThemeSwitch.html @@ -24,9 +24,11 @@ {{define "component/themeSwitchTemplateLogin"}} <template> - <a-space @mousedown="themeSwitcher.animationsOff()" id="change-theme" direction="vertical" :size="10" :style="{ width: '100%' }"> + <a-space @mousedown="themeSwitcher.animationsOff()" id="change-theme" direction="vertical" :size="10" + :style="{ width: '100%' }"> <a-space direction="horizontal" size="small"> - <a-switch size="small" :default-checked="themeSwitcher.isDarkTheme" @change="themeSwitcher.toggleTheme()"></a-switch> + <a-switch size="small" :default-checked="themeSwitcher.isDarkTheme" + @change="themeSwitcher.toggleTheme()"></a-switch> <span>{{ i18n "menu.dark" }}</span> </a-space> <a-space v-if="themeSwitcher.isDarkTheme" direction="horizontal" size="small"> |
