blob: 85abb59484d100742a367806018f448ecd462b8a [file] [log] [blame]
lombardoffb37bca2018-05-03 16:20:04 +02001{% extends "base.html" %}
lombardofr480be482018-06-26 23:44:40 +02002{% load get %}
3{% load date_tag %}
lombardoffb37bca2018-05-03 16:20:04 +02004{% load staticfiles %}
5
6{% block head_block %}
7 {{ block.super }}
8
9{% endblock %}
10{% block title_header_big %}
11 {{ block.super }}
12{% endblock %}
13{% block left_sidebar %}
14
lombardofr835a0b72018-07-18 15:26:16 +020015{% include 'osm/osm_project_left_sidebar.html' %}
lombardoffb37bca2018-05-03 16:20:04 +020016
17{% endblock %}
18
19
20{% block breadcrumb_body %}
21 {{ block.super }}
22 <li><a href="{% url 'projects:projects_list' %}">Projects</a></li>
23{% endblock %}
24
25{% block content_body %}
26 {{ block.super }}
27 {% csrf_token %}
28<div class="row">
29<div class="col-md-12">
30
31 <div class="box">
32 <div class="box-header with-border">
33 <h3 class="box-title">Projects</h3>
34 <div class="box-tools">
lombardofr480be482018-06-26 23:44:40 +020035 <button type="button" class="btn btn-default" data-container="body"
36 data-toggle="tooltip" data-placement="top" title="New Project"
37 onclick="javascript:showModalNewProject()">
38 <i class="fa fa-plus"></i> New Project</button>
lombardoffb37bca2018-05-03 16:20:04 +020039 </div>
40 </div>
41 <div class="box-body">
42 <table id="projects_table" class="table table-bordered table-striped">
43 <thead>
44 <tr>
45
46 <th>Name</th>
lombardofr480be482018-06-26 23:44:40 +020047
lombardoffb37bca2018-05-03 16:20:04 +020048 <th>Modification Date</th>
49 <th>Creation Date</th>
50
lombardoffb37bca2018-05-03 16:20:04 +020051
lombardofe28478c2018-06-07 13:07:27 +020052 <th><i class="far fa-trash-alt"></i></th>
lombardoffb37bca2018-05-03 16:20:04 +020053 </tr>
54 </thead>
55 <tbody>
56 {% for p in projects %}
57 <tr>
58
59 <td>
lombardofr99f922f2018-07-17 17:27:36 +020060 <a href="/projects/switch/{{ p.name }}" >{{ p.name }}</a>
lombardoffb37bca2018-05-03 16:20:04 +020061 </td>
lombardoffb37bca2018-05-03 16:20:04 +020062
lombardofr480be482018-06-26 23:44:40 +020063 <td>{{ p|get_sub:"_admin,modified"|get_date}}</td>
64 <td>{{ p|get_sub:"_admin,created"|get_date}}</td>
65
lombardofr99f922f2018-07-17 17:27:36 +020066 <td><a href="javascript:deleteProject('{% url 'projects:delete_project' %}')"> Delete</a></td>
lombardoffb37bca2018-05-03 16:20:04 +020067
68 </tr>
69 {% endfor %}
70 </tbody>
71 </table>
72 </div>
73 </div>
74</div>
75
76</div>
lombardofr480be482018-06-26 23:44:40 +020077{% include "modal/new_project.html" %}
lombardoffb37bca2018-05-03 16:20:04 +020078{% endblock %}
79
80{% block resource_block %}
81 {{ block.super }}
lombardofr480be482018-06-26 23:44:40 +020082 <script>
83 function showModalNewProject(){
84 $('#modal_new_project').modal('show');
85 }
lombardoffb37bca2018-05-03 16:20:04 +020086
lombardofr480be482018-06-26 23:44:40 +020087 function deleteProject(url) {
88 bootbox.confirm("Are you sure want to delete?", function (result) {
89 if (result) {
90 $.ajax({
91 url: url,
92 type: 'GET',
93 headers: {
94 "Accept": 'application/json'
95 },
96 contentType: false,
97 processData: false
98 }).done(function (response,textStatus, jqXHR) {
99
100 bootbox.alert({
101 title: "Result",
102 message: "Project deleted.",
103 callback: function () {
104 location.reload();
105 }
106 });
107 }).fail(function(result){
108 var data = result.responseJSON;
109 var title = "Error " + (data.code ? data.code: 'unknown');
110 var message = data.detail ? data.detail: 'No detail available.';
111 bootbox.alert({
112 title: title,
113 message: message
114 });
115 });
116 }
117 })
118 }
119
120 $(document).ready(function () {
121 $("#formNewProject").submit(function (event) {
122 event.preventDefault(); //prevent default action
123 var post_url = $(this).attr("action"); //get form action url
124 var request_method = $(this).attr("method"); //get form GET/POST method
125 var form_data = new FormData(this); //Encode form elements for submission
126 console.log(post_url);
127 $.ajax({
128 url: post_url,
129 type: request_method,
130 data: form_data,
131 headers: {
132 "Accept": 'application/json'
133 },
134 contentType: false,
135 processData: false
136 }).done(function (response,textStatus, jqXHR) {
137 bootbox.alert({
138 title: "Result",
139 message: "Project created.",
140 callback: function () {
141 location.reload();
142 }
143 });
144 }).fail(function(result){
145 var data = result.responseJSON;
146 var title = "Error " + (data.code ? data.code: 'unknown');
147 var message = data.detail ? data.detail: 'No detail available.';
148 bootbox.alert({
149 title: title,
150 message: message
151 });
152 });
153 });
154 });
155
156
157
158
159 </script>
lombardoffb37bca2018-05-03 16:20:04 +0200160
161
162{% endblock %}