| lombardofr | 3218b2b | 2018-10-29 13:41:08 +0100 | [diff] [blame] | 1 | {% extends "descriptor_view_base.html" %} |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 2 | |
| 3 | {% load staticfiles %} |
| 4 | |
| 5 | |
| 6 | {% block title_header_big %} |
| 7 | {{ block.super }} |
| 8 | Edit {{ 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 }} |
| lombardofr | 99f922f | 2018-07-17 17:27:36 +0200 | [diff] [blame] | 18 | <li><a href="{% url 'projects:open_project' %}">{{project_id}}</a></li> |
| lombardofr | 3218b2b | 2018-10-29 13:41:08 +0100 | [diff] [blame] | 19 | <li><a href="{% url 'projects:descriptors:list_descriptors' descriptor_type=descriptor_type %}">{{ descriptor_type }} Descriptors</a></li> |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 20 | <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> |
| lombardofr | 36e3ddd | 2018-11-30 10:15:11 +0100 | [diff] [blame^] | 32 | <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> |
| lombardofr | 1bd6a67 | 2018-09-13 11:51:01 +0200 | [diff] [blame] | 34 | |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 35 | {% 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); |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 68 | editorJSON.setValue(JSON.stringify({{descriptor_strings.descriptor_string_json | safe}}, null, "\t")); |
| 69 | editorJSON.setOption("autoRefresh", true); |
| lombardofr | a74cd44 | 2018-08-23 09:24:32 +0200 | [diff] [blame] | 70 | editorJSON.setSize("auto", "auto"); |
| 71 | |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 72 | 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); |
| lombardofr | a74cd44 | 2018-08-23 09:24:32 +0200 | [diff] [blame] | 78 | editorYaml.setSize("auto", "auto"); |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 79 | }); |
| 80 | |
| 81 | |
| lombardofr | 36e3ddd | 2018-11-30 10:15:11 +0100 | [diff] [blame^] | 82 | function update(e, show_graph) { |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 83 | 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({ |
| lombardofr | 99f922f | 2018-07-17 17:27:36 +0200 | [diff] [blame] | 101 | url: "/projects/descriptors/{{descriptor_type}}/{{descriptor_id}}/", |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 102 | type: 'POST', |
| 103 | dataType: 'json', |
| 104 | data: { |
| 105 | 'csrfmiddlewaretoken': '{{csrf_token}}', |
| 106 | 'type': type, |
| 107 | 'text': text |
| 108 | }, |
| 109 | success: function (result) { |
| lombardofr | 36e3ddd | 2018-11-30 10:15:11 +0100 | [diff] [blame^] | 110 | if(show_graph){ |
| 111 | goToGraph(); |
| 112 | } |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 113 | dialog.modal('hide'); |
| lombardofr | 1bd6a67 | 2018-09-13 11:51:01 +0200 | [diff] [blame] | 114 | $("#success-alert").fadeTo(2000, 500).slideDown(500, function(){ |
| 115 | setTimeout(function () { |
| 116 | $("#success-alert").slideUp(500); |
| 117 | }, 2000); |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 118 | |
| lombardofr | 1bd6a67 | 2018-09-13 11:51:01 +0200 | [diff] [blame] | 119 | }); |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 120 | }, |
| 121 | error: function (result) { |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 122 | dialog.modal('hide'); |
| lombardofr | 36e3ddd | 2018-11-30 10:15:11 +0100 | [diff] [blame^] | 123 | 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 | }); |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 130 | } |
| 131 | }); |
| 132 | } |
| 133 | |
| 134 | </script> |
| 135 | {% endblock %} |
| 136 | |
| 137 | |
| 138 | {% block footer %} |
| lombardofr | 3218b2b | 2018-10-29 13:41:08 +0100 | [diff] [blame] | 139 | {% include "footer.html" %} |
| lombardof | fb37bca | 2018-05-03 16:20:04 +0200 | [diff] [blame] | 140 | {% endblock %} |