feat(app): improve workspace service controls
Keep service route choices independent of daemon transport and persist the selected route per host. Use the shared web overlay stack so menus, tooltips, and toasts layer predictably. Track proxy route changes from the Git branch rather than the workspace title to avoid transient service health changes.
This commit is contained in:
@@ -588,19 +588,34 @@ export const ar: TranslationResources = {
|
||||
scripts: {
|
||||
title: "البرامج النصية",
|
||||
actions: {
|
||||
chooseUrl: "اختيار الرابط",
|
||||
copyUrl: "نسخ الرابط",
|
||||
openService: "عرض الخدمة",
|
||||
restart: "إعادة التشغيل",
|
||||
run: "يجري",
|
||||
view: "منظر",
|
||||
stop: "إيقاف",
|
||||
view: "عرض الوحدة الطرفية",
|
||||
},
|
||||
accessibility: {
|
||||
trigger: "البرامج النصية Workspace",
|
||||
openAt: "افتح{{scriptName}}في{{label}}",
|
||||
openService: "عرض خدمة {{scriptName}}",
|
||||
viewTerminal: "عرض محطة{{scriptName}}",
|
||||
runScript: "قم بتشغيل البرنامج النصي{{scriptName}}",
|
||||
stopScript: "إيقاف{{scriptName}}",
|
||||
restartScript: "إعادة تشغيل{{scriptName}}",
|
||||
copyUrl: "نسخ عنوان URL لـ{{scriptName}}",
|
||||
chooseUrl: "اختيار رابط {{scriptName}}",
|
||||
script: "البرنامج النصي{{scriptName}}",
|
||||
},
|
||||
routes: {
|
||||
public: "الوكيل العكسي",
|
||||
paseo: "Memorable",
|
||||
direct: "مباشر",
|
||||
},
|
||||
states: {
|
||||
exitCode: "الخروج من{{code}}",
|
||||
startFailed: "فشل بدء تشغيل{{scriptName}}",
|
||||
stopFailed: "فشل إيقاف{{scriptName}}",
|
||||
},
|
||||
},
|
||||
git: {
|
||||
|
||||
@@ -585,19 +585,34 @@ export const en = {
|
||||
scripts: {
|
||||
title: "Scripts",
|
||||
actions: {
|
||||
chooseUrl: "Choose URL",
|
||||
copyUrl: "Copy URL",
|
||||
openService: "View service",
|
||||
restart: "Restart",
|
||||
run: "Run",
|
||||
view: "View",
|
||||
stop: "Stop",
|
||||
view: "View terminal",
|
||||
},
|
||||
accessibility: {
|
||||
trigger: "Workspace scripts",
|
||||
openAt: "Open {{scriptName}} at {{label}}",
|
||||
openService: "View {{scriptName}} service",
|
||||
viewTerminal: "View {{scriptName}} terminal",
|
||||
runScript: "Run {{scriptName}} script",
|
||||
stopScript: "Stop {{scriptName}}",
|
||||
restartScript: "Restart {{scriptName}}",
|
||||
copyUrl: "Copy {{scriptName}} URL",
|
||||
chooseUrl: "Choose URL for {{scriptName}}",
|
||||
script: "{{scriptName}} script",
|
||||
},
|
||||
routes: {
|
||||
public: "Reverse proxy",
|
||||
paseo: "Memorable",
|
||||
direct: "Direct",
|
||||
},
|
||||
states: {
|
||||
exitCode: "exit {{code}}",
|
||||
startFailed: "Failed to start {{scriptName}}",
|
||||
stopFailed: "Failed to stop {{scriptName}}",
|
||||
},
|
||||
},
|
||||
git: {
|
||||
|
||||
@@ -594,19 +594,34 @@ export const es: TranslationResources = {
|
||||
scripts: {
|
||||
title: "Scripts",
|
||||
actions: {
|
||||
chooseUrl: "Elegir URL",
|
||||
copyUrl: "Copiar URL",
|
||||
openService: "Ver servicio",
|
||||
restart: "Reiniciar",
|
||||
run: "Correr",
|
||||
view: "Vista",
|
||||
stop: "Detener",
|
||||
view: "Ver terminal",
|
||||
},
|
||||
accessibility: {
|
||||
trigger: "GuionesWorkspace",
|
||||
openAt: "Abrir{{scriptName}}en{{label}}",
|
||||
openService: "Ver servicio {{scriptName}}",
|
||||
viewTerminal: "Ver terminal{{scriptName}}",
|
||||
runScript: "Ejecute el script{{scriptName}}",
|
||||
stopScript: "Detener{{scriptName}}",
|
||||
restartScript: "Reiniciar{{scriptName}}",
|
||||
copyUrl: "Copiar URL de{{scriptName}}",
|
||||
chooseUrl: "Elegir URL para {{scriptName}}",
|
||||
script: "Guión{{scriptName}}",
|
||||
},
|
||||
routes: {
|
||||
public: "Proxy inverso",
|
||||
paseo: "Memorable",
|
||||
direct: "Directa",
|
||||
},
|
||||
states: {
|
||||
exitCode: "salir de{{code}}",
|
||||
startFailed: "No se pudo iniciar{{scriptName}}",
|
||||
stopFailed: "No se pudo detener{{scriptName}}",
|
||||
},
|
||||
},
|
||||
git: {
|
||||
|
||||
@@ -594,19 +594,34 @@ export const fr: TranslationResources = {
|
||||
scripts: {
|
||||
title: "Scripts",
|
||||
actions: {
|
||||
chooseUrl: "Choisir l’URL",
|
||||
copyUrl: "Copier l’URL",
|
||||
openService: "Voir le service",
|
||||
restart: "Redémarrer",
|
||||
run: "Courir",
|
||||
view: "Voir",
|
||||
stop: "Arrêter",
|
||||
view: "Voir le terminal",
|
||||
},
|
||||
accessibility: {
|
||||
trigger: "ScriptsWorkspace",
|
||||
openAt: "Ouvrir{{scriptName}}à{{label}}",
|
||||
openService: "Voir le service {{scriptName}}",
|
||||
viewTerminal: "Voir le terminal{{scriptName}}",
|
||||
runScript: "Exécuter le script{{scriptName}}",
|
||||
stopScript: "Arrêter{{scriptName}}",
|
||||
restartScript: "Redémarrer{{scriptName}}",
|
||||
copyUrl: "Copier l'URL de{{scriptName}}",
|
||||
chooseUrl: "Choisir l’URL pour {{scriptName}}",
|
||||
script: "Script{{scriptName}}",
|
||||
},
|
||||
routes: {
|
||||
public: "Proxy inverse",
|
||||
paseo: "Memorable",
|
||||
direct: "Directe",
|
||||
},
|
||||
states: {
|
||||
exitCode: "quitter{{code}}",
|
||||
startFailed: "Échec du démarrage de{{scriptName}}",
|
||||
stopFailed: "Échec de l'arrêt de{{scriptName}}",
|
||||
},
|
||||
},
|
||||
git: {
|
||||
|
||||
@@ -590,19 +590,34 @@ export const ja: TranslationResources = {
|
||||
scripts: {
|
||||
title: "スクリプト",
|
||||
actions: {
|
||||
chooseUrl: "URLを選択",
|
||||
copyUrl: "URLをコピー",
|
||||
openService: "サービスを表示",
|
||||
restart: "再起動",
|
||||
run: "実行",
|
||||
view: "表示",
|
||||
stop: "停止",
|
||||
view: "ターミナルを表示",
|
||||
},
|
||||
accessibility: {
|
||||
trigger: "ワークスペーススクリプト",
|
||||
openAt: "{{label}}で{{scriptName}}を開く",
|
||||
openService: "{{scriptName}}サービスを表示",
|
||||
viewTerminal: "{{scriptName}}ターミナルを表示",
|
||||
runScript: "{{scriptName}}スクリプトを実行",
|
||||
stopScript: "{{scriptName}}を停止",
|
||||
restartScript: "{{scriptName}}を再起動",
|
||||
copyUrl: "{{scriptName}}のURLをコピー",
|
||||
chooseUrl: "{{scriptName}}のURLを選択",
|
||||
script: "{{scriptName}}スクリプト",
|
||||
},
|
||||
routes: {
|
||||
public: "リバースプロキシ",
|
||||
paseo: "Memorable",
|
||||
direct: "直接接続",
|
||||
},
|
||||
states: {
|
||||
exitCode: "終了コード: {{code}}",
|
||||
startFailed: "{{scriptName}}の起動に失敗しました",
|
||||
stopFailed: "{{scriptName}}の停止に失敗しました",
|
||||
},
|
||||
},
|
||||
git: {
|
||||
|
||||
@@ -591,19 +591,34 @@ export const ptBR: TranslationResources = {
|
||||
scripts: {
|
||||
title: "Scripts",
|
||||
actions: {
|
||||
chooseUrl: "Escolher URL",
|
||||
copyUrl: "Copiar URL",
|
||||
openService: "Ver serviço",
|
||||
restart: "Reiniciar",
|
||||
run: "Executar",
|
||||
view: "Ver",
|
||||
stop: "Parar",
|
||||
view: "Ver terminal",
|
||||
},
|
||||
accessibility: {
|
||||
trigger: "Scripts do workspace",
|
||||
openAt: "Abrir {{scriptName}} em {{label}}",
|
||||
openService: "Ver serviço {{scriptName}}",
|
||||
viewTerminal: "Ver terminal de {{scriptName}}",
|
||||
runScript: "Executar script {{scriptName}}",
|
||||
stopScript: "Parar {{scriptName}}",
|
||||
restartScript: "Reiniciar {{scriptName}}",
|
||||
copyUrl: "Copiar URL de {{scriptName}}",
|
||||
chooseUrl: "Escolher URL para {{scriptName}}",
|
||||
script: "script {{scriptName}}",
|
||||
},
|
||||
routes: {
|
||||
public: "Proxy reverso",
|
||||
paseo: "Memorable",
|
||||
direct: "Direta",
|
||||
},
|
||||
states: {
|
||||
exitCode: "saída {{code}}",
|
||||
startFailed: "Falha ao iniciar {{scriptName}}",
|
||||
stopFailed: "Falha ao parar {{scriptName}}",
|
||||
},
|
||||
},
|
||||
git: {
|
||||
|
||||
@@ -593,19 +593,34 @@ export const ru: TranslationResources = {
|
||||
scripts: {
|
||||
title: "Скрипты",
|
||||
actions: {
|
||||
chooseUrl: "Выбрать URL",
|
||||
copyUrl: "Скопировать URL",
|
||||
openService: "Просмотреть сервис",
|
||||
restart: "Перезапустить",
|
||||
run: "Бегать",
|
||||
view: "Вид",
|
||||
stop: "Остановить",
|
||||
view: "Открыть терминал",
|
||||
},
|
||||
accessibility: {
|
||||
trigger: "Скрипты Workspace",
|
||||
openAt: "Откройте{{scriptName}}на{{label}}",
|
||||
openService: "Просмотреть сервис {{scriptName}}",
|
||||
viewTerminal: "Посмотреть терминал{{scriptName}}",
|
||||
runScript: "Запустите скрипт{{scriptName}}",
|
||||
stopScript: "Остановить{{scriptName}}",
|
||||
restartScript: "Перезапустить{{scriptName}}",
|
||||
copyUrl: "Скопировать URL {{scriptName}}",
|
||||
chooseUrl: "Выбрать URL для {{scriptName}}",
|
||||
script: "скрипт{{scriptName}}",
|
||||
},
|
||||
routes: {
|
||||
public: "Обратный прокси",
|
||||
paseo: "Memorable",
|
||||
direct: "Прямой адрес",
|
||||
},
|
||||
states: {
|
||||
exitCode: "выйти из{{code}}",
|
||||
startFailed: "Не удалось запустить{{scriptName}}",
|
||||
stopFailed: "Не удалось остановить{{scriptName}}",
|
||||
},
|
||||
},
|
||||
git: {
|
||||
|
||||
@@ -584,19 +584,34 @@ export const zhCN: TranslationResources = {
|
||||
scripts: {
|
||||
title: "Scripts",
|
||||
actions: {
|
||||
chooseUrl: "选择 URL",
|
||||
copyUrl: "复制 URL",
|
||||
openService: "查看服务",
|
||||
restart: "重启",
|
||||
run: "运行",
|
||||
view: "查看",
|
||||
stop: "停止",
|
||||
view: "查看终端",
|
||||
},
|
||||
accessibility: {
|
||||
trigger: "Workspace scripts",
|
||||
openAt: "在 {{label}} 打开 {{scriptName}}",
|
||||
openService: "查看 {{scriptName}} 服务",
|
||||
viewTerminal: "查看 {{scriptName}} Terminal",
|
||||
runScript: "运行 {{scriptName}} script",
|
||||
stopScript: "停止 {{scriptName}}",
|
||||
restartScript: "重启 {{scriptName}}",
|
||||
copyUrl: "复制 {{scriptName}} 的 URL",
|
||||
chooseUrl: "选择 {{scriptName}} 的 URL",
|
||||
script: "{{scriptName}} script",
|
||||
},
|
||||
routes: {
|
||||
public: "反向代理",
|
||||
paseo: "Memorable",
|
||||
direct: "直接地址",
|
||||
},
|
||||
states: {
|
||||
exitCode: "exit {{code}}",
|
||||
startFailed: "启动 {{scriptName}} 失败",
|
||||
stopFailed: "停止 {{scriptName}} 失败",
|
||||
},
|
||||
},
|
||||
git: {
|
||||
|
||||
Reference in New Issue
Block a user