diff options
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates/layers.html')
| -rw-r--r-- | bitbake/lib/toaster/toastergui/templates/layers.html | 124 |
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 | ||
| 100 | var tooltipUpdateText; | ||
| 101 | |||
| 100 | function _makeXHREditCall(data, onsuccess, onfail) { | 102 | function _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 | ||
| 122 | function layerDel(layerId, layerName, layerURL) { | 124 | function 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 | ||
| 128 | function show_alert(text, cls) { | 131 | function show_alert(text, cls) { |
| 129 | $("#zone1alerts").html("<div class=\"alert alert-info\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>" + text + "</div>"); | 132 | $("#zone1alerts").html("<div class=\"alert alert-info lead\"><button type=\"button\" class=\"close\" data-dismiss=\"alert\">×</button>" + text + "</div>"); |
| 130 | } | 133 | } |
| 131 | 134 | ||
| 132 | function show_dependencies_modal(layerId, layerName, layerURL, dependencies) { | 135 | function 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 | ||
| 190 | function button_set(id, state) { | 204 | function 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 %} |
