From a1f41535aec1ae040effc4307cf8e9decdfbe04f Mon Sep 17 00:00:00 2001 From: Dauren777 Date: Fri, 5 Jun 2026 10:53:45 +0000 Subject: [PATCH] =?UTF-8?q?Sync:=20localStorage=E2=86=92Supabase=E2=86=92l?= =?UTF-8?q?ocalStorage,=20=D0=B1=D0=B5=D0=B7=20=D0=B4=D1=83=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B8=D0=B5=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.html | 15 ++++++++++----- index.html | 5 +---- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app.html b/app.html index 7683d03..2914863 100644 --- a/app.html +++ b/app.html @@ -100,13 +100,18 @@ function allU(){var r=getU();r.admin={pass:"admin",name:"Администрат function getA(){return JSON.parse(localStorage.getItem("pab_audits")||"[]")} function saveA(d){localStorage.setItem("pab_audits",JSON.stringify(d))} -// Sync from Supabase to localStorage +// Sync: push localStorage to Supabase, then pull Supabase to localStorage async function syncFromSB(){ try{ - var u=await SB.from("users").select("*");if(u.data){var um={};u.data.forEach(function(x){um[x.login]={pass:x.pass,name:x.name,email:x.email,role:x.role,freq:x.freq,branch:x.branch,dept:x.dept,region:x.region,oblast:x.oblast,city:x.city}});saveU(um)} - var a=await SB.from("audits").select("*").order("created_at",{ascending:false});if(a.data){var am=a.data.map(function(x){return{id:x.id,number:x.number,date:x.date,location:x.location,region:x.region,workType:x.work_type,workerCount:x.worker_count,observer:x.observer,observerRole:x.observer_role,overallSafe:x.overall_safe,categories:x.categories,totalViolations:x.total_violations,dialogue:x.dialogue,docs:x.docs,createdBy:x.created_by,createdAt:x.created_at}});saveA(am)} - console.log("Synced from Supabase") - }catch(e){console.log("Supabase sync failed, using localStorage")} + // 1. Push localStorage users to Supabase + var lu=getU();for(var k in lu){await SB.from("users").upsert({login:k,pass:lu[k].pass,name:lu[k].name,email:lu[k].email,role:lu[k].role,freq:lu[k].freq,branch:lu[k].branch,dept:lu[k].dept,region:lu[k].region,oblast:lu[k].oblast,city:lu[k].city}).select();} + // 2. Push localStorage audits to Supabase + var la=getA();for(var i=0;i Вход — ПАБ -