var machineTab = $("#machines-tab");
var detailsTab = $("#details-tab");
var editLayerSource = $("#edit-layer-source");
+ var saveSourceChangesBtn = $("#save-changes-for-switch");
+ var layerGitRefInput = $("#layer-git-ref");
+ var layerSubDirInput = $('#layer-subdir');
+
+ targetTab.on('show.bs.tab', targetsTabShow);
+ detailsTab.on('show.bs.tab', detailsTabShow);
+ machineTab.on('show.bs.tab', machinesTabShow);
/* setup the dependencies typeahead */
- libtoaster.makeTypeahead(layerDepInput, libtoaster.ctx.layersTypeAheadUrl, { include_added: "true" }, function(item){
+ libtoaster.makeTypeahead(layerDepInput,
+ libtoaster.ctx.layersTypeAheadUrl,
+ { include_added: "true" }, function(item){
currentLayerDepSelection = item;
-
layerDepBtn.removeAttr("disabled");
});
}
});
- $(window).on('hashchange', function(e){
- switch(window.location.hash){
- case '#machines':
- machineTab.tab('show');
- break;
- case '#recipes':
- targetTab.tab('show');
- break;
- default:
- detailsTab.tab('show');
- break;
- }
- });
-
function addRemoveDep(depLayerId, add, doneCb) {
var data = { layer_version_id : ctx.layerVersion.id };
if (add)
});
});
+
function defaultAddBtnText(){
var text = " Add the "+ctx.layerVersion.name+" layer to your project";
addRmLayerBtn.text(text);
addRmLayerBtn.removeClass("btn-danger");
}
- detailsTab.on('show', function(){
+ function detailsTabShow(){
if (!ctx.layerVersion.inCurrentPrj)
defaultAddBtnText();
- window.location.hash = "details";
- });
+ window.location.hash = "information";
+ }
function targetsTabShow(){
if (!ctx.layerVersion.inCurrentPrj){
});
- targetTab.on('show.bs.tab', targetsTabShow);
function machinesTabShow(){
if (!ctx.layerVersion.inCurrentPrj) {
window.location.hash = "machines";
}
- machineTab.on('show.bs.tab', machinesTabShow);
-
$(".pagesize").change(function(){
var search = libtoaster.parseUrlParams();
search.limit = this.value;
$(".commit").tooltip();
editLayerSource.click(function() {
- // Kindly bring the git layers imported from layerindex to normal page and not this new page :(
+ /* Kindly bring the git layers imported from layerindex to normal page
+ * and not this new page :(
+ */
$(this).hide();
- $("#save-changes-for-switch").attr("disabled", "disabled");
+ saveSourceChangesBtn.attr("disabled", "disabled");
$("#git-repo-info", "#directory-info").hide();
$("#edit-layer-source-form").fadeIn();
if ($('input[name=source-location]:checked').val() == "repo") {
$("#layer-git").fadeIn();
$("#layer-dir").hide();
- if ($("#layer-git-repo-url").val().length === 0 && $("#layer-git-ref").val().length === 0) {
- $("#save-changes-for-switch").attr("disabled", "disabled");
- }
+ if ($("#layer-git-repo-url").val().length === 0 && layerGitRefInput.val().length === 0) {
+ saveSourceChangesBtn.attr("disabled", "disabled");
+ }
} else {
$("#layer-dir").fadeIn();
$("#layer-git").hide();
});
$("#layer-dir-path-in-details").keyup(function() {
- $("#save-changes-for-switch").removeAttr("disabled");
+ saveSourceChangesBtn.removeAttr("disabled");
});
$("#layer-git-repo-url").keyup(function() {
- if ($("#layer-git-repo-url").val().length > 0 && $("#layer-git-ref").val().length > 0) {
- $("#save-changes-for-switch").removeAttr("disabled");
+ if ($("#layer-git-repo-url").val().length > 0 && layerGitRefInput.val().length > 0) {
+ saveSourceChangesBtn.removeAttr("disabled");
}
});
- $("#layer-git-ref").keyup(function() {
- if ($("#layer-git-repo-url").val().length > 0 && $("#layer-git-ref").val().length > 0) {
- $("#save-changes-for-switch").removeAttr("disabled");
+ layerGitRefInput.keyup(function() {
+ if ($("#layer-git-repo-url").val().length > 0 && layerGitRefInput.val().length > 0) {
+ saveSourceChangesBtn.removeAttr("disabled");
}
});
- $('#cancel-changes-for-switch').click(function() {
- editLayerSource.show();
- $("#git-repo-info", "#directory-info").fadeIn();
- $("#edit-layer-source-form").fadeOut();
- if ($("#layer-dir-path-in-details").val().length) {
- $("#dir").prop("checked", true);
- $("#layer-git").fadeOut();
- $("#layer-dir").fadeIn();
- } else {
- $("#layer-git").fadeIn();
- $("#layer-dir").fadeOut();
+ layerSubDirInput.keyup(function(){
+ if ($(this).val().length > 0){
+ saveSourceChangesBtn.removeAttr("disabled");
}
});
- $('#save-changes-for-switch').click(function() {
+ $('#cancel-changes-for-switch').click(function() {
+ $("#edit-layer-source-form").add("#layer-git").add("#layer-dir").fadeOut().promise().done(function(){
+ editLayerSource.show();
+ });
+ });
+
+ saveSourceChangesBtn.click(function() {
var layerData = {
vcs_url: $('#layer-git-repo-url').val(),
- commit: $('#layer-git-ref').val(),
- dirpath: $('#layer-subdir').val(),
+ commit: layerGitRefInput.val(),
+ dirpath: layerSubDirInput.val(),
local_source_dir: $('#layer-dir-path-in-details').val(),
};
<span id="alert-msg"></span>
</div>
- <span class="button-place">
{% 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>
Remove the {{layerversion.layer.name}} layer from your project
</button>
{% endif %}
- </span>
<ul class="nav nav-tabs">
<li class="active">
</div>
</form>
</dd>
- {% if layerversion.dirpath %}
+ {% if layerversion.dirpath %}
<dt>
<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
</div>
</form>
</dd>
- {% endif %}
+ {% endif %}
<dt>
<span class="glyphicon glyphicon-question-sign get-help" title="The Git branch, tag or commit"></span>
Git revision
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">
+ <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">
<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">
+ <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">
+ <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>
</div>
</form>
- <dt>
- <span class="glyphicon glyphicon-question-sign get-help" title="Other layers this layer depends upon"></span>
- Layer dependencies
- </dt>
- <dd>
- <ul class="list-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="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>
- </dd>
- </dl>
- </div>
+ <h3 class="top-air">Layer dependencies
+ <span class="glyphicon glyphicon-question-sign get-help" title="Other layers this layer depends upon"></span>
+ </h3>
+
+ <ul class="list-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="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">