|
11 | 11 |
|
12 | 12 | {% block heading %}
|
13 | 13 | <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> |
14 | 16 | {% endblock %}
|
15 | 17 |
|
16 | 18 | {% block content %}
|
17 | 19 |
|
| 20 | +<div class="spacer"></div> |
18 | 21 |
|
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> |
36 | 30 | </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> |
40 | 33 | </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> |
43 | 51 | </div>
|
44 |
| - |
45 |
| - |
46 |
| - |
47 | 52 | </div>
|
48 | 53 |
|
49 | 54 | <div class="spacer"></div>
|
50 | 55 |
|
51 | 56 | <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> |
58 | 65 | </div>
|
59 | 66 |
|
60 |
| - |
61 | 67 | <div class="spacer"></div>
|
62 | 68 |
|
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> |
69 | 85 | </div>
|
| 86 | + </div> |
70 | 87 | </div>
|
71 | 88 |
|
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> |
94 | 103 | </div>
|
95 | 104 | </div>
|
96 | 105 | </div>
|
97 | 106 | </div>
|
98 | 107 |
|
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> |
119 | 122 | </div>
|
120 | 123 | </div>
|
121 | 124 | </div>
|
122 | 125 | </div>
|
123 | 126 |
|
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> |
144 | 141 | </div>
|
145 | 142 | </div>
|
146 | 143 | </div>
|
147 | 144 | </div>
|
148 | 145 |
|
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> |
169 | 160 | </div>
|
170 | 161 | </div>
|
171 | 162 | </div>
|
172 | 163 | </div>
|
173 | 164 |
|
174 |
| -<div class="spacer"></div> |
175 |
| - |
176 |
| - |
177 | 165 |
|
178 | 166 | {% endblock %}
|
0 commit comments