diff options
Diffstat (limited to 'import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html')
-rw-r--r-- | import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html | 549 |
1 files changed, 323 insertions, 226 deletions
diff --git a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html index 82be3703b..f1569bd63 100644 --- a/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html +++ b/import-layers/yocto-poky/bitbake/lib/toaster/toastergui/templates/layerdetails.html @@ -6,270 +6,367 @@ {% block title %} {{layerversion.layer.name}} - {{project.name}} - Toaster {% endblock %} {% block pagecontent %} -<div class="section"> - <ul class="breadcrumb"> - <li> - <a href="{% url 'project' project.id %}">{{project.name}}</a> - <span class="divider">→</span> - </li> - <li><a href="{% url 'projectlayers' project.id %}">Compatible layers</a> - <span class="divider">→</span> - </li> - <li class="active"> - {{layerversion.layer.name}} ({{layerversion.get_vcs_reference|truncatechars:13}}) - </li> - </ul> +<div id="delete-layer-modal" class="modal fade" tabindex="-1" role="dialog" + data-keyboard="false" data-backdrop="static"> + <div class="modal-dialog" role="document"> + <div class="modal-content"> + <div class="modal-body"> + Are you sure you want to delete the <strong>{{layerversion.layer.name}}</strong> layer? + </div> + <div class="modal-footer"> + <button type="button" id="layer-delete-confirmed" class="btn + btn-primary">Delete layer</button> + <button type="button" class="btn btn-default btn-link" data-dismiss="modal">Cancel</button> + </div> + </div> + </div> </div> -{# If this is not an imported layer then hide the edit ui #} -{% if not layerversion.layer_source_id or layerversion.layer_source.sourcetype != layerversion.layer_source.TYPE_IMPORTED %} -<style scoped> - .icon-pencil { - display:none; - } -.delete-current-value{ - display: none; -} - li .icon-trash { - display:none; - } - .add-deps { - display:none; - } -</style> -{% endif %} - +<div class="row"> + <div class="col-md-12"> + <ul class="breadcrumb"> + <li> + <a href="{% url 'project' project.id %}">{{project.name}}</a> + <span class="divider">→</span> + </li> + <li><a href="{% url 'projectlayers' project.id %}">Compatible layers</a> + <span class="divider">→</span> + </li> + <li class="active"> + {{layerversion.layer.name}} ({{layerversion.get_vcs_reference|truncatechars:13}}) + </li> + </ul> -<script src="{% static 'js/layerdetails.js' %}"></script> -<script> + {# If this is not an imported layer then hide the edit ui #} + {% if layerversion.layer_source != layer_source.TYPE_IMPORTED %} + <style scoped> + .glyphicon-edit { + display:none; + } + .delete-current-value{ + display: none; + } + li .glyphicon-trash { + display:none; + } + .add-deps { + display:none; + } + </style> + {% endif %} - $(document).ready(function (){ - var ctx = { - xhrUpdateLayerUrl : "{% url 'xhr_updatelayer' %}", - layerVersion : { - name : "{{layerversion.layer.name}}", - id : {{layerversion.id}}, - commit: "{{layerversion.get_vcs_reference}}", - {%if layerversion.id in projectlayers %} - inCurrentPrj : true, - {% else %} - inCurrentPrj : false, - {% endif %} - layerdetailurl : "{% url 'layerdetails' project.id layerversion.id %}", - sourceId: {{layerversion.layer_source_id|json}}, - } - }; + <script src="{% static 'js/layerdetails.js' %}"></script> + <script> - try { - layerDetailsPageInit(ctx); - } catch (e) { - document.write("Sorry, An error has occurred loading this page"); - console.warn(e); - } - }); -</script> + $(document).ready(function(){ + var ctx = { + xhrUpdateLayerUrl : "{% url 'xhr_layer' project.id layerversion.pk %}", + layerVersion : { + name : "{{layerversion.layer.name}}", + id : {{layerversion.id}}, + commit: "{{layerversion.get_vcs_reference}}", + {%if layerversion.id in projectlayers %} + inCurrentPrj : true, + {% else %} + inCurrentPrj : false, + {% endif %} + layerdetailurl : "{% url 'layerdetails' project.id layerversion.id %}", + layer_source: {{layerversion.layer_source|json}}, + }, + layerSourceTypes: {{layer_source|json}}, + }; -<div class="row-fluid span11"> - <div class="page-header"> - <h1>{{layerversion.layer.name}} <small class="commit" - {% if layerversion.get_vcs_reference|length > 13 %} - data-toggle="tooltip" title="{{layerversion.get_vcs_reference}}" - {% endif %}> - ({{layerversion.get_vcs_reference|truncatechars:13}})</small></h1> - </div> -</div> + try { + layerDetailsPageInit(ctx); + } catch (e) { + document.write("Sorry, An error has occurred loading this page"); + console.warn(e); + } + }); + </script> -<!-- container for tabs --> -<div class="row-fluid span7 tabbable"> - <div class="alert alert-info lead" id="alert-area" style="display:none"> - <button type="button" class="close" id="dismiss-alert">×</button> - <span id="alert-msg"></span> - </div> - <ul class="nav nav-pills"> - <li class="active"> - <a data-toggle="tab" href="#information" id="details-tab">Layer details</a> - </li> - <li> - <a data-toggle="tab" href="#recipes" class="muted" id="targets-tab">Recipes (<span class="table-count-recipestable"></span>)</a> - </li> - <li> - <a data-toggle="tab" href="#machines" class="muted" id="machines-tab">Machines (<span class="table-count-machinestable"></span>)</a> - </li> - </ul> - <div class="tab-content"> - <span class="button-place"> - {% if layerversion.id not in projectlayers %} - <button id="add-remove-layer-btn" data-directive="add" class="btn btn-large btn-block"> - <span class="icon-plus"></span> - Add the {{layerversion.layer.name}} layer to your project - </button> + <div class="page-header"> + {% if layerversion.layer.local_source_dir %} + <h1>{{layerversion.layer.name}} <small class="commit" style="display:none;"></small> + </h1> {% else %} - <button id="add-remove-layer-btn" data-directive="remove" class="btn btn-block btn-large btn-danger"> - <span class="icon-trash"></span> - Remove the {{layerversion.layer.name}} layer from your project - </button> + <h1>{{layerversion.layer.name}} <small class="commit" + {% if layerversion.get_vcs_reference|length > 13 %} + data-toggle="tooltip" title="{{layerversion.get_vcs_reference}}" + {% endif %}>({{layerversion.get_vcs_reference|truncatechars:13}})</small> + </h1> {% endif %} - </span> + </div> + <div class="row"> + <!-- container for tabs --> + <div class="col-md-8 tabbable"> + <div class="alert alert-info lead" id="alert-area" style="display:none"> + <button type="button" class="close" id="dismiss-alert">×</button> + <span id="alert-msg"></span> + </div> - <!-- layer details pane --> - <div id="information" class="tab-pane active"> - <dl class="dl-horizontal"> - <dt class=""> - <i class="icon-question-sign get-help" title="Fetch/clone URL of the repository"></i> - Repository URL - </dt> - <dd> - <span class="current-value">{{layerversion.layer.vcs_url}}</span> - {% if layerversion.get_vcs_link_url %} - <a href="{{layerversion.get_vcs_link_url}}/" class="icon-share get-info" target="_blank"></a> - {% endif %} - <form id="change-repo-form" class="control-group" style="display:none"> - <div class="input-append"> - <input type="text" class="input-xlarge" value="{{layerversion.layer.vcs_url}}"> - <button data-layer-prop="vcs_url" class="btn change-btn" type="button">Save</button> - <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a> - </div> - </form> - <i class="icon-pencil" ></i> - </dd> - <dt> - <i class="icon-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)"></i> - Repository subdirectory - </dt> - <dd> - <span class="muted" style="display:none">Not set</span> - <span class="current-value">{{layerversion.dirpath}}</span> - {% if layerversion.get_vcs_dirpath_link_url %} - <a href="{{layerversion.get_vcs_dirpath_link_url}}" class="icon-share get-info" target="_blank"></a> - {% endif %} - <form id="change-subdir-form" style="display:none;"> - <div class="input-append"> - <input type="text" value="{{layerversion.dirpath}}"> - <button data-layer-prop="dirpath" class="btn change-btn" type="button">Save</button> - <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a> + {% if layerversion.id not in projectlayers %} + <button id="add-remove-layer-btn" data-directive="add" class="btn btn-default btn-lg btn-block"> + <span class="glyphicon glyphicon-plus"></span> + Add the {{layerversion.layer.name}} layer to your project + </button> + {% else %} + <button id="add-remove-layer-btn" data-directive="remove" class="btn btn-default btn-block btn-lg btn-danger"> + <span class="glyphicon glyphicon-trash"></span> + Remove the {{layerversion.layer.name}} layer from your project + </button> + {% endif %} + + <ul class="nav nav-tabs"> + <li class="active"> + <a data-toggle="tab" href="#information" id="details-tab">Layer details</a> + </li> + <li> + <a data-toggle="tab" href="#recipes" class="text-muted" id="targets-tab">Recipes (<span class="table-count-recipestable"></span>)</a> + </li> + <li> + <a data-toggle="tab" href="#machines" class="text-muted" id="machines-tab">Machines (<span class="table-count-machinestable"></span>)</a> + </li> + </ul> + <div class="tab-content"> + + <!-- layer details pane --> + <div id="information" class="tab-pane active"> + <h3>Layer source code location</h3> + {% if layerversion.layer.local_source_dir %} + <dl class="dl-horizontal" id="directory-info"> + <dt> + Path to the layer directory + </dt> + <dd> + <code>{{layerversion.layer.local_source_dir}}</code> + </dd> + </dl> + {% else %} + <dl class="dl-horizontal" id="git-repo-info"> + <dt class=""> + <span class="glyphicon glyphicon-question-sign get-help" title="Fetch/clone URL of the repository"></span> + Repository URL + </dt> + <dd> + <span class="current-value">{{layerversion.layer.vcs_url}}</span> + {% if layerversion.get_vcs_link_url %} + <a href="{{layerversion.get_vcs_link_url}}/" class="glyphicon glyphicon-new-window" target="_blank"></a> + {% endif %} + <form id="change-repo-form" class="form-inline" style="display:none"> + <div class="form-group"> + <input type="text" class="form-control" value="{{layerversion.layer.vcs_url}}"> </div> </form> - <i id="change-subdir" class="icon-pencil"></i> - <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> - </dd> - <dt> - <i class="icon-question-sign get-help" title="The Git branch, tag or commit"></i> - Git revision - </dt> - <dd> - <span class="current-value">{{layerversion.get_vcs_reference}}</span> - <form style="display:none;"> - <div class="input-append"> - <input type="text" value="{{layerversion.get_vcs_reference}}"> - <button data-layer-prop="commit" class="btn change-btn" type="button">Save</button> - <a href="#" style="display:none" class="btn btn-link cancel">Cancel</a> - </div> - </form> - <i class="icon-pencil"></i> </dd> + {% if layerversion.dirpath %} <dt> - <i class="icon-question-sign get-help" title="Other layers this layer depends upon"></i> - Layer dependencies + <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> + Repository subdirectory </dt> <dd> - <ul class="unstyled current-value" id="layer-deps-list"> - {% for ld in layerversion.dependencies.all %} - <li data-layer-id="{{ld.depends_on.id}}"> - <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> - <span class="icon-trash " data-toggle="tooltip" title="Delete"></span> - </li> - {% endfor %} - </ul> - <div class="input-append add-deps"> - <input type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input"> - <a class="btn" id="add-layer-dependency-btn" > - Add layer - </a> - </div> - <span class="help-block add-deps">You can only add layers Toaster knows about</span> - </dd> - </dl> - </div> - <!-- end layerdetails tab --> - <!-- targets tab --> - <div id="recipes" class="tab-pane"> - <!-- Recipe table --> - <div id="no-recipes-yet" class="alert alert-info" style="display:none"> - <p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p> - <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> - </div> + <span class="text-muted" style="display:none">Not set</span> + <span class="current-value">{{layerversion.dirpath}}</span> + {% if layerversion.get_vcs_dirpath_link_url %} + <a href="{{layerversion.get_vcs_dirpath_link_url}}" class="glyphicon glyphicon-new-window" target="_blank"></a> + {% endif %} + <form id="change-subdir-form" class="form-inline" style="display:none;"> + <div class="form-group"> + <input type="text" class="form-control" value="{{layerversion.dirpath}}"> + </div> + </form> + </dd> + {% endif %} + <dt> + <span class="glyphicon glyphicon-question-sign get-help" title="The Git branch, tag or commit"></span> + Git revision + </dt> + <dd> + <span class="current-value">{{layerversion.get_vcs_reference}}</span> + <form style="display:none;" class="form-inline"> + <div class="form-group"> + <input type="text" class="form-control" value="{{layerversion.get_vcs_reference}}"> + </div> + </form> + </dd> + </dl> + {% endif %} + {% if layerversion.layer_source == layer_source.TYPE_IMPORTED %} + <button class="btn btn-default btn-lg" id="edit-layer-source" style="margin-left:220px;">Edit layer source code location</button> + {% endif %} + <form id="edit-layer-source-form" style="display:none;"> + <fieldset> + <legend class="radioLegend">Where is the layer source code?</legend> + <div class="radio"> + <label> + <input type="radio" name="source-location" id="repo" value="repo"> + In a <strong>Git repository</strong> + </label> + <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> + </div> + <div class="radio" style="margin-top:15px;"> + <label> + <input type="radio" name="source-location" id="dir" value="dir" checked> + In a <strong>directory</strong> + </label> + <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> + </div> + </fieldset> + <fieldset id="layer-git"> + <legend>Git repository information</legend> + <div class="form-group"> + <label for="layer-git-repo-url"> + Git repository URL + <span class="glyphicon glyphicon-question-sign get-help" title="Fetch/clone URL of the repository. Currently, Toaster only supports Git repositories." ></span> + </label> + <input type="text" id="layer-git-repo-url" class="form-control" value="{{layerversion.layer.vcs_url|default_if_none:''}}"> + </div> + <div class="form-group"> + <label for="layer-subdir"> + Repository subdirectory + <span class="text-muted">(optional)</span> + <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> + </label> + <input type="text" class="form-control" id="layer-subdir" value="{{layerversion.dirpath|default_if_none:''}}"> + </div> + <div class="form-group" id="layer-revision-ctrl"> + <label for="layer-git-ref">Git revision + <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> + </label> + <input type="text" class="form-control" id="layer-git-ref" value="{{layerversion.get_vcs_reference|default_if_none:''}}"> + <span class="help-inline" style="display:none;" id="invalid-layer-revision-hint"></span> + </div> + </fieldset> + <fieldset id="layer-dir"> + <legend>Layer directory information</legend> + <div class="form-group"> + <label for="layer-dir-path"> + Enter the absolute path to the layer directory + </label> + <input type="text" id="layer-dir-path-in-details" class="form-control" value="{{layerversion.layer.local_source_dir}}" required> + </div> + </fieldset> - {% url 'layerrecipestable' project.id layerversion.id as xhr_table_url %} - {% with "recipestable" as table_name %} - {% with "Recipes" as title %} - {% include 'toastertable-simple.html' %} - {% endwith %} - {% endwith %} - </div> + <div style="margin-top:25px;"> + <a href="#" class="btn btn-primary btn-lg" id="save-changes-for-switch">Save changes</a> + <a href="#" class="btn btn-link btn-lg" id="cancel-changes-for-switch">Cancel</a> + </div> + </form> - <div id="machines" class="tab-pane"> + <h3 class="top-air">Layer dependencies + <span class="glyphicon glyphicon-question-sign get-help" title="Other layers this layer depends upon"></span> + </h3> - <div id="no-machines-yet" class="alert alert-info" style="display:none"> - <p>Toaster does not have machine information for the <strong> {{layerversion.layer.name}} </strong> layer.</p> - <p>Toaster learns about layers when you build them. If this layer provides any machines, they will be listed here after you build the <strong> {{layerversion.layer.name}} </strong> layer.</p> - </div> + <ul class="list-unstyled current-value lead" id="layer-deps-list"> + {% for ld in layerversion.dependencies.all %} + <li data-layer-id="{{ld.depends_on.id}}"> + <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> + <span class="glyphicon glyphicon-trash " data-toggle="tooltip" title="Delete"></span> + </li> + {% endfor %} + </ul> + <form class="form-inline add-deps"> + <div class="form-group"> + <input class="form-control" type="text" autocomplete="off" data-minLength="1" data-autocomplete="off" placeholder="Type a layer name" id="layer-dep-input"> + </div> + <a class="btn btn-default" id="add-layer-dependency-btn" disabled="disabled"> + Add layer + </a> + <span class="help-block add-deps">You can only add layers Toaster knows about</span> + </form> + </div> + <!-- end layerdetails tab --> + <!-- targets tab --> + <div id="recipes" class="tab-pane"> + <!-- Recipe table --> + <div id="no-recipes-yet" class="alert alert-info" style="display:none"> + <p>Toaster does not have recipe information for the <strong> {{layerversion.layer.name}} </strong> layer.</p> + <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> + </div> + {% url 'layerrecipestable' project.id layerversion.id as xhr_table_url %} + {% with "recipestable" as table_name %} + {% with "Recipes" as title %} + {% include 'toastertable-simple.html' %} + {% endwith %} + {% endwith %} + </div> + <div id="machines" class="tab-pane"> - <!-- Machines table --> - {% url 'layermachinestable' project.id layerversion.id as xhr_table_url %} - {% with "machinestable" as table_name %} - {% with "Machines" as title %} - {% include 'toastertable-simple.html' %} - {% endwith %} - {% endwith %} + <div id="no-machines-yet" class="alert alert-info" style="display:none"> + <p>Toaster does not have machine information for the <strong> {{layerversion.layer.name}} </strong> layer.</p> + <p>Sadly, machine information cannot be obtained from builds, so this page will remain empty.</p> </div> - </div> <!-- end tab content --> - </div> <!-- end tabable --> - <div class="row-fluid span4 well"> <!-- info side panel --> + + <!-- Machines table --> + {% url 'layermachinestable' project.id layerversion.id as xhr_table_url %} + {% with "machinestable" as table_name %} + {% with "Machines" as title %} + {% include 'toastertable-simple.html' %} + {% endwith %} + {% endwith %} + </div> + </div> <!-- end tab content --> + </div> <!-- end tabable --> + + <div class="col-md-4"> <!-- info side panel --> + <div class="well"> <h2>About {{layerversion.layer.name}}</h2> <dl class="item-info"> <dt> - Summary - <i class="icon-question-sign get-help" title="One-line description of the layer"></i> + Summary + <span class="glyphicon glyphicon-question-sign get-help" title="One-line description of the layer"></span> </dt> <dd> - <span class="muted" style="display:none">Not set</span> - <span class="current-value">{{layerversion.layer.summary|default_if_none:''}}</span> - <form style="display:none; margin-bottom:20px"> - <textarea class="span12" rows="2">{% if layerversion.layer.summary %}{{layerversion.layer.summary}}{% endif %}</textarea> - <button class="btn change-btn" data-layer-prop="summary" type="button">Save</button> - <a href="#" class="btn btn-link cancel">Cancel</a> - </form> - <i class="icon-pencil"></i> - <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> + <span class="text-muted" style="display:none">Not set</span> + <span class="current-value">{{layerversion.layer.summary|default_if_none:''}}</span> + <form style="display:none; margin-bottom:20px; margin-top:5px;"> + <div class="form-group"> + <textarea class="form-control" rows="2">{% if layerversion.layer.summary %}{{layerversion.layer.summary}}{% endif %}</textarea> + </div> + <button class="btn btn-default change-btn" data-layer-prop="summary" type="button">Save</button> + <a href="#" class="btn btn-link cancel">Cancel</a> + </form> + <span class="glyphicon glyphicon-edit"></span> + <span class="glyphicon glyphicon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> </dd> <dt> - Description + Description </dt> <dd> - <span class="muted" style="display:none">Not set</span> - <span class="current-value">{{layerversion.layer.description|default_if_none:''}}</span> - <form style="display:none; margin-bottom:20px"> - <textarea class="span12" rows="6">{% if layerversion.layer.description %}{{layerversion.layer.description}}{% endif %}</textarea> - <button class="btn change-btn" data-layer-prop="description" type="button" >Save</button> - <a href="#" class="btn btn-link cancel">Cancel</a> - </form> - <i class="icon-pencil"></i> - <span class="icon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> + <span class="text-muted" style="display:none">Not set</span> + <span class="current-value">{{layerversion.layer.description|default_if_none:''}}</span> + <form style="display:none; margin-bottom:20px; margin-top:5px;"> + <div class="form-group"> + <textarea class="form-control" rows="6">{% if layerversion.layer.description %}{{layerversion.layer.description}}{% endif %}</textarea> + </div> + <button class="btn btn-default change-btn" data-layer-prop="description" type="button" >Save</button> + <a href="#" class="btn btn-link cancel">Cancel</a> + </form> + <span class="glyphicon glyphicon-edit"></span> + <span class="glyphicon glyphicon-trash delete-current-value" data-toggle="tooltip" title="Delete"></span> </dd> - {% if layerversion.layer.up_id %} + {% if layerversion.layer_source == layer_source.TYPE_LAYERINDEX %} <dt>Layer index</dt> <dd> - <a href="http://layers.openembedded.org/layerindex/branch/{{layerversion.up_branch.name}}/layer/{{layerversion.layer.name}}">layer index link</a> - - </dd> + <a href="http://layers.openembedded.org/layerindex/branch/{{layerversion.release.name}}/layer/{{layerversion.layer.name}}">Layer index {{layerversion.layer.name}}</a> + </dd> + {% endif %} + </dl> + {# Only show delete link for imported layers #} + {% if layerversion.layer_source == layer_source.TYPE_IMPORTED %} + <i class="icon-trash text-danger"></i> + <a href="#delete-layer-modal" role="button" class="text-danger" + data-toggle="modal" data-target="#delete-layer-modal">Delete layer</a> {% endif %} - - </dl> + </div> </div> + </div> + </div> <!-- close column 12 div --> +</div> <!-- close top row div --> - {% endblock %} +{% endblock %} |