| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
- <!-- Favicons - will be updated dynamically if custom logo exists -->
- <link rel="icon" type="image/x-icon" href="/static/favicon.ico" id="favicon-ico" />
- <link rel="icon" type="image/png" sizes="32x32" href="/static/favicon-32x32.png" id="favicon-32" />
- <link rel="icon" type="image/png" sizes="16x16" href="/static/favicon-16x16.png" id="favicon-16" />
- <link rel="apple-touch-icon" sizes="180x180" href="/static/apple-touch-icon.png" id="apple-touch-icon" />
- <link rel="manifest" href="/static/site.webmanifest" />
- <title>Dune Weaver</title>
- <!-- Check for custom favicon -->
- <script>
- // Get base URL for active table (supports multi-table connections)
- (function() {
- var baseUrl = '';
- try {
- var stored = localStorage.getItem('duneweaver_tables');
- var activeId = localStorage.getItem('duneweaver_active_table');
- if (stored && activeId) {
- var data = JSON.parse(stored);
- var active = (data.tables || []).find(function(t) { return t.id === activeId; });
- if (active && !active.isCurrent && active.url && active.url !== window.location.origin) {
- baseUrl = active.url.replace(/\/$/, '');
- }
- }
- } catch (e) {}
- fetch(baseUrl + '/api/settings')
- .then(function(r) { return r.json(); })
- .then(function(settings) {
- if (settings.app && settings.app.custom_logo) {
- document.getElementById('favicon-ico').href = baseUrl + '/static/custom/favicon.ico';
- document.getElementById('apple-touch-icon').href = baseUrl + '/static/custom/' + settings.app.custom_logo;
- }
- if (settings.app && settings.app.name) {
- document.title = settings.app.name;
- }
- })
- .catch(function() {});
- })();
- </script>
- </head>
- <body>
- <div id="root"></div>
- <script type="module" src="/src/main.tsx"></script>
- </body>
- </html>
|