<commit_before><div class="page-header">
  <h2>Product form</h2>
</div>

<form name="productForm" class="form-horizontal"
      my-submit="form.save(product)" novalidate="true">

  <div class="form-group" my-error-for="name">
    <label for="product-name" class="col-lg-2 control-label">Name</label>

    <div class="col-lg-6">
      <input id="product-name" type="text" class="form-control"
             placeholder="Enter name" autocomplete="off"
             name="name" ng-model="product.name"
             ng-required="true" ng-minlength="3"/>

      <div my-messages="name">
        <span class="help-block" ng-message="required">Name is required</span>
        <span class="help-block" ng-message="minlength">Name is too short</span>
      </div>
    </div>
  </div>

  <div class="form-group">
    <div class="col-lg-2"></div>

    <div class="col-lg-2" my-error-for="price">
      <label for="product-price" class="control-label">Price</label>

      <div class="input-group">
        <span class="input-group-addon">$</span>
        <input id="product-price" type="number" class="form-control" placeholder="Enter price"
               name="price" ng-model="product.price"
               ng-required="true" min="0.01"/>
      </div>

      <div my-messages="price">
        <span class="help-block" ng-message="required">Price is required</span>
        <span class="help-block" ng-message="min">Minimum price is $0.01</span>
      </div>
    </div>

    <div class="col-lg-2" my-error-for="discount">
      <label for="product-discount" class="control-label">Discount</label>

      <div class="input-group">
        <input id="product-discount" type="number" class="form-control" placeholder="Enter discount"
               name="discount" ng-model="product.discount" min="0" max="100"/>
        <span class="input-group-addon">%</span>
      </div>

      <div my-messages="discount">
        <span class="help-block" ng-message="min">Minimum value is 0</span>
        <span class="help-block" ng-message="max">Maximum value is 100</span>
      </div>
    </div>

    <div class="col-lg-2" ng-show="product.hasDiscount()">
      <label class="control-label">Price with discount</label>

      <div class="input-group">
        <span class="input-group-addon">$</span>
        <input type="text" disabled="disabled" class="form-control"
               value="{{product.priceWithDiscount() | currency:''}}"/>
      </div>
    </div>
  </div>

  <div class="form-group">
    <label for="product-description" class="col-lg-2 control-label">Description</label>

    <div class="col-lg-6">
      <textarea name="description" ng-model="product.description"
                class="form-control"
                id="product-description" rows="5"></textarea>
    </div>
  </div><commit_msg>fix: products form<commit_after><div class="page-header">
  <h2>Product form</h2>
</div>

<form name="productForm" class="form-horizontal"
      my-submit="form.save(product)" novalidate="true">

  <div class="form-group" my-error-for="name">
    <label for="product-name" class="col-lg-2 control-label">Name</label>

    <div class="col-lg-6">
      <input id="product-name" type="text" class="form-control"
             placeholder="Enter name" autocomplete="off"
             name="name" ng-model="product.name"
             ng-required="true" ng-minlength="3"/>

      <div my-messages="name">
        <span class="help-block" ng-message="required">Name is required</span>
        <span class="help-block" ng-message="minlength">Name is too short</span>
      </div>
    </div>
  </div>

  <div class="form-group">
    <div class="col-lg-2"></div>

    <div class="col-lg-2" my-error-for="price">
      <label for="product-price" class="control-label">Price</label>

      <div class="input-group">
        <span class="input-group-addon">$</span>
        <input id="product-price" type="text" class="form-control" placeholder="Enter price"
               name="price" ng-model="product.price"
               ng-required="true" min="0.01"/>
      </div>

      <div my-messages="price">
        <span class="help-block" ng-message="required">Price is required</span>
        <span class="help-block" ng-message="min">Minimum price is $0.01</span>
      </div>
    </div>

    <div class="col-lg-2" my-error-for="discount">
      <label for="product-discount" class="control-label">Discount</label>

      <div class="input-group">
        <input id="product-discount" type="text" class="form-control" placeholder="Enter discount"
               name="discount" ng-model="product.discount" min="0" max="100"/>
        <span class="input-group-addon">%</span>
      </div>

      <div my-messages="discount">
        <span class="help-block" ng-message="min">Minimum value is 0</span>
        <span class="help-block" ng-message="max">Maximum value is 100</span>
      </div>
    </div>

    <div class="col-lg-2" ng-show="product.hasDiscount()">
      <label class="control-label">Price with discount</label>

      <div class="input-group">
        <span class="input-group-addon">$</span>
        <input type="text" disabled="disabled" class="form-control"
               value="{{product.priceWithDiscount() | currency:''}}"/>
      </div>
    </div>
  </div>

  <div class="form-group">
    <label for="product-description" class="col-lg-2 control-label">Description</label>

    <div class="col-lg-6">
      <textarea name="description" ng-model="product.description"
                class="form-control"
                id="product-description" rows="5"></textarea>
    </div>
  </div>
{'fraction_non_alphanumeric': 0.1891891891891892, 'fraction_numerical': 0.009307320565598711, 'mean_word_length': 2.9942816297355255, 'pattern_counts': {'":': 0, '<': 141, '<?xml version=': 0, '>': 141, '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': '2340852', 'n_tokens_mistral': 1807, 'n_tokens_neox': 1740, 'n_words': 319}