✨ Make the SPA load for home and register
Link to legacy routes
This commit is contained in:
1 parent
717752ddae
commit
d3016a3925
9 files changed
+39
-26
No files matched your search
@@ -1,4 +1,5 @@
|
|||||||
# Getting started
|
# Getting started
|
||||||
|
|
||||||
Before starting, make sure you have a working python and nodejs setup with pyenv and nvm.
|
Before starting, make sure you have a working python and nodejs setup with pyenv and nvm.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -15,12 +16,19 @@ npm install
|
|||||||
npm start
|
npm start
|
||||||
```
|
```
|
||||||
|
|
||||||
## References:
|
## References
|
||||||
- We use JS code generation to work with queries/mutations in our graphql API: https://github.com/dotansimha/graphql-typed-document-node
|
|
||||||
|
|
||||||
# TODO-old
|
- We use JS code generation to work with queries/mutations in our graphql API: https://github.com/dotansimha/graphql-typed-document-node
|
||||||
* Larger pictures
|
|
||||||
* Compact GUI for max 768 vertical pixels
|
## TODO
|
||||||
* Search right of in title
|
|
||||||
* Light on dark colors
|
- Log view
|
||||||
|
- Remove everything facebook related. Use gravatars.
|
||||||
|
- Light on dark colors
|
||||||
|
|
||||||
|
## TODO-old
|
||||||
|
|
||||||
|
- Larger pictures
|
||||||
|
- Compact GUI for max 768 vertical pixels
|
||||||
|
- Search right of in title
|
||||||
|
|
||||||
@@ -60,4 +60,4 @@
|
|||||||
"node": ">=16",
|
"node": ">=16",
|
||||||
"npm": ">=7"
|
"npm": ">=7"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10,11 +10,9 @@ import { Header } from "./components/Header";
|
|||||||
import { Toast } from "./components/Toast";
|
import { Toast } from "./components/Toast";
|
||||||
import { ToastProvider } from "./components/ToastProvider";
|
import { ToastProvider } from "./components/ToastProvider";
|
||||||
|
|
||||||
const baseUrl = import.meta.env.BASE_URL;
|
|
||||||
|
|
||||||
const App: React.FC = () => (
|
const App: React.FC = () => (
|
||||||
<ApolloProvider client={client}>
|
<ApolloProvider client={client}>
|
||||||
<Router basename={baseUrl.replace("/static", "")}>
|
<Router>
|
||||||
<ToastProvider>
|
<ToastProvider>
|
||||||
<Header />
|
<Header />
|
||||||
<div className={styles.app}>
|
<div className={styles.app}>
|
||||||
|
|||||||
@@ -44,20 +44,20 @@ export const Header: React.FC = () => {
|
|||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
<li className="nav-item">
|
<li className="nav-item">
|
||||||
<NavLink to="/log" className="nav-link" activeClassName="active">
|
<a href="/log" className="nav-link">
|
||||||
<span className={styles.navIcon}>
|
<span className={styles.navIcon}>
|
||||||
<CardList />
|
<CardList />
|
||||||
</span>{" "}
|
</span>{" "}
|
||||||
Logg
|
Logg
|
||||||
</NavLink>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li className="nav-item">
|
<li className="nav-item">
|
||||||
<NavLink to="/stats" className="nav-link" activeClassName="active">
|
<a href="/stats" className="nav-link">
|
||||||
<span className={styles.navIcon}>
|
<span className={styles.navIcon}>
|
||||||
<BarChart />
|
<BarChart />
|
||||||
</span>{" "}
|
</span>{" "}
|
||||||
Statistikk
|
Statistikk
|
||||||
</NavLink>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -10,5 +10,5 @@ export default defineConfig({
|
|||||||
__DEV__: process.env.NODE_ENV !== "production",
|
__DEV__: process.env.NODE_ENV !== "production",
|
||||||
},
|
},
|
||||||
envDir: "..",
|
envDir: "..",
|
||||||
build: { outDir: "../static/modern" },
|
build: { outDir: "../static/modern", emptyOutDir: true },
|
||||||
});
|
});
|
||||||
+13
-6
@@ -1,6 +1,6 @@
|
|||||||
from django.conf.urls import url
|
from django.conf.urls import url
|
||||||
from django.contrib.staticfiles.views import serve
|
from django.contrib.staticfiles.views import serve
|
||||||
from django.urls import path
|
from django.urls import include, path
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
from main.api.views import ProductViewSet
|
from main.api.views import ProductViewSet
|
||||||
@@ -17,10 +17,17 @@ from main.views.stats import (
|
|||||||
)
|
)
|
||||||
from main.views.users import create_user, profile
|
from main.views.users import create_user, profile
|
||||||
|
|
||||||
|
spa_kwargs = {"path": "modern/index.html"}
|
||||||
|
|
||||||
|
legacy_patterns = [
|
||||||
|
path("", register, name="home-legacy"),
|
||||||
|
path("deposit", deposit, name="deposit-legacy"),
|
||||||
|
]
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
url(r"^$", register, name="home"),
|
path("", serve, kwargs=spa_kwargs, name="home"),
|
||||||
url(r"^register/$", register, name="register"),
|
path("deposit", serve, kwargs=spa_kwargs, name="deposit"),
|
||||||
url(r"^deposit/$", deposit, name="deposit"),
|
# TODO: migrate to SPA
|
||||||
url(r"^log/$", log, name="log"),
|
url(r"^log/$", log, name="log"),
|
||||||
url(r"^log/all$", log, kwargs={"limit": None}, name="log-all"),
|
url(r"^log/all$", log, kwargs={"limit": None}, name="log-all"),
|
||||||
# Users
|
# Users
|
||||||
@@ -30,9 +37,9 @@ urlpatterns = [
|
|||||||
url(r"^inventory/$", inventory, name="inventory"),
|
url(r"^inventory/$", inventory, name="inventory"),
|
||||||
url(r"^inventory/add/$", inventory_add, name="inventory-add"),
|
url(r"^inventory/add/$", inventory_add, name="inventory-add"),
|
||||||
url(r"^report$", report, name="report"),
|
url(r"^report$", report, name="report"),
|
||||||
# FIXME: Serve the modern stack from here until rest of views are ported
|
path("legacy/", include(legacy_patterns)),
|
||||||
url(r"^modern/", serve, kwargs={"path": "modern/index.html"}, name="modern"),
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Stats
|
# Stats
|
||||||
urlpatterns += [
|
urlpatterns += [
|
||||||
url(r"^stats/$", stats_list, name="stats"),
|
url(r"^stats/$", stats_list, name="stats"),
|
||||||
|
|||||||
+2
-2
@@ -26,8 +26,8 @@
|
|||||||
<!-- Collect the nav links, forms, and other content for toggling -->
|
<!-- Collect the nav links, forms, and other content for toggling -->
|
||||||
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
|
||||||
<ul class="nav navbar-nav">
|
<ul class="nav navbar-nav">
|
||||||
<li class="{% block active_register %}{% endblock %}"><a href="/register"><i class="glyphicon glyphicon-home white"></i> Kjøp drikke</a></li>
|
<li class="{% block active_register %}{% endblock %}"><a href="{% url "home" %}"><i class="glyphicon glyphicon-home white"></i> Kjøp drikke</a></li>
|
||||||
<li class="{% block active_deposit %}{% endblock %}"><a href="/deposit">Sett inn penger</a></li>
|
<li class="{% block active_deposit %}{% endblock %}"><a href="{% url "deposit" %}">Sett inn penger</a></li>
|
||||||
<li class="{% block active_log %}{% endblock %}"><a href="/log"><i class="glyphicon glyphicon-list-alt"></i> Logg</a></li>
|
<li class="{% block active_log %}{% endblock %}"><a href="/log"><i class="glyphicon glyphicon-list-alt"></i> Logg</a></li>
|
||||||
<li class="{% block active_stats %}{% endblock %}"><a href="/stats"><i class="glyphicon glyphicon-stats"></i> Statistikk</a></li>
|
<li class="{% block active_stats %}{% endblock %}"><a href="/stats"><i class="glyphicon glyphicon-stats"></i> Statistikk</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<button type="submit" class="btn btn-lg btn-primary" name="submit_order">Sett inn</button>
|
<button type="submit" class="btn btn-lg btn-primary" name="submit_order">Sett inn</button>
|
||||||
<a href="{% url 'register' %}" class="btn btn-default">Avbryt</a>
|
<a href="{% url 'home' %}" class="btn btn-default">Avbryt</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
<label for="id_email">{{ form.email.label }}</label>{{ form.email}}{{ form.email.errors }}
|
<label for="id_email">{{ form.email.label }}</label>{{ form.email}}{{ form.email.errors }}
|
||||||
</div>
|
</div>
|
||||||
<input type="submit" value="Legg til" class="btn btn-primary btn-lg" />
|
<input type="submit" value="Legg til" class="btn btn-primary btn-lg" />
|
||||||
<a href="{% url 'register' %}" class="btn btn-default">Tilbake</a>
|
<a href="{% url 'home' %}" class="btn btn-default">Tilbake</a>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in new issue
Block a user