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:
authorShishkevich D. <135337715+shishkevichd@users.noreply.github.com>2025-04-06 12:40:33 +0300
committerGitHub <noreply@github.com>2025-04-06 12:40:33 +0300
commitbea19a263db88fef44b4356082b199fbfcc39a25 (patch)
treea111e9328c6273ad9721118238c40cf3004f72a9 /web/html/form/protocol/trojan.html
parent878e0d02cd01a045f4f32464124c59e24f98aedd (diff)
Code refactoring (#2865)
* refactor: use vue inline styles in entire application * refactor: setting row in dashboard page * refactor: use blob for download file in text modal * refactor: move all html templates in `web/html` folder * refactor: `DeviceUtils` -> `MediaQueryMixin` The transition to mixins has been made, as they can update themselves. * chore: pretty right buttons in `outbounds` tab in xray settings * refactor: add translations for system status * refactor: adjust gutter spacing in setting list item * refactor: use native `a-input-password` for password field * chore: return old system status with new translations * chore: add missing translation
Diffstat (limited to 'web/html/form/protocol/trojan.html')
-rw-r--r--web/html/form/protocol/trojan.html50
1 files changed, 50 insertions, 0 deletions
diff --git a/web/html/form/protocol/trojan.html b/web/html/form/protocol/trojan.html
new file mode 100644
index 00000000..fc327721
--- /dev/null
+++ b/web/html/form/protocol/trojan.html
@@ -0,0 +1,50 @@
+{{define "form/trojan"}}
+<a-collapse activeKey="0" v-for="(client, index) in inbound.settings.trojans.slice(0,1)" v-if="!isEdit">
+ <a-collapse-panel header='{{ i18n "pages.inbounds.client" }}'>
+ {{template "form/client"}}
+ </a-collapse-panel>
+</a-collapse>
+<a-collapse v-else>
+ <a-collapse-panel :header="'{{ i18n "pages.client.clientCount"}} : ' + inbound.settings.trojans.length">
+ <table width="100%">
+ <tr class="client-table-header">
+ <th>{{ i18n "pages.inbounds.email" }}</th>
+ <th>Password</th>
+ </tr>
+ <tr v-for="(client, index) in inbound.settings.trojans" :class="index % 2 == 1 ? 'client-table-odd-row' : ''">
+ <td>[[ client.email ]]</td>
+ <td>[[ client.password ]]</td>
+ </tr>
+ </table>
+ </a-collapse-panel>
+</a-collapse>
+<template v-if="inbound.isTcp">
+ <a-form :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
+ <a-form-item label="Fallbacks">
+ <a-button icon="plus" type="primary" size="small" @click="inbound.settings.addFallback()"></a-button>
+ </a-form-item>
+ </a-form>
+
+ <!-- trojan fallbacks -->
+ <a-form v-for="(fallback, index) in inbound.settings.fallbacks" :colon="false" :label-col="{ md: {span:8} }" :wrapper-col="{ md: {span:14} }">
+ <a-divider :style="{ margin: '0' }"> Fallback [[ index + 1 ]] <a-icon type="delete" @click="() => inbound.settings.delFallback(index)" :style="{ color: 'rgb(255, 77, 79)', cursor: 'pointer' }"></a-icon>
+ </a-divider>
+ <a-form-item label='SNI'>
+ <a-input v-model="fallback.name"></a-input>
+ </a-form-item>
+ <a-form-item label='ALPN'>
+ <a-input v-model="fallback.alpn"></a-input>
+ </a-form-item>
+ <a-form-item label='Path'>
+ <a-input v-model="fallback.path"></a-input>
+ </a-form-item>
+ <a-form-item label='Dest'>
+ <a-input v-model="fallback.dest"></a-input>
+ </a-form-item>
+ <a-form-item label='xVer'>
+ <a-input-number v-model.number="fallback.xver" :min="0" :max="2"></a-input-number>
+ </a-form-item>
+ </a-form>
+ <a-divider style="margin:5px 0;"></a-divider>
+</template>
+{{end}}