PageSourceSearch

https://tier-notruf-0c527c98.base44.app/admin

html tier-notruf-0c527c98.base44.app collected 2026-10-03 03:09:17 UTC 9,160 bytes, 186 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3 <head>
4  <meta charset="utf-8"/>
5  <link href="https://media.base44.com/files/public/69e3cdb079db5ce10c527c98/228f2221f_AppLogo512.icon" rel="icon" type="image/svg+xml"/>
6  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
7  <link href="/manifest.json" rel="manifest"/>
8  <title>
9   Admin Dashboard | TierNotruf
10  </title>
11  <!-- Open Graph / Facebook -->
12  <meta content="website" property="og:type"/>
13  <meta content="https://tier-notruf-0c527c98.base44.app/admin" property="og:url"/>
14  <meta content="TierNotruf" property="og:site_name"/>
15  <meta content="Admin Dashboard | TierNotruf" property="og:title"/>
16  <meta content="Admin Dashboard on TierNotruf. Die schnelle Notfall-App für Tierfreunde: Fundtiere in Ihrer Nähe direkt an das ." property="og:description"/>
17  <meta content="https://media.base44.com/files/public/69e3cdb079db5ce10c527c98/228f2221f_AppLogo512.icon" property="og:image"/>
18  <meta content="de_DE" property="og:locale"/>
19  <meta content="945972461581538" property="fb:app_id"/>
20  <!-- Twitter / allgemein -->
21  <meta content="summary_large_image" name="twitter:card"/>
22  <meta content="Admin Dashboard | TierNotruf" name="twitter:title"/>
23  <meta content="Admin Dashboard on TierNotruf. Die schnelle Notfall-App für Tierfreunde: Fundtiere in Ihrer Nähe direkt an das ." name="twitter:description"/>
24  <meta content="https://media.base44.com/files/public/69e3cdb079db5ce10c527c98/228f2221f_AppLogo512.icon" name="twitter:image"/>
25  <!-- SEO -->
26  <meta content="Admin Dashboard on TierNotruf. Die schnelle Notfall-App für Tierfreunde: Fundtiere in Ihrer Nähe direkt an das ." name="description"/>
27  
27<script crossorigin="" src="/assets/index-CGUZJ0pi.js" type="module">
28  </script>
28
29  <link crossorigin="" href="/assets/index-DKbW9BL5.css" rel="stylesheet"/>
30  
30<script type="module">
31   if (window.self === window.top) {
32  let lastPath = "";
33  function getPageNameFromPath(path) {
34    const segments = path.split("/").filter(Boolean);
35    return segments[0] || null;
36  }
37  function trackPageView() {
38    const path = window.location.pathname;
39    if (path === lastPath) return;
40    lastPath = path;
41    const pageName = getPageNameFromPath(path) || "home";
42    const appId = "69e3cdb079db5ce10c527c98";
43    if (!appId) return;
44    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
45      method: "POST",
46    }).catch(() => {});
47  }
48  const originalPushState = history.pushState.bind(history);
49  history.pushState = function (...args) {
50    originalPushState(...args);
51    trackPageView();
52  };
53  const originalReplaceState = history.replaceState.bind(history);
54  history.replaceState = function (...args) {
55    originalReplaceState(...args);
56    trackPageView();
57  };
58  window.addEventListener("popstate", trackPageView);
59  trackPageView();
60}
61  </script>
61
62  <meta content="https://tier-notruf-0c527c98.base44.app/admin" name="twitter:url"/>
63  
63<script>
64   (function () {
65  var titles = {"/melden": "TierNotruf", "/uebersicht": "Overview | TierNotruf", "/admin": "Admin Dashboard | TierNotruf", "/meine-meldungen": "My Reports | TierNotruf", "/einstellungen": "Account Settings | TierNotruf", "/report-animal": "TierNotruf", "/reportanimal": "TierNotruf"};
66  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
67  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
68  var dashed = function (s) {
69    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
70  };
71  var decode = function (s) {
72    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
73    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
74    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
75  };
76  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
77  var norm = function (path) {
78    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
79    return parts.length ? "/" + parts.join("/") : "/";
80  };
81  var lastPath = location.pathname, written = document.title, on = true;
82  var sync = function () {
83    // Path only: a hash/query change is the same page, and the SDK strips its own auth
84    // params with replaceState -- neither must clobber a server-rendered title in place.
85    if (!on || location.pathname === lastPath) return;
86    lastPath = location.pathname;
87    if (document.title !== written) { on = false; return; }
88    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
89    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
90    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
91    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
92    // a redirect landing on an unmapped path would bake the placeholder into the stored
93    // snapshot. Leaving the title alone degrades to today's behavior instead.
94    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
95    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
96    // dashes there, and the client cannot tell the two apart. The map emits every reachable
97    // shape per segment instead (_client_url_variants).
98    var title = titles[norm(location.pathname)];
99    if (title === undefined) return;
100    document.title = title;
101    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
102    // keeping the assigned string would make the next sync() read our own write as the app's.
103    written = document.title;
104  };
105  var wrap = function (fn) {
106    // The history entry is already pushed by the time sync() runs, so a throw here would
107    // surface inside the host app's router and break navigation. This is injected into apps
108    // we cannot test, so it swallows rather than trusting the trace.
109    return function () {
110      var r = fn.apply(this, arguments);
111      try { sync(); } catch (e) {}
112      return r;
113    };
114  };
115  history.pushState = wrap(history.pushState);
116  history.replaceState = wrap(history.replaceState);
117  window.addEventListener("popstate", sync);
118})();
119  </script>
119
120  <meta content="yes" name="mobile-web-app-capable"/>
121  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
122  <meta content="TierNotruf" name="apple-mobile-web-app-title"/>
123  <link href="https://tier-notruf-0c527c98.base44.app/admin" rel="canonical"/>
124  
124<script data-seo-source="builder" type="application/ld+json">
125   {"name": "TierNotruf", "@context": "https://schema.org", "@type": "WebSite", "url": "https://tier-notruf-0c527c98.base44.app"}
126  </script>
126
127  
127<script data-seo-source="builder" type="application/ld+json">
128   {"name": "TierNotruf", "logo": "https://media.base44.com/images/public/69e3cdb079db5ce10c527c98/243b5b614_hf_20260420_201212_28100910-3aec-4ea6-9b9c-dcdc4fca1f3c.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://tier-notruf-0c527c98.base44.app"}
129  </script>
129
130  
130<script data-seo-source="builder" type="application/ld+json">
131   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://tier-notruf-0c527c98.base44.app/"}, {"@type": "ListItem", "position": 2, "name": "Admin Dashboard | TierNotruf", "item": "https://tier-notruf-0c527c98.base44.app/admin"}]}
132  </script>
132
133 </head>
134 <body>
135  <div id="root">
136   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
137    <main>
138     <header>
139      <h1>
140       Admin Dashboard | TierNotruf
141      </h1>
142      <p>
143       Admin Dashboard on TierNotruf. Die schnelle Notfall-App für Tierfreunde: Fundtiere in Ihrer Nähe direkt an das .
144      </p>
145     </header>
146     <nav aria-label="Pages">
147      <h2>
148       Pages
149      </h2>
150      <ul>
151       <li>
152        <a href="/melden">
153         Report Animal
154        </a>
155       </li>
156       <li>
157        <a href="/uebersicht">
158         Overview
159        </a>
160        — Overview on TierNotruf. Die schnelle Notfall-App für Tierfreunde: Fundtiere in Ihrer Nähe direkt an das .
161       </li>
162       <li>
163        <a href="/admin">
164         Admin Dashboard
165        </a>
166        — Admin Dashboard on TierNotruf. Die schnelle Notfall-App für Tierfreunde: Fundtiere in Ihrer Nähe direkt an das .
167       </li>
168       <li>
169        <a href="/meine-meldungen">
170         My Reports
171        </a>
172        — My Reports on TierNotruf. Die schnelle Notfall-App für Tierfreunde: Fundtiere in Ihrer Nähe direkt an das .
173       </li>
174       <li>
175        <a href="/einstellungen">
176         Account Settings
177        </a>
178        — Account Settings on TierNotruf. Die schnelle Notfall-App für Tierfreunde: Fundtiere in Ihrer Nähe direkt an das .
179       </li>
180      </ul>
181     </nav>
182    </main>
183   </div>
184  </div>
185 </body>
186</html>

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.