From 315acf2246feefaff115760e23e4e3607b314d2c Mon Sep 17 00:00:00 2001
From: Jaden Diefenbaugh <blakcap@users.noreply.github.com>
Date: Fri, 17 Mar 2017 11:29:31 +0100
Subject: [PATCH] addgroup has enter key support, input validation

---
 .../app/directives/edit/addGroupMenu.js       | 23 +++++++++++++++----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/beat/web/reports/static/reports/app/directives/edit/addGroupMenu.js b/beat/web/reports/static/reports/app/directives/edit/addGroupMenu.js
index 98694e661..40dcee254 100644
--- a/beat/web/reports/static/reports/app/directives/edit/addGroupMenu.js
+++ b/beat/web/reports/static/reports/app/directives/edit/addGroupMenu.js
@@ -31,19 +31,32 @@ angular.module('reportApp')
 		scope: {
 		},
 		link: function(scope){
-			scope.createGroup = GroupsService.createGroup;
 			scope.newGroupName = { val: '' };
+			scope.hasError = (val) => {
+				// if val is undefined, empty, or a dup, its an err
+				const isErr = !val || val.length === 0 || GroupsService.groups.find(g => g.name === val);
+				// cast to boolean
+				return !!isErr;
+			};
+			scope.createGroup = () => {
+				if(scope.hasError(scope.newGroupName.val)){
+					return;
+				}
+
+				GroupsService.createGroup(scope.newGroupName.val);
+				scope.newGroupName.val = '';
+			};
 		},
 		template: `
-<form>
-	<div class='form-group'>
+<form ng-submit='createGroup()'>
+	<div class='form-group' ng-class="{'has-error': hasError(newGroupName.val)}">
 		<div class="input-group">
 			<span class="input-group-btn">
-				<button ng-click='createGroup(newGroupName.val)' class="btn btn-default" type="button">
+				<button ng-click='createGroup()' class="btn btn-default" type="button">
 					<i class="fa fa-plus" aria-hidden="true"></i>
 				</button>
 			</span>
-			<input id='createNewGroupInput' ng-model='newGroupName.val' type="text" class="form-control" placeholder="New group name...">
+			<input required id='createNewGroupInput' ng-model='newGroupName.val' type="text" class="form-control" placeholder="New group name...">
 		</div>
 	</div>
 </form>
-- 
GitLab