Skip to content

Commit 28347eb

Browse files
author
Chris Sig Dev
committed
Formatted the web application nicely
1 parent 6256ece commit 28347eb

File tree

2 files changed

+111
-126
lines changed

2 files changed

+111
-126
lines changed

site/app.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,8 @@
2828
app = Flask(__name__)
2929
app.secret_key = b'_5#y2L"sdb/fae\n\xec]/'
3030

31-
32-
3331
print(f'Started Sig-Config server with SIG_PATH="{SIG_PATH}".')
3432

35-
3633
app.config['UPLOAD_FOLDER'] = CONFIG_PATH
3734
@app.route('/', methods=['GET', 'POST'])
3835
def index():

site/templates/index.html

Lines changed: 111 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -11,168 +11,156 @@
1111

1212
{% block heading %}
1313
<h1 class="display-1">{{ hostname }}</h1>
14+
For full project details and installation/setup guide, visit the Signifier GitHub page:<p>
15+
<a href="https://github.com/MaxVRAM/Signifier" title="Signifier GitHub page">https://github.com/MaxVRAM/Signifier</a>
1416
{% endblock %}
1517

1618
{% block content %}
1719

20+
<div class="spacer"></div>
1821

19-
<div>
20-
Upload and apply local config file:
21-
<form action="" method=post enctype=multipart/form-data>
22-
<input class="form-control form-control" id="configUpload" type="file" name=file>
23-
<button class="btn btn-primary" type="button" data-bs-toggle="modal" data-bs-target="#uploadConfig">Upload</button>
24-
</div>
25-
26-
<!-- Modal -->
27-
<div class="modal fade" id="uploadConfig" tabindex="-1" aria-labelledby="uploadConfigLabel" aria-hidden="true">
28-
<div class="modal-dialog">
29-
<div class="modal-content">
30-
<div class="modal-header">
31-
<h5 class="modal-title" id="uploadConfigLabel">Confirm config upload</h5>
32-
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
33-
</div>
34-
<div class="modal-body">
35-
<p>You are about to upload a new config file to Signifier "{{ hostname }}". This may disrupt its activity shortly. Invalid JSON formatting can cause the Signifier to fail, which may require a hardware restart.</p>
22+
<div class="container">
23+
<h3>{{ hostname }} Config</h3>
24+
<div class="container">
25+
Upload and apply a new config file to <strong>{{ hostname }}</strong>:
26+
<form class="row g-3">
27+
<form action="" method=post enctype=multipart/form-data>
28+
<div class="col-auto">
29+
<input class="form-control form-control" id="configUpload" type="file" name=file>
3630
</div>
37-
<div class="modal-footer">
38-
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
39-
<input class="btn btn-primary" type="submit" value="Upload">
31+
<div class="col-auto">
32+
<button class="btn btn-primary" type="button" data-bs-toggle="modal" data-bs-target="#uploadConfig">Upload</button>
4033
</div>
41-
</div>
42-
</div>
34+
</form>
35+
</div>
36+
<p>
37+
<div class="container">
38+
Download IN-USE config file from <strong>{{ hostname }}</strong>:
39+
<p>
40+
<a class="btn btn-primary" href="/download/config.json" role="button">config.json</a>
41+
<a class="btn btn-primary" href="/download/values.json" role="button">values.json</a>
42+
<a class="btn btn-primary" href="/download/rules.json" role="button">rules.json</a>
43+
</div>
44+
<p>
45+
<div class="container">
46+
Download DEFAULT config file from <strong>{{ hostname }}</strong>:
47+
<p>
48+
<a class="btn btn-warning" href="/download_default/config.json" role="button">config.json</a>
49+
<a class="btn btn-warning" href="/download_default/values.json" role="button">values.json</a>
50+
<a class="btn btn-warning" href="/download_default/rules.json" role="button">rules.json</a>
4351
</div>
44-
45-
46-
4752
</div>
4853

4954
<div class="spacer"></div>
5055

5156
<div class="container">
52-
Download IN-USE config file from {{ HOSTNAME }}:
53-
<div class="row row-cols-3">
54-
<div class="col"><a class="btn btn-primary" href="/download/config.json" role="button">config.json</a></div>
55-
<div class="col"><a class="btn btn-primary" href="/download/values.json" role="button">values.json</a></div>
56-
<div class="col"><a class="btn btn-primary" href="/download/rules.json" role="button">rules.json</a></div>
57-
</div>
57+
<h3>{{ hostname }} Mangement</h3>
58+
<div class="container">
59+
<p>
60+
<button class="btn btn-info" type="button" data-bs-toggle="modal" data-bs-target="#updateSignifier">Update App</button>
61+
<button class="btn btn-success" type="button" data-bs-toggle="modal" data-bs-target="#restartSignifier">Restart App</button>
62+
<button class="btn btn-warning" type="button" data-bs-toggle="modal" data-bs-target="#rebootSignifier">Reboot</button>
63+
<button class="btn btn-danger" type="button" data-bs-toggle="modal" data-bs-target="#poweroffSignifier">Power Off</button>
64+
</div>
5865
</div>
5966

60-
6167
<div class="spacer"></div>
6268

63-
<div class="container">
64-
Download DEFAULT config file from {{ HOSTNAME }}:
65-
<div class="row row-cols-3">
66-
<div class="col"><a class="btn btn-warning" href="/download_default/config.json" role="button">config.json</a></div>
67-
<div class="col"><a class="btn btn-warning" href="/download_default/values.json" role="button">values.json</a></div>
68-
<div class="col"><a class="btn btn-warning" href="/download_default/rules.json" role="button">rules.json</a></div>
69+
70+
<!-- Modal -->
71+
<div class="modal fade" id="uploadConfig" tabindex="-1" aria-labelledby="uploadConfigLabel" aria-hidden="true">
72+
<div class="modal-dialog">
73+
<div class="modal-content">
74+
<div class="modal-header">
75+
<h5 class="modal-title" id="uploadConfigLabel">Confirm config upload</h5>
76+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
77+
</div>
78+
<div class="modal-body">
79+
<p>You are about to upload a new config file to "{{ hostname }}". This may disrupt its activity shortly. Invalid JSON formatting can cause the Signifier to fail, which may require a hardware restart.</p>
80+
</div>
81+
<div class="modal-footer">
82+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
83+
<input class="btn btn-primary" type="submit" value="Upload">
84+
</div>
6985
</div>
86+
</div>
7087
</div>
7188

72-
73-
<div class="spacer"></div>
74-
<div class="spacer"></div>
75-
76-
<div class="container">
77-
<button class="btn btn-success" type="button" data-bs-toggle="modal" data-bs-target="#updateSignifier">Update Signifier App</button>
78-
79-
<!-- Modal -->
80-
<div class="modal fade" id="updateSignifier" tabindex="-1" aria-labelledby="updateSignifierLabel" aria-hidden="true">
81-
<div class="modal-dialog">
82-
<div class="modal-content">
83-
<div class="modal-header">
84-
<h5 class="modal-title" id="updateSignifierLabel">Update Signifier App?</h5>
85-
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
86-
</div>
87-
<div class="modal-body">
88-
<p>You are about to update the Signifier application, Arduino, and reset all defaults for "{{ hostname }}"...</p>
89-
</div>
90-
<div class="modal-footer">
91-
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
92-
<a class="btn btn-danger" href="/update_signifier" role="button">Update</a></div>
93-
</div>
89+
<!-- Modal -->
90+
<div class="modal fade" id="updateSignifier" tabindex="-1" aria-labelledby="updateSignifierLabel" aria-hidden="true">
91+
<div class="modal-dialog">
92+
<div class="modal-content">
93+
<div class="modal-header">
94+
<h5 class="modal-title" id="updateSignifierLabel">Update {{ hostname }} App?</h5>
95+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
96+
</div>
97+
<div class="modal-body">
98+
<p>You are about to update the Signifier application, Arduino, and reset all defaults for "{{ hostname }}"...</p>
99+
</div>
100+
<div class="modal-footer">
101+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
102+
<a class="btn btn-danger" href="/update_signifier" role="button">Update</a></div>
94103
</div>
95104
</div>
96105
</div>
97106
</div>
98107

99-
<div class="spacer"></div>
100-
101-
<div class="container">
102-
<button class="btn btn-warning" type="button" data-bs-toggle="modal" data-bs-target="#restartSignifier">Restart Signifier App</button>
103-
104-
<!-- Modal -->
105-
<div class="modal fade" id="restartSignifier" tabindex="-1" aria-labelledby="restartSignifierLabel" aria-hidden="true">
106-
<div class="modal-dialog">
107-
<div class="modal-content">
108-
<div class="modal-header">
109-
<h5 class="modal-title" id="restartSignifierLabel">Restart Signifier App?</h5>
110-
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
111-
</div>
112-
<div class="modal-body">
113-
<p>You are about to restart the Signifier application "{{ hostname }}". Functionality should return within 30 seconds.</p>
114-
</div>
115-
<div class="modal-footer">
116-
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
117-
<a class="btn btn-danger" href="/restart_signifier" role="button">Restart</a></div>
118-
</div>
108+
<!-- Modal -->
109+
<div class="modal fade" id="restartSignifier" tabindex="-1" aria-labelledby="restartSignifierLabel" aria-hidden="true">
110+
<div class="modal-dialog">
111+
<div class="modal-content">
112+
<div class="modal-header">
113+
<h5 class="modal-title" id="restartSignifierLabel">Restart Signifier App?</h5>
114+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
115+
</div>
116+
<div class="modal-body">
117+
<p>You are about to restart the Signifier application "{{ hostname }}". Functionality should return within 30 seconds.</p>
118+
</div>
119+
<div class="modal-footer">
120+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
121+
<a class="btn btn-danger" href="/restart_signifier" role="button">Restart</a></div>
119122
</div>
120123
</div>
121124
</div>
122125
</div>
123126

124-
<div class="spacer"></div>
125-
126-
<div class="container">
127-
<button class="btn btn-danger" type="button" data-bs-toggle="modal" data-bs-target="#rebootSignifier">Reboot Signifier</button>
128-
129-
<!-- Modal -->
130-
<div class="modal fade" id="rebootSignifier" tabindex="-1" aria-labelledby="rebootSignifierLabel" aria-hidden="true">
131-
<div class="modal-dialog">
132-
<div class="modal-content">
133-
<div class="modal-header">
134-
<h5 class="modal-title" id="rebootSignifierLabel">Reboot Signifier?</h5>
135-
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
136-
</div>
137-
<div class="modal-body">
138-
<p>You are about to reboot the Rapsberry Pi "{{ hostname }}". Are you sure you want to continue?</p>
139-
</div>
140-
<div class="modal-footer">
141-
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
142-
<a class="btn btn-danger" href="/reboot_signifier" role="button">Reboot</a></div>
143-
</div>
127+
<!-- Modal -->
128+
<div class="modal fade" id="rebootSignifier" tabindex="-1" aria-labelledby="rebootSignifierLabel" aria-hidden="true">
129+
<div class="modal-dialog">
130+
<div class="modal-content">
131+
<div class="modal-header">
132+
<h5 class="modal-title" id="rebootSignifierLabel">Reboot Signifier?</h5>
133+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
134+
</div>
135+
<div class="modal-body">
136+
<p>You are about to reboot the Rapsberry Pi "{{ hostname }}". Are you sure you want to continue?</p>
137+
</div>
138+
<div class="modal-footer">
139+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
140+
<a class="btn btn-danger" href="/reboot_signifier" role="button">Reboot</a></div>
144141
</div>
145142
</div>
146143
</div>
147144
</div>
148145

149-
<div class="spacer"></div>
150-
151-
<div class="container">
152-
<button class="btn btn-danger" type="button" data-bs-toggle="modal" data-bs-target="#poweroffSignifier">Power Off Signifier</button>
153-
154-
<!-- Modal -->
155-
<div class="modal fade" id="poweroffSignifier" tabindex="-1" aria-labelledby="poweroffSignifierLabel" aria-hidden="true">
156-
<div class="modal-dialog">
157-
<div class="modal-content">
158-
<div class="modal-header">
159-
<h5 class="modal-title" id="poweroffSignifierLabel">Power Off Signifier?</h5>
160-
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
161-
</div>
162-
<div class="modal-body">
163-
<p>You are about to power off the Rapsberry Pi "{{ hostname }}". It will not be accessable unless you physically power-cycle the Signifier after you do this!</p>
164-
</div>
165-
<div class="modal-footer">
166-
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
167-
<a class="btn btn-danger" href="/poweroff_signifier" role="button">Power Off</a></div>
168-
</div>
146+
<!-- Modal -->
147+
<div class="modal fade" id="poweroffSignifier" tabindex="-1" aria-labelledby="poweroffSignifierLabel" aria-hidden="true">
148+
<div class="modal-dialog">
149+
<div class="modal-content">
150+
<div class="modal-header">
151+
<h5 class="modal-title" id="poweroffSignifierLabel">Power Off Signifier?</h5>
152+
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
153+
</div>
154+
<div class="modal-body">
155+
<p>You are about to power off the Rapsberry Pi "{{ hostname }}". It will not be accessable unless you physically power-cycle the Signifier after you do this!</p>
156+
</div>
157+
<div class="modal-footer">
158+
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancel</button>
159+
<a class="btn btn-danger" href="/poweroff_signifier" role="button">Power Off</a></div>
169160
</div>
170161
</div>
171162
</div>
172163
</div>
173164

174-
<div class="spacer"></div>
175-
176-
177165

178166
{% endblock %}

0 commit comments

Comments
 (0)