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>
78 $(document).ready(function () {
79 table = $('#users_table').DataTable({
82 "url":
"/admin/users/list",
83 "dataSrc": function (json) {
88 console.log(
"no auth");
89 moveToLogin(window.location.pathname);
92 "error": function (hxr, error, thrown) {
101 "render": function (data, type, row) {
102 return row[
"username"];
107 "render": function (data, type, row) {
108 return row['projects'];
113 "render": function (data, type, row) {
119 "render": function (data, type, row) {
120 return moment.unix(row[
"_admin"]['modified']).format('YYYY-MM-DD hh:mm:ss a');
125 "render": function (data, type, row) {
126 return moment.unix(row[
"_admin"]['created']).format('YYYY-MM-DD hh:mm:ss a');
131 "render": function (data, type, row) {
132 return '
<div class=
"btn-group">' +
133 '
<button type=
"button" class=
"btn btn-default dropdown-toggle"' +
134 '
data-toggle=
"dropdown" aria-expanded=
"false">Actions ' +
135 '
<span class=
"fa fa-caret-down"></span></button> ' +
136 '
<ul class=
"dropdown-menu">' +
137 '
<li> <a href=
"#" onclick=
"javascript:openModalEditUser({user_id:\'' + row['_id'] + '\', usernarme:\'' + row['username'] + '\', projects: \'' + row['projects'] + '\'})">' +
138 '
<i class=
"fa fa-edit"></i> Edit
</a></li>' +
139 '
<li> <a href=
"#" onclick=
"javascript:deleteUser(\'' + row['_id'] + '\', \'' + row['username'] + '\')"' +
140 '
style=
"color:red"><i class=
"fa fa-trash"></i> Delete
</a></li> </ul></div>';
148 var select2_groups = $('#projects_edit').select2({
149 placeholder: 'Select Projects',
152 url: '/projects/list',
154 processResults: function (data) {
156 if (data['projects']) {
157 for (d in data['projects']) {
158 var project = data['projects'][d];
160 "id": project['_id'],
161 "text": project['name']
174 var select2_single = $('#default_project_edit').select2({
175 placeholder: 'Select Default Project',
178 url: '/projects/list',
180 processResults: function (data) {
182 if (data['projects']) {
183 for (d in data['projects']) {
184 var project = data['projects'][d];
187 text: project['name']
199 setInterval(function () {
203 $(
"#formCreateUser").submit(function (event) {
204 event.preventDefault(); //prevent default action
205 var post_url = $(this).attr(
"action"); //get form action url
206 var request_method = $(this).attr(
"method");
207 var form_data = new FormData(this); //Encode form elements for submission
211 type: request_method,
214 "Accept": 'application/json'
218 }).done(function (response, textStatus, jqXHR) {
219 $('#modal_new_user').modal('hide');
223 message:
"User successfully created."
226 }).fail(function (result) {
227 var data = result.responseJSON;
228 var title =
"Error " + (data.code ? data.code : 'unknown');
229 var message = data.detail ? data.detail : 'No detail available.';
237 $(
"#formEditUser").submit(function (event) {
238 event.preventDefault(); //prevent default action
239 var post_url = $(this).attr(
"action"); //get form action url
240 var request_method = $(this).attr(
"method");
241 var form_data = new FormData(this); //Encode form elements for submission
245 type: request_method,
248 "Accept": 'application/json'
252 }).done(function (response, textStatus, jqXHR) {
253 $('#modal_edit_user').modal('hide');
257 message:
"User successfully modified."
260 }).fail(function (result) {
261 var data = result.responseJSON;
262 var title =
"Error " + (data.code ? data.code : 'unknown');
263 var message = data.detail ? data.detail : 'No detail available.';
278 {% include
"footer.html" %}