浏览代码

refactor: consolidate maintenance mode endpoints and enhance site status handling

Jacky 3 月之前
父节点
当前提交
df304b41bc

+ 1 - 3
api/sites/router.go

@@ -23,7 +23,5 @@ func InitRouter(r *gin.RouterGroup) {
 	// duplicate site
 	// duplicate site
 	r.POST("sites/:name/duplicate", DuplicateSite)
 	r.POST("sites/:name/duplicate", DuplicateSite)
 	// enable maintenance mode for site
 	// 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) {
 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 {
 	if err != nil {
 		cosy.ErrHandler(c, err)
 		cosy.ErrHandler(c, err)
 		return
 		return
@@ -167,7 +181,21 @@ func EnableSite(c *gin.Context) {
 }
 }
 
 
 func DisableSite(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 {
 	if err != nil {
 		cosy.ErrHandler(c, err)
 		cosy.ErrHandler(c, err)
 		return
 		return
@@ -217,19 +245,21 @@ func BatchUpdateSites(c *gin.Context) {
 }
 }
 
 
 func EnableMaintenanceSite(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 {
 	if err != nil {
 		cosy.ErrHandler(c, err)
 		cosy.ErrHandler(c, err)
 		return
 		return

+ 1 - 0
app/components.d.ts

@@ -55,6 +55,7 @@ declare module 'vue' {
     ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
     ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
     AResult: typeof import('ant-design-vue/es')['Result']
     AResult: typeof import('ant-design-vue/es')['Result']
     ARow: typeof import('ant-design-vue/es')['Row']
     ARow: typeof import('ant-design-vue/es')['Row']
+    ASegmented: typeof import('ant-design-vue/es')['Segmented']
     ASelect: typeof import('ant-design-vue/es')['Select']
     ASelect: typeof import('ant-design-vue/es')['Select']
     ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
     ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
     ASpace: typeof import('ant-design-vue/es')['Space']
     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) {
   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 }> = {
 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
   // cert module notifications
   'Sync Certificate Error': {
   'Sync Certificate Error': {
     title: () => $gettext('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'),
     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),
     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
 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[]) {
 export function actualValueRender(actualDataIndex: string | string[]) {
   return (args: CustomRender) => {
   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 direction = field.direction ?? 'vertical'
 
 
       const labelNode = label
       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)
         ? h(direction === 'vertical' ? 'div' : 'span', { class: 'text-gray-500 my-1 mr-1' }, label)
         : null
         : null
 
 

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

@@ -2,4 +2,5 @@ export default {
   40401: () => $gettext('Site not found'),
   40401: () => $gettext('Site not found'),
   50001: () => $gettext('Destination file already exists'),
   50001: () => $gettext('Destination file already exists'),
   50002: () => $gettext('Site is enabled'),
   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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "إجراء"
 msgstr "إجراء"
@@ -112,7 +112,7 @@ msgstr "بعد ذلك، قم بتحديث هذه الصفحة وانقر فوق
 msgid "All"
 msgid "All"
 msgstr "الكل"
 msgstr "الكل"
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 msgstr ""
@@ -195,7 +195,7 @@ msgstr "هل أنت متأكد أنك تريد حذف هذا العنصر نها
 msgid "Are you sure you want to delete this item?"
 msgid "Are you sure you want to delete this item?"
 msgstr "هل أنت متأكد أنك تريد حذف هذا العنصر؟"
 msgstr "هل أنت متأكد أنك تريد حذف هذا العنصر؟"
 
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr "هل أنت متأكد أنك تريد الحذف؟"
 msgstr "هل أنت متأكد أنك تريد الحذف؟"
@@ -332,7 +332,7 @@ msgid "Base information"
 msgstr "المعلومات الأساسية"
 msgstr "المعلومات الأساسية"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr "أساسي"
 msgstr "أساسي"
@@ -385,7 +385,7 @@ msgstr "مجلد سلطة التصديق"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "إلغاء"
 msgstr "إلغاء"
@@ -752,7 +752,7 @@ msgstr "وصف"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "حذف"
 msgstr "حذف"
@@ -762,44 +762,44 @@ msgstr "حذف"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr "حذف نهائي"
 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"
 msgid "Delete Remote Site Error"
 msgstr "خطأ حذف الموقع البعيد"
 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"
 msgid "Delete Remote Site Success"
 msgstr "نجح حذف الموقع البعيد"
 msgstr "نجح حذف الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "خطأ حذف الموقع البعيد"
 msgstr "خطأ حذف الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "نجح حذف الموقع البعيد"
 msgstr "نجح حذف الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
 msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
 
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr "حذف الموقع: ‎%{site_name}"
 msgstr "حذف الموقع: ‎%{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
 msgstr "تمت إزالة الموقع %{site} من %{node} بنجاح"
@@ -857,7 +857,11 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr "توجيهات"
 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
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgid "Disable"
 msgstr "تعطيل"
 msgstr "تعطيل"
@@ -866,60 +870,60 @@ msgstr "تعطيل"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "فشل تعطيل التجديد التلقائي لـ {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"
 msgid "Disable Remote Site Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 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"
 msgid "Disable Remote Site Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 msgstr "تعطيل الموقع البعيد بنجاح"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "خطأ في تعطيل الموقع البعيد"
 msgstr "خطأ في تعطيل الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "تعطيل الموقع البعيد بنجاح"
 msgstr "تعطيل الموقع البعيد بنجاح"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
@@ -929,15 +933,14 @@ msgstr "تم تعطيل الموقع %{site} على %{node} بنجاح"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "معطل"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -965,22 +968,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "لا تقم بتمكين هذا الخيار إلا إذا كنت متأكدًا من أنك بحاجة إليه."
 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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "هل تريد تعطيل التجديد التلقائي للشهادة؟"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "هل تريد تعطيل هذا البث؟"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
 msgstr "هل تريد تفعيل هذا البث؟"
 msgstr "هل تريد تفعيل هذا البث؟"
@@ -1039,7 +1039,7 @@ msgstr ""
 "الويب غير HTTPS، إلا عند التشغيل على localhost."
 "الويب غير HTTPS، إلا عند التشغيل على localhost."
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1081,7 +1081,11 @@ msgstr "بريد إلكتروني"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "البريد الإلكتروني (*)"
 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
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgid "Enable"
 msgstr "تفعيل"
 msgstr "تفعيل"
@@ -1103,60 +1107,60 @@ msgstr "فشل التفعيل"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "تفعيل TOTP"
 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"
 msgid "Enable Remote Site Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "نجح تفعيل الموقع البعيد"
 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"
 msgid "Enable Remote Site Success"
 msgstr "نجح تفعيل الموقع البعيد"
 msgstr "نجح تفعيل الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "خطأ في تفعيل الموقع البعيد"
 msgstr "خطأ في تفعيل الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "نجح تفعيل الموقع البعيد"
 msgstr "نجح تفعيل الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 msgstr "فشل تفعيل %{conf_name} في %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
 msgstr "تم تفعيل الموقع %{site} على %{node} بنجاح"
@@ -1175,10 +1179,9 @@ msgstr "تفعيل TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1186,8 +1189,7 @@ msgid "Enabled"
 msgstr "مفعل"
 msgstr "مفعل"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1197,10 +1199,6 @@ msgstr "تم التفعيل بنجاح"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "تشفير الموقع باستخدام Let's Encrypt"
 msgstr "تشفير الموقع باستخدام Let's Encrypt"
 
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "تم تنظيف متغيرات البيئة"
 msgstr "تم تنظيف متغيرات البيئة"
@@ -1237,10 +1235,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "مسار الملف التنفيذي"
 msgstr "مسار الملف التنفيذي"
 
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1393,18 +1387,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "فشل في تعطيل %{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "فشل في التفعيل %{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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1709,12 +1713,12 @@ msgid "Import Certificate"
 msgstr "استيراد شهادة"
 msgstr "استيراد شهادة"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -1977,17 +1981,17 @@ msgstr ""
 "مجدول المهام crontab الخاص بواجهة Nginx UI بتنفيذ أمر تدوير السجلات في "
 "مجدول المهام 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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "تم التعطيل بنجاح"
 msgstr "تم التعطيل بنجاح"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "تم التفعيل بنجاح"
 msgstr "تم التفعيل بنجاح"
@@ -2005,7 +2009,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "إدارة التكوينات"
 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"
 msgid "Manage Sites"
 msgstr "إدارة المواقع"
 msgstr "إدارة المواقع"
 
 
@@ -2081,8 +2085,8 @@ msgstr "توجيه متعدد الأسطر"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2269,7 +2273,7 @@ msgstr "خطأ في تحليل تكوين Nginx"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "لا"
 msgstr "لا"
@@ -2289,8 +2293,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "اسم العقدة"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2333,7 +2337,7 @@ msgstr "غير صالح قبل: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "ملاحظة"
 msgstr "ملاحظة"
 
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2565,7 +2569,7 @@ msgstr ""
 "يرجى أولاً إضافة بيانات الاعتماد في الشهادات > بيانات اعتماد DNS، ثم اختيار "
 "يرجى أولاً إضافة بيانات الاعتماد في الشهادات > بيانات اعتماد DNS، ثم اختيار "
 "أحد بيانات الاعتماد أدناه لطلب API لمزود DNS."
 "أحد بيانات الاعتماد أدناه لطلب API لمزود DNS."
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2790,22 +2794,22 @@ msgstr "إعادة تحميل"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "إعادة تحميل nginx"
 msgstr "إعادة تحميل nginx"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "خطأ في إزالة الموقع %{site} من %{node}، الاستجابة: %{resp}"
 msgstr "خطأ في إزالة الموقع %{site} من %{node}، الاستجابة: %{resp}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "تمت ترقية Nginx UI على %{node} بنجاح 🎉"
 msgstr "تمت ترقية Nginx UI على %{node} بنجاح 🎉"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
@@ -2844,57 +2848,57 @@ msgstr "تمت الإزالة بنجاح"
 msgid "Rename"
 msgid "Rename"
 msgstr "إعادة تسمية"
 msgstr "إعادة تسمية"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "تم إعادة تسمية %{orig_path} إلى %{new_path} على %{env_name} بنجاح"
 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"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "تم إعادة تسمية %{orig_path} إلى %{new_path} على %{env_name} بنجاح"
 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"
 msgid "Rename Remote Config Error"
 msgstr "خطأ في إعادة تسمية التكوين البعيد"
 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"
 msgid "Rename Remote Config Success"
 msgstr "إعادة تسمية تكوين البعيد بنجاح"
 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"
 msgid "Rename Remote Site Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 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"
 msgid "Rename Remote Site Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
 msgstr "إعادة تسمية الموقع %{site} إلى %{new_site} على %{node} بنجاح"
@@ -2954,22 +2958,22 @@ msgstr "إعادة تشغيل"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "إعادة التشغيل"
 msgstr "إعادة التشغيل"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "خطأ في تفعيل الموقع %{site} على %{node}، الاستجابة: %{resp}"
 msgstr "خطأ في تفعيل الموقع %{site} على %{node}، الاستجابة: %{resp}"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "تمت ترقية Nginx UI على %{node} بنجاح 🎉"
 msgstr "تمت ترقية Nginx UI على %{node} بنجاح 🎉"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 msgstr "خطأ في إعادة تسمية الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
 msgstr "تم إعادة تسمية الموقع البعيد بنجاح"
@@ -3054,42 +3058,40 @@ msgstr "حفظ التوجيه"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "خطأ في الحفظ %{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"
 msgid "Save Remote Site Error"
 msgstr "خطأ في حفظ الموقع البعيد"
 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"
 msgid "Save Remote Site Success"
 msgstr "حفظ الموقع البعيد بنجاح"
 msgstr "حفظ الموقع البعيد بنجاح"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "خطأ في حفظ الموقع البعيد"
 msgstr "خطأ في حفظ الموقع البعيد"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "حفظ الموقع البعيد بنجاح"
 msgstr "حفظ الموقع البعيد بنجاح"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 msgstr "فشل نشر {conf_name}% إلى {node_name}%"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
 msgstr "تم حفظ الموقع %{site} إلى %{node} بنجاح"
@@ -3178,6 +3180,11 @@ msgstr ""
 "قم بتعيين خوادم الأسماء التكرارية لتجاوز خوادم الأسماء الخاصة بالنظام لخطوة "
 "قم بتعيين خوادم الأسماء التكرارية لتجاوز خوادم الأسماء الخاصة بالنظام لخطوة "
 "تحدي DNS."
 "تحدي DNS."
 
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "خطأ في تعطيل الموقع البعيد"
+
 #: src/language/constants.ts:11
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr "تعيين موفر تحدي DNS01"
 msgstr "تعيين موفر تحدي DNS01"
@@ -3224,6 +3231,11 @@ msgstr "تم إنشاء تكوين النطاق بنجاح"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "معطل"
 msgstr "معطل"
 
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "معطل"
+
 #: src/routes/modules/nginx_log.ts:31
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgid "Site Logs"
 msgstr "سجلات الموقع"
 msgstr "سجلات الموقع"
@@ -3323,7 +3335,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "الحالة"
 msgstr "الحالة"
 
 
@@ -3399,38 +3412,38 @@ msgstr "مزامنة"
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "مزامنة الشهادة"
 msgstr "مزامنة الشهادة"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "نجح مزامنة الشهادة %{cert_name} إلى %{env_name}"
 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"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "نجح مزامنة الشهادة %{cert_name} إلى %{env_name}"
 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"
 msgid "Sync Certificate Error"
 msgstr "خطأ في مزامنة الشهادة"
 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"
 msgid "Sync Certificate Success"
 msgstr "تمت مزامنة الشهادة بنجاح"
 msgstr "تمت مزامنة الشهادة بنجاح"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "تمت مزامنة التكوين %{config_name} إلى %{env_name} بنجاح"
 msgstr "تمت مزامنة التكوين %{config_name} إلى %{env_name} بنجاح"
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "تمت مزامنة التكوين %{config_name} إلى %{env_name} بنجاح"
 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"
 msgid "Sync Config Error"
 msgstr "خطأ في تزامن التكوين"
 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"
 msgid "Sync Config Success"
 msgstr "تمت مزامنة التكوين بنجاح"
 msgstr "تمت مزامنة التكوين بنجاح"
 
 
@@ -3439,8 +3452,8 @@ msgstr "تمت مزامنة التكوين بنجاح"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr "مزامنة العقد"
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 msgid "Sync strategy"
 msgid "Sync strategy"
@@ -3450,7 +3463,7 @@ msgstr "استراتيجية المزامنة"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "مزامنة إلى"
 msgstr "مزامنة إلى"
 
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr "مزامنة"
 msgstr "مزامنة"
@@ -3770,8 +3783,8 @@ msgstr "تم التحديث بنجاح"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3813,10 +3826,6 @@ msgstr "مدة التشغيل:"
 msgid "URL"
 msgid "URL"
 msgstr "عنوان URL"
 msgstr "عنوان URL"
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr "استخدم كلمة المرور لمرة واحدة"
 msgstr "استخدم كلمة المرور لمرة واحدة"
@@ -3937,7 +3946,7 @@ msgstr ""
 "التشغيل. بشكل عام، لا تقم بتمكين هذا إلا إذا كنت في بيئة تطوير وتستخدم "
 "التشغيل. بشكل عام، لا تقم بتمكين هذا إلا إذا كنت في بيئة تطوير وتستخدم "
 "Pebble كسلطة شهادات."
 "Pebble كسلطة شهادات."
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
@@ -4035,6 +4044,9 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr "مفاتيح المرور الخاصة بك"
 msgstr "مفاتيح المرور الخاصة بك"
 
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "هل تريد تعطيل هذا الموقع؟"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "تم الإنشاء في"
 #~ 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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "Aktion"
 msgstr "Aktion"
@@ -115,7 +115,7 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr "Alle"
 msgstr "Alle"
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 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?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 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
 #: src/views/stream/StreamList.vue:227
 #, fuzzy
 #, fuzzy
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
@@ -347,7 +347,7 @@ msgid "Base information"
 msgstr "Basisinformationen"
 msgstr "Basisinformationen"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Basic"
 msgid "Basic"
@@ -403,7 +403,7 @@ msgstr "CA-Verzeichnis"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Abbrechen"
 msgstr "Abbrechen"
@@ -777,7 +777,7 @@ msgstr "Beschreibung"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "Löschen"
 msgstr "Löschen"
@@ -787,46 +787,46 @@ msgstr "Löschen"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr "Permanent löschen"
 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
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgid "Delete Remote Site Error"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgid "Delete Remote Site Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr "Seite löschen: %{site_name}"
 msgstr "Seite löschen: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
@@ -885,7 +885,11 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr "Anweisung"
 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
 #: src/views/stream/StreamList.vue:207
 #, fuzzy
 #, fuzzy
 msgid "Disable"
 msgid "Disable"
@@ -895,62 +899,62 @@ msgstr "Deaktiviert"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Automatische Verlängerung deaktiviert für %{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
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgid "Disable Remote Site Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgid "Disable Remote Site Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
@@ -960,15 +964,14 @@ msgstr "Speichern erfolgreich"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "Deaktiviert"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -998,25 +1001,20 @@ msgstr ""
 "Aktiviere diese Option nicht, es sei denn, du bist sicher, dass du sie "
 "Aktiviere diese Option nicht, es sei denn, du bist sicher, dass du sie "
 "benötigst."
 "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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Möchtest du die automatische Zertifikatsverlängerung deaktivieren?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 #, fuzzy
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "Bist du sicher, dass du diese Richtlinie löschen möchtest?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 #, fuzzy
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
@@ -1078,7 +1076,7 @@ msgstr ""
 "werden."
 "werden."
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1123,7 +1121,11 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "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
 #: src/views/stream/StreamList.vue:215
 #, fuzzy
 #, fuzzy
 msgid "Enable"
 msgid "Enable"
@@ -1147,62 +1149,62 @@ msgstr "Aktivieren fehlgeschlagen"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "Aktiviere TLS"
 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
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
 msgstr "Erfolgreich gespeichert"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
 msgstr "Erfolgreich gespeichert"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 msgstr "Aktivieren von %{conf_name} in %{node_name} fehlgeschlagen"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Erfolgreich gespeichert"
 msgstr "Erfolgreich gespeichert"
@@ -1222,10 +1224,9 @@ msgstr "Aktiviere TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1233,8 +1234,7 @@ msgid "Enabled"
 msgstr "Aktiviert"
 msgstr "Aktiviert"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1244,10 +1244,6 @@ msgstr "Erfolgreich aktiviert"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Webseite mit Let's Encrypt verschlüsseln"
 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
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Umgebungsvariablen gesäubert"
 msgstr "Umgebungsvariablen gesäubert"
@@ -1285,10 +1281,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "Ausführbarer Pfad"
 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/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1442,18 +1434,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "Deaktivierung von %{msg} fehlgeschlagen"
 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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "Aktiviern von %{msg} fehlgeschlagen"
 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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1762,12 +1764,12 @@ msgid "Import Certificate"
 msgstr "Zertifikatsstatus"
 msgstr "Zertifikatsstatus"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -2042,17 +2044,17 @@ msgstr ""
 "Der Crontab-Aufgabenplaner von Nginx UI führt den Logrotate-Befehl in dem "
 "Der Crontab-Aufgabenplaner von Nginx UI führt den Logrotate-Befehl in dem "
 "von dir in Minuten festgelegten Intervall aus."
 "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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "Erfolgreich deaktiviert"
 msgstr "Erfolgreich deaktiviert"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Erfolgreich aktiviert"
 msgstr "Erfolgreich aktiviert"
@@ -2072,7 +2074,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "Verwalte Konfigurationen"
 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"
 msgid "Manage Sites"
 msgstr "Verwalte Seiten"
 msgstr "Verwalte Seiten"
 
 
@@ -2155,8 +2157,8 @@ msgstr "Einzelne Anweisung"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2349,7 +2351,7 @@ msgstr "Name der Konfiguration"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "Nein"
 msgstr "Nein"
@@ -2369,8 +2371,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "Benuztername"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2414,7 +2416,7 @@ msgstr "Nich gültig vor: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "Notiz"
 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
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2656,7 +2658,7 @@ msgstr ""
 "Anmeldeinformationen hinzu und wähle dann eine der unten aufgeführten "
 "Anmeldeinformationen hinzu und wähle dann eine der unten aufgeführten "
 "Anmeldeinformationen aus, um die API des DNS-Anbieters anzufordern."
 "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
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2896,22 +2898,22 @@ msgstr "Neu laden"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "Lade Nginx neu"
 msgstr "Lade Nginx neu"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
@@ -2953,62 +2955,62 @@ msgstr "Speichern erfolgreich"
 msgid "Rename"
 msgid "Rename"
 msgstr "Benuztername"
 msgstr "Benuztername"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 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
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgid "Rename Remote Config Error"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgid "Rename Remote Config Success"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
@@ -3074,22 +3076,22 @@ msgstr "Neustart"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "Starte neu"
 msgstr "Starte neu"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Erfolgreich gespeichert"
 msgstr "Erfolgreich gespeichert"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
@@ -3175,44 +3177,42 @@ msgstr "Anweisung speichern"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "Fehler beim Speichern %{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
 #, fuzzy
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 msgstr "Ausführen von %{conf_name} auf %{node_name} fehlgeschlagen"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
@@ -3303,6 +3303,11 @@ msgstr ""
 "Setze die rekursiven Nameserver, um die System-Nameserver für den Schritt "
 "Setze die rekursiven Nameserver, um die System-Nameserver für den Schritt "
 "der DNS-Herausforderung zu überschreiben."
 "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
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr "Setze DNS01-Challengeanbieter"
 msgstr "Setze DNS01-Challengeanbieter"
@@ -3349,6 +3354,11 @@ msgstr "Domain-Konfiguration erfolgreich erstellt"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "Deaktiviert"
 msgstr "Deaktiviert"
 
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Deaktiviert"
+
 #: src/routes/modules/nginx_log.ts:31
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 #, fuzzy
 msgid "Site Logs"
 msgid "Site Logs"
@@ -3453,7 +3463,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "Status"
 msgstr "Status"
 
 
@@ -3528,42 +3539,42 @@ msgstr "Synchronisieren"
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 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
 #, fuzzy
 msgid "Sync Certificate Error"
 msgid "Sync Certificate Error"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Sync Certificate Success"
 msgid "Sync Certificate Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Speichern erfolgreich"
 msgstr "Speichern erfolgreich"
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Speichern erfolgreich"
 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
 #, fuzzy
 msgid "Sync Config Error"
 msgid "Sync Config Error"
 msgstr "Zertifikat ist gültig"
 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
 #, fuzzy
 msgid "Sync Config Success"
 msgid "Sync Config Success"
 msgstr "Zertifikat ist gültig"
 msgstr "Zertifikat ist gültig"
@@ -3573,8 +3584,8 @@ msgstr "Zertifikat ist gültig"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr "Synchrone Knoten"
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
 #, fuzzy
@@ -3585,7 +3596,7 @@ msgstr "Zertifikat ist gültig"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Synchronisieren mit"
 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
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr "Synchronisation"
 msgstr "Synchronisation"
@@ -3908,8 +3919,8 @@ msgstr "Speichern erfolgreich"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3954,10 +3965,6 @@ msgstr "Uptime:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr "Benutze OTP"
 msgstr "Benutze OTP"
@@ -4084,7 +4091,7 @@ msgstr ""
 "denn, du befindest dich in einer Entwicklerumgebung und verwendest Pebble "
 "denn, du befindest dich in einer Entwicklerumgebung und verwendest Pebble "
 "als CA."
 "als CA."
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
@@ -4184,6 +4191,10 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr "Deine 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
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "Erstellt"
 #~ 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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "Action"
 msgstr "Action"
@@ -114,7 +114,7 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 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?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Are you sure you want to remove this directive?"
 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
 #: src/views/stream/StreamList.vue:227
 #, fuzzy
 #, fuzzy
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
@@ -344,7 +344,7 @@ msgid "Base information"
 msgstr "Base information"
 msgstr "Base information"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Basic"
 msgid "Basic"
@@ -399,7 +399,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Cancel"
 msgstr "Cancel"
@@ -768,7 +768,7 @@ msgstr "Enable failed"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr ""
 msgstr ""
@@ -778,46 +778,46 @@ msgstr ""
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgid "Delete Remote Site Error"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgid "Delete Remote Site Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Saved 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}"
 msgid "Delete site: %{site_name}"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
@@ -876,7 +876,11 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr "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
 #: src/views/stream/StreamList.vue:207
 #, fuzzy
 #, fuzzy
 msgid "Disable"
 msgid "Disable"
@@ -886,62 +890,62 @@ msgstr "Disabled"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "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
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgid "Disable Remote Site Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgid "Disable Remote Site Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
@@ -951,15 +955,14 @@ msgstr "Saved successfully"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -987,14 +990,14 @@ msgstr ""
 msgid "Do not enable this option unless you are sure that you need it."
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/cert/components/ObtainCert.vue:136
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:118
 #, fuzzy
 #, 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?"
 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
 #, 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?"
 msgstr "Are you sure you want to remove this directive?"
 
 
 #: src/views/stream/components/RightSettings.vue:51
 #: 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?"
 msgid "Do you want to disable this stream?"
 msgstr "Are you sure you want to remove this directive?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 #, fuzzy
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
@@ -1063,7 +1061,7 @@ msgid ""
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 #, fuzzy
 #, fuzzy
@@ -1109,7 +1107,11 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "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
 #: src/views/stream/StreamList.vue:215
 #, fuzzy
 #, fuzzy
 msgid "Enable"
 msgid "Enable"
@@ -1133,62 +1135,62 @@ msgstr "Enable failed"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "Enable TLS"
 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
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
@@ -1208,10 +1210,9 @@ msgstr "Enable TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1219,8 +1220,7 @@ msgid "Enabled"
 msgstr "Enabled"
 msgstr "Enabled"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1230,10 +1230,6 @@ msgstr "Enabled successfully"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "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
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr ""
 msgstr ""
@@ -1270,10 +1266,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1428,18 +1420,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1743,12 +1745,12 @@ msgid "Import Certificate"
 msgstr "Certificate Status"
 msgstr "Certificate Status"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -2021,17 +2023,17 @@ msgid ""
 "minutes."
 "minutes."
 msgstr ""
 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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "Disabled successfully"
 msgstr "Disabled successfully"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Enabled successfully"
 msgstr "Enabled successfully"
@@ -2050,7 +2052,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "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"
 msgid "Manage Sites"
 msgstr "Manage Sites"
 msgstr "Manage Sites"
 
 
@@ -2133,8 +2135,8 @@ msgstr "Single Directive"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2326,7 +2328,7 @@ msgstr "Configuration Name"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "No"
 msgstr "No"
@@ -2346,8 +2348,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "Username"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2392,7 +2394,7 @@ msgstr "Not Valid Before: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: 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."
 "select one of the credentialsbelow to request the API of the DNS provider."
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2849,22 +2851,22 @@ msgstr ""
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
@@ -2906,62 +2908,62 @@ msgstr "Saved successfully"
 msgid "Rename"
 msgid "Rename"
 msgstr "Username"
 msgstr "Username"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Saved 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
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgid "Rename Remote Config Error"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgid "Rename Remote Config Success"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
@@ -3026,22 +3028,22 @@ msgstr ""
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
@@ -3127,44 +3129,42 @@ msgstr "Save Directive"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "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
 #, fuzzy
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
@@ -3253,6 +3253,11 @@ msgid ""
 "step of DNS challenge."
 "step of DNS challenge."
 msgstr ""
 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
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr ""
 msgstr ""
@@ -3299,6 +3304,11 @@ msgstr "Domain Config Created Successfully"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "Disabled"
 msgstr "Disabled"
 
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Disabled"
+
 #: src/routes/modules/nginx_log.ts:31
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 #, fuzzy
 msgid "Site Logs"
 msgid "Site Logs"
@@ -3405,7 +3415,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "Status"
 msgstr "Status"
 
 
@@ -3482,42 +3493,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Saved 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
 #, fuzzy
 msgid "Sync Certificate Error"
 msgid "Sync Certificate Error"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Sync Certificate Success"
 msgid "Sync Certificate Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Saved successfully"
 msgstr "Saved successfully"
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Saved 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
 #, fuzzy
 msgid "Sync Config Error"
 msgid "Sync Config Error"
 msgstr "Certificate is valid"
 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
 #, fuzzy
 msgid "Sync Config Success"
 msgid "Sync Config Success"
 msgstr "Certificate is valid"
 msgstr "Certificate is valid"
@@ -3527,8 +3538,8 @@ msgstr "Certificate is valid"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr ""
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
 #, fuzzy
@@ -3540,7 +3551,7 @@ msgstr "Certificate is valid"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Certificate is valid"
 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
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr ""
 msgstr ""
@@ -3838,8 +3849,8 @@ msgstr "Saved successfully"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3884,10 +3895,6 @@ msgstr "Uptime:"
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr ""
 msgstr ""
@@ -4008,7 +4015,7 @@ msgid ""
 "Pebble as CA."
 "Pebble as CA."
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
 "Node Group and the nodes selected below will be synchronized."
@@ -4101,6 +4108,10 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr ""
 msgstr ""
 
 
+#, fuzzy
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Are you sure you want to remove this directive?"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "Acción"
 msgstr "Acción"
@@ -117,7 +117,7 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr "Todo"
 msgstr "Todo"
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 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?"
 msgid "Are you sure you want to delete this item?"
 msgstr "¿Está seguro de que quiere borrar este elemento?"
 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
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr "¿Está seguro de que quiere borrar?"
 msgstr "¿Está seguro de que quiere borrar?"
@@ -337,7 +337,7 @@ msgid "Base information"
 msgstr "Información general"
 msgstr "Información general"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr "Básico"
 msgstr "Básico"
@@ -392,7 +392,7 @@ msgstr "Directorio CA"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Cancelar"
 msgstr "Cancelar"
@@ -753,7 +753,7 @@ msgstr "Descripción"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "Eliminar"
 msgstr "Eliminar"
@@ -763,44 +763,44 @@ msgstr "Eliminar"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr "Eliminar Permanentemente"
 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"
 msgid "Delete Remote Site Error"
 msgstr "Error al eliminar sitio remoto"
 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"
 msgid "Delete Remote Site Success"
 msgstr "Borrado del sitio remoto correcto"
 msgstr "Borrado del sitio remoto correcto"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "Error al eliminar sitio remoto"
 msgstr "Error al eliminar sitio remoto"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "Borrado del sitio remoto correcto"
 msgstr "Borrado del sitio remoto correcto"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 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}"
 msgid "Delete site: %{site_name}"
 msgstr "Eliminar sitio: %{site_name}"
 msgstr "Eliminar sitio: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
@@ -858,7 +858,11 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr "Directivas"
 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
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgid "Disable"
 msgstr "Desactivar"
 msgstr "Desactivar"
@@ -867,60 +871,60 @@ msgstr "Desactivar"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "No se pudo desactivar la renovación automática por %{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"
 msgid "Disable Remote Site Error"
 msgstr "Error al deshabilitar el sitio remoto"
 msgstr "Error al deshabilitar el sitio remoto"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Error al deshabilitar el sitio remoto"
 msgstr "Error al deshabilitar el sitio remoto"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 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"
 msgid "Disable Remote Site Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 msgstr "Deshabilitado de sitio remoto exitoso"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "Error al deshabilitar el sitio remoto"
 msgstr "Error al deshabilitar el sitio remoto"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "Deshabilitado de sitio remoto exitoso"
 msgstr "Deshabilitado de sitio remoto exitoso"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 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/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "Desactivado"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -966,22 +969,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 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."
 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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "¿Desea deshabilitar la renovación automática de certificado?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "¿Quieres deshabilitar esta transmisión?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
 msgstr "¿Quieres habilitar esta transmisión?"
 msgstr "¿Quieres habilitar esta transmisión?"
@@ -1039,7 +1039,7 @@ msgstr ""
 "ejecutan en el host local."
 "ejecutan en el host local."
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1081,7 +1081,11 @@ msgstr "Correo"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "Correo (*)"
 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
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgid "Enable"
 msgstr "Habilitar"
 msgstr "Habilitar"
@@ -1103,62 +1107,62 @@ msgstr "Falló la habilitación"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "Habilitar TLS"
 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
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 msgstr "Error al renombrar la configuración remota"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Error al renombrar la configuración remota"
 msgstr "Error al renombrar la configuración remota"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 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
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 msgstr "Renombrar Configuración Remota Exitosa"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 msgstr "Error al renombrar la configuración remota"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 msgstr "Renombrar Configuración Remota Exitosa"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 msgstr "Falló el habilitado de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 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/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1189,8 +1192,7 @@ msgid "Enabled"
 msgstr "Habilitado"
 msgstr "Habilitado"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1200,10 +1202,6 @@ msgstr "Habilitado con éxito"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Encriptar sitio web con 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
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Variables de entorno limpiadas"
 msgstr "Variables de entorno limpiadas"
@@ -1240,10 +1238,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "Ruta ejecutable"
 msgstr "Ruta ejecutable"
 
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1395,18 +1389,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "Error al deshabilitar %{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "Error al habilitar %{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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1712,12 +1716,12 @@ msgid "Import Certificate"
 msgstr "Importar Certificado"
 msgstr "Importar Certificado"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -1980,17 +1984,17 @@ msgstr ""
 "de Nginx UI ejecutará el comando logrotate en el intervalo que establezca en "
 "de Nginx UI ejecutará el comando logrotate en el intervalo que establezca en "
 "minutos."
 "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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "Desactivado con éxito"
 msgstr "Desactivado con éxito"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Habilitado con éxito"
 msgstr "Habilitado con éxito"
@@ -2008,7 +2012,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "Administrar configuraciones"
 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"
 msgid "Manage Sites"
 msgstr "Administrar sitios"
 msgstr "Administrar sitios"
 
 
@@ -2084,8 +2088,8 @@ msgstr "Directiva multilínea"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: 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/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "No"
 msgstr "No"
@@ -2295,8 +2299,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "Nuevo nombre"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2340,7 +2344,7 @@ msgstr "No válido antes: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "Nota"
 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
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: 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 "
 "luego seleccione una de las credenciales de aquí debajo para llamar a la API "
 "del proveedor de DNS."
 "del proveedor de DNS."
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2815,22 +2819,22 @@ msgstr "Recargar"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "Recargando Nginx"
 msgstr "Recargando Nginx"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Eliminar sitio: %{site_name}"
 msgstr "Eliminar sitio: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Interfaz de usuario de Nginx actualizada en %{node} con éxito 🎉"
 msgstr "Interfaz de usuario de Nginx actualizada en %{node} con éxito 🎉"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "Error al renombrar la configuración remota"
 msgstr "Error al renombrar la configuración remota"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 msgstr "Renombrar Configuración Remota Exitosa"
@@ -2869,59 +2873,59 @@ msgstr "Eliminado con éxito"
 msgid "Rename"
 msgid "Rename"
 msgstr "Renombrar"
 msgstr "Renombrar"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 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"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 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"
 msgid "Rename Remote Config Error"
 msgstr "Error al renombrar la configuración remota"
 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"
 msgid "Rename Remote Config Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 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
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 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
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 msgstr "Renombrar Configuración Remota Exitosa"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 msgstr "Error al renombrar la configuración remota"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 msgstr "Renombrar Configuración Remota Exitosa"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 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
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 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
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 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
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
 msgstr "Renombrar %{orig_path} a %{new_path} en %{env_name} con éxito"
@@ -2982,22 +2986,22 @@ msgstr "Reiniciar"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "Reiniciando"
 msgstr "Reiniciando"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 msgstr "Habilitado exitoso de %{conf_name} en %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Interfaz de usuario de Nginx actualizada en %{node} con éxito 🎉"
 msgstr "Interfaz de usuario de Nginx actualizada en %{node} con éxito 🎉"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "Error al renombrar la configuración remota"
 msgstr "Error al renombrar la configuración remota"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 msgstr "Renombrar Configuración Remota Exitosa"
@@ -3082,44 +3086,42 @@ msgstr "Guardar Directiva"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "Error al guardar %{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
 #, fuzzy
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr "Error al renombrar la configuración remota"
 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
 #, fuzzy
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 msgstr "Renombrar Configuración Remota Exitosa"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "Error al renombrar la configuración remota"
 msgstr "Error al renombrar la configuración remota"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "Renombrar Configuración Remota Exitosa"
 msgstr "Renombrar Configuración Remota Exitosa"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 msgstr "Falló el desplegado de %{conf_name} a %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Duplicado con éxito de %{conf_name} a %{node_name}"
 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 "
 "Establezca los servidores de nombres recursivos para anular los servidores "
 "de nombres del sistema en el paso del desafío DNS."
 "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
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr "Usando el proveedor de desafíos DNS01"
 msgstr "Usando el proveedor de desafíos DNS01"
@@ -3256,6 +3263,11 @@ msgstr "Configuración de dominio creada con éxito"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "Certificado automático"
 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
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgid "Site Logs"
 msgstr "Registros del sitio"
 msgstr "Registros del sitio"
@@ -3353,7 +3365,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "Estado"
 msgstr "Estado"
 
 
@@ -3428,38 +3441,38 @@ msgstr "Sincronizar"
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "Sincronizar Certificado"
 msgstr "Sincronizar Certificado"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Sincronización del Certificado %{cert_name} a %{env_name} exitosa"
 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"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Sincronización del Certificado %{cert_name} a %{env_name} exitosa"
 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"
 msgid "Sync Certificate Error"
 msgstr "Error de Certificado de Sincronización"
 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"
 msgid "Sync Certificate Success"
 msgstr "Sincronización del Certificado exitosa"
 msgstr "Sincronización del Certificado exitosa"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Sincronizar configuración %{config_name} con %{env_name} exitosamente"
 msgstr "Sincronizar configuración %{config_name} con %{env_name} exitosamente"
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Sincronizar configuración %{config_name} con %{env_name} exitosamente"
 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"
 msgid "Sync Config Error"
 msgstr "Error de Configuración de Sincronización"
 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"
 msgid "Sync Config Success"
 msgstr "Configuración de sincronización exitosa"
 msgstr "Configuración de sincronización exitosa"
 
 
@@ -3469,8 +3482,8 @@ msgstr "Configuración de sincronización exitosa"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr "Sincronizar con"
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
 #, fuzzy
@@ -3481,7 +3494,7 @@ msgstr "Sincronizar Certificado"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Sincronizar con"
 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
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr "Sincronización"
 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/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3855,10 +3868,6 @@ msgstr "Tiempo encendido:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr "Usar OTP"
 msgstr "Usar OTP"
@@ -3981,7 +3990,7 @@ msgstr ""
 "los usuarios al iniciarse. Por lo general, no habilite esta opción a menos "
 "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."
 "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
 #, fuzzy
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
@@ -4083,6 +4092,9 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr "Sus llaves de acceso"
 msgstr "Sus llaves de acceso"
 
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "¿Quieres deshabilitar este sitio?"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "Creado el"
 #~ 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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "Action"
 msgstr "Action"
@@ -119,7 +119,7 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr "Tous"
 msgstr "Tous"
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Tous les codes de récupération ont été utilisés"
 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?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Etes-vous sûr que vous voulez supprimer ?"
 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
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr "Etes-vous sûr que vous voulez supprimer ?"
 msgstr "Etes-vous sûr que vous voulez supprimer ?"
@@ -350,7 +350,7 @@ msgid "Base information"
 msgstr "Information générale"
 msgstr "Information générale"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr "Basique"
 msgstr "Basique"
@@ -406,7 +406,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Annuler"
 msgstr "Annuler"
@@ -782,7 +782,7 @@ msgstr "Description"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "Supprimer"
 msgstr "Supprimer"
@@ -792,46 +792,46 @@ msgstr "Supprimer"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr "Supprimer définitivement"
 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
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgid "Delete Remote Site Error"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgid "Delete Remote Site Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
 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}"
 msgid "Delete site: %{site_name}"
 msgstr "Supprimer le site : %{site_name}"
 msgstr "Supprimer le site : %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
@@ -892,7 +892,11 @@ msgstr "DirectiveIdx hors limite"
 msgid "Directives"
 msgid "Directives"
 msgstr "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
 #: src/views/stream/StreamList.vue:207
 #, fuzzy
 #, fuzzy
 msgid "Disable"
 msgid "Disable"
@@ -902,62 +906,62 @@ msgstr "Désactivé"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "La désactivation du renouvellement automatique a échoué pour %{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
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgid "Disable Remote Site Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgid "Disable Remote Site Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
@@ -967,15 +971,14 @@ msgstr "Dupliqué avec succès"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "Désactivé"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -1004,23 +1007,20 @@ msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 msgstr ""
 "N'activez pas cette option sauf si vous êtes sûr d'en avoir avez besoin."
 "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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Voulez-vous désactiver le renouvellement automatique des certificats ?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 #, fuzzy
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "Voulez-vous désactiver ce site ?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 #, fuzzy
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
@@ -1082,7 +1082,7 @@ msgstr ""
 "exécuté sur localhost."
 "exécuté sur localhost."
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1127,7 +1127,11 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "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
 #: src/views/stream/StreamList.vue:215
 #, fuzzy
 #, fuzzy
 msgid "Enable"
 msgid "Enable"
@@ -1151,62 +1155,62 @@ msgstr "Échec de l'activation"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "Activer TLS"
 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
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
@@ -1226,10 +1230,9 @@ msgstr "Activer TLS"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1237,8 +1240,7 @@ msgid "Enabled"
 msgstr "Activé"
 msgstr "Activé"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1248,10 +1250,6 @@ msgstr "Activé avec succès"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Crypter le site Web avec 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
 #: src/language/constants.ts:22
 #, fuzzy
 #, fuzzy
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
@@ -1290,10 +1288,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "Chemin exécutable"
 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/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1448,18 +1442,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "Impossible de désactiver %{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "Impossible d'activer %{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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1778,12 +1782,12 @@ msgid "Import Certificate"
 msgstr "État du certificat"
 msgstr "État du certificat"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -2054,17 +2058,17 @@ msgid ""
 "minutes."
 "minutes."
 msgstr ""
 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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "Désactivé avec succès"
 msgstr "Désactivé avec succès"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Activé avec succès"
 msgstr "Activé avec succès"
@@ -2083,7 +2087,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "Gérer les configurations"
 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"
 msgid "Manage Sites"
 msgstr "Gérer les sites"
 msgstr "Gérer les sites"
 
 
@@ -2164,8 +2168,8 @@ msgstr "Directive multiligne"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: 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/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "Non"
 msgstr "Non"
@@ -2379,8 +2383,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "Nom d'utilisateur"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2425,7 +2429,7 @@ msgstr "Non valide avant : %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "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
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2652,7 +2656,7 @@ msgstr ""
 "des informations d'identification ci-dessous pour demander l'API du "
 "des informations d'identification ci-dessous pour demander l'API du "
 "fournisseur DNS."
 "fournisseur DNS."
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2889,22 +2893,22 @@ msgstr "Recharger"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "Rechargement de nginx"
 msgstr "Rechargement de nginx"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Supprimer le site : %{site_name}"
 msgstr "Supprimer le site : %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Mise à niveau réussie"
 msgstr "Mise à niveau réussie"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
@@ -2946,62 +2950,62 @@ msgstr "Enregistré avec succès"
 msgid "Rename"
 msgid "Rename"
 msgstr "Nom d'utilisateur"
 msgstr "Nom d'utilisateur"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 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
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgid "Rename Remote Config Error"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgid "Rename Remote Config Success"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
@@ -3068,22 +3072,22 @@ msgstr "Redémarrer"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "Redémarrage"
 msgstr "Redémarrage"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Mise à niveau réussie"
 msgstr "Mise à niveau réussie"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
@@ -3168,44 +3172,42 @@ msgstr "Enregistrer la directive"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "Enregistrer l'erreur %{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
 #, fuzzy
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
@@ -3292,6 +3294,11 @@ msgid ""
 "step of DNS challenge."
 "step of DNS challenge."
 msgstr ""
 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
 #: src/language/constants.ts:11
 #, fuzzy
 #, fuzzy
 msgid "Setting DNS01 challenge provider"
 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"
 msgid "Site is enabled"
 msgstr "Auto Cert"
 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
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgid "Site Logs"
 msgstr "Journaux du site"
 msgstr "Journaux du site"
@@ -3443,7 +3455,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "Statut"
 msgstr "Statut"
 
 
@@ -3521,42 +3534,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 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
 #, fuzzy
 msgid "Sync Certificate Error"
 msgid "Sync Certificate Error"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Sync Certificate Success"
 msgid "Sync Certificate Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Dupliqué avec succès"
 msgstr "Dupliqué avec succès"
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Dupliqué avec succès"
 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
 #, fuzzy
 msgid "Sync Config Error"
 msgid "Sync Config Error"
 msgstr "Changer de certificat"
 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
 #, fuzzy
 msgid "Sync Config Success"
 msgid "Sync Config Success"
 msgstr "Changer de certificat"
 msgstr "Changer de certificat"
@@ -3566,8 +3579,8 @@ msgstr "Changer de certificat"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr ""
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
 #, fuzzy
@@ -3579,7 +3592,7 @@ msgstr "Changer de certificat"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Changer de certificat"
 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
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr ""
 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/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3930,10 +3943,6 @@ msgstr "Disponibilité :"
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr ""
 msgstr ""
@@ -4054,7 +4063,7 @@ msgid ""
 "Pebble as CA."
 "Pebble as CA."
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
 "Node Group and the nodes selected below will be synchronized."
@@ -4146,6 +4155,9 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr ""
 msgstr ""
 
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Voulez-vous désactiver ce site ?"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "Créé le"
 #~ 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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "작업"
 msgstr "작업"
@@ -113,7 +113,7 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 msgstr ""
@@ -193,7 +193,7 @@ msgstr "이 항목을 영구적으로 삭제하시겠습니까?"
 msgid "Are you sure you want to delete this item?"
 msgid "Are you sure you want to delete this item?"
 msgstr "이 항목을 삭제하시겠습니까?"
 msgstr "이 항목을 삭제하시겠습니까?"
 
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr "정말 삭제하시겠습니까?"
 msgstr "정말 삭제하시겠습니까?"
@@ -327,7 +327,7 @@ msgid "Base information"
 msgstr "기본 정보"
 msgstr "기본 정보"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr "기본"
 msgstr "기본"
@@ -380,7 +380,7 @@ msgstr "CA 디렉토리"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "취소"
 msgstr "취소"
@@ -742,7 +742,7 @@ msgstr "설명"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "삭제"
 msgstr "삭제"
@@ -752,46 +752,46 @@ msgstr "삭제"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgid "Delete Remote Site Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgid "Delete Remote Site Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 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}"
 msgid "Delete site: %{site_name}"
 msgstr "사이트 삭제: %{site_name}"
 msgstr "사이트 삭제: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -849,7 +849,11 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr "지시문들"
 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
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgid "Disable"
 msgstr "비활성화"
 msgstr "비활성화"
@@ -858,62 +862,62 @@ msgstr "비활성화"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "%{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
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgid "Disable Remote Site Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgid "Disable Remote Site Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
@@ -923,15 +927,14 @@ msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "비활성화됨"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -959,22 +962,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "자동 인증서 갱신을 비활성화하시겠습니까?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "이 스트림을 비활성화하시겠습니까?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
 msgstr "이 스트림을 활성화하시겠습니까?"
 msgstr "이 스트림을 활성화하시겠습니까?"
@@ -1028,7 +1028,7 @@ msgid ""
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1071,7 +1071,11 @@ msgstr "이메일 (*)"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "이메일 (*)"
 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
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgid "Enable"
 msgstr "활성화"
 msgstr "활성화"
@@ -1094,62 +1098,62 @@ msgstr "활성화 실패"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "TLS 활성화"
 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
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 msgstr "%{node_name}에서 %{conf_name} 활성화 실패"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
@@ -1169,10 +1173,9 @@ msgstr "TLS 활성화"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1180,8 +1183,7 @@ msgid "Enabled"
 msgstr "활성화됨"
 msgstr "활성화됨"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1191,10 +1193,6 @@ msgstr "성공적으로 활성화됨"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Let's Encrypt로 웹사이트 암호화"
 msgstr "Let's Encrypt로 웹사이트 암호화"
 
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 #, fuzzy
 #, fuzzy
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
@@ -1232,10 +1230,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "실행 가능 경로"
 msgstr "실행 가능 경로"
 
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1389,18 +1383,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "%{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "%{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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1700,12 +1704,12 @@ msgid "Import Certificate"
 msgstr "인증서 상태"
 msgstr "인증서 상태"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -1976,17 +1980,17 @@ msgstr ""
 "동으로 활성화할 수 있습니다. Nginx UI의 크론탭 작업 스케줄러는설정한 간격 "
 "동으로 활성화할 수 있습니다. Nginx UI의 크론탭 작업 스케줄러는설정한 간격 "
 "(분 단위)에서 logrotate 명령을 실행합니다."
 "(분 단위)에서 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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "성공적으로 비활성화됨"
 msgstr "성공적으로 비활성화됨"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "성공적으로 활성화됨"
 msgstr "성공적으로 활성화됨"
@@ -2005,7 +2009,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "구성 관리"
 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"
 msgid "Manage Sites"
 msgstr "사이트 관리"
 msgstr "사이트 관리"
 
 
@@ -2088,8 +2092,8 @@ msgstr "단일 지시문"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2283,7 +2287,7 @@ msgstr "Nginx 구성 오류름"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "아니요"
 msgstr "아니요"
@@ -2303,8 +2307,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "이름 변경"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2348,7 +2352,7 @@ msgstr "유효 시작일: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "참고"
 msgstr "참고"
 
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2574,7 +2578,7 @@ msgstr ""
 "먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청"
 "먼저 인증서 > DNS 자격 증명에 자격 증명을 추가한 다음,DNS 제공자의 API를 요청"
 "하려면 아래 자격 증명 중 하나를 선택해주세요."
 "하려면 아래 자격 증명 중 하나를 선택해주세요."
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2812,22 +2816,22 @@ msgstr "리로드"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "Nginx 리로딩 중"
 msgstr "Nginx 리로딩 중"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "사이트 삭제: %{site_name}"
 msgstr "사이트 삭제: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "성공적으로 저장되었습니다"
 msgstr "성공적으로 저장되었습니다"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
@@ -2869,62 +2873,62 @@ msgstr "성공적으로 제거됨"
 msgid "Rename"
 msgid "Rename"
 msgstr "이름 변경"
 msgstr "이름 변경"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 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
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgid "Rename Remote Config Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:49 src/language/constants.ts:41
+#: src/components/Notification/notifications.ts:31 src/language/constants.ts:41
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgid "Rename Remote Config Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -2991,22 +2995,22 @@ msgstr "재시작"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "재시작 중"
 msgstr "재시작 중"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 msgstr "%{node_name}에서 %{conf_name} 성공적으로 활성화됨"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "성공적으로 저장되었습니다"
 msgstr "성공적으로 저장되었습니다"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
@@ -3092,44 +3096,42 @@ msgstr "지시문 저장"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "저장 오류 %{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
 #, fuzzy
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 배포 실패"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
@@ -3216,6 +3218,11 @@ msgid ""
 "step of DNS challenge."
 "step of DNS challenge."
 msgstr ""
 msgstr ""
 
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "인증서 갱신 오류"
+
 #: src/language/constants.ts:11
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr "DNS01 공급자 설정"
 msgstr "DNS01 공급자 설정"
@@ -3262,6 +3269,11 @@ msgstr "도메인 구성이 성공적으로 생성되었습니다"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "비활성화됨"
 msgstr "비활성화됨"
 
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "비활성화됨"
+
 #: src/routes/modules/nginx_log.ts:31
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 #, fuzzy
 msgid "Site Logs"
 msgid "Site Logs"
@@ -3365,7 +3377,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "상태"
 msgstr "상태"
 
 
@@ -3441,42 +3454,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "인증서 갱신"
 msgstr "인증서 갱신"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 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
 #, fuzzy
 msgid "Sync Certificate Error"
 msgid "Sync Certificate Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:31 src/language/constants.ts:38
+#: src/components/Notification/notifications.ts:13 src/language/constants.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate Success"
 msgid "Sync Certificate Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "%{conf_name}을(를) %{node_name}(으)로 성공적으로 복제함"
 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
 #, fuzzy
 msgid "Sync Config Error"
 msgid "Sync Config Error"
 msgstr "인증서 갱신 오류"
 msgstr "인증서 갱신 오류"
 
 
-#: src/components/Notification/notifications.ts:41 src/language/constants.ts:44
+#: src/components/Notification/notifications.ts:23 src/language/constants.ts:44
 #, fuzzy
 #, fuzzy
 msgid "Sync Config Success"
 msgid "Sync Config Success"
 msgstr "인증서 갱신 성공"
 msgstr "인증서 갱신 성공"
@@ -3486,8 +3499,8 @@ msgstr "인증서 갱신 성공"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr ""
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
 #, fuzzy
@@ -3498,7 +3511,7 @@ msgstr "인증서 갱신"
 msgid "Sync to"
 msgid "Sync to"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr ""
 msgstr ""
@@ -3801,8 +3814,8 @@ msgstr "성공적으로 저장되었습니다"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3847,10 +3860,6 @@ msgstr "가동 시간:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr ""
 msgstr ""
@@ -3974,7 +3983,7 @@ msgid ""
 "Pebble as CA."
 "Pebble as CA."
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
 "Node Group and the nodes selected below will be synchronized."
@@ -4066,6 +4075,9 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr ""
 msgstr ""
 
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "이 사이트를 비활성화하시겠습니까?"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "생성 시간"
 #~ msgstr "생성 시간"

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

@@ -38,7 +38,7 @@ msgstr ""
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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/stream/StreamList.vue:74
 #: src/views/user/userColumns.tsx:60
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
@@ -105,7 +105,7 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 msgstr ""
@@ -183,7 +183,7 @@ msgstr ""
 msgid "Are you sure you want to delete this item?"
 msgid "Are you sure you want to delete this item?"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr ""
 msgstr ""
@@ -316,7 +316,7 @@ msgid "Base information"
 msgstr ""
 msgstr ""
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr ""
 msgstr ""
@@ -368,7 +368,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr ""
 msgstr ""
@@ -706,7 +706,7 @@ msgstr ""
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr ""
 msgstr ""
@@ -716,41 +716,41 @@ msgstr ""
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:55
+#: src/components/Notification/notifications.ts:37
 #: src/language/constants.ts:50
 #: src/language/constants.ts:50
 msgid "Delete Remote Site Error"
 msgid "Delete Remote Site Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:59
+#: src/components/Notification/notifications.ts:41
 #: src/language/constants.ts:49
 #: src/language/constants.ts:49
 msgid "Delete Remote Site Success"
 msgid "Delete Remote Site Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr ""
 msgstr ""
 
 
@@ -808,7 +808,10 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr ""
 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
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgid "Disable"
 msgstr ""
 msgstr ""
@@ -817,53 +820,53 @@ msgstr ""
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:63
+#: src/components/Notification/notifications.ts:45
 #: src/language/constants.ts:52
 #: src/language/constants.ts:52
 msgid "Disable Remote Site Error"
 msgid "Disable Remote Site Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:67
+#: src/components/Notification/notifications.ts:49
 #: src/language/constants.ts:51
 #: src/language/constants.ts:51
 msgid "Disable Remote Site Success"
 msgid "Disable Remote Site Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr ""
 msgstr ""
 
 
@@ -872,17 +875,16 @@ msgstr ""
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/StreamEdit.vue:182
 #: src/views/stream/StreamList.vue:58
 #: src/views/stream/StreamList.vue:58
 #: src/views/user/userColumns.tsx:41
 #: src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr ""
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -910,22 +912,18 @@ msgstr ""
 msgid "Do not enable this option unless you are sure that you need it."
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 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 ""
 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 ""
 msgstr ""
 
 
 #: src/views/stream/components/RightSettings.vue:51
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr ""
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
 msgstr ""
 msgstr ""
@@ -975,7 +973,7 @@ msgid "Due to the security policies of some browsers, you cannot use passkeys on
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1017,7 +1015,10 @@ msgstr ""
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr ""
 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
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgid "Enable"
 msgstr ""
 msgstr ""
@@ -1038,53 +1039,53 @@ msgstr ""
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:71
+#: src/components/Notification/notifications.ts:53
 #: src/language/constants.ts:54
 #: src/language/constants.ts:54
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:75
+#: src/components/Notification/notifications.ts:57
 #: src/language/constants.ts:53
 #: src/language/constants.ts:53
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr ""
 msgstr ""
 
 
@@ -1102,10 +1103,9 @@ msgstr ""
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176
 #: src/views/stream/StreamEdit.vue:176
 #: src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamList.vue:54
@@ -1114,8 +1114,7 @@ msgid "Enabled"
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1125,10 +1124,6 @@ msgstr ""
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr ""
 msgstr ""
@@ -1166,10 +1161,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1303,18 +1294,26 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr ""
 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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr ""
 msgstr ""
 
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:79
+msgid "Failed to enable maintenance mode %{msg}"
+msgstr ""
+
 #: src/constants/errors/backup.ts:25
 #: src/constants/errors/backup.ts:25
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
 msgstr ""
 msgstr ""
@@ -1584,12 +1583,12 @@ msgid "Import Certificate"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 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."
 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 ""
 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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr ""
 msgstr ""
 
 
@@ -1857,7 +1856,7 @@ msgid "Manage Configs"
 msgstr ""
 msgstr ""
 
 
 #: src/routes/modules/sites.ts:10
 #: 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"
 msgid "Manage Sites"
 msgstr ""
 msgstr ""
 
 
@@ -1936,8 +1935,8 @@ msgstr ""
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2116,7 +2115,7 @@ msgstr ""
 #: src/views/preference/CertSettings.vue:73
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr ""
 msgstr ""
@@ -2134,8 +2133,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr ""
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 msgid "Node Group"
 msgid "Node Group"
@@ -2175,7 +2174,7 @@ msgstr ""
 msgid "Note"
 msgid "Note"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 #: 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."
 msgid "Note, if the configuration file include other configurations or certificates, please synchronize them to the remote nodes in advance."
 msgstr ""
 msgstr ""
@@ -2228,8 +2227,8 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: 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."
 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 ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid "Please generate new recovery codes in the preferences immediately to prevent lockout."
 msgid "Please generate new recovery codes in the preferences immediately to prevent lockout."
 msgstr ""
 msgstr ""
@@ -2595,19 +2594,19 @@ msgstr ""
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr ""
 msgstr ""
 
 
@@ -2645,55 +2644,55 @@ msgstr ""
 msgid "Rename"
 msgid "Rename"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:50
+#: src/components/Notification/notifications.ts:32
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:45
+#: src/components/Notification/notifications.ts:27
 #: src/language/constants.ts:42
 #: src/language/constants.ts:42
 msgid "Rename Remote Config Error"
 msgid "Rename Remote Config Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:49
+#: src/components/Notification/notifications.ts:31
 #: src/language/constants.ts:41
 #: src/language/constants.ts:41
 msgid "Rename Remote Config Success"
 msgid "Rename Remote Config Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:95
+#: src/components/Notification/notifications.ts:77
 #: src/language/constants.ts:56
 #: src/language/constants.ts:56
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:99
+#: src/components/Notification/notifications.ts:81
 #: src/language/constants.ts:55
 #: src/language/constants.ts:55
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 msgstr ""
 
 
@@ -2751,19 +2750,19 @@ msgstr ""
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr ""
 msgstr ""
 
 
@@ -2843,37 +2842,37 @@ msgstr ""
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:103
+#: src/components/Notification/notifications.ts:85
 #: src/language/constants.ts:48
 #: src/language/constants.ts:48
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:107
+#: src/components/Notification/notifications.ts:89
 #: src/language/constants.ts:47
 #: src/language/constants.ts:47
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr ""
 msgstr ""
 
 
@@ -2955,6 +2954,10 @@ msgstr ""
 msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge."
 msgid "Set the recursive nameservers to override the systems nameservers for the step of DNS challenge."
 msgstr ""
 msgstr ""
 
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+msgid "set to maintenance mode"
+msgstr ""
+
 #: src/language/constants.ts:11
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr ""
 msgstr ""
@@ -2995,6 +2998,10 @@ msgstr ""
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr ""
 msgstr ""
 
 
+#: src/constants/errors/site.ts:5
+msgid "Site is in maintenance mode"
+msgstr ""
+
 #: src/routes/modules/nginx_log.ts:31
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgid "Site Logs"
 msgstr ""
 msgstr ""
@@ -3087,7 +3094,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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
 #: src/views/stream/StreamList.vue:47
 msgid "Status"
 msgid "Status"
 msgstr ""
 msgstr ""
@@ -3156,38 +3164,38 @@ msgstr ""
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:32
+#: src/components/Notification/notifications.ts:14
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:27
+#: src/components/Notification/notifications.ts:9
 #: src/language/constants.ts:39
 #: src/language/constants.ts:39
 msgid "Sync Certificate Error"
 msgid "Sync Certificate Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:31
+#: src/components/Notification/notifications.ts:13
 #: src/language/constants.ts:38
 #: src/language/constants.ts:38
 msgid "Sync Certificate Success"
 msgid "Sync Certificate Success"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:37
+#: src/components/Notification/notifications.ts:19
 #: src/language/constants.ts:45
 #: src/language/constants.ts:45
 msgid "Sync Config Error"
 msgid "Sync Config Error"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:41
+#: src/components/Notification/notifications.ts:23
 #: src/language/constants.ts:44
 #: src/language/constants.ts:44
 msgid "Sync Config Success"
 msgid "Sync Config Success"
 msgstr ""
 msgstr ""
@@ -3197,8 +3205,8 @@ msgstr ""
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr ""
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 msgid "Sync strategy"
 msgid "Sync strategy"
@@ -3208,7 +3216,7 @@ msgstr ""
 msgid "Sync to"
 msgid "Sync to"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr ""
 msgstr ""
@@ -3451,8 +3459,8 @@ msgstr ""
 #: src/views/config/ConfigEditor.vue:325
 #: src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67
 #: src/views/stream/StreamList.vue:67
 #: src/views/user/userColumns.tsx:54
 #: src/views/user/userColumns.tsx:54
@@ -3496,10 +3504,6 @@ msgstr ""
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr ""
 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."
 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 ""
 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."
 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 ""
 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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "Действие"
 msgstr "Действие"
@@ -115,7 +115,7 @@ msgstr "Затем, обновите эту страницу и снова на
 msgid "All"
 msgid "All"
 msgstr "Все"
 msgstr "Все"
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "Все коды восстановления были использованы"
 msgstr "Все коды восстановления были использованы"
@@ -195,7 +195,7 @@ msgstr "Вы уверены, что хотите удалить этот эле
 msgid "Are you sure you want to delete this item?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Вы уверены, что хотите удалить этот элемент?"
 msgstr "Вы уверены, что хотите удалить этот элемент?"
 
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr "Вы уверены, что хотите удалить?"
 msgstr "Вы уверены, что хотите удалить?"
@@ -331,7 +331,7 @@ msgid "Base information"
 msgstr "Основная информация"
 msgstr "Основная информация"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr "Основные"
 msgstr "Основные"
@@ -384,7 +384,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Отмена"
 msgstr "Отмена"
@@ -738,7 +738,7 @@ msgstr "Ошибка расшифровки"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "Удалить"
 msgstr "Удалить"
@@ -748,45 +748,45 @@ msgstr "Удалить"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr "Удалить навсегда"
 msgstr "Удалить навсегда"
 
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgid "Delete Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:59 src/language/constants.ts:49
+#: src/components/Notification/notifications.ts:41 src/language/constants.ts:49
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgid "Delete Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Сайт %{name} успешно удалён с %{node}"
 msgstr "Сайт %{name} успешно удалён с %{node}"
 
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr "Удалить сайт: %{site_name}"
 msgstr "Удалить сайт: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Поток %{name} успешно удалён с %{node}"
 msgstr "Поток %{name} успешно удалён с %{node}"
 
 
@@ -843,7 +843,11 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr "Директивы"
 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
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgid "Disable"
 msgstr "Отключить"
 msgstr "Отключить"
@@ -852,62 +856,62 @@ msgstr "Отключить"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Не удалось отключить автоматическое продление для %{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
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgid "Disable Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:67 src/language/constants.ts:51
+#: src/components/Notification/notifications.ts:49 src/language/constants.ts:51
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgid "Disable Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 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/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "Отключено"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -953,22 +956,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "Не включайте эту опцию, если не уверены, что она вам нужна."
 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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Вы хотите отключить автоматическое обновление сертификата?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "Вы хотите отключить этот поток?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
 msgstr "Хотите включить этот поток?"
 msgstr "Хотите включить этот поток?"
@@ -1026,7 +1026,7 @@ msgstr ""
 "запускаются на localhost."
 "запускаются на localhost."
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1068,7 +1068,11 @@ msgstr "Электронная почта"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "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
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgid "Enable"
 msgstr "Включить"
 msgstr "Включить"
@@ -1090,61 +1094,61 @@ msgstr "Не удалось включить"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "Включить TOTP"
 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
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:75 src/language/constants.ts:53
+#: src/components/Notification/notifications.ts:57 src/language/constants.ts:53
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Сайт %{name} успешно включён на %{node}"
 msgstr "Сайт %{name} успешно включён на %{node}"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 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"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Сайт %{name} успешно включён на %{node}"
 msgstr "Сайт %{name} успешно включён на %{node}"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Включение %{conf_name} in %{node_name} нипалучилася"
 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"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Поток %{name} успешно включён на %{node}"
 msgstr "Поток %{name} успешно включён на %{node}"
 
 
@@ -1162,10 +1166,9 @@ msgstr "Включить TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1173,8 +1176,7 @@ msgid "Enabled"
 msgstr "Включено"
 msgstr "Включено"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1184,10 +1186,6 @@ msgstr "Активировано успешно"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Использовать для сайта Let's Encrypt"
 msgstr "Использовать для сайта Let's Encrypt"
 
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Переменные окружения очищены"
 msgstr "Переменные окружения очищены"
@@ -1224,10 +1222,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "Исполняемый путь"
 msgstr "Исполняемый путь"
 
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1379,18 +1373,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "Не удалось отключить %{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "Не удалось включить %{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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1695,12 +1699,12 @@ msgid "Import Certificate"
 msgstr "Импортировать сертификат"
 msgstr "Импортировать сертификат"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -1960,17 +1964,17 @@ msgstr ""
 "вручную включить эту опцию. Планировщик задач crontab Nginx UI будет "
 "вручную включить эту опцию. Планировщик задач crontab Nginx UI будет "
 "выполнять команду logrotate с интервалом, который вы установите в минутах."
 "выполнять команду 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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "Отключено успешно"
 msgstr "Отключено успешно"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Активировано успешно"
 msgstr "Активировано успешно"
@@ -1988,7 +1992,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "Конфигурации"
 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"
 msgid "Manage Sites"
 msgstr "Сайты"
 msgstr "Сайты"
 
 
@@ -2064,8 +2068,8 @@ msgstr "Многострочная директива"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2254,7 +2258,7 @@ msgstr "Ошибка разбора конфигурации Nginx"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "Нет"
 msgstr "Нет"
@@ -2274,8 +2278,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "Имя узла"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2318,7 +2322,7 @@ msgstr "Недействительно до: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "Заметка"
 msgstr "Заметка"
 
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2549,7 +2553,7 @@ msgstr ""
 "Credentials, а затем выберите одну из учетных данных ниже, чтобы запросить "
 "Credentials, а затем выберите одну из учетных данных ниже, чтобы запросить "
 "API провайдера DNS."
 "API провайдера DNS."
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2784,22 +2788,22 @@ msgstr "Перегрузить"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "Перезагружается nginx"
 msgstr "Перезагружается nginx"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Удалить сайт: %{site_name}"
 msgstr "Удалить сайт: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Интерфейс Nginx на %{node} успешно обновлен 🎉"
 msgstr "Интерфейс Nginx на %{node} успешно обновлен 🎉"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
@@ -2838,58 +2842,58 @@ msgstr "Успешно удалено"
 msgid "Rename"
 msgid "Rename"
 msgstr "Переименовать"
 msgstr "Переименовать"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 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"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "%{orig_path} успешно переименован в %{new_path} на %{env_name}"
 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"
 msgid "Rename Remote Config Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 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"
 msgid "Rename Remote Config Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:95 src/language/constants.ts:56
+#: src/components/Notification/notifications.ts:77 src/language/constants.ts:56
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:99 src/language/constants.ts:55
+#: src/components/Notification/notifications.ts:81 src/language/constants.ts:55
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 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"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "Сайт %{name} успешно переименован в %{new_name} на %{node}"
 msgstr "Сайт %{name} успешно переименован в %{new_name} на %{node}"
 
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "Переименование %{orig_path} в %{new_path} на %{env_name} успешно"
 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"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "Поток %{name} успешно переименован в %{new_name} на %{node}"
 msgstr "Поток %{name} успешно переименован в %{new_name} на %{node}"
 
 
@@ -2949,22 +2953,22 @@ msgstr "Перезапуск"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "Перезапускается"
 msgstr "Перезапускается"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 msgstr "Включение %{conf_name} in %{node_name} успешно"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Интерфейс Nginx на %{node} успешно обновлен 🎉"
 msgstr "Интерфейс Nginx на %{node} успешно обновлен 🎉"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
@@ -3049,43 +3053,41 @@ msgstr "Сохранить директиву"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "Ошибка сохранения %{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
 #, fuzzy
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:107
-#: src/language/constants.ts:47
+#: src/components/Notification/notifications.ts:89 src/language/constants.ts:47
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "Ошибка переименования удаленной конфигурации"
 msgstr "Ошибка переименования удаленной конфигурации"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 msgstr "Переименование удаленной конфигурации прошло успешно"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "Продублированно %{conf_name} в %{node_name}"
 msgstr "Продублированно %{conf_name} в %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Сайт %{name} успешно сохранён на %{node}"
 msgstr "Сайт %{name} успешно сохранён на %{node}"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 msgstr "Не удалось развернуть %{conf_name} на %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Поток %{name} успешно сохранён на %{node}"
 msgstr "Поток %{name} успешно сохранён на %{node}"
 
 
@@ -3174,6 +3176,11 @@ msgstr ""
 "Установите рекурсивные серверы имен, чтобы переопределить системные серверы "
 "Установите рекурсивные серверы имен, чтобы переопределить системные серверы "
 "имен для шага проверки DNS."
 "имен для шага проверки DNS."
 
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "Ошибка переименования удаленной конфигурации"
+
 #: src/language/constants.ts:11
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr "Настройка провайдера проверки DNS01"
 msgstr "Настройка провайдера проверки DNS01"
@@ -3220,6 +3227,11 @@ msgstr "Конфигурация домена успешно создана"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "Авто Сертификат"
 msgstr "Авто Сертификат"
 
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "Авто Сертификат"
+
 #: src/routes/modules/nginx_log.ts:31
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgid "Site Logs"
 msgstr "Журналы сайта"
 msgstr "Журналы сайта"
@@ -3317,7 +3329,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "Статус"
 msgstr "Статус"
 
 
@@ -3392,38 +3405,38 @@ msgstr "Синхронизация"
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "Синхронизировать сертификат"
 msgstr "Синхронизировать сертификат"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Сертификат %{cert_name} успешно синхронизирован с %{env_name}"
 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"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Сертификат %{cert_name} успешно синхронизирован с %{env_name}"
 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"
 msgid "Sync Certificate Error"
 msgstr "Ошибка синхронизации сертификата"
 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"
 msgid "Sync Certificate Success"
 msgstr "Сертификат успешно синхронизирован"
 msgstr "Сертификат успешно синхронизирован"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Конфигурация синхронизирована %{config_name} с %{env_name} успешно"
 msgstr "Конфигурация синхронизирована %{config_name} с %{env_name} успешно"
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Конфигурация синхронизирована %{config_name} с %{env_name} успешно"
 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"
 msgid "Sync Config Error"
 msgstr "Ошибка синхронизации конфигурации"
 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"
 msgid "Sync Config Success"
 msgstr "Синхронизация конфигурации успешна"
 msgstr "Синхронизация конфигурации успешна"
 
 
@@ -3433,8 +3446,8 @@ msgstr "Синхронизация конфигурации успешна"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr "Синхронизировать с"
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
 #, fuzzy
@@ -3445,7 +3458,7 @@ msgstr "Синхронизировать сертификат"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Синхронизировать с"
 msgstr "Синхронизировать с"
 
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr ""
 msgstr ""
@@ -3768,8 +3781,8 @@ msgstr "Успешно обновлено"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3811,10 +3824,6 @@ msgstr "Аптайм:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr "Использовать OTP"
 msgstr "Использовать OTP"
@@ -3935,7 +3944,7 @@ msgid ""
 "Pebble as CA."
 "Pebble as CA."
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
 "Node Group and the nodes selected below will be synchronized."
@@ -4027,6 +4036,9 @@ msgstr "Ваши старые коды больше не будут работа
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr ""
 msgstr ""
 
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Вы хотите отключить этот сайт?"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "Создан в"
 #~ 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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "Eylem"
 msgstr "Eylem"
@@ -112,7 +112,7 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 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?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Bu öğeyi silmek istediğinizden emin misiniz?"
 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
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr "Silmek istediğine emin misin?"
 msgstr "Silmek istediğine emin misin?"
@@ -332,7 +332,7 @@ msgid "Base information"
 msgstr "Temel bilgiler"
 msgstr "Temel bilgiler"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr "Temel"
 msgstr "Temel"
@@ -385,7 +385,7 @@ msgstr "CADizini"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "İptal"
 msgstr "İptal"
@@ -745,7 +745,7 @@ msgstr "Açıklama"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "Sil"
 msgstr "Sil"
@@ -755,48 +755,48 @@ msgstr "Sil"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr "Kalıcı Olarak Sil"
 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
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgid "Delete Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 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
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgid "Delete Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 #, fuzzy
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 "%{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
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 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}"
 msgid "Delete site: %{site_name}"
 msgstr "Siteyi sil: %{site_name}"
 msgstr "Siteyi sil: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 "%{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
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
@@ -854,7 +854,11 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr "Yönergeler"
 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
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgid "Disable"
 msgstr "Devre Dışı"
 msgstr "Devre Dışı"
@@ -863,72 +867,72 @@ msgstr "Devre Dışı"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "%{name} için otomatik yenilemeyi devre dışı bırakma başarısız oldu"
 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
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgid "Disable Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 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
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgid "Disable Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr ""
 msgstr ""
@@ -940,15 +944,14 @@ msgstr ""
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "Devre dışı"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -976,22 +979,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 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."
 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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "Otomatik sertifika yenilemeyi devre dışı bırakmak istiyor musunuz?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "Bu akışı devre dışı bırakmak istiyor musunuz?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
 msgstr "Bu akışı etkinleştirmek istiyor musunuz?"
 msgstr "Bu akışı etkinleştirmek istiyor musunuz?"
@@ -1049,7 +1049,7 @@ msgstr ""
 "kullanamazsınız."
 "kullanamazsınız."
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1091,7 +1091,11 @@ msgstr "E-posta"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "E-posta(*)"
 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
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgid "Enable"
 msgstr "Etkinleştir"
 msgstr "Etkinleştir"
@@ -1113,72 +1117,72 @@ msgstr "Etkinleştirme başarısız"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "TOTP'yi Etkinleştir"
 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
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 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
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarısız "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr ""
 msgstr ""
@@ -1199,10 +1203,9 @@ msgstr "TOTP'yi Etkinleştir"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1210,8 +1213,7 @@ msgid "Enabled"
 msgstr "Etkin"
 msgstr "Etkin"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1221,10 +1223,6 @@ msgstr "Başarıyla etkinleştirildi"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Let's Encrypt ile web sitesini şifreleyin"
 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
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "Ortam değişkenleri temizlendi"
 msgstr "Ortam değişkenleri temizlendi"
@@ -1261,10 +1259,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "Yürütülebilir Dosya Yolu"
 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/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1416,18 +1410,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "Devre dışı bırakılamadı %{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "Etkinleştirilemedi %{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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1733,12 +1737,12 @@ msgid "Import Certificate"
 msgstr "Sertifika İçe Aktar"
 msgstr "Sertifika İçe Aktar"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -1999,17 +2003,17 @@ msgstr ""
 "etkinleştirebilir. Nginx UI'nin crontab görev zamanlayıcısı, belirlediğiniz "
 "etkinleştirebilir. Nginx UI'nin crontab görev zamanlayıcısı, belirlediğiniz "
 "dakika aralığında logrotate komutunu çalıştıracaktır."
 "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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "Başarıyla devre dışı bırakıldı"
 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
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Başarıyla etkinleştirildi"
 msgstr "Başarıyla etkinleştirildi"
@@ -2029,7 +2033,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "Yapılandırmaları Yönet"
 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
 #, fuzzy
 msgid "Manage Sites"
 msgid "Manage Sites"
 msgstr "Siteleri Yönet"
 msgstr "Siteleri Yönet"
@@ -2119,8 +2123,8 @@ msgstr "Çok Hatlı Direktif"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: 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/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 #, fuzzy
 #, fuzzy
 msgid "No"
 msgid "No"
@@ -2348,8 +2352,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "Yeni Ad"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2398,7 +2402,7 @@ msgstr "Önce Geçerli Değil: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "Not"
 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
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: 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 "
 "ekleyin ve ardından DNS sağlayıcısının API'sini istemek için aşağıdaki "
 "kimlik bilgilerinden birini seçin."
 "kimlik bilgilerinden birini seçin."
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2930,22 +2934,22 @@ msgstr "Tekrar yükle"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "Nginx'i yeniden yükleme"
 msgstr "Nginx'i yeniden yükleme"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Siteyi sil: %{site_name}"
 msgstr "Siteyi sil: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Nginx kullanıcı arayüzü %{node} üzerinde başarıyla yükseltildi 🎉"
 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
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
@@ -2990,67 +2994,67 @@ msgstr "Başarıyla kaldırıldı"
 msgid "Rename"
 msgid "Rename"
 msgstr "Yeniden Adlandır"
 msgstr "Yeniden Adlandır"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr ""
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 "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
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr ""
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 "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
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgid "Rename Remote Config Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 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
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgid "Rename Remote Config Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 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
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 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
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr ""
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 "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
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 "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
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr ""
 msgstr ""
 "2] üzerinde %{orig_path}'ı %{new_path} olarak başarıyla yeniden adlandırın"
 "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
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr ""
 msgstr ""
@@ -3121,24 +3125,24 @@ msgstr "Yeniden başlat"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "Yeniden Başlatma"
 msgstr "Yeniden Başlatma"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "%{conf_name} yapılandırmasını %{node_name} düğümünde etkinleştirme başarılı "
 "oldu"
 "oldu"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Nginx kullanıcı arayüzü %{node} üzerinde başarıyla yükseltildi 🎉"
 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
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
@@ -3229,45 +3233,43 @@ msgstr "Direktifi Kaydet"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "Hatayı kaydet %{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
 #, fuzzy
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 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
 #, fuzzy
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandır Hatası"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 msgstr "Uzak Yapılandırmayı Yeniden Adlandırma Başarılı"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 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
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 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
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr ""
 msgstr ""
 "%{conf_name} yapılandırmasını %{node_name} düğümüne dağıtma başarısız oldu"
 "%{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
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "%{conf_name} başarıyla %{node_name} düğümüne kopyalandı"
 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ı "
 "Özyinelemeli ad sunucularını, DNS zorluğu adımı için sistem ad sunucularını "
 "geçersiz kılacak şekilde ayarlayı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
 #: src/language/constants.ts:11
 #, fuzzy
 #, fuzzy
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
@@ -3418,6 +3425,11 @@ msgstr "Alan Adı Yapılandırması Başarıyla Oluşturuldu"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "Devre dışı"
 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
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 #, fuzzy
 msgid "Site Logs"
 msgid "Site Logs"
@@ -3523,7 +3535,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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
 #, fuzzy
 msgid "Status"
 msgid "Status"
 msgstr "Durum"
 msgstr "Durum"
@@ -3607,42 +3620,42 @@ msgstr "Eşitle"
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "Senkronizasyon Sertifikası"
 msgstr "Senkronizasyon Sertifikası"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Sertifika %{cert_name}'ı %{env_name} ile başarıyla senkronize edin"
 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
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Sertifika %{cert_name}'ı %{env_name} ile başarıyla senkronize edin"
 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
 #, fuzzy
 msgid "Sync Certificate Error"
 msgid "Sync Certificate Error"
 msgstr "Senkronizasyon Sertifikası Hatası"
 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
 #, fuzzy
 msgid "Sync Certificate Success"
 msgid "Sync Certificate Success"
 msgstr "Senkronizasyon Sertifikası Başarısı"
 msgstr "Senkronizasyon Sertifikası Başarısı"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Config %{config_name} ile %{env_name}'i başarıyla senkronize edin"
 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
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Config %{config_name} ile %{env_name}'i başarıyla senkronize edin"
 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
 #, fuzzy
 msgid "Sync Config Error"
 msgid "Sync Config Error"
 msgstr "Senkronizasyon Yapılandırma Hatası"
 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
 #, fuzzy
 msgid "Sync Config Success"
 msgid "Sync Config Success"
 msgstr "Senkronizasyon Yapılandırması Başarılı"
 msgstr "Senkronizasyon Yapılandırması Başarılı"
@@ -3653,8 +3666,8 @@ msgstr "Senkronizasyon Yapılandırması Başarılı"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr "Şununla senkronize et"
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
 #, fuzzy
@@ -3666,7 +3679,7 @@ msgstr "Senkronizasyon Sertifikası"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "Şununla senkronize et"
 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
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr ""
 msgstr ""
@@ -4023,8 +4036,8 @@ msgstr "Güncellendi"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #, fuzzy
 #, fuzzy
@@ -4075,10 +4088,6 @@ msgstr "Çalışma süresi:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 #, fuzzy
 #, fuzzy
 msgid "Use OTP"
 msgid "Use OTP"
@@ -4216,7 +4225,7 @@ msgstr ""
 "yeniden kaydeder. Genel olarak, bir geliştirme ortamında değilseniz ve CA "
 "yeniden kaydeder. Genel olarak, bir geliştirme ortamında değilseniz ve CA "
 "olarak Pebble kullanmıyorsanız bunu etkinleştirmeyin."
 "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 ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
 "Node Group and the nodes selected below will be synchronized."
@@ -4318,6 +4327,9 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr "Geçiş anahtarlarınız"
 msgstr "Geçiş anahtarlarınız"
 
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Bu siteyi devre dışı bırakmak istiyor musunuz?"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "Oluşturulma Tarihi"
 #~ 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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "Hành động"
 msgstr "Hành động"
@@ -113,7 +113,7 @@ msgstr ""
 msgid "All"
 msgid "All"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr ""
 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?"
 msgid "Are you sure you want to delete this item?"
 msgstr "Bạn chắc chắn muốn xóa nó "
 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
 #: src/views/stream/StreamList.vue:227
 #, fuzzy
 #, fuzzy
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
@@ -344,7 +344,7 @@ msgid "Base information"
 msgstr "Thông tin"
 msgstr "Thông tin"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 #, fuzzy
 #, fuzzy
 msgid "Basic"
 msgid "Basic"
@@ -400,7 +400,7 @@ msgstr ""
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Huỷ"
 msgstr "Huỷ"
@@ -771,7 +771,7 @@ msgstr "Mô tả"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "Xoá"
 msgstr "Xoá"
@@ -781,46 +781,46 @@ msgstr "Xoá"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr ""
 msgstr ""
 
 
-#: src/components/Notification/notifications.ts:55 src/language/constants.ts:50
+#: src/components/Notification/notifications.ts:37 src/language/constants.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Delete Remote Site Error"
 msgid "Delete Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Delete Remote Site Success"
 msgid "Delete Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 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
 #, fuzzy
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 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}"
 msgid "Delete site: %{site_name}"
 msgstr "Xoá trang web: %{site_name}"
 msgstr "Xoá trang web: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 #, fuzzy
 #, fuzzy
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 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
 #, fuzzy
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -880,7 +880,11 @@ msgstr ""
 msgid "Directives"
 msgid "Directives"
 msgstr "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
 #: src/views/stream/StreamList.vue:207
 #, fuzzy
 #, fuzzy
 msgid "Disable"
 msgid "Disable"
@@ -890,62 +894,62 @@ msgstr "Tắt"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "Tắt tự động gia hạn SSL cho %{name} thất bại"
 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
 #, fuzzy
 msgid "Disable Remote Site Error"
 msgid "Disable Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Disable Remote Site Success"
 msgid "Disable Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 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
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 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/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "Đã tắt"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -991,25 +994,20 @@ msgstr ""
 msgid "Do not enable this option unless you are sure that you need it."
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr ""
 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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 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 ?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 #, fuzzy
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "Bạn muốn tắt trang web này ?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 #, fuzzy
 #, fuzzy
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
@@ -1068,7 +1066,7 @@ msgid ""
 msgstr ""
 msgstr ""
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1113,7 +1111,11 @@ msgstr "Email (*)"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "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
 #: src/views/stream/StreamList.vue:215
 #, fuzzy
 #, fuzzy
 msgid "Enable"
 msgid "Enable"
@@ -1137,62 +1139,62 @@ msgstr "Bật không thành công"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "Bật TLS"
 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
 #, fuzzy
 msgid "Enable Remote Site Error"
 msgid "Enable Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Enable Remote Site Success"
 msgid "Enable Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 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
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 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
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "Không thể bật %{conf_name} trên %{node_name}"
 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
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 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/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1223,8 +1224,7 @@ msgid "Enabled"
 msgstr "Đã bật"
 msgstr "Đã bật"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1234,10 +1234,6 @@ msgstr "Đã bật"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "Bảo mật trang web với 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
 #: src/language/constants.ts:22
 #, fuzzy
 #, fuzzy
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
@@ -1276,10 +1272,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "Đường dẫn thực thi"
 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/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1433,18 +1425,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "Không thể tắt %{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "Không thể bật %{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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1744,12 +1746,12 @@ msgid "Import Certificate"
 msgstr "Chứng chỉ"
 msgstr "Chứng chỉ"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr ""
 msgstr ""
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -2016,17 +2018,17 @@ msgid ""
 "minutes."
 "minutes."
 msgstr ""
 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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "Đã tắt thành công"
 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
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "Đã bật"
 msgstr "Đã bật"
@@ -2045,7 +2047,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "Quản lý cấu hình"
 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"
 msgid "Manage Sites"
 msgstr "Quản lý Website"
 msgstr "Quản lý Website"
 
 
@@ -2127,8 +2129,8 @@ msgstr "Single Directive"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: 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/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "Không"
 msgstr "Không"
@@ -2340,8 +2342,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "Username"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2385,7 +2387,7 @@ msgstr "Không hợp lệ trước: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "Ghi chú"
 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
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: 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 "
 "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"
 "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
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2847,22 +2849,22 @@ msgstr "Tải lại"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "Tải lại nginx"
 msgstr "Tải lại nginx"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "Xoá trang web: %{site_name}"
 msgstr "Xoá trang web: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "Cập nhật thành công"
 msgstr "Cập nhật thành công"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 msgstr "Gia hạn chứng chỉ SSL thành công"
@@ -2904,62 +2906,62 @@ msgstr "Xoá thành công"
 msgid "Rename"
 msgid "Rename"
 msgstr "Username"
 msgstr "Username"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 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"
 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
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 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"
 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
 #, fuzzy
 msgid "Rename Remote Config Error"
 msgid "Rename Remote Config Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Rename Remote Config Success"
 msgid "Rename Remote Config Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Rename Remote Site Error"
 msgid "Rename Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Rename Remote Site Success"
 msgid "Rename Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 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"
 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
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 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"
 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
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 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"
 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
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 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"
 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"
 msgid "Restart Nginx"
 msgstr "Đang khởi động lại"
 msgstr "Đang khởi động lại"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 msgstr "Đã bật %{conf_name} trên %{node_name}"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "Cập nhật thành công"
 msgstr "Cập nhật thành công"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 msgstr "Gia hạn chứng chỉ SSL thành công"
@@ -3127,44 +3129,42 @@ msgstr "Lưu Directive"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "Đã xảy ra lỗi khi lưu %{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
 #, fuzzy
 msgid "Save Remote Site Error"
 msgid "Save Remote Site Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Save Remote Site Success"
 msgid "Save Remote Site Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 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
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 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
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "Triển khai %{conf_name} tới %{node_name} thất bại"
 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
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
@@ -3251,6 +3251,11 @@ msgid ""
 "step of DNS challenge."
 "step of DNS challenge."
 msgstr ""
 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
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr "Sử dụng DNS01 để xác thực SSL"
 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"
 msgid "Site is enabled"
 msgstr "Đã tắt"
 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
 #: src/routes/modules/nginx_log.ts:31
 #, fuzzy
 #, fuzzy
 msgid "Site Logs"
 msgid "Site Logs"
@@ -3397,7 +3407,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "Trạng thái"
 msgstr "Trạng thái"
 
 
@@ -3473,42 +3484,42 @@ msgstr ""
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "Gia hạn chứng chỉ SSL"
 msgstr "Gia hạn chứng chỉ SSL"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 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
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 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
 #, fuzzy
 msgid "Sync Certificate Error"
 msgid "Sync Certificate Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Sync Certificate Success"
 msgid "Sync Certificate Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 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
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "Nhân bản %{conf_name} thành %{node_name} thành công"
 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
 #, fuzzy
 msgid "Sync Config Error"
 msgid "Sync Config Error"
 msgstr "Gia hạn chứng chỉ SSL thất bại"
 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
 #, fuzzy
 msgid "Sync Config Success"
 msgid "Sync Config Success"
 msgstr "Gia hạn chứng chỉ SSL thành công"
 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"
 msgid "Sync Nodes"
 msgstr ""
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 #, fuzzy
 #, fuzzy
@@ -3530,7 +3541,7 @@ msgstr "Gia hạn chứng chỉ SSL"
 msgid "Sync to"
 msgid "Sync to"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr ""
 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/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3875,10 +3886,6 @@ msgstr "Thời gian hoạt động:"
 msgid "URL"
 msgid "URL"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr ""
 msgstr ""
@@ -4002,7 +4009,7 @@ msgid ""
 "Pebble as CA."
 "Pebble as CA."
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
 "Node Group and the nodes selected below will be synchronized."
@@ -4094,6 +4101,10 @@ msgstr ""
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr ""
 msgstr ""
 
 
+#, fuzzy
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "Bạn muốn tắt trang web này ?"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "Ngày tạo"
 #~ msgstr "Ngày tạo"

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

@@ -3,7 +3,7 @@ msgid ""
 msgstr ""
 msgstr ""
 "Project-Id-Version: \n"
 "Project-Id-Version: \n"
 "POT-Creation-Date: \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"
 "Last-Translator: 0xJacky <me@jackyu.cn>\n"
 "Language-Team: Chinese (Simplified Han script) <https://weblate.nginxui.com/"
 "Language-Team: Chinese (Simplified Han script) <https://weblate.nginxui.com/"
 "projects/nginx-ui/frontend/zh_Hans/>\n"
 "projects/nginx-ui/frontend/zh_Hans/>\n"
@@ -49,7 +49,7 @@ msgstr "ACME 用户"
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "操作"
 msgstr "操作"
@@ -113,7 +113,7 @@ msgstr "然后,刷新此页面并再次点击添加 Passkey。"
 msgid "All"
 msgid "All"
 msgstr "全部"
 msgstr "全部"
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "所有恢复码都已被使用"
 msgstr "所有恢复码都已被使用"
@@ -191,7 +191,7 @@ msgstr "您确定要永久删除此项目吗?"
 msgid "Are you sure you want to delete this item?"
 msgid "Are you sure you want to delete this item?"
 msgstr "你确定要删除这个项目吗?"
 msgstr "你确定要删除这个项目吗?"
 
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr "您确定要删除吗?"
 msgstr "您确定要删除吗?"
@@ -322,7 +322,7 @@ msgid "Base information"
 msgstr "基本信息"
 msgstr "基本信息"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr "基本"
 msgstr "基本"
@@ -374,7 +374,7 @@ msgstr "CADir"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "取消"
 msgstr "取消"
@@ -721,7 +721,7 @@ msgstr "解密失败"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "删除"
 msgstr "删除"
@@ -731,39 +731,39 @@ msgstr "删除"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr "彻底删除"
 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"
 msgid "Delete Remote Site Error"
 msgstr "删除远程站点错误"
 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"
 msgid "Delete Remote Site Success"
 msgstr "删除远程站点成功"
 msgstr "删除远程站点成功"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "删除远程 Stream 错误"
 msgstr "删除远程 Stream 错误"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "删除远程 Stream 成功"
 msgstr "删除远程 Stream 成功"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 msgstr "部署 %{name} 到 %{node} 失败"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "成功从 %{node} 中删除站点 %{name}"
 msgstr "成功从 %{node} 中删除站点 %{name}"
 
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr "删除站点: %{site_name}"
 msgstr "删除站点: %{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 msgstr "部署 %{name} 到 %{node} 失败"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "成功从 %{node} 中删除站点 %{name}"
 msgstr "成功从 %{node} 中删除站点 %{name}"
 
 
@@ -820,7 +820,10 @@ msgstr "指令 index 超出范围"
 msgid "Directives"
 msgid "Directives"
 msgstr "指令"
 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
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgid "Disable"
 msgstr "禁用"
 msgstr "禁用"
@@ -829,51 +832,51 @@ msgstr "禁用"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "关闭 %{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"
 msgid "Disable Remote Site Error"
 msgstr "禁用远程站点错误"
 msgstr "禁用远程站点错误"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "禁用远程站点维护错误"
 msgstr "禁用远程站点维护错误"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "禁用远程站点维护成功"
 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"
 msgid "Disable Remote Site Success"
 msgstr "禁用远程站点成功"
 msgstr "禁用远程站点成功"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "禁用远程 Stream 错误"
 msgstr "禁用远程 Stream 错误"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "禁用远程 Stream成功"
 msgstr "禁用远程 Stream成功"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "停用站点 %{name} 维护 %{node} 失败"
 msgstr "停用站点 %{name} 维护 %{node} 失败"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "成功停用站点 %{name} 上 %{node} 的维护功能"
 msgstr "成功停用站点 %{name} 上 %{node} 的维护功能"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 msgstr "在 %{node} 上禁用 %{name} 成功"
 
 
@@ -882,15 +885,14 @@ msgstr "在 %{node} 上禁用 %{name} 成功"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "禁用"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -918,29 +920,25 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "除非确定需要,否则不要启用该选项。"
 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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "你想禁用自动更新证书吗?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "你想停用这个 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
 msgstr "你想启用这个 Stream 吗?"
 msgstr "你想启用这个 Stream 吗?"
 
 
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:44
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:44
 msgid "Do you want to enable TLS?"
 msgid "Do you want to enable TLS?"
-msgstr "你想启用TLS吗?"
+msgstr "你想启用 TLS 吗?"
 
 
 #: src/views/site/ngx_conf/NgxServer.vue:76
 #: src/views/site/ngx_conf/NgxServer.vue:76
 msgid "Do you want to remove this server?"
 msgid "Do you want to remove this server?"
@@ -986,7 +984,7 @@ msgstr ""
 "使用 Passkey。"
 "使用 Passkey。"
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1027,7 +1025,10 @@ msgstr "邮箱"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "邮箱 (*)"
 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
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgid "Enable"
 msgstr "启用"
 msgstr "启用"
@@ -1048,51 +1049,51 @@ msgstr "启用失败"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "启用 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"
 msgid "Enable Remote Site Error"
 msgstr "启用远程站点错误"
 msgstr "启用远程站点错误"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "在 %{node} 上启用 %{site} 失败"
 msgstr "在 %{node} 上启用 %{site} 失败"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "成功启用远程站点维护"
 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"
 msgid "Enable Remote Site Success"
 msgstr "启用远程站点成功"
 msgstr "启用远程站点成功"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "启用远程 Steam 错误"
 msgstr "启用远程 Steam 错误"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "启用远程 Stream 成功"
 msgstr "启用远程 Stream 成功"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "在 %{node} 中为 %{name} 启用维护模式失败"
 msgstr "在 %{node} 中为 %{name} 启用维护模式失败"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "在 %{node} 上成功启用站点 %{name} 维护模式"
 msgstr "在 %{node} 上成功启用站点 %{name} 维护模式"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "在 %{node} 上启用 %{name} 成功"
 msgstr "在 %{node} 上启用 %{name} 成功"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "在 %{node} 中启用 %{name} 失败"
 msgstr "在 %{node} 中启用 %{name} 失败"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "在 %{node} 上启用 %{name} 成功"
 msgstr "在 %{node} 上启用 %{name} 成功"
 
 
@@ -1110,10 +1111,9 @@ msgstr "启用 TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1121,8 +1121,7 @@ msgid "Enabled"
 msgstr "启用"
 msgstr "启用"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1132,10 +1131,6 @@ msgstr "启用成功"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "用 Let's Encrypt 对网站进行加密"
 msgstr "用 Let's Encrypt 对网站进行加密"
 
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr "进入维护"
-
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "环境变量已清理"
 msgstr "环境变量已清理"
@@ -1171,10 +1166,6 @@ msgstr "内容处理错误"
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "可执行文件路径"
 msgstr "可执行文件路径"
 
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr "退出维护"
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1308,18 +1299,26 @@ msgstr "解密 Nginx 目录失败:{0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr "解密 Nginx UI 目录失败:{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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "禁用失败 %{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "启用失败 %{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
 #: src/constants/errors/backup.ts:25
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
 msgstr "加密数据失败:{0}"
 msgstr "加密数据失败:{0}"
@@ -1599,12 +1598,12 @@ msgid "Import Certificate"
 msgstr "导入证书"
 msgstr "导入证书"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: 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"
 msgid "Indexed"
 msgstr "已索引"
 msgstr "已索引"
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr "索引中..."
 msgstr "索引中..."
 
 
@@ -1857,16 +1856,16 @@ msgstr ""
 "Nginx 用户界面的用户,您可以手动启用该选项。Nginx UI 的定时任务任务调度器将按"
 "Nginx 用户界面的用户,您可以手动启用该选项。Nginx UI 的定时任务任务调度器将按"
 "照您设置的时间间隔(以分钟为单位)执行 logrotate 命令。"
 "照您设置的时间间隔(以分钟为单位)执行 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"
 msgid "Maintenance"
 msgstr "维护模式"
 msgstr "维护模式"
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "成功禁用维护模式"
 msgstr "成功禁用维护模式"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "成功启用维护模式"
 msgstr "成功启用维护模式"
 
 
@@ -1883,7 +1882,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "配置管理"
 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"
 msgid "Manage Sites"
 msgstr "网站管理"
 msgstr "网站管理"
 
 
@@ -1959,8 +1958,8 @@ msgstr "多行指令"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2139,7 +2138,7 @@ msgstr "Nginx UI 配置已恢复,几秒钟后将自动重启。"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "取消"
 msgstr "取消"
@@ -2157,8 +2156,8 @@ msgstr "未选择记录"
 msgid "Node"
 msgid "Node"
 msgstr "节点"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 msgid "Node Group"
 msgid "Node Group"
@@ -2198,7 +2197,7 @@ msgstr "此前无效: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "注意"
 msgstr "注意"
 
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2420,7 +2419,7 @@ msgstr ""
 "请首先在 “证书”> “DNS 凭证” 中添加凭证,然后在下方选择一个凭证,请求 DNS 提供"
 "请首先在 “证书”> “DNS 凭证” 中添加凭证,然后在下方选择一个凭证,请求 DNS 提供"
 "商的 API。"
 "商的 API。"
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2640,19 +2639,19 @@ msgstr "重载"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "重载 Nginx"
 msgstr "重载 Nginx"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "在 %{node} 上重载 Nginx 失败,响应:%{resp}"
 msgstr "在 %{node} 上重载 Nginx 失败,响应:%{resp}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "在 %{node} 上重载 Nginx 成功"
 msgstr "在 %{node} 上重载 Nginx 成功"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "重载远程 Nginx 错误"
 msgstr "重载远程 Nginx 错误"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "重载远程 Nginx 成功"
 msgstr "重载远程 Nginx 成功"
 
 
@@ -2690,51 +2689,51 @@ msgstr "删除成功"
 msgid "Rename"
 msgid "Rename"
 msgstr "重命名"
 msgstr "重命名"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "成功将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path}"
 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"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "成功将 %{env_name} 上的 %{orig_path} 重命名为 %{new_path}"
 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"
 msgid "Rename Remote Config Error"
 msgstr "远程配置重命名错误"
 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"
 msgid "Rename Remote Config Success"
 msgstr "重命名远程配置成功"
 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"
 msgid "Rename Remote Site Error"
 msgstr "重命名远程站点错误"
 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"
 msgid "Rename Remote Site Success"
 msgstr "重命名远程站点成功"
 msgstr "重命名远程站点成功"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "重命名远程 Stream 错误"
 msgstr "重命名远程 Stream 错误"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "重命名远程 Stream成功"
 msgstr "重命名远程 Stream成功"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 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"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 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"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 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"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 msgstr "在 %{node} 上将站点 %{name} 重命名为 %{new_name} 成功"
 
 
@@ -2792,19 +2791,19 @@ msgstr "重启"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "重启 Nginx"
 msgstr "重启 Nginx"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "在 %{node} 上重启 Nginx 失败,响应:%{resp}"
 msgstr "在 %{node} 上重启 Nginx 失败,响应:%{resp}"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "在 %{node} 上重启 Nginx 成功"
 msgstr "在 %{node} 上重启 Nginx 成功"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "重启远程 Nginx 错误"
 msgstr "重启远程 Nginx 错误"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "重启远程 Nginx 成功"
 msgstr "重启远程 Nginx 成功"
 
 
@@ -2884,37 +2883,35 @@ msgstr "保存指令"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "保存错误 %{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"
 msgid "Save Remote Site Error"
 msgstr "保存远程站点错误"
 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"
 msgid "Save Remote Site Success"
 msgstr "保存远程站点成功"
 msgstr "保存远程站点成功"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "保存远程 Stream 错误"
 msgstr "保存远程 Stream 错误"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "保存远程 Stream 成功"
 msgstr "保存远程 Stream 成功"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "部署 %{name} 到 %{node} 失败"
 msgstr "部署 %{name} 到 %{node} 失败"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 msgstr "成功将站点 %{name} 保存到 %{node} 中"
 
 
@@ -2997,6 +2994,10 @@ msgid ""
 "step of DNS challenge."
 "step of DNS challenge."
 msgstr "为 DNS 挑战步骤设置递归域名服务器以覆盖操作系统的域名服务器设置。"
 msgstr "为 DNS 挑战步骤设置递归域名服务器以覆盖操作系统的域名服务器设置。"
 
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+msgid "set to maintenance mode"
+msgstr "设置为维护模式"
+
 #: src/language/constants.ts:11
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr "使用 DNS01 Challenge 提供商"
 msgstr "使用 DNS01 Challenge 提供商"
@@ -3045,6 +3046,10 @@ msgstr "网站配置创建成功"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "网站已启用"
 msgstr "网站已启用"
 
 
+#: src/constants/errors/site.ts:5
+msgid "Site is in maintenance mode"
+msgstr "网站处于维护模式"
+
 #: src/routes/modules/nginx_log.ts:31
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgid "Site Logs"
 msgstr "站点列表"
 msgstr "站点列表"
@@ -3136,7 +3141,8 @@ msgstr "开始还原"
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "状态"
 msgstr "状态"
 
 
@@ -3209,35 +3215,35 @@ msgstr "同步"
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "同步证书"
 msgstr "同步证书"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "证书 %{cert_name} 已成功同步到 %{env_name}"
 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"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "证书 %{cert_name} 已成功同步到 %{env_name}"
 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"
 msgid "Sync Certificate Error"
 msgstr "同步证书错误"
 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"
 msgid "Sync Certificate Success"
 msgstr "同步证书成功"
 msgstr "同步证书成功"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "配置 %{config_name} 成功同步到 %{env_name}"
 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"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "配置 %{config_name} 成功同步到 %{env_name}"
 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"
 msgid "Sync Config Error"
 msgstr "同步配置错误"
 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"
 msgid "Sync Config Success"
 msgstr "同步配置成功"
 msgstr "同步配置成功"
 
 
@@ -3246,8 +3252,8 @@ msgstr "同步配置成功"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr "同步节点"
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 msgid "Sync strategy"
 msgid "Sync strategy"
@@ -3257,7 +3263,7 @@ msgstr "同步策略"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "同步到"
 msgstr "同步到"
 
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr "同步"
 msgstr "同步"
@@ -3551,8 +3557,8 @@ msgstr "更新成功"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3594,10 +3600,6 @@ msgstr "运行时间:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr "链接"
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr "使用二步验证码"
 msgstr "使用二步验证码"
@@ -3715,7 +3717,7 @@ msgstr ""
 "启用后,Nginx UI 将在启动时自动重新注册用户。一般情况下,除非在开发环境中使"
 "启用后,Nginx UI 将在启动时自动重新注册用户。一般情况下,除非在开发环境中使"
 "用 Pebble 作为 CA,否则不要启用此功能。"
 "用 Pebble 作为 CA,否则不要启用此功能。"
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "Node Group and the nodes selected below will be synchronized."
 "Node Group and the nodes selected below will be synchronized."
@@ -3812,6 +3814,15 @@ msgstr "您的旧代码将不再有效。"
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr "你的 Passkeys"
 msgstr "你的 Passkeys"
 
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "你想停用这个网站吗?"
+
+#~ msgid "Enter Maintenance"
+#~ msgstr "进入维护"
+
+#~ msgid "URLs"
+#~ msgstr "链接"
+
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "创建时间"
 #~ 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/nginx_log/NginxLogList.vue:53
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/notification/notificationColumns.tsx:66
 #: src/views/preference/AuthSettings.vue:30
 #: 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
 #: src/views/user/userColumns.tsx:60
 msgid "Action"
 msgid "Action"
 msgstr "操作"
 msgstr "操作"
@@ -118,7 +118,7 @@ msgstr "然後,重新整理此頁面並再次點選新增通行密鑰。"
 msgid "All"
 msgid "All"
 msgstr "全部"
 msgstr "全部"
 
 
-#: src/components/Notification/notifications.ts:155
+#: src/components/Notification/notifications.ts:137
 #: src/language/constants.ts:58
 #: src/language/constants.ts:58
 msgid "All Recovery Codes Have Been Used"
 msgid "All Recovery Codes Have Been Used"
 msgstr "所有恢復碼都已使用完畢"
 msgstr "所有恢復碼都已使用完畢"
@@ -197,7 +197,7 @@ msgstr "您確定要永久刪除此項目嗎?"
 msgid "Are you sure you want to delete this item?"
 msgid "Are you sure you want to delete this item?"
 msgstr "您確定要刪除此項目嗎?"
 msgstr "您確定要刪除此項目嗎?"
 
 
-#: src/views/site/site_list/SiteList.vue:229
+#: src/views/site/site_list/SiteList.vue:163
 #: src/views/stream/StreamList.vue:227
 #: src/views/stream/StreamList.vue:227
 msgid "Are you sure you want to delete?"
 msgid "Are you sure you want to delete?"
 msgstr "您確定要刪除嗎?"
 msgstr "您確定要刪除嗎?"
@@ -333,7 +333,7 @@ msgid "Base information"
 msgstr "基本資訊"
 msgstr "基本資訊"
 
 
 #: src/views/config/ConfigEditor.vue:290
 #: 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
 #: src/views/stream/components/RightSettings.vue:79
 msgid "Basic"
 msgid "Basic"
 msgstr "基本"
 msgstr "基本"
@@ -385,7 +385,7 @@ msgstr "CADir"
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxConfigEditor.vue:51
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxServer.vue:80
 #: src/views/site/ngx_conf/NgxUpstream.vue:34
 #: 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
 #: src/views/stream/components/RightSettings.vue:55
 msgid "Cancel"
 msgid "Cancel"
 msgstr "取消"
 msgstr "取消"
@@ -738,7 +738,7 @@ msgstr "解密失敗"
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/components/StdDesign/StdDataDisplay/StdTable.vue:519
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxServer.vue:110
 #: src/views/site/ngx_conf/NgxUpstream.vue:128
 #: 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
 #: src/views/stream/StreamList.vue:236
 msgid "Delete"
 msgid "Delete"
 msgstr "刪除"
 msgstr "刪除"
@@ -748,39 +748,39 @@ msgstr "刪除"
 msgid "Delete Permanently"
 msgid "Delete Permanently"
 msgstr "永久刪除"
 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"
 msgid "Delete Remote Site Error"
 msgstr "刪除遠端網站錯誤"
 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"
 msgid "Delete Remote Site Success"
 msgstr "刪除遠端網站成功"
 msgstr "刪除遠端網站成功"
 
 
-#: src/components/Notification/notifications.ts:113
+#: src/components/Notification/notifications.ts:95
 msgid "Delete Remote Stream Error"
 msgid "Delete Remote Stream Error"
 msgstr "刪除遠端串流錯誤"
 msgstr "刪除遠端串流錯誤"
 
 
-#: src/components/Notification/notifications.ts:117
+#: src/components/Notification/notifications.ts:99
 msgid "Delete Remote Stream Success"
 msgid "Delete Remote Stream Success"
 msgstr "刪除遠端串流成功"
 msgstr "刪除遠端串流成功"
 
 
-#: src/components/Notification/notifications.ts:56
+#: src/components/Notification/notifications.ts:38
 msgid "Delete site %{name} from %{node} failed"
 msgid "Delete site %{name} from %{node} failed"
 msgstr "從 %{node} 刪除網站 %{name} 失敗"
 msgstr "從 %{node} 刪除網站 %{name} 失敗"
 
 
-#: src/components/Notification/notifications.ts:60
+#: src/components/Notification/notifications.ts:42
 msgid "Delete site %{name} from %{node} successfully"
 msgid "Delete site %{name} from %{node} successfully"
 msgstr "成功從 %{node} 移除站點 %{name}"
 msgstr "成功從 %{node} 移除站點 %{name}"
 
 
-#: src/views/site/site_list/SiteList.vue:128
+#: src/views/site/site_list/SiteList.vue:94
 msgid "Delete site: %{site_name}"
 msgid "Delete site: %{site_name}"
 msgstr "刪除網站:%{site_name}"
 msgstr "刪除網站:%{site_name}"
 
 
-#: src/components/Notification/notifications.ts:114
+#: src/components/Notification/notifications.ts:96
 msgid "Delete stream %{name} from %{node} failed"
 msgid "Delete stream %{name} from %{node} failed"
 msgstr "部署 %{conf_name} 至 %{node} 失敗"
 msgstr "部署 %{conf_name} 至 %{node} 失敗"
 
 
-#: src/components/Notification/notifications.ts:118
+#: src/components/Notification/notifications.ts:100
 msgid "Delete stream %{name} from %{node} successfully"
 msgid "Delete stream %{name} from %{node} successfully"
 msgstr "成功從 %{node} 移除站點 %{name}"
 msgstr "成功從 %{node} 移除站點 %{name}"
 
 
@@ -837,7 +837,11 @@ msgstr "指令索引超出範圍"
 msgid "Directives"
 msgid "Directives"
 msgstr "指令"
 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
 #: src/views/stream/StreamList.vue:207
 msgid "Disable"
 msgid "Disable"
 msgstr "停用"
 msgstr "停用"
@@ -846,58 +850,58 @@ msgstr "停用"
 msgid "Disable auto-renewal failed for %{name}"
 msgid "Disable auto-renewal failed for %{name}"
 msgstr "關閉 %{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"
 msgid "Disable Remote Site Error"
 msgstr "禁用遠端站点錯誤"
 msgstr "禁用遠端站点錯誤"
 
 
-#: src/components/Notification/notifications.ts:87
+#: src/components/Notification/notifications.ts:69
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Error"
 msgid "Disable Remote Site Maintenance Error"
 msgstr "禁用遠端站点錯誤"
 msgstr "禁用遠端站点錯誤"
 
 
-#: src/components/Notification/notifications.ts:91
+#: src/components/Notification/notifications.ts:73
 #, fuzzy
 #, fuzzy
 msgid "Disable Remote Site Maintenance Success"
 msgid "Disable Remote Site Maintenance Success"
 msgstr "禁用遠端站点成功"
 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"
 msgid "Disable Remote Site Success"
 msgstr "禁用遠端站点成功"
 msgstr "禁用遠端站点成功"
 
 
-#: src/components/Notification/notifications.ts:121
+#: src/components/Notification/notifications.ts:103
 msgid "Disable Remote Stream Error"
 msgid "Disable Remote Stream Error"
 msgstr "禁用遠端串流錯誤"
 msgstr "禁用遠端串流錯誤"
 
 
-#: src/components/Notification/notifications.ts:125
+#: src/components/Notification/notifications.ts:107
 msgid "Disable Remote Stream Success"
 msgid "Disable Remote Stream Success"
 msgstr "禁用遠端串流成功"
 msgstr "禁用遠端串流成功"
 
 
-#: src/components/Notification/notifications.ts:64
+#: src/components/Notification/notifications.ts:46
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} failed"
 msgid "Disable site %{name} from %{node} failed"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 
 
-#: src/components/Notification/notifications.ts:68
+#: src/components/Notification/notifications.ts:50
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} from %{node} successfully"
 msgid "Disable site %{name} from %{node} successfully"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 
 
-#: src/components/Notification/notifications.ts:88
+#: src/components/Notification/notifications.ts:70
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgid "Disable site %{name} maintenance on %{node} failed"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 
 
-#: src/components/Notification/notifications.ts:92
+#: src/components/Notification/notifications.ts:74
 #, fuzzy
 #, fuzzy
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgid "Disable site %{name} maintenance on %{node} successfully"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 
 
-#: src/components/Notification/notifications.ts:122
+#: src/components/Notification/notifications.ts:104
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} failed"
 msgid "Disable stream %{name} from %{node} failed"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 
 
-#: src/components/Notification/notifications.ts:126
+#: src/components/Notification/notifications.ts:108
 #, fuzzy
 #, fuzzy
 msgid "Disable stream %{name} from %{node} successfully"
 msgid "Disable stream %{name} from %{node} successfully"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
 msgstr "成功禁用 %{node} 中的站点 %{site}"
@@ -907,15 +911,14 @@ msgstr "成功禁用 %{node} 中的站点 %{site}"
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/HTTPSettings.vue:24
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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
 #: src/views/stream/StreamList.vue:58 src/views/user/userColumns.tsx:41
 msgid "Disabled"
 msgid "Disabled"
 msgstr "停用"
 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/components/RightSettings.vue:42
 #: src/views/stream/StreamList.vue:96
 #: src/views/stream/StreamList.vue:96
 msgid "Disabled successfully"
 msgid "Disabled successfully"
@@ -943,22 +946,19 @@ msgstr "DNS01"
 msgid "Do not enable this option unless you are sure that you need it."
 msgid "Do not enable this option unless you are sure that you need it."
 msgstr "除非您確定需要,否則不要啟用此選項。"
 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
 #: src/views/site/cert/components/ObtainCert.vue:136
 msgid "Do you want to disable auto-cert renewal?"
 msgid "Do you want to disable auto-cert renewal?"
 msgstr "您要停用自動憑證續訂嗎?"
 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to disable this stream?"
 msgid "Do you want to disable this stream?"
 msgstr "您要禁用此 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
 #: src/views/stream/components/RightSettings.vue:51
 msgid "Do you want to enable this stream?"
 msgid "Do you want to enable this stream?"
 msgstr "您要啟用此 Stream 嗎?"
 msgstr "您要啟用此 Stream 嗎?"
@@ -1011,7 +1011,7 @@ msgstr ""
 "通行密鑰。"
 "通行密鑰。"
 
 
 #: src/views/site/site_list/SiteDuplicate.vue:72
 #: 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/components/StreamDuplicate.vue:64
 #: src/views/stream/StreamList.vue:222
 #: src/views/stream/StreamList.vue:222
 msgid "Duplicate"
 msgid "Duplicate"
@@ -1052,7 +1052,11 @@ msgstr "電子郵件"
 msgid "Email (*)"
 msgid "Email (*)"
 msgstr "電子郵件 (*)"
 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
 #: src/views/stream/StreamList.vue:215
 msgid "Enable"
 msgid "Enable"
 msgstr "啟用"
 msgstr "啟用"
@@ -1074,60 +1078,60 @@ msgstr "啟用失敗"
 msgid "Enable HTTPS"
 msgid "Enable HTTPS"
 msgstr "啟用 TOTP"
 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"
 msgid "Enable Remote Site Error"
 msgstr "啟用遠端站點錯誤"
 msgstr "啟用遠端站點錯誤"
 
 
-#: src/components/Notification/notifications.ts:79
+#: src/components/Notification/notifications.ts:61
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Error"
 msgid "Enable Remote Site Maintenance Error"
 msgstr "啟用遠端站點錯誤"
 msgstr "啟用遠端站點錯誤"
 
 
-#: src/components/Notification/notifications.ts:83
+#: src/components/Notification/notifications.ts:65
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Site Maintenance Success"
 msgid "Enable Remote Site Maintenance Success"
 msgstr "啟用遠端站點成功"
 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"
 msgid "Enable Remote Site Success"
 msgstr "啟用遠端站點成功"
 msgstr "啟用遠端站點成功"
 
 
-#: src/components/Notification/notifications.ts:129
+#: src/components/Notification/notifications.ts:111
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Error"
 msgid "Enable Remote Stream Error"
 msgstr "啟用遠端站點錯誤"
 msgstr "啟用遠端站點錯誤"
 
 
-#: src/components/Notification/notifications.ts:133
+#: src/components/Notification/notifications.ts:115
 #, fuzzy
 #, fuzzy
 msgid "Enable Remote Stream Success"
 msgid "Enable Remote Stream Success"
 msgstr "啟用遠端站點成功"
 msgstr "啟用遠端站點成功"
 
 
-#: src/components/Notification/notifications.ts:80
+#: src/components/Notification/notifications.ts:62
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgid "Enable site %{name} maintenance on %{node} failed"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 
 
-#: src/components/Notification/notifications.ts:84
+#: src/components/Notification/notifications.ts:66
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgid "Enable site %{name} maintenance on %{node} successfully"
 msgstr "成功啟用站點 %{site} 在 %{node}"
 msgstr "成功啟用站點 %{site} 在 %{node}"
 
 
-#: src/components/Notification/notifications.ts:72
+#: src/components/Notification/notifications.ts:54
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} failed"
 msgid "Enable site %{name} on %{node} failed"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 
 
-#: src/components/Notification/notifications.ts:76
+#: src/components/Notification/notifications.ts:58
 #, fuzzy
 #, fuzzy
 msgid "Enable site %{name} on %{node} successfully"
 msgid "Enable site %{name} on %{node} successfully"
 msgstr "成功啟用站點 %{site} 在 %{node}"
 msgstr "成功啟用站點 %{site} 在 %{node}"
 
 
-#: src/components/Notification/notifications.ts:130
+#: src/components/Notification/notifications.ts:112
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} failed"
 msgid "Enable stream %{name} on %{node} failed"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 msgstr "在 %{node_name} 啟用 %{conf_name} 失敗"
 
 
-#: src/components/Notification/notifications.ts:134
+#: src/components/Notification/notifications.ts:116
 #, fuzzy
 #, fuzzy
 msgid "Enable stream %{name} on %{node} successfully"
 msgid "Enable stream %{name} on %{node} successfully"
 msgstr "成功啟用站點 %{site} 在 %{node}"
 msgstr "成功啟用站點 %{site} 在 %{node}"
@@ -1146,10 +1150,9 @@ msgstr "啟用 TOTP"
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/LogrotateSettings.vue:19
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:25
 #: src/views/preference/NodeSettings.vue:30
 #: 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_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/components/RightSettings.vue:81
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/stream/StreamEdit.vue:176 src/views/stream/StreamList.vue:54
 #: src/views/user/userColumns.tsx:38
 #: src/views/user/userColumns.tsx:38
@@ -1157,8 +1160,7 @@ msgid "Enabled"
 msgstr "已啟用"
 msgstr "已啟用"
 
 
 #: src/views/site/site_add/SiteAdd.vue:40
 #: 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/components/RightSettings.vue:33
 #: src/views/stream/StreamList.vue:86
 #: src/views/stream/StreamList.vue:86
 msgid "Enabled successfully"
 msgid "Enabled successfully"
@@ -1168,10 +1170,6 @@ msgstr "成功啟用"
 msgid "Encrypt website with Let's Encrypt"
 msgid "Encrypt website with Let's Encrypt"
 msgstr "用 Let's Encrypt 對網站進行加密"
 msgstr "用 Let's Encrypt 對網站進行加密"
 
 
-#: src/views/site/site_list/SiteList.vue:217
-msgid "Enter Maintenance"
-msgstr ""
-
 #: src/language/constants.ts:22
 #: src/language/constants.ts:22
 msgid "Environment variables cleaned"
 msgid "Environment variables cleaned"
 msgstr "環境變數已清理"
 msgstr "環境變數已清理"
@@ -1208,10 +1206,6 @@ msgstr ""
 msgid "Executable Path"
 msgid "Executable Path"
 msgstr "可執行檔路徑"
 msgstr "可執行檔路徑"
 
 
-#: src/views/site/site_list/SiteList.vue:209
-msgid "Exit Maintenance"
-msgstr ""
-
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/certificate/CertificateList/certColumns.tsx:82
 #: src/views/site/cert/CertInfo.vue:31
 #: src/views/site/cert/CertInfo.vue:31
 msgid "Expired"
 msgid "Expired"
@@ -1363,18 +1357,28 @@ msgstr ""
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgid "Failed to decrypt Nginx UI directory: {0}"
 msgstr ""
 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/components/RightSettings.vue:45
 #: src/views/stream/StreamList.vue:100
 #: src/views/stream/StreamList.vue:100
 msgid "Failed to disable %{msg}"
 msgid "Failed to disable %{msg}"
 msgstr "停用 %{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/components/RightSettings.vue:36
 #: src/views/stream/StreamList.vue:90
 #: src/views/stream/StreamList.vue:90
 msgid "Failed to enable %{msg}"
 msgid "Failed to enable %{msg}"
 msgstr "啟用 %{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
 #: src/constants/errors/backup.ts:25
 #, fuzzy
 #, fuzzy
 msgid "Failed to encrypt data: {0}"
 msgid "Failed to encrypt data: {0}"
@@ -1674,13 +1678,13 @@ msgid "Import Certificate"
 msgstr "導入憑證"
 msgstr "導入憑證"
 
 
 #: src/views/nginx_log/NginxLogList.vue:137
 #: src/views/nginx_log/NginxLogList.vue:137
-#: src/views/site/site_list/SiteList.vue:162
+#: src/views/site/site_list/SiteList.vue:128
 #, fuzzy
 #, fuzzy
 msgid "Indexed"
 msgid "Indexed"
 msgstr "網站首頁 (index)"
 msgstr "網站首頁 (index)"
 
 
 #: src/views/nginx_log/NginxLogList.vue:134
 #: 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..."
 msgid "Indexing..."
 msgstr ""
 msgstr ""
 
 
@@ -1939,17 +1943,17 @@ msgstr ""
 "的用戶,您可以手動啟用此選項。Nginx UI 的 crontab 任務調度器將按照您設定的分"
 "的用戶,您可以手動啟用此選項。Nginx UI 的 crontab 任務調度器將按照您設定的分"
 "鐘間隔執行 logrotate 命令。"
 "鐘間隔執行 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"
 msgid "Maintenance"
 msgstr ""
 msgstr ""
 
 
-#: src/views/site/site_list/SiteList.vue:119
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:88
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode disabled successfully"
 msgid "Maintenance mode disabled successfully"
 msgstr "成功停用"
 msgstr "成功停用"
 
 
-#: src/views/site/site_list/SiteList.vue:111
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:72
 #, fuzzy
 #, fuzzy
 msgid "Maintenance mode enabled successfully"
 msgid "Maintenance mode enabled successfully"
 msgstr "成功啟用"
 msgstr "成功啟用"
@@ -1966,7 +1970,7 @@ msgstr ""
 msgid "Manage Configs"
 msgid "Manage Configs"
 msgstr "管理設定"
 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"
 msgid "Manage Sites"
 msgstr "管理網站"
 msgstr "管理網站"
 
 
@@ -2042,8 +2046,8 @@ msgstr "多行指令"
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/nginx_log/NginxLogList.vue:37
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/preference/components/AddPasskey.vue:75
 #: src/views/site/ngx_conf/NgxUpstream.vue:177
 #: 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/site/site_list/SiteDuplicate.vue:79
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/RightSettings.vue:87
 #: src/views/stream/components/StreamDuplicate.vue:71
 #: src/views/stream/components/StreamDuplicate.vue:71
@@ -2230,7 +2234,7 @@ msgstr "Nginx 設定解析錯誤"
 #: src/views/preference/CertSettings.vue:73
 #: src/views/preference/CertSettings.vue:73
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/directive/DirectiveEditorItem.vue:97
 #: src/views/site/ngx_conf/LocationEditor.vue:88
 #: 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
 #: src/views/stream/StreamList.vue:225
 msgid "No"
 msgid "No"
 msgstr "取消"
 msgstr "取消"
@@ -2250,8 +2254,8 @@ msgstr ""
 msgid "Node"
 msgid "Node"
 msgstr "節點名稱"
 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/components/RightSettings.vue:90
 #: src/views/stream/StreamList.vue:30
 #: src/views/stream/StreamList.vue:30
 #, fuzzy
 #, fuzzy
@@ -2294,7 +2298,7 @@ msgstr "此前無效: %{date}"
 msgid "Note"
 msgid "Note"
 msgstr "備註"
 msgstr "備註"
 
 
-#: src/views/site/site_edit/RightSettings.vue:120
+#: src/views/site/site_edit/RightSettings.vue:96
 #: src/views/stream/components/RightSettings.vue:118
 #: src/views/stream/components/RightSettings.vue:118
 msgid ""
 msgid ""
 "Note, if the configuration file include other configurations or "
 "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/NgxConfigEditor.vue:50
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxServer.vue:79
 #: src/views/site/ngx_conf/NgxUpstream.vue:33
 #: 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/components/RightSettings.vue:54
 #: src/views/stream/StreamList.vue:226
 #: src/views/stream/StreamList.vue:226
 #: src/views/system/Backup/BackupCreator.vue:149
 #: src/views/system/Backup/BackupCreator.vue:149
@@ -2518,7 +2522,7 @@ msgstr ""
 "請先在「憑證」 > 「DNS 認證」中新增認證,然後選擇以下認證之一以請求 DNS 供應"
 "請先在「憑證」 > 「DNS 認證」中新增認證,然後選擇以下認證之一以請求 DNS 供應"
 "商的 API。"
 "商的 API。"
 
 
-#: src/components/Notification/notifications.ts:156
+#: src/components/Notification/notifications.ts:138
 #: src/language/constants.ts:59
 #: src/language/constants.ts:59
 msgid ""
 msgid ""
 "Please generate new recovery codes in the preferences immediately to prevent "
 "Please generate new recovery codes in the preferences immediately to prevent "
@@ -2743,22 +2747,22 @@ msgstr "重新載入"
 msgid "Reload Nginx"
 msgid "Reload Nginx"
 msgstr "正在重新載入 Nginx"
 msgstr "正在重新載入 Nginx"
 
 
-#: src/components/Notification/notifications.ts:10
+#: src/components/Notification/notifications.ts:144
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgid "Reload Nginx on %{node} failed, response: %{resp}"
 msgstr "從 %{node} 移除站點 %{site} 時發生錯誤,回應:%{resp}"
 msgstr "從 %{node} 移除站點 %{site} 時發生錯誤,回應:%{resp}"
 
 
-#: src/components/Notification/notifications.ts:14
+#: src/components/Notification/notifications.ts:148
 #, fuzzy
 #, fuzzy
 msgid "Reload Nginx on %{node} successfully"
 msgid "Reload Nginx on %{node} successfully"
 msgstr "成功升級 %{node} 上的 Nginx UI 🎉"
 msgstr "成功升級 %{node} 上的 Nginx UI 🎉"
 
 
-#: src/components/Notification/notifications.ts:9
+#: src/components/Notification/notifications.ts:143
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Error"
 msgid "Reload Remote Nginx Error"
 msgstr "重命名遠端遠端站點時發生錯誤"
 msgstr "重命名遠端遠端站點時發生錯誤"
 
 
-#: src/components/Notification/notifications.ts:13
+#: src/components/Notification/notifications.ts:147
 #, fuzzy
 #, fuzzy
 msgid "Reload Remote Nginx Success"
 msgid "Reload Remote Nginx Success"
 msgstr "重新命名遠端站點成功"
 msgstr "重新命名遠端站點成功"
@@ -2797,57 +2801,57 @@ msgstr "移除成功"
 msgid "Rename"
 msgid "Rename"
 msgstr "重命名"
 msgstr "重命名"
 
 
-#: src/components/Notification/notifications.ts:46
+#: src/components/Notification/notifications.ts:28
 #, fuzzy
 #, fuzzy
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} failed"
 msgstr "成功將 %{env_name} 上的 %{orig_path} 重命名為 %{new_path}"
 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"
 msgid "Rename %{orig_path} to %{new_path} on %{env_name} successfully"
 msgstr "成功將 %{env_name} 上的 %{orig_path} 重命名為 %{new_path}"
 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"
 msgid "Rename Remote Config Error"
 msgstr "重命名遠端配置錯誤"
 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"
 msgid "Rename Remote Config Success"
 msgstr "重新命名遠端配置成功"
 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"
 msgid "Rename Remote Site Error"
 msgstr "重命名遠端遠端站點時發生錯誤"
 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"
 msgid "Rename Remote Site Success"
 msgstr "重新命名遠端站點成功"
 msgstr "重新命名遠端站點成功"
 
 
-#: src/components/Notification/notifications.ts:137
+#: src/components/Notification/notifications.ts:119
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Error"
 msgid "Rename Remote Stream Error"
 msgstr "重命名遠端遠端站點時發生錯誤"
 msgstr "重命名遠端遠端站點時發生錯誤"
 
 
-#: src/components/Notification/notifications.ts:141
+#: src/components/Notification/notifications.ts:123
 #, fuzzy
 #, fuzzy
 msgid "Rename Remote Stream Success"
 msgid "Rename Remote Stream Success"
 msgstr "重新命名遠端站點成功"
 msgstr "重新命名遠端站點成功"
 
 
-#: src/components/Notification/notifications.ts:96
+#: src/components/Notification/notifications.ts:78
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgid "Rename site %{name} to %{new_name} on %{node} failed"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 
 
-#: src/components/Notification/notifications.ts:100
+#: src/components/Notification/notifications.ts:82
 #, fuzzy
 #, fuzzy
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgid "Rename site %{name} to %{new_name} on %{node} successfully"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 
 
-#: src/components/Notification/notifications.ts:138
+#: src/components/Notification/notifications.ts:120
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgid "Rename stream %{name} to %{new_name} on %{node} failed"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 
 
-#: src/components/Notification/notifications.ts:142
+#: src/components/Notification/notifications.ts:124
 #, fuzzy
 #, fuzzy
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgid "Rename stream %{name} to %{new_name} on %{node} successfully"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
 msgstr "成功將站點 %{site} 重新命名為 %{new_site} 於 %{node}"
@@ -2907,22 +2911,22 @@ msgstr "重新啟動"
 msgid "Restart Nginx"
 msgid "Restart Nginx"
 msgstr "正在重新啟動"
 msgstr "正在重新啟動"
 
 
-#: src/components/Notification/notifications.ts:18
+#: src/components/Notification/notifications.ts:152
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgid "Restart Nginx on %{node} failed, response: %{resp}"
 msgstr "啟用站點 %{site} 在 %{node} 時發生錯誤,回應:%{resp}"
 msgstr "啟用站點 %{site} 在 %{node} 時發生錯誤,回應:%{resp}"
 
 
-#: src/components/Notification/notifications.ts:22
+#: src/components/Notification/notifications.ts:156
 #, fuzzy
 #, fuzzy
 msgid "Restart Nginx on %{node} successfully"
 msgid "Restart Nginx on %{node} successfully"
 msgstr "成功升級 %{node} 上的 Nginx UI 🎉"
 msgstr "成功升級 %{node} 上的 Nginx UI 🎉"
 
 
-#: src/components/Notification/notifications.ts:17
+#: src/components/Notification/notifications.ts:151
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Error"
 msgid "Restart Remote Nginx Error"
 msgstr "重命名遠端遠端站點時發生錯誤"
 msgstr "重命名遠端遠端站點時發生錯誤"
 
 
-#: src/components/Notification/notifications.ts:21
+#: src/components/Notification/notifications.ts:155
 #, fuzzy
 #, fuzzy
 msgid "Restart Remote Nginx Success"
 msgid "Restart Remote Nginx Success"
 msgstr "重新命名遠端站點成功"
 msgstr "重新命名遠端站點成功"
@@ -3007,42 +3011,40 @@ msgstr "儲存指令"
 msgid "Save error %{msg}"
 msgid "Save error %{msg}"
 msgstr "儲存錯誤 %{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"
 msgid "Save Remote Site Error"
 msgstr "儲存遠端站點時發生錯誤"
 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"
 msgid "Save Remote Site Success"
 msgstr "儲存遠端站點成功"
 msgstr "儲存遠端站點成功"
 
 
-#: src/components/Notification/notifications.ts:145
+#: src/components/Notification/notifications.ts:127
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Error"
 msgid "Save Remote Stream Error"
 msgstr "儲存遠端站點時發生錯誤"
 msgstr "儲存遠端站點時發生錯誤"
 
 
-#: src/components/Notification/notifications.ts:149
+#: src/components/Notification/notifications.ts:131
 #, fuzzy
 #, fuzzy
 msgid "Save Remote Stream Success"
 msgid "Save Remote Stream Success"
 msgstr "儲存遠端站點成功"
 msgstr "儲存遠端站點成功"
 
 
-#: src/components/Notification/notifications.ts:104
+#: src/components/Notification/notifications.ts:86
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} failed"
 msgid "Save site %{name} to %{node} failed"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
 
 
-#: src/components/Notification/notifications.ts:108
+#: src/components/Notification/notifications.ts:90
 #, fuzzy
 #, fuzzy
 msgid "Save site %{name} to %{node} successfully"
 msgid "Save site %{name} to %{node} successfully"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
 
 
-#: src/components/Notification/notifications.ts:146
+#: src/components/Notification/notifications.ts:128
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} failed"
 msgid "Save stream %{name} to %{node} failed"
 msgstr "部署 %{conf_name} 至 %{node_name} 失敗"
 msgstr "部署 %{conf_name} 至 %{node_name} 失敗"
 
 
-#: src/components/Notification/notifications.ts:150
+#: src/components/Notification/notifications.ts:132
 #, fuzzy
 #, fuzzy
 msgid "Save stream %{name} to %{node} successfully"
 msgid "Save stream %{name} to %{node} successfully"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
 msgstr "成功將站點 %{site} 儲存至 %{node}"
@@ -3128,6 +3130,11 @@ msgid ""
 "step of DNS challenge."
 "step of DNS challenge."
 msgstr "設置遞迴名稱伺服器以覆蓋系統名稱伺服器以進行 DNS 驗證步驟。"
 msgstr "設置遞迴名稱伺服器以覆蓋系統名稱伺服器以進行 DNS 驗證步驟。"
 
 
+#: src/views/site/site_edit/components/SiteStatusSegmented.vue:114
+#, fuzzy
+msgid "set to maintenance mode"
+msgstr "禁用遠端站点錯誤"
+
 #: src/language/constants.ts:11
 #: src/language/constants.ts:11
 msgid "Setting DNS01 challenge provider"
 msgid "Setting DNS01 challenge provider"
 msgstr "使用 DNS01 挑戰提供者"
 msgstr "使用 DNS01 挑戰提供者"
@@ -3177,6 +3184,11 @@ msgstr "網域設定檔成功建立"
 msgid "Site is enabled"
 msgid "Site is enabled"
 msgstr "站點已啓用"
 msgstr "站點已啓用"
 
 
+#: src/constants/errors/site.ts:5
+#, fuzzy
+msgid "Site is in maintenance mode"
+msgstr "站點已啓用"
+
 #: src/routes/modules/nginx_log.ts:31
 #: src/routes/modules/nginx_log.ts:31
 msgid "Site Logs"
 msgid "Site Logs"
 msgstr "網站日誌"
 msgstr "網站日誌"
@@ -3272,7 +3284,8 @@ msgstr ""
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/ACMEUser.vue:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/certificate/CertificateList/certColumns.tsx:65
 #: src/views/environments/list/envColumns.tsx:44
 #: 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"
 msgid "Status"
 msgstr "狀態"
 msgstr "狀態"
 
 
@@ -3348,38 +3361,38 @@ msgstr "同步"
 msgid "Sync Certificate"
 msgid "Sync Certificate"
 msgstr "同步憑證"
 msgstr "同步憑證"
 
 
-#: src/components/Notification/notifications.ts:28
+#: src/components/Notification/notifications.ts:10
 #, fuzzy
 #, fuzzy
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgid "Sync Certificate %{cert_name} to %{env_name} failed"
 msgstr "同步憑證 %{cert_name} 到 %{env_name} 成功"
 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"
 msgid "Sync Certificate %{cert_name} to %{env_name} successfully"
 msgstr "同步憑證 %{cert_name} 到 %{env_name} 成功"
 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"
 msgid "Sync Certificate Error"
 msgstr "同步憑證錯誤"
 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"
 msgid "Sync Certificate Success"
 msgstr "同步憑證成功"
 msgstr "同步憑證成功"
 
 
-#: src/components/Notification/notifications.ts:38
+#: src/components/Notification/notifications.ts:20
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgid "Sync config %{config_name} to %{env_name} failed"
 msgstr "同步配置 %{config_name} 到 %{env_name} 成功"
 msgstr "同步配置 %{config_name} 到 %{env_name} 成功"
 
 
-#: src/components/Notification/notifications.ts:42
+#: src/components/Notification/notifications.ts:24
 #, fuzzy
 #, fuzzy
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgid "Sync config %{config_name} to %{env_name} successfully"
 msgstr "同步配置 %{config_name} 到 %{env_name} 成功"
 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"
 msgid "Sync Config Error"
 msgstr "同步配置錯誤"
 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"
 msgid "Sync Config Success"
 msgstr "同步配置成功"
 msgstr "同步配置成功"
 
 
@@ -3388,8 +3401,8 @@ msgstr "同步配置成功"
 msgid "Sync Nodes"
 msgid "Sync Nodes"
 msgstr "同步節點"
 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:111
 #: src/views/stream/components/RightSettings.vue:124
 #: src/views/stream/components/RightSettings.vue:124
 msgid "Sync strategy"
 msgid "Sync strategy"
@@ -3399,7 +3412,7 @@ msgstr "同步策略"
 msgid "Sync to"
 msgid "Sync to"
 msgstr "同步到"
 msgstr "同步到"
 
 
-#: src/views/site/site_edit/RightSettings.vue:110
+#: src/views/site/site_edit/RightSettings.vue:86
 #: src/views/stream/components/RightSettings.vue:108
 #: src/views/stream/components/RightSettings.vue:108
 msgid "Synchronization"
 msgid "Synchronization"
 msgstr "同步"
 msgstr "同步"
@@ -3697,8 +3710,8 @@ msgstr "更新成功"
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/config/configColumns.tsx:36 src/views/config/ConfigEditor.vue:325
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/group/columns.ts:37
 #: src/views/environments/list/envColumns.tsx:90
 #: 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/components/RightSettings.vue:99
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 #: src/views/stream/StreamList.vue:67 src/views/user/userColumns.tsx:54
 msgid "Updated at"
 msgid "Updated at"
@@ -3740,10 +3753,6 @@ msgstr "運作時間:"
 msgid "URL"
 msgid "URL"
 msgstr "URL"
 msgstr "URL"
 
 
-#: src/views/site/site_list/columns.tsx:26
-msgid "URLs"
-msgstr ""
-
 #: src/components/TwoFA/Authorization.vue:121
 #: src/components/TwoFA/Authorization.vue:121
 msgid "Use OTP"
 msgid "Use OTP"
 msgstr "使用一次性密碼"
 msgstr "使用一次性密碼"
@@ -3860,7 +3869,7 @@ msgstr ""
 "啟用後,Nginx UI 將在啟動時自動重新註冊使用者。通常,除非您處於開發環境並使"
 "啟用後,Nginx UI 將在啟動時自動重新註冊使用者。通常,除非您處於開發環境並使"
 "用 Pebble 作為 CA,否則不建議啟用此功能。"
 "用 Pebble 作為 CA,否則不建議啟用此功能。"
 
 
-#: src/views/site/site_edit/RightSettings.vue:116
+#: src/views/site/site_edit/RightSettings.vue:92
 #, fuzzy
 #, fuzzy
 msgid ""
 msgid ""
 "When you enable/disable, delete, or save this site, the nodes set in the "
 "When you enable/disable, delete, or save this site, the nodes set in the "
@@ -3958,6 +3967,9 @@ msgstr "您的舊代碼將不再有效。"
 msgid "Your passkeys"
 msgid "Your passkeys"
 msgstr "您的通行密鑰"
 msgstr "您的通行密鑰"
 
 
+#~ msgid "Do you want to disable this site?"
+#~ msgstr "您想停用這個網站嗎?"
+
 #, fuzzy
 #, fuzzy
 #~ msgid "Created At"
 #~ msgid "Created At"
 #~ msgstr "建立時間"
 #~ msgstr "建立時間"

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

@@ -25,7 +25,7 @@ function save() {
   const otpModal = use2FAModal()
   const otpModal = use2FAModal()
 
 
   otpModal.open().then(() => {
   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
       modify.value = false
       message.success($gettext('Renamed successfully'))
       message.success($gettext('Renamed successfully'))
       router.push({
       router.push({

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

@@ -38,7 +38,7 @@ function ok() {
 
 
     otpModal.open().then(() => {
     otpModal.open().then(() => {
       // Note: API will handle URL encoding of path segments
       // 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
         visible.value = false
         message.success($gettext('Rename successfully'))
         message.success($gettext('Rename successfully'))
 
 

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

@@ -1,19 +1,18 @@
 <script setup lang="ts">
 <script setup lang="ts">
 import type { ChatComplicationMessage } from '@/api/openai'
 import type { ChatComplicationMessage } from '@/api/openai'
 import type { Site } from '@/api/site'
 import type { Site } from '@/api/site'
-import type { CheckedType } from '@/types'
 import type { Ref } from 'vue'
 import type { Ref } from 'vue'
 import envGroup from '@/api/env_group'
 import envGroup from '@/api/env_group'
-import site from '@/api/site'
 import ChatGPT from '@/components/ChatGPT/ChatGPT.vue'
 import ChatGPT from '@/components/ChatGPT/ChatGPT.vue'
 import NodeSelector from '@/components/NodeSelector/NodeSelector.vue'
 import NodeSelector from '@/components/NodeSelector/NodeSelector.vue'
 import StdSelector from '@/components/StdDesign/StdDataEntry/components/StdSelector.vue'
 import StdSelector from '@/components/StdDesign/StdDataEntry/components/StdSelector.vue'
+import { ConfigStatus } from '@/constants'
 import { formatDateTime } from '@/lib/helper'
 import { formatDateTime } from '@/lib/helper'
 import { useSettingsStore } from '@/pinia'
 import { useSettingsStore } from '@/pinia'
 import envGroupColumns from '@/views/environments/group/columns'
 import envGroupColumns from '@/views/environments/group/columns'
 import ConfigName from '@/views/site/site_edit/components/ConfigName.vue'
 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 { InfoCircleOutlined } from '@ant-design/icons-vue'
-import { message, Modal } from 'ant-design-vue'
 
 
 const settings = useSettingsStore()
 const settings = useSettingsStore()
 
 
@@ -24,42 +23,17 @@ const filepath = inject('filepath') as Ref<string>
 const historyChatgptRecord = inject('history_chatgpt_record') as Ref<ChatComplicationMessage[]>
 const historyChatgptRecord = inject('history_chatgpt_record') as Ref<ChatComplicationMessage[]>
 const data = inject('data') as Ref<Site>
 const data = inject('data') as Ref<Site>
 
 
-const [modal, ContextHolder] = Modal.useModal()
-
 const activeKey = ref(['1', '2', '3'])
 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>
 </script>
 
 
@@ -68,7 +42,6 @@ function onChangeEnabled(checked: CheckedType) {
     class="right-settings"
     class="right-settings"
     :bordered="false"
     :bordered="false"
   >
   >
-    <ContextHolder />
     <ACollapse
     <ACollapse
       v-model:active-key="activeKey"
       v-model:active-key="activeKey"
       ghost
       ghost
@@ -79,10 +52,12 @@ function onChangeEnabled(checked: CheckedType) {
         :header="$gettext('Basic')"
         :header="$gettext('Basic')"
       >
       >
         <AForm layout="vertical">
         <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>
           <AFormItem :label="$gettext('Name')">
           <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 {
     catch {
       return
       return
     }
     }
-
-    setupSSE()
   }
   }
 })
 })
 
 
+onMounted(() => {
+  setupSSE()
+})
+
 // Connect to SSE endpoint and setup handlers
 // Connect to SSE endpoint and setup handlers
 async function setupSSE() {
 async function setupSSE() {
   if (sse.value) {
   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) {
 function destroy(site_name: string) {
   site.destroy(site_name).then(() => {
   site.destroy(site_name).then(() => {
     table.value.get_list()
     table.value.get_list()
@@ -184,38 +154,6 @@ function handleBatchUpdated() {
       @click-batch-modify="handleClickBatchEdit"
       @click-batch-modify="handleClickBatchEdit"
     >
     >
       <template #actions="{ record }">
       <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
         <AButton
           type="link"
           type="link"
           size="small"
           size="small"
@@ -227,13 +165,13 @@ function handleBatchUpdated() {
           :cancel-text="$gettext('No')"
           :cancel-text="$gettext('No')"
           :ok-text="$gettext('OK')"
           :ok-text="$gettext('OK')"
           :title="$gettext('Are you sure you want to delete?')"
           :title="$gettext('Are you sure you want to delete?')"
-          :disabled="record.enabled"
+          :disabled="record.status !== ConfigStatus.Disabled"
           @confirm="destroy(record.name)"
           @confirm="destroy(record.name)"
         >
         >
           <AButton
           <AButton
             type="link"
             type="link"
             size="small"
             size="small"
-            :disabled="record.enabled"
+            :disabled="record.status !== ConfigStatus.Disabled"
           >
           >
             {{ $gettext('Delete') }}
             {{ $gettext('Delete') }}
           </AButton>
           </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 { input, select, selector } from '@/components/StdDesign/StdDataEntry'
 import { ConfigStatus } from '@/constants'
 import { ConfigStatus } from '@/constants'
 import envGroupColumns from '@/views/environments/group/columns'
 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[] = [{
 const columns: Column[] = [{
   title: () => $gettext('Name'),
   title: () => $gettext('Name'),
@@ -21,31 +22,43 @@ const columns: Column[] = [{
     type: input,
     type: input,
   },
   },
   search: true,
   search: true,
-  width: 120,
-}, {
-  title: () => $gettext('URLs'),
-  dataIndex: 'urls',
+  width: 170,
   customRender: ({ text, record }) => {
   customRender: ({ text, record }) => {
     const template: JSXElements = []
     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'),
   title: () => $gettext('Node Group'),
   dataIndex: 'env_group_id',
   dataIndex: 'env_group_id',
@@ -62,27 +75,25 @@ const columns: Column[] = [{
   sorter: true,
   sorter: true,
   pithy: true,
   pithy: true,
   batch: true,
   batch: true,
-  width: 100,
+  width: 120,
 }, {
 }, {
   title: () => $gettext('Status'),
   title: () => $gettext('Status'),
   dataIndex: 'status',
   dataIndex: 'status',
   customRender: (args: CustomRender) => {
   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: {
   search: {
     type: select,
     type: select,
@@ -94,7 +105,7 @@ const columns: Column[] = [{
   },
   },
   sorter: true,
   sorter: true,
   pithy: true,
   pithy: true,
-  width: 80,
+  width: 150,
 }, {
 }, {
   title: () => $gettext('Updated at'),
   title: () => $gettext('Updated at'),
   dataIndex: 'modified_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
 	// Read the current content of the file
 	currentContent, err := os.ReadFile(path)
 	currentContent, err := os.ReadFile(path)
 	if err != nil {
 	if err != nil {
-		return err
+		return nil
 	}
 	}
 
 
 	// Compare the contents
 	// 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)
 	enabledPath := nginx.GetConfPath("sites-enabled", name)
+	maintenancePath := nginx.GetConfPath("sites-available", name+MaintenanceSuffix)
 
 
 	if !helper.FileExists(availablePath) {
 	if !helper.FileExists(availablePath) {
 		return ErrSiteNotFound
 		return ErrSiteNotFound
@@ -37,6 +38,10 @@ func Delete(name string) (err error) {
 		return ErrSiteIsEnabled
 		return ErrSiteIsEnabled
 	}
 	}
 
 
+	if helper.FileExists(maintenancePath) {
+		return ErrSiteIsInMaintenance
+	}
+
 	certModel := model.Cert{Filename: name}
 	certModel := model.Cert{Filename: name}
 	_ = certModel.Remove()
 	_ = certModel.Remove()
 
 

+ 5 - 4
internal/site/errors.go

@@ -3,8 +3,9 @@ package site
 import "github.com/uozi-tech/cosy"
 import "github.com/uozi-tech/cosy"
 
 
 var (
 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)
 			client.SetBaseURL(node.URL)
 			resp, err := client.R().
 			resp, err := client.R().
 				SetHeader("X-Node-Secret", node.Token).
 				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 {
 			if err != nil {
 				notification.Error("Enable Remote Site Maintenance Error", err.Error(), nil)
 				notification.Error("Enable Remote Site Maintenance Error", err.Error(), nil)
 				return
 				return
@@ -354,7 +354,7 @@ func syncDisableMaintenance(name string) {
 			client.SetBaseURL(node.URL)
 			client.SetBaseURL(node.URL)
 			resp, err := client.R().
 			resp, err := client.R().
 				SetHeader("X-Node-Secret", node.Token).
 				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 {
 			if err != nil {
 				notification.Error("Disable Remote Site Maintenance Error", err.Error(), nil)
 				notification.Error("Disable Remote Site Maintenance Error", err.Error(), nil)
 				return
 				return