diff --git a/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java b/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java index bca613053..1346b4d8b 100644 --- a/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java +++ b/app/src/main/java/io/xpipe/app/comp/store/StoreCreationComp.java @@ -413,7 +413,8 @@ public class StoreCreationComp extends DialogComp { var layout = new BorderPane(); layout.getStyleClass().add("store-creator"); var providerChoice = new StoreProviderChoiceComp(filter, provider, staticDisplay); - var showProviders = !staticDisplay && providerChoice.getProviders().size() > 1; + var showProviders = (!staticDisplay && providerChoice.getProviders().size() > 1) || + (staticDisplay && provider.getValue().showProviderChoice()); if (showProviders) { providerChoice.onSceneAssign(struc -> struc.get().requestFocus()); } diff --git a/app/src/main/java/io/xpipe/app/ext/DataStoreProvider.java b/app/src/main/java/io/xpipe/app/ext/DataStoreProvider.java index 56db5c708..393e9fbbb 100644 --- a/app/src/main/java/io/xpipe/app/ext/DataStoreProvider.java +++ b/app/src/main/java/io/xpipe/app/ext/DataStoreProvider.java @@ -26,6 +26,10 @@ import java.util.List; public interface DataStoreProvider { + default boolean showProviderChoice() { + return true; + } + default boolean shouldShow(StoreEntryWrapper w) { return true; } diff --git a/app/src/main/java/io/xpipe/app/prefs/SyncCategory.java b/app/src/main/java/io/xpipe/app/prefs/SyncCategory.java index 8189efdfa..da3bf2c0f 100644 --- a/app/src/main/java/io/xpipe/app/prefs/SyncCategory.java +++ b/app/src/main/java/io/xpipe/app/prefs/SyncCategory.java @@ -2,7 +2,6 @@ package io.xpipe.app.prefs; import io.xpipe.app.comp.base.ButtonComp; import io.xpipe.app.core.AppI18n; -import io.xpipe.app.core.AppProperties; import io.xpipe.app.fxcomps.Comp; import io.xpipe.app.storage.DataStorage; import io.xpipe.app.util.DesktopHelper; @@ -23,8 +22,6 @@ public class SyncCategory extends AppPrefsCategory { .name("enableGitStorage") .description("enableGitStorageDescription") .addToggle(prefs.enableGitStorage) - .disable(AppProperties.get().isStaging() - && !prefs.developerMode().getValue()) .nameAndDescription("storageGitRemote") .addString(prefs.storageGitRemote, true) .disable(prefs.enableGitStorage.not()) diff --git a/app/src/main/java/io/xpipe/app/storage/DataStorage.java b/app/src/main/java/io/xpipe/app/storage/DataStorage.java index a4a87d19b..4cc3d1106 100644 --- a/app/src/main/java/io/xpipe/app/storage/DataStorage.java +++ b/app/src/main/java/io/xpipe/app/storage/DataStorage.java @@ -448,7 +448,9 @@ public abstract class DataStorage { nc.get().notifyUpdate(false, true); }); - deleteWithChildren(toRemove.toArray(DataStoreEntry[]::new)); + if (h.removeLeftovers()) { + deleteWithChildren(toRemove.toArray(DataStoreEntry[]::new)); + } addStoreEntriesIfNotPresent(toAdd.stream().map(DataStoreEntryRef::get).toArray(DataStoreEntry[]::new)); toUpdate.forEach(pair -> { // Update state by merging diff --git a/app/src/main/java/io/xpipe/app/util/FixedHierarchyStore.java b/app/src/main/java/io/xpipe/app/util/FixedHierarchyStore.java index 9191e3149..d06ad3e5f 100644 --- a/app/src/main/java/io/xpipe/app/util/FixedHierarchyStore.java +++ b/app/src/main/java/io/xpipe/app/util/FixedHierarchyStore.java @@ -9,5 +9,9 @@ import java.util.List; public interface FixedHierarchyStore extends DataStore { + default boolean removeLeftovers() { + return true; + } + List> listChildren(DataStoreEntry self) throws Exception; } diff --git a/lang/proc/strings/translations_da.properties b/lang/proc/strings/translations_da.properties index e7cb903b3..a07f5392d 100644 --- a/lang/proc/strings/translations_da.properties +++ b/lang/proc/strings/translations_da.properties @@ -376,3 +376,16 @@ serialPortConfiguration=Konfiguration af seriel port serialPortConfigurationDescription=Konfigurationsparametre for den tilsluttede serielle enhed serialInformation=Seriel information openXShell=Åbn i XShell +tsh.displayName=Teleport +tsh.displayDescription=Opret forbindelse til dine teleport-noder via tsh +tshNode.displayName=Teleport-knudepunkt +tshNode.displayDescription=Opret forbindelse til en teleport-node i en klynge +teleportCluster=Klynge +teleportClusterDescription=Den klynge, noden befinder sig i +teleportProxy=Proxy +teleportProxyDescription=Den proxyserver, der bruges til at oprette forbindelse til noden +teleportHost=Vært +teleportHostDescription=Værtsnavnet på noden +teleportUser=Bruger +teleportUserDescription=Den bruger, du skal logge ind som +login=Login diff --git a/lang/proc/strings/translations_de.properties b/lang/proc/strings/translations_de.properties index 1bd78ad61..849b4264f 100644 --- a/lang/proc/strings/translations_de.properties +++ b/lang/proc/strings/translations_de.properties @@ -354,3 +354,16 @@ serialPortConfiguration=Konfiguration der seriellen Schnittstelle serialPortConfigurationDescription=Konfigurationsparameter des angeschlossenen seriellen Geräts serialInformation=Serielle Informationen openXShell=In XShell öffnen +tsh.displayName=Teleport +tsh.displayDescription=Verbinde dich mit deinen Teleportknoten über tsh +tshNode.displayName=Teleport-Knoten +tshNode.displayDescription=Verbindung zu einem Teleport-Knoten in einem Cluster +teleportCluster=Cluster +teleportClusterDescription=Der Cluster, in dem sich der Knoten befindet +teleportProxy=Proxy +teleportProxyDescription=Der Proxy-Server, der für die Verbindung mit dem Knoten verwendet wird +teleportHost=Host +teleportHostDescription=Der Hostname des Knotens +teleportUser=Benutzer +teleportUserDescription=Der Benutzer, der sich als +login=Anmeldung diff --git a/lang/proc/strings/translations_en.properties b/lang/proc/strings/translations_en.properties index 537040fb9..2bd4e9428 100644 --- a/lang/proc/strings/translations_en.properties +++ b/lang/proc/strings/translations_en.properties @@ -352,3 +352,16 @@ serialPortConfiguration=Serial port configuration serialPortConfigurationDescription=Configuration parameters of the connected serial device serialInformation=Serial information openXShell=Open in XShell +tsh.displayName=Teleport +tsh.displayDescription=Connect to your teleport nodes via tsh +tshNode.displayName=Teleport node +tshNode.displayDescription=Connect to a teleport node in a cluster +teleportCluster=Cluster +teleportClusterDescription=The cluster the node is in +teleportProxy=Proxy +teleportProxyDescription=The proxy server used to connect to the node +teleportHost=Host +teleportHostDescription=The host name of the node +teleportUser=User +teleportUserDescription=The user to login as +login=Login diff --git a/lang/proc/strings/translations_es.properties b/lang/proc/strings/translations_es.properties index d4375e084..17ac8709f 100644 --- a/lang/proc/strings/translations_es.properties +++ b/lang/proc/strings/translations_es.properties @@ -350,3 +350,16 @@ serialPortConfiguration=Configuración del puerto serie serialPortConfigurationDescription=Parámetros de configuración del dispositivo serie conectado serialInformation=Información en serie openXShell=Abrir en XShell +tsh.displayName=Teletransporte +tsh.displayDescription=Conéctate a tus nodos de teletransporte mediante tsh +tshNode.displayName=Nodo de teletransporte +tshNode.displayDescription=Conectarse a un nodo de teletransporte en un clúster +teleportCluster=Clúster +teleportClusterDescription=El clúster en el que está el nodo +teleportProxy=Proxy +teleportProxyDescription=El servidor proxy utilizado para conectarse al nodo +teleportHost=Anfitrión +teleportHostDescription=El nombre de host del nodo +teleportUser=Usuario +teleportUserDescription=El usuario con el que iniciar sesión +login=Inicio de sesión diff --git a/lang/proc/strings/translations_fr.properties b/lang/proc/strings/translations_fr.properties index 83cfeafbb..d8b47b99b 100644 --- a/lang/proc/strings/translations_fr.properties +++ b/lang/proc/strings/translations_fr.properties @@ -350,3 +350,16 @@ serialPortConfiguration=Configuration du port série serialPortConfigurationDescription=Paramètres de configuration de l'appareil en série connecté serialInformation=Informations en série openXShell=Ouvrir dans XShell +tsh.displayName=Téléportation +tsh.displayDescription=Connecte-toi à tes nœuds de téléportation via tsh +tshNode.displayName=Nœud de téléportation +tshNode.displayDescription=Se connecter à un nœud de téléportation dans une grappe +teleportCluster=Groupe de travail +teleportClusterDescription=La grappe dans laquelle se trouve le nœud +teleportProxy=Proxy +teleportProxyDescription=Le serveur proxy utilisé pour se connecter au nœud +teleportHost=Hôte +teleportHostDescription=Le nom d'hôte du nœud +teleportUser=Utilisateur +teleportUserDescription=L'utilisateur à connecter en tant que +login=Connexion diff --git a/lang/proc/strings/translations_it.properties b/lang/proc/strings/translations_it.properties index 8ef7d529c..b4f310ccd 100644 --- a/lang/proc/strings/translations_it.properties +++ b/lang/proc/strings/translations_it.properties @@ -350,3 +350,16 @@ serialPortConfiguration=Configurazione della porta seriale serialPortConfigurationDescription=Parametri di configurazione del dispositivo seriale collegato serialInformation=Informazioni di serie openXShell=Apri in XShell +tsh.displayName=Teletrasporto +tsh.displayDescription=Connettiti ai tuoi nodi di teletrasporto via tsh +tshNode.displayName=Nodo di teletrasporto +tshNode.displayDescription=Connettersi a un nodo di teletrasporto in un cluster +teleportCluster=Cluster +teleportClusterDescription=Il cluster in cui si trova il nodo +teleportProxy=Proxy +teleportProxyDescription=Il server proxy utilizzato per connettersi al nodo +teleportHost=Ospite +teleportHostDescription=Il nome host del nodo +teleportUser=Utente +teleportUserDescription=L'utente con cui effettuare il login +login=Accesso diff --git a/lang/proc/strings/translations_ja.properties b/lang/proc/strings/translations_ja.properties index 236ce5cb8..2e24a3cd6 100644 --- a/lang/proc/strings/translations_ja.properties +++ b/lang/proc/strings/translations_ja.properties @@ -350,3 +350,16 @@ serialPortConfiguration=シリアルポートの設定 serialPortConfigurationDescription=接続されたシリアル・デバイスの設定パラメーター serialInformation=シリアル情報 openXShell=XShellで開く +tsh.displayName=テレポート +tsh.displayDescription=tsh経由でテレポートノードに接続する +tshNode.displayName=テレポートノード +tshNode.displayDescription=クラスタ内のテレポートノードに接続する +teleportCluster=クラスター +teleportClusterDescription=ノードが属するクラスタ +teleportProxy=プロキシ +teleportProxyDescription=ノードへの接続に使用されるプロキシサーバー +teleportHost=ホスト +teleportHostDescription=ノードのホスト名 +teleportUser=ユーザー +teleportUserDescription=ログインするユーザー +login=ログイン diff --git a/lang/proc/strings/translations_nl.properties b/lang/proc/strings/translations_nl.properties index 3a7f312f0..b139a7bac 100644 --- a/lang/proc/strings/translations_nl.properties +++ b/lang/proc/strings/translations_nl.properties @@ -350,3 +350,16 @@ serialPortConfiguration=Seriële poort configuratie serialPortConfigurationDescription=Configuratieparameters van het aangesloten seriële apparaat serialInformation=Seriële informatie openXShell=Openen in XShell +tsh.displayName=Teleport +tsh.displayDescription=Verbinding maken met je teleportknooppunten via tsh +tshNode.displayName=Teleport knooppunt +tshNode.displayDescription=Verbinding maken met een teleportknooppunt in een cluster +teleportCluster=Cluster +teleportClusterDescription=Het cluster waar het knooppunt zich in bevindt +teleportProxy=Proxy +teleportProxyDescription=De proxyserver die wordt gebruikt om verbinding te maken met het knooppunt +teleportHost=Host +teleportHostDescription=De hostnaam van het knooppunt +teleportUser=Gebruiker +teleportUserDescription=De gebruiker om als in te loggen +login=Inloggen diff --git a/lang/proc/strings/translations_pt.properties b/lang/proc/strings/translations_pt.properties index 74e238f0f..0b49ec78e 100644 --- a/lang/proc/strings/translations_pt.properties +++ b/lang/proc/strings/translations_pt.properties @@ -350,3 +350,16 @@ serialPortConfiguration=Configuração da porta de série serialPortConfigurationDescription=Parâmetros de configuração do dispositivo de série ligado serialInformation=Informação de série openXShell=Abre no XShell +tsh.displayName=Teletransporte +tsh.displayDescription=Liga-te aos teus nós de teletransporte via tsh +tshNode.displayName=Nó de teletransporte +tshNode.displayDescription=Liga-te a um nó de teletransporte num cluster +teleportCluster=Agrupa +teleportClusterDescription=O cluster em que o nó se encontra +teleportProxy=Proxy +teleportProxyDescription=O servidor proxy utilizado para ligar ao nó +teleportHost=Apresenta +teleportHostDescription=O nome do anfitrião do nó +teleportUser=Utilizador +teleportUserDescription=O utilizador para iniciar sessão como +login=Acede diff --git a/lang/proc/strings/translations_ru.properties b/lang/proc/strings/translations_ru.properties index 78db52cac..dd988f7d4 100644 --- a/lang/proc/strings/translations_ru.properties +++ b/lang/proc/strings/translations_ru.properties @@ -350,3 +350,16 @@ serialPortConfiguration=Конфигурация последовательно serialPortConfigurationDescription=Параметры конфигурации подключенного последовательного устройства serialInformation=Серийная информация openXShell=Открыть в XShell +tsh.displayName=Телепорт +tsh.displayDescription=Подключайтесь к узлам телепортации через tsh +tshNode.displayName=Узел телепортации +tshNode.displayDescription=Подключение к узлу телепортации в кластере +teleportCluster=Кластер +teleportClusterDescription=Кластер, в котором находится узел +teleportProxy=Прокси +teleportProxyDescription=Прокси-сервер, используемый для подключения к узлу +teleportHost=Хост +teleportHostDescription=Имя хоста узла +teleportUser=Пользователь +teleportUserDescription=Пользователь, от имени которого нужно войти в систему +login=Логин diff --git a/lang/proc/strings/translations_tr.properties b/lang/proc/strings/translations_tr.properties index a0f85cb1a..47a971d7d 100644 --- a/lang/proc/strings/translations_tr.properties +++ b/lang/proc/strings/translations_tr.properties @@ -350,3 +350,16 @@ serialPortConfiguration=Seri bağlantı noktası yapılandırması serialPortConfigurationDescription=Bağlı seri cihazın konfigürasyon parametreleri serialInformation=Seri bilgileri openXShell=XShell'de Aç +tsh.displayName=Işınlanma +tsh.displayDescription=Teleport düğümlerinize tsh ile bağlanın +tshNode.displayName=Işınlanma düğümü +tshNode.displayDescription=Kümedeki bir ışınlanma düğümüne bağlanma +teleportCluster=Küme +teleportClusterDescription=Düğümün içinde bulunduğu küme +teleportProxy=Proxy +teleportProxyDescription=Düğüme bağlanmak için kullanılan proxy sunucusu +teleportHost=Ev sahibi +teleportHostDescription=Düğümün ana bilgisayar adı +teleportUser=Kullanıcı +teleportUserDescription=Giriş yapılacak kullanıcı +login=Giriş diff --git a/lang/proc/strings/translations_zh.properties b/lang/proc/strings/translations_zh.properties index a98b09ccd..e1c69db04 100644 --- a/lang/proc/strings/translations_zh.properties +++ b/lang/proc/strings/translations_zh.properties @@ -350,3 +350,16 @@ serialPortConfiguration=串行端口配置 serialPortConfigurationDescription=所连接串行设备的配置参数 serialInformation=序列信息 openXShell=在 XShell 中打开 +tsh.displayName=远程传输 +tsh.displayDescription=通过 tsh 连接到远程传送节点 +tshNode.displayName=远距传送节点 +tshNode.displayDescription=连接到群集中的远程传送节点 +teleportCluster=群组 +teleportClusterDescription=节点所在的集群 +teleportProxy=代理 +teleportProxyDescription=用于连接节点的代理服务器 +teleportHost=主机 +teleportHostDescription=节点的主机名 +teleportUser=用户 +teleportUserDescription=要登录的用户 +login=登录