From b204cd3b82f72e9580df104a2d4d02e18e606b3c Mon Sep 17 00:00:00 2001 From: hjkhjk54 Date: Fri, 15 Jul 2011 19:56:48 +0000 Subject: [PATCH] Updates to support proper behavior for content type change and beginning of validation --- webapp/web/js/menupage/menumanagement_edit.js | 59 +++++++++++++++++-- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/webapp/web/js/menupage/menumanagement_edit.js b/webapp/web/js/menupage/menumanagement_edit.js index 0f9b89c2b..8fed1ff71 100644 --- a/webapp/web/js/menupage/menumanagement_edit.js +++ b/webapp/web/js/menupage/menumanagement_edit.js @@ -5,6 +5,7 @@ var menuManagementEdit = { this.initObjects(); this.bindEventListeners(); this.toggleClassSelection(); + //this.validateMenuItemForm(); }, initObjects: function() { this.defaultTemplateRadio = $('input.default-template'); @@ -23,7 +24,7 @@ var menuManagementEdit = { bindEventListeners: function() { // Listeners for vClass switching this.changeContentType.click(function() { - menuManagementEdit.showClasses(); + menuManagementEdit.showClassGroups(); return false; }); this.selectClassGroupDropdown.change(function() { @@ -41,12 +42,35 @@ var menuManagementEdit = { // If checked, hide this input element menuManagementEdit.customTemplate.removeClass('hidden'); }); + $("form").submit(function () { + var validationError = menuManagementEdit.validateMenuItemForm(); + if (validationError == "") { + alert("validation error is empty, submit"); + $(this).submit(); + } else{ + alert("validation error is not empty"); + $('#error-alert').removeClass('hidden'); + $('#error-alert p').html(validationError); + return false; + } + }); }, - showClasses: function() { + showClassGroups: function() { //User has clicked change content type + //Show the section with the class group dropdown + this.selectContentType.removeClass("hidden"); + //Hide the "change content type" section which shows the selected class group + this.existingContentType.addClass("hidden"); + //Hide the checkboxes for classes within the class group this.classesForClassGroup.addClass("hidden"); }, - hideClasses: function() { - this.classesForClassGroup.removeClass("hidden"); + hideClassGroups: function() { //User has selected class group/content type, page should show classes for class group and 'existing' type with change link + //Hide the class group dropdown + this.selectContentType.addClass("hidden"); + //Show the "change content type" section which shows the selected class group + this.existingContentType.removeClass("hidden"); + //Show the classes in the class group + this.classesForClassGroup.removeClass("hidden"); + }, toggleClassSelection: function() { /*To do: please fix so selecting all selects all classes and deselecting @@ -75,6 +99,31 @@ var menuManagementEdit = { $('input:checkbox[name=allSelected]').removeAttr('checked'); }); }, + validateMenuItemForm: function() { + var validationError = ""; + + //Check menu name + if ($("input[type=text][name=menuName]").val() == ""){ + validationError += "You must supply a Name
"; + } + //Check pretty url + if ($("input[type=text][name=prettyUrl]").val() == ""){ + validationError += "You must supply a Pretty URL
"; + } + + + //if ($("input[name='selectedTemplate']:checked").val() == "custom") { + + // if ($("input[name=customTemplate]").val() == ""){ + // validationError += " * Enter custom template \n"; + //} + //} + //check select class group + if ($("#selectClassGroup").val() =='-1'){ + validationError += "You must supply a Content type
"; + } + return validationError; + }, chooseClassGroup: function() { var url = "dataservice?getVClassesForVClassGroup=1&classgroupUri="; var vclassUri = this.selectClassGroupDropdown.val(); @@ -87,7 +136,7 @@ var menuManagementEdit = { } else { //update existing content type with correct class group name and hide class group select again var _this = menuManagementEdit; - menuManagementEdit.hideClasses(); + menuManagementEdit.hideClassGroups(); menuManagementEdit.selectedGroupForPage.html(results.classGroupName); //retrieve classes for class group and display with all selected