xref: /OK3568_Linux_fs/yocto/poky/bitbake/lib/toaster/toastergui/templates/newproject.html (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun{% extends "base.html" %}
2*4882a593Smuzhiyun{% load projecttags %}
3*4882a593Smuzhiyun{% load humanize %}
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun{% block title %} Create a new project - Toaster {% endblock %}
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun{% block pagecontent %}
8*4882a593Smuzhiyun<div class="row">
9*4882a593Smuzhiyun  <div class="col-md-12">
10*4882a593Smuzhiyun    <div class="page-header">
11*4882a593Smuzhiyun          <h1>Create a new project</h1>
12*4882a593Smuzhiyun        </div>
13*4882a593Smuzhiyun    {% if alert %}
14*4882a593Smuzhiyun      <div class="alert alert-danger" role="alert">{{alert}}</div>
15*4882a593Smuzhiyun    {% endif %}
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun        <form method="POST">{% csrf_token %}
18*4882a593Smuzhiyun          <div class="form-group" id="validate-project-name">
19*4882a593Smuzhiyun            <label class="control-label">Project name <span class="text-muted">(required)</span></label>
20*4882a593Smuzhiyun            <input type="text" class="form-control" required id="new-project-name" name="projectname">
21*4882a593Smuzhiyun          </div>
22*4882a593Smuzhiyun          <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>
23*4882a593Smuzhiyun
24*4882a593Smuzhiyun                <label class="project-form">Project type:</label>
25*4882a593Smuzhiyun                {% if releases.count > 0 %}
26*4882a593Smuzhiyun                    <label class="project-form radio" style="padding-left: 35px;"><input id='type-new'    type="radio" name="ptype" value="new"/> New project</label>
27*4882a593Smuzhiyun                {% endif %}
28*4882a593Smuzhiyun                    <label class="project-form radio" style="padding-left: 35px;"><input id='type-import' type="radio" name="ptype" value="import"/> Import command line project</label>
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun        {% if releases.count > 0 %}
31*4882a593Smuzhiyun          <div class="release form-group">
32*4882a593Smuzhiyun            {% if releases.count > 1 %}
33*4882a593Smuzhiyun              <label class="control-label">
34*4882a593Smuzhiyun                Release
35*4882a593Smuzhiyun                <span class="glyphicon glyphicon-question-sign get-help" title="The version of the build system you want to use for this project"></span>
36*4882a593Smuzhiyun              </label>
37*4882a593Smuzhiyun              <select name="projectversion" id="projectversion" class="form-control">
38*4882a593Smuzhiyun                {% for release in releases %}
39*4882a593Smuzhiyun                    <option value="{{release.id}}"
40*4882a593Smuzhiyun                        {%if defaultbranch == release.name %}
41*4882a593Smuzhiyun                            selected
42*4882a593Smuzhiyun                        {%endif%}
43*4882a593Smuzhiyun                     >{{release.description}}</option>
44*4882a593Smuzhiyun                {% endfor %}
45*4882a593Smuzhiyun              </select>
46*4882a593Smuzhiyun              <div class="row">
47*4882a593Smuzhiyun                <div class="col-md-4">
48*4882a593Smuzhiyun                {% for release in releases %}
49*4882a593Smuzhiyun                  <div class="helptext" id="description-{{release.id}}" style="display: none">
50*4882a593Smuzhiyun                    <span class="help-block">{{release.helptext|safe}}</span>
51*4882a593Smuzhiyun                  </div>
52*4882a593Smuzhiyun                {% endfor %}
53*4882a593Smuzhiyun                </div>
54*4882a593Smuzhiyun              </div>
55*4882a593Smuzhiyun            {% else %}
56*4882a593Smuzhiyun              <input type="hidden" name="projectversion" value="{{releases.0.id}}"/>
57*4882a593Smuzhiyun            {% endif %}
58*4882a593Smuzhiyun
59*4882a593Smuzhiyun              <input type="checkbox" class="checkbox-mergeattr" name="mergeattr" value="mergeattr">  Merged Toaster settings (Command line user compatibility)
60*4882a593Smuzhiyun              <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>
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun           </div>
63*4882a593Smuzhiyun        {% endif %}
64*4882a593Smuzhiyun
65*4882a593Smuzhiyun            <div class="build-import form-group" id="import-project">
66*4882a593Smuzhiyun              <label class="control-label">Import existing project directory
67*4882a593Smuzhiyun                <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>
68*4882a593Smuzhiyun              </label>
69*4882a593Smuzhiyun              <input style="width: 33%;"type="text" class="form-control" required id="import-project-dir" name="importdir">
70*4882a593Smuzhiyun            </div>
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun            <div class="top-air">
73*4882a593Smuzhiyun              <input type="submit" id="create-project-button" class="btn btn-primary btn-lg" value="Create project"/>
74*4882a593Smuzhiyun              <span class="help-inline" style="vertical-align:middle;">To create a project, you need to enter a project name</span>
75*4882a593Smuzhiyun            </div>
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun        </form>
78*4882a593Smuzhiyun      </div>
79*4882a593Smuzhiyun    </div>
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun    <script type="text/javascript">
82*4882a593Smuzhiyun        $(document).ready(function () {
83*4882a593Smuzhiyun            // hide the new project button
84*4882a593Smuzhiyun            $("#new-project-button").hide();
85*4882a593Smuzhiyun            $('.btn-primary').attr('disabled', 'disabled');
86*4882a593Smuzhiyun            $('#type-new').attr('checked', 'checked');
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun            // enable submit button when all required fields are populated
89*4882a593Smuzhiyun            $("input#new-project-name").on('input', function() {
90*4882a593Smuzhiyun                if ($("input#new-project-name").val().length > 0 ){
91*4882a593Smuzhiyun                    $('.btn-primary').removeAttr('disabled');
92*4882a593Smuzhiyun                    $(".help-inline").css('visibility','hidden');
93*4882a593Smuzhiyun                }
94*4882a593Smuzhiyun                else {
95*4882a593Smuzhiyun                    $('.btn-primary').attr('disabled', 'disabled');
96*4882a593Smuzhiyun                    $(".help-inline").css('visibility','visible');
97*4882a593Smuzhiyun                }
98*4882a593Smuzhiyun            });
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun            // show relevant help text for the selected release
101*4882a593Smuzhiyun            var selected_release = $('select').val();
102*4882a593Smuzhiyun            $("#description-" + selected_release).show();
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun
105*4882a593Smuzhiyun            $('select').change(function(){
106*4882a593Smuzhiyun                var new_release = $('select').val();
107*4882a593Smuzhiyun                $(".helptext").hide();
108*4882a593Smuzhiyun                $('#description-' + new_release).fadeIn();
109*4882a593Smuzhiyun            });
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun            libtoaster.makeProjectNameValidation($("#new-project-name"),
112*4882a593Smuzhiyun                 $("#hint-error-project-name"), $("#validate-project-name"),
113*4882a593Smuzhiyun                 $(".btn-primary"));
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun			// Hide the project release when you select an analysis project
117*4882a593Smuzhiyun			function projectType() {
118*4882a593Smuzhiyun				if ($("input[type='radio']:checked").val() == 'new') {
119*4882a593Smuzhiyun					$('.build-import').fadeOut();
120*4882a593Smuzhiyun					$('.release').fadeIn();
121*4882a593Smuzhiyun                    $('#import-project-dir').removeAttr('required');
122*4882a593Smuzhiyun				}
123*4882a593Smuzhiyun				else {
124*4882a593Smuzhiyun					$('.release').fadeOut();
125*4882a593Smuzhiyun					$('.build-import').fadeIn();
126*4882a593Smuzhiyun                    $('#import-project-dir').attr('required', 'required');
127*4882a593Smuzhiyun				}
128*4882a593Smuzhiyun			}
129*4882a593Smuzhiyun			projectType();
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun			$('input:radio').change(function(){
132*4882a593Smuzhiyun				projectType();
133*4882a593Smuzhiyun			});
134*4882a593Smuzhiyun        });
135*4882a593Smuzhiyun    </script>
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun{% endblock %}
138