feat(apk): URL du depot telle que dans le navigateur + croix qui ne mange plus la fin du champ

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-09-17 16:23:09 +01:00
parent 231e3f98ae
commit 732b93e5dd
+19 -3
View File
@@ -316,7 +316,10 @@
des que le margin disparaissait. Le bord INFERIEUR, lui, est celui que le des que le margin disparaissait. Le bord INFERIEUR, lui, est celui que le
champ touche dans les deux cas - le margin est au-dessus. */ champ touche dans les deux cas - le margin est au-dessus. */
.in-x { .in-x {
position: absolute; right: 0; bottom: 0; width: 44px; height: 46px; /* 32 px pour 44 px de marge : les 12 px entre le texte et la croix
recoivent le toucher, qui pose le curseur en fin de texte au lieu
d'effacer le champ. */
position: absolute; right: 0; bottom: 0; width: 32px; height: 46px;
display: flex; align-items: center; justify-content: center; display: flex; align-items: center; justify-content: center;
color: var(--muted); font-size: 22px; color: var(--muted); font-size: 22px;
} }
@@ -560,7 +563,7 @@
<div class="scroll"> <div class="scroll">
<h2>Repository</h2> <h2>Repository</h2>
<div class="in-wrap"> <div class="in-wrap">
<input class="field-in" id="sUrl" placeholder="endpoint URL" <input class="field-in" id="sUrl" placeholder="repository URL, e.g. https://git.example.com/owner/repo"
autocomplete="off" autocorrect="off" autocapitalize="none" autocomplete="off" autocorrect="off" autocapitalize="none"
spellcheck="false" inputmode="url"> spellcheck="false" inputmode="url">
<div class="in-x" data-clear="sUrl">&#215;</div> <div class="in-x" data-clear="sUrl">&#215;</div>
@@ -1622,8 +1625,21 @@ function openSettings() {
// ENREGISTRER EST UN GESTE, FERMER N'ENREGISTRE RIEN. Fermer enregistrait : // ENREGISTRER EST UN GESTE, FERMER N'ENREGISTRE RIEN. Fermer enregistrait :
// une URL effacee par erreur partait avec le retour, sans moyen de revenir. // une URL effacee par erreur partait avec le retour, sans moyen de revenir.
// Desormais retour = annuler, et la page repart des valeurs enregistrees. // Desormais retour = annuler, et la page repart des valeurs enregistrees.
// L'ADRESSE DU DEPOT TELLE QUE LE NAVIGATEUR L'AFFICHE suffit :
// https://git.example.com/OWNER/REPO (ou .../src/branch/main/FICHIER) devient
// l'URL de l'API des contenus. Une URL d'API ou d'endpoint PHP passe telle quelle,
// et une forme non reconnue aussi - Sync dira alors ce qui ne va pas.
function normalizeRepoUrl(u) {
u = u.trim();
if (!u || /\/api\/v1\/repos\//i.test(u) || /\.php(\?|$)/i.test(u)) return u;
var m = u.match(/^(https?:\/\/[^\/]+)\/([^\/]+)\/([^\/]+?)(?:\.git)?(?:\/src\/branch\/[^\/]+\/(.+?))?\/?$/i);
if (!m) return u;
return m[1] + '/api/v1/repos/' + m[2] + '/' + m[3] + '/contents/' + (m[4] || 'vault-sync.json');
}
document.getElementById('sSave').addEventListener('click', function () { document.getElementById('sSave').addEventListener('click', function () {
elUrl.value = document.getElementById('sUrl').value.trim(); var sUrl = document.getElementById('sUrl');
sUrl.value = normalizeRepoUrl(sUrl.value);
elUrl.value = sUrl.value;
elTok.value = document.getElementById('sTok').value.trim(); elTok.value = document.getElementById('sTok').value.trim();
elPwd.value = document.getElementById('sPwd').value; elPwd.value = document.getElementById('sPwd').value;
pushConfig(); pushConfig();