Index: lams_central/web/includes/javascript/orgGroup.js =================================================================== diff -u -ra0bea10c9022cc2146b3067858932029ca721683 -raf507c977983918438951ba8c52c4944a74dfc00 --- lams_central/web/includes/javascript/orgGroup.js (.../orgGroup.js) (revision a0bea10c9022cc2146b3067858932029ca721683) +++ lams_central/web/includes/javascript/orgGroup.js (.../orgGroup.js) (revision af507c977983918438951ba8c52c4944a74dfc00) @@ -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');