138 lines
5.8 KiB
HTML
138 lines
5.8 KiB
HTML
{% extends "base.html" %}
|
|
{% load projecttags %}
|
|
{% load humanize %}
|
|
|
|
{% block title %} Create a new project - Toaster {% endblock %}
|
|
|
|
{% block pagecontent %}
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="page-header">
|
|
<h1>Create a new project</h1>
|
|
</div>
|
|
{% if alert %}
|
|
<div class="alert alert-danger" role="alert">{{alert}}</div>
|
|
{% endif %}
|
|
|
|
<form method="POST">{% csrf_token %}
|
|
<div class="form-group" id="validate-project-name">
|
|
<label class="control-label">Project name <span class="text-muted">(required)</span></label>
|
|
<input type="text" class="form-control" required id="new-project-name" name="projectname">
|
|
</div>
|
|
<p class="help-block text-danger" style="display: none;" id="hint-error-project-name">A project with this name exists. Project names must be unique.</p>
|
|
|
|
<label class="project-form">Project type:</label>
|
|
{% if releases.count > 0 %}
|
|
<label class="project-form radio" style="padding-left: 35px;"><input id='type-new' type="radio" name="ptype" value="new"/> New project</label>
|
|
{% endif %}
|
|
<label class="project-form radio" style="padding-left: 35px;"><input id='type-import' type="radio" name="ptype" value="import"/> Import command line project</label>
|
|
|
|
{% if releases.count > 0 %}
|
|
<div class="release form-group">
|
|
{% if releases.count > 1 %}
|
|
<label class="control-label">
|
|
Release
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="The version of the build system you want to use for this project"></span>
|
|
</label>
|
|
<select name="projectversion" id="projectversion" class="form-control">
|
|
{% for release in releases %}
|
|
<option value="{{release.id}}"
|
|
{%if defaultbranch == release.name %}
|
|
selected
|
|
{%endif%}
|
|
>{{release.description}}</option>
|
|
{% endfor %}
|
|
</select>
|
|
<div class="row">
|
|
<div class="col-md-4">
|
|
{% for release in releases %}
|
|
<div class="helptext" id="description-{{release.id}}" style="display: none">
|
|
<span class="help-block">{{release.helptext|safe}}</span>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% else %}
|
|
<input type="hidden" name="projectversion" value="{{releases.0.id}}"/>
|
|
{% endif %}
|
|
|
|
<input type="checkbox" class="checkbox-mergeattr" name="mergeattr" value="mergeattr"> Merged Toaster settings (Command line user compatibility)
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="Place the Toaster settings into the standard 'local.conf' and 'bblayers.conf' instead of 'toaster_bblayers.conf' and 'toaster.conf'"></span>
|
|
|
|
</div>
|
|
{% endif %}
|
|
|
|
<div class="build-import form-group" id="import-project">
|
|
<label class="control-label">Import existing project directory
|
|
<span class="glyphicon glyphicon-question-sign get-help" title="Enter a path to an existing build directory, import the existing settings, and create a Toaster Project for it."></span>
|
|
</label>
|
|
<input style="width: 33%;"type="text" class="form-control" required id="import-project-dir" name="importdir">
|
|
</div>
|
|
|
|
<div class="top-air">
|
|
<input type="submit" id="create-project-button" class="btn btn-primary btn-lg" value="Create project"/>
|
|
<span class="help-inline" style="vertical-align:middle;">To create a project, you need to enter a project name</span>
|
|
</div>
|
|
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
$(document).ready(function () {
|
|
// hide the new project button
|
|
$("#new-project-button").hide();
|
|
$('.btn-primary').attr('disabled', 'disabled');
|
|
$('#type-new').attr('checked', 'checked');
|
|
|
|
// enable submit button when all required fields are populated
|
|
$("input#new-project-name").on('input', function() {
|
|
if ($("input#new-project-name").val().length > 0 ){
|
|
$('.btn-primary').removeAttr('disabled');
|
|
$(".help-inline").css('visibility','hidden');
|
|
}
|
|
else {
|
|
$('.btn-primary').attr('disabled', 'disabled');
|
|
$(".help-inline").css('visibility','visible');
|
|
}
|
|
});
|
|
|
|
// show relevant help text for the selected release
|
|
var selected_release = $('select').val();
|
|
$("#description-" + selected_release).show();
|
|
|
|
|
|
$('select').change(function(){
|
|
var new_release = $('select').val();
|
|
$(".helptext").hide();
|
|
$('#description-' + new_release).fadeIn();
|
|
});
|
|
|
|
libtoaster.makeProjectNameValidation($("#new-project-name"),
|
|
$("#hint-error-project-name"), $("#validate-project-name"),
|
|
$(".btn-primary"));
|
|
|
|
|
|
// Hide the project release when you select an analysis project
|
|
function projectType() {
|
|
if ($("input[type='radio']:checked").val() == 'new') {
|
|
$('.build-import').fadeOut();
|
|
$('.release').fadeIn();
|
|
$('#import-project-dir').removeAttr('required');
|
|
}
|
|
else {
|
|
$('.release').fadeOut();
|
|
$('.build-import').fadeIn();
|
|
$('#import-project-dir').attr('required', 'required');
|
|
}
|
|
}
|
|
projectType();
|
|
|
|
$('input:radio').change(function(){
|
|
projectType();
|
|
});
|
|
});
|
|
</script>
|
|
|
|
{% endblock %}
|