summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/templates/layers.html
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates/layers.html')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/layers.html124
1 files changed, 78 insertions, 46 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/layers.html b/bitbake/lib/toaster/toastergui/templates/layers.html
index 51f4dd96e7..db34fe4818 100644
--- a/bitbake/lib/toaster/toastergui/templates/layers.html
+++ b/bitbake/lib/toaster/toastergui/templates/layers.html
@@ -9,67 +9,66 @@
9{% block projectinfomain %} 9{% block projectinfomain %}
10 <div class="page-header"> 10 <div class="page-header">
11 <h1> 11 <h1>
12 {% if request.GET.search and objects.paginator.count > 0 %} 12 {% if request.GET.filter and objects.paginator.count > 0 or request.GET.search and objects.paginator.count > 0 %}
13 {{objects.paginator.count}} layer{{objects.paginator.count|pluralize}} found 13 {{objects.paginator.count}} layer{{objects.paginator.count|pluralize}} found
14 {%elif request.GET.search and objects.paginator.count == 0%} 14 {% elif request.GET.filter and objects.paginator.count == 0 or request.GET.search and objects.paginator.count == 0 %}
15 No layer found 15 No layers found
16 {%else%} 16 {%else%}
17 All layers 17 All layers
18 {%endif%} 18 {%endif%}
19 <i class="icon-question-sign get-help heading-help" title="This page lists all the layers compatible with " + {{project.release.name}} + " that Toaster knows about."></i> 19 <i class="icon-question-sign get-help heading-help" title="This page lists all the layers compatible with {{project.release.name}} that Toaster knows about."></i>
20 </h1> 20 </h1>
21 </div> 21 </div>
22 22
23 <div id="zone1alerts"> 23 <div id="zone1alerts">
24
25 </div> 24 </div>
26 25
27 26
28 <div id="layer-added" class="alert alert-info lead" style="display:none;"></div>
29
30
31{% include "basetable_top_layers.html" %} 27{% include "basetable_top_layers.html" %}
32 {% for lv in objects %} 28 {% for o in objects %}
33 <tr class="data"> 29 <tr class="data">
34 <td class="layer"><a href="{% url 'layerdetails' lv.id %}">{{lv.layer.name}}</a></td> 30 <td class="layer"><a href="{% url 'layerdetails' o.id %}">{{o.layer.name}}</a></td>
35 <td class="description">{{lv.layer.summary}}</td> 31 <td class="description">{% if o.layer.summary %}{{o.layer.summary}}{%endif%}</td>
36 <td class="source"><a href="{% url 'layerdetails' lv.pk %}">{{lv.layer_source.name}}</a></td> 32 <td class="source"><a href="{% url 'layerdetails' o.pk %}">{{o.layer_source.name}}</a></td>
37 <td class="git-repo"><a href="{% url 'layerdetails' lv.pk %}"><code>{{lv.layer.vcs_url}}</code></a> 33 <td class="git-repo"><a href="{% url 'layerdetails' o.pk %}"><code>{{o.layer.vcs_url}}</code></a>
38 {% if lv.get_vcs_link_url %} 34 {% if o.get_vcs_link_url %}
39 <a target="_blank" href="{{ lv.get_vcs_link_url }}"><i class="icon-share get-info"></i></a> 35 <a target="_blank" href="{{ o.get_vcs_link_url }}"><i class="icon-share get-info"></i></a>
40 {% endif %} 36 {% endif %}
41 </td> 37 </td>
42 <td class="git-subdir" style="display: table-cell;"><a href="{% url 'layerdetails' lv.pk %}"><code>{{lv.dirpath}}</code></a> 38 <td class="git-subdir" style="display: table-cell;"><a href="{% url 'layerdetails' o.pk %}"><code>{{o.dirpath}}</code></a>
43 {% if lv.dirpath and lv.get_vcs_dirpath_link_url %} 39 {% if o.dirpath and o.get_vcs_dirpath_link_url %}
44 <a target="_blank" href="{{ lv.get_vcs_dirpath_link_url }}"><i class="icon-share get-info"></i></a> 40 <a target="_blank" href="{{ o.get_vcs_dirpath_link_url }}"><i class="icon-share get-info"></i></a>
45 {% endif %} 41 {% endif %}
46 </td> 42 </td>
47 <td class="branch">{% if lv.branch %}{{lv.branch}}{% else %}{{lv.up_branch.name}}{% endif %}</td> 43 <td class="branch">{% if o.branch %}{{o.branch}}{% else %}{{o.up_branch.name}}{% endif %}</td>
48 <td class="dependencies"> 44 <td class="dependencies">
49 {% with lvds=lv.dependencies.all%} 45 {% with ods=o.dependencies.all%}
50 {% if lvds.count %} 46 {% if ods.count %}
51 <a class="btn" 47 <a class="btn"
52 title="<a href='{% url "layerdetails" lv.pk %}'>{{lv.layer.name}}</a> dependencies" 48 title="<a href='{% url "layerdetails" o.pk %}'>{{o.layer.name}}</a> dependencies"
53 data-content="<ul class='unstyled'> 49 data-content="<ul class='unstyled'>
54 {% for i in lvds%} 50 {% for i in ods%}
55 <li><a href='{% url "layerdetails" i.depends_on.pk %}'>{{i.depends_on.layer.name}}</a></li> 51 <li><a href='{% url "layerdetails" i.depends_on.pk %}'>{{i.depends_on.layer.name}}</a></li>
56 {% endfor %} 52 {% endfor %}
57 </ul>"> 53 </ul>">
58 {{lvds.count}} 54 {{ods.count}}
59 </a> 55 </a>
60 {% endif %} 56 {% endif %}
61 {% endwith %} 57 {% endwith %}
62 </td> 58 </td>
63 <td class="add-del-layers" value="{{lv.pk}}"> 59 {% if project %}
64 <button id="layer-del-{{lv.pk}}" class="btn btn-danger btn-block remove-layer" style="display:none;" onclick="layerDel({{lv.pk}}, '{{lv.layer.name}}', '{%url 'layerdetails' lv.pk%}')"> 60 <td class="add-del-layers" value="{{o.pk}}">
61 <div id="layer-tooltip-{{o.pk}}" style="display: none; font-size: 11px; line-height: 1.3;" class="tooltip-inner">layer was modified</div>
62 <button id="layer-del-{{o.pk}}" class="btn btn-danger btn-block remove-layer layerbtn" style="display:none;" onclick="layerDel({{o.pk}}, '{{o.layer.name}}', '{%url 'layerdetails' o.pk%}')" >
65 <i class="icon-trash"></i> 63 <i class="icon-trash"></i>
66 Delete layer 64 Delete layer
67 </button> 65 </button>
68 <button id="layer-add-{{lv.pk}}" class="btn btn-block" style="display:none;" onclick="layerAdd({{lv.pk}}, '{{lv.layer.name}}', '{%url 'layerdetails' lv.pk%}')" > 66 <button id="layer-add-{{o.pk}}" class="btn btn-block layerbtn" style="display:none;" onclick="layerAdd({{o.pk}}, '{{o.layer.name}}', '{%url 'layerdetails' o.pk%}')" title="layer added">
69 <i class="icon-plus"></i> 67 <i class="icon-plus"></i>
70 Add layer 68 Add layer
71 </button> 69 </button>
72 </td> 70 </td>
71 {% endif %}
73 </tr> 72 </tr>
74 {% endfor %} 73 {% endfor %}
75{% include "basetable_bottom.html" %} 74{% include "basetable_bottom.html" %}
@@ -78,7 +77,7 @@
78 77
79 <!-- 'Layer dependencies modal' --> 78 <!-- 'Layer dependencies modal' -->
80 <div id="dependencies_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true"> 79 <div id="dependencies_modal" class="modal hide fade" tabindex="-1" role="dialog" aria-hidden="true">
81 <form id="dependencies_modal_form"> 80 <form id="dependencies_modal_form" style="margin: 0px">
82 <div class="modal-header"> 81 <div class="modal-header">
83 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button> 82 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>
84 <h3><span class="layer-name"></span> dependencies</h3> 83 <h3><span class="layer-name"></span> dependencies</h3>
@@ -95,8 +94,11 @@
95 </form> 94 </form>
96 </div> 95 </div>
97 96
97{% if project %}
98<script> 98<script>
99 99
100var tooltipUpdateText;
101
100function _makeXHREditCall(data, onsuccess, onfail) { 102function _makeXHREditCall(data, onsuccess, onfail) {
101 $.ajax( { 103 $.ajax( {
102 type: "POST", 104 type: "POST",
@@ -120,13 +122,14 @@ function _makeXHREditCall(data, onsuccess, onfail) {
120 122
121 123
122function layerDel(layerId, layerName, layerURL) { 124function layerDel(layerId, layerName, layerURL) {
125 tooltipUpdateText = "1 layer deleted";
123 _makeXHREditCall({ 'layerDel': layerId }, function () { 126 _makeXHREditCall({ 'layerDel': layerId }, function () {
124 show_alert("<strong>1</strong> layer deleted from <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: <a href=\""+layerURL+"\">" + layerName +"</a>"); 127 show_alert("You have deleted <strong>1</strong> layer from <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: <a href=\""+layerURL+"\">" + layerName +"</a>");
125 }); 128 });
126} 129}
127 130
128function show_alert(text, cls) { 131function show_alert(text, cls) {
129 $("#zone1alerts").html("<div class=\"alert alert-info\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>" + text + "</div>"); 132 $("#zone1alerts").html("<div class=\"alert alert-info lead\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\">&times;</button>" + text + "</div>");
130} 133}
131 134
132function show_dependencies_modal(layerId, layerName, layerURL, dependencies) { 135function show_dependencies_modal(layerId, layerName, layerURL, dependencies) {
@@ -142,25 +145,35 @@ function show_dependencies_modal(layerId, layerName, layerURL, dependencies) {
142 } 145 }
143 $('#dependencies_list').html(deplistHtml); 146 $('#dependencies_list').html(deplistHtml);
144 147
148 var selected = [layerId];
149 var layer_link_list = "<a href='"+layerURL+"'>"+layerName+"</a>";
150
145 $("#dependencies_modal_form").submit(function (e) { 151 $("#dependencies_modal_form").submit(function (e) {
146 e.preventDefault(); 152 e.preventDefault();
147 var selected = [layerId];
148 $("input[name='dependencies']:checked").map(function () { selected.push(parseInt($(this).val()))}); 153 $("input[name='dependencies']:checked").map(function () { selected.push(parseInt($(this).val()))});
154 if (selected.length > 1) {
155 tooltipUpdateText = "" + selected.length + " layers added";
156 } else {
157 tooltipUpdateText = "1 layer added";
158 }
149 159
150 _makeXHREditCall({ 'layerAdd': selected.join(",") }, function () { 160 for (var i = 0; i < selected.length; i++) {
151 var layer_link_list = "<a href='"+layerURL+"'>"+layerName+"</a>"; 161 for (var j = 0; j < dependencies.length; j++) {
152 for (var i = 0; i < selected.length; i++) { 162 if (dependencies[j].id == selected[i]) {
153 for (var j = 0; j < dependencies.length; i++) { 163 layer_link_list+= ", <a href='"+dependencies[j].layerdetailurl+"'>"+dependencies[j].name+"</a>"
154 if (dependencies[j].id == selected[i]) { 164 break;
155 layer_link_list+= ", <a href='"+dependencies[j].layerdetailurl+"'>"+dependencies[j].name+"</a>"
156 break;
157 }
158 } 165 }
159 } 166 }
167 }
168
169 $('#dependencies_modal').modal('hide');
160 170
161 $('#dependencies_modal').modal('hide'); 171 {% if project %}
162 show_alert("<strong>"+selected.length+"</strong> layers added to <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>:" + layer_link_list); 172 _makeXHREditCall({ 'layerAdd': selected.join(",") }, function () {
173 show_alert("You have added <strong>"+selected.length+"</strong> layers to <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: " + layer_link_list);
163 }); 174 });
175 {% endif %}
176
164 }); 177 });
165 $('#dependencies_modal').modal('show'); 178 $('#dependencies_modal').modal('show');
166} 179}
@@ -178,8 +191,9 @@ function layerAdd(layerId, layerName, layerURL) {
178 show_dependencies_modal(layerId, layerName, layerURL, _data.list); 191 show_dependencies_modal(layerId, layerName, layerURL, _data.list);
179 } 192 }
180 else { 193 else {
194 tooltipUpdateText = "1 layer added";
181 _makeXHREditCall({ 'layerAdd': layerId }, function () { 195 _makeXHREditCall({ 'layerAdd': layerId }, function () {
182 show_alert("<strong>1</strong> layer added to <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: <a href=\""+layerURL+"\">" + layerName +"</a>"); 196 show_alert("You have added <strong>1</strong> layer to <a href=\"{% url 'project' project.id%}\">{{project.name}}</a>: <a href=\""+layerURL+"\">" + layerName +"</a>");
183 }); 197 });
184 } 198 }
185 } 199 }
@@ -188,15 +202,31 @@ function layerAdd(layerId, layerName, layerURL) {
188} 202}
189 203
190function button_set(id, state) { 204function button_set(id, state) {
205 var tohide, toshow;
191 if (state == "add") 206 if (state == "add")
192 { 207 {
193 $("#layer-add-" + id).show(); 208 tohide = "#layer-del-";
194 $("#layer-del-" + id).hide(); 209 toshow = "#layer-add-";
195 } 210 }
196 else if (state == "del") 211 else if (state == "del")
197 { 212 {
198 $("#layer-add-" + id).hide(); 213 tohide = "#layer-add-";
199 $("#layer-del-" + id).show(); 214 toshow = "#layer-del-";
215 }
216
217
218 var previouslyvisible = $(tohide + id).is(":visible");
219 if (previouslyvisible) {
220 $(tohide + id).fadeOut( function() {
221 $("#layer-tooltip-" + id).text(tooltipUpdateText);
222 $("#layer-tooltip-" + id).fadeIn().delay(2000).fadeOut(function(){
223 $(toshow + id).delay(300).fadeIn();
224 });
225 });
226 } else {
227 $(tohide + id).hide();
228 $("#layer-tooltip-" + id).hide();
229 $(toshow + id).show();
200 } 230 }
201}; 231};
202 232
@@ -214,9 +244,11 @@ function updateButtons(projectLayers) {
214} 244}
215 245
216$(document).ready(function (){ 246$(document).ready(function (){
247 $('.layerbtn').tooltip({ trigger: 'manual' });
217 updateButtons({{projectlayerset}}); 248 updateButtons({{projectlayerset}});
218}); 249});
219 250
220</script> 251</script>
252{%endif%}
221 253
222{% endblock %} 254{% endblock %}