views: Add edit-folder

Add view to modify folder information such as name
master 1.1.3-15
Javier Hernandez 2024-02-05 13:11:25 +01:00 committed by OpenGnSys Support Team
parent 5c3f700937
commit d953700576
3 changed files with 57 additions and 0 deletions

View File

@ -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_update %} active{% endblock %}
{% block content %}
<h1 class="m-5">{{_('Update folder')}}</h1>
{{ wtf.quick_form(form,
method='post',
button_map={'submit': 'primary'},
extra_classes="mx-5") }}
{% endblock %}

View File

@ -64,6 +64,8 @@
<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">
<input class="btn btn-light dropdown-item {% block nav_folder_update %}{% endblock %}" type="submit" value="{{ _('Update folder') }}"
form="scopesForm" formaction="{{ url_for('action_folder_update') }}" formmethod="get">
<input class="btn btn-light dropdown-item {% block nav_folder_delete %}{% endblock %}" type="submit" value="{{ _('Delete folder') }}"
form="scopesForm" formaction="{{ url_for('action_folder_delete') }}" formmethod="get">
</div>

View File

@ -1229,6 +1229,38 @@ def action_folder_delete():
return render_template('actions/folder_delete.html', form=form,
parent="scopes.html", scopes=scopes, ancestors=ancestors, children=children)
@app.route('/action/folder/update', methods=['GET','POST'])
def action_folder_update():
form = FolderForm(request.form)
if request.method == 'POST':
payload = {'name': form.name.data,
'id': int(form.folder_id.data)}
server = get_server_from_ip_port(form.server.data)
r = server.post('/folder/update', payload)
if r.status_code != requests.codes.ok:
flash(_('ogServer: error updating folder'),
category='error')
else:
flash(_('Folder updated successfully'), category='info')
return redirect(url_for("scopes"))
else:
params = request.args.to_dict()
folder_id = int(params.get('folder'))
if not folder_id:
flash(_('Please, select a folder to modify'), category='error')
return redirect(url_for('scopes'))
scopes, clients = get_scopes()
folder = find_element_scope(folder_id, 'folder', scopes)
form.server.data = params['scope-server']
form.name.data = folder['name']
form.folder_id.data = folder_id
form.submit.render_kw = {"formaction": url_for('action_folder_update')}
return render_template('actions/folder_update.html', form=form,
parent="scopes.html", scopes=scopes)
@app.route('/action/folder/add', methods=['GET'])
@login_required
def action_folder_add():
@ -1884,6 +1916,10 @@ def get_scope_context_rec(elem_id, elem_type, scopes, ancestors):
else:
return ([], None)
def find_element_scope(elem_id, elem_type, scopes):
unused, elem = get_scope_context_rec(elem_id, elem_type, scopes['scope'], [])
return elem
def get_scope_context(elem_id, elem_type, scopes):
ancestors, elem = get_scope_context_rec(elem_id, elem_type, scopes['scope'], [])
children = {}