[% WRAPPER layout.tt title=(create ? "New project" : "Editing project $project.name") %]
[% PROCESS common.tt %]

<form>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojectenabled">Enabled</label>
    <div class="col-sm-9">
      <input type="checkbox" id="editprojectenabled" name="enabled" [% IF create || project.enabled %] checked="checked" [% END %]/>
    </div>
  </div>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojectvisible">Visible in projects list</label>
    <div class="col-sm-9">
      <input type="checkbox" id="editprojectvisible" name="visible" [% IF !project.hidden %] checked="checked" [% END %]/>
    </div>
  </div>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojectidentifier">Identifier</label>
    <div class="col-sm-9">
      <input type="text" class="form-control" id="editprojectidentifier" name="name" [% HTML.attributes(value => project.name) %]/>
    </div>
  </div>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojectdisplayname">Display name</label>
    <div class="col-sm-9">
      <input type="text" class="form-control" id="editprojectdisplayname" name="displayname" [% HTML.attributes(value => project.displayname) %]/>
    </div>
  </div>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojectdescription">Description</label>
    <div class="col-sm-9">
      <input type="text" class="form-control" id="editprojectdescription" name="description" [% HTML.attributes(value => project.description) %]/>
    </div>
  </div>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojecthomepage">Homepage</label>
    <div class="col-sm-9">
      <input type="text" class="form-control" id="editprojecthomepage" name="homepage" [% HTML.attributes(value => project.homepage) %]/>
    </div>
  </div>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojectowner">Owner</label>
    <div class="col-sm-9">
      <input type="text" class="form-control" id="editprojectowner" name="owner" [% HTML.attributes(value => project.owner.username || c.user.username) %]/>
    </div>
  </div>


  <div class="form-group row">
    <label class="col-sm-3" for="editprojectenable_dynamic_run_command">Enable Dynamic RunCommand Hooks for Jobsets</label>
    <div class="col-sm-9">
      <input type="checkbox" id="editprojectenable_dynamic_run_command" name="enable_dynamic_run_command"
        [% IF !c.config.dynamicruncommand.enable %]
          title="The server has not enabled dynamic RunCommands" disabled
        [% ELSIF project.enable_dynamic_run_command %]
          checked
        [% END %]
      />
    </div>
  </div>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojectdeclfile">
      Declarative spec file
      <small class="form-text text-muted">(Leave blank for non-declarative project configuration)</small>
      </label>
    <div class="col-sm-9">
      <input type="text" class="form-control" id="editprojectdeclfile" name="declfile" [% HTML.attributes(value => project.declfile) %]/>
    </div>
  </div>

  <div class="form-group row">
    <label class="col-sm-3" for="editprojectdeclvalue">Declarative input type</label>
    <div class="col-sm-9">
      [% INCLUDE renderSelection param="decltype" options=inputTypes edit=1 curValue=project.decltype %]
      <input type="text" class="form-control" id="editprojectdeclvalue" name="declvalue" [% HTML.attributes(value => project.declvalue) %]/>
    </div>
  </div>

  <button id="submit-project" type="submit" class="btn btn-primary">
    <i class="fas fa-check"></i>
    [%IF create %]Create project[% ELSE %]Apply changes[% END %]
  </button>

</form>

<script type="text/javascript">
  $("#submit-project").click(function() {
    var formElements = $(this).parents("form").serializeArray();
    var data = { 'declarative': {} };
    var decl = {};
    for (var i = 0; formElements.length > i; i++) {
      var elem = formElements[i];
      var match = elem.name.match(/^decl(file|type|value)$/);
      if (match === null) {
        data[elem.name] = elem.value;
      } else {
        var param = match[1];
        decl[param] = elem.value;
      }
    }
    data.declarative = decl;
    redirectJSON({
      [% IF create %]
        url: "[% c.uri_for('/project' '.new') %]",
      [% ELSE %]
        url: "[% c.uri_for('/project' project.name) %]",
      [% END %]
      data: JSON.stringify(data),
      contentType: 'application/json',
      type: 'PUT'
    });
    return false;
  });
</script>


[% END %]
