Add tiled homepage; rename Business→Businesses; link footer copyright

- Home page (home.html) at / shows the sidebar sections as tiles; reachable by
  clicking the 'SimpleX Manager' brand in the sidebar (was redirecting to /users).
- Rename the category to 'Businesses' (route /businesses, tab/nav/_category),
  keeping the per-account bot_type 'business'. Fix profile back-link label.
- Footer: link 'Bournemouth Technology Ltd' -> bournemouthtechnology.co.uk and
  'SimpleX Network' -> simplex.chat.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Jon
2026-06-05 17:45:28 +01:00
parent 2194aa0f82
commit 270766b99b
5 changed files with 88 additions and 17 deletions

View File

@@ -264,12 +264,12 @@
<button class="mobile-menu-btn" onclick="toggleSidebar()" aria-label="Menu"></button>
<div class="app">
<aside class="sidebar" id="sidebar">
<a class="nav-brand" href="/users">
<a class="nav-brand" href="/">
<span class="brand-icon"></span><span class="brand-text">SimpleX Manager</span>
</a>
<nav class="side-nav">
<a href="/users" {% if nav_active == 'users' %}class="active"{% endif %}><span class="ico">👤</span><span class="lbl">Users</span></a>
<a href="/business" {% if nav_active == 'business' %}class="active"{% endif %}><span class="ico">💼</span><span class="lbl">Business</span></a>
<a href="/businesses" {% if nav_active == 'businesses' %}class="active"{% endif %}><span class="ico">💼</span><span class="lbl">Businesses</span></a>
<a href="/bots" {% if nav_active == 'bots' %}class="active"{% endif %}><span class="ico">🤖</span><span class="lbl">Bots</span></a>
<a href="https://simplex.chat/file/" target="_blank" rel="noopener"><span class="ico">📁</span><span class="lbl">File upload</span></a>
<a href="/notifications" class="nav-sep {% if nav_active == 'notifications' %}active{% endif %}"><span class="ico">🔔</span><span class="lbl">Notifications</span><span class="notif-badge" id="notif-badge" style="display:none;"></span></a>
@@ -297,9 +297,9 @@
{% block content %}{% endblock %}
</div>
<footer class="site-footer">
© Bournemouth Technology Ltd
© <a href="https://bournemouthtechnology.co.uk" target="_blank" rel="noopener">Bournemouth Technology Ltd</a>
<span class="sep">·</span>
built on © SimpleX Network
built on © <a href="https://simplex.chat" target="_blank" rel="noopener">SimpleX Network</a>
<span class="sep">·</span>
<a href="https://simplex.chat/downloads/" target="_blank" rel="noopener">Get SimpleX App</a>
</footer>

View File

@@ -0,0 +1,69 @@
{% extends "base.html" %}
{% block title %}Home — SimpleX Manager{% endblock %}
{% block head %}
<style>
.home-head { margin-bottom: 28px; }
.home-head h1 { margin-bottom: 6px; }
.home-head p { color: var(--muted); font-size: 14px; }
.tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; }
.tile {
display: flex; flex-direction: column; gap: 8px;
background: var(--card); border: 1px solid var(--border); border-radius: 12px;
padding: 22px; text-decoration: none; color: var(--text);
box-shadow: var(--shadow);
transition: border-color 0.15s, transform 0.05s;
}
.tile:hover { border-color: var(--accent); }
.tile:active { transform: translateY(1px); }
.tile .t-ico { font-size: 28px; line-height: 1; }
.tile .t-title { font-size: 16px; font-weight: 700; }
.tile .t-desc { font-size: 13px; color: var(--muted); }
</style>
{% endblock %}
{% block content %}
<div class="home-head">
<h1>SimpleX Manager</h1>
<p>Manage your SimpleX accounts, business inboxes and bots — pick a section to get started.</p>
</div>
<div class="tiles">
<a class="tile" href="/users">
<span class="t-ico">👤</span>
<span class="t-title">Users</span>
<span class="t-desc">Personal SimpleX accounts — contacts, groups and channels.</span>
</a>
<a class="tile" href="/businesses">
<span class="t-ico">💼</span>
<span class="t-title">Businesses</span>
<span class="t-desc">Business inboxes — each customer gets their own group chat.</span>
</a>
<a class="tile" href="/bots">
<span class="t-ico">🤖</span>
<span class="t-title">Bots</span>
<span class="t-desc">Echo, broadcast, support, directory and dead-man's-switch bots.</span>
</a>
<a class="tile" href="/network">
<span class="t-ico">📡</span>
<span class="t-title">Network</span>
<span class="t-desc">SimpleX servers and connection status.</span>
</a>
<a class="tile" href="/notifications">
<span class="t-ico">🔔</span>
<span class="t-title">Notifications</span>
<span class="t-desc">Recent messages received across all profiles.</span>
</a>
<a class="tile" href="/settings">
<span class="t-ico">⚙️</span>
<span class="t-title">Settings</span>
<span class="t-desc">Theme and manager preferences.</span>
</a>
<a class="tile" href="https://simplex.chat/file/" target="_blank" rel="noopener">
<span class="t-ico">📁</span>
<span class="t-title">File upload</span>
<span class="t-desc">Share files over SimpleX (opens simplex.chat).</span>
</a>
</div>
{% endblock %}

View File

@@ -23,7 +23,7 @@
{% endblock %}
{% block content %}
{% set new_label = 'User' if tab == 'users' else ('Business' if tab == 'business' else 'Bot') %}
{% set new_label = 'User' if tab == 'users' else ('Business' if tab == 'businesses' else 'Bot') %}
<div class="flex-between" style="margin-bottom: 24px;">
<h1 style="margin:0;">{{ tab | title }}</h1>
<button class="btn btn-primary" onclick="openCreate()">
@@ -31,7 +31,7 @@
</button>
</div>
{% if tab == 'business' %}
{% if tab == 'businesses' %}
<div class="card bot-types-card" style="margin-bottom:24px;">
<h2 style="font-size:15px;margin-bottom:8px;">Business accounts</h2>
<p class="muted" style="font-size:13px;">
@@ -99,7 +99,7 @@
{% if tab == 'users' %}
<strong>No users yet</strong>
<p>Create a SimpleX user account to manage contacts and channels.</p>
{% elif tab == 'business' %}
{% elif tab == 'businesses' %}
<strong>No business accounts yet</strong>
<p>Create a business account; each customer who connects gets their own group chat.</p>
{% else %}
@@ -115,7 +115,7 @@
<form id="create-form">
<div class="field">
<label>Name</label>
<input type="text" name="name" placeholder="{{ 'Alice' if tab == 'users' else ('Acme Inc' if tab == 'business' else 'My Bot') }}" required>
<input type="text" name="name" placeholder="{{ 'Alice' if tab == 'users' else ('Acme Inc' if tab == 'businesses' else 'My Bot') }}" required>
</div>
<div class="field">
<label>Bio / Description <span class="muted" style="font-weight:400;">(optional)</span></label>
@@ -128,7 +128,7 @@
<input type="file" name="avatar_file" accept="image/*" onchange="onAvatarChange(this)" style="flex:1;">
</div>
</div>
{% if tab == 'business' %}
{% if tab == 'businesses' %}
<div class="field">
<label>Welcome Message <span class="muted" style="font-weight:400;">(optional auto-reply to new customers)</span></label>
<input type="text" name="welcome_message" placeholder="Thanks for reaching out! How can we help?">

View File

@@ -29,7 +29,7 @@
{% block content %}
<div class="flex-between" style="margin-bottom: 20px;">
<div class="flex gap-8">
<a href="{{ back }}" class="muted" style="text-decoration:none;">← {{ 'Users' if back == '/users' else 'Bots' }}</a>
<a href="{{ back }}" class="muted" style="text-decoration:none;">← {{ 'Users' if back == '/users' else ('Businesses' if back == '/businesses' else 'Bots') }}</a>
<span class="muted">/</span>
<strong>{{ profile.name }}</strong>
<span class="tag {% if profile.bot_type == 'user' %}tag-user{% endif %}">{{ profile.bot_type }}</span>