feat(sync): QR des reglages sur le PC, Paste settings sur le telephone

Le poste genere le QR (DelphiZXingQRCode, Apache 2.0) depuis ses prefs :
URL + jeton, jamais le mot de passe de synchro. Le telephone lit le texte
copie par l'appareil photo et remplit les champs ; Save valide.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
r-zakarya
2026-09-17 18:03:00 +01:00
parent 05ff08886d
commit f817a6df43
10 changed files with 3913 additions and 1 deletions
+14
View File
@@ -588,6 +588,7 @@
type="password" autocomplete="off">
<div class="in-x" data-clear="sPwd">&#215;</div>
</div>
<button class="btn wide" id="sPaste">Paste settings (QR from the PC)</button>
<button class="btn wide main" id="sSave">Save</button>
<div class="note">The sync password never leaves this device. It is what
encrypts the copy kept in the repository, so it must be the same on every
@@ -1665,6 +1666,9 @@ function normalizeRepoUrl(u) {
if (!m) return u;
return m[1] + '/api/v1/repos/' + m[2] + '/' + m[3] + '/contents/' + (m[4] || 'vault-sync.json');
}
document.getElementById('sPaste').addEventListener('click', function () {
send('pastecfg');
});
document.getElementById('sSave').addEventListener('click', function () {
var sUrl = document.getElementById('sUrl');
elUrl.value = normalizeRepoUrl(sUrl.value);
@@ -1849,6 +1853,16 @@ var PM = {
/// Ils ne s'affichent plus - le panneau repliable a cede la place au voile -
/// mais c'est toujours d'eux que part pushConfig, et Delphi ne connait qu'eux.
/// Les vider ferait perdre la configuration a la premiere synchronisation.
/// Reglages lus dans le QR du poste : ils remplissent les champs, Save valide.
pasteConfig: function (url, tok) {
var u = document.getElementById('sUrl');
u.value = shortRepoUrl(url);
autoGrow(u);
document.getElementById('sTok').value = tok;
toast('URL and token pasted - type the sync password, then Save');
document.getElementById('sPwd').focus();
},
setConfig: function (url, tok, pwd, show) {
// elPin volontairement absent : rien ne le restaure, jamais.
elUrl.value = url; elTok.value = tok; elPwd.value = pwd;