PageSourceSearch

https://octofold.com/build/assets/OsmSync-B2IZbnBu.js

js octofold.com collected 2026-10-03 20:09:10 UTC 10,010 bytes, 1 lines download raw bytes

1import{r as N,j as s}from"./vendor-react-BzXAup97.js";import{A as $}from"./AdminPageWrapper-Uq3LcqGL.js";import{C as l,b as v,c as C,a as u}from"./Card-Czp7NDRY.js";import{u as F,L as x,B as h}from"./app-BcVXXONv.js";import{B as p}from"./Badge-BYM-_53-.js";import{S as y}from"./Select-By7TTUYq.js";import{T as R,a as B,b as j,c as d,d as H,e as i}from"./Table-Cn6JNXmi.js";import{c as O,H as z,r as S}from"./vendor-inertia-C6ujBw2R.js";import{af as L,X as w,bn as A,bG as E,e as I}from"./vendor-lucide-1jXEw7Bh.js";import"./AuthenticatedLayout-CluqGnv5.js";import"./vendor-radix-Bha8dDJB.js";import"./vendor-tiptap-CF47o3zI.js";import"./pushNotifications-BVHqr3g7.js";import"./vendor-firebase-CCnLmBjb.js";import"./UpgradeModal-H1XLTufz.js";import"./upgradeFeatureCatalog-DQsdO-8d.js";import"./Input-Cg7VKGAS.js";import"./AppModal-Bf_aZlPN.js";import"./transition-Cx0OHrt1.js";import"./dialog-D_ql7LVY.js";import"./Sheet-BZ90mOOl.js";import"./rememberedProfile-pkm-wW4S.js";import"./vendor-framer-DOQvBjnK.js";import"./vendor-dnd-aV9yv6Pg.js";import"./useRoutePulse-Cu98qn9H.js";import"./vendor-ably-DQ6H01js.js";import"./vendor-recharts-MX9_f30n.js";import"./vendor-assistant-ui-rpsJ9Qdc.js";import"./vendor-voip-BKCre8sD.js";function T(a,n){if(!a)return"—";const c=new Date(a).getTime(),o=n?new Date(n).getTime():Date.now(),t=Math.max(0,Math.round((o-c)/1e3));if(t<60)return`${t}s`;const m=Math.floor(t/60),g=t%60;return`${m}m ${g}s`}function D(a){if(!a)return"—";try{return new Date(a).toLocaleString()}catch{return a}}function ps({runs:a,countries:n,cities:c,categories:o}){const{t}=F(),[m,g]=N.useState(n[0]?.code??""),b=N.useMemo(()=>c.filter(e=>m===""?!0:e.country_code===m),[c,m]),r=O({city_id:b[0]?.id??0,category_id:o[0]?.id??0,mode:"full"}),M=e=>{e.preventDefault(),r.post(route("admin.mb.osm-sync.trigger"),{preserveScroll:!0})},_=e=>{window.confirm(t("mybusiness.admin.osm.confirm_cancel","Cancel this running OSM sync?"))&&S.post(route("admin.mb.osm-sync.cancel",{run:e}),{},{preserveScroll:!0})},f=e=>e==="succeeded"?s.jsxs(p,{variant:"success",className:"gap-1",children:[s.jsx(A,{className:"h-3 w-3"}),t("mybusiness.admin.osm.status_succeeded","Succeeded")]}):e==="failed"?s.jsxs(p,{variant:"destructive",className:"gap-1",children:[s.jsx(E,{className:"h-3 w-3"}),t("mybusiness.admin.osm.status_failed","Failed")]}):s.jsxs(p,{variant:"secondary",className:"gap-1",children:[s.jsx(I,{className:"h-3 w-3 animate-spin"}),t("mybusiness.admin.osm.status_running","Running")]});return s.jsxs($,{title:`${t("mybusiness.admin.osm.title","OSM Sync")} - Admin`,header:s.jsx("h1",{className:"text-xl font-semibold leading-tight text-foreground",children:t("mybusiness.admin.osm.title","OSM Sync")}),children:[s.jsx(z,{title:`${t("mybusiness.admin.osm.title","OSM Sync")} - Admin`}),s.jsxs("div",{className:"p-4 md:p-6 space-y-6",children:[s.jsxs(l,{children:[s.jsxs(v,{children:[s.jsx(C,{className:"text-base",children:t("mybusiness.admin.osm.trigger_title","Trigger a manual sync")}),s.jsx("p",{className:"text-sm text-muted-foreground",children:t("mybusiness.admin.osm.trigger_help","Queue a single city + category OSM ingestion. Results appear in the run history below.")})]}),s.jsx(u,{children:s.jsxs("form",{onSubmit:M,className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-5 gap-4 items-end",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx(x,{htmlFor:"osm-country",children:t("mybusiness.admin.osm.country_label","Country")}),s.jsx(y,{id:"osm-country",value:m,onChange:e=>g(e.target.value),children:n.map(e=>s.jsxs("option",{value:e.code,children:[e.name," (",e.code,")"]},e.code))})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsx(x,{htmlFor:"osm-city",children:t("mybusiness.admin.osm.city_label","City")}),s.jsx(y,{id:"osm-city",value:r.data.city_id,onChange:e=>r.setData("city_id",Number(e.target.value)),error:r.errors.city_id,children:b.map(e=>s.jsxs("option",{value:e.id,children:[e.name,e.is_featured?" ★":""]},e.id))})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsx(x,{htmlFor:"osm-category",children:t("mybusiness.admin.osm.category_label","Category")}),s.jsx(y,{id:"osm-category",value:r.data.category_id,onChange:e=>r.setData("category_id",Number(e.target.value)),error:r.errors.category_id,children:o.map(e=>s.jsx("option",{value:e.id,children:e.name},e.id))})]}),s.jsxs("div",{className:"space-y-1",children:[s.jsx(x,{htmlFor:"osm-mode",children:t("mybusiness.admin.osm.mode_label","Mode")}
1),s.jsxs(y,{id:"osm-mode",value:r.data.mode,onChange:e=>r.setData("mode",e.target.value),children:[s.jsx("option",{value:"full",children:t("mybusiness.admin.osm.mode_full","Full")}),s.jsx("option",{value:"delta",children:t("mybusiness.admin.osm.mode_delta","Delta")})]})]}),s.jsx("div",{children:s.jsxs(h,{type:"submit",disabled:r.processing||r.data.city_id===0||r.data.category_id===0,className:"w-full",children:[s.jsx(L,{className:"h-4 w-4 mr-2"}),t("mybusiness.admin.osm.run_button","Run sync")]})})]})})]}),s.jsxs(l,{className:"hidden md:block",children:[s.jsx(v,{children:s.jsx(C,{className:"text-base",children:t("mybusiness.admin.osm.history_title","Recent runs")})}),s.jsx(u,{children:s.jsxs(R,{children:[s.jsx(B,{children:s.jsxs(j,{children:[s.jsx(d,{children:t("mybusiness.admin.osm.col_status","Status")}),s.jsx(d,{children:t("mybusiness.admin.osm.col_city","City")}),s.jsx(d,{children:t("mybusiness.admin.osm.col_category","Category")}),s.jsx(d,{children:t("mybusiness.admin.osm.col_mode","Mode")}),s.jsx(d,{children:t("mybusiness.admin.osm.col_started","Started")}),s.jsx(d,{children:t("mybusiness.admin.osm.col_duration","Duration")}),s.jsx(d,{className:"text-right",children:t("mybusiness.admin.osm.col_imported","Imp.")}),s.jsx(d,{className:"text-right",children:t("mybusiness.admin.osm.col_updated","Upd.")}),s.jsx(d,{className:"text-right",children:t("mybusiness.admin.osm.col_skipped","Skip.")}),s.jsx(d,{className:"text-right",children:t("mybusiness.admin.osm.col_errors","Err.")}),s.jsx(d,{children:t("mybusiness.admin.osm.col_triggered_by","Triggered by")}),s.jsx(d,{className:"text-right",children:t("mybusiness.admin.osm.col_actions","Actions")})]})}),s.jsxs(H,{children:[a.data.length===0&&s.jsx(j,{children:s.jsx(i,{colSpan:12,className:"text-center text-muted-foreground py-8",children:t("mybusiness.admin.osm.empty","No sync runs yet.")})}),a.data.map(e=>s.jsxs(j,{children:[s.jsx(i,{children:f(e.status)}),s.jsx(i,{children:e.city?.name??`#${e.city_id}`}),s.jsx(i,{children:e.category?.name??`#${e.category_id}`}),s.jsx(i,{className:"capitalize",children:e.mode}),s.jsx(i,{className:"text-xs text-muted-foreground",children:D(e.started_at)}),s.jsx(i,{className:"text-xs",children:T(e.started_at,e.finished_at)}),s.jsx(i,{className:"text-right tabular-nums",children:e.imported_count}),s.jsx(i,{className:"text-right tabular-nums",children:e.updated_count}),s.jsx(i,{className:"text-right tabular-nums",children:e.skipped_count}),s.jsx(i,{className:"text-right tabular-nums",children:e.error_count>0?s.jsx("span",{className:"text-destructive font-medium",children:e.error_count}):e.error_count}),s.jsx(i,{className:"text-xs text-muted-foreground",children:e.triggered_by?.name??t("mybusiness.admin.osm.triggered_system","System")}),s.jsx(i,{className:"text-right",children:e.status==="running"&&s.jsx(h,{variant:"ghost",size:"sm",onClick:()=>_(e.id),"aria-label":t("mybusiness.admin.osm.cancel_action","Cancel run"),children:s.jsx(w,{className:"h-4 w-4"})})})]},e.id))]})]})})]}),s.jsxs("div",{className:"md:hidden space-y-3",children:[a.data.length===0&&s.jsx(l,{children:s.jsx(u,{className:"py-8 text-center text-muted-foreground",children:t("mybusiness.admin.osm.empty","No sync runs yet.")})}),a.data.map(e=>s.jsx(l,{children:s.jsxs(u,{className:"p-4 space-y-2",children:[s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[f(e.status),e.status==="running"&&s.jsx(h,{variant:"ghost",size:"sm",onClick:()=>_(e.id),"aria-label":t("mybusiness.admin.osm.cancel_action","Cancel run"),children:s.jsx(w,{className:"h-4 w-4"})})]}),s.jsxs("div",{className:"text-sm font-medium",children:[e.city?.name??`#${e.city_id}`," ·"," ",s.jsx("span",{className:"text-muted-foreground",children:e.category?.name??`#${e.category_id}`})]}),s.jsxs("div",{className:"text-xs text-muted-foreground",children:[D(e.started_at)," · ",T(e.started_at,e.finished_at)," ·"," ",s.jsx("span",{className:"capitalize",children:e.mode})]}),s.jsxs("div",{className:"grid grid-cols-4 gap-2 text-xs",children:[s.jsxs("div",{children:[s.jsx("div",{className:"text-muted-foreground",children:t("mybusiness.admin.osm.col_imported","Imp.")}),s.jsx("div",{className:"font-medium tabular-nums",children:e.imported_count})]}),s.jsxs("div",{children:[s.jsx("div",{className:"text-muted-foreground",children:t("mybusiness.admin.osm.col_updated","Upd.")}),s.jsx("div",{className:"font-medium tabular-nums",children:e.updated_count})]}),s.jsxs("div",{children:[s.jsx("div",{className:"text-muted-foreground",children:t("mybusiness.admin.osm.col_skipped","Skip.")}),s.jsx("div",{className:"font-medium tabular-nums",children:e.skipped_count})]}),s.jsxs("div",{children:[s.jsx("div",{className:"text-muted-foreground",children:t("mybusiness.admin.osm.col_errors","Err.")}),s.jsx("div",{className:e.error_count>0?"font-medium text-destructive tabular-nums":"font-medium tabular-nums",children:e.error_count})]})]}),e.error_message&&s.jsx("div",{className:"text-xs text-destructive break-words",children:e.error_message}),s.jsxs("div",{className:"text-xs text-muted-foreground",children:[t("mybusiness.admin.osm.col_triggered_by","Triggered by"),":"," ",e.triggered_by?.name??t("mybusiness.admin.osm.triggered_system","System")]})]})},e.id))]}),a.last_page>1&&s.jsx("div",{className:"flex justify-center gap-1 flex-wrap",children:a.links.map((e,k)=>s.jsx(h,{variant:e.active?"default":"outline",size:"sm",disabled:!e.url,onClick:()=>e.url&&S.visit(e.url,{preserveScroll:!0}),dangerouslySetInnerHTML:{__html:e.label}},k))})]})]})}export{ps as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.