Updated URL Logic for admin package

This commit is contained in:
Patrick Jentsch
2019-11-15 11:45:04 +01:00
parent 74324ac0be
commit f22bff4ed0
13 changed files with 402 additions and 414 deletions

View File

@ -1,28 +0,0 @@
{% extends "full_width.html.j2" %}
{% block page_content %}
<div class="col s12">
<div class="card">
<div class="card-content">
<span class="card-title">User list</span>
<div id="users">
<div class="input-field">
<i class="material-icons prefix">search</i>
<input id="search-corpus" class="search" type="text"></input>
<label for="search-corpus">Search users</label>
</div>
{{ table }}
<ul class="pagination"></ul>
</div>
</div>
</div>
</div>
<script type="text/javascript">
var options = {
valueNames: ['username', 'email', 'role', 'confirmed', 'id'],
page: 10,
pagination: true
};
var userList = new List('users', options);
</script>
{% endblock %}

View File

@ -1,104 +0,0 @@
{% extends "limited_width.html.j2" %}
{% block page_content %}
<div class="col s12 m6">
<div class="card large">
<div class="card-content">
<span class="card-title">User information</span>
<ul>
<li>Username: {{selected_user.username}}</li>
<li>Email: {{selected_user.email}}</li>
<li>ID: {{selected_user.id}}</li>
<li>Registration date: {{registration_date}}</li>
<li>Confirmed status: {{selected_user.confirmed}}</li>
<li>Role ID: {{selected_user.role_id}}</li>
<li>Permissions as Int: {{selected_user.role.permissions}}</li>
<li>Role name: {{selected_user.role.name}}</li>
</ul>
<div class="card-action">
<a href="{{url_for('admin.edit_profile_admin', user_id=selected_user.id)}}" class="waves-effect waves-light btn"><i class="material-icons left">edit</i>Edit user</a>
<a href="#modal-confirm-delete" class="waves-effect waves-light btn red modal-trigger"><i class="material-icons left">delete</i>Delete User</a>
<!-- Modal Strucutre -->
<div id="modal-confirm-delete" class="modal">
<div class="modal-content">
<h4>Confirm deletion</h4>
<p>Do you really want to delete the current selected user ({{selected_user.username}})?
All associated jobs and job files will be permanently deleted.</p>
</div>
<div class="modal-footer">
<a href="{{url_for('admin.admin_delete_user', user_id=selected_user.id)}}" class="modal-close waves-effect waves-green btn red"><i class="material-icons left">delete</i>Delete User</a>
<a href="#!" class="modal-close waves-effect waves-green btn cancel">Cancel</a>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
socket.emit('subscribe_foreign_user_ressources', {{ selected_user.id }});
</script>
<div class="col s12 m6">
<div id="job-foreign-list">
<div class="card">
<div class="card-content">
<span class="card-title">User Jobs</span>
<div class="row">
<div class="col s12">
<div class="input-field">
<i class="material-icons prefix">search</i>
<input id="search-job" class="search" type="text"></input>
<label for="search-job">Search job</label>
</div>
</div>
<div class="col s12">
<ul class="pagination"></ul>
</div>
</div>
</div>
</div>
<div class="collection list"></div>
</div>
</div>
<script>
var jobList = new JobList("job-foreign-list", foreignJobsSubscribers, {
item: '<div><span class="title"></span><span class="description"></span></div>',
page: 4,
pagination: true,
valueNames: ["description", "title", {data: ["id"]}]
});
jobList.on("filterComplete", List.updatePagination);
jobList.on("searchComplete", List.updatePagination);
</script>
<div class="col s12 m6">
<div id="corpus-foreign-list">
<div class="card">
<div class="card-content">
<span class="card-title">User Corpora</span>
<div class="row">
<div class="col s12">
<div class="input-field">
<i class="material-icons prefix">search</i>
<input id="search-job" class="search" type="text"></input>
<label for="search-job">Search corpus</label>
</div>
</div>
<div class="col s12">
<ul class="pagination"></ul>
</div>
</div>
</div>
</div>
<div class="collection list"></div>
</div>
</div>
<script>
var corpusList = new CorpusList("corpus-foreign-list", foreignCorporaSubscribers, {
item: '<div><span class="title"></span><span class="description"></span></div>',
page: 4,
pagination: true,
valueNames: ["description", "title", {data: ["id"]}]
});
corpusList.on("filterComplete", List.updatePagination);
corpusList.on("searchComplete", List.updatePagination);
</script>
{% endblock %}

View File

@ -0,0 +1,26 @@
{% extends "full_width.html.j2" %}
{% block page_content %}
<div class="col s12">
<div id="user-list">
<div class="card">
<div class="card-content">
<span class="card-title">User list</span>
<div class="input-field">
<i class="material-icons prefix">search</i>
<input id="search-user" class="search" type="text"></input>
<label for="search-user">Search user</label>
</div>
{{ table }}
<ul class="pagination"></ul>
</div>
</div>
</div>
</div>
<script>
var options = {page: 10, pagination: true,
valueNames: ['username', 'email', 'role', 'confirmed', 'id']};
var userList = new List('user-list', options);
</script>
{% endblock %}

View File

@ -1,6 +1,12 @@
{% extends "limited_width.html.j2" %}
{% block page_content %}
<div class="col s12 m4">
<h3 id="title">{{ user.username }}</h3>
<p id="description">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,</p>
<a class="waves-effect waves-light btn" href="{{ url_for('admin.user', user_id=user.id) }}"><i class="material-icons left">arrow_back</i>Back to user administration</a>
</div>
<div class="col s12 m8">
<div class="card">
<form method="POST">
@ -11,7 +17,7 @@
{{ form.username() }}
{{ form.username.label }}
{% for error in form.username.errors %}
<span class="helper-text red-text">{{ error }}</span>
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
<div class="input-field">
@ -19,7 +25,7 @@
{{ form.email() }}
{{ form.email.label }}
{% for error in form.email.errors %}
<span class="helper-text red-text">{{ error }}</span>
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
<div class="input-field">
@ -27,7 +33,7 @@
{{ form.role() }}
{{ form.role.label }}
{% for error in form.role.errors %}
<span class="helper-text red-text">{{ error }}</span>
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
<div class="switch">
@ -36,22 +42,21 @@
Confirmed status:
Off
{% if form.confirmed.data == True %}
<input type="checkbox" id="{{form.confirmed.name}}" name="{{form.confirmed.name}}" checked="checked">
<input type="checkbox" id="{{ form.confirmed.name }}" name="{{ form.confirmed.name }}" checked="checked">
{% else %}
<input type="checkbox" id="{{form.confirmed.name}}" name="{{form.confirmed.name}}">
<input type="checkbox" id="{{ form.confirmed.name }}" name="{{ form.confirmed.name }}">
{% endif %}
<span class="lever"></span>
On
</label>
{% for error in form.confirmed.errors %}
<span class="helper-text red-text">{{ error }}</span>
<span class="helper-text red-text">{{ error }}</span>
{% endfor %}
</div>
</div>
<div class="card-action right-align">
{{ form.submit(class='btn') }}
<button class="btn waves-effect waves-light" id="submit" name="submit" type="submit">Submit<i class="material-icons right">send</i></button>
</div>
</div>
</form>
</div>
</div>

View File

@ -0,0 +1,115 @@
{% extends "limited_width.html.j2" %}
{% block page_content %}
<div class="col s12 m4">
<h3 id="title">{{ user.username }}</h3>
<p id="description">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,</p>
<a class="waves-effect waves-light btn" href="{{ url_for('admin.board') }}"><i class="material-icons left">arrow_back</i>Back to admin board</a>
</div>
<div class="col s12 m8">
<div class="card">
<div class="card-content">
<span class="card-title">User information</span>
<ul>
<li>Username: {{ user.username }}</li>
<li>Email: {{ user.email }}</li>
<li>ID: {{ user.id }}</li>
<li>Registration date: {{ user.registration_date.strftime('%m/%d/%Y, %H:%M:%S %p') }}</li>
<li>Confirmed status: {{ user.confirmed }}</li>
<li>Role ID: {{ user.role_id }}</li>
<li>Permissions as Int: {{ user.role.permissions }}</li>
<li>Role name: {{ user.role.name }}</li>
</ul>
</div>
<div class="card-action right-align">
<a href="{{ url_for('admin.edit_user', user_id=user.id) }}" class="waves-effect waves-light btn"><i class="material-icons left">edit</i>Edit user</a>
<a data-target="delete-user-modal" class="waves-effect waves-light btn red modal-trigger"><i class="material-icons left">delete</i>Delete user</a>
</div>
</div>
</div>
<div class="col s12"></div>
<div class="col s12 m6">
<div id="corpus-list">
<div class="card">
<div class="card-content">
<span class="card-title">Corpora</span>
<div class="row">
<div class="col s12">
<div class="input-field">
<i class="material-icons prefix">search</i>
<input id="search-corpus" class="search" type="text"></input>
<label for="search-corpus">Search corpus</label>
</div>
</div>
<div class="col s12">
<ul class="pagination"></ul>
</div>
</div>
</div>
</div>
<div class="collection list"></div>
</div>
</div>
<div class="col s12 m6">
<div id="job-list">
<div class="card">
<div class="card-content">
<span class="card-title">Jobs</span>
<div class="row">
<div class="col s12">
<div class="input-field">
<i class="material-icons prefix">search</i>
<input id="search-job" class="search" type="text"></input>
<label for="search-job">Search job</label>
</div>
</div>
<div class="col s12">
<ul class="pagination"></ul>
</div>
</div>
</div>
</div>
<div class="collection list"></div>
</div>
</div>
<!-- Modals -->
<div id="delete-user-modal" class="modal">
<div class="modal-content">
<h4>Confirm user deletion</h4>
<p>Do you really want to delete the user {{ user.username }}? All associated data will be permanently deleted!</p>
</div>
<div class="modal-footer">
<a href="#!" class="modal-close waves-effect waves-green btn cancel">Cancel</a>
<a href="{{ url_for('admin.delete_user', user_id=user.id) }}" class="modal-close waves-effect waves-green btn red">Confirm<i class="material-icons right">send</i></a>
</div>
</div>
<script>
socket.emit('subscribe_foreign_user_ressources', {{ user.id }});
var corpusList = new CorpusList("corpus-list", foreignCorporaSubscribers, {
item: '<div><span class="title"></span><span class="description"></span></div>',
page: 4,
pagination: true,
valueNames: ["description", "title", {data: ["id"]}]
});
corpusList.on("filterComplete", List.updatePagination);
corpusList.on("searchComplete", List.updatePagination);
var jobList = new JobList("job-list", foreignJobsSubscribers, {
item: '<div><span class="title"></span><span class="description"></span></div>',
page: 4,
pagination: true,
valueNames: ["description", "title", {data: ["id"]}]
});
jobList.on("filterComplete", List.updatePagination);
jobList.on("searchComplete", List.updatePagination);
</script>
{% endblock %}