xref: /OK3568_Linux_fs/yocto/poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun{% extends project_specific|yesno:"baseprojectspecificpage.html,base.html" %}
2*4882a593Smuzhiyun{% load projecttags %}
3*4882a593Smuzhiyun{% load humanize %}
4*4882a593Smuzhiyun{% load static %}
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun{% block title %} {{layerversion.layer.name}} - {{project.name}} - Toaster {% endblock %}
7*4882a593Smuzhiyun{% block pagecontent %}
8*4882a593Smuzhiyun
9*4882a593Smuzhiyun<div id="delete-layer-modal" class="modal fade" tabindex="-1" role="dialog"
10*4882a593Smuzhiyun    data-keyboard="false" data-backdrop="static">
11*4882a593Smuzhiyun  <div class="modal-dialog" role="document">
12*4882a593Smuzhiyun    <div class="modal-content">
13*4882a593Smuzhiyun      <div class="modal-body">
14*4882a593Smuzhiyun		  Are you sure you want to delete the <strong>{{layerversion.layer.name}}</strong> layer?
15*4882a593Smuzhiyun      </div>
16*4882a593Smuzhiyun      <div class="modal-footer">
17*4882a593Smuzhiyun        <button type="button" id="layer-delete-confirmed" class="btn
18*4882a593Smuzhiyun            btn-primary">Delete layer</button>
19*4882a593Smuzhiyun        <button type="button" class="btn btn-default btn-link" data-dismiss="modal">Cancel</button>
20*4882a593Smuzhiyun      </div>
21*4882a593Smuzhiyun    </div>
22*4882a593Smuzhiyun  </div>
23*4882a593Smuzhiyun</div>
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun<div class="row">
26*4882a593Smuzhiyun  <div class="col-md-12">
27*4882a593Smuzhiyun    <ul class="breadcrumb">
28*4882a593Smuzhiyun      <li>
29*4882a593Smuzhiyun        <a href="{% url 'project' project.id %}">{{project.name}}</a>
30*4882a593Smuzhiyun        <span class="divider">&rarr;</span>
31*4882a593Smuzhiyun      </li>
32*4882a593Smuzhiyun      <li><a href="{% url 'projectlayers' project.id %}">Compatible layers</a>
33*4882a593Smuzhiyun        <span class="divider">&rarr;</span>
34*4882a593Smuzhiyun      </li>
35*4882a593Smuzhiyun      <li class="active">
36*4882a593Smuzhiyun        {{layerversion.layer.name}} ({{layerversion.get_vcs_reference|truncatechars:13}})
37*4882a593Smuzhiyun      </li>
38*4882a593Smuzhiyun    </ul>
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun    {# If this is not an imported layer then hide the edit ui #}
41*4882a593Smuzhiyun    {% if layerversion.layer_source != layer_source.TYPE_IMPORTED %}
42*4882a593Smuzhiyun    <style scoped>
43*4882a593Smuzhiyun    .glyphicon-edit {
44*4882a593Smuzhiyun      display:none;
45*4882a593Smuzhiyun    }
46*4882a593Smuzhiyun    .delete-current-value{
47*4882a593Smuzhiyun      display: none;
48*4882a593Smuzhiyun    }
49*4882a593Smuzhiyun    li .glyphicon-trash {
50*4882a593Smuzhiyun      display:none;
51*4882a593Smuzhiyun    }
52*4882a593Smuzhiyun    .add-deps {
53*4882a593Smuzhiyun     display:none;
54*4882a593Smuzhiyun    }
55*4882a593Smuzhiyun    </style>
56*4882a593Smuzhiyun    {% endif %}
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun    <script src="{% static 'js/layerdetails.js' %}"></script>
59*4882a593Smuzhiyun    <script>
60*4882a593Smuzhiyun
61*4882a593Smuzhiyun    $(document).ready(function(){
62*4882a593Smuzhiyun      var ctx = {
63*4882a593Smuzhiyun        xhrUpdateLayerUrl : "{% url 'xhr_layer' project.id layerversion.pk %}",
64*4882a593Smuzhiyun        layerVersion : {
65*4882a593Smuzhiyun          name : "{{layerversion.layer.name}}",
66*4882a593Smuzhiyun          id : {{layerversion.id}},
67*4882a593Smuzhiyun          commit: "{{layerversion.get_vcs_reference}}",
68*4882a593Smuzhiyun          {%if layerversion.id in projectlayers %}
69*4882a593Smuzhiyun          inCurrentPrj : true,
70*4882a593Smuzhiyun          {% else %}
71*4882a593Smuzhiyun          inCurrentPrj : false,
72*4882a593Smuzhiyun          {% endif %}
73*4882a593Smuzhiyun          layerdetailurl : "{% url 'layerdetails' project.id layerversion.id  %}",
74*4882a593Smuzhiyun          xhrLayerUrl: "{% url 'xhr_layer' project.id layerversion.id  %}",
75*4882a593Smuzhiyun          layer_source: {{layerversion.layer_source|json}},
76*4882a593Smuzhiyun        },
77*4882a593Smuzhiyun        layerSourceTypes: {{layer_source|json}},
78*4882a593Smuzhiyun      };
79*4882a593Smuzhiyun
80*4882a593Smuzhiyun      try {
81*4882a593Smuzhiyun        layerDetailsPageInit(ctx);
82*4882a593Smuzhiyun      } catch (e) {
83*4882a593Smuzhiyun        document.write("Sorry, An error has occurred loading this page");
84*4882a593Smuzhiyun        console.warn(e);
85*4882a593Smuzhiyun      }
86*4882a593Smuzhiyun    });
87*4882a593Smuzhiyun    </script>
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun    <div class="page-header">
90*4882a593Smuzhiyun      {% if layerversion.layer.local_source_dir %}
91*4882a593Smuzhiyun      <h1>{{layerversion.layer.name}} <small class="commit" style="display:none;"></small>
92*4882a593Smuzhiyun      </h1>
93*4882a593Smuzhiyun      {% else %}
94*4882a593Smuzhiyun      <h1>{{layerversion.layer.name}} <small class="commit"
95*4882a593Smuzhiyun        {% if layerversion.get_vcs_reference|length > 13 %}
96*4882a593Smuzhiyun           data-toggle="tooltip" title="{{layerversion.get_vcs_reference}}"
97*4882a593Smuzhiyun        {% endif %}>({{layerversion.get_vcs_reference|truncatechars:13}})</small>
98*4882a593Smuzhiyun      </h1>
99*4882a593Smuzhiyun      {% endif %}
100*4882a593Smuzhiyun    </div>
101*4882a593Smuzhiyun    <div class="row">
102*4882a593Smuzhiyun      <!-- container for tabs -->
103*4882a593Smuzhiyun      <div class="col-md-8 tabbable">
104*4882a593Smuzhiyun        <div class="alert alert-info lead" id="alert-area" style="display:none">
105*4882a593Smuzhiyun          <button type="button" class="close" id="dismiss-alert">&times;</button>
106*4882a593Smuzhiyun          <span id="alert-msg"></span>
107*4882a593Smuzhiyun        </div>
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun        {% if layerversion.id not in projectlayers %}
110*4882a593Smuzhiyun         <button id="add-remove-layer-btn" data-directive="add" class="btn btn-default btn-lg btn-block">
111*4882a593Smuzhiyun           <span class="glyphicon glyphicon-plus"></span>
112*4882a593Smuzhiyun           Add the {{layerversion.layer.name}} layer to your project
113*4882a593Smuzhiyun         </button>
114*4882a593Smuzhiyun         {% else %}
115*4882a593Smuzhiyun         <button id="add-remove-layer-btn" data-directive="remove" class="btn btn-default btn-block btn-lg btn-danger">
116*4882a593Smuzhiyun           <span class="glyphicon glyphicon-trash"></span>
117*4882a593Smuzhiyun           Remove the {{layerversion.layer.name}} layer from your project
118*4882a593Smuzhiyun         </button>
119*4882a593Smuzhiyun         {% endif %}
120*4882a593Smuzhiyun
121*4882a593Smuzhiyun        <ul class="nav nav-tabs">
122*4882a593Smuzhiyun          <li class="active">
123*4882a593Smuzhiyun            <a data-toggle="tab" href="#information" id="details-tab">Layer details</a>
124*4882a593Smuzhiyun          </li>
125*4882a593Smuzhiyun          <li>
126*4882a593Smuzhiyun            <a data-toggle="tab" href="#recipes" class="text-muted" id="targets-tab">Recipes (<span class="table-count-recipestable"></span>)</a>
127*4882a593Smuzhiyun          </li>
128*4882a593Smuzhiyun          <li>
129*4882a593Smuzhiyun            <a data-toggle="tab" href="#machines" class="text-muted" id="machines-tab">Machines (<span class="table-count-machinestable"></span>)</a>
130*4882a593Smuzhiyun          </li>
131*4882a593Smuzhiyun        </ul>
132*4882a593Smuzhiyun        <div class="tab-content">
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun          <!-- layer details pane -->
135*4882a593Smuzhiyun          <div id="information" class="tab-pane active">
136*4882a593Smuzhiyun           <h3>Layer source code location</h3>
137*4882a593Smuzhiyun           {% if layerversion.layer.local_source_dir %}
138*4882a593Smuzhiyun           <dl class="dl-horizontal" id="directory-info">
139*4882a593Smuzhiyun             <dt>
140*4882a593Smuzhiyun               Path to the layer directory
141*4882a593Smuzhiyun             </dt>
142*4882a593Smuzhiyun             <dd>
143*4882a593Smuzhiyun               <code>{{layerversion.layer.local_source_dir}}</code>
144*4882a593Smuzhiyun             </dd>
145*4882a593Smuzhiyun           </dl>
146*4882a593Smuzhiyun           {% else %}
147*4882a593Smuzhiyun            <dl class="dl-horizontal" id="git-repo-info">
148*4882a593Smuzhiyun              <dt class="">
149*4882a593Smuzhiyun              <span class="glyphicon glyphicon-question-sign get-help" title="Fetch/clone URL of the repository"></span>
150*4882a593Smuzhiyun              Repository URL
151*4882a593Smuzhiyun              </dt>
152*4882a593Smuzhiyun              <dd>
153*4882a593Smuzhiyun              <span class="current-value">{{layerversion.layer.vcs_url}}</span>
154*4882a593Smuzhiyun              {% if layerversion.get_vcs_link_url %}
155*4882a593Smuzhiyun              <a href="{{layerversion.get_vcs_link_url}}/" class="glyphicon glyphicon-new-window" target="_blank"></a>
156*4882a593Smuzhiyun              {% endif %}
157*4882a593Smuzhiyun              <form id="change-repo-form" class="form-inline" style="display:none">
158*4882a593Smuzhiyun                <div class="form-group">
159*4882a593Smuzhiyun                  <input type="text" class="form-control" value="{{layerversion.layer.vcs_url}}">
160*4882a593Smuzhiyun                </div>
161*4882a593Smuzhiyun              </form>
162*4882a593Smuzhiyun              </dd>
163*4882a593Smuzhiyun             {% if layerversion.dirpath %}
164*4882a593Smuzhiyun              <dt>
165*4882a593Smuzhiyun              <span class="glyphicon glyphicon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></span>
166*4882a593Smuzhiyun              Repository subdirectory
167*4882a593Smuzhiyun              </dt>
168*4882a593Smuzhiyun              <dd>
169*4882a593Smuzhiyun              <span class="text-muted" style="display:none">Not set</span>
170*4882a593Smuzhiyun              <span class="current-value">{{layerversion.dirpath}}</span>
171*4882a593Smuzhiyun              {% if layerversion.get_vcs_dirpath_link_url %}
172*4882a593Smuzhiyun              <a href="{{layerversion.get_vcs_dirpath_link_url}}" class="glyphicon glyphicon-new-window" target="_blank"></a>
173*4882a593Smuzhiyun              {% endif %}
174*4882a593Smuzhiyun              <form id="change-subdir-form" class="form-inline" style="display:none;">
175*4882a593Smuzhiyun                <div class="form-group">
176*4882a593Smuzhiyun                  <input type="text" class="form-control" value="{{layerversion.dirpath}}">
177*4882a593Smuzhiyun                </div>
178*4882a593Smuzhiyun              </form>
179*4882a593Smuzhiyun              </dd>
180*4882a593Smuzhiyun              {% endif %}
181*4882a593Smuzhiyun              <dt>
182*4882a593Smuzhiyun              <span class="glyphicon glyphicon-question-sign get-help" title="The Git branch, tag or commit"></span>
183*4882a593Smuzhiyun              Git revision
184*4882a593Smuzhiyun              </dt>
185*4882a593Smuzhiyun              <dd>
186*4882a593Smuzhiyun              <span class="current-value">{{layerversion.get_vcs_reference}}</span>
187*4882a593Smuzhiyun              <form style="display:none;" class="form-inline">
188*4882a593Smuzhiyun                <div class="form-group">
189*4882a593Smuzhiyun                  <input type="text" class="form-control" value="{{layerversion.get_vcs_reference}}">
190*4882a593Smuzhiyun                </div>
191*4882a593Smuzhiyun              </form>
192*4882a593Smuzhiyun              </dd>
193*4882a593Smuzhiyun            </dl>
194*4882a593Smuzhiyun            {% endif %}
195*4882a593Smuzhiyun            {% if layerversion.layer_source == layer_source.TYPE_IMPORTED %}
196*4882a593Smuzhiyun            <button class="btn btn-default btn-lg" id="edit-layer-source" style="margin-left:220px;">Edit layer source code location</button>
197*4882a593Smuzhiyun            {% endif %}
198*4882a593Smuzhiyun           <form id="edit-layer-source-form" style="display:none;">
199*4882a593Smuzhiyun             <fieldset>
200*4882a593Smuzhiyun               <legend class="radioLegend">Where is the layer source code?</legend>
201*4882a593Smuzhiyun               <div class="radio">
202*4882a593Smuzhiyun                 <label>
203*4882a593Smuzhiyun                   <input type="radio" name="source-location" id="repo" value="repo">
204*4882a593Smuzhiyun                   In a <strong>Git repository</strong>
205*4882a593Smuzhiyun                 </label>
206*4882a593Smuzhiyun                 <p class="help-block" style="margin-left:20px;width:70%;">To build the layer Toaster must be able to access the Git repository, otherwise builds will fail. Toaster will fetch and checkout your chosen Git revision every time you start a build.</p>
207*4882a593Smuzhiyun               </div>
208*4882a593Smuzhiyun               <div class="radio" style="margin-top:15px;">
209*4882a593Smuzhiyun                 <label>
210*4882a593Smuzhiyun                   <input type="radio" name="source-location" id="dir" value="dir" checked>
211*4882a593Smuzhiyun                   In a <strong>directory</strong>
212*4882a593Smuzhiyun                 </label>
213*4882a593Smuzhiyun                 <p class="help-block" style="margin-left:20px;width:70%;">Use this option for quick layer development, by simply providing the path to the layer source code.</p>
214*4882a593Smuzhiyun               </div>
215*4882a593Smuzhiyun             </fieldset>
216*4882a593Smuzhiyun
217*4882a593Smuzhiyun             <fieldset id="layer-git">
218*4882a593Smuzhiyun               <legend>Git repository information</legend>
219*4882a593Smuzhiyun               <div class="form-group">
220*4882a593Smuzhiyun                 <label for="layer-git-repo-url">
221*4882a593Smuzhiyun                   Git repository URL
222*4882a593Smuzhiyun                   <span class="glyphicon glyphicon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories." ></span>
223*4882a593Smuzhiyun                 </label>
224*4882a593Smuzhiyun                 <input type="text" id="layer-git-repo-url" class="form-control" value="{{layerversion.layer.vcs_url|default_if_none:''}}">
225*4882a593Smuzhiyun               </div>
226*4882a593Smuzhiyun               <div class="form-group">
227*4882a593Smuzhiyun                 <label for="layer-subdir">
228*4882a593Smuzhiyun                   Repository subdirectory
229*4882a593Smuzhiyun                   <span class="text-muted">(optional)</span>
230*4882a593Smuzhiyun                   <span class="glyphicon glyphicon-question-sign get-help" title="Subdirectory within the repository where the layer is located, if not in the root (usually only used if the repository contains more than one layer)"></span>
231*4882a593Smuzhiyun                 </label>
232*4882a593Smuzhiyun                 <input type="text" class="form-control" id="layer-subdir" value="{{layerversion.dirpath|default_if_none:''}}">
233*4882a593Smuzhiyun               </div>
234*4882a593Smuzhiyun               <div class="form-group" id="layer-revision-ctrl">
235*4882a593Smuzhiyun                 <label for="layer-git-ref">Git revision
236*4882a593Smuzhiyun                   <span class="glyphicon glyphicon-question-sign get-help" title="You can provide a Git branch, a tag or a commit SHA as the revision"></span>
237*4882a593Smuzhiyun                 </label>
238*4882a593Smuzhiyun                 <input type="text" class="form-control" id="layer-git-ref" value="{{layerversion.get_vcs_reference|default_if_none:''}}">
239*4882a593Smuzhiyun                 <span class="help-inline" style="display:none;" id="invalid-layer-revision-hint"></span>
240*4882a593Smuzhiyun               </div>
241*4882a593Smuzhiyun             </fieldset>
242*4882a593Smuzhiyun
243*4882a593Smuzhiyun             <fieldset id="layer-dir">
244*4882a593Smuzhiyun               <legend>Layer directory information</legend>
245*4882a593Smuzhiyun               <div class="form-group">
246*4882a593Smuzhiyun                 <label for="layer-dir-path">
247*4882a593Smuzhiyun                   Enter the absolute path to the layer directory
248*4882a593Smuzhiyun                 </label>
249*4882a593Smuzhiyun                 <input type="text" id="layer-dir-path-in-details" class="form-control" value="{{layerversion.layer.local_source_dir}}" required>
250*4882a593Smuzhiyun               </div>
251*4882a593Smuzhiyun             </fieldset>
252*4882a593Smuzhiyun
253*4882a593Smuzhiyun             <div style="margin-top:25px;">
254*4882a593Smuzhiyun               <a href="#" class="btn btn-primary btn-lg" id="save-changes-for-switch">Save changes</a>
255*4882a593Smuzhiyun               <a href="#" class="btn btn-link btn-lg" id="cancel-changes-for-switch">Cancel</a>
256*4882a593Smuzhiyun             </div>
257*4882a593Smuzhiyun           </form>
258*4882a593Smuzhiyun
259*4882a593Smuzhiyun           <h3 class="top-air">Layer dependencies
260*4882a593Smuzhiyun             <span class="glyphicon glyphicon-question-sign get-help" title="Other layers this layer depends upon"></span>
261*4882a593Smuzhiyun           </h3>
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun           <ul class="list-unstyled current-value lead" id="layer-deps-list">
264*4882a593Smuzhiyun             {% for ld in layerversion.dependencies.all %}
265*4882a593Smuzhiyun             <li data-layer-id="{{ld.depends_on.id}}">
266*4882a593Smuzhiyun             <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>
267*4882a593Smuzhiyun             <span class="glyphicon glyphicon-trash " data-toggle="tooltip" title="Delete"></span>
268*4882a593Smuzhiyun             </li>
269*4882a593Smuzhiyun             {% endfor %}
270*4882a593Smuzhiyun           </ul>
271*4882a593Smuzhiyun           <form class="form-inline add-deps">
272*4882a593Smuzhiyun             <div class="form-group">
273*4882a593Smuzhiyun               <input class="form-control" type="text" autocomplete="off" data-minLength="1" data-autocomplete="off"  placeholder="Type a layer name" id="layer-dep-input">
274*4882a593Smuzhiyun             </div>
275*4882a593Smuzhiyun             <a class="btn btn-default" id="add-layer-dependency-btn" disabled="disabled">
276*4882a593Smuzhiyun               Add layer
277*4882a593Smuzhiyun             </a>
278*4882a593Smuzhiyun             <span class="help-block add-deps">You can only add layers Toaster knows about</span>
279*4882a593Smuzhiyun           </form>
280*4882a593Smuzhiyun         </div>
281*4882a593Smuzhiyun          <!-- end layerdetails tab -->
282*4882a593Smuzhiyun          <!-- targets tab -->
283*4882a593Smuzhiyun          <div id="recipes" class="tab-pane">
284*4882a593Smuzhiyun            <!-- Recipe table -->
285*4882a593Smuzhiyun            <div id="no-recipes-yet" class="alert alert-info" style="display:none">
286*4882a593Smuzhiyun              <p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
287*4882a593Smuzhiyun              <p>Toaster learns about layers when you build them. If this layer provides any recipes, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p>
288*4882a593Smuzhiyun            </div>
289*4882a593Smuzhiyun            {% url 'layerrecipestable' project.id layerversion.id  as xhr_table_url %}
290*4882a593Smuzhiyun            {% with "recipestable" as table_name %}
291*4882a593Smuzhiyun            {% with "Recipes" as title %}
292*4882a593Smuzhiyun            {% include 'toastertable-simple.html' %}
293*4882a593Smuzhiyun            {% endwith %}
294*4882a593Smuzhiyun            {% endwith %}
295*4882a593Smuzhiyun          </div>
296*4882a593Smuzhiyun
297*4882a593Smuzhiyun          <div id="machines" class="tab-pane">
298*4882a593Smuzhiyun
299*4882a593Smuzhiyun            <div id="no-machines-yet" class="alert alert-info" style="display:none">
300*4882a593Smuzhiyun              <p>Toaster does not have machine information for the <strong> {{layerversion.layer.name}} </strong> layer.</p>
301*4882a593Smuzhiyun              <p>Sadly, machine information cannot be obtained from builds, so this page will remain empty.</p>
302*4882a593Smuzhiyun            </div>
303*4882a593Smuzhiyun
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun            <!-- Machines table -->
306*4882a593Smuzhiyun            {% url 'layermachinestable' project.id layerversion.id  as xhr_table_url %}
307*4882a593Smuzhiyun            {% with "machinestable" as table_name  %}
308*4882a593Smuzhiyun            {% with "Machines" as title  %}
309*4882a593Smuzhiyun            {% include 'toastertable-simple.html' %}
310*4882a593Smuzhiyun            {% endwith %}
311*4882a593Smuzhiyun            {% endwith %}
312*4882a593Smuzhiyun          </div>
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun        </div> <!-- end tab content -->
315*4882a593Smuzhiyun      </div> <!-- end tabable -->
316*4882a593Smuzhiyun
317*4882a593Smuzhiyun      <div class="col-md-4"> <!-- info side panel -->
318*4882a593Smuzhiyun        <div class="well">
319*4882a593Smuzhiyun          <h2>About {{layerversion.layer.name}}</h2>
320*4882a593Smuzhiyun          <dl class="item-info">
321*4882a593Smuzhiyun
322*4882a593Smuzhiyun            <dt>
323*4882a593Smuzhiyun            Summary
324*4882a593Smuzhiyun            <span class="glyphicon glyphicon-question-sign get-help" title="One-line description of the layer"></span>
325*4882a593Smuzhiyun            </dt>
326*4882a593Smuzhiyun            <dd>
327*4882a593Smuzhiyun            <span class="text-muted" style="display:none">Not set</span>
328*4882a593Smuzhiyun            <span class="current-value">{{layerversion.layer.summary|default_if_none:''}}</span>
329*4882a593Smuzhiyun            <form style="display:none; margin-bottom:20px; margin-top:5px;">
330*4882a593Smuzhiyun              <div class="form-group">
331*4882a593Smuzhiyun                <textarea class="form-control" rows="2">{% if layerversion.layer.summary %}{{layerversion.layer.summary}}{% endif %}</textarea>
332*4882a593Smuzhiyun              </div>
333*4882a593Smuzhiyun              <button class="btn btn-default change-btn" data-layer-prop="summary" type="button">Save</button>
334*4882a593Smuzhiyun              <a href="#" class="btn btn-link cancel">Cancel</a>
335*4882a593Smuzhiyun            </form>
336*4882a593Smuzhiyun            <span class="glyphicon glyphicon-edit"></span>
337*4882a593Smuzhiyun            <span class="glyphicon glyphicon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
338*4882a593Smuzhiyun            </dd>
339*4882a593Smuzhiyun            <dt>
340*4882a593Smuzhiyun            Description
341*4882a593Smuzhiyun            </dt>
342*4882a593Smuzhiyun            <dd>
343*4882a593Smuzhiyun            <span class="text-muted" style="display:none">Not set</span>
344*4882a593Smuzhiyun            <span class="current-value">{{layerversion.layer.description|default_if_none:''}}</span>
345*4882a593Smuzhiyun            <form style="display:none; margin-bottom:20px; margin-top:5px;">
346*4882a593Smuzhiyun              <div class="form-group">
347*4882a593Smuzhiyun                <textarea class="form-control" rows="6">{% if layerversion.layer.description %}{{layerversion.layer.description}}{% endif %}</textarea>
348*4882a593Smuzhiyun              </div>
349*4882a593Smuzhiyun              <button class="btn btn-default change-btn" data-layer-prop="description" type="button" >Save</button>
350*4882a593Smuzhiyun              <a href="#" class="btn btn-link cancel">Cancel</a>
351*4882a593Smuzhiyun            </form>
352*4882a593Smuzhiyun            <span class="glyphicon glyphicon-edit"></span>
353*4882a593Smuzhiyun            <span class="glyphicon glyphicon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span>
354*4882a593Smuzhiyun            </dd>
355*4882a593Smuzhiyun            {% if layerversion.layer_source == layer_source.TYPE_LAYERINDEX  %}
356*4882a593Smuzhiyun            <dt>Layer index</dt>
357*4882a593Smuzhiyun            <dd>
358*4882a593Smuzhiyun            <a href="https://layers.openembedded.org/layerindex/branch/{{layerversion.release.name}}/layer/{{layerversion.layer.name}}">Layer index {{layerversion.layer.name}}</a>
359*4882a593Smuzhiyun            </dd>
360*4882a593Smuzhiyun            {% endif %}
361*4882a593Smuzhiyun          </dl>
362*4882a593Smuzhiyun          {# Only show delete link for imported layers #}
363*4882a593Smuzhiyun          {% if layerversion.layer_source == layer_source.TYPE_IMPORTED %}
364*4882a593Smuzhiyun          <i class="icon-trash text-danger"></i>
365*4882a593Smuzhiyun          <a href="#delete-layer-modal"  role="button" class="text-danger"
366*4882a593Smuzhiyun              data-toggle="modal" data-target="#delete-layer-modal">Delete layer</a>
367*4882a593Smuzhiyun          {% endif %}
368*4882a593Smuzhiyun        </div>
369*4882a593Smuzhiyun      </div>
370*4882a593Smuzhiyun    </div>
371*4882a593Smuzhiyun  </div> <!-- close column 12 div -->
372*4882a593Smuzhiyun</div> <!-- close top row div -->
373*4882a593Smuzhiyun
374*4882a593Smuzhiyun{% endblock %}
375