mirror of https://git.48k.eu/ogcp
src: Add support for adding folders
Add support to create a folder able to contain multiple computers. Add support for adding a folder able to contain roomsmaster
parent
58b5b2eca0
commit
695fcfe625
|
@ -105,6 +105,13 @@ class RepoForm(FlaskForm):
|
|||
ip = StringField(label=_l('IP'))
|
||||
submit = SubmitField(label=_l('Submit'))
|
||||
|
||||
class FolderForm(FlaskForm):
|
||||
server = HiddenField()
|
||||
room = HiddenField()
|
||||
center = HiddenField()
|
||||
name = StringField(label=_l('Name'))
|
||||
submit = SubmitField(label=_l('Submit'))
|
||||
|
||||
class ClientDetailsForm(FlaskForm):
|
||||
server = HiddenField()
|
||||
name = StringField(label=_l('Name'))
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
{% extends 'scopes.html' %}
|
||||
{% import "bootstrap/wtf.html" as wtf %}
|
||||
|
||||
{% set sidebar_state = 'disabled' %}
|
||||
{% set btn_back = true %}
|
||||
|
||||
{% block nav_folder %} active{% endblock %}
|
||||
{% block nav_folder_add %} active{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
<h1 class="m-5">{{_('Add folder')}}</h1>
|
||||
|
||||
{{ wtf.quick_form(form,
|
||||
method='post',
|
||||
button_map={'submit': 'primary'},
|
||||
extra_classes="mx-5") }}
|
||||
|
||||
{% endblock %}
|
||||
|
|
@ -56,6 +56,17 @@
|
|||
form="scopesForm" formaction="{{ url_for('action_center_delete') }}" formmethod="get">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="dropdown btn">
|
||||
<button class="btn btn-secondary btn-light dropdown-toggle {% block nav_folder %}{% endblock %}" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-expanded="false">
|
||||
{{ _('Folder') }}
|
||||
</button>
|
||||
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
|
||||
<input class="btn btn-light dropdown-item {% block nav_folder_add %}{% endblock %}" type="submit" value="{{ _('Add folder') }}"
|
||||
form="scopesForm" formaction="{{ url_for('action_folder_add') }}" formmethod="get">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
{% if btn_back %}
|
||||
<button class="btn btn-danger ml-3" type="button" id="backButton" onclick="history.back()">
|
||||
|
|
|
@ -13,7 +13,7 @@ from ogcp.forms.action_forms import (
|
|||
SessionForm, ImageRestoreForm, ImageCreateForm, SoftwareForm, BootModeForm,
|
||||
RoomForm, DeleteRoomForm, CenterForm, DeleteCenterForm, OgliveForm,
|
||||
GenericForm, SelectClientForm, ImageUpdateForm, ImportClientsForm,
|
||||
ServerForm, DeleteRepositoryForm, RepoForm
|
||||
ServerForm, DeleteRepositoryForm, RepoForm, FolderForm
|
||||
)
|
||||
from flask_login import (
|
||||
current_user, LoginManager,
|
||||
|
@ -990,6 +990,45 @@ def action_client_update():
|
|||
return render_template('actions/client_details.html', form=form,
|
||||
parent="scopes.html", scopes=scopes)
|
||||
|
||||
@app.route('/action/folder/add', methods=['GET'])
|
||||
@login_required
|
||||
def action_folder_add():
|
||||
form = FolderForm()
|
||||
params = request.args.to_dict()
|
||||
room = params.get('scope-room')
|
||||
center = params.get('scope-center')
|
||||
if room and center:
|
||||
flash(_('Please, select either a room or a center'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
if not room and not center:
|
||||
flash(_('Please, select a room or a center'), category='error')
|
||||
return redirect(url_for('scopes'))
|
||||
form.server.data = params['scope-server']
|
||||
form.room.data = room
|
||||
form.center.data = center
|
||||
form.submit.render_kw = {"formaction": url_for('action_folder_add_post')}
|
||||
scopes, _ = get_scopes()
|
||||
return render_template('actions/folder_add.html', form=form,
|
||||
parent="scopes.html", scopes=scopes)
|
||||
|
||||
@app.route('/action/folder/add', methods=['POST'])
|
||||
def action_folder_add_post():
|
||||
form = FolderForm(request.form)
|
||||
payload = {"name": form.name.data}
|
||||
if form.center.data:
|
||||
payload["center"] = int(form.center.data)
|
||||
if form.room.data:
|
||||
payload["room"] = int(form.room.data)
|
||||
|
||||
server = get_server_from_ip_port(form.server.data)
|
||||
r = server.post('/folder/add', payload)
|
||||
if r.status_code != requests.codes.ok:
|
||||
flash(_('ogServer: error adding folder'),
|
||||
category='error')
|
||||
else:
|
||||
flash(_('Folder added successfully'), category='info')
|
||||
return redirect(url_for("scopes"))
|
||||
|
||||
@app.route('/action/client/add', methods=['GET', 'POST'])
|
||||
@login_required
|
||||
def action_client_add():
|
||||
|
|
Loading…
Reference in New Issue