diff --git a/web/src/components/common/ServiceStatus.vue b/web/src/components/common/ServiceStatus.vue
index 63d1bd7b..d1efc05f 100644
--- a/web/src/components/common/ServiceStatus.vue
+++ b/web/src/components/common/ServiceStatus.vue
@@ -148,20 +148,17 @@ onMounted(() => {
-
{{ $gettext('Start') }}
-
{{ $gettext('Stop') }}
{{ $gettext('Are you sure you want to stop %{ service }?', { service: props.service }) }}
-
{{ $gettext('Restart') }}
{
v-model:disabled="fetchingStatus"
@click="handleReload"
>
-
{{ $gettext('Reload') }}
diff --git a/web/src/views/app/IndexView.vue b/web/src/views/app/IndexView.vue
index 406a0515..83ffb30b 100644
--- a/web/src/views/app/IndexView.vue
+++ b/web/src/views/app/IndexView.vue
@@ -11,7 +11,6 @@ import { useGettext } from 'vue3-gettext'
import app from '@/api/panel/app'
import TheIcon from '@/components/custom/TheIcon.vue'
import { router } from '@/router'
-import { renderIcon } from '@/utils'
const { $gettext } = useGettext()
@@ -93,10 +92,7 @@ const columns: any = [
type: 'warning'
},
{
- default: () => $gettext('Update'),
- icon: renderIcon('material-symbols:arrow-circle-up-outline-rounded', {
- size: 14
- })
+ default: () => $gettext('Update')
}
)
}
@@ -112,8 +108,7 @@ const columns: any = [
onClick: () => handleManage(row.slug)
},
{
- default: () => $gettext('Manage'),
- icon: renderIcon('material-symbols:settings-outline', { size: 14 })
+ default: () => $gettext('Manage')
}
)
: null,
@@ -135,8 +130,7 @@ const columns: any = [
type: 'error'
},
{
- default: () => $gettext('Uninstall'),
- icon: renderIcon('material-symbols:delete-outline', { size: 14 })
+ default: () => $gettext('Uninstall')
}
)
}
@@ -156,8 +150,7 @@ const columns: any = [
}
},
{
- default: () => $gettext('Install'),
- icon: renderIcon('material-symbols:download-rounded', { size: 14 })
+ default: () => $gettext('Install')
}
)
: null
@@ -220,7 +213,6 @@ onMounted(() => {
-
{{ $gettext('Update Cache') }}
diff --git a/web/src/views/apps/codeserver/IndexView.vue b/web/src/views/apps/codeserver/IndexView.vue
index 11862441..ab80146e 100644
--- a/web/src/views/apps/codeserver/IndexView.vue
+++ b/web/src/views/apps/codeserver/IndexView.vue
@@ -35,7 +35,6 @@ const handleSaveConfig = () => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/docker/IndexView.vue b/web/src/views/apps/docker/IndexView.vue
index c895c18c..6b05a423 100644
--- a/web/src/views/apps/docker/IndexView.vue
+++ b/web/src/views/apps/docker/IndexView.vue
@@ -35,7 +35,6 @@ const handleSaveConfig = () => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/fail2ban/IndexView.vue b/web/src/views/apps/fail2ban/IndexView.vue
index d1fd19c4..b037cfea 100644
--- a/web/src/views/apps/fail2ban/IndexView.vue
+++ b/web/src/views/apps/fail2ban/IndexView.vue
@@ -10,7 +10,6 @@ import fail2ban from '@/api/apps/fail2ban'
import app from '@/api/panel/app'
import website from '@/api/panel/website'
import ServiceStatus from '@/components/common/ServiceStatus.vue'
-import { renderIcon } from '@/utils'
const { $gettext } = useGettext()
const currentTab = ref('status')
@@ -75,8 +74,7 @@ const jailsColumns: any = [
}
},
{
- default: () => $gettext('View'),
- icon: renderIcon('material-symbols:visibility', { size: 14 })
+ default: () => $gettext('View')
}
),
h(
@@ -97,8 +95,7 @@ const jailsColumns: any = [
style: 'margin-left: 15px'
},
{
- default: () => $gettext('Delete'),
- icon: renderIcon('material-symbols:delete-outline', { size: 14 })
+ default: () => $gettext('Delete')
}
)
}
@@ -141,8 +138,7 @@ const banedIPColumns: any = [
type: 'error'
},
{
- default: () => $gettext('Unban'),
- icon: renderIcon('material-symbols:delete-outline', { size: 14 })
+ default: () => $gettext('Unban')
}
)
}
@@ -235,7 +231,6 @@ onMounted(() => {
type="primary"
@click="handleSaveWhiteList"
>
-
{{ $gettext('Save Whitelist') }}
{
type="primary"
@click="addJailModal = true"
>
-
{{ $gettext('Add Rule') }}
diff --git a/web/src/views/apps/frp/IndexView.vue b/web/src/views/apps/frp/IndexView.vue
index 88e18904..f369d971 100644
--- a/web/src/views/apps/frp/IndexView.vue
+++ b/web/src/views/apps/frp/IndexView.vue
@@ -44,7 +44,6 @@ onMounted(() => {
-
{{ $gettext('Save') }}
@@ -69,7 +68,6 @@ onMounted(() => {
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/gitea/IndexView.vue b/web/src/views/apps/gitea/IndexView.vue
index 69fd9866..e8f003fc 100644
--- a/web/src/views/apps/gitea/IndexView.vue
+++ b/web/src/views/apps/gitea/IndexView.vue
@@ -33,7 +33,6 @@ const handleSaveConfig = () => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/memcached/IndexView.vue b/web/src/views/apps/memcached/IndexView.vue
index f5d5e340..5fba1e4f 100644
--- a/web/src/views/apps/memcached/IndexView.vue
+++ b/web/src/views/apps/memcached/IndexView.vue
@@ -55,7 +55,6 @@ const handleSaveConfig = () => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/minio/IndexView.vue b/web/src/views/apps/minio/IndexView.vue
index e472295b..656f6085 100644
--- a/web/src/views/apps/minio/IndexView.vue
+++ b/web/src/views/apps/minio/IndexView.vue
@@ -28,7 +28,6 @@ const handleSaveEnv = () => {
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/mysql/IndexView.vue b/web/src/views/apps/mysql/IndexView.vue
index 3ac4b1b2..ddcbc6ac 100644
--- a/web/src/views/apps/mysql/IndexView.vue
+++ b/web/src/views/apps/mysql/IndexView.vue
@@ -75,7 +75,6 @@ const handleSetRootPassword = async () => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
{
type="primary"
@click="handleClearErrorLog"
>
-
{{ $gettext('Clear Log') }}
{
type="primary"
@click="handleClearSlowLog"
>
-
{{ $gettext('Clear Slow Log') }}
diff --git a/web/src/views/apps/nginx/IndexView.vue b/web/src/views/apps/nginx/IndexView.vue
index ec2cba71..d096dd2f 100644
--- a/web/src/views/apps/nginx/IndexView.vue
+++ b/web/src/views/apps/nginx/IndexView.vue
@@ -61,7 +61,6 @@ const handleClearErrorLog = () => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
{
type="primary"
@click="handleClearErrorLog"
>
-
{{ $gettext('Clear Log') }}
diff --git a/web/src/views/apps/php/PhpView.vue b/web/src/views/apps/php/PhpView.vue
index d4f7fe48..a55a3fae 100644
--- a/web/src/views/apps/php/PhpView.vue
+++ b/web/src/views/apps/php/PhpView.vue
@@ -5,7 +5,6 @@ import { useGettext } from 'vue3-gettext'
import php from '@/api/apps/php'
import ServiceStatus from '@/components/common/ServiceStatus.vue'
-import { renderIcon } from '@/utils'
const { $gettext } = useGettext()
const props = defineProps({
@@ -78,8 +77,7 @@ const extensionColumns: any = [
type: 'info'
},
{
- default: () => $gettext('Install'),
- icon: renderIcon('material-symbols:download-rounded', { size: 14 })
+ default: () => $gettext('Install')
}
)
}
@@ -106,8 +104,7 @@ const extensionColumns: any = [
type: 'error'
},
{
- default: () => $gettext('Delete'),
- icon: renderIcon('material-symbols:delete-outline', { size: 14 })
+ default: () => $gettext('Delete')
}
)
}
@@ -190,7 +187,6 @@ const handleUninstallExtension = async (name: string) => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
{
type="primary"
@click="handleSaveFPMConfig"
>
-
{{ $gettext('Save') }}
{
type="primary"
@click="handleClearErrorLog"
>
-
{{ $gettext('Clear Error Log') }}
{
type="primary"
@click="handleClearSlowLog"
>
-
{{ $gettext('Clear Slow Log') }}
diff --git a/web/src/views/apps/phpmyadmin/IndexView.vue b/web/src/views/apps/phpmyadmin/IndexView.vue
index 69c4a046..bd51d9ea 100644
--- a/web/src/views/apps/phpmyadmin/IndexView.vue
+++ b/web/src/views/apps/phpmyadmin/IndexView.vue
@@ -54,7 +54,6 @@ onMounted(() => {
-
{{ $gettext('Save') }}
{
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/podman/IndexView.vue b/web/src/views/apps/podman/IndexView.vue
index 441c4d38..57f45125 100644
--- a/web/src/views/apps/podman/IndexView.vue
+++ b/web/src/views/apps/podman/IndexView.vue
@@ -43,7 +43,6 @@ const handleSaveStorageConfig = () => {
type="primary"
@click="handleSaveRegistryConfig"
>
-
{{ $gettext('Save') }}
{
type="primary"
@click="handleSaveStorageConfig"
>
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/postgresql/IndexView.vue b/web/src/views/apps/postgresql/IndexView.vue
index 1659a509..83e0e2e1 100644
--- a/web/src/views/apps/postgresql/IndexView.vue
+++ b/web/src/views/apps/postgresql/IndexView.vue
@@ -67,7 +67,6 @@ const handleClearLog = async () => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
{
type="primary"
@click="handleSaveUserConfig"
>
-
{{ $gettext('Save') }}
-
{{ $gettext('Clear Log') }}
diff --git a/web/src/views/apps/pureftpd/IndexView.vue b/web/src/views/apps/pureftpd/IndexView.vue
index bb8d18dd..8d923c87 100644
--- a/web/src/views/apps/pureftpd/IndexView.vue
+++ b/web/src/views/apps/pureftpd/IndexView.vue
@@ -8,7 +8,7 @@ import { useGettext } from 'vue3-gettext'
import pureftpd from '@/api/apps/pureftpd'
import ServiceStatus from '@/components/common/ServiceStatus.vue'
-import { generateRandomString, renderIcon } from '@/utils'
+import { generateRandomString } from '@/utils'
const { $gettext } = useGettext()
const currentTab = ref('status')
@@ -62,8 +62,7 @@ const userColumns: any = [
}
},
{
- default: () => $gettext('Change Password'),
- icon: renderIcon('material-symbols:key-outline', { size: 14 })
+ default: () => $gettext('Change Password')
}
),
h(
@@ -86,8 +85,7 @@ const userColumns: any = [
style: 'margin-left: 15px'
},
{
- default: () => $gettext('Delete'),
- icon: renderIcon('material-symbols:delete-outline', { size: 14 })
+ default: () => $gettext('Delete')
}
)
}
@@ -158,7 +156,6 @@ onMounted(() => {
-
{{ $gettext('Save') }}
{
type="primary"
@click="addUserModal = true"
>
-
{{ $gettext('Add User') }}
diff --git a/web/src/views/apps/redis/IndexView.vue b/web/src/views/apps/redis/IndexView.vue
index 26186dd5..f71727e1 100644
--- a/web/src/views/apps/redis/IndexView.vue
+++ b/web/src/views/apps/redis/IndexView.vue
@@ -52,7 +52,6 @@ const handleSaveConfig = () => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
diff --git a/web/src/views/apps/rsync/IndexView.vue b/web/src/views/apps/rsync/IndexView.vue
index 9a88fb72..a4d80fae 100644
--- a/web/src/views/apps/rsync/IndexView.vue
+++ b/web/src/views/apps/rsync/IndexView.vue
@@ -9,7 +9,7 @@ import { useGettext } from 'vue3-gettext'
import rsync from '@/api/apps/rsync'
import ServiceStatus from '@/components/common/ServiceStatus.vue'
-import { generateRandomString, renderIcon } from '@/utils'
+import { generateRandomString } from '@/utils'
const { $gettext } = useGettext()
const currentTab = ref('status')
@@ -80,8 +80,7 @@ const processColumns: any = [
onClick: () => handleModelEdit(row)
},
{
- default: () => $gettext('Configure'),
- icon: renderIcon('material-symbols:settings-outline', { size: 14 })
+ default: () => $gettext('Configure')
}
),
h(
@@ -104,8 +103,7 @@ const processColumns: any = [
style: 'margin-left: 15px'
},
{
- default: () => $gettext('Delete'),
- icon: renderIcon('material-symbols:delete-outline', { size: 14 })
+ default: () => $gettext('Delete')
}
)
}
@@ -197,7 +195,6 @@ onMounted(() => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
{
type="primary"
@click="addModuleModal = true"
>
-
{{ $gettext('Add Module') }}
diff --git a/web/src/views/apps/s3fs/IndexView.vue b/web/src/views/apps/s3fs/IndexView.vue
index ae14876f..c65ea527 100644
--- a/web/src/views/apps/s3fs/IndexView.vue
+++ b/web/src/views/apps/s3fs/IndexView.vue
@@ -7,7 +7,6 @@ import { NButton, NDataTable, NInput, NPopconfirm } from 'naive-ui'
import { useGettext } from 'vue3-gettext'
import s3fs from '@/api/apps/s3fs'
-import { renderIcon } from '@/utils'
const { $gettext } = useGettext()
const addMountModal = ref(false)
@@ -55,8 +54,7 @@ const columns: any = [
type: 'error'
},
{
- default: () => $gettext('Unmount'),
- icon: renderIcon('material-symbols:delete-outline', { size: 14 })
+ default: () => $gettext('Unmount')
}
)
}
@@ -101,7 +99,6 @@ onMounted(() => {
-
{{ $gettext('Add Mount') }}
diff --git a/web/src/views/apps/supervisor/IndexView.vue b/web/src/views/apps/supervisor/IndexView.vue
index 422f5731..54489a46 100644
--- a/web/src/views/apps/supervisor/IndexView.vue
+++ b/web/src/views/apps/supervisor/IndexView.vue
@@ -9,7 +9,6 @@ import { useGettext } from 'vue3-gettext'
import supervisor from '@/api/apps/supervisor'
import ServiceStatus from '@/components/common/ServiceStatus.vue'
-import { renderIcon } from '@/utils'
const { $gettext } = useGettext()
const currentTab = ref('status')
@@ -88,8 +87,7 @@ const processColumns: any = [
onClick: () => handleShowProcessLog(row)
},
{
- default: () => $gettext('Logs'),
- icon: renderIcon('material-symbols:visibility', { size: 14 })
+ default: () => $gettext('Logs')
}
),
h(
@@ -101,8 +99,7 @@ const processColumns: any = [
onClick: () => handleEditProcess(row.name)
},
{
- default: () => $gettext('Configure'),
- icon: renderIcon('material-symbols:settings-outline', { size: 14 })
+ default: () => $gettext('Configure')
}
),
row.status != 'RUNNING'
@@ -116,8 +113,7 @@ const processColumns: any = [
onClick: () => handleProcessStart(row.name)
},
{
- default: () => $gettext('Start'),
- icon: renderIcon('material-symbols:play-arrow-outline', { size: 18 })
+ default: () => $gettext('Start')
}
)
: null,
@@ -142,8 +138,7 @@ const processColumns: any = [
style: 'margin-left: 15px'
},
{
- default: () => $gettext('Stop'),
- icon: renderIcon('material-symbols:stop-outline', { size: 18 })
+ default: () => $gettext('Stop')
}
)
}
@@ -171,8 +166,7 @@ const processColumns: any = [
style: 'margin-left: 15px'
},
{
- default: () => $gettext('Restart'),
- icon: renderIcon('material-symbols:replay', { size: 18 })
+ default: () => $gettext('Restart')
}
)
}
@@ -199,8 +193,7 @@ const processColumns: any = [
style: 'margin-left: 15px'
},
{
- default: () => $gettext('Delete'),
- icon: renderIcon('material-symbols:delete-outline', { size: 14 })
+ default: () => $gettext('Delete')
}
)
}
@@ -309,7 +302,6 @@ onUnmounted(() => {
type="primary"
@click="handleSaveConfig"
>
-
{{ $gettext('Save') }}
{
type="primary"
@click="createProcessModal = true"
>
-
{{ $gettext('Add Process') }}
-
{{ $gettext('Clear Log') }}
diff --git a/web/src/views/backup/ListView.vue b/web/src/views/backup/ListView.vue
index 7698ba54..89570e5e 100644
--- a/web/src/views/backup/ListView.vue
+++ b/web/src/views/backup/ListView.vue
@@ -1,6 +1,5 @@
-
-
-
-
-
- {{ $gettext('Create Website') }}
-
-
-
- {{ $gettext('Bulk Create Website') }}
-
-
-
- {{ $gettext('Modify Default Page') }}
-
-
-
-
-
- {{ $gettext('Batch Delete') }}
-
-
- {{
- $gettext(
- 'This will delete the website directory but not the database with the same name. Are you sure you want to delete the selected websites?'
- )
- }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {
- createModel.db = createModel.db_type != '0'
- createModel.db_name = formatDbValue(createModel.name)
- createModel.db_user = formatDbValue(createModel.name)
- createModel.db_password = generateRandomString(16)
- }
- "
- >
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ $gettext('Create') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/web/src/views/website/PhpView.vue b/web/src/views/website/PhpView.vue
new file mode 100644
index 00000000..357c03d3
--- /dev/null
+++ b/web/src/views/website/PhpView.vue
@@ -0,0 +1,538 @@
+
+
+
+
+
+
+ {{ $gettext('Create Website') }}
+
+
+ {{ $gettext('Bulk Create Website') }}
+
+
+
+
+ {{ $gettext('Batch Delete') }}
+
+
+ {{
+ $gettext(
+ 'This will delete the website directory but not the database with the same name. Are you sure you want to delete the selected websites?'
+ )
+ }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ createModel.db = createModel.db_type != '0'
+ createModel.db_name = formatDbValue(createModel.name)
+ createModel.db_user = formatDbValue(createModel.name)
+ createModel.db_password = generateRandomString(16)
+ }
+ "
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $gettext('Create') }}
+
+
+
+
diff --git a/web/src/views/website/SettingView.vue b/web/src/views/website/SettingView.vue
new file mode 100644
index 00000000..efaf6186
--- /dev/null
+++ b/web/src/views/website/SettingView.vue
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 待开发
+
+
+
+
+
+
+
+
+
+
+ {{ $gettext('Save Changes') }}
+
+
+
+
+
+
+