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:
@@ -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">×</div>
|
<div class="in-x" data-clear="sUrl">×</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();
|
||||||
|
|||||||
Reference in New Issue
Block a user