<commit_before>  <form role="form" class="container-fluid form-horizontal" name="form" novalidate>
    <div class="modal-body">
      <kato-error task-status="taskStatus" title="We could not {{isNew ? 'create': 'update'}} your security group."></kato-error>
      <kato-progress task-status="taskStatus" title="{{isNew ? 'Creating': 'Updating'}}  your security group."></kato-progress>
      <div class="form-group">
        <div class="col-md-12 well" ng-class="{'alert-danger': form.securityGroupName.$error.validateUnique, 'alert-info': !form.securityGroupName.$error.validateUnique}">
          <strong>Your security group will be named:</strong>
          <span ng-bind="namePreview"></span>
          <input type="hidden" class="form-control input-sm"
                 ng-model="securityGroup.name"
                 validate-unique="existingSecurityGroupNames"
                 validate-ignore-case="true"
                 name="securityGroupName"
                 ng-pattern="ctrl.namePattern"
                 trigger-validation="securityGroup.subnet"
                 required/>
          <validation-error ng-if="form.securityGroupName.$error.validateUnique" message="There is already a security group in {{securityGroup.credentials}}:{{securityGroup.region}} with that name."></validation-error>
          <validation-error ng-if="form.securityGroupName.$error.pattern" message="Name must match {{ctrl.getCurrentNamePattern().toString()}}"></validation-error>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-3 sm-label-left">Detail (optional)</div>
        <div class="col-md-3">
          <input type="text" class="form-control input-sm"
                 ng-model="securityGroup.detail"
                 ng-change="ctrl.updateName()"/>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-3 sm-label-left">Description</div>
        <div class="col-md-9">
          <input type="text" class="form-control input-sm" ng-model="securityGroup.description" required/>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-3 sm-label-left">Account</div>
        <div class="col-md-9">
          <select class="form-control input-sm"
                  ng-model="securityGroup.credentials"
                  ng-options="account for account in accounts"
                  ng-change="ctrl.accountUpdated()"
                  required>
          </select>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-3 sm-label-left">Region</div>
        <div class="col-md-9">
          <select class="form-control input-sm" ng-model="securityGroup.region"
                  ng-change="ctrl.regionUpdated()"
                  ng-options="region.name as region.name for region in regions"
                  required>
          </select>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-3 sm-label-left">VPC</div>
        <div class="col-md-9">
          <select class="form-control input-sm" ng-model="securityGroup.vpcId"
                  ng-change="ctrl.vpcUpdated()"
                  ng-options="vpc.id as vpc.label for vpc in vpcs">
            <option value="">None (Classic)</option>
          </select>
        </div>
      </div>
    </div>
    <div class="modal-footer">
      <button class="btn btn-default pull-left"
              ng-click="ctrl.cancel()">Cancel
      </button>
      <submit-button is-disabled="form.$invalid || !wizard.isComplete() || state.submitting"
                     submitting="state.submitting" on-click="ctrl.upsert()" is-new="isNew"></submit-button>
      <button type="submit" class="btn btn-primary"
              ng-disabled="form.$invalid"
              ng-click="wizard.markComplete('Location'); wizard.nextPage()">
        <span class="glyphicon glyphicon-chevron-right"></span> Next
      </button>
    </div>
  </form>
<commit_msg>make security group description optional; closes #148<commit_after>  <form role="form" class="container-fluid form-horizontal" name="form" novalidate>
    <div class="modal-body">
      <kato-error task-status="taskStatus" title="We could not {{isNew ? 'create': 'update'}} your security group."></kato-error>
      <kato-progress task-status="taskStatus" title="{{isNew ? 'Creating': 'Updating'}}  your security group."></kato-progress>
      <div class="form-group">
        <div class="col-md-12 well" ng-class="{'alert-danger': form.securityGroupName.$error.validateUnique, 'alert-info': !form.securityGroupName.$error.validateUnique}">
          <strong>Your security group will be named:</strong>
          <span ng-bind="namePreview"></span>
          <input type="hidden" class="form-control input-sm"
                 ng-model="securityGroup.name"
                 validate-unique="existingSecurityGroupNames"
                 validate-ignore-case="true"
                 name="securityGroupName"
                 ng-pattern="ctrl.namePattern"
                 trigger-validation="securityGroup.subnet"
                 required/>
          <validation-error ng-if="form.securityGroupName.$error.validateUnique" message="There is already a security group in {{securityGroup.credentials}}:{{securityGroup.region}} with that name."></validation-error>
          <validation-error ng-if="form.securityGroupName.$error.pattern" message="Name must match {{ctrl.getCurrentNamePattern().toString()}}"></validation-error>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-4 sm-label-left">Detail (optional)</div>
        <div class="col-md-4">
          <input type="text" class="form-control input-sm"
                 ng-model="securityGroup.detail"
                 ng-change="ctrl.updateName()"/>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-4 sm-label-left">Description (optional)</div>
        <div class="col-md-8">
          <input type="text" class="form-control input-sm" ng-model="securityGroup.description" />
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-4 sm-label-left">Account</div>
        <div class="col-md-8">
          <select class="form-control input-sm"
                  ng-model="securityGroup.credentials"
                  ng-options="account for account in accounts"
                  ng-change="ctrl.accountUpdated()"
                  required>
          </select>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-4 sm-label-left">Region</div>
        <div class="col-md-8">
          <select class="form-control input-sm" ng-model="securityGroup.region"
                  ng-change="ctrl.regionUpdated()"
                  ng-options="region.name as region.name for region in regions"
                  required>
          </select>
        </div>
      </div>
      <div class="form-group">
        <div class="col-md-4 sm-label-left">VPC</div>
        <div class="col-md-8">
          <select class="form-control input-sm" ng-model="securityGroup.vpcId"
                  ng-change="ctrl.vpcUpdated()"
                  ng-options="vpc.id as vpc.label for vpc in vpcs">
            <option value="">None (Classic)</option>
          </select>
        </div>
      </div>
    </div>
    <div class="modal-footer">
      <button class="btn btn-default pull-left"
              ng-click="ctrl.cancel()">Cancel
      </button>
      <submit-button is-disabled="form.$invalid || !wizard.isComplete() || state.submitting"
                     submitting="state.submitting" on-click="ctrl.upsert()" is-new="isNew"></submit-button>
      <button type="submit" class="btn btn-primary"
              ng-disabled="form.$invalid"
              ng-click="wizard.markComplete('Location'); wizard.nextPage()">
        <span class="glyphicon glyphicon-chevron-right"></span> Next
      </button>
    </div>
  </form>

{'fraction_non_alphanumeric': 0.1577422199823611, 'fraction_numerical': 0.003401789089076477, 'mean_word_length': 2.3213389121338914, 'pattern_counts': {'":': 0, '<': 145, '<?xml version=': 0, '>': 145, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3753402', 'n_tokens_mistral': 2271, 'n_tokens_neox': 2211, 'n_words': 420}