src/app/components/modal-message/modal-message.html
<form class="form-validation" name="messageForm" role="form" novalidate>
<div class="modal-header">
<button type="button" class="close" ng-click="vm.cancel()">×</button>
<h4 class="modal-title">Send Message</h4>
</div>
<div class="modal-body form-wizard">
<alert-danger has-error="vm.hasError" error-message="vm.errorMessage"></alert-danger>
<div class="form-group">
<label for="subject">Subject</label>
<input name="subject" type="text" ng-model="vm.message.subject" class="form-control" id="subject" ng-maxlength="60" required>
<div ng-if="messageForm.$submitted" ng-messages="messageForm.subject.$error">
<div ng-message="required" class="error">This field is required.</div>
<div ng-message="maxlength" class="error">This field text is too long (max 60 characters).</div>
</div>
</div>
<div class="form-group">
<label>Message</label>
<textarea name="body" type="text" ng-model="vm.message.body" class="form-control" id="message" rows="4" ng-maxlength="3200" required></textarea>
<div ng-if="messageForm.$submitted" ng-messages="messageForm.body.$error">
<div ng-message="required" class="error">This field is required.</div>
<div ng-message="maxlength" class="error">This field text is too long (max 3200 characters).</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" ng-click="vm.cancel()" class="btn btn-sm btn-white">Close</button>
<jp-ng-bs-animated-button class="btn btn-sm btn-success" ng-click="vm.save(messageForm)" is-submitting="vm.isSubmitting" result="vm.result" options="vm.saveButtonOptions"></jp-ng-bs-animated-button>
</div>
</form>