Skip to main content

max / makenotwork

5.6 KB · 129 lines History Blame Raw
1 {% extends "base.html" %}
2
3 {% block title %}{{ project.title }} - Project Dashboard{% endblock %}
4 {% block body_attrs %} class="padded-page dashboard-page dashboard-project-page"{% endblock %}
5
6 {% block head %}
7 {% endblock %}
8
9 {% block content %}
10 {% include "partials/site_header.html" %}
11
12 {% if let Some(su) = session_user %}{% if su.is_sandbox %}
13 <div class="banner banner--info" role="status">
14 Sandbox mode — your data will be deleted when the session expires.
15 <a href="/join">Create an account</a> to keep your work.
16 </div>
17 {% endif %}{% endif %}
18
19 <div class="container">
20 <header>
21 <div class="breadcrumb">
22 <a href="/dashboard#tab-projects">Dashboard</a> / <a href="/dashboard#tab-projects">Projects</a> / {{ project.title }}
23 </div>
24 <h1 class="page-title">{{ project.title }}<span class="dot">.</span></h1>
25 <div class="project-meta">
26 <a href="/p/{{ project.slug }}" class="muted">makenot.work/p/{{ project.slug }}</a>
27 &nbsp;&middot;&nbsp;
28 <a href="/p/{{ project.slug }}" target="_blank" class="muted">View live &rarr;</a>
29 </div>
30 </header>
31
32 <div class="tabs" role="tablist" aria-label="Project sections">
33 <button class="tab is-selected"
34 role="tab"
35 aria-selected="true"
36 aria-controls="tab-content"
37 id="tab-overview"
38 title="Stats and quick actions"
39 hx-get="/dashboard/project/{{ project.slug }}/tabs/overview"
40 hx-target="#tab-content"
41 hx-swap="innerHTML"
42 hx-indicator="#tab-spinner"
43 onclick="setActiveTab(this)">Overview</button>
44 <button class="tab"
45 role="tab"
46 aria-selected="false"
47 aria-controls="tab-content"
48 id="tab-content-btn"
49 title="Items, files, and blog posts"
50 hx-get="/dashboard/project/{{ project.slug }}/tabs/content"
51 hx-target="#tab-content"
52 hx-swap="innerHTML"
53 hx-indicator="#tab-spinner"
54 onclick="setActiveTab(this)">Content</button>
55 <button class="tab"
56 role="tab"
57 aria-selected="false"
58 aria-controls="tab-content"
59 id="tab-analytics"
60 title="Sales, revenue, and views over time"
61 hx-get="/dashboard/project/{{ project.slug }}/tabs/analytics"
62 hx-target="#tab-content"
63 hx-swap="innerHTML"
64 hx-indicator="#tab-spinner"
65 onclick="setActiveTab(this)">Analytics</button>
66 <button class="tab"
67 role="tab"
68 aria-selected="false"
69 aria-controls="tab-content"
70 id="tab-monetization"
71 title="Tiers, promo codes, and revenue splits"
72 hx-get="/dashboard/project/{{ project.slug }}/tabs/monetization"
73 hx-target="#tab-content"
74 hx-swap="innerHTML"
75 hx-indicator="#tab-spinner"
76 onclick="setActiveTab(this)">Monetization</button>
77 {% if git_enabled %}
78 <button class="tab"
79 role="tab"
80 aria-selected="false"
81 aria-controls="tab-content"
82 id="tab-code"
83 title="Linked Git repositories and source browser"
84 hx-get="/dashboard/project/{{ project.slug }}/tabs/code"
85 hx-target="#tab-content"
86 hx-swap="innerHTML"
87 hx-indicator="#tab-spinner"
88 onclick="setActiveTab(this)">Code</button>
89 {% endif %}
90 {% if synckit_enabled %}
91 <button class="tab"
92 role="tab"
93 aria-selected="false"
94 aria-controls="tab-content"
95 id="tab-synckit"
96 title="End-to-end encrypted sync for your apps"
97 hx-get="/dashboard/project/{{ project.slug }}/tabs/synckit"
98 hx-target="#tab-content"
99 hx-swap="innerHTML"
100 hx-indicator="#tab-spinner"
101 onclick="setActiveTab(this)">Cloud Sync</button>
102 {% endif %}
103 <button class="tab"
104 role="tab"
105 aria-selected="false"
106 aria-controls="tab-content"
107 id="tab-settings"
108 title="Visibility, URL name, deletion, and project options"
109 hx-get="/dashboard/project/{{ project.slug }}/tabs/settings"
110 hx-target="#tab-content"
111 hx-swap="innerHTML"
112 hx-indicator="#tab-spinner"
113 onclick="setActiveTab(this)">Settings</button>
114 <span id="tab-spinner" class="htmx-indicator tab-spinner-indicator" aria-live="polite"> Loading...</span>
115 </div>
116
117 <!-- Tab Content Container - initially loaded with Overview -->
118 <div id="tab-content" class="tab-content active"
119 role="tabpanel"
120 aria-labelledby="tab-overview"
121 hx-get="/dashboard/project/{{ project.slug }}/tabs/overview"
122 hx-trigger="load"
123 hx-swap="innerHTML">
124 <!-- Content loaded via HTMX -->
125 </div>
126 </div>
127 {% endblock %}
128
129