Index: lams_central/web/includes/javascript/orgGroup.js =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/includes/javascript/orgGroup.js,v diff -u -r1.6.2.6 -r1.6.2.7 --- lams_central/web/includes/javascript/orgGroup.js 12 May 2017 14:28:11 -0000 1.6.2.6 +++ lams_central/web/includes/javascript/orgGroup.js 15 May 2017 18:10:50 -0000 1.6.2.7 @@ -22,6 +22,16 @@ // initialisation based on mode if (!lessonMode) { $('#groupingName').val(grouping.name); + + // ability to save a grouping on pressing the Enter key in the name input field + $('#groupingName').on('keyup', function (e) { + //remove alert class if it was applied + $("#grouping-name-blank-error,#grouping-name-non-unique-error").hide(); + + if (e.keyCode == 13) { + saveGroups(); + } + }); } if (canEdit) { @@ -371,12 +381,35 @@ $('.errorMessage').hide(); var groupingName = $('#groupingName').val(); + // course grouping name can not be blank if (!groupingName) { - // course grouping name can not be blank - $('#groupingNameBlankError').show(); + $('#grouping-name-blank-error').show(); + $('#groupingName').focus(); return false; } + // course grouping name should be unique + var isGroupingNameUnique = false; + $.ajax({ + dataType : 'json', + url : LAMS_URL + 'monitoring/grouping.do', + cache : false, + async : false, + data : { + 'method' : 'checkGroupingNameUnique', + 'organisationID' : grouping.organisationId, + 'name' : groupingName + }, + success : function(response) { + isGroupingNameUnique = response.isGroupingNameUnique; + } + }); + if ((grouping.name != groupingName) && !isGroupingNameUnique) { + $('#grouping-name-non-unique-error').show(); + $('#groupingName').focus(); + return false; + } + // ask if removing new, empty groups is OK var acceptEmptyGroups = true; var groupContainers = $('#groupsTable .groupContainer').not('#newGroupPlaceholder');