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" action="{%url "newproject_specific" project_pk %}">{% 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="display_projectname" value="{{projectname}}" disabled> 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 <input type="hidden" name="ptype" value="build" /> 24*4882a593Smuzhiyun <input type="hidden" name="projectname" value="{{projectname}}" /> 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun {% if releases.count > 0 %} 27*4882a593Smuzhiyun <div class="release form-group"> 28*4882a593Smuzhiyun {% if releases.count > 1 %} 29*4882a593Smuzhiyun <label class="control-label"> 30*4882a593Smuzhiyun Release 31*4882a593Smuzhiyun <span class="glyphicon glyphicon-question-sign get-help" title="The version of the build system you want to use"></span> 32*4882a593Smuzhiyun </label> 33*4882a593Smuzhiyun <select name="projectversion" id="projectversion" class="form-control"> 34*4882a593Smuzhiyun {% for release in releases %} 35*4882a593Smuzhiyun <option value="{{release.id}}" 36*4882a593Smuzhiyun {%if defaultbranch == release.name %} 37*4882a593Smuzhiyun selected 38*4882a593Smuzhiyun {%endif%} 39*4882a593Smuzhiyun >{{release.description}}</option> 40*4882a593Smuzhiyun {% endfor %} 41*4882a593Smuzhiyun </select> 42*4882a593Smuzhiyun <div class="row"> 43*4882a593Smuzhiyun <div class="col-md-4"> 44*4882a593Smuzhiyun {% for release in releases %} 45*4882a593Smuzhiyun <div class="helptext" id="description-{{release.id}}" style="display: none"> 46*4882a593Smuzhiyun <span class="help-block">{{release.helptext|safe}}</span> 47*4882a593Smuzhiyun </div> 48*4882a593Smuzhiyun {% endfor %} 49*4882a593Smuzhiyun {% else %} 50*4882a593Smuzhiyun <input type="hidden" name="projectversion" value="{{releases.0.id}}"/> 51*4882a593Smuzhiyun {% endif %} 52*4882a593Smuzhiyun </div> 53*4882a593Smuzhiyun </div> 54*4882a593Smuzhiyun </fieldset> 55*4882a593Smuzhiyun {% endif %} 56*4882a593Smuzhiyun <div class="top-air"> 57*4882a593Smuzhiyun <input type="submit" id="create-project-button" class="btn btn-primary btn-lg" value="Create project"/> 58*4882a593Smuzhiyun <span class="help-inline" style="vertical-align:middle;">To create a project, you need to specify the release</span> 59*4882a593Smuzhiyun </div> 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun </form> 62*4882a593Smuzhiyun </div> 63*4882a593Smuzhiyun </div> 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun <script type="text/javascript"> 66*4882a593Smuzhiyun $(document).ready(function () { 67*4882a593Smuzhiyun // hide the new project button, name is preset 68*4882a593Smuzhiyun $("#new-project-button").hide(); 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun // enable submit button when all required fields are populated 71*4882a593Smuzhiyun $("input#new-project-name").on('input', function() { 72*4882a593Smuzhiyun if ($("input#new-project-name").val().length > 0 ){ 73*4882a593Smuzhiyun $('.btn-primary').removeAttr('disabled'); 74*4882a593Smuzhiyun $(".help-inline").css('visibility','hidden'); 75*4882a593Smuzhiyun } 76*4882a593Smuzhiyun else { 77*4882a593Smuzhiyun $('.btn-primary').attr('disabled', 'disabled'); 78*4882a593Smuzhiyun $(".help-inline").css('visibility','visible'); 79*4882a593Smuzhiyun } 80*4882a593Smuzhiyun }); 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun // show relevant help text for the selected release 83*4882a593Smuzhiyun var selected_release = $('select').val(); 84*4882a593Smuzhiyun $("#description-" + selected_release).show(); 85*4882a593Smuzhiyun 86*4882a593Smuzhiyun $('select').change(function(){ 87*4882a593Smuzhiyun var new_release = $('select').val(); 88*4882a593Smuzhiyun $(".helptext").hide(); 89*4882a593Smuzhiyun $('#description-' + new_release).fadeIn(); 90*4882a593Smuzhiyun }); 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun }); 93*4882a593Smuzhiyun </script> 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun{% endblock %} 96