Skip to content

Commit f1b58be

Browse files
authored
feat: replace frontend with core's JSX components and multi-domain OAuth (#7)
Replace the modern React frontend with an exact copy of core's frontend: - Copy JSX components from core (dashboard, pullrequest, repository, logs) - Copy CSS modules and static HTML pages from core - Update API paths from /v1/ to /api/v1/ for proxy routing - Fix proxy to handle redirects and use Express 5 wildcard syntax Add multi-domain OAuth support: - Login link dynamically includes callback URL based on current domain - Proxy handles /github-callback response (sets httpOnly cookie, redirects) This makes webapp a true mirror of core's frontend, preparing for the eventual frontend/backend split where webapp serves the UI and core provides the API.
1 parent 7ee0c91 commit f1b58be

34 files changed

Lines changed: 1034 additions & 691 deletions

index.html

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
<!doctype html>
22
<html lang="en">
33
<head>
4-
<meta charset="UTF-8" />
5-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
4+
<meta charset="utf-8" />
5+
<title>World driven</title>
6+
<meta name="author" content="Tobias Wilken" />
67
<meta
78
name="description"
8-
content="Worlddriven admin interface for managing repositories and configurations"
9+
content="Community driven pull request automerge"
910
/>
10-
<link rel="icon" href="/images/favicon-32x32.png" />
11-
<title>Worlddriven Admin</title>
12-
<link rel="stylesheet" href="/style.css" />
13-
<link rel="stylesheet" href="/theme.css" />
11+
<meta
12+
name="viewport"
13+
content="width=device-width, initial-scale=1, shrink-to-fit=no"
14+
/>
15+
<link href="/style.css" rel="stylesheet" />
1416
</head>
17+
1518
<body>
16-
<div id="root"></div>
19+
<div class="bg"></div>
20+
<div id="app"></div>
1721
<script type="module" src="/src/main.jsx"></script>
1822
</body>
1923
</html>

public/admin.html

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>World driven</title>
6+
<meta name="author" content="Tobias Wilken" />
7+
<meta
8+
name="description"
9+
content="Community driven pull request automerge"
10+
/>
11+
<meta
12+
name="viewport"
13+
content="width=device-width, initial-scale=1, shrink-to-fit=no"
14+
/>
15+
<link href="/static/css/style.css" rel="stylesheet" />
16+
</head>
17+
18+
<body>
19+
<div id="app"></div>
20+
<script src="/static/js/main.js"></script>
21+
</body>
22+
</html>

public/dashboard.html

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>World driven</title>
6+
<meta name="author" content="Tobias Wilken" />
7+
<meta
8+
name="description"
9+
content="Community driven pull request automerge"
10+
/>
11+
<meta
12+
name="viewport"
13+
content="width=device-width, initial-scale=1, shrink-to-fit=no"
14+
/>
15+
<link href="/style.css" rel="stylesheet" />
16+
</head>
17+
18+
<body>
19+
<div class="bg"></div>
20+
<div id="app"></div>
21+
<script type="module" src="/src/main.jsx"></script>
22+
</body>
23+
</html>

public/imprint.html

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>World Driven - Pull Request Auto-Merge</title>
6+
7+
<meta name="author" content="Tobias Wilken" />
8+
<meta
9+
name="description"
10+
content="World driven introduces a contribution based weighted voting system
11+
for automatic merging of pull requests. As soon as you contribute to a project, you get a share or
12+
responsibility for the progress of the project."
13+
/>
14+
<meta
15+
name="viewport"
16+
content="width=device-width, initial-scale=1, shrink-to-fit=no"
17+
/>
18+
<meta property="og:type" content="website" />
19+
<meta property="og:title" content="World driven" />
20+
<meta
21+
property="og:description"
22+
content="World driven introduces a contribution based weighted voting system
23+
for automatic merging of pull requests. As soon as you contribute to a project, you get a share or
24+
responsibility for the progress of the project."
25+
/>
26+
<meta property="og:url" content="https://www.worlddriven.org" />
27+
<meta
28+
property="og:image"
29+
content="https://www.worlddriven.org/images/globe.svg"
30+
/>
31+
<meta name="twitter:card" content="summary" />
32+
<meta name="twitter:title" content="World driven" />
33+
<meta
34+
name="twitter:description"
35+
content="World driven introduces a contribution based weighted voting system
36+
for automatic merging of pull requests. As soon as you contribute to a project, you get a share or
37+
responsibility for the progress of the project."
38+
/>
39+
<meta
40+
name="twitter:image"
41+
content="https://www.worlddriven.org/images/globe.svg"
42+
/>
43+
<meta name="twitter:image:alt" content="World driven logo" />
44+
45+
<link rel="canonical" href="https://www.worlddriven.org" />
46+
47+
<link rel="stylesheet" type="text/css" href="static/style.css" />
48+
49+
<link
50+
rel="alternate"
51+
hreflang="x-default"
52+
href="http://www.worlddriven.org"
53+
/>
54+
55+
<script type="application/ld+json">
56+
{
57+
"@context": "http://schema.org",
58+
"@type": "Organization",
59+
"url": "https://www.worlddriven.org",
60+
"logo": "https://www.worlddriven.org/images/globe.svg"
61+
}
62+
</script>
63+
</head>
64+
65+
<body>
66+
<div class="bg"></div>
67+
<article class="container">
68+
<header>
69+
<div class="login">
70+
<p>
71+
Login with
72+
<a href="/login/">
73+
<img
74+
src="/images/GitHub-Mark-120px-plus.png"
75+
alt="GitHub logo linked to login"
76+
width="30"
77+
/></a>
78+
</p>
79+
</div>
80+
<a href="/" class="logo"
81+
><img
82+
src="/images/logo_world_driven.svg"
83+
class="logo"
84+
alt="World driven logo"
85+
/></a>
86+
<h4>Trustable service landscape</h4>
87+
</header>
88+
89+
<h1>Imprint</h1>
90+
91+
<ul>
92+
<li>Tobias Wilken</li>
93+
<li>Ziegeleiweg 29</li>
94+
<li>D-26203 Wardenburg</li>
95+
<li><a href="mailto:tooangel@tooangel.de">tooangel@tooangel.de</a></li>
96+
<li><a href="tel:+4916096657514">+49 160 96657514</a></li>
97+
</ul>
98+
</article>
99+
100+
<footer>
101+
<span><a href="/imprint">Imprint</a></span>
102+
<span><a href="/privacyPolicy">Privacy Policy</a></span>
103+
<span><a href="/admin/logs">Public Admin</a></span>
104+
</footer>
105+
</body>
106+
</html>

0 commit comments

Comments
 (0)