1 {% extends
"base.html" %}
9 <link rel=
"stylesheet" href=
"/static/bower_components/select2/dist/css/select2.min.css">
10 <link rel=
"stylesheet" href=
"/static/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css">
12 {% block title_header_big %}
15 {% block left_sidebar %}
16 {% include 'osm/osm_project_left_sidebar.html' %}
20 {% block breadcrumb_body %}
22 <li><a href=
"#">Users
</a></li>
25 {% block content_body %}
27 {% include 'modal/user_details.html' %}
28 {% include 'modal/user_create.html' %}
29 {% include 'modal/user_edit.html' %}
33 <div class=
"col-md-12">
36 <div class=
"box-header with-border">
37 <h3 class=
"box-title">Users
</h3>
38 <div class=
"box-tools">
39 <button type=
"button" class=
"btn btn-default" data-container=
"body"
40 onclick=
"javascript:openModalCreateUser({'projects_list_url': '{% url "projects:projects_list
" %}'})"
41 data-toggle=
"tooltip" data-placement=
"top" title=
"New User">
43 <i class=
"fa fa-plus"></i> Create User
48 <div class=
"box-body">
49 <table id=
"users_table" class=
"table table-bordered table-striped">
70 {% block resource_block %}
72 <script src=
"/static/bower_components/datatables.net/js/jquery.dataTables.min.js"></script>
73 <script src=
"/static/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js"></script>
74 <script src=
"/static/bower_components/select2/dist/js/select2.js"></script>
75 <script src=
"/static/src/userhandler/user_list.js"></script>
77 $(document).ready(function () {
78 var table = $('#users_table').DataTable({
81 "url":
"/admin/users/list",
82 "dataSrc": function (json) {
87 console.log(
"no auth");
88 moveToLogin(window.location.pathname);
91 "error": function (hxr, error, thrown) {
100 "render": function (data, type, row) {
101 return row[
"username"];
106 "render": function (data, type, row) {
107 return row['projects'];
112 "render": function (data, type, row) {
118 "render": function (data, type, row) {
119 return moment.unix(row[
"_admin"]['modified']).format('YYYY-MM-DD hh:mm:ss a');
124 "render": function (data, type, row) {
125 return moment.unix(row[
"_admin"]['created']).format('YYYY-MM-DD hh:mm:ss a');
130 "render": function (data, type, row) {
131 return '
<div class=
"btn-group">' +
132 '
<button type=
"button" class=
"btn btn-default dropdown-toggle"' +
133 '
data-toggle=
"dropdown" aria-expanded=
"false">Actions ' +
134 '
<span class=
"fa fa-caret-down"></span></button> ' +
135 '
<ul class=
"dropdown-menu">' +
136 '
<li> <a href=
"#" onclick=
"javascript:openModalEditUser({user_id:\'' + row['_id'] + '\', usernarme:\'' + row['username'] + '\', projects: \'' + row['projects'] + '\'})">' +
137 '
<i class=
"fa fa-edit"></i> Edit
</a></li>' +
138 '
<li> <a href=
"#" onclick=
"javascript:deleteUser(\'' + row['_id'] + '\', \'' + row['username'] + '\')"' +
139 '
style=
"color:red"><i class=
"fa fa-trash"></i> Delete
</a></li> </ul></div>';
146 var select2_groups = $('#projects_edit').select2({
147 placeholder: 'Select Projects',
150 url: '/projects/list',
152 processResults: function (data) {
154 if (data['projects']) {
155 for (d in data['projects']) {
156 var project = data['projects'][d];
158 "id": project['_id'],
159 "text": project['name']
172 var select2_single = $('#default_project_edit').select2({
173 placeholder: 'Select Default Project',
176 url: '/projects/list',
178 processResults: function (data) {
180 if (data['projects']) {
181 for (d in data['projects']) {
182 var project = data['projects'][d];
185 text: project['name']
197 setInterval(function () {
201 $(
"#formEditUser").submit(function (event) {
202 event.preventDefault(); //prevent default action
203 var post_url = $(this).attr(
"action"); //get form action url
204 var request_method = $(this).attr(
"method");
205 var form_data = new FormData(this); //Encode form elements for submission
209 type: request_method,
212 "Accept": 'application/json'
216 }).done(function (response, textStatus, jqXHR) {
217 $('#modal_edit_user').modal('hide');
221 message:
"User modified successfully."
224 }).fail(function (result) {
225 var data = result.responseJSON;
226 var title =
"Error " + (data.code ? data.code : 'unknown');
227 var message = data.detail ? data.detail : 'No detail available.';
241 {% include
"footer.html" %}