add settings templates

This commit is contained in:
glyph 2021-11-15 17:29:25 +02:00
parent 8c91853eea
commit 53cbe0f41a
9 changed files with 478 additions and 0 deletions

View File

@ -0,0 +1,14 @@
{%- extends "nav" -%}
{%- block card %}
<!-- SETTINGS MENU -->
<div class="card center">
<div class="card-container">
<!-- BUTTONS -->
<div id="settingsButtons">
<a id="network" class="button button-primary center" href="/settings/network" title="Network Settings">Network</a>
<a id="scuttlebutt" class="button button-primary center" href="/settings/scuttlebutt" title="Scuttlebutt Settings">Scuttlebutt</a>
<a id="admin" class="button button-primary center" href="/settings/admin" title="Administrator Settings">Administration</a>
</div>
</div>
</div>
{%- endblock card -%}

View File

@ -0,0 +1,75 @@
{%- extends "nav" -%}
{%- block card %}
<!-- CONFIGURE DNS FORM -->
<div class="card center">
<div class="form-container">
{% if enable_dyndns %}
<!-- DYNDNS STATUS INDICATOR -->
<div id="dyndns-status-indicator" class="stack capsule{% if is_dyndns_online %} success-border{% else %} warning-border{% endif %}">
<div class="stack">
{% if is_dyndns_online %}
<label class="label-small font-near-black">Dynamic DNS is currently online.</label>
{% else %}
<label class="label-small font-near-black">Dynamic DNS is enabled but may be offline.</label>
{% endif %}
</div>
</div>
{% endif %}
<form id="configureDNS" action="/settings/network/dns" method="post">
<div class="input-wrapper">
<!-- input for externaldomain -->
<label id="external_domain" class="label-small input-label font-near-black">
<label class="label-small input-label font-gray" for="external_domain" style="padding-top: 0.25rem;">External Domain (optional)</label>
<input id="external_domain" class="form-input" style="margin-bottom: 0;"
name="external_domain" type="text" title="external domain" value="{{ external_domain }}"></label>
</div>
<div class="input-wrapper">
<div>
<!-- checkbox for dynds flag -->
<label class="label-small input-label font-gray"> Enable Dynamic DNS </label>
<input
style="margin-left: 0px;"
id="enable_dyndns" name="enable_dyndns" title="Activate dynds" type="checkbox" {% if enable_dyndns %}checked{% endif %}>
</div>
</div>
<div class="input-wrapper">
<!-- input for dynds -->
<label id="cut" class="label-small input-label font-near-black">
<label class="label-small input-label font-gray" for="cut" style="padding-top: 0.25rem;">Dynamic DNS Domain</label>
<input id="dyndns_domain" class="alert-input" name="dynamic_domain" placeholder="" type="text" title="dyndns_domain" value="{{ dyndns_subdomain }}">.dyn.peachcloud.org</label>
</div>
</div>
<div id="buttonDiv">
<input id="configureDNSButton" class="button button-primary center" title="Add" type="submit" value="Save">
</div>
</form>
<!-- FLASH MESSAGE -->
<!-- check for flash message and display accordingly -->
{% if flash_msg and flash_name == "success" %}
<!-- display success message -->
<div class="capsule center-text flash-message font-success">{{ flash_msg }}.</div>
{%- elif flash_msg and flash_name == "info" %}
<!-- display info message -->
<div class="capsule center-text flash-message font-info">{{ flash_msg }}.</div>
{%- elif flash_msg and flash_name == "error" %}
<!-- display error message -->
<div class="capsule center-text flash-message font-failure">{{ flash_msg }}.</div>
{%- endif -%}
<!-- share ux information with the user if JS is disabled -->
<noscript>
<div class="capsule flash-message info-border">
<p class="center-text">This website may be temporarily unresponsive while settings are being saved.</p>
</div>
</noscript>
</div>
</div>
<script type="text/javascript" src="/js/configure_dns.js"></script>
{%- endblock card -%}

View File

@ -0,0 +1,23 @@
{%- extends "nav" -%}
{%- block card %}
<!-- NETWORK ADD CREDENTIALS FORM -->
<div class="card center">
<div class="card-container">
<form id="wifiCreds" action="/network/wifi/add" method="post">
<!-- input for network ssid -->
<input id="ssid" name="ssid" class="center input" type="text" placeholder="SSID" title="Network name (SSID) for WiFi access point" value="{%- if selected -%}{{ selected }}{%- endif -%}" autofocus>
<!-- input for network password -->
<input id="pass" name="pass" class="center input" type="password" placeholder="Password" title="Password for WiFi access point">
<div id="buttonDiv">
<input id="addWifi" class="button button-primary center" title="Add" type="submit" value="Add">
<a class="button button-secondary center" href="/settings/network" title="Cancel">Cancel</a>
</div>
</form>
<!-- FLASH MESSAGE -->
{% include "snippets/flash_message" %}
<!-- NO SCRIPT FOR WHEN JS IS DISABLED -->
{% include "snippets/noscript" %}
</div>
</div>
<script type="text/javascript" src="/js/network_add.js"></script>
{%- endblock card -%}

View File

@ -0,0 +1,164 @@
{%- extends "nav" -%}
{%- block card %}
<!-- if ap is up, show ap card, else show wlan card -->
{%- if ap_state == "up" %}
<!-- NETWORK CARD -->
<div class="card center">
<!-- NETWORK INFO BOX -->
<div class="two-grid capsule success-border" title="PeachCloud network mode and status">
<!-- NETWORK STATUS -->
<!-- left column -->
<!-- network mode icon with label -->
<div class="grid-column-1">
<img id="netModeIcon" class="center icon icon-active" src="/icons/router.svg" alt="WiFi router">
<label id="netModeLabel" for="netModeIcon" class="center label-small font-gray" title="Access Point Online">ONLINE</label>
</div>
<!-- right column -->
<!-- network mode, ssid & ip with labels -->
<div class="grid-column-2">
<label class="label-small font-gray" for="netMode" title="Network Mode">MODE</label>
<p id="netMode" class="card-text" title="Network Mode">Access Point</p>
<label class="label-small font-gray" for="netSsid" title="Access Point SSID">SSID</label>
<p id="netSsid" class="card-text" title="SSID">peach</p>
<label class="label-small font-gray" for="netIp" title="Access Point IP Address">IP</label>
<p id="netIp" class="card-text" title="IP">{{ ap_ip }}</p>
</div>
</div>
<!-- BUTTONS -->
<div id="buttons">
<a class="button button-primary center" href="/settings/network/wifi/add" title="Add WiFi Network">Add WiFi Network</a>
<a id="connectWifi" class="button button-primary center" href="/settings/network/wifi/activate" title="Enable WiFi">Enable WiFi</a>
<a id="listWifi" class="button button-primary center" href="/settings/network/wifi" title="List WiFi Networks">List WiFi Networks</a>
<a id="viewUsage" class="button button-primary center" href="/settings/network/wifi/usage" title="View Data Usage">View Data Usage</a>
</div>
<!-- FLASH MESSAGE -->
{% include "snippets/flash_message" %}
<!-- CARD GRID -->
<div class="card-container">
<div class="three-grid">
<div class="stack">
<img id="devices" class="icon icon-medium" title="Connected devices" src="/icons/devices.svg" alt="Digital devices">
<div class="flex-grid" style="padding-top: 0.5rem;">
<label class="label-medium" for="devices" style="padding-right: 3px;" title="Number of connected devices"></label>
</div>
<label class="label-small font-gray">DEVICES</label>
</div>
<div class="stack">
<img id="dataDownload" class="icon icon-medium" title="Download" src="/icons/down-arrow.svg" alt="Download">
<div class="flex-grid" style="padding-top: 0.5rem;">
{%- if ap_traffic -%}
<label class="label-medium" for="dataDownload" style="padding-right: 3px;" title="Data download total in {{ ap_traffic.rx_unit }}">{{ ap_traffic.received }}</label>
<label class="label-small font-near-black">{{ ap_traffic.rx_unit }}</label>
{%- else -%}
<label class="label-medium" for="dataDownload" style="padding-right: 3px;" title="Data download total"></label>
<label class="label-small font-near-black"></label>
{%- endif -%}
</div>
<label class="label-small font-gray">DOWNLOAD</label>
</div>
<div class="stack">
<img id="dataUpload" class="icon icon-medium" title="Upload" src="/icons/up-arrow.svg" alt="Upload">
<div class="flex-grid" style="padding-top: 0.5rem;">
{%- if ap_traffic -%}
<label class="label-medium" for="dataUpload" style="padding-right: 3px;" title="Data upload total in {{ ap_traffic.tx_unit }}">{{ ap_traffic.transmitted }}</label>
<label class="label-small font-near-black">{{ ap_traffic.tx_unit }}</label>
{%- else -%}
<label class="label-medium" for="dataUpload" style="padding-right: 3px;" title="Data upload total"></label>
<label class="label-small font-near-black"></label>
{%- endif -%}
</div>
<label class="label-small font-gray">UPLOAD</label>
</div>
</div>
</div>
</div>
{%- else %}
<!-- NETWORK CARD -->
<div class="card center">
<!-- NETWORK INFO BOX -->
{%- if wlan_state == "up" %}
<div id="netInfoBox" class="two-grid capsule success-border" title="PeachCloud network mode and status">
<!-- NETWORK STATUS -->
<!-- left column -->
<!-- network mode icon with label -->
<div class="grid-column-1">
<img id="netModeIcon" class="center icon icon-active" src="/icons/wifi.svg" alt="WiFi online">
<label id="netModeLabel" for="netModeIcon" class="center label-small font-gray" title="WiFi Client Status">ONLINE</label>
{%- else %}
<div id="netInfoBox" class="two-grid capsule warning-border" title="PeachCloud network mode and status">
<div class="grid-column-1">
<img id="netModeIcon" class="center icon icon-inactive" src="/icons/wifi.svg" alt="WiFi offline">
<label id="netModeLabel" for="netModeIcon" class="center label-small font-gray" title="WiFi Client Status">OFFLINE</label>
{%- endif %}
</div>
<div class="grid-column-2">
<!-- right column -->
<!-- network mode, ssid & ip with labels -->
<label class="label-small font-gray" for="netMode" title="Network Mode">MODE</label>
<p id="netMode" class="card-text" title="Network Mode">WiFi Client</p>
<label class="label-small font-gray" for="netSsid" title="WiFi SSID">SSID</label>
<p id="netSsid" class="card-text" title="SSID">{{ wlan_ssid }}</p>
<label class="label-small font-gray" for="netIp" title="WiFi Client IP Address">IP</label>
<p id="netIp" class="card-text" title="IP">{{ wlan_ip }}</p>
</div>
</div>
<!-- BUTTONS -->
<div id="buttons">
<a class="button button-primary center" href="/settings/network/wifi/add" title="Add WiFi Network">Add WiFi Network</a>
<a id="deployAccessPoint" class="button button-primary center" href="/settings/network/ap/activate" title="Deploy Access Point">Deploy Access Point</a>
<a id="listWifi" class="button button-primary center" href="/settings/network/wifi" title="List WiFi Networks">List WiFi Networks</a>
<a id="viewUsage" class="button button-primary center" href="/settings/network/wifi/usage" title="View Data Usage">View Data Usage</a>
<a id="configureDNS" class="button button-primary center" href="/settings/network/dns" title="Configure DNS">Configure DNS</a>
<a id="changePassword" class="button button-primary center" href="/settings/admin/change_password" title="Change Password">Change Password</a>
<a id="configureAdmin" class="button button-primary center" href="/settings/admin/configure_admin" title="Configure Admin">Configure Admin</a>
</div>
<!-- FLASH MESSAGE -->
{% include "snippets/flash_message" %}
<div id="gridDiv" class="card-container">
<!-- CARD GRID -->
<!-- row of icons representing network statistics -->
<div class="three-grid">
<div class="stack">
<img id="netSignal" class="icon icon-medium" alt="Signal" title="WiFi Signal (%)" src="/icons/low-signal.svg">
<div class="flex-grid" style="padding-top: 0.5rem;">
<label class="label-medium" for="netSignal" style="padding-right: 3px;" title="Signal strength of WiFi connection (%)">{% if wlan_rssi %}{{ wlan_rssi }}{% else %}0{% endif %}%</label>
</div>
<label class="label-small font-gray">SIGNAL</label>
</div>
<div class="stack">
<img id="dataDownload" class="icon icon-medium" alt="Download" title="WiFi download total" src="/icons/down-arrow.svg">
<div class="flex-grid" style="padding-top: 0.5rem;">
{%- if wlan_traffic %}
<!-- display wlan traffic data -->
<label class="label-medium" for="dataDownload" style="padding-right: 3px;" title="Data download total in {{ wlan_traffic.rx_unit }}">{{ wlan_traffic.received }}</label>
<label class="label-small font-near-black">{{ wlan_traffic.rx_unit }}</label>
{%- else %}
<!-- no wlan traffic data to display -->
<label class="label-medium" for="dataDownload" style="padding-right: 3px;" title="Data download total">0</label>
<label class="label-small font-near-black">MB</label>
{%- endif %}
</div>
<label class="label-small font-gray">DOWNLOAD</label>
</div>
<div class="stack">
<img id="dataUpload" class="icon icon-medium" alt="Upload" title="WiFi upload total" src="/icons/up-arrow.svg">
<div class="flex-grid" style="padding-top: 0.5rem;">
{%- if wlan_traffic %}
<!-- display wlan traffic data -->
<label class="label-medium" for="dataUpload" style="padding-right: 3px;" title="Data upload total in {{ wlan_traffic.tx_unit }}">{{ wlan_traffic.transmitted }}</label>
<label class="label-small font-near-black">{{ wlan_traffic.tx_unit }}</label>
{%- else %}
<!-- no wlan traffic data to display -->
<label class="label-medium" for="dataUpload" style="padding-right: 3px;" title="Data upload total">0</label>
<label class="label-small font-near-black">MB</label>
{%- endif %}
</div>
<label class="label-small font-gray">UPLOAD</label>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="/js/network_card.js"></script>
{%- endif -%}
{%- endblock card -%}

View File

@ -0,0 +1,76 @@
{%- extends "nav" -%}
{%- block card -%}
{%- if wlan_networks -%}
{%- for ssid, ap in wlan_networks -%}
{# select only the access point we are interested in #}
{%- if ssid == selected %}
<!-- NETWORK CARD -->
<div class="card center">
<!-- NETWORK INFO BOX -->
<div class="two-grid capsule{% if ssid == wlan_ssid %} success-border{% endif %}" title="PeachCloud network mode and status">
<!-- left column -->
<!-- NETWORK STATUS ICON -->
<div class="grid-column-1">
<img id="wifiIcon" class="center icon" src="/icons/wifi.svg" alt="WiFi icon">
<label class="center label-small font-gray" for="wifiIcon" title="Access Point Status">{% if ssid == wlan_ssid %}CONNECTED{% elif ap.state == "Available" %}AVAILABLE{% else %}NOT IN RANGE{% endif %}</label>
</div>
<!-- right column -->
<!-- NETWORK DETAILED INFO -->
<div class="grid-column-2">
<label class="label-small font-gray" for="netSsid" title="WiFi network SSID">SSID</label>
<p id="netSsid" class="card-text" title="SSID">{{ ssid }}</p>
<label class="label-small font-gray" for="netSec" title="Security protocol">SECURITY</label>
<p id="netSec" class="card-text" title="Security protocol in use by {{ ssid }}">{% if ap.detail %}{% if ap.detail.protocol != "" %}{{ ap.detail.protocol }}{% else %}None{% endif %}{% else %}Unknown{% endif %}</p>
<label class="label-small font-gray" for="netSig" title="Signal Strength">SIGNAL</label>
<p id="netSig" class="card-text" title="Signal strength of WiFi access point">{% if ap.signal %}{{ ap.signal }}%{% else %}Unknown{% endif %}</p>
</div>
</div>
<!-- BUTTONS -->
<div class="card-container" style="padding-top: 0;">
<div id="buttonDiv">
{%- if wlan_ssid == selected -%}
<form id="wifiDisconnect" action="/settings/network/wifi/disconnect" method="post">
<!-- hidden element: allows ssid to be sent in request -->
<input id="disconnectSsid" name="ssid" type="text" value="{{ ssid }}" style="display: none;">
<input id="disconnectWifi" class="button button-warning center" title="Disconnect from Network" type="submit" value="Disconnect">
</form>
{%- endif -%}
{%- if saved_aps -%}
{# Loop through the list of AP's with saved credentials #}
{%- for ap in saved_aps -%}
{# If the selected access point appears in the list, #}
{# display the Modify and Forget buttons. #}
{%- if ap.ssid == selected -%}
{# Set 'in_list' to true to allow correct Add button display #}
{% set_global in_list = true %}
{%- if wlan_ssid != selected and ap.state == "Available" -%}
<form id="wifiConnect" action="/settings/network/wifi/connect" method="post">
<!-- hidden element: allows ssid to be sent in request -->
<input id="connectSsid" name="ssid" type="text" value="{{ ap.ssid }}" style="display: none;">
<input id="connectWifi" class="button button-primary center" title="Connect to Network" type="submit" value="Connect">
</form>
{%- endif -%}
<a class="button button-primary center" href="/settings/network/wifi/modify?ssid={{ ssid }}">Modify</a>
<form id="wifiForget" action="/settings/network/wifi/forget" method="post">
<!-- hidden element: allows ssid to be sent in request -->
<input id="forgetSsid" name="ssid" type="text" value="{{ ap.ssid }}" style="display: none;">
<input id="forgetWifi" class="button button-warning center" title="Forget Network" type="submit" value="Forget">
</form>
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{%- if in_list == false -%}
{# Display the Add button if AP creds not already in saved networks list #}
<a class="button button-primary center" href="/settings/network/wifi/add?ssid={{ ssid }}">Add</a>
{%- endif -%}
<a class="button button-secondary center" href="/settings/network/wifi" title="Cancel">Cancel</a>
</div>
<!-- FLASH MESSAGE -->
{% include "snippets/flash_message" %}
</div>
</div>
<script type="text/javascript" src="/js/network_detail.js"></script>
{%- endif -%}
{%- endfor -%}
{%- endif -%}
{%- endblock card -%}

View File

@ -0,0 +1,38 @@
{%- extends "nav" -%}
{%- block card %}
<div class="card center">
<div class="center list-container">
<ul class="list">
{%- if ap_state == "up" %}
<li class="list-item light-bg warning-border">Enable WiFi client mode to view saved and available networks.</li>
{%- elif wlan_networks %}
{%- for ssid, state in wlan_networks %}
<li>
{%- if ssid == wlan_ssid %}
<a class="list-item link primary-bg" href="/settings/network/wifi?ssid={{ wlan_ssid }}">
<img id="netStatus" class="icon icon-active icon-medium list-icon" src="/icons/wifi.svg" alt="WiFi online">
<p class="list-text">{{ wlan_ssid }}</p>
<label class="label-small list-label font-gray" for="netStatus" title="Status">Connected</label>
</a>
{%- elif state == "Available" %}
<a class="list-item link light-bg" href="/settings/network/wifi?ssid={{ ssid }}">
<img id="netStatus" class="icon icon-inactive icon-medium list-icon" src="/icons/wifi.svg" alt="WiFi offline">
<p class="list-text">{{ ssid }}</p>
<label class="label-small list-label font-gray" for="netStatus" title="Status">{{ state }}</label>
</a>
{%- else %}
<a class="list-item link" href="/settings/network/wifi?ssid={{ ssid }}">
<img id="netStatus" class="icon icon-inactive icon-medium list-icon" src="/icons/wifi.svg" alt="WiFi offline">
<p class="list-text">{{ ssid }}</p>
<label class="label-small list-label font-gray" for="netStatus" title="Status">{{ state }}</label>
</a>
{%- endif %}
</li>
{%- endfor %}
{% else -%}
<li class="list-item light-bg">No saved or available networks found.</li>
{% endif -%}
</ul>
</div>
</div>
{%- endblock card -%}

View File

@ -0,0 +1,21 @@
{%- extends "nav" -%}
{%- block card %}
<!-- NETWORK MODIFY AP PASSWORD FORM -->
<div class="card center">
<div class="card-container">
<form id="wifiModify" action="/settings/network/wifi/modify" method="post">
<!-- input for network ssid -->
<input id="ssid" name="ssid" class="center input" type="text" placeholder="SSID" title="Network name (SSID) for WiFi access point" value="{% if selected %}{{ selected }}{% endif %}" autofocus>
<!-- input for network password -->
<input id="pass" name="pass" class="center input" type="password" placeholder="Password" title="Password for WiFi access point">
<div id="buttonDiv">
<input id="savePassword" class="button button-primary center" title="Save" type="submit" value="Save">
<a class="button button-secondary center" href="/settings/network" title="Cancel">Cancel</a>
</div>
</form>
<!-- FLASH MESSAGE -->
{% include "snippets/flash_message" %}
</div>
</div>
<script type="text/javascript" src="/js/network_modify.js"></script>
{%- endblock card -%}

View File

@ -0,0 +1,47 @@
{%- extends "nav" -%}
{%- block card -%}
<!-- NETWORK DATA ALERTS VIEW -->
<form id="wifiAlerts" action="/settings/network/wifi/usage" class="card center" method="post">
<div class="stack capsule" style="margin-left: 2rem; margin-right: 2rem;">
<div class="flex-grid">
<label id="dataTotal" class="label-large" title="Data download total in MB">{{ data_total.total / 1024 / 1024 | round }}</label>
<label class="label-small font-near-black">MB</label>
</div>
<label class="center-text label-small font-gray">USAGE TOTAL</label>
</div>
<div class="card-container container">
<div>
<img id="warnIcon" class="icon{% if threshold.warn_flag == false %} icon-inactive{% endif %}" alt="Warning" title="Warning threshold" src="/icons/alert.svg">
</div>
<div>
<!-- input for warning threshold -->
<label id="warn" class="label-small font-near-black"><input id="warnInput" class="alert-input" name="warn" placeholder="0" type="text" title="Warning threshold value" value="{{ threshold.warn }}">MB</label>
<label class="label-small font-gray" for="warn" style="padding-top: 0.25rem;">WARNING THRESHOLD</label>
</div>
<div>
<!-- checkbox for warning threshold flag -->
<input id="warnCheck" name="warn_flag" title="Activate warning" type="checkbox" {% if threshold.warn_flag %}checked{% endif %}>
</div>
<div>
<img id="cutIcon" class="icon{% if threshold.cut_flag == false %} icon-inactive{% endif %}" alt="Cutoff" title="Cutoff threshold" src="/icons/scissor.svg">
</div>
<div>
<!-- input for cutoff threshold -->
<label id="cut" class="label-small font-near-black"><input id="cutInput" class="alert-input" name="cut" placeholder="0" type="text" title="Critical threshold value" value="{{ threshold.cut }}">MB</label>
<label class="label-small font-gray" for="cut" style="padding-top: 0.25rem;">CUTOFF THRESHOLD</label>
</div>
<div>
<!-- checkbox for cutoff threshold flag -->
<input id="cutCheck" name="cut_flag" title="Activate cutoff" type="checkbox" {% if threshold.cut_flag %}checked{% endif %}>
</div>
</div>
<div id="buttonDiv" class="button-div">
<input id="updateAlerts" class="button button-primary center" title="Update" type="submit" value="Update">
<a id="resetTotal" class="button button-warning center" href="/settings/network/wifi/usage/reset" title="Reset stored usage total to zero">Reset</a>
<a class="button button-secondary center" href="/settings/network" title="Cancel">Cancel</a>
</div>
<!-- FLASH MESSAGE -->
{% include "snippets/flash_message" %}
</form>
<script type="text/javascript" src="/js/network_usage.js"></script>
{%- endblock card %}

View File

@ -0,0 +1,20 @@
{%- extends "nav" -%}
{%- block card %}
<!-- SCUTTLEBUTT SETTINGS MENU -->
<div class="card center">
<div class="card-container">
<!-- BUTTONS -->
<div id="settingsButtons">
<a id="networkKey" class="button button-primary center" href="/settings/scuttlebutt/network_key" title="Set Network Key">Set Network Key</a>
<a id="replicationHops" class="button button-primary center" href="/settings/scuttlebutt/hops" title="Set Replication Hops">Set Replication Hops</a>
<a id="removeFeeds" class="button button-primary center" href="/settings/scuttlebutt/remove_feeds" title="Remove Blocked Feeds">Remove Blocked Feeds</a>
<a id="setDirectory" class="button button-primary center" href="/settings/scuttlebutt/set_directory" title="Set Database Directory">Set Database Directory</a>
<a id="checkFilesystem" class="button button-primary center" href="/settings/scuttlebutt/check_fs" title="Check Filesystem">Check Filesystem</a>
<a id="repairFilesystem" class="button button-primary center" href="/settings/scuttlebutt/repair" title="Repair Filesystem">Repair Filesystem</a>
<a id="disable" class="button button-primary center" href="/settings/scuttlebutt/disable" title="Disable Sbot">Disable Sbot</a>
<a id="enable" class="button button-primary center" href="/settings/scuttlebutt/enable" title="Enable Sbot">Enable Sbot</a>
<a id="restart" class="button button-primary center" href="/settings/scuttlebutt/restart" title="Restart Sbot">Restart Sbot</a>
</div>
</div>
</div>
{%- endblock card -%}