forked from mirrors/bookwyrm
Add and edit servers
This commit is contained in:
parent
ddab9af564
commit
8556474537
5 changed files with 68 additions and 55 deletions
|
@ -3,14 +3,56 @@
|
||||||
{% block title %}{% trans "Add server" %}{% endblock %}
|
{% block title %}{% trans "Add server" %}{% endblock %}
|
||||||
|
|
||||||
{% block header %}
|
{% block header %}
|
||||||
{% if form.server_name.value %}{{ form.server_name.value }}{% else %}{% trans "Add server" %}{% endif %}
|
{% if server %}{{ server.server_name }}{% else %}{% trans "Add server" %}{% endif %}
|
||||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to server list" %}</a>
|
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to server list" %}</a>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block panel %}
|
{% block panel %}
|
||||||
|
|
||||||
<form method="POST" action="{% url 'settings-edit-federated-server' %}">
|
<form method="POST" action="{% url 'settings-edit-federated-server' server.id %}">
|
||||||
{% include 'settings/server_form.html' %}
|
{% csrf_token %}
|
||||||
|
<div class="columns">
|
||||||
|
<div class="column is-half">
|
||||||
|
<div>
|
||||||
|
<label class="label" for="id_server_name">{% trans "Instance:" %}</label>
|
||||||
|
<input type="text" name="server_name" maxlength="255" class="input" required id="id_server_name" value="{{ form.server_name.value|default:'' }}" placeholder="domain.com">
|
||||||
|
{% for error in form.server_name.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="label" for="id_status">{% trans "Status:" %}</label>
|
||||||
|
<div class="select">
|
||||||
|
<select name="status" class="" id="id_status">
|
||||||
|
<option value="federated" {% if form.status.value == "federated" or not form.status.value %}selected=""{% endif %}>{% trans "Federated" %}</option>
|
||||||
|
<option value="blocked" {% if form.status.value == "blocked" %}selected{% endif %}>{% trans "Blocked" %}</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="column is-half">
|
||||||
|
<div>
|
||||||
|
<label class="label" for="id_application_type">{% trans "Software:" %}</label>
|
||||||
|
<input type="text" name="application_type" maxlength="255" class="input" id="id_application_type" value="{{ form.application_type.value|default:'' }}">
|
||||||
|
{% for error in form.application_type.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<label class="label" for="id_application_version">{% trans "Version:" %}</label>
|
||||||
|
<input type="text" name="application_version" maxlength="255" class="input" id="id_application_version" value="{{ form.application_version.value|default:'' }}">
|
||||||
|
{% for error in form.application_version.errors %}
|
||||||
|
<p class="help is-danger">{{ error | escape }}</p>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
<label class="label" for="id_notes">{% trans "Notes:" %}</label>
|
||||||
|
<textarea name="notes" cols="None" rows="None" class="textarea" id="id_notes">{{ form.notes.value|default:'' }}</textarea>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<button type="submit" class="button is-primary">{% trans "Save" %}</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
|
@ -11,6 +11,14 @@
|
||||||
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to server list" %}</a>
|
<a href="{% url 'settings-federation' %}" class="has-text-weight-normal help">{% trans "Back to server list" %}</a>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block edit-button %}
|
||||||
|
<a href="{% url 'settings-edit-federated-server' server.id %}">
|
||||||
|
<span class="icon icon-pencil" title="{% trans 'Edit server' %}">
|
||||||
|
<span class="is-sr-only">{% trans "Edit server" %}</span>
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block panel %}
|
{% block panel %}
|
||||||
<section class="block content">
|
<section class="block content">
|
||||||
<h2 class="title is-4">{% trans "Details" %}</h2>
|
<h2 class="title is-4">{% trans "Details" %}</h2>
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
{% load i18n %}
|
|
||||||
|
|
||||||
{% csrf_token %}
|
|
||||||
<div class="columns">
|
|
||||||
<div class="column is-half">
|
|
||||||
<div>
|
|
||||||
<label class="label" for="id_server_name">{% trans "Instance:" %}</label>
|
|
||||||
<input type="text" name="server_name" maxlength="255" class="input" required id="id_server_name" value="{{ form.server_name.value|default:'' }}" placeholder="domain.com">
|
|
||||||
{% for error in form.server_name.errors %}
|
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label class="label" for="id_status">{% trans "Status:" %}</label>
|
|
||||||
<div class="select">
|
|
||||||
<select name="status" class="" id="id_status">
|
|
||||||
<option value="federated" {% if form.status.value == "federated" or not form.status.value %}selected=""{% endif %}>{% trans "Federated" %}</option>
|
|
||||||
<option value="blocked" {% if form.status.value == "blocked" %}selected{% endif %}>{% trans "Blocked" %}</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="column is-half">
|
|
||||||
<div>
|
|
||||||
<label class="label" for="id_application_type">{% trans "Software:" %}</label>
|
|
||||||
<input type="text" name="application_type" maxlength="255" class="input" id="id_application_type" value="{{ form.application_type.value|default:'' }}">
|
|
||||||
{% for error in form.application_type.errors %}
|
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label class="label" for="id_application_version">{% trans "Version:" %}</label>
|
|
||||||
<input type="text" name="application_version" maxlength="255" class="input" id="id_application_version" value="{{ form.application_version.value|default:'' }}">
|
|
||||||
{% for error in form.application_version.errors %}
|
|
||||||
<p class="help is-danger">{{ error | escape }}</p>
|
|
||||||
{% endfor %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<p>
|
|
||||||
<label class="label" for="id_notes">{% trans "Notes:" %}</label>
|
|
||||||
<textarea name="notes" cols="None" rows="None" class="textarea" id="id_notes">
|
|
||||||
{{ form.notes.value|default:'' }}
|
|
||||||
</textarea>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<button type="submit" class="button is-primary">{% trans "Save" %}</button>
|
|
|
@ -73,6 +73,11 @@ urlpatterns = [
|
||||||
views.EditFederatedServer.as_view(),
|
views.EditFederatedServer.as_view(),
|
||||||
name="settings-edit-federated-server",
|
name="settings-edit-federated-server",
|
||||||
),
|
),
|
||||||
|
re_path(
|
||||||
|
r"^settings/federation/edit/(?P<server>\d+)?$",
|
||||||
|
views.EditFederatedServer.as_view(),
|
||||||
|
name="settings-edit-federated-server",
|
||||||
|
),
|
||||||
re_path(
|
re_path(
|
||||||
r"^settings/invites/?$", views.ManageInvites.as_view(), name="settings-invites"
|
r"^settings/invites/?$", views.ManageInvites.as_view(), name="settings-invites"
|
||||||
),
|
),
|
||||||
|
|
|
@ -44,16 +44,21 @@ class Federation(View):
|
||||||
class EditFederatedServer(View):
|
class EditFederatedServer(View):
|
||||||
""" manually add a server """
|
""" manually add a server """
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request, server=None):
|
||||||
""" add server form """
|
""" add server form """
|
||||||
data = {"form": forms.ServerForm()}
|
if server:
|
||||||
|
server = get_object_or_404(models.FederatedServer, id=server)
|
||||||
|
data = {"form": forms.ServerForm(instance=server), "server": server}
|
||||||
return TemplateResponse(request, "settings/edit_server.html", data)
|
return TemplateResponse(request, "settings/edit_server.html", data)
|
||||||
|
|
||||||
def post(self, request):
|
def post(self, request, server=None):
|
||||||
""" add a server from the admin panel """
|
""" add a server from the admin panel """
|
||||||
form = forms.ServerForm(request.POST)
|
if server:
|
||||||
|
server = get_object_or_404(models.FederatedServer, id=server)
|
||||||
|
|
||||||
|
form = forms.ServerForm(request.POST, instance=server)
|
||||||
if not form.is_valid():
|
if not form.is_valid():
|
||||||
data = {"form": form}
|
data = {"form": form, "server": server}
|
||||||
return TemplateResponse(request, "settings/edit_server.html", data)
|
return TemplateResponse(request, "settings/edit_server.html", data)
|
||||||
server = form.save()
|
server = form.save()
|
||||||
return redirect("settings-federated-server", server.id)
|
return redirect("settings-federated-server", server.id)
|
||||||
|
|
Loading…
Reference in a new issue