bitbake: toastergui: new project page

Patch that brings in to new project page according to specifications.

[YOCTO #6596]

(Bitbake rev: be357d147d525ac3d6b7bd33ca0aa594728ffedd)

Signed-off-by: Alexandru DAMIAN <alexandru.damian@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexandru DAMIAN
2014-11-26 12:18:55 +00:00
committed by Richard Purdie
parent 5790337cec
commit 126bca43b7
3 changed files with 92 additions and 33 deletions

View File

@@ -60,7 +60,7 @@
</a>
{%if MANAGED %}
<div class="btn-group pull-right">
<a class="btn" href="{% url 'newproject' %}">New project</a>
<a class="btn" id="new-project-button" href="{% url 'newproject' %}">New project</a>
</div>
<!-- New build popover -->
<div class="btn-group pull-right" id="new-build-button">

View File

@@ -3,35 +3,91 @@
{% load humanize %}
{% block pagecontent %}
<div class="row-fluid">
<div class="span6">
<div class="page-header">
<h1>Create a new project</h1>
</div>
<div class="container-fluid">
{% if alert %}
<div class="alert alert-error row-fluid" role="alert">{{alert}}</div>
{% endif %}
</div>
<form method="POST">{% csrf_token %}
<fieldset>
<label>Project name <span class="muted">(required)</span></label>
<input type="text" class="input-xlarge" required name="projectname" value="{{projectname}}">
<label class="project-form">
Yocto Project version
<i class="icon-question-sign get-help" title="This sets the branch for the Yocto Project core layers (meta, meta-yocto and meta-yocto-bsp), and for the layers you use from the OpenEmbedded Metadata Index"></i>
</label>
<select name="projectversion" id="projectversion">
{% for release in releases %}
<option value="{{release.id}}"{%if projectversion == release.id %} selected{%endif%}>{{release.name}} ({{release.description}})</option>
{% endfor %}
</select>
</fieldset>
<div class="page-header">
<h1>Create a new project</h1>
</div>
<div class="container-fluid">
{% if alert %}
<div class="alert alert-error row-fluid" role="alert">{{alert}}</div>
{% endif %}
</div>
{% if releases.count > 0 %}
<form method="POST">{% csrf_token %}
<fieldset>
<label>Project name <span class="muted">(required)</span></label>
<input type="text" class="input-xlarge" required id="new-project-name" name="projectname">
{% if releases.count > 1 %}
<label class="project-form">
Release version
<i class="icon-question-sign get-help" title="The version of the build system you want to use"></i>
</label>
<select name="projectversion" id="projectversion">
{% for release in releases %}
<option value="{{release.id}}"{%if projectversion == release.id %} selected{%endif%}>{{release.description}} ({{release.name}})</option>
{% endfor %}
</select>
{% for release in releases %}
<div class="row-fluid helptext" id="description-{{release.id}}" style="display: none">
<span class="help-block span5">{{release.helptext|safe}}</span>
</div>
{% endfor %}
{% else %}
<input type="hidden" name="projectversion" value="{{releases.0.id}}"/>
{% endif %}
</fieldset>
<div class="form-actions">
<input type="submit" class="btn btn-primary btn-large" value="Create project"/>
</div>
</form>
</div>
</div>
</div>
<div class="form-actions">
<input type="submit" class="btn btn-primary btn-large" value="Create project"></input>
<span class="help-inline" style="vertical-align:middle;">To create a project, you need to enter a project name</span>
</div>
</form>
{% else %}
<br/>
<div class="alert alert-warning row-fluid span6">
<h3>No releases configured</h3>
<p>
It looks like Toaster releases have not been configured properly. Contact the person who set up Toaster, and tell them about it.
</p>
<p>
If you are the Toaster administrator, we are sorry: setting up Toaster is not easy.
<ul>
<li><a href="{% url 'admin:orm_release_changelist' %}">Log in to the Django administration interface</a> and check the "Releases" section.</li>
<li>Check out the <a href="https://wiki.yoctoproject.org/wiki/Setting_up_a_hosted_managed_mode_for_Toaster#Releases">documentation about configuring releases</a></li>
</ul>
</p>
</div>
{% endif %}
</div>
<script type="text/javascript">
$(document).ready(function () {
// hide the new project button
$("#new-project-button").hide();
$('.btn-primary').attr('disabled', 'disabled');
// enable submit button when all required fields are populated
$("input#new-project-name").keyup(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();
});
})
</script>
</div>
{% endblock %}

View File

@@ -1894,9 +1894,12 @@ if toastermain.settings.MANAGED:
'email': request.user.email if request.user.is_authenticated() else '',
'username': request.user.username if request.user.is_authenticated() else '',
'releases': Release.objects.order_by("id"),
'defaultbranch': ToasterSetting.objects.get(name = "DEFAULT_RELEASE").value,
}
try:
context['defaultbranch'] = ToasterSetting.objects.get(name = "DEFAULT_RELEASE").value
except ToasterSetting.DoesNotExist:
pass
if request.method == "GET":
# render new project page
@@ -2156,7 +2159,7 @@ if toastermain.settings.MANAGED:
def _lv_to_dict(x):
return {"id": x.pk, "name": x.layer.name,
return {"id": x.pk, "name": x.layer.name,
"detail": "(" + x.layer.vcs_url + (")" if x.up_branch == None else " | "+x.up_branch.name+")"),
"giturl": x.layer.vcs_url, "layerdetailurl" : reverse('layerdetails', args=(x.pk,))}