Browse Source

refactor: consolidate maintenance mode endpoints and enhance site status handling

Jacky 2 months ago
parent
commit
df304b41bc

+ 1 - 3
api/sites/router.go

@@ -23,7 +23,5 @@ func InitRouter(r *gin.RouterGroup) {
 	// duplicate site
 	r.POST("sites/:name/duplicate", DuplicateSite)
 	// enable maintenance mode for site
-	r.POST("sites/:name/maintenance/enable", EnableMaintenanceSite)
-	// disable maintenance mode for site
-	r.POST("sites/:name/maintenance/disable", DisableMaintenanceSite)
+	r.POST("sites/:name/maintenance", EnableMaintenanceSite)
 }

+ 43 - 13
api/sites/site.go

@@ -155,7 +155,21 @@ func RenameSite(c *gin.Context) {
 }
 
 func EnableSite(c *gin.Context) {
-	err := site.Enable(c.Param("name"))
+	name := c.Param("name")
+
+	// Check if the site is in maintenance mode, if yes, disable maintenance mode first
+	maintenanceConfigPath := nginx.GetConfPath("sites-enabled", name+site.MaintenanceSuffix)
+	if _, err := os.Stat(maintenanceConfigPath); err == nil {
+		// Site is in maintenance mode, disable it first
+		err := site.DisableMaintenance(name)
+		if err != nil {
+			cosy.ErrHandler(c, err)
+			return
+		}
+	}
+
+	// Then enable the site normally
+	err := site.Enable(name)
 	if err != nil {
 		cosy.ErrHandler(c, err)
 		return
@@ -167,7 +181,21 @@ func EnableSite(c *gin.Context) {
 }
 
 func DisableSite(c *gin.Context) {
-	err := site.Disable(c.Param("name"))
+	name := c.Param("name")
+
+	// Check if the site is in maintenance mode, if yes, disable maintenance mode first
+	maintenanceConfigPath := nginx.GetConfPath("sites-enabled", name+site.MaintenanceSuffix)
+	if _, err := os.Stat(maintenanceConfigPath); err == nil {
+		// Site is in maintenance mode, disable it first
+		err := site.DisableMaintenance(name)
+		if err != nil {
+			cosy.ErrHandler(c, err)
+			return
+		}
+	}
+
+	// Then disable the site normally
+	err := site.Disable(name)
 	if err != nil {
 		cosy.ErrHandler(c, err)
 		return
@@ -217,19 +245,21 @@ func BatchUpdateSites(c *gin.Context) {
 }
 
 func EnableMaintenanceSite(c *gin.Context) {
-	err := site.EnableMaintenance(c.Param("name"))
-	if err != nil {
-		cosy.ErrHandler(c, err)
-		return
-	}
+	name := c.Param("name")
 
-	c.JSON(http.StatusOK, gin.H{
-		"message": "ok",
-	})
-}
+	// If site is already enabled, disable the normal site first
+	enabledConfigPath := nginx.GetConfPath("sites-enabled", name)
+	if _, err := os.Stat(enabledConfigPath); err == nil {
+		// Site is already enabled, disable normal site first
+		err := site.Disable(name)
+		if err != nil {
+			cosy.ErrHandler(c, err)
+			return
+		}
+	}
 
-func DisableMaintenanceSite(c *gin.Context) {
-	err := site.DisableMaintenance(c.Param("name"))
+	// Then enable maintenance mode
+	err := site.EnableMaintenance(name)
 	if err != nil {
 		cosy.ErrHandler(c, err)
 		return

+ 1 - 0
app/components.d.ts

@@ -55,6 +55,7 @@ declare module 'vue' {
     ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
     AResult: typeof import('ant-design-vue/es')['Result']
     ARow: typeof import('ant-design-vue/es')['Row']
+    ASegmented: typeof import('ant-design-vue/es')['Segmented']
     ASelect: typeof import('ant-design-vue/es')['Select']
     ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
     ASpace: typeof import('ant-design-vue/es')['Space']

+ 1 - 5
app/src/api/site.ts

@@ -68,11 +68,7 @@ class SiteCurd extends Curd<Site> {
   }
 
   enableMaintenance(name: string) {
-    return http.post(`${this.baseUrl}/${encodeURIComponent(name)}/maintenance/enable`)
-  }
-
-  disableMaintenance(name: string) {
-    return http.post(`${this.baseUrl}/${encodeURIComponent(name)}/maintenance/disable`)
+    return http.post(`${this.baseUrl}/${encodeURIComponent(name)}/maintenance`)
   }
 }
 

+ 18 - 18
app/src/components/Notification/notifications.ts

@@ -4,24 +4,6 @@
 
 const notifications: Record<string, { title: () => string, content: (args: any) => string }> = {
 
-  // cluster module notifications
-  'Reload Remote Nginx Error': {
-    title: () => $gettext('Reload Remote Nginx Error'),
-    content: (args: any) => $gettext('Reload Nginx on %{node} failed, response: %{resp}', args),
-  },
-  'Reload Remote Nginx Success': {
-    title: () => $gettext('Reload Remote Nginx Success'),
-    content: (args: any) => $gettext('Reload Nginx on %{node} successfully', args),
-  },
-  'Restart Remote Nginx Error': {
-    title: () => $gettext('Restart Remote Nginx Error'),
-    content: (args: any) => $gettext('Restart Nginx on %{node} failed, response: %{resp}', args),
-  },
-  'Restart Remote Nginx Success': {
-    title: () => $gettext('Restart Remote Nginx Success'),
-    content: (args: any) => $gettext('Restart Nginx on %{node} successfully', args),
-  },
-
   // cert module notifications
   'Sync Certificate Error': {
     title: () => $gettext('Sync Certificate Error'),
@@ -155,6 +137,24 @@ const notifications: Record<string, { title: () => string, content: (args: any)
     title: () => $gettext('All Recovery Codes Have Been Used'),
     content: (args: any) => $gettext('Please generate new recovery codes in the preferences immediately to prevent lockout.', args),
   },
+
+  // cluster module notifications
+  'Reload Remote Nginx Error': {
+    title: () => $gettext('Reload Remote Nginx Error'),
+    content: (args: any) => $gettext('Reload Nginx on %{node} failed, response: %{resp}', args),
+  },
+  'Reload Remote Nginx Success': {
+    title: () => $gettext('Reload Remote Nginx Success'),
+    content: (args: any) => $gettext('Reload Nginx on %{node} successfully', args),
+  },
+  'Restart Remote Nginx Error': {
+    title: () => $gettext('Restart Remote Nginx Error'),
+    content: (args: any) => $gettext('Restart Nginx on %{node} failed, response: %{resp}', args),
+  },
+  'Restart Remote Nginx Success': {
+    title: () => $gettext('Restart Remote Nginx Success'),
+    content: (args: any) => $gettext('Restart Nginx on %{node} successfully', args),
+  },
 }
 
 export default notifications

+ 2 - 2
app/src/components/StdDesign/StdDataDisplay/StdTableTransformer.tsx

@@ -53,7 +53,7 @@ export function arrayToTextRender(args: CustomRender) {
 }
 export function actualValueRender(actualDataIndex: string | string[]) {
   return (args: CustomRender) => {
-    return get(args.record, actualDataIndex) || '/'
+    return get(args.record, actualDataIndex) || ''
   }
 }
 
@@ -126,7 +126,7 @@ export function multiFieldsRender(fields: MultiFieldRenderProps[]) {
       const direction = field.direction ?? 'vertical'
 
       const labelNode = label
-      // eslint-disable-next-line sonarjs/no-nested-conditional
+        // eslint-disable-next-line sonarjs/no-nested-conditional
         ? h(direction === 'vertical' ? 'div' : 'span', { class: 'text-gray-500 my-1 mr-1' }, label)
         : null
 

+ 1 - 0
app/src/constants/errors/site.ts

@@ -2,4 +2,5 @@ export default {
   40401: () => $gettext('Site not found'),
   50001: () => $gettext('Destination file already exists'),
   50002: () => $gettext('Site is enabled'),
+  50003: () => $gettext('Site is in maintenance mode'),
 }

+ 146 - 134
app/src/language/ar/app.po

@@ -48,7 +48,7 @@ msgstr "مستخدم ACME"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "إجراء"
@@ -112,7 +112,7 @@ msgstr "بعد ذلك، قم بتحديث هذه الصفحة وانقر فوق
 msgid "All"
 msgstr "الكل"
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -195,7 +195,7 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا العنصر نها
 msgid "Are you sure you want to delete this item?"
 msgstr "هل أنت متأكد أنك تريد حذف هذا العنصر؟"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr "هل أنت متأكد أنك تريد الحذف؟"
@@ -332,7 +332,7 @@ msgid "Base information"
 msgstr "المعلومات الأساسية"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr "أساسي"
@@ -385,7 +385,7 @@ msgstr "مجلد سلطة التصديق"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "إلغاء"
@@ -752,7 +752,7 @@ msgstr "وصف"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "حذف"
@@ -762,44 +762,44 @@ msgstr "حذف"
 msgid "Delete Permanently"
 msgstr "حذف نهائي"
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr "خطأ حذف الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr "نجح حذف الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "خطأ حذف الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "نجح حذف الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "حذف الموقع: ‎%{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
@@ -857,7 +857,11 @@ msgstr ""
 msgid "Directives"
 msgstr "توجيهات"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "تعطيل"
+
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgstr "تعطيل"
@@ -866,60 +870,60 @@ msgstr "تعطيل"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "فشل تعطيل التجديد التلقائي لـ {name}%"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
@@ -929,15 +933,14 @@ msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "معطل"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -965,22 +968,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "لا تقم بتمكين هذا الخيار إلا إذا كنت متأكدًا من أنك بحاجة إليه."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "هل تريد تفعيل هذا الموقع؟"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "هل تريد تعطيل التجديد التلقائي للشهادة؟"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
-msgstr "هل تريد تعطيل هذا الموقع؟"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgstr "هل تريد تعطيل هذا البث؟"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr "هل تريد تفعيل هذا الموقع؟"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgstr "هل تريد تفعيل هذا البث؟"
@@ -1039,7 +1039,7 @@ msgstr ""
 "الويب غير HTTPS، إلا عند التشغيل على localhost."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1081,7 +1081,11 @@ msgstr "بريد إلكتروني"
 msgid "Email (*)"
 msgstr "البريد الإلكتروني (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "تفعيل"
+
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgstr "تفعيل"
@@ -1103,60 +1107,60 @@ msgstr "فشل التفعيل"
 msgid "Enable HTTPS"
 msgstr "تفعيل TOTP"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "نجح تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr "نجح تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "نجح تفعيل الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
@@ -1175,10 +1179,9 @@ msgstr "تفعيل TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1186,8 +1189,7 @@ msgid "Enabled"
 msgstr "مفعل"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1197,10 +1199,6 @@ msgstr "تم التفعيل بنجاح"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "تشفير الموقع باستخدام Let's Encrypt"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr "تم تنظيف متغيرات البيئة"
@@ -1237,10 +1235,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "مسار الملف التنفيذي"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1393,18 +1387,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "فشل في تعطيل %{msg}"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "فشل في تعطيل %{msg}"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "فشل في التفعيل %{msg}"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "فشل في التفعيل %{msg}"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1709,12 +1713,12 @@ msgid "Import Certificate"
 msgstr "استيراد شهادة"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -1977,17 +1981,17 @@ msgstr ""
 "مجدول المهام crontab الخاص بواجهة Nginx UI بتنفيذ أمر تدوير السجلات في "
 "الفاصل الزمني الذي تحدده بالدقائق."
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "تم التعطيل بنجاح"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "تم التفعيل بنجاح"
@@ -2005,7 +2009,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "إدارة التكوينات"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "إدارة المواقع"
 
@@ -2081,8 +2085,8 @@ msgstr "توجيه متعدد الأسطر"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2269,7 +2273,7 @@ msgstr "خطأ في تحليل تكوين Nginx"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "لا"
@@ -2289,8 +2293,8 @@ msgstr ""
 msgid "Node"
 msgstr "اسم العقدة"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2333,7 +2337,7 @@ msgstr "غير صالح قبل: %{date}"
 msgid "Note"
 msgstr "ملاحظة"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2394,8 +2398,8 @@ msgstr "حسنًا"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2565,7 +2569,7 @@ msgstr ""
 "يرجى أولاً إضافة بيانات الاعتماد في الشهادات > بيانات اعتماد DNS، ثم اختيار "
 "أحد بيانات الاعتماد أدناه لطلب API لمزود DNS."
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2790,22 +2794,22 @@ msgstr "إعادة تحميل"
 msgid "Reload Nginx"
 msgstr "إعادة تحميل nginx"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "خطأ في إزالة الموقع %{site} من %{node}، الاستجابة: %{resp}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "تمت ترقية Nginx UI على %{node} بنجاح 🎉"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
@@ -2844,57 +2848,57 @@ msgstr "تمت الإزالة بنجاح"
 msgid "Rename"
 msgstr "إعادة تسمية"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "تم إعادة تسمية %{orig_path} إلى %{new_path} على %{env_name} بنجاح"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "تم إعادة تسمية %{orig_path} إلى %{new_path} على %{env_name} بنجاح"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "خطأ في إعادة تسمية التكوين البعيد"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "إعادة تسمية تكوين البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
@@ -2954,22 +2958,22 @@ msgstr "إعادة تشغيل"
 msgid "Restart Nginx"
 msgstr "إعادة التشغيل"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "خطأ في تفعيل الموقع %{site} على %{node}، الاستجابة: %{resp}"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "تمت ترقية Nginx UI على %{node} بنجاح 🎉"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
@@ -3054,42 +3058,40 @@ msgstr "حفظ التوجيه"
 msgid "Save error %{msg}"
 msgstr "خطأ في الحفظ %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr "خطأ في حفظ الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr "حفظ الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "خطأ في حفظ الموقع البعيد"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "حفظ الموقع البعيد بنجاح"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
@@ -3178,6 +3180,11 @@ msgstr ""
 "قم بتعيين خوادم الأسماء التكرارية لتجاوز خوادم الأسماء الخاصة بالنظام لخطوة "
 "تحدي DNS."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "خطأ في تعطيل الموقع البعيد"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr "تعيين موفر تحدي DNS01"
@@ -3224,6 +3231,11 @@ msgstr "تم إنشاء تكوين النطاق بنجاح"
 msgid "Site is enabled"
 msgstr "معطل"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "معطل"
+
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgstr "سجلات الموقع"
@@ -3323,7 +3335,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "الحالة"
 
@@ -3399,38 +3412,38 @@ msgstr "مزامنة"
 msgid "Sync Certificate"
 msgstr "مزامنة الشهادة"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "نجح مزامنة الشهادة %{cert_name} إلى %{env_name}"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "نجح مزامنة الشهادة %{cert_name} إلى %{env_name}"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "خطأ في مزامنة الشهادة"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "تمت مزامنة الشهادة بنجاح"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "تمت مزامنة التكوين %{config_name} إلى %{env_name} بنجاح"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "تمت مزامنة التكوين %{config_name} إلى %{env_name} بنجاح"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "خطأ في تزامن التكوين"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "تمت مزامنة التكوين بنجاح"
 
@@ -3439,8 +3452,8 @@ msgstr "تمت مزامنة التكوين بنجاح"
 msgid "Sync Nodes"
 msgstr "مزامنة العقد"
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 msgid "Sync strategy"
@@ -3450,7 +3463,7 @@ msgstr "استراتيجية المزامنة"
 msgid "Sync to"
 msgstr "مزامنة إلى"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr "مزامنة"
@@ -3770,8 +3783,8 @@ msgstr "تم التحديث بنجاح"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3813,10 +3826,6 @@ msgstr "مدة التشغيل:"
 msgid "URL"
 msgstr "عنوان URL"
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr "استخدم كلمة المرور لمرة واحدة"
@@ -3937,7 +3946,7 @@ msgstr ""
 "التشغيل. بشكل عام، لا تقم بتمكين هذا إلا إذا كنت في بيئة تطوير وتستخدم "
 "Pebble كسلطة شهادات."
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 #, fuzzy
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
@@ -4035,6 +4044,9 @@ msgstr ""
 msgid "Your passkeys"
 msgstr "مفاتيح المرور الخاصة بك"
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "هل تريد تعطيل هذا الموقع؟"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "تم الإنشاء في"

+ 147 - 136
app/src/language/de_DE/app.po

@@ -45,7 +45,7 @@ msgstr "Benutzername"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Aktion"
@@ -115,7 +115,7 @@ msgstr ""
 msgid "All"
 msgstr "Alle"
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -204,7 +204,7 @@ msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #, fuzzy
 msgid "Are you sure you want to delete?"
@@ -347,7 +347,7 @@ msgid "Base information"
 msgstr "Basisinformationen"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 #, fuzzy
 msgid "Basic"
@@ -403,7 +403,7 @@ msgstr "CA-Verzeichnis"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "Abbrechen"
@@ -777,7 +777,7 @@ msgstr "Beschreibung"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "Löschen"
@@ -787,46 +787,46 @@ msgstr "Löschen"
 msgid "Delete Permanently"
 msgstr "Permanent löschen"
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "Seite löschen: %{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -885,7 +885,11 @@ msgstr ""
 msgid "Directives"
 msgstr "Anweisung"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "Deaktiviert"
+
 #: src/views/stream/StreamList.vue:207
 #, fuzzy
 msgid "Disable"
@@ -895,62 +899,62 @@ msgstr "Deaktiviert"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Automatische Verlängerung deaktiviert für %{name}"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -960,15 +964,14 @@ msgstr "Speichern erfolgreich"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Deaktiviert"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -998,25 +1001,20 @@ msgstr ""
 "Aktiviere diese Option nicht, es sei denn, du bist sicher, dass du sie "
 "benötigst."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Möchtest du die automatische Zertifikatsverlängerung deaktivieren?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-#, fuzzy
-msgid "Do you want to disable this site?"
-msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
-
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 msgid "Do you want to disable this stream?"
 msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-#, fuzzy
-msgid "Do you want to enable this site?"
-msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
-
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 msgid "Do you want to enable this stream?"
@@ -1078,7 +1076,7 @@ msgstr ""
 "werden."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1123,7 +1121,11 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "Aktivieren"
+
 #: src/views/stream/StreamList.vue:215
 #, fuzzy
 msgid "Enable"
@@ -1147,62 +1149,62 @@ msgstr "Aktivieren fehlgeschlagen"
 msgid "Enable HTTPS"
 msgstr "Aktiviere TLS"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
@@ -1222,10 +1224,9 @@ msgstr "Aktiviere TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1233,8 +1234,7 @@ msgid "Enabled"
 msgstr "Aktiviert"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1244,10 +1244,6 @@ msgstr "Erfolgreich aktiviert"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Webseite mit Let's Encrypt verschlüsseln"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr "Umgebungsvariablen gesäubert"
@@ -1285,10 +1281,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "Ausführbarer Pfad"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1442,18 +1434,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "Deaktivierung von %{msg} fehlgeschlagen"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "Deaktivierung von %{msg} fehlgeschlagen"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "Aktiviern von %{msg} fehlgeschlagen"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "Aktiviern von %{msg} fehlgeschlagen"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1762,12 +1764,12 @@ msgid "Import Certificate"
 msgstr "Zertifikatsstatus"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -2042,17 +2044,17 @@ msgstr ""
 "Der Crontab-Aufgabenplaner von Nginx UI führt den Logrotate-Befehl in dem "
 "von dir in Minuten festgelegten Intervall aus."
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "Erfolgreich deaktiviert"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "Erfolgreich aktiviert"
@@ -2072,7 +2074,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Verwalte Konfigurationen"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "Verwalte Seiten"
 
@@ -2155,8 +2157,8 @@ msgstr "Einzelne Anweisung"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2349,7 +2351,7 @@ msgstr "Name der Konfiguration"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "Nein"
@@ -2369,8 +2371,8 @@ msgstr ""
 msgid "Node"
 msgstr "Benuztername"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2414,7 +2416,7 @@ msgstr "Nich gültig vor: %{date}"
 msgid "Note"
 msgstr "Notiz"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2479,8 +2481,8 @@ msgstr "OK"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2656,7 +2658,7 @@ msgstr ""
 "Anmeldeinformationen hinzu und wähle dann eine der unten aufgeführten "
 "Anmeldeinformationen aus, um die API des DNS-Anbieters anzufordern."
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2896,22 +2898,22 @@ msgstr "Neu laden"
 msgid "Reload Nginx"
 msgstr "Lade Nginx neu"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Zertifikat ist gültig"
@@ -2953,62 +2955,62 @@ msgstr "Speichern erfolgreich"
 msgid "Rename"
 msgstr "Benuztername"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -3074,22 +3076,22 @@ msgstr "Neustart"
 msgid "Restart Nginx"
 msgstr "Starte neu"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Erfolgreich gespeichert"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Zertifikat ist gültig"
@@ -3175,44 +3177,42 @@ msgstr "Anweisung speichern"
 msgid "Save error %{msg}"
 msgstr "Fehler beim Speichern %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Speichern erfolgreich"
@@ -3303,6 +3303,11 @@ msgstr ""
 "Setze die rekursiven Nameserver, um die System-Nameserver für den Schritt "
 "der DNS-Herausforderung zu überschreiben."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "Zertifikat ist gültig"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr "Setze DNS01-Challengeanbieter"
@@ -3349,6 +3354,11 @@ msgstr "Domain-Konfiguration erfolgreich erstellt"
 msgid "Site is enabled"
 msgstr "Deaktiviert"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Deaktiviert"
+
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 msgid "Site Logs"
@@ -3453,7 +3463,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "Status"
 
@@ -3528,42 +3539,42 @@ msgstr "Synchronisieren"
 msgid "Sync Certificate"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Zertifikat ist gültig"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Zertifikat ist gültig"
@@ -3573,8 +3584,8 @@ msgstr "Zertifikat ist gültig"
 msgid "Sync Nodes"
 msgstr "Synchrone Knoten"
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
@@ -3585,7 +3596,7 @@ msgstr "Zertifikat ist gültig"
 msgid "Sync to"
 msgstr "Synchronisieren mit"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr "Synchronisation"
@@ -3908,8 +3919,8 @@ msgstr "Speichern erfolgreich"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3954,10 +3965,6 @@ msgstr "Uptime:"
 msgid "URL"
 msgstr "URL"
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr "Benutze OTP"
@@ -4084,7 +4091,7 @@ msgstr ""
 "denn, du befindest dich in einer Entwicklerumgebung und verwendest Pebble "
 "als CA."
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 #, fuzzy
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
@@ -4184,6 +4191,10 @@ msgstr ""
 msgid "Your passkeys"
 msgstr "Deine Passkeys"
 
+#, fuzzy
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "Erstellt"

+ 146 - 135
app/src/language/en/app.po

@@ -46,7 +46,7 @@ msgstr "Username"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Action"
@@ -114,7 +114,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -203,7 +203,7 @@ msgstr "Are you sure you want to remove this directive?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Are you sure you want to remove this directive?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #, fuzzy
 msgid "Are you sure you want to delete?"
@@ -344,7 +344,7 @@ msgid "Base information"
 msgstr "Base information"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 #, fuzzy
 msgid "Basic"
@@ -399,7 +399,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "Cancel"
@@ -768,7 +768,7 @@ msgstr "Enable failed"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr ""
@@ -778,46 +778,46 @@ msgstr ""
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Saved successfully"
@@ -876,7 +876,11 @@ msgstr ""
 msgid "Directives"
 msgstr "Directives"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "Disabled"
+
 #: src/views/stream/StreamList.vue:207
 #, fuzzy
 msgid "Disable"
@@ -886,62 +890,62 @@ msgstr "Disabled"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Disable auto-renewal failed for %{name}"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Saved successfully"
@@ -951,15 +955,14 @@ msgstr "Saved successfully"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Disabled"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -987,14 +990,14 @@ msgstr ""
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 
-#: src/views/site/cert/components/ObtainCert.vue:136
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
 #, fuzzy
-msgid "Do you want to disable auto-cert renewal?"
+msgid "Do you want to %{action} this site?"
 msgstr "Are you sure you want to remove this directive?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
+#: src/views/site/cert/components/ObtainCert.vue:136
 #, fuzzy
-msgid "Do you want to disable this site?"
+msgid "Do you want to disable auto-cert renewal?"
 msgstr "Are you sure you want to remove this directive?"
 
 #: src/views/stream/components/RightSettings.vue:51
@@ -1002,11 +1005,6 @@ msgstr "Are you sure you want to remove this directive?"
 msgid "Do you want to disable this stream?"
 msgstr "Are you sure you want to remove this directive?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-#, fuzzy
-msgid "Do you want to enable this site?"
-msgstr "Are you sure you want to remove this directive?"
-
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 msgid "Do you want to enable this stream?"
@@ -1063,7 +1061,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #, fuzzy
@@ -1109,7 +1107,11 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "Enabled"
+
 #: src/views/stream/StreamList.vue:215
 #, fuzzy
 msgid "Enable"
@@ -1133,62 +1135,62 @@ msgstr "Enable failed"
 msgid "Enable HTTPS"
 msgstr "Enable TLS"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Saved successfully"
@@ -1208,10 +1210,9 @@ msgstr "Enable TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1219,8 +1220,7 @@ msgid "Enabled"
 msgstr "Enabled"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1230,10 +1230,6 @@ msgstr "Enabled successfully"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Encrypt website with Let's Encrypt"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr ""
@@ -1270,10 +1266,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1428,18 +1420,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "Failed to disable %{msg}"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "Failed to disable %{msg}"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "Failed to enable %{msg}"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "Failed to enable %{msg}"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1743,12 +1745,12 @@ msgid "Import Certificate"
 msgstr "Certificate Status"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -2021,17 +2023,17 @@ msgid ""
 "minutes."
 msgstr ""
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "Disabled successfully"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "Enabled successfully"
@@ -2050,7 +2052,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Manage Configs"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "Manage Sites"
 
@@ -2133,8 +2135,8 @@ msgstr "Single Directive"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2326,7 +2328,7 @@ msgstr "Configuration Name"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "No"
@@ -2346,8 +2348,8 @@ msgstr ""
 msgid "Node"
 msgstr "Username"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2392,7 +2394,7 @@ msgstr "Not Valid Before: %{date}"
 msgid "Note"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2453,8 +2455,8 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2618,7 +2620,7 @@ msgid ""
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2849,22 +2851,22 @@ msgstr ""
 msgid "Reload Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Certificate is valid"
@@ -2906,62 +2908,62 @@ msgstr "Saved successfully"
 msgid "Rename"
 msgstr "Username"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Saved successfully"
@@ -3026,22 +3028,22 @@ msgstr ""
 msgid "Restart Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Certificate is valid"
@@ -3127,44 +3129,42 @@ msgstr "Save Directive"
 msgid "Save error %{msg}"
 msgstr "Save error %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Saved successfully"
@@ -3253,6 +3253,11 @@ msgid ""
 "step of DNS challenge."
 msgstr ""
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "Certificate is valid"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr ""
@@ -3299,6 +3304,11 @@ msgstr "Domain Config Created Successfully"
 msgid "Site is enabled"
 msgstr "Disabled"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Disabled"
+
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 msgid "Site Logs"
@@ -3405,7 +3415,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "Status"
 
@@ -3482,42 +3493,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Saved successfully"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Certificate is valid"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Certificate is valid"
@@ -3527,8 +3538,8 @@ msgstr "Certificate is valid"
 msgid "Sync Nodes"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
@@ -3540,7 +3551,7 @@ msgstr "Certificate is valid"
 msgid "Sync to"
 msgstr "Certificate is valid"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr ""
@@ -3838,8 +3849,8 @@ msgstr "Saved successfully"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3884,10 +3895,6 @@ msgstr "Uptime:"
 msgid "URL"
 msgstr ""
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr ""
@@ -4008,7 +4015,7 @@ msgid ""
 "Pebble as CA."
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
@@ -4101,6 +4108,10 @@ msgstr ""
 msgid "Your passkeys"
 msgstr ""
 
+#, fuzzy
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Are you sure you want to remove this directive?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "Created at"

+ 146 - 134
app/src/language/es/app.po

@@ -51,7 +51,7 @@ msgstr "Usuario ACME"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Acción"
@@ -117,7 +117,7 @@ msgstr ""
 msgid "All"
 msgstr "Todo"
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -200,7 +200,7 @@ msgstr "¿Está seguro de que desea eliminar este elemento de forma permanente?"
 msgid "Are you sure you want to delete this item?"
 msgstr "¿Está seguro de que quiere borrar este elemento?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr "¿Está seguro de que quiere borrar?"
@@ -337,7 +337,7 @@ msgid "Base information"
 msgstr "Información general"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr "Básico"
@@ -392,7 +392,7 @@ msgstr "Directorio CA"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "Cancelar"
@@ -753,7 +753,7 @@ msgstr "Descripción"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "Eliminar"
@@ -763,44 +763,44 @@ msgstr "Eliminar"
 msgid "Delete Permanently"
 msgstr "Eliminar Permanentemente"
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr "Error al eliminar sitio remoto"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr "Borrado del sitio remoto correcto"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Error al eliminar sitio remoto"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Borrado del sitio remoto correcto"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "Eliminar sitio: %{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
@@ -858,7 +858,11 @@ msgstr ""
 msgid "Directives"
 msgstr "Directivas"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "Desactivar"
+
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgstr "Desactivar"
@@ -867,60 +871,60 @@ msgstr "Desactivar"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "No se pudo desactivar la renovación automática por %{name}"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr "Error al deshabilitar el sitio remoto"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Error al deshabilitar el sitio remoto"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Error al deshabilitar el sitio remoto"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
@@ -930,15 +934,14 @@ msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Desactivado"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -966,22 +969,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "No habilite esta opción a menos que esté seguro de que la necesita."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "¿Quieres habilitar este sitio?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "¿Desea deshabilitar la renovación automática de certificado?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
-msgstr "¿Quieres deshabilitar este sitio?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgstr "¿Quieres deshabilitar esta transmisión?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr "¿Quieres habilitar este sitio?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgstr "¿Quieres habilitar esta transmisión?"
@@ -1039,7 +1039,7 @@ msgstr ""
 "ejecutan en el host local."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1081,7 +1081,11 @@ msgstr "Correo"
 msgid "Email (*)"
 msgstr "Correo (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "Habilitar"
+
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgstr "Habilitar"
@@ -1103,62 +1107,62 @@ msgstr "Falló la habilitación"
 msgid "Enable HTTPS"
 msgstr "Habilitar TLS"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
@@ -1178,10 +1182,9 @@ msgstr "Habilitar TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1189,8 +1192,7 @@ msgid "Enabled"
 msgstr "Habilitado"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1200,10 +1202,6 @@ msgstr "Habilitado con éxito"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Encriptar sitio web con Let's Encrypt"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr "Variables de entorno limpiadas"
@@ -1240,10 +1238,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "Ruta ejecutable"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1395,18 +1389,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "Error al deshabilitar %{msg}"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "Error al deshabilitar %{msg}"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "Error al habilitar %{msg}"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "Error al habilitar %{msg}"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1712,12 +1716,12 @@ msgid "Import Certificate"
 msgstr "Importar Certificado"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -1980,17 +1984,17 @@ msgstr ""
 "de Nginx UI ejecutará el comando logrotate en el intervalo que establezca en "
 "minutos."
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "Desactivado con éxito"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "Habilitado con éxito"
@@ -2008,7 +2012,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Administrar configuraciones"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "Administrar sitios"
 
@@ -2084,8 +2088,8 @@ msgstr "Directiva multilínea"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2275,7 +2279,7 @@ msgstr "Error de análisis de configuración de Nginx"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "No"
@@ -2295,8 +2299,8 @@ msgstr ""
 msgid "Node"
 msgstr "Nuevo nombre"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2340,7 +2344,7 @@ msgstr "No válido antes: %{date}"
 msgid "Note"
 msgstr "Nota"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2402,8 +2406,8 @@ msgstr "Ok"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2579,7 +2583,7 @@ msgstr ""
 "luego seleccione una de las credenciales de aquí debajo para llamar a la API "
 "del proveedor de DNS."
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2815,22 +2819,22 @@ msgstr "Recargar"
 msgid "Reload Nginx"
 msgstr "Recargando Nginx"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Eliminar sitio: %{site_name}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Interfaz de usuario de Nginx actualizada en %{node} con éxito 🎉"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Renombrar Configuración Remota Exitosa"
@@ -2869,59 +2873,59 @@ msgstr "Eliminado con éxito"
 msgid "Rename"
 msgstr "Renombrar"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
@@ -2982,22 +2986,22 @@ msgstr "Reiniciar"
 msgid "Restart Nginx"
 msgstr "Reiniciando"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Interfaz de usuario de Nginx actualizada en %{node} con éxito 🎉"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Renombrar Configuración Remota Exitosa"
@@ -3082,44 +3086,42 @@ msgstr "Guardar Directiva"
 msgid "Save error %{msg}"
 msgstr "Error al guardar %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
@@ -3210,6 +3212,11 @@ msgstr ""
 "Establezca los servidores de nombres recursivos para anular los servidores "
 "de nombres del sistema en el paso del desafío DNS."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "Error al deshabilitar el sitio remoto"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr "Usando el proveedor de desafíos DNS01"
@@ -3256,6 +3263,11 @@ msgstr "Configuración de dominio creada con éxito"
 msgid "Site is enabled"
 msgstr "Certificado automático"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Certificado automático"
+
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgstr "Registros del sitio"
@@ -3353,7 +3365,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "Estado"
 
@@ -3428,38 +3441,38 @@ msgstr "Sincronizar"
 msgid "Sync Certificate"
 msgstr "Sincronizar Certificado"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Sincronización del Certificado %{cert_name} a %{env_name} exitosa"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Sincronización del Certificado %{cert_name} a %{env_name} exitosa"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "Error de Certificado de Sincronización"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "Sincronización del Certificado exitosa"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Sincronizar configuración %{config_name} con %{env_name} exitosamente"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Sincronizar configuración %{config_name} con %{env_name} exitosamente"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "Error de Configuración de Sincronización"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "Configuración de sincronización exitosa"
 
@@ -3469,8 +3482,8 @@ msgstr "Configuración de sincronización exitosa"
 msgid "Sync Nodes"
 msgstr "Sincronizar con"
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
@@ -3481,7 +3494,7 @@ msgstr "Sincronizar Certificado"
 msgid "Sync to"
 msgstr "Sincronizar con"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr "Sincronización"
@@ -3812,8 +3825,8 @@ msgstr "Actualización exitosa"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3855,10 +3868,6 @@ msgstr "Tiempo encendido:"
 msgid "URL"
 msgstr "URL"
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr "Usar OTP"
@@ -3981,7 +3990,7 @@ msgstr ""
 "los usuarios al iniciarse. Por lo general, no habilite esta opción a menos "
 "que se encuentre en un entorno de desarrollo y utilice Pebble como CA."
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 #, fuzzy
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
@@ -4083,6 +4092,9 @@ msgstr ""
 msgid "Your passkeys"
 msgstr "Sus llaves de acceso"
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "¿Quieres deshabilitar este sitio?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "Creado el"

+ 146 - 134
app/src/language/fr_FR/app.po

@@ -50,7 +50,7 @@ msgstr "Nom d'utilisateur"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Action"
@@ -119,7 +119,7 @@ msgstr ""
 msgid "All"
 msgstr "Tous"
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "Tous les codes de récupération ont été utilisés"
@@ -210,7 +210,7 @@ msgstr "Etes-vous sûr que vous voulez supprimer ?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Etes-vous sûr que vous voulez supprimer ?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr "Etes-vous sûr que vous voulez supprimer ?"
@@ -350,7 +350,7 @@ msgid "Base information"
 msgstr "Information générale"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr "Basique"
@@ -406,7 +406,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "Annuler"
@@ -782,7 +782,7 @@ msgstr "Description"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "Supprimer"
@@ -792,46 +792,46 @@ msgstr "Supprimer"
 msgid "Delete Permanently"
 msgstr "Supprimer définitivement"
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "Supprimer le site : %{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -892,7 +892,11 @@ msgstr "DirectiveIdx hors limite"
 msgid "Directives"
 msgstr "Directives"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "Désactivé"
+
 #: src/views/stream/StreamList.vue:207
 #, fuzzy
 msgid "Disable"
@@ -902,62 +906,62 @@ msgstr "Désactivé"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "La désactivation du renouvellement automatique a échoué pour %{name}"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -967,15 +971,14 @@ msgstr "Dupliqué avec succès"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Désactivé"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -1004,23 +1007,20 @@ msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 "N'activez pas cette option sauf si vous êtes sûr d'en avoir avez besoin."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "Voulez-vous activer ce site ?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Voulez-vous désactiver le renouvellement automatique des certificats ?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
-msgstr "Voulez-vous désactiver ce site ?"
-
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 msgid "Do you want to disable this stream?"
 msgstr "Voulez-vous désactiver ce site ?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr "Voulez-vous activer ce site ?"
-
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 msgid "Do you want to enable this stream?"
@@ -1082,7 +1082,7 @@ msgstr ""
 "exécuté sur localhost."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1127,7 +1127,11 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "Activé"
+
 #: src/views/stream/StreamList.vue:215
 #, fuzzy
 msgid "Enable"
@@ -1151,62 +1155,62 @@ msgstr "Échec de l'activation"
 msgid "Enable HTTPS"
 msgstr "Activer TLS"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -1226,10 +1230,9 @@ msgstr "Activer TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1237,8 +1240,7 @@ msgid "Enabled"
 msgstr "Activé"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1248,10 +1250,6 @@ msgstr "Activé avec succès"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Crypter le site Web avec Let's Encrypt"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 #, fuzzy
 msgid "Environment variables cleaned"
@@ -1290,10 +1288,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "Chemin exécutable"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1448,18 +1442,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "Impossible de désactiver %{msg}"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "Impossible de désactiver %{msg}"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "Impossible d'activer %{msg}"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "Impossible d'activer %{msg}"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1778,12 +1782,12 @@ msgid "Import Certificate"
 msgstr "État du certificat"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -2054,17 +2058,17 @@ msgid ""
 "minutes."
 msgstr ""
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "Désactivé avec succès"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "Activé avec succès"
@@ -2083,7 +2087,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Gérer les configurations"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "Gérer les sites"
 
@@ -2164,8 +2168,8 @@ msgstr "Directive multiligne"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2359,7 +2363,7 @@ msgstr "Erreur d'analyse de configuration Nginx"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "Non"
@@ -2379,8 +2383,8 @@ msgstr ""
 msgid "Node"
 msgstr "Nom d'utilisateur"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2425,7 +2429,7 @@ msgstr "Non valide avant : %{date}"
 msgid "Note"
 msgstr "Note"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2484,8 +2488,8 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2652,7 +2656,7 @@ msgstr ""
 "des informations d'identification ci-dessous pour demander l'API du "
 "fournisseur DNS."
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2889,22 +2893,22 @@ msgstr "Recharger"
 msgid "Reload Nginx"
 msgstr "Rechargement de nginx"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Supprimer le site : %{site_name}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Mise à niveau réussie"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Changer de certificat"
@@ -2946,62 +2950,62 @@ msgstr "Enregistré avec succès"
 msgid "Rename"
 msgstr "Nom d'utilisateur"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -3068,22 +3072,22 @@ msgstr "Redémarrer"
 msgid "Restart Nginx"
 msgstr "Redémarrage"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Mise à niveau réussie"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Changer de certificat"
@@ -3168,44 +3172,42 @@ msgstr "Enregistrer la directive"
 msgid "Save error %{msg}"
 msgstr "Enregistrer l'erreur %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Dupliqué avec succès"
@@ -3292,6 +3294,11 @@ msgid ""
 "step of DNS challenge."
 msgstr ""
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "Changer de certificat"
+
 #: src/language/constants.ts:11
 #, fuzzy
 msgid "Setting DNS01 challenge provider"
@@ -3340,6 +3347,11 @@ msgstr "La configuration du domaine a été créée avec succès"
 msgid "Site is enabled"
 msgstr "Auto Cert"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Auto Cert"
+
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgstr "Journaux du site"
@@ -3443,7 +3455,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "Statut"
 
@@ -3521,42 +3534,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Changer de certificat"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Changer de certificat"
@@ -3566,8 +3579,8 @@ msgstr "Changer de certificat"
 msgid "Sync Nodes"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
@@ -3579,7 +3592,7 @@ msgstr "Changer de certificat"
 msgid "Sync to"
 msgstr "Changer de certificat"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr ""
@@ -3886,8 +3899,8 @@ msgstr "Mis à jour avec succés"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3930,10 +3943,6 @@ msgstr "Disponibilité :"
 msgid "URL"
 msgstr ""
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr ""
@@ -4054,7 +4063,7 @@ msgid ""
 "Pebble as CA."
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
@@ -4146,6 +4155,9 @@ msgstr ""
 msgid "Your passkeys"
 msgstr ""
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Voulez-vous désactiver ce site ?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "Créé le"

+ 146 - 134
app/src/language/ko_KR/app.po

@@ -49,7 +49,7 @@ msgstr "ACME 사용자"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "작업"
@@ -113,7 +113,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -193,7 +193,7 @@ msgstr "이 항목을 영구적으로 삭제하시겠습니까?"
 msgid "Are you sure you want to delete this item?"
 msgstr "이 항목을 삭제하시겠습니까?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr "정말 삭제하시겠습니까?"
@@ -327,7 +327,7 @@ msgid "Base information"
 msgstr "기본 정보"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr "기본"
@@ -380,7 +380,7 @@ msgstr "CA 디렉토리"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "취소"
@@ -742,7 +742,7 @@ msgstr "설명"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "삭제"
@@ -752,46 +752,46 @@ msgstr "삭제"
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "사이트 삭제: %{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -849,7 +849,11 @@ msgstr ""
 msgid "Directives"
 msgstr "지시문들"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "비활성화"
+
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgstr "비활성화"
@@ -858,62 +862,62 @@ msgstr "비활성화"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "%{name}의 자동 갱신 비활성화 실패"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
@@ -923,15 +927,14 @@ msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "비활성화됨"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -959,22 +962,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "이 사이트를 활성화하시겠습니까?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "자동 인증서 갱신을 비활성화하시겠습니까?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
-msgstr "이 사이트를 비활성화하시겠습니까?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgstr "이 스트림을 비활성화하시겠습니까?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr "이 사이트를 활성화하시겠습니까?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgstr "이 스트림을 활성화하시겠습니까?"
@@ -1028,7 +1028,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1071,7 +1071,11 @@ msgstr "이메일 (*)"
 msgid "Email (*)"
 msgstr "이메일 (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "활성화"
+
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgstr "활성화"
@@ -1094,62 +1098,62 @@ msgstr "활성화 실패"
 msgid "Enable HTTPS"
 msgstr "TLS 활성화"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
@@ -1169,10 +1173,9 @@ msgstr "TLS 활성화"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1180,8 +1183,7 @@ msgid "Enabled"
 msgstr "활성화됨"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1191,10 +1193,6 @@ msgstr "성공적으로 활성화됨"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Let's Encrypt로 웹사이트 암호화"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 #, fuzzy
 msgid "Environment variables cleaned"
@@ -1232,10 +1230,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "실행 가능 경로"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1389,18 +1383,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "%{msg} 비활성화 실패"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "%{msg} 비활성화 실패"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "%{msg} 활성화 실패"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "%{msg} 활성화 실패"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1700,12 +1704,12 @@ msgid "Import Certificate"
 msgstr "인증서 상태"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -1976,17 +1980,17 @@ msgstr ""
 "동으로 활성화할 수 있습니다. Nginx UI의 크론탭 작업 스케줄러는설정한 간격 "
 "(분 단위)에서 logrotate 명령을 실행합니다."
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "성공적으로 비활성화됨"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "성공적으로 활성화됨"
@@ -2005,7 +2009,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "구성 관리"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "사이트 관리"
 
@@ -2088,8 +2092,8 @@ msgstr "단일 지시문"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2283,7 +2287,7 @@ msgstr "Nginx 구성 오류름"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "아니요"
@@ -2303,8 +2307,8 @@ msgstr ""
 msgid "Node"
 msgstr "이름 변경"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2348,7 +2352,7 @@ msgstr "유효 시작일: %{date}"
 msgid "Note"
 msgstr "참고"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2408,8 +2412,8 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2574,7 +2578,7 @@ msgstr ""
 "먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청"
 "하려면 아래 자격 증명 중 하나를 선택해주세요."
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2812,22 +2816,22 @@ msgstr "리로드"
 msgid "Reload Nginx"
 msgstr "Nginx 리로딩 중"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "사이트 삭제: %{site_name}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "성공적으로 저장되었습니다"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "인증서 갱신 성공"
@@ -2869,62 +2873,62 @@ msgstr "성공적으로 제거됨"
 msgid "Rename"
 msgstr "이름 변경"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -2991,22 +2995,22 @@ msgstr "재시작"
 msgid "Restart Nginx"
 msgstr "재시작 중"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "성공적으로 저장되었습니다"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "인증서 갱신 성공"
@@ -3092,44 +3096,42 @@ msgstr "지시문 저장"
 msgid "Save error %{msg}"
 msgstr "저장 오류 %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -3216,6 +3218,11 @@ msgid ""
 "step of DNS challenge."
 msgstr ""
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "인증서 갱신 오류"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr "DNS01 공급자 설정"
@@ -3262,6 +3269,11 @@ msgstr "도메인 구성이 성공적으로 생성되었습니다"
 msgid "Site is enabled"
 msgstr "비활성화됨"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "비활성화됨"
+
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 msgid "Site Logs"
@@ -3365,7 +3377,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "상태"
 
@@ -3441,42 +3454,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr "인증서 갱신"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "인증서 갱신 성공"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "인증서 갱신 오류"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "인증서 갱신 성공"
@@ -3486,8 +3499,8 @@ msgstr "인증서 갱신 성공"
 msgid "Sync Nodes"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
@@ -3498,7 +3511,7 @@ msgstr "인증서 갱신"
 msgid "Sync to"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr ""
@@ -3801,8 +3814,8 @@ msgstr "성공적으로 저장되었습니다"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3847,10 +3860,6 @@ msgstr "가동 시간:"
 msgid "URL"
 msgstr "URL"
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr ""
@@ -3974,7 +3983,7 @@ msgid ""
 "Pebble as CA."
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
@@ -4066,6 +4075,9 @@ msgstr ""
 msgid "Your passkeys"
 msgstr ""
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "이 사이트를 비활성화하시겠습니까?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "생성 시간"

+ 136 - 132
app/src/language/messages.pot

@@ -38,7 +38,7 @@ msgstr ""
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106
+#: src/views/site/site_list/columns.tsx:117
 #: src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
@@ -105,7 +105,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -183,7 +183,7 @@ msgstr ""
 msgid "Are you sure you want to delete this item?"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr ""
@@ -316,7 +316,7 @@ msgid "Base information"
 msgstr ""
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr ""
@@ -368,7 +368,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr ""
@@ -706,7 +706,7 @@ msgstr ""
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr ""
@@ -716,41 +716,41 @@ msgstr ""
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:55
+#: src/components/Notification/notifications.ts:37
 #: src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:59
+#: src/components/Notification/notifications.ts:41
 #: src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 msgid "Delete Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 msgid "Delete Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 msgid "Delete site %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 msgid "Delete site %{name} from %{node} successfully"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 msgid "Delete stream %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr ""
 
@@ -808,7 +808,10 @@ msgstr ""
 msgid "Directives"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+msgid "disable"
+msgstr ""
+
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgstr ""
@@ -817,53 +820,53 @@ msgstr ""
 msgid "Disable auto-renewal failed for %{name}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:63
+#: src/components/Notification/notifications.ts:45
 #: src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 msgid "Disable Remote Site Maintenance Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 msgid "Disable Remote Site Maintenance Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:49
 #: src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 msgid "Disable Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 msgid "Disable Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 msgid "Disable site %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 msgid "Disable site %{name} from %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 msgid "Disable stream %{name} from %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr ""
 
@@ -872,17 +875,16 @@ msgstr ""
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91
+#: src/views/site/site_list/columns.tsx:102
 #: src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58
 #: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -910,22 +912,18 @@ msgstr ""
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 
-#: src/views/site/cert/components/ObtainCert.vue:136
-msgid "Do you want to disable auto-cert renewal?"
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+msgid "Do you want to %{action} this site?"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
+#: src/views/site/cert/components/ObtainCert.vue:136
+msgid "Do you want to disable auto-cert renewal?"
 msgstr ""
 
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr ""
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgstr ""
@@ -975,7 +973,7 @@ msgid "Due to the security policies of some browsers, you cannot use passkeys on
 msgstr ""
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1017,7 +1015,10 @@ msgstr ""
 msgid "Email (*)"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+msgid "enable"
+msgstr ""
+
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgstr ""
@@ -1038,53 +1039,53 @@ msgstr ""
 msgid "Enable HTTPS"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:53
 #: src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 msgid "Enable Remote Site Maintenance Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 msgid "Enable Remote Site Maintenance Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:57
 #: src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 msgid "Enable Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 msgid "Enable Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 msgid "Enable site %{name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 msgid "Enable site %{name} on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 msgid "Enable stream %{name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr ""
 
@@ -1102,10 +1103,9 @@ msgstr ""
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176
 #: src/views/stream/StreamList.vue:54
@@ -1114,8 +1114,7 @@ msgid "Enabled"
 msgstr ""
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1125,10 +1124,6 @@ msgstr ""
 msgid "Encrypt website with Let's Encrypt"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr ""
@@ -1166,10 +1161,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1303,18 +1294,26 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr ""
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr ""
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr ""
+
 #: src/constants/errors/backup.ts:25
 msgid "Failed to encrypt data: {0}"
 msgstr ""
@@ -1584,12 +1583,12 @@ msgid "Import Certificate"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -1832,16 +1831,16 @@ msgstr ""
 msgid "Logrotate, by default, is enabled in most mainstream Linux distributions for users who install Nginx UI on the host machine, so you don't need to modify the parameters on this page. For users who install Nginx UI using Docker containers, you can manually enable this option. The crontab task scheduler of Nginx UI will execute the logrotate command at the interval you set in minutes."
 msgstr ""
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 msgid "Maintenance mode disabled successfully"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 msgid "Maintenance mode enabled successfully"
 msgstr ""
 
@@ -1857,7 +1856,7 @@ msgid "Manage Configs"
 msgstr ""
 
 #: src/routes/modules/sites.ts:10
-#: src/views/site/site_list/SiteList.vue:155
+#: src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr ""
 
@@ -1936,8 +1935,8 @@ msgstr ""
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2116,7 +2115,7 @@ msgstr ""
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr ""
@@ -2134,8 +2133,8 @@ msgstr ""
 msgid "Node"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 msgid "Node Group"
@@ -2175,7 +2174,7 @@ msgstr ""
 msgid "Note"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid "Note, if the configuration file include other configurations or certificates, please synchronize them to the remote nodes in advance."
 msgstr ""
@@ -2228,8 +2227,8 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2383,7 +2382,7 @@ msgstr ""
 msgid "Please first add credentials in Certification > DNS Credentials, and then select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid "Please generate new recovery codes in the preferences immediately to prevent lockout."
 msgstr ""
@@ -2595,19 +2594,19 @@ msgstr ""
 msgid "Reload Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 msgid "Reload Nginx on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 msgid "Reload Remote Nginx Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 msgid "Reload Remote Nginx Success"
 msgstr ""
 
@@ -2645,55 +2644,55 @@ msgstr ""
 msgid "Rename"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:27
 #: src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:49
+#: src/components/Notification/notifications.ts:31
 #: src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:77
 #: src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:81
 #: src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 msgid "Rename Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 msgid "Rename Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 
@@ -2751,19 +2750,19 @@ msgstr ""
 msgid "Restart Nginx"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 msgid "Restart Nginx on %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 msgid "Restart Remote Nginx Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 msgid "Restart Remote Nginx Success"
 msgstr ""
 
@@ -2843,37 +2842,37 @@ msgstr ""
 msgid "Save error %{msg}"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:85
 #: src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:107
+#: src/components/Notification/notifications.ts:89
 #: src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 msgid "Save Remote Stream Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 msgid "Save Remote Stream Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 msgid "Save site %{name} to %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 msgid "Save site %{name} to %{node} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 msgid "Save stream %{name} to %{node} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 msgid "Save stream %{name} to %{node} successfully"
 msgstr ""
 
@@ -2955,6 +2954,10 @@ msgstr ""
 msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge."
 msgstr ""
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+msgid "set to maintenance mode"
+msgstr ""
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr ""
@@ -2995,6 +2998,10 @@ msgstr ""
 msgid "Site is enabled"
 msgstr ""
 
+#: src/constants/errors/site.ts:5
+msgid "Site is in maintenance mode"
+msgstr ""
+
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgstr ""
@@ -3087,7 +3094,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80
 #: src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr ""
@@ -3156,38 +3164,38 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:27
+#: src/components/Notification/notifications.ts:9
 #: src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:31
+#: src/components/Notification/notifications.ts:13
 #: src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:19
 #: src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:23
 #: src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr ""
@@ -3197,8 +3205,8 @@ msgstr ""
 msgid "Sync Nodes"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 msgid "Sync strategy"
@@ -3208,7 +3216,7 @@ msgstr ""
 msgid "Sync to"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr ""
@@ -3451,8 +3459,8 @@ msgstr ""
 #: src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67
 #: src/views/user/userColumns.tsx:54
@@ -3496,10 +3504,6 @@ msgstr ""
 msgid "URL"
 msgstr ""
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr ""
@@ -3604,7 +3608,7 @@ msgstr ""
 msgid "When Enabled, Nginx UI will automatically re-register users upon startup. Generally, do not enable this unless you are in a dev environment and using Pebble as CA."
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid "When you enable/disable, delete, or save this site, the nodes set in the Node Group and the nodes selected below will be synchronized."
 msgstr ""
 

+ 146 - 134
app/src/language/ru_RU/app.po

@@ -51,7 +51,7 @@ msgstr "Пользователь ACME"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Действие"
@@ -115,7 +115,7 @@ msgstr "Затем, обновите эту страницу и снова на
 msgid "All"
 msgstr "Все"
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "Все коды восстановления были использованы"
@@ -195,7 +195,7 @@ msgstr "Вы уверены, что хотите удалить этот эле
 msgid "Are you sure you want to delete this item?"
 msgstr "Вы уверены, что хотите удалить этот элемент?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr "Вы уверены, что хотите удалить?"
@@ -331,7 +331,7 @@ msgid "Base information"
 msgstr "Основная информация"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr "Основные"
@@ -384,7 +384,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "Отмена"
@@ -738,7 +738,7 @@ msgstr "Ошибка расшифровки"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "Удалить"
@@ -748,45 +748,45 @@ msgstr "Удалить"
 msgid "Delete Permanently"
 msgstr "Удалить навсегда"
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Сайт %{name} успешно удалён с %{node}"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "Удалить сайт: %{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Поток %{name} успешно удалён с %{node}"
 
@@ -843,7 +843,11 @@ msgstr ""
 msgid "Directives"
 msgstr "Директивы"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "Отключить"
+
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgstr "Отключить"
@@ -852,62 +856,62 @@ msgstr "Отключить"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Не удалось отключить автоматическое продление для %{name}"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
@@ -917,15 +921,14 @@ msgstr "Включение %{conf_name} in %{node_name} успешно"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Отключено"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -953,22 +956,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "Не включайте эту опцию, если не уверены, что она вам нужна."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "Вы хотите включить этот сайт?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Вы хотите отключить автоматическое обновление сертификата?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
-msgstr "Вы хотите отключить этот сайт?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgstr "Вы хотите отключить этот поток?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr "Вы хотите включить этот сайт?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgstr "Хотите включить этот поток?"
@@ -1026,7 +1026,7 @@ msgstr ""
 "запускаются на localhost."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1068,7 +1068,11 @@ msgstr "Электронная почта"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "Включить"
+
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgstr "Включить"
@@ -1090,61 +1094,61 @@ msgstr "Не удалось включить"
 msgid "Enable HTTPS"
 msgstr "Включить TOTP"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Сайт %{name} успешно включён на %{node}"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Сайт %{name} успешно включён на %{node}"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Поток %{name} успешно включён на %{node}"
 
@@ -1162,10 +1166,9 @@ msgstr "Включить TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1173,8 +1176,7 @@ msgid "Enabled"
 msgstr "Включено"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1184,10 +1186,6 @@ msgstr "Активировано успешно"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Использовать для сайта Let's Encrypt"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr "Переменные окружения очищены"
@@ -1224,10 +1222,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "Исполняемый путь"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1379,18 +1373,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "Не удалось отключить %{msg}"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "Не удалось отключить %{msg}"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "Не удалось включить %{msg}"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "Не удалось включить %{msg}"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1695,12 +1699,12 @@ msgid "Import Certificate"
 msgstr "Импортировать сертификат"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -1960,17 +1964,17 @@ msgstr ""
 "вручную включить эту опцию. Планировщик задач crontab Nginx UI будет "
 "выполнять команду logrotate с интервалом, который вы установите в минутах."
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "Отключено успешно"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "Активировано успешно"
@@ -1988,7 +1992,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Конфигурации"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "Сайты"
 
@@ -2064,8 +2068,8 @@ msgstr "Многострочная директива"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2254,7 +2258,7 @@ msgstr "Ошибка разбора конфигурации Nginx"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "Нет"
@@ -2274,8 +2278,8 @@ msgstr ""
 msgid "Node"
 msgstr "Имя узла"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2318,7 +2322,7 @@ msgstr "Недействительно до: %{date}"
 msgid "Note"
 msgstr "Заметка"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2379,8 +2383,8 @@ msgstr "Ок"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2549,7 +2553,7 @@ msgstr ""
 "Credentials, а затем выберите одну из учетных данных ниже, чтобы запросить "
 "API провайдера DNS."
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2784,22 +2788,22 @@ msgstr "Перегрузить"
 msgid "Reload Nginx"
 msgstr "Перезагружается nginx"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Удалить сайт: %{site_name}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Интерфейс Nginx на %{node} успешно обновлен 🎉"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
@@ -2838,58 +2842,58 @@ msgstr "Успешно удалено"
 msgid "Rename"
 msgstr "Переименовать"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "%{orig_path} успешно переименован в %{new_path} на %{env_name}"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Сайт %{name} успешно переименован в %{new_name} на %{node}"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Поток %{name} успешно переименован в %{new_name} на %{node}"
 
@@ -2949,22 +2953,22 @@ msgstr "Перезапуск"
 msgid "Restart Nginx"
 msgstr "Перезапускается"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Интерфейс Nginx на %{node} успешно обновлен 🎉"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
@@ -3049,43 +3053,41 @@ msgstr "Сохранить директиву"
 msgid "Save error %{msg}"
 msgstr "Ошибка сохранения %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Продублированно %{conf_name} в %{node_name}"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Сайт %{name} успешно сохранён на %{node}"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Поток %{name} успешно сохранён на %{node}"
 
@@ -3174,6 +3176,11 @@ msgstr ""
 "Установите рекурсивные серверы имен, чтобы переопределить системные серверы "
 "имен для шага проверки DNS."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "Ошибка переименования удаленной конфигурации"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr "Настройка провайдера проверки DNS01"
@@ -3220,6 +3227,11 @@ msgstr "Конфигурация домена успешно создана"
 msgid "Site is enabled"
 msgstr "Авто Сертификат"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Авто Сертификат"
+
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgstr "Журналы сайта"
@@ -3317,7 +3329,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "Статус"
 
@@ -3392,38 +3405,38 @@ msgstr "Синхронизация"
 msgid "Sync Certificate"
 msgstr "Синхронизировать сертификат"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Сертификат %{cert_name} успешно синхронизирован с %{env_name}"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Сертификат %{cert_name} успешно синхронизирован с %{env_name}"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "Ошибка синхронизации сертификата"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "Сертификат успешно синхронизирован"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Конфигурация синхронизирована %{config_name} с %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Конфигурация синхронизирована %{config_name} с %{env_name} успешно"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "Ошибка синхронизации конфигурации"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "Синхронизация конфигурации успешна"
 
@@ -3433,8 +3446,8 @@ msgstr "Синхронизация конфигурации успешна"
 msgid "Sync Nodes"
 msgstr "Синхронизировать с"
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
@@ -3445,7 +3458,7 @@ msgstr "Синхронизировать сертификат"
 msgid "Sync to"
 msgstr "Синхронизировать с"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr ""
@@ -3768,8 +3781,8 @@ msgstr "Успешно обновлено"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3811,10 +3824,6 @@ msgstr "Аптайм:"
 msgid "URL"
 msgstr "URL"
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr "Использовать OTP"
@@ -3935,7 +3944,7 @@ msgid ""
 "Pebble as CA."
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
@@ -4027,6 +4036,9 @@ msgstr "Ваши старые коды больше не будут работа
 msgid "Your passkeys"
 msgstr ""
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Вы хотите отключить этот сайт?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "Создан в"

+ 146 - 134
app/src/language/tr_TR/app.po

@@ -47,7 +47,7 @@ msgstr "ACME Kullanıcısı"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Eylem"
@@ -112,7 +112,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -195,7 +195,7 @@ msgstr "Bu öğeyi kalıcı olarak silmek istediğinizden emin misiniz?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Bu öğeyi silmek istediğinizden emin misiniz?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr "Silmek istediğine emin misin?"
@@ -332,7 +332,7 @@ msgid "Base information"
 msgstr "Temel bilgiler"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr "Temel"
@@ -385,7 +385,7 @@ msgstr "CADizini"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "İptal"
@@ -745,7 +745,7 @@ msgstr "Açıklama"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "Sil"
@@ -755,48 +755,48 @@ msgstr "Sil"
 msgid "Delete Permanently"
 msgstr "Kalıcı Olarak Sil"
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "Siteyi sil: %{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
@@ -854,7 +854,11 @@ msgstr ""
 msgid "Directives"
 msgstr "Yönergeler"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "Devre Dışı"
+
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgstr "Devre Dışı"
@@ -863,72 +867,72 @@ msgstr "Devre Dışı"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "%{name} için otomatik yenilemeyi devre dışı bırakma başarısız oldu"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "oldu"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr ""
@@ -940,15 +944,14 @@ msgstr ""
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Devre dışı"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -976,22 +979,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "Bu seçeneği, ihtiyacınız olduğundan emin olmadıkça etkinleştirmeyin."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "Bu siteyi etkinleştirmek istiyor musunuz?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Otomatik sertifika yenilemeyi devre dışı bırakmak istiyor musunuz?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
-msgstr "Bu siteyi devre dışı bırakmak istiyor musunuz?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgstr "Bu akışı devre dışı bırakmak istiyor musunuz?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr "Bu siteyi etkinleştirmek istiyor musunuz?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgstr "Bu akışı etkinleştirmek istiyor musunuz?"
@@ -1049,7 +1049,7 @@ msgstr ""
 "kullanamazsınız."
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1091,7 +1091,11 @@ msgstr "E-posta"
 msgid "Email (*)"
 msgstr "E-posta(*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "Etkinleştir"
+
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgstr "Etkinleştir"
@@ -1113,72 +1117,72 @@ msgstr "Etkinleştirme başarısız"
 msgid "Enable HTTPS"
 msgstr "TOTP'yi Etkinleştir"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "oldu"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "oldu"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "oldu"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr ""
@@ -1199,10 +1203,9 @@ msgstr "TOTP'yi Etkinleştir"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1210,8 +1213,7 @@ msgid "Enabled"
 msgstr "Etkin"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1221,10 +1223,6 @@ msgstr "Başarıyla etkinleştirildi"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Let's Encrypt ile web sitesini şifreleyin"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr "Ortam değişkenleri temizlendi"
@@ -1261,10 +1259,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "Yürütülebilir Dosya Yolu"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1416,18 +1410,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "Devre dışı bırakılamadı %{msg}"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "Devre dışı bırakılamadı %{msg}"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "Etkinleştirilemedi %{msg}"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "Etkinleştirilemedi %{msg}"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1733,12 +1737,12 @@ msgid "Import Certificate"
 msgstr "Sertifika İçe Aktar"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -1999,17 +2003,17 @@ msgstr ""
 "etkinleştirebilir. Nginx UI'nin crontab görev zamanlayıcısı, belirlediğiniz "
 "dakika aralığında logrotate komutunu çalıştıracaktır."
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "Başarıyla devre dışı bırakıldı"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "Başarıyla etkinleştirildi"
@@ -2029,7 +2033,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Yapılandırmaları Yönet"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 #, fuzzy
 msgid "Manage Sites"
 msgstr "Siteleri Yönet"
@@ -2119,8 +2123,8 @@ msgstr "Çok Hatlı Direktif"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2327,7 +2331,7 @@ msgstr "Nginx Yapılandırma Ayrıştırma Hatası"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 #, fuzzy
 msgid "No"
@@ -2348,8 +2352,8 @@ msgstr ""
 msgid "Node"
 msgstr "Yeni Ad"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2398,7 +2402,7 @@ msgstr "Önce Geçerli Değil: %{date}"
 msgid "Note"
 msgstr "Not"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2465,8 +2469,8 @@ msgstr "Tamam"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2664,7 +2668,7 @@ msgstr ""
 "ekleyin ve ardından DNS sağlayıcısının API'sini istemek için aşağıdaki "
 "kimlik bilgilerinden birini seçin."
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2930,22 +2934,22 @@ msgstr "Tekrar yükle"
 msgid "Reload Nginx"
 msgstr "Nginx'i yeniden yükleme"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Siteyi sil: %{site_name}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Nginx kullanıcı arayüzü %{node} üzerinde başarıyla yükseltildi 🎉"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
@@ -2990,67 +2994,67 @@ msgstr "Başarıyla kaldırıldı"
 msgid "Rename"
 msgstr "Yeniden Adlandır"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr ""
@@ -3121,24 +3125,24 @@ msgstr "Yeniden başlat"
 msgid "Restart Nginx"
 msgstr "Yeniden Başlatma"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Nginx kullanıcı arayüzü %{node} üzerinde başarıyla yükseltildi 🎉"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
@@ -3229,45 +3233,43 @@ msgstr "Direktifi Kaydet"
 msgid "Save error %{msg}"
 msgstr "Hatayı kaydet %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
@@ -3366,6 +3368,11 @@ msgstr ""
 "Özyinelemeli ad sunucularını, DNS zorluğu adımı için sistem ad sunucularını "
 "geçersiz kılacak şekilde ayarlayın."
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
+
 #: src/language/constants.ts:11
 #, fuzzy
 msgid "Setting DNS01 challenge provider"
@@ -3418,6 +3425,11 @@ msgstr "Alan Adı Yapılandırması Başarıyla Oluşturuldu"
 msgid "Site is enabled"
 msgstr "Devre dışı"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Devre dışı"
+
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 msgid "Site Logs"
@@ -3523,7 +3535,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 #, fuzzy
 msgid "Status"
 msgstr "Durum"
@@ -3607,42 +3620,42 @@ msgstr "Eşitle"
 msgid "Sync Certificate"
 msgstr "Senkronizasyon Sertifikası"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Sertifika %{cert_name}'ı %{env_name} ile başarıyla senkronize edin"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Sertifika %{cert_name}'ı %{env_name} ile başarıyla senkronize edin"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Senkronizasyon Sertifikası Hatası"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Senkronizasyon Sertifikası Başarısı"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Config %{config_name} ile %{env_name}'i başarıyla senkronize edin"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Config %{config_name} ile %{env_name}'i başarıyla senkronize edin"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Senkronizasyon Yapılandırma Hatası"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Senkronizasyon Yapılandırması Başarılı"
@@ -3653,8 +3666,8 @@ msgstr "Senkronizasyon Yapılandırması Başarılı"
 msgid "Sync Nodes"
 msgstr "Şununla senkronize et"
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
@@ -3666,7 +3679,7 @@ msgstr "Senkronizasyon Sertifikası"
 msgid "Sync to"
 msgstr "Şununla senkronize et"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr ""
@@ -4023,8 +4036,8 @@ msgstr "Güncellendi"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #, fuzzy
@@ -4075,10 +4088,6 @@ msgstr "Çalışma süresi:"
 msgid "URL"
 msgstr "URL"
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #, fuzzy
 msgid "Use OTP"
@@ -4216,7 +4225,7 @@ msgstr ""
 "yeniden kaydeder. Genel olarak, bir geliştirme ortamında değilseniz ve CA "
 "olarak Pebble kullanmıyorsanız bunu etkinleştirmeyin."
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
@@ -4318,6 +4327,9 @@ msgstr ""
 msgid "Your passkeys"
 msgstr "Geçiş anahtarlarınız"
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Bu siteyi devre dışı bırakmak istiyor musunuz?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "Oluşturulma Tarihi"

+ 147 - 136
app/src/language/vi_VN/app.po

@@ -45,7 +45,7 @@ msgstr "Người dùng"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "Hành động"
@@ -113,7 +113,7 @@ msgstr ""
 msgid "All"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
@@ -202,7 +202,7 @@ msgstr "Bạn chắc chắn muốn xóa nó "
 msgid "Are you sure you want to delete this item?"
 msgstr "Bạn chắc chắn muốn xóa nó "
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #, fuzzy
 msgid "Are you sure you want to delete?"
@@ -344,7 +344,7 @@ msgid "Base information"
 msgstr "Thông tin"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 #, fuzzy
 msgid "Basic"
@@ -400,7 +400,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "Huỷ"
@@ -771,7 +771,7 @@ msgstr "Mô tả"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "Xoá"
@@ -781,46 +781,46 @@ msgstr "Xoá"
 msgid "Delete Permanently"
 msgstr ""
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "Xoá trang web: %{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -880,7 +880,11 @@ msgstr ""
 msgid "Directives"
 msgstr "Directives"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "Tắt"
+
 #: src/views/stream/StreamList.vue:207
 #, fuzzy
 msgid "Disable"
@@ -890,62 +894,62 @@ msgstr "Tắt"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Tắt tự động gia hạn SSL cho %{name} thất bại"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
@@ -955,15 +959,14 @@ msgstr "Đã bật %{conf_name} trên %{node_name}"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "Đã tắt"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -991,25 +994,20 @@ msgstr ""
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "Bạn muốn bật trang web này ?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Bạn muốn tắt tự động gia hạn chứng chỉ SSL ?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-#, fuzzy
-msgid "Do you want to disable this site?"
-msgstr "Bạn muốn tắt trang web này ?"
-
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 msgid "Do you want to disable this stream?"
 msgstr "Bạn muốn tắt trang web này ?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-#, fuzzy
-msgid "Do you want to enable this site?"
-msgstr "Bạn muốn bật trang web này ?"
-
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 msgid "Do you want to enable this stream?"
@@ -1068,7 +1066,7 @@ msgid ""
 msgstr ""
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1113,7 +1111,11 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgstr "Email (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "Đã bật"
+
 #: src/views/stream/StreamList.vue:215
 #, fuzzy
 msgid "Enable"
@@ -1137,62 +1139,62 @@ msgstr "Bật không thành công"
 msgid "Enable HTTPS"
 msgstr "Bật TLS"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
@@ -1212,10 +1214,9 @@ msgstr "Bật TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1223,8 +1224,7 @@ msgid "Enabled"
 msgstr "Đã bật"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1234,10 +1234,6 @@ msgstr "Đã bật"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Bảo mật trang web với Let's Encrypt"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 #, fuzzy
 msgid "Environment variables cleaned"
@@ -1276,10 +1272,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "Đường dẫn thực thi"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1433,18 +1425,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "Không thể tắt %{msg}"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "Không thể tắt %{msg}"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "Không thể bật %{msg}"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "Không thể bật %{msg}"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1744,12 +1746,12 @@ msgid "Import Certificate"
 msgstr "Chứng chỉ"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr ""
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -2016,17 +2018,17 @@ msgid ""
 "minutes."
 msgstr ""
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "Đã tắt thành công"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "Đã bật"
@@ -2045,7 +2047,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "Quản lý cấu hình"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "Quản lý Website"
 
@@ -2127,8 +2129,8 @@ msgstr "Single Directive"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2320,7 +2322,7 @@ msgstr "Lỗi phân tích cú pháp cấu hình Nginx"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "Không"
@@ -2340,8 +2342,8 @@ msgstr ""
 msgid "Node"
 msgstr "Username"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2385,7 +2387,7 @@ msgstr "Không hợp lệ trước: %{date}"
 msgid "Note"
 msgstr "Ghi chú"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2445,8 +2447,8 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2612,7 +2614,7 @@ msgstr ""
 "Trước tiên, vui lòng thêm thông tin xác thực trong Chứng chỉ > Thông tin xác "
 "thực DNS, sau đó chọn nhà cung cấp DNS"
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2847,22 +2849,22 @@ msgstr "Tải lại"
 msgid "Reload Nginx"
 msgstr "Tải lại nginx"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Xoá trang web: %{site_name}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Cập nhật thành công"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
@@ -2904,62 +2906,62 @@ msgstr "Xoá thành công"
 msgid "Rename"
 msgstr "Username"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -3026,22 +3028,22 @@ msgstr "Khởi động lại"
 msgid "Restart Nginx"
 msgstr "Đang khởi động lại"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Cập nhật thành công"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
@@ -3127,44 +3129,42 @@ msgstr "Lưu Directive"
 msgid "Save error %{msg}"
 msgstr "Đã xảy ra lỗi khi lưu %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 #, fuzzy
 msgid "Save Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 msgid "Save Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -3251,6 +3251,11 @@ msgid ""
 "step of DNS challenge."
 msgstr ""
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "Gia hạn chứng chỉ SSL thất bại"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr "Sử dụng DNS01 để xác thực SSL"
@@ -3298,6 +3303,11 @@ msgstr "Tên miền đã được tạo"
 msgid "Site is enabled"
 msgstr "Đã tắt"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Đã tắt"
+
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 msgid "Site Logs"
@@ -3397,7 +3407,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "Trạng thái"
 
@@ -3473,42 +3484,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgstr "Gia hạn chứng chỉ SSL"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 #, fuzzy
 msgid "Sync Certificate Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 #, fuzzy
 msgid "Sync Certificate Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 #, fuzzy
 msgid "Sync Config Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 #, fuzzy
 msgid "Sync Config Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
@@ -3518,8 +3529,8 @@ msgstr "Gia hạn chứng chỉ SSL thành công"
 msgid "Sync Nodes"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
@@ -3530,7 +3541,7 @@ msgstr "Gia hạn chứng chỉ SSL"
 msgid "Sync to"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr ""
@@ -3829,8 +3840,8 @@ msgstr "Cập nhật thành công"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3875,10 +3886,6 @@ msgstr "Thời gian hoạt động:"
 msgid "URL"
 msgstr ""
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr ""
@@ -4002,7 +4009,7 @@ msgid ""
 "Pebble as CA."
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
@@ -4094,6 +4101,10 @@ msgstr ""
 msgid "Your passkeys"
 msgstr ""
 
+#, fuzzy
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Bạn muốn tắt trang web này ?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "Ngày tạo"

+ 147 - 136
app/src/language/zh_CN/app.po

@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "POT-Creation-Date: \n"
-"PO-Revision-Date: 2025-04-07 18:35+0800\n"
+"PO-Revision-Date: 2025-04-08 10:49+0800\n"
 "Last-Translator: 0xJacky <me@jackyu.cn>\n"
 "Language-Team: Chinese (Simplified Han script) <https://weblate.nginxui.com/"
 "projects/nginx-ui/frontend/zh_Hans/>\n"
@@ -49,7 +49,7 @@ msgstr "ACME 用户"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "操作"
@@ -113,7 +113,7 @@ msgstr "然后,刷新此页面并再次点击添加 Passkey。"
 msgid "All"
 msgstr "全部"
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "所有恢复码都已被使用"
@@ -191,7 +191,7 @@ msgstr "您确定要永久删除此项目吗?"
 msgid "Are you sure you want to delete this item?"
 msgstr "你确定要删除这个项目吗?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr "您确定要删除吗?"
@@ -322,7 +322,7 @@ msgid "Base information"
 msgstr "基本信息"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr "基本"
@@ -374,7 +374,7 @@ msgstr "CADir"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "取消"
@@ -721,7 +721,7 @@ msgstr "解密失败"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "删除"
@@ -731,39 +731,39 @@ msgstr "删除"
 msgid "Delete Permanently"
 msgstr "彻底删除"
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr "删除远程站点错误"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr "删除远程站点成功"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 msgid "Delete Remote Stream Error"
 msgstr "删除远程 Stream 错误"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 msgid "Delete Remote Stream Success"
 msgstr "删除远程 Stream 成功"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 msgid "Delete site %{name} from %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "成功从 %{node} 中删除站点 %{name}"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "删除站点: %{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "成功从 %{node} 中删除站点 %{name}"
 
@@ -820,7 +820,10 @@ msgstr "指令 index 超出范围"
 msgid "Directives"
 msgstr "指令"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+msgid "disable"
+msgstr "禁用"
+
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgstr "禁用"
@@ -829,51 +832,51 @@ msgstr "禁用"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "关闭 %{name} 自动续签失败"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr "禁用远程站点错误"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 msgid "Disable Remote Site Maintenance Error"
 msgstr "禁用远程站点维护错误"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 msgid "Disable Remote Site Maintenance Success"
 msgstr "禁用远程站点维护成功"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr "禁用远程站点成功"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 msgid "Disable Remote Stream Error"
 msgstr "禁用远程 Stream 错误"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 msgid "Disable Remote Stream Success"
 msgstr "禁用远程 Stream成功"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 msgid "Disable site %{name} from %{node} failed"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "停用站点 %{name} 维护 %{node} 失败"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "成功停用站点 %{name} 上 %{node} 的维护功能"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
@@ -882,15 +885,14 @@ msgstr "在 %{node} 上禁用 %{name} 成功"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "禁用"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -918,29 +920,25 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "除非确定需要,否则不要启用该选项。"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+msgid "Do you want to %{action} this site?"
+msgstr "您想将这个网站%{action}吗?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "你想禁用自动更新证书吗?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
-msgstr "你想停用这个网站吗?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgstr "你想停用这个 Stream 吗?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr "你想启用这个网站吗?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgstr "你想启用这个 Stream 吗?"
 
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:44
 msgid "Do you want to enable TLS?"
-msgstr "你想启用TLS吗?"
+msgstr "你想启用 TLS 吗?"
 
 #: src/views/site/ngx_conf/NgxServer.vue:76
 msgid "Do you want to remove this server?"
@@ -986,7 +984,7 @@ msgstr ""
 "使用 Passkey。"
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1027,7 +1025,10 @@ msgstr "邮箱"
 msgid "Email (*)"
 msgstr "邮箱 (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+msgid "enable"
+msgstr "启用"
+
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgstr "启用"
@@ -1048,51 +1049,51 @@ msgstr "启用失败"
 msgid "Enable HTTPS"
 msgstr "启用 HTTPS"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr "启用远程站点错误"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 msgid "Enable Remote Site Maintenance Error"
 msgstr "在 %{node} 上启用 %{site} 失败"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 msgid "Enable Remote Site Maintenance Success"
 msgstr "成功启用远程站点维护"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr "启用远程站点成功"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 msgid "Enable Remote Stream Error"
 msgstr "启用远程 Steam 错误"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 msgid "Enable Remote Stream Success"
 msgstr "启用远程 Stream 成功"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "在 %{node} 中为 %{name} 启用维护模式失败"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "在 %{node} 上成功启用站点 %{name} 维护模式"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 msgid "Enable site %{name} on %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "在 %{node} 上启用 %{name} 成功"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "在 %{node} 上启用 %{name} 成功"
 
@@ -1110,10 +1111,9 @@ msgstr "启用 TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1121,8 +1121,7 @@ msgid "Enabled"
 msgstr "启用"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1132,10 +1131,6 @@ msgstr "启用成功"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "用 Let's Encrypt 对网站进行加密"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr "进入维护"
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr "环境变量已清理"
@@ -1171,10 +1166,6 @@ msgstr "内容处理错误"
 msgid "Executable Path"
 msgstr "可执行文件路径"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr "退出维护"
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1308,18 +1299,26 @@ msgstr "解密 Nginx 目录失败:{0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr "解密 Nginx UI 目录失败:{0}"
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "禁用失败 %{msg}"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "停用维护模式失败 %{msg}"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "启用失败 %{msg}"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "启用维护模式失败 %{msg}"
+
 #: src/constants/errors/backup.ts:25
 msgid "Failed to encrypt data: {0}"
 msgstr "加密数据失败:{0}"
@@ -1599,12 +1598,12 @@ msgid "Import Certificate"
 msgstr "导入证书"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 msgid "Indexed"
 msgstr "已索引"
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr "索引中..."
 
@@ -1857,16 +1856,16 @@ msgstr ""
 "Nginx 用户界面的用户,您可以手动启用该选项。Nginx UI 的定时任务任务调度器将按"
 "照您设置的时间间隔(以分钟为单位)执行 logrotate 命令。"
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr "维护模式"
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 msgid "Maintenance mode disabled successfully"
 msgstr "成功禁用维护模式"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 msgid "Maintenance mode enabled successfully"
 msgstr "成功启用维护模式"
 
@@ -1883,7 +1882,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "配置管理"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "网站管理"
 
@@ -1959,8 +1958,8 @@ msgstr "多行指令"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2139,7 +2138,7 @@ msgstr "Nginx UI 配置已恢复,几秒钟后将自动重启。"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "取消"
@@ -2157,8 +2156,8 @@ msgstr "未选择记录"
 msgid "Node"
 msgstr "节点"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 msgid "Node Group"
@@ -2198,7 +2197,7 @@ msgstr "此前无效: %{date}"
 msgid "Note"
 msgstr "注意"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2255,8 +2254,8 @@ msgstr "确定"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2420,7 +2419,7 @@ msgstr ""
 "请首先在 “证书”> “DNS 凭证” 中添加凭证,然后在下方选择一个凭证,请求 DNS 提供"
 "商的 API。"
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2640,19 +2639,19 @@ msgstr "重载"
 msgid "Reload Nginx"
 msgstr "重载 Nginx"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "在 %{node} 上重载 Nginx 失败,响应:%{resp}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 msgid "Reload Nginx on %{node} successfully"
 msgstr "在 %{node} 上重载 Nginx 成功"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 msgid "Reload Remote Nginx Error"
 msgstr "重载远程 Nginx 错误"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 msgid "Reload Remote Nginx Success"
 msgstr "重载远程 Nginx 成功"
 
@@ -2690,51 +2689,51 @@ msgstr "删除成功"
 msgid "Rename"
 msgstr "重命名"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "成功将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path}"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "成功将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path}"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "远程配置重命名错误"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "重命名远程配置成功"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr "重命名远程站点错误"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr "重命名远程站点成功"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 msgid "Rename Remote Stream Error"
 msgstr "重命名远程 Stream 错误"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 msgid "Rename Remote Stream Success"
 msgstr "重命名远程 Stream成功"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
@@ -2792,19 +2791,19 @@ msgstr "重启"
 msgid "Restart Nginx"
 msgstr "重启 Nginx"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "在 %{node} 上重启 Nginx 失败,响应:%{resp}"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 msgid "Restart Nginx on %{node} successfully"
 msgstr "在 %{node} 上重启 Nginx 成功"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 msgid "Restart Remote Nginx Error"
 msgstr "重启远程 Nginx 错误"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 msgid "Restart Remote Nginx Success"
 msgstr "重启远程 Nginx 成功"
 
@@ -2884,37 +2883,35 @@ msgstr "保存指令"
 msgid "Save error %{msg}"
 msgstr "保存错误 %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr "保存远程站点错误"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr "保存远程站点成功"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 msgid "Save Remote Stream Error"
 msgstr "保存远程 Stream 错误"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 msgid "Save Remote Stream Success"
 msgstr "保存远程 Stream 成功"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 msgid "Save site %{name} to %{node} failed"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 msgid "Save site %{name} to %{node} successfully"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 msgid "Save stream %{name} to %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
@@ -2997,6 +2994,10 @@ msgid ""
 "step of DNS challenge."
 msgstr "为 DNS 挑战步骤设置递归域名服务器以覆盖操作系统的域名服务器设置。"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+msgid "set to maintenance mode"
+msgstr "设置为维护模式"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr "使用 DNS01 Challenge 提供商"
@@ -3045,6 +3046,10 @@ msgstr "网站配置创建成功"
 msgid "Site is enabled"
 msgstr "网站已启用"
 
+#: src/constants/errors/site.ts:5
+msgid "Site is in maintenance mode"
+msgstr "网站处于维护模式"
+
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgstr "站点列表"
@@ -3136,7 +3141,8 @@ msgstr "开始还原"
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "状态"
 
@@ -3209,35 +3215,35 @@ msgstr "同步"
 msgid "Sync Certificate"
 msgstr "同步证书"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "证书 %{cert_name} 已成功同步到 %{env_name}"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "证书 %{cert_name} 已成功同步到 %{env_name}"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "同步证书错误"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "同步证书成功"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "配置 %{config_name} 成功同步到 %{env_name}"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "配置 %{config_name} 成功同步到 %{env_name}"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "同步配置错误"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "同步配置成功"
 
@@ -3246,8 +3252,8 @@ msgstr "同步配置成功"
 msgid "Sync Nodes"
 msgstr "同步节点"
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 msgid "Sync strategy"
@@ -3257,7 +3263,7 @@ msgstr "同步策略"
 msgid "Sync to"
 msgstr "同步到"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr "同步"
@@ -3551,8 +3557,8 @@ msgstr "更新成功"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3594,10 +3600,6 @@ msgstr "运行时间:"
 msgid "URL"
 msgstr "URL"
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr "链接"
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr "使用二步验证码"
@@ -3715,7 +3717,7 @@ msgstr ""
 "启用后,Nginx UI 将在启动时自动重新注册用户。一般情况下,除非在开发环境中使"
 "用 Pebble 作为 CA,否则不要启用此功能。"
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
@@ -3812,6 +3814,15 @@ msgstr "您的旧代码将不再有效。"
 msgid "Your passkeys"
 msgstr "你的 Passkeys"
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "你想停用这个网站吗?"
+
+#~ msgid "Enter Maintenance"
+#~ msgstr "进入维护"
+
+#~ msgid "URLs"
+#~ msgstr "链接"
+
 #~ msgid "Created At"
 #~ msgstr "创建时间"
 

+ 146 - 134
app/src/language/zh_TW/app.po

@@ -54,7 +54,7 @@ msgstr "ACME 用戶"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
-#: src/views/site/site_list/columns.tsx:106 src/views/stream/StreamList.vue:74
+#: src/views/site/site_list/columns.tsx:117 src/views/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgstr "操作"
@@ -118,7 +118,7 @@ msgstr "然後,重新整理此頁面並再次點選新增通行密鑰。"
 msgid "All"
 msgstr "全部"
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgstr "所有恢復碼都已使用完畢"
@@ -197,7 +197,7 @@ msgstr "您確定要永久刪除此項目嗎?"
 msgid "Are you sure you want to delete this item?"
 msgstr "您確定要刪除此項目嗎?"
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgstr "您確定要刪除嗎?"
@@ -333,7 +333,7 @@ msgid "Base information"
 msgstr "基本資訊"
 
 #: src/views/config/ConfigEditor.vue:290
-#: src/views/site/site_edit/RightSettings.vue:79
+#: src/views/site/site_edit/RightSettings.vue:53
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgstr "基本"
@@ -385,7 +385,7 @@ msgstr "CADir"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
-#: src/views/site/site_edit/RightSettings.vue:55
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:122
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgstr "取消"
@@ -738,7 +738,7 @@ msgstr "解密失敗"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
-#: src/views/site/site_list/SiteList.vue:238
+#: src/views/site/site_list/SiteList.vue:172
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgstr "刪除"
@@ -748,39 +748,39 @@ msgstr "刪除"
 msgid "Delete Permanently"
 msgstr "永久刪除"
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgstr "刪除遠端網站錯誤"
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgstr "刪除遠端網站成功"
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 msgid "Delete Remote Stream Error"
 msgstr "刪除遠端串流錯誤"
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 msgid "Delete Remote Stream Success"
 msgstr "刪除遠端串流成功"
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 msgid "Delete site %{name} from %{node} failed"
 msgstr "從 %{node} 刪除網站 %{name} 失敗"
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "成功從 %{node} 移除站點 %{name}"
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgstr "刪除網站:%{site_name}"
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "部署 %{conf_name} 至 %{node} 失敗"
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "成功從 %{node} 移除站點 %{name}"
 
@@ -837,7 +837,11 @@ msgstr "指令索引超出範圍"
 msgid "Directives"
 msgstr "指令"
 
-#: src/views/site/site_list/SiteList.vue:193
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:113
+#, fuzzy
+msgid "disable"
+msgstr "停用"
+
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgstr "停用"
@@ -846,58 +850,58 @@ msgstr "停用"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "關閉 %{name} 自動續簽失敗"
 
-#: src/components/Notification/notifications.ts:63 src/language/constants.ts:52
+#: src/components/Notification/notifications.ts:45 src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgstr "禁用遠端站点錯誤"
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgstr "禁用遠端站点錯誤"
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgstr "禁用遠端站点成功"
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgstr "禁用遠端站点成功"
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 msgid "Disable Remote Stream Error"
 msgstr "禁用遠端串流錯誤"
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 msgid "Disable Remote Stream Success"
 msgstr "禁用遠端串流成功"
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
@@ -907,15 +911,14 @@ msgstr "成功禁用 %{node} 中的站点 %{site}"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:159
 #: src/views/site/site_edit/SiteEdit.vue:199
-#: src/views/site/site_list/columns.tsx:78
-#: src/views/site/site_list/columns.tsx:91 src/views/stream/StreamEdit.vue:182
+#: src/views/site/site_list/columns.tsx:102 src/views/stream/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgstr "停用"
 
-#: src/views/site/site_edit/RightSettings.vue:42
-#: src/views/site/site_list/SiteList.vue:103
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:56
 #: src/views/stream/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
@@ -943,22 +946,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "除非您確定需要,否則不要啟用此選項。"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
+#, fuzzy
+msgid "Do you want to %{action} this site?"
+msgstr "您要啟用此網站嗎?"
+
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "您要停用自動憑證續訂嗎?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to disable this site?"
-msgstr "您想停用這個網站嗎?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgstr "您要禁用此 Stream 嗎?"
 
-#: src/views/site/site_edit/RightSettings.vue:51
-msgid "Do you want to enable this site?"
-msgstr "您要啟用此網站嗎?"
-
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgstr "您要啟用此 Stream 嗎?"
@@ -1011,7 +1011,7 @@ msgstr ""
 "通行密鑰。"
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
-#: src/views/site/site_list/SiteList.vue:224
+#: src/views/site/site_list/SiteList.vue:158
 #: src/views/stream/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
@@ -1052,7 +1052,11 @@ msgstr "電子郵件"
 msgid "Email (*)"
 msgstr "電子郵件 (*)"
 
-#: src/views/site/site_list/SiteList.vue:201
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:112
+#, fuzzy
+msgid "enable"
+msgstr "啟用"
+
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgstr "啟用"
@@ -1074,60 +1078,60 @@ msgstr "啟用失敗"
 msgid "Enable HTTPS"
 msgstr "啟用 TOTP"
 
-#: src/components/Notification/notifications.ts:71 src/language/constants.ts:54
+#: src/components/Notification/notifications.ts:53 src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgstr "啟用遠端站點錯誤"
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgstr "啟用遠端站點錯誤"
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgstr "啟用遠端站點成功"
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgstr "啟用遠端站點成功"
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgstr "啟用遠端站點錯誤"
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgstr "啟用遠端站點成功"
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "成功啟用站點 %{site} 在 %{node}"
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "成功啟用站點 %{site} 在 %{node}"
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "成功啟用站點 %{site} 在 %{node}"
@@ -1146,10 +1150,9 @@ msgstr "啟用 TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
-#: src/views/site/site_edit/RightSettings.vue:82
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:155
 #: src/views/site/site_edit/SiteEdit.vue:193
-#: src/views/site/site_list/columns.tsx:74
-#: src/views/site/site_list/columns.tsx:90
+#: src/views/site/site_list/columns.tsx:101
 #: src/views/stream/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
@@ -1157,8 +1160,7 @@ msgid "Enabled"
 msgstr "已啟用"
 
 #: src/views/site/site_add/SiteAdd.vue:40
-#: src/views/site/site_edit/RightSettings.vue:33
-#: src/views/site/site_list/SiteList.vue:95
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:40
 #: src/views/stream/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
@@ -1168,10 +1170,6 @@ msgstr "成功啟用"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "用 Let's Encrypt 對網站進行加密"
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgstr "環境變數已清理"
@@ -1208,10 +1206,6 @@ msgstr ""
 msgid "Executable Path"
 msgstr "可執行檔路徑"
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
@@ -1363,18 +1357,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 
-#: src/views/site/site_edit/RightSettings.vue:45
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:63
 #: src/views/stream/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgstr "停用 %{msg} 失敗"
 
-#: src/views/site/site_edit/RightSettings.vue:36
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:95
+#, fuzzy
+msgid "Failed to disable maintenance mode %{msg}"
+msgstr "停用 %{msg} 失敗"
+
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:47
 #: src/views/stream/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgstr "啟用 %{msg} 失敗"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+#, fuzzy
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr "啟用 %{msg} 失敗"
+
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
@@ -1674,13 +1678,13 @@ msgid "Import Certificate"
 msgstr "導入憑證"
 
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 #, fuzzy
 msgid "Indexed"
 msgstr "網站首頁 (index)"
 
 #: src/views/nginx_log/NginxLogList.vue:134
-#: src/views/site/site_list/SiteList.vue:159
+#: src/views/site/site_list/SiteList.vue:125
 msgid "Indexing..."
 msgstr ""
 
@@ -1939,17 +1943,17 @@ msgstr ""
 "的用戶,您可以手動啟用此選項。Nginx UI 的 crontab 任務調度器將按照您設定的分"
 "鐘間隔執行 logrotate 命令。"
 
-#: src/views/site/site_list/columns.tsx:82
-#: src/views/site/site_list/columns.tsx:92
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:163
+#: src/views/site/site_list/columns.tsx:103
 msgid "Maintenance"
 msgstr ""
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgstr "成功停用"
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgstr "成功啟用"
@@ -1966,7 +1970,7 @@ msgstr ""
 msgid "Manage Configs"
 msgstr "管理設定"
 
-#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:155
+#: src/routes/modules/sites.ts:10 src/views/site/site_list/SiteList.vue:121
 msgid "Manage Sites"
 msgstr "管理網站"
 
@@ -2042,8 +2046,8 @@ msgstr "多行指令"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
-#: src/views/site/site_edit/RightSettings.vue:88
-#: src/views/site/site_list/columns.tsx:16
+#: src/views/site/site_edit/RightSettings.vue:64
+#: src/views/site/site_list/columns.tsx:17
 #: src/views/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2230,7 +2234,7 @@ msgstr "Nginx 設定解析錯誤"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
-#: src/views/site/site_list/SiteList.vue:227
+#: src/views/site/site_list/SiteList.vue:161
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgstr "取消"
@@ -2250,8 +2254,8 @@ msgstr ""
 msgid "Node"
 msgstr "節點名稱"
 
-#: src/views/site/site_edit/RightSettings.vue:91
-#: src/views/site/site_list/columns.tsx:50
+#: src/views/site/site_edit/RightSettings.vue:67
+#: src/views/site/site_list/columns.tsx:63
 #: src/views/stream/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
@@ -2294,7 +2298,7 @@ msgstr "此前無效: %{date}"
 msgid "Note"
 msgstr "備註"
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 "Note, if the configuration file include other configurations or "
@@ -2351,8 +2355,8 @@ msgstr "確定"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
-#: src/views/site/site_edit/RightSettings.vue:54
-#: src/views/site/site_list/SiteList.vue:228
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:121
+#: src/views/site/site_list/SiteList.vue:162
 #: src/views/stream/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2518,7 +2522,7 @@ msgstr ""
 "請先在「憑證」 > 「DNS 認證」中新增認證,然後選擇以下認證之一以請求 DNS 供應"
 "商的 API。"
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2743,22 +2747,22 @@ msgstr "重新載入"
 msgid "Reload Nginx"
 msgstr "正在重新載入 Nginx"
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "從 %{node} 移除站點 %{site} 時發生錯誤,回應:%{resp}"
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgstr "成功升級 %{node} 上的 Nginx UI 🎉"
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgstr "重命名遠端遠端站點時發生錯誤"
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgstr "重新命名遠端站點成功"
@@ -2797,57 +2801,57 @@ msgstr "移除成功"
 msgid "Rename"
 msgstr "重命名"
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "成功將 %{env_name} 上的 %{orig_path} 重命名為 %{new_path}"
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "成功將 %{env_name} 上的 %{orig_path} 重命名為 %{new_path}"
 
-#: src/components/Notification/notifications.ts:45 src/language/constants.ts:42
+#: src/components/Notification/notifications.ts:27 src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgstr "重命名遠端配置錯誤"
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgstr "重新命名遠端配置成功"
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgstr "重命名遠端遠端站點時發生錯誤"
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgstr "重新命名遠端站點成功"
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgstr "重命名遠端遠端站點時發生錯誤"
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgstr "重新命名遠端站點成功"
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
@@ -2907,22 +2911,22 @@ msgstr "重新啟動"
 msgid "Restart Nginx"
 msgstr "正在重新啟動"
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "啟用站點 %{site} 在 %{node} 時發生錯誤,回應:%{resp}"
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgstr "成功升級 %{node} 上的 Nginx UI 🎉"
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgstr "重命名遠端遠端站點時發生錯誤"
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgstr "重新命名遠端站點成功"
@@ -3007,42 +3011,40 @@ msgstr "儲存指令"
 msgid "Save error %{msg}"
 msgstr "儲存錯誤 %{msg}"
 
-#: src/components/Notification/notifications.ts:103
-#: src/language/constants.ts:48
+#: src/components/Notification/notifications.ts:85 src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgstr "儲存遠端站點時發生錯誤"
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgstr "儲存遠端站點成功"
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgstr "儲存遠端站點時發生錯誤"
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgstr "儲存遠端站點成功"
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgstr "部署 %{conf_name} 至 %{node_name} 失敗"
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
@@ -3128,6 +3130,11 @@ msgid ""
 "step of DNS challenge."
 msgstr "設置遞迴名稱伺服器以覆蓋系統名稱伺服器以進行 DNS 驗證步驟。"
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "禁用遠端站点錯誤"
+
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgstr "使用 DNS01 挑戰提供者"
@@ -3177,6 +3184,11 @@ msgstr "網域設定檔成功建立"
 msgid "Site is enabled"
 msgstr "站點已啓用"
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "站點已啓用"
+
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgstr "網站日誌"
@@ -3272,7 +3284,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
-#: src/views/site/site_list/columns.tsx:67 src/views/stream/StreamList.vue:47
+#: src/views/site/site_edit/RightSettings.vue:56
+#: src/views/site/site_list/columns.tsx:80 src/views/stream/StreamList.vue:47
 msgid "Status"
 msgstr "狀態"
 
@@ -3348,38 +3361,38 @@ msgstr "同步"
 msgid "Sync Certificate"
 msgstr "同步憑證"
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "同步憑證 %{cert_name} 到 %{env_name} 成功"
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "同步憑證 %{cert_name} 到 %{env_name} 成功"
 
-#: src/components/Notification/notifications.ts:27 src/language/constants.ts:39
+#: src/components/Notification/notifications.ts:9 src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgstr "同步憑證錯誤"
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgstr "同步憑證成功"
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "同步配置 %{config_name} 到 %{env_name} 成功"
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "同步配置 %{config_name} 到 %{env_name} 成功"
 
-#: src/components/Notification/notifications.ts:37 src/language/constants.ts:45
+#: src/components/Notification/notifications.ts:19 src/language/constants.ts:45
 msgid "Sync Config Error"
 msgstr "同步配置錯誤"
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 msgid "Sync Config Success"
 msgstr "同步配置成功"
 
@@ -3388,8 +3401,8 @@ msgstr "同步配置成功"
 msgid "Sync Nodes"
 msgstr "同步節點"
 
-#: src/views/site/site_edit/RightSettings.vue:113
-#: src/views/site/site_edit/RightSettings.vue:126
+#: src/views/site/site_edit/RightSettings.vue:102
+#: src/views/site/site_edit/RightSettings.vue:89
 #: src/views/stream/components/RightSettings.vue:111
 #: src/views/stream/components/RightSettings.vue:124
 msgid "Sync strategy"
@@ -3399,7 +3412,7 @@ msgstr "同步策略"
 msgid "Sync to"
 msgstr "同步到"
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgstr "同步"
@@ -3697,8 +3710,8 @@ msgstr "更新成功"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
-#: src/views/site/site_edit/RightSettings.vue:100
-#: src/views/site/site_list/columns.tsx:99
+#: src/views/site/site_edit/RightSettings.vue:76
+#: src/views/site/site_list/columns.tsx:110
 #: src/views/stream/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
@@ -3740,10 +3753,6 @@ msgstr "運作時間:"
 msgid "URL"
 msgstr "URL"
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgstr "使用一次性密碼"
@@ -3860,7 +3869,7 @@ msgstr ""
 "啟用後,Nginx UI 將在啟動時自動重新註冊使用者。通常,除非您處於開發環境並使"
 "用 Pebble 作為 CA,否則不建議啟用此功能。"
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 #, fuzzy
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
@@ -3958,6 +3967,9 @@ msgstr "您的舊代碼將不再有效。"
 msgid "Your passkeys"
 msgstr "您的通行密鑰"
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "您想停用這個網站嗎?"
+
 #, fuzzy
 #~ msgid "Created At"
 #~ msgstr "建立時間"

+ 1 - 1
app/src/views/config/components/ConfigName.vue

@@ -25,7 +25,7 @@ function save() {
   const otpModal = use2FAModal()
 
   otpModal.open().then(() => {
-    config.rename(props.dir!, name.value, buffer.value).then(r => {
+    config.rename(props.dir!, name.value, buffer.value).then(() => {
       modify.value = false
       message.success($gettext('Renamed successfully'))
       router.push({

+ 1 - 1
app/src/views/config/components/Rename.vue

@@ -38,7 +38,7 @@ function ok() {
 
     otpModal.open().then(() => {
       // Note: API will handle URL encoding of path segments
-      config.rename(basePath, orig_name, new_name, sync_node_ids).then(r => {
+      config.rename(basePath, orig_name, new_name, sync_node_ids).then(() => {
         visible.value = false
         message.success($gettext('Rename successfully'))
 

+ 17 - 42
app/src/views/site/site_edit/RightSettings.vue

@@ -1,19 +1,18 @@
 <script setup lang="ts">
 import type { ChatComplicationMessage } from '@/api/openai'
 import type { Site } from '@/api/site'
-import type { CheckedType } from '@/types'
 import type { Ref } from 'vue'
 import envGroup from '@/api/env_group'
-import site from '@/api/site'
 import ChatGPT from '@/components/ChatGPT/ChatGPT.vue'
 import NodeSelector from '@/components/NodeSelector/NodeSelector.vue'
 import StdSelector from '@/components/StdDesign/StdDataEntry/components/StdSelector.vue'
+import { ConfigStatus } from '@/constants'
 import { formatDateTime } from '@/lib/helper'
 import { useSettingsStore } from '@/pinia'
 import envGroupColumns from '@/views/environments/group/columns'
 import ConfigName from '@/views/site/site_edit/components/ConfigName.vue'
+import SiteStatusSegmented from '@/views/site/site_edit/components/SiteStatusSegmented.vue'
 import { InfoCircleOutlined } from '@ant-design/icons-vue'
-import { message, Modal } from 'ant-design-vue'
 
 const settings = useSettingsStore()
 
@@ -24,42 +23,17 @@ const filepath = inject('filepath') as Ref<string>
 const historyChatgptRecord = inject('history_chatgpt_record') as Ref<ChatComplicationMessage[]>
 const data = inject('data') as Ref<Site>
 
-const [modal, ContextHolder] = Modal.useModal()
-
 const activeKey = ref(['1', '2', '3'])
+const siteStatus = computed(() => {
+  if (!data.value?.status) {
+    return enabled.value ? ConfigStatus.Enabled : ConfigStatus.Disabled
+  }
+  return data.value.status
+})
 
-function enable() {
-  site.enable(name.value).then(() => {
-    message.success($gettext('Enabled successfully'))
-    enabled.value = true
-  }).catch(r => {
-    message.error($gettext('Failed to enable %{msg}', { msg: r.message ?? '' }), 10)
-  })
-}
-
-function disable() {
-  site.disable(name.value).then(() => {
-    message.success($gettext('Disabled successfully'))
-    enabled.value = false
-  }).catch(r => {
-    message.error($gettext('Failed to disable %{msg}', { msg: r.message ?? '' }))
-  })
-}
-
-function onChangeEnabled(checked: CheckedType) {
-  modal.confirm({
-    title: checked ? $gettext('Do you want to enable this site?') : $gettext('Do you want to disable this site?'),
-    mask: false,
-    centered: true,
-    okText: $gettext('OK'),
-    cancelText: $gettext('Cancel'),
-    async onOk() {
-      if (checked)
-        enable()
-      else
-        disable()
-    },
-  })
+function handleStatusChanged(event: { status: string, enabled: boolean }) {
+  data.value.status = event.status
+  enabled.value = event.enabled
 }
 </script>
 
@@ -68,7 +42,6 @@ function onChangeEnabled(checked: CheckedType) {
     class="right-settings"
     :bordered="false"
   >
-    <ContextHolder />
     <ACollapse
       v-model:active-key="activeKey"
       ghost
@@ -79,10 +52,12 @@ function onChangeEnabled(checked: CheckedType) {
         :header="$gettext('Basic')"
       >
         <AForm layout="vertical">
-          <AFormItem :label="$gettext('Enabled')">
-            <ASwitch
-              :checked="enabled"
-              @change="onChangeEnabled"
+          <AFormItem :label="$gettext('Status')">
+            <SiteStatusSegmented
+              v-model="siteStatus"
+              :site-name="name"
+              :enabled="enabled"
+              @status-changed="handleStatusChanged"
             />
           </AFormItem>
           <AFormItem :label="$gettext('Name')">

+ 198 - 0
app/src/views/site/site_edit/components/SiteStatusSegmented.vue

@@ -0,0 +1,198 @@
+<script setup lang="ts">
+import site from '@/api/site'
+import { ConfigStatus } from '@/constants'
+import { message, Modal } from 'ant-design-vue'
+
+/**
+ * Component props interface
+ */
+interface Props {
+  /**
+   * The name of the site configuration
+   */
+  siteName: string
+  /**
+   * Whether the site is enabled
+   */
+  enabled: boolean
+}
+
+// Define props with TypeScript
+const props = defineProps<Props>()
+
+// Define event for status change notification
+const emit = defineEmits<{
+  statusChanged: [{ status: string, enabled: boolean }]
+}>()
+
+// Use defineModel for v-model binding
+const status = defineModel<string>({
+  default: ConfigStatus.Disabled,
+})
+
+const [modal, ContextHolder] = Modal.useModal()
+
+/**
+ * Enable the site
+ */
+function enable() {
+  site.enable(props.siteName).then(() => {
+    message.success($gettext('Enabled successfully'))
+    status.value = ConfigStatus.Enabled
+    emit('statusChanged', {
+      status: ConfigStatus.Enabled,
+      enabled: true,
+    })
+  }).catch(r => {
+    message.error($gettext('Failed to enable %{msg}', { msg: r.message ?? '' }), 10)
+  })
+}
+
+/**
+ * Disable the site
+ */
+function disable() {
+  site.disable(props.siteName).then(() => {
+    message.success($gettext('Disabled successfully'))
+    status.value = ConfigStatus.Disabled
+    emit('statusChanged', {
+      status: ConfigStatus.Disabled,
+      enabled: false,
+    })
+  }).catch(r => {
+    message.error($gettext('Failed to disable %{msg}', { msg: r.message ?? '' }))
+  })
+}
+
+/**
+ * Enable maintenance mode for the site
+ */
+function enableMaintenance() {
+  site.enableMaintenance(props.siteName).then(() => {
+    message.success($gettext('Maintenance mode enabled successfully'))
+    status.value = ConfigStatus.Maintenance
+    emit('statusChanged', {
+      status: ConfigStatus.Maintenance,
+      enabled: true,
+    })
+  }).catch(r => {
+    message.error($gettext('Failed to enable maintenance mode %{msg}', { msg: r.message ?? '' }))
+  })
+}
+
+/**
+ * Disable maintenance mode for the site
+ */
+function disableMaintenance() {
+  site.enable(props.siteName).then(() => {
+    message.success($gettext('Maintenance mode disabled successfully'))
+    status.value = ConfigStatus.Enabled
+    emit('statusChanged', {
+      status: ConfigStatus.Enabled,
+      enabled: true,
+    })
+  }).catch(r => {
+    message.error($gettext('Failed to disable maintenance mode %{msg}', { msg: r.message ?? '' }))
+  })
+}
+
+/**
+ * Handle status change from segmented control
+ */
+function onChangeStatus(value: string | number) {
+  const statusValue = value as string
+  if (statusValue === status.value) {
+    return
+  }
+
+  // Save original status to restore if user cancels
+  const originalStatus = status.value
+
+  const statusMap = {
+    [ConfigStatus.Enabled]: $gettext('enable'),
+    [ConfigStatus.Disabled]: $gettext('disable'),
+    [ConfigStatus.Maintenance]: $gettext('set to maintenance mode'),
+  }
+
+  modal.confirm({
+    title: $gettext('Do you want to %{action} this site?', { action: statusMap[statusValue] }),
+    mask: false,
+    centered: true,
+    okText: $gettext('OK'),
+    cancelText: $gettext('Cancel'),
+    async onOk() {
+      if (statusValue === ConfigStatus.Enabled) {
+        if (status.value === ConfigStatus.Maintenance) {
+          disableMaintenance()
+        }
+        else {
+          enable()
+        }
+      }
+      else if (statusValue === ConfigStatus.Disabled) {
+        disable()
+      }
+      else if (statusValue === ConfigStatus.Maintenance) {
+        enableMaintenance()
+      }
+    },
+    onCancel() {
+      // Restore original status if user cancels
+      status.value = originalStatus
+    },
+  })
+}
+</script>
+
+<template>
+  <div class="site-status-segmented">
+    <ContextHolder />
+    <ASegmented
+      v-model:value="status"
+      :options="[
+        {
+          value: ConfigStatus.Enabled,
+          label: $gettext('Enabled'),
+        },
+        {
+          value: ConfigStatus.Disabled,
+          label: $gettext('Disabled'),
+        },
+        {
+          value: ConfigStatus.Maintenance,
+          label: $gettext('Maintenance'),
+        },
+      ]"
+      @change="onChangeStatus"
+    />
+  </div>
+</template>
+
+<style scoped>
+.site-status-segmented {
+  display: flex;
+  align-items: center;
+  justify-content: flex-start;
+}
+
+:deep(.ant-segmented-item:nth-child(1).ant-segmented-item-selected) {
+  background: #1890ff;
+  color: white;
+}
+
+:deep(.ant-segmented-item:nth-child(2).ant-segmented-item-selected) {
+  background: #ff4d4f;
+  color: white;
+}
+
+:deep(.ant-segmented-item:nth-child(3).ant-segmented-item-selected) {
+  background: #faad14;
+  color: white;
+}
+
+:deep(.ant-segmented-item-selected) {
+  border-radius: 6px;
+  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
+  transition: all 0.3s ease;
+}
+</style>

+ 6 - 68
app/src/views/site/site_list/SiteList.vue

@@ -45,11 +45,13 @@ onMounted(async () => {
     catch {
       return
     }
-
-    setupSSE()
   }
 })
 
+onMounted(() => {
+  setupSSE()
+})
+
 // Connect to SSE endpoint and setup handlers
 async function setupSSE() {
   if (sse.value) {
@@ -90,38 +92,6 @@ onUnmounted(() => {
   }
 })
 
-function enable(name: string) {
-  site.enable(name).then(() => {
-    message.success($gettext('Enabled successfully'))
-    table.value?.get_list()
-    inspect_config.value?.test()
-  })
-}
-
-function disable(name: string) {
-  site.disable(name).then(() => {
-    message.success($gettext('Disabled successfully'))
-    table.value?.get_list()
-    inspect_config.value?.test()
-  })
-}
-
-function enableMaintenance(name: string) {
-  site.enableMaintenance(name).then(() => {
-    message.success($gettext('Maintenance mode enabled successfully'))
-    table.value?.get_list()
-    inspect_config.value?.test()
-  })
-}
-
-function disableMaintenance(name: string) {
-  site.disableMaintenance(name).then(() => {
-    message.success($gettext('Maintenance mode disabled successfully'))
-    table.value?.get_list()
-    inspect_config.value?.test()
-  })
-}
-
 function destroy(site_name: string) {
   site.destroy(site_name).then(() => {
     table.value.get_list()
@@ -184,38 +154,6 @@ function handleBatchUpdated() {
       @click-batch-modify="handleClickBatchEdit"
     >
       <template #actions="{ record }">
-        <AButton
-          v-if="record.status !== ConfigStatus.Disabled"
-          type="link"
-          size="small"
-          @click="disable(record.name)"
-        >
-          {{ $gettext('Disable') }}
-        </AButton>
-        <AButton
-          v-else-if="record.status !== ConfigStatus.Enabled"
-          type="link"
-          size="small"
-          @click="enable(record.name)"
-        >
-          {{ $gettext('Enable') }}
-        </AButton>
-        <AButton
-          v-if="record.status === ConfigStatus.Maintenance"
-          type="link"
-          size="small"
-          @click="disableMaintenance(record.name)"
-        >
-          {{ $gettext('Exit Maintenance') }}
-        </AButton>
-        <AButton
-          v-else-if="record.status !== ConfigStatus.Maintenance"
-          type="link"
-          size="small"
-          @click="enableMaintenance(record.name)"
-        >
-          {{ $gettext('Enter Maintenance') }}
-        </AButton>
         <AButton
           type="link"
           size="small"
@@ -227,13 +165,13 @@ function handleBatchUpdated() {
           :cancel-text="$gettext('No')"
           :ok-text="$gettext('OK')"
           :title="$gettext('Are you sure you want to delete?')"
-          :disabled="record.enabled"
+          :disabled="record.status !== ConfigStatus.Disabled"
           @confirm="destroy(record.name)"
         >
           <AButton
             type="link"
             size="small"
-            :disabled="record.enabled"
+            :disabled="record.status !== ConfigStatus.Disabled"
           >
             {{ $gettext('Delete') }}
           </AButton>

+ 51 - 40
app/src/views/site/site_list/columns.tsx

@@ -10,7 +10,8 @@ import {
 import { input, select, selector } from '@/components/StdDesign/StdDataEntry'
 import { ConfigStatus } from '@/constants'
 import envGroupColumns from '@/views/environments/group/columns'
-import { Badge, Tag } from 'ant-design-vue'
+import SiteStatusSegmented from '@/views/site/site_edit/components/SiteStatusSegmented.vue'
+import { Tag } from 'ant-design-vue'
 
 const columns: Column[] = [{
   title: () => $gettext('Name'),
@@ -21,31 +22,43 @@ const columns: Column[] = [{
     type: input,
   },
   search: true,
-  width: 120,
-}, {
-  title: () => $gettext('URLs'),
-  dataIndex: 'urls',
+  width: 170,
   customRender: ({ text, record }) => {
     const template: JSXElements = []
-    if (record.status !== ConfigStatus.Disabled) {
-      text?.forEach((url: string) => {
-        const displayUrl = url.replace(/^https?:\/\//, '')
-        template.push(
-          <Tag style="margin-right: 8px; margin-bottom: 4px;">
-            <a href={url} target="_blank" rel="noopener noreferrer">{displayUrl}</a>
-          </Tag>,
-        )
-      })
-    }
-    else {
-      text?.forEach((url: string) => {
-        const displayUrl = url.replace(/^https?:\/\//, '')
-        template.push(<Tag style="margin-right: 8px; margin-bottom: 4px;">{displayUrl}</Tag>)
-      })
+
+    // Add site name
+    template.push(
+      <div style="margin-bottom: 8px;">{text}</div>,
+    )
+
+    // Add URLs below the name
+    if (record.urls && record.urls.length > 0) {
+      const urlsContainer: JSXElements = []
+
+      if (record.status !== ConfigStatus.Disabled) {
+        record.urls.forEach((url: string) => {
+          const displayUrl = url.replace(/^https?:\/\//, '')
+          urlsContainer.push(
+            <Tag style="margin-right: 8px; margin-bottom: 4px;">
+              <a href={url} target="_blank" rel="noopener noreferrer">{displayUrl}</a>
+            </Tag>,
+          )
+        })
+      }
+      else {
+        record.urls.forEach((url: string) => {
+          const displayUrl = url.replace(/^https?:\/\//, '')
+          urlsContainer.push(<Tag style="margin-right: 8px; margin-bottom: 4px;">{displayUrl}</Tag>)
+        })
+      }
+
+      template.push(
+        <div style="display: flex; flex-wrap: wrap;">{urlsContainer}</div>,
+      )
     }
-    return h('div', { style: { display: 'flex', flexWrap: 'wrap' } }, template)
+
+    return h('div', {}, template)
   },
-  width: 120,
 }, {
   title: () => $gettext('Node Group'),
   dataIndex: 'env_group_id',
@@ -62,27 +75,25 @@ const columns: Column[] = [{
   sorter: true,
   pithy: true,
   batch: true,
-  width: 100,
+  width: 120,
 }, {
   title: () => $gettext('Status'),
   dataIndex: 'status',
   customRender: (args: CustomRender) => {
-    const template: JSXElements = []
-    const { text } = args
-    if (text === ConfigStatus.Enabled) {
-      template.push(<Badge status="success" />)
-      template.push($gettext('Enabled'))
-    }
-    else if (text === ConfigStatus.Disabled) {
-      template.push(<Badge status="warning" />)
-      template.push($gettext('Disabled'))
-    }
-    else if (text === ConfigStatus.Maintenance) {
-      template.push(<Badge color="volcano" />)
-      template.push($gettext('Maintenance'))
-    }
-
-    return h('div', template)
+    const { text, record } = args
+    return h(SiteStatusSegmented, {
+      'modelValue': text,
+      'siteName': record.name,
+      'enabled': record.status !== ConfigStatus.Disabled,
+      'onUpdate:modelValue': (val: string) => {
+        // This will be handled by the component internal events
+        record.status = val
+      },
+      'onStatusChanged': ({ status, enabled }: { status: string, enabled: boolean }) => {
+        record.status = status
+        record.enabled = enabled
+      },
+    })
   },
   search: {
     type: select,
@@ -94,7 +105,7 @@ const columns: Column[] = [{
   },
   sorter: true,
   pithy: true,
-  width: 80,
+  width: 150,
 }, {
   title: () => $gettext('Updated at'),
   dataIndex: 'modified_at',

+ 1 - 1
internal/config/history.go

@@ -23,7 +23,7 @@ func CheckAndCreateHistory(path string, content string) error {
 	// Read the current content of the file
 	currentContent, err := os.ReadFile(path)
 	if err != nil {
-		return err
+		return nil
 	}
 
 	// Compare the contents

+ 5 - 0
internal/site/delete.go

@@ -28,6 +28,7 @@ func Delete(name string) (err error) {
 	}
 
 	enabledPath := nginx.GetConfPath("sites-enabled", name)
+	maintenancePath := nginx.GetConfPath("sites-available", name+MaintenanceSuffix)
 
 	if !helper.FileExists(availablePath) {
 		return ErrSiteNotFound
@@ -37,6 +38,10 @@ func Delete(name string) (err error) {
 		return ErrSiteIsEnabled
 	}
 
+	if helper.FileExists(maintenancePath) {
+		return ErrSiteIsInMaintenance
+	}
+
 	certModel := model.Cert{Filename: name}
 	_ = certModel.Remove()
 

+ 5 - 4
internal/site/errors.go

@@ -3,8 +3,9 @@ package site
 import "github.com/uozi-tech/cosy"
 
 var (
-	e                = cosy.NewErrorScope("site")
-	ErrSiteNotFound  = e.New(40401, "site not found")
-	ErrDstFileExists = e.New(50001, "destination file already exists")
-	ErrSiteIsEnabled = e.New(50002, "site is enabled")
+	e                      = cosy.NewErrorScope("site")
+	ErrSiteNotFound        = e.New(40401, "site not found")
+	ErrDstFileExists       = e.New(50001, "destination file already exists")
+	ErrSiteIsEnabled       = e.New(50002, "site is enabled")
+	ErrSiteIsInMaintenance = e.New(50003, "site is in maintenance mode")
 )

+ 2 - 2
internal/site/maintenance.go

@@ -316,7 +316,7 @@ func syncEnableMaintenance(name string) {
 			client.SetBaseURL(node.URL)
 			resp, err := client.R().
 				SetHeader("X-Node-Secret", node.Token).
-				Post(fmt.Sprintf("/api/sites/%s/maintenance/enable", name))
+				Post(fmt.Sprintf("/api/sites/%s/maintenance", name))
 			if err != nil {
 				notification.Error("Enable Remote Site Maintenance Error", err.Error(), nil)
 				return
@@ -354,7 +354,7 @@ func syncDisableMaintenance(name string) {
 			client.SetBaseURL(node.URL)
 			resp, err := client.R().
 				SetHeader("X-Node-Secret", node.Token).
-				Post(fmt.Sprintf("/api/sites/%s/maintenance/disable", name))
+				Post(fmt.Sprintf("/api/sites/%s/enable", name))
 			if err != nil {
 				notification.Error("Disable Remote Site Maintenance Error", err.Error(), nil)
 				return