Add wifi sharing as a card, new settings for lan url, root and ssh

This commit is contained in:
Ana Custura 2026-02-19 16:42:57 +00:00
parent 947b4ac59a
commit ed1b03a609
52 changed files with 9067 additions and 94 deletions

View file

@ -1,33 +1,47 @@
{% extends "base.html" %}
{% block navbar_logout %}
<div class="navbar-item"><button class="button is-warning"><a class="navbar-item" href="{{ url_for('logout') }}">Logout</a></button></div>
{% endblock %}
{% block content %}
<h1 class="title is-large butter-title">{{ _('Application Settings') }}</h1>
{% import "bulma_wtf.html" as wtf %}
<form action="" method="post" enctype="multipart/form-data" novalidate >
{{ form.hidden_tag() }}
<p> {{ form.submit( class="button is-link") }}
<div class="control block">
{{ form.submit( class="button is-link") }}
{% if config['SETTINGS_CHANGED'] %}
{{ form.apply_changes(class="button is-warning") }}
{% endif %}
</p>
</div>
<div class="field">
{{ wtf.form_input_field(form.ssid) }}
{{ wtf.form_input_field(form.ssid, form.ssid.errors) }}
<p class="help"> This is the name of the advertised Wi-Fi network. Current SSID: {{ get_setting('ssid') }}</p>
</div>
<div class="password">
{{ wtf.form_input_field(form.wifi_password) }}
{{ wtf.form_input_field(form.wifi_password, form.wifi_password.errors) }}
<p class="help"> This is the secret key needed to connect to the Wi-Fi network. By default, this is not set and everyone can join.
Current password: {{ get_setting('wifi_password') or 'Not set' }}</p>
</div>
<div class="field">
{{ wtf.form_input_field(form.butterbox_name) }}
<p class="help">This is the name shown in the UI, and used to access the box locally by adding .local or .lan in your browser.
Current name: {{ get_setting('butterbox_name') }}, accessed at {{ get_setting('butterbox_name') }}.local.</p>
{{ wtf.form_input_field(form.butterbox_name, form.butterbox_name.errors) }}
<p class="help">This is the name shown in the UI.
Current name: {{ get_setting('butterbox_name') }}, accessed at {{ get_setting('butterbox_name') }}.local.</p>
</div>
<div class="field">
{{ wtf.form_input_field(form.butterbox_hostname, form.butterbox_hostname.errors) }}
<p class="help">This is used to access the box locally by adding .local or .lan in your browser.
Current hostname: {{ get_setting('butterbox_hostname') }}.local.</p>
<div class="checkbox">
{{ wtf.form_bool_field(form.enable_access_point) }}
<p class="help">Whether this box will advertise a WiFi network.</p>
<p class="help">Whether this box will advertise a Wi-Fi network.</p>
</div>
<div class="checkbox">
{{ wtf.form_bool_field(form.enable_wifi_sharing) }}
<p class="help">Whether a share button for the Wi-Fi network is available.</p>
</div>
<div class="checkbox">
{{ wtf.form_bool_field(form.enable_map_viewer) }}
@ -50,22 +64,46 @@
<p class="help">Whether app store services are enabled.</p>
</div>
<div class="field">
{{ wtf.form_input_field(form.admin_password) }}
<p class="help">Password for accessing this interface.</p>
{{ wtf.form_password_field(form.admin_password, form.admin_password.errors) }}
<p class="help">Password for accessing this browser interface.</p>
</div>
<div class="field block">
<label class="label">{{ form.root_account_settings.label }} </label>
{% for subfield in form.root_account_settings %}
<label class="radio">
{% if get_setting('root_account_settings') == subfield._value() %}
<input id='{{subfield.id}}' type='radio' name='{{subfield.name}}' value='{{subfield._value()}}' checked/>
{% else %}
<input id='{{subfield.id}}' type='radio' name='{{subfield.name}}' value='{{subfield._value()}}'/>
{% endif %}
{{ subfield.label }}
</label>
{% endfor %}
{{ wtf.field_errors(form.root_account_settings.errors)}}
</div>
<div class="control block">
<label class="label">{{ form.ssh_access_settings.label }} </label>
{% for subfield in form.ssh_access_settings %}
<label class="radio">
{% if get_setting('ssh_access_settings') == subfield._value() %}
<input id='{{subfield.id}}' type='radio' name='{{subfield.name}}' value='{{subfield._value()}}' checked/>
{% else %}
<input id='{{subfield.id}}' type='radio' name='{{subfield.name}}' value='{{subfield._value()}}'/>
{% endif %}
{{ subfield.label }}
</label>
{% endfor %}
{{ wtf.field_errors(form.ssh_access_settings.errors) }}
</div>
<div class="field">
<label class="label">{{ form.butterbox_logo.label }} </label>
<div class="control">{{ form.butterbox_logo(class='label', style="width: 280px") }}</div>
{% for error in form.butterbox_logo.errors %}
<p class="help is-danger">{{ error }}</p>
{% endfor %}
<p class="help">This is the logo shown in the UI. Current logo: <br>
<img src="{{ get_setting('butterbox_logo') }}" style="height: 50px"> </p>
<div class="control block">{{ form.butterbox_logo(class='label', style="width: 280px") }}</div>
{{ wtf.field_errors(form.butterbox_logo.errors) }}
<div class="block"><p class="help">This is the logo shown in the UI. Current logo:</p></div>
<img src="{{ get_setting('butterbox_logo') }}" style="height: 50px">
</div>
</form>
<a href="{{ url_for('logout') }}">Logout</a>
{% endblock %}