blob: 8a3fd3e2083b5d87c856172c3b9d2a3b57c967af [file] [log] [blame]
lombardofr3218b2b2018-10-29 13:41:08 +01001{% extends "descriptor_view_base.html" %}
lombardoffb37bca2018-05-03 16:20:04 +02002
3{% load staticfiles %}
4
5
6{% block title_header_big %}
7{{ block.super }}
8Edit {{ descriptor_type|upper }} Descriptor
9{% endblock %}
10
11
12{% block left_sidebar %}
13{% include 'osm/osm_project_left_sidebar.html' %}
14{% endblock %}
15
16{% block breadcrumb_body %}
17{{ block.super }}
lombardofr99f922f2018-07-17 17:27:36 +020018<li><a href="{% url 'projects:open_project' %}">{{project_id}}</a></li>
lombardofr3218b2b2018-10-29 13:41:08 +010019<li><a href="{% url 'projects:descriptors:list_descriptors' descriptor_type=descriptor_type %}">{{ descriptor_type }} Descriptors</a></li>
lombardoffb37bca2018-05-03 16:20:04 +020020<li><a>{{descriptor_id}}</a></li>
21{% endblock %}
22
23{% block tab_pane_button_list %}
24{{ block.super }}
25<li class="active" id="yaml_li"><a href="#yaml" data-toggle="tab"><i class="fa fa-file-code-o"></i> YAML</a></li>
26<li id="json_li"><a href="#json" data-toggle="tab"><i class="fa fa-file-code-o"></i> JSON</a></li>
27{% endblock %}
28
29{% block nav_buttons_list %}
30 {{ block.super }}
31 <li class="pull-right"><button id="save" type="button" class="btn btn-block btn-primary btn-sm" onclick="update(this.id)" ><i class="fa fa-save"></i> Update</button></li>
lombardofr36e3ddd2018-11-30 10:15:11 +010032 <li class="pull-right"><button id="save_show_graph" type="button" class="btn btn-block btn-primary btn-sm" onclick="update(this.id, 'true')"><i class="fa fa-save"></i> Update and Show Graph</button></li>
33 <li class="pull-right"><button type="button" class="btn btn-block btn-primary btn-sm" onclick="goToGraph()"><i class="fa fa-sitemap"></i> Show Graph</button></li>
lombardofr1bd6a672018-09-13 11:51:01 +020034
lombardoffb37bca2018-05-03 16:20:04 +020035{% endblock %}
36
37{% block tab_pane_list %}
38{{ block.super }}
39
40<!-- /.tab-pane -->
41<div class="active tab-pane" id="yaml">
42 <textarea id="code_editor_yaml">
43 </textarea>
44</div>
45<!-- /.tab-pane-->
46
47<div class="tab-pane" id="json">
48 <textarea id="code_editor_json">
49 </textarea>
50</div>
51
52{% endblock %}
53
54{% block resource_block %}
55{{ block.super }}
56
57
58<script>
59 var editorJSON;
60 var editorYaml;
61
62 $(document).ready(function () {
63 //var cmjsoneditor = CodeMirror.fromTextArea(document.getElementById("code_editor"), json_editor_settings);
64 var myJsonTextArea = document.getElementById("code_editor_json");
65 editorJSON = CodeMirror(function (elt) {
66 myJsonTextArea.parentNode.replaceChild(elt, myJsonTextArea);
67 }, json_editor_settings);
lombardoffb37bca2018-05-03 16:20:04 +020068 editorJSON.setValue(JSON.stringify({{descriptor_strings.descriptor_string_json | safe}}, null, "\t"));
69 editorJSON.setOption("autoRefresh", true);
lombardofra74cd442018-08-23 09:24:32 +020070 editorJSON.setSize("auto", "auto");
71
lombardoffb37bca2018-05-03 16:20:04 +020072 var myYamlTextArea = document.getElementById("code_editor_yaml");
73 editorYaml = CodeMirror(function (elt) {
74 myYamlTextArea.parentNode.replaceChild(elt, myYamlTextArea);
75 }, yaml_editor_settings);
76 var des_strings = {{descriptor_strings | safe}};
77 editorYaml.setValue(des_strings.descriptor_string_yaml);
lombardofra74cd442018-08-23 09:24:32 +020078 editorYaml.setSize("auto", "auto");
lombardoffb37bca2018-05-03 16:20:04 +020079 });
80
81
lombardofr36e3ddd2018-11-30 10:15:11 +010082 function update(e, show_graph) {
lombardoffb37bca2018-05-03 16:20:04 +020083 var dialog = bootbox.dialog({
84 message: '<div class="text-center"><i class="fa fa-spin fa-spinner"></i> Loading...</div>',
85 closeButton: false
86 });
87
88 var id = $('.nav-tabs .active').attr('id');
89 var type, text;
90 switch (id) {
91 case 'yaml_li':
92 type = 'yaml';
93 text = editorYaml.getValue();
94 break;
95 case 'json_li':
96 type = 'json';
97 text = editorJSON.getValue();
98 break;
99 }
100 $.ajax({
lombardofr99f922f2018-07-17 17:27:36 +0200101 url: "/projects/descriptors/{{descriptor_type}}/{{descriptor_id}}/",
lombardoffb37bca2018-05-03 16:20:04 +0200102 type: 'POST',
103 dataType: 'json',
104 data: {
105 'csrfmiddlewaretoken': '{{csrf_token}}',
106 'type': type,
107 'text': text
108 },
109 success: function (result) {
lombardofr36e3ddd2018-11-30 10:15:11 +0100110 if(show_graph){
111 goToGraph();
112 }
lombardoffb37bca2018-05-03 16:20:04 +0200113 dialog.modal('hide');
lombardofr1bd6a672018-09-13 11:51:01 +0200114 $("#success-alert").fadeTo(2000, 500).slideDown(500, function(){
115 setTimeout(function () {
116 $("#success-alert").slideUp(500);
117 }, 2000);
lombardoffb37bca2018-05-03 16:20:04 +0200118
lombardofr1bd6a672018-09-13 11:51:01 +0200119 });
lombardoffb37bca2018-05-03 16:20:04 +0200120 },
121 error: function (result) {
lombardoffb37bca2018-05-03 16:20:04 +0200122 dialog.modal('hide');
lombardofr36e3ddd2018-11-30 10:15:11 +0100123 var data = result.responseJSON;
124 var title = "Error " + (data && data.code ? data.code : 'unknown');
125 var message = data && data.detail ? data.detail : 'No detail available.';
126 bootbox.alert({
127 title: title,
128 message: message
129 });
lombardoffb37bca2018-05-03 16:20:04 +0200130 }
131 });
132 }
133
134</script>
135{% endblock %}
136
137
138{% block footer %}
lombardofr3218b2b2018-10-29 13:41:08 +0100139 {% include "footer.html" %}
lombardoffb37bca2018-05-03 16:20:04 +0200140{% endblock %}