Phase 2: AI Chat, Calendar, Odoo connector, PWA
- AI Chat endpoint (/api/v1/chat) with Claude API context - Calendar page with FullCalendar.js (day/week/month) - Odoo API connector (import/export/webhook) - PWA manifest + service worker for offline - SW register component Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
0
apps/tasks/public/icon-192.png
Normal file
0
apps/tasks/public/icon-192.png
Normal file
4
apps/tasks/public/icon-192.png.svg
Normal file
4
apps/tasks/public/icon-192.png.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" viewBox="0 0 192 192">
|
||||
<rect width="192" height="192" rx="32" fill="#3B82F6"/>
|
||||
<text x="96" y="120" text-anchor="middle" font-size="100" fill="white" font-family="sans-serif">T</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 260 B |
0
apps/tasks/public/icon-512.png
Normal file
0
apps/tasks/public/icon-512.png
Normal file
@@ -1,22 +1,17 @@
|
||||
{
|
||||
"name": "Task Team",
|
||||
"short_name": "Tasks",
|
||||
"description": "Sprava ukolu pro tym",
|
||||
"start_url": "/",
|
||||
"description": "Správa úkolů pro tým",
|
||||
"start_url": "/tasks",
|
||||
"display": "standalone",
|
||||
"background_color": "#ffffff",
|
||||
"theme_color": "#3b82f6",
|
||||
"background_color": "#0a0a0a",
|
||||
"theme_color": "#3B82F6",
|
||||
"orientation": "portrait-primary",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/icon-192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "/icon-512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
]
|
||||
{"src": "/icon-192.png", "sizes": "192x192", "type": "image/png"},
|
||||
{"src": "/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any maskable"}
|
||||
],
|
||||
"categories": ["productivity", "utilities"],
|
||||
"lang": "cs",
|
||||
"dir": "ltr"
|
||||
}
|
||||
|
||||
27
apps/tasks/public/sw.js
Normal file
27
apps/tasks/public/sw.js
Normal file
@@ -0,0 +1,27 @@
|
||||
const CACHE = "taskteam-v1";
|
||||
const PRECACHE = ["/tasks", "/login", "/manifest.json"];
|
||||
|
||||
self.addEventListener("install", (e) => {
|
||||
e.waitUntil(caches.open(CACHE).then((c) => c.addAll(PRECACHE)));
|
||||
self.skipWaiting();
|
||||
});
|
||||
|
||||
self.addEventListener("activate", (e) => {
|
||||
e.waitUntil(caches.keys().then((keys) =>
|
||||
Promise.all(keys.filter((k) => k !== CACHE).map((k) => caches.delete(k)))
|
||||
));
|
||||
self.clients.claim();
|
||||
});
|
||||
|
||||
self.addEventListener("fetch", (e) => {
|
||||
if (e.request.method !== "GET") return;
|
||||
e.respondWith(
|
||||
fetch(e.request)
|
||||
.then((r) => {
|
||||
const clone = r.clone();
|
||||
caches.open(CACHE).then((c) => c.put(e.request, clone));
|
||||
return r;
|
||||
})
|
||||
.catch(() => caches.match(e.request))
|
||||
);
|
||||
});
|
||||
Reference in New Issue
Block a user