summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/templates
diff options
context:
space:
mode:
authorAlexandru DAMIAN <alexandru.damian@intel.com>2015-05-07 18:09:09 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-05-12 12:14:13 +0100
commit94d38a4e403f9e1930312b94694077a5300d625f (patch)
tree9ffc996e3bf106a513d78e0026395305f9f83678 /bitbake/lib/toaster/toastergui/templates
parenta5193d3c7f1562ea6858c5b992159d79f58f644b (diff)
downloadpoky-94d38a4e403f9e1930312b94694077a5300d625f.tar.gz
bitbake: toasterui: URL refactoring
This is a URL refactoring needed to remove the inadvertent usage of server-side user session in a REST-style API. We move the parameters that were stored in the user session to the URL, making navigation more robust. This refactoring allows a clean (no 500 HTTP return codes) crawl of the website following inside links. (Bitbake rev: cc251da0f211f3ee881ad07478733e2f4c1b7019) Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/toastergui/templates')
-rw-r--r--bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html2
-rw-r--r--bitbake/lib/toaster/toastergui/templates/importlayer.html2
-rw-r--r--bitbake/lib/toaster/toastergui/templates/layerdetails.html8
-rw-r--r--bitbake/lib/toaster/toastergui/templates/layers.html14
-rw-r--r--bitbake/lib/toaster/toastergui/templates/machines.html4
-rw-r--r--bitbake/lib/toaster/toastergui/templates/project.html24
-rw-r--r--bitbake/lib/toaster/toastergui/templates/targets.html6
7 files changed, 30 insertions, 30 deletions
diff --git a/bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html b/bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html
index bd6e7dd2de..722091b2d3 100644
--- a/bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html
+++ b/bitbake/lib/toaster/toastergui/templates/basetable_top_layers.html
@@ -1,5 +1,5 @@
1{% extends "basetable_top.html" %} 1{% extends "basetable_top.html" %}
2 2
3{%block custombuttons %} 3{%block custombuttons %}
4 <a class="btn" href="{% url 'importlayer' %}" style="margin-right:5px;">Import layer</a> 4 <a class="btn" href="{% url 'importlayer' project.id %}" style="margin-right:5px;">Import layer</a>
5{%endblock%} 5{%endblock%}
diff --git a/bitbake/lib/toaster/toastergui/templates/importlayer.html b/bitbake/lib/toaster/toastergui/templates/importlayer.html
index ed03b2eea7..d73c319307 100644
--- a/bitbake/lib/toaster/toastergui/templates/importlayer.html
+++ b/bitbake/lib/toaster/toastergui/templates/importlayer.html
@@ -14,7 +14,7 @@
14 <script> 14 <script>
15 $(document).ready(function (){ 15 $(document).ready(function (){
16 var ctx = { 16 var ctx = {
17 layerDetailsUrl : "{% url 'base_layerdetails' %}", 17 layerDetailsUrl : "{% url 'base_layerdetails' project.id %}",
18 xhrImportLayerUrl : "{% url 'xhr_importlayer' %}", 18 xhrImportLayerUrl : "{% url 'xhr_importlayer' %}",
19 }; 19 };
20 20
diff --git a/bitbake/lib/toaster/toastergui/templates/layerdetails.html b/bitbake/lib/toaster/toastergui/templates/layerdetails.html
index 4b27d052d0..4d892d56f9 100644
--- a/bitbake/lib/toaster/toastergui/templates/layerdetails.html
+++ b/bitbake/lib/toaster/toastergui/templates/layerdetails.html
@@ -3,7 +3,7 @@
3{% load humanize %} 3{% load humanize %}
4{% load static %} 4{% load static %}
5{% block localbreadcrumb %} 5{% block localbreadcrumb %}
6<li><a href="{% url 'layers' %}">All compatible layers</a></li> 6<li><a href="{% url 'all-layers' project.id %}">All compatible layers</a></li>
7<li> 7<li>
8 {{layerversion.layer.name}} ({{layerversion.get_vcs_reference|truncatechars:13}}) 8 {{layerversion.layer.name}} ({{layerversion.get_vcs_reference|truncatechars:13}})
9</li> 9</li>
@@ -17,7 +17,7 @@
17 $(document).ready(function (){ 17 $(document).ready(function (){
18 var ctx = { 18 var ctx = {
19 projectBuildUrl : "{% url 'xhr_build' %}", 19 projectBuildUrl : "{% url 'xhr_build' %}",
20 layerDetailsUrl : "{% url 'base_layerdetails' %}", 20 layerDetailsUrl : "{% url 'base_layerdetails' project.id %}",
21 xhrUpdateLayerUrl : "{% url 'xhr_updatelayer' %}", 21 xhrUpdateLayerUrl : "{% url 'xhr_updatelayer' %}",
22 numTargets : {{total_targets}}, 22 numTargets : {{total_targets}},
23 numMachines: {{machines|length}}, 23 numMachines: {{machines|length}},
@@ -26,7 +26,7 @@
26 id : {{layerversion.id}}, 26 id : {{layerversion.id}},
27 commit: "{{layerversion.get_vcs_reference}}", 27 commit: "{{layerversion.get_vcs_reference}}",
28 inCurrentPrj : {{layer_in_project}}, 28 inCurrentPrj : {{layer_in_project}},
29 url : "{% url 'layerdetails' layerversion.id %}", 29 url : "{% url 'layerdetails' project.id layerversion.id %}",
30 sourceId: {{layerversion.layer_source_id}}, 30 sourceId: {{layerversion.layer_source_id}},
31 } 31 }
32 }; 32 };
@@ -164,7 +164,7 @@
164 {% for ld in layerversion.dependencies.all %} 164 {% for ld in layerversion.dependencies.all %}
165 <span class="current-value"> 165 <span class="current-value">
166 <li data-layer-id="{{ld.depends_on.id}}"> 166 <li data-layer-id="{{ld.depends_on.id}}">
167 <a data-toggle="tooltip" title="{{ld.depends_on.layer.vcs_url}} | {{ld.depends_on.get_vcs_reference}}" href="{% url 'layerdetails' ld.depends_on.id %}">{{ld.depends_on.layer.name}}</a> 167 <a data-toggle="tooltip" title="{{ld.depends_on.layer.vcs_url}} | {{ld.depends_on.get_vcs_reference}}" href="{% url 'layerdetails' project.id ld.depends_on.id %}">{{ld.depends_on.layer.name}}</a>
168 <span class="icon-trash " data-toggle="tooltip" title="Delete"></span> 168 <span class="icon-trash " data-toggle="tooltip" title="Delete"></span>
169 </li> 169 </li>
170 </span> 170 </span>
diff --git a/bitbake/lib/toaster/toastergui/templates/layers.html b/bitbake/lib/toaster/toastergui/templates/layers.html
index 2367e7c33a..abad007ee4 100644
--- a/bitbake/lib/toaster/toastergui/templates/layers.html
+++ b/bitbake/lib/toaster/toastergui/templates/layers.html
@@ -73,14 +73,14 @@
73{% include "basetable_top_layers.html" %} 73{% include "basetable_top_layers.html" %}
74 {% for o in objects %} 74 {% for o in objects %}
75 <tr class="data"> 75 <tr class="data">
76 <td class="layer"><a href="{% url 'layerdetails' o.id %}">{{o.layer.name}}</a></td> 76 <td class="layer"><a href="{% url 'layerdetails' project.id o.id %}">{{o.layer.name}}</a></td>
77 <td class="description">{% if o.layer.summary %}{{o.layer.summary}}{%endif%}</td> 77 <td class="description">{% if o.layer.summary %}{{o.layer.summary}}{%endif%}</td>
78 <td class="git-repo"><a href="{% url 'layerdetails' o.pk %}"><code>{{o.layer.vcs_url}}</code></a> 78 <td class="git-repo"><a href="{% url 'layerdetails' project.id o.pk %}"><code>{{o.layer.vcs_url}}</code></a>
79 {% if o.get_vcs_link_url %} 79 {% if o.get_vcs_link_url %}
80 <a target="_blank" href="{{ o.get_vcs_link_url }}"><i class="icon-share get-info"></i></a> 80 <a target="_blank" href="{{ o.get_vcs_link_url }}"><i class="icon-share get-info"></i></a>
81 {% endif %} 81 {% endif %}
82 </td> 82 </td>
83 <td class="git-subdir" style="display: table-cell;"><a href="{% url 'layerdetails' o.pk %}"><code>{{o.dirpath}}</code></a> 83 <td class="git-subdir" style="display: table-cell;"><a href="{% url 'layerdetails' project.id o.pk %}"><code>{{o.dirpath}}</code></a>
84 {% if o.dirpath and o.get_vcs_dirpath_link_url %} 84 {% if o.dirpath and o.get_vcs_dirpath_link_url %}
85 <a target="_blank" href="{{ o.get_vcs_dirpath_link_url }}"><i class="icon-share get-info"></i></a> 85 <a target="_blank" href="{{ o.get_vcs_dirpath_link_url }}"><i class="icon-share get-info"></i></a>
86 {% endif %} 86 {% endif %}
@@ -100,10 +100,10 @@
100 {% with ods=o.dependencies.all%} 100 {% with ods=o.dependencies.all%}
101 {% if ods.count %} 101 {% if ods.count %}
102 <a class="btn" 102 <a class="btn"
103 title="<a href='{% url "layerdetails" o.pk %}'>{{o.layer.name}}</a> dependencies" 103 title="<a href='{% url "layerdetails" project.id o.pk %}'>{{o.layer.name}}</a> dependencies"
104 data-content="<ul class='unstyled'> 104 data-content="<ul class='unstyled'>
105 {% for i in ods%} 105 {% for i in ods%}
106 <li><a href='{% url "layerdetails" i.depends_on.pk %}'>{{i.depends_on.layer.name}}</a></li> 106 <li><a href='{% url "layerdetails" project.id i.depends_on.pk %}'>{{i.depends_on.layer.name}}</a></li>
107 {% endfor %} 107 {% endfor %}
108 </ul>"> 108 </ul>">
109 {{ods.count}} 109 {{ods.count}}
@@ -113,11 +113,11 @@
113 </td> 113 </td>
114 {% if project %} 114 {% if project %}
115 <td class="add-del-layers" value="{{o.pk}}"> 115 <td class="add-del-layers" value="{{o.pk}}">
116 <button class="btn btn-danger btn-block layer-exists-{{o.pk}} layerbtn" style="display:none;" data-layer='{ "id": {{o.pk}}, "name": "{{o.layer.name}}", "url": "{%url 'layerdetails' o.pk%}"}' data-directive="remove" > 116 <button class="btn btn-danger btn-block layer-exists-{{o.pk}} layerbtn" style="display:none;" data-layer='{ "id": {{o.pk}}, "name": "{{o.layer.name}}", "url": "{%url 'layerdetails' project.id o.pk%}"}' data-directive="remove" >
117 <i class="icon-trash"></i> 117 <i class="icon-trash"></i>
118 Delete layer 118 Delete layer
119 </button> 119 </button>
120 <button class="btn btn-block layer-add-{{o.pk}} layerbtn" data-layer='{ "id": {{o.pk}}, "name": "{{o.layer.name}}", "url": "{%url 'layerdetails' o.pk%}"}' data-directive="add"> 120 <button class="btn btn-block layer-add-{{o.pk}} layerbtn" data-layer='{ "id": {{o.pk}}, "name": "{{o.layer.name}}", "url": "{%url 'layerdetails' project.id o.pk%}"}' data-directive="add">
121 <i class="icon-plus"></i> 121 <i class="icon-plus"></i>
122 Add layer 122 Add layer
123 </button> 123 </button>
diff --git a/bitbake/lib/toaster/toastergui/templates/machines.html b/bitbake/lib/toaster/toastergui/templates/machines.html
index d116a45f3b..4a0986276f 100644
--- a/bitbake/lib/toaster/toastergui/templates/machines.html
+++ b/bitbake/lib/toaster/toastergui/templates/machines.html
@@ -69,12 +69,12 @@
69 <tr class="data"> 69 <tr class="data">
70 <td class="machine">{{o.name}}</td> 70 <td class="machine">{{o.name}}</td>
71 <td class="description">{{o.description}}</td> 71 <td class="description">{{o.description}}</td>
72 <td class="layer"><a href="{%url "layerdetails" o.layer_version.id %}">{{o.layer_version.layer.name}}</a></td> 72 <td class="layer"><a href="{%url "layerdetails" project.id o.layer_version.id %}">{{o.layer_version.layer.name}}</a></td>
73 <td class="branch">{{o.layer_version.get_vcs_reference}}</td> 73 <td class="branch">{{o.layer_version.get_vcs_reference}}</td>
74 <td class="machinefile"><code>/machine/conf/{{o.name}}.conf</code><a href="{{o.get_vcs_machine_file_link_url}}" target="_blank"><i class="icon-share get-info"></i></a></td> 74 <td class="machinefile"><code>/machine/conf/{{o.name}}.conf</code><a href="{{o.get_vcs_machine_file_link_url}}" target="_blank"><i class="icon-share get-info"></i></a></td>
75 <td class="select-or-add" style="height: 32px;"> 75 <td class="select-or-add" style="height: 32px;">
76 <a href="{% url 'project' project.id %}#/machineselect={{o.name}}" class="btn btn-block layer-exists-{{o.layer_version.id}}" style="margin-top: 5px; display:none">Select machine</a> 76 <a href="{% url 'project' project.id %}#/machineselect={{o.name}}" class="btn btn-block layer-exists-{{o.layer_version.id}}" style="margin-top: 5px; display:none">Select machine</a>
77 <button class="btn btn-block layerbtn layer-add-{{o.layer_version.id}}" data-layer='{ "id": {{o.layer_version.id}}, "name": "{{o.layer_version.layer.name}}", "url": "{%url 'layerdetails' o.layer_version.id %}"}' data-directive="add"> 77 <button class="btn btn-block layerbtn layer-add-{{o.layer_version.id}}" data-layer='{ "id": {{o.layer_version.id}}, "name": "{{o.layer_version.layer.name}}", "url": "{%url 'layerdetails' project.id o.layer_version.id %}"}' data-directive="add">
78 <i class="icon-plus"></i> 78 <i class="icon-plus"></i>
79 Add layer 79 Add layer
80 <i title="" class="icon-question-sign get-help" data-original-title="To enable this machine, you must first add the {{o.layer_version.layer.name}} layer to your project"></i></i> 80 <i title="" class="icon-question-sign get-help" data-original-title="To enable this machine, you must first add the {{o.layer_version.layer.name}} layer to your project"></i></i>
diff --git a/bitbake/lib/toaster/toastergui/templates/project.html b/bitbake/lib/toaster/toastergui/templates/project.html
index 5f8f4d1bc7..85a1b164dd 100644
--- a/bitbake/lib/toaster/toastergui/templates/project.html
+++ b/bitbake/lib/toaster/toastergui/templates/project.html
@@ -24,7 +24,7 @@ vim: expandtab tabstop=2
24 <p>Toaster has no layer information. Without layer information, you cannot run builds. To generate layer information you can:</p> 24 <p>Toaster has no layer information. Without layer information, you cannot run builds. To generate layer information you can:</p>
25 <ul> 25 <ul>
26 <li> <a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a></li> 26 <li> <a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a></li>
27 <li> <a href="{% url 'importlayer' %}">Import a layer</a></li> 27 <li> <a href="{% url 'importlayer' project.id %}">Import a layer</a></li>
28 </ul> 28 </ul>
29</div> 29</div>
30 30
@@ -111,7 +111,7 @@ vim: expandtab tabstop=2
111 </div> 111 </div>
112 <i class="icon-question-sign get-help get-help-blue" title="Type the name of one or more recipes you want to build, separated by a space. You can also specify a task by appending a semicolon and a task name to a recipe name, like so: <code>core-image-minimal:do_build</code>"></i> 112 <i class="icon-question-sign get-help get-help-blue" title="Type the name of one or more recipes you want to build, separated by a space. You can also specify a task by appending a semicolon and a task name to a recipe name, like so: <code>core-image-minimal:do_build</code>"></i>
113 <p> 113 <p>
114 <a href="{% url 'all-targets' %}">View all compatible recipes</a> 114 <a href="{% url 'all-targets' project.id %}">View all compatible recipes</a>
115 <i class="icon-question-sign get-help get-help-blue heading-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i> 115 <i class="icon-question-sign get-help get-help-blue heading-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i>
116 {% if completedbuilds.count %} 116 {% if completedbuilds.count %}
117 | <a href="{% url 'projectbuilds' project.id %}">View all project builds ({{completedbuilds.count}})</a> 117 | <a href="{% url 'projectbuilds' project.id %}">View all project builds ({{completedbuilds.count}})</a>
@@ -278,8 +278,8 @@ vim: expandtab tabstop=2
278 <p> 278 <p>
279 You can: 279 You can:
280 <ul> 280 <ul>
281 <li> <a href="{% url 'layers'%}">View all compatible layers available in Toaster</a> 281 <li> <a href="{% url 'all-layers' project.id %}">View all compatible layers available in Toaster</a>
282 <li> <a href="{% url 'importlayer' %}">Import a layer</a> 282 <li> <a href="{% url 'importlayer' project.id %}">Import a layer</a>
283 <li> <a href="https://www.yoctoproject.org/docs/1.6.1/dev-manual/dev-manual.html#understanding-and-creating-layers" target="_blank">Read about layers in the manual</a> 283 <li> <a href="https://www.yoctoproject.org/docs/1.6.1/dev-manual/dev-manual.html#understanding-and-creating-layers" target="_blank">Read about layers in the manual</a>
284 </ul> 284 </ul>
285 Or type a layer name below. 285 Or type a layer name below.
@@ -293,10 +293,10 @@ vim: expandtab tabstop=2
293 {% csrf_token %} 293 {% csrf_token %}
294 </form> 294 </form>
295 <p> 295 <p>
296 <a href="{% url 'layers' %}">View all compatible layers</a> 296 <a href="{% url 'all-layers' project.id %}">View all compatible layers</a>
297 <i class="icon-question-sign get-help" title="View all the layers you can build with the release selected for this project, which is {[project.release.desc]}"></i> 297 <i class="icon-question-sign get-help" title="View all the layers you can build with the release selected for this project, which is {[project.release.desc]}"></i>
298 | 298 |
299 <a href="{% url 'importlayer' %}">Import layer</a></p> 299 <a href="{% url 'importlayer' project.id %}">Import layer</a></p>
300 <ul class="unstyled configuration-list"> 300 <ul class="unstyled configuration-list">
301 <li ng-repeat="l in layers track by l.id" class="animate-repeat"> 301 <li ng-repeat="l in layers track by l.id" class="animate-repeat">
302 <a href="{[l.layerdetailurl]}" class="layer-info" data-toggle="tooltip" tooltip-placement="right" tooltip="{[l.giturl]} | {[l.branch.name]}">{[l.name]}</a> 302 <a href="{[l.layerdetailurl]}" class="layer-info" data-toggle="tooltip" tooltip-placement="right" tooltip="{[l.giturl]} | {[l.branch.name]}">{[l.name]}</a>
@@ -321,7 +321,7 @@ vim: expandtab tabstop=2
321 {% csrf_token %} 321 {% csrf_token %}
322 </form> 322 </form>
323 <p> 323 <p>
324 <a href="{% url 'all-targets' %}">View all compatible recipes</a> 324 <a href="{% url 'all-targets' project.id %}">View all compatible recipes</a>
325 <i class="icon-question-sign get-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i> 325 <i class="icon-question-sign get-help" title="View all the recipes you can build with the release selected for this project, which is {[project.release.desc]}"></i>
326 </p> 326 </p>
327 <div ng-if="frequenttargets.length"> 327 <div ng-if="frequenttargets.length">
@@ -361,7 +361,7 @@ vim: expandtab tabstop=2
361 {% csrf_token %} 361 {% csrf_token %}
362 </form> 362 </form>
363 <p> 363 <p>
364 <a href="{% url 'machines' %}" class="link">View all compatible machines</a> 364 <a href="{% url 'all-machines' project.id %}" class="link">View all compatible machines</a>
365 <i class="icon-question-sign get-help" title="View all the machines you can set with the release selected for this project, which is {[project.release.desc]}"></i> 365 <i class="icon-question-sign get-help" title="View all the machines you can set with the release selected for this project, which is {[project.release.desc]}"></i>
366 </p> 366 </p>
367 </div> 367 </div>
@@ -432,10 +432,10 @@ angular.element(document).ready(function() {
432 scope.urls.xhr_build = "{% url 'xhr_projectbuild' project.id %}"; 432 scope.urls.xhr_build = "{% url 'xhr_projectbuild' project.id %}";
433 scope.urls.xhr_edit = "{% url 'xhr_projectedit' project.id %}"; 433 scope.urls.xhr_edit = "{% url 'xhr_projectedit' project.id %}";
434 scope.urls.xhr_datatypeahead = "{% url 'xhr_datatypeahead' %}"; 434 scope.urls.xhr_datatypeahead = "{% url 'xhr_datatypeahead' %}";
435 scope.urls.layers = "{% url 'layers' %}"; 435 scope.urls.layers = "{% url 'all-layers' project.id %}";
436 scope.urls.targets = "{% url 'all-targets' %}"; 436 scope.urls.targets = "{% url 'all-targets' project.id %}";
437 scope.urls.importlayer = "{% url 'importlayer'%}"; 437 scope.urls.importlayer = "{% url 'importlayer' project.id %}";
438 scope.urls.layer = "{% url 'base_layerdetails' %}"; 438 scope.urls.layer = "{% url 'base_layerdetails' project.id %}";
439 scope.project = {{prj|json}}; 439 scope.project = {{prj|json}};
440 scope.builds = {{builds|json}}; 440 scope.builds = {{builds|json}};
441 scope.layers = {{layers|json}}; 441 scope.layers = {{layers|json}};
diff --git a/bitbake/lib/toaster/toastergui/templates/targets.html b/bitbake/lib/toaster/toastergui/templates/targets.html
index 903e841ae5..dc2cef6882 100644
--- a/bitbake/lib/toaster/toastergui/templates/targets.html
+++ b/bitbake/lib/toaster/toastergui/templates/targets.html
@@ -62,7 +62,7 @@
62 <p>Toaster has no recipe information. To generate recipe information you can:</p> 62 <p>Toaster has no recipe information. To generate recipe information you can:</p>
63 <ul> 63 <ul>
64 <li><a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a></li> 64 <li><a href="http://www.yoctoproject.org/docs/latest/toaster-manual/toaster-manual.html#layer-source">Configure a layer source</a></li>
65 <li><a href="{% url 'importlayer' %}">Import a layer</a>, then run a build</li> 65 <li><a href="{% url 'importlayer' project.id %}">Import a layer</a>, then run a build</li>
66 </ul> 66 </ul>
67 </div> 67 </div>
68 {% endif %} 68 {% endif %}
@@ -84,7 +84,7 @@
84 </td> 84 </td>
85 <td class="target-section">{{o.section}}</td> 85 <td class="target-section">{{o.section}}</td>
86 <td class="license">{{o.license}}</td> 86 <td class="license">{{o.license}}</td>
87 <td class="layer"><a href="{% url 'layerdetails' o.preffered_layerversion.id%}">{{o.preffered_layerversion.layer.name}}</a></td> 87 <td class="layer"><a href="{% url 'layerdetails' project.id o.preffered_layerversion.id%}">{{o.preffered_layerversion.layer.name}}</a></td>
88 <td class="branch"> 88 <td class="branch">
89 {% if o.preffered_layerversion.up_branch %} 89 {% if o.preffered_layerversion.up_branch %}
90 {{o.preffered_layerversion.up_branch.name}} 90 {{o.preffered_layerversion.up_branch.name}}
@@ -101,7 +101,7 @@
101 <a href="{% url 'project' project.id %}#/targetbuild={{o.name}}" class="btn btn-block layer-exists-{{o.preffered_layerversion.pk}}" style="display:none; margin-top: 5px;" > 101 <a href="{% url 'project' project.id %}#/targetbuild={{o.name}}" class="btn btn-block layer-exists-{{o.preffered_layerversion.pk}}" style="display:none; margin-top: 5px;" >
102 Build recipe 102 Build recipe
103 </a> 103 </a>
104 <button class="btn btn-block layerbtn layer-add-{{o.preffered_layerversion.pk}}" data-layer='{ "id": {{o.preffered_layerversion.pk}}, "name": "{{o.preffered_layerversion.layer.name}}", "url": "{%url 'layerdetails' o.preffered_layerversion.pk%}"}' data-directive="add"> 104 <button class="btn btn-block layerbtn layer-add-{{o.preffered_layerversion.pk}}" data-layer='{ "id": {{o.preffered_layerversion.pk}}, "name": "{{o.preffered_layerversion.layer.name}}", "url": "{%url 'layerdetails' project.id o.preffered_layerversion.pk%}"}' data-directive="add">
105 <i class="icon-plus"></i> 105 <i class="icon-plus"></i>
106 Add layer 106 Add layer
107 <i title="" class="icon-question-sign get-help" data-original-title="To build this target, you must first add the {{o.preffered_layerversion.layer.name}} layer to your project"></i></i> 107 <i title="" class="icon-question-sign get-help" data-original-title="To build this target, you must first add the {{o.preffered_layerversion.layer.name}} layer to your project"></i></i>