[UI] Support data registration
[validation.git] / ui / src / main / webapp / app / BluvalUI / NewSubmission / NewSubmissionController.js
index 1f65975..3468b25 100644 (file)
@@ -23,94 +23,133 @@ app
                     initialize();
 
                     function initialize() {
+                        $scope.blueprintInstances = [];
+                        $scope.blueprintInstance = '';
+                        $scope.blueprintNames = [];
+                        $scope.blueprintVersions = [];
+                        $scope.declerativeTimeslots = [];
+                        $scope.blueprintLayers = [];
+                        $scope.optionals = [];
+                        $scope.selectedBlueprintName = '';
+                        $scope.selectedBlueprintVersion = '';
+                        $scope.selectedDeclerativeTimeslot = '';
+                        $scope.selectedBlueprintLayer = '';
+                        $scope.selectedOptional = '';
                         restAPISvc
                                 .getRestAPI(
-                                        "/api/v1/blueprintinstanceforvalidation/",
+                                        "/api/v1/blueprintinstance/",
                                         function(data) {
-                                            $scope.blueprintInstancesForValidation = data;
-                                            $scope.blueprintNames = [];
+                                            $scope.blueprintInstances = data;
                                             angular
                                                     .forEach(
-                                                            $scope.blueprintInstancesForValidation,
+                                                            $scope.blueprintInstances,
                                                             function(
                                                                     blueprintInstance) {
                                                                 if ($scope.blueprintNames
-                                                                        .indexOf(blueprintInstance["blueprint"]["blueprintName"]) === -1) {
+                                                                        .indexOf(blueprintInstance["blueprint"]["blueprintName"]
+                                                                                .trim()) === -1) {
                                                                     $scope.blueprintNames
-                                                                            .push(blueprintInstance["blueprint"]["blueprintName"]);
+                                                                            .push(blueprintInstance["blueprint"]["blueprintName"]
+                                                                                    .trim());
                                                                 }
                                                             });
                                         });
-                        restAPISvc.getRestAPI("/api/v1/timeslots/", function(
-                                data) {
-                            $scope.timeslots = data;
-                            $scope.declerativeTimeslots = [];
-                            angular.forEach($scope.timeslots,
-                                    function(timeslot) {
-                                        var temp = "id: " + timeslot.timeslotId
-                                                + " Start date and time: "
-                                                + timeslot.startDateTime
-                                                /*
-                                                 * + " duration(in sec) :" +
-                                                 * blueprintInstance["timeslot"].duration
-                                                 */
-                                                + " lab :" + timeslot.lab.lab;
-                                        $scope.declerativeTimeslots.push(temp);
-                                    });
-                        });
                     }
-                    $scope.selectedBluePrintNameChange = function() {
+                    $scope.selectedBlueprintNameChange = function() {
+                        $scope.blueprintInstance = '';
                         $scope.blueprintVersions = [];
+                        $scope.declerativeTimeslots = [];
                         $scope.blueprintLayers = [];
                         $scope.optionals = [];
-                        $scope.selectedBlueprintVersion = {};
-                        $scope.selectedBlueprintLayer = {};
-                        $scope.selectedOptional = "";
+                        $scope.selectedBlueprintVersion = '';
+                        $scope.selectedDeclerativeTimeslot = '';
+                        $scope.selectedBlueprintLayer = '';
+                        $scope.selectedOptional = '';
                         angular
                                 .forEach(
-                                        $scope.blueprintInstancesForValidation,
+                                        $scope.blueprintInstances,
                                         function(blueprintInstance) {
-                                            if ($scope.selectedBlueprintName === blueprintInstance["blueprint"]["blueprintName"]) {
+                                            if ($scope.selectedBlueprintName
+                                                    .trim() === blueprintInstance["blueprint"]["blueprintName"]
+                                                    .trim()) {
                                                 if ($scope.blueprintVersions
-                                                        .indexOf(blueprintInstance["version"]) === -1) {
+                                                        .indexOf(blueprintInstance["version"]
+                                                                .trim()) === -1) {
                                                     $scope.blueprintVersions
-                                                            .push(blueprintInstance["version"]);
+                                                            .push(blueprintInstance["version"]
+                                                                    .trim());
                                                 }
                                             }
                                         });
                     }
-                    $scope.selectedBluePrintVersionChange = function() {
+                    $scope.selectedBlueprintVersionChange = function() {
                         if (!$scope.selectedBlueprintName) {
                             return;
                         }
+                        $scope.blueprintInstance = '';
+                        $scope.declerativeTimeslots = [];
                         $scope.blueprintLayers = [];
                         $scope.optionals = [];
-                        $scope.selectedBlueprintLayer = {};
-                        $scope.selectedOptional = "";
+                        $scope.selectedDeclerativeTimeslot = '';
+                        $scope.selectedBlueprintLayer = '';
+                        $scope.selectedOptional = '';
                         angular
                                 .forEach(
-                                        $scope.blueprintInstancesForValidation,
+                                        $scope.blueprintInstances,
                                         function(blueprintInstance) {
-                                            if ($scope.selectedBlueprintName === blueprintInstance["blueprint"]["blueprintName"]) {
-                                                if ($scope.selectedBlueprintVersion === blueprintInstance["version"]) {
-                                                    if ($scope.blueprintLayers
-                                                            .indexOf(blueprintInstance["layer"]) === -1) {
-                                                        $scope.blueprintLayers
-                                                                .push(blueprintInstance["layer"]);
-                                                    }
+                                            if ($scope.selectedBlueprintName
+                                                    .trim() === blueprintInstance["blueprint"]["blueprintName"]
+                                                    .trim()) {
+                                                if ($scope.selectedBlueprintVersion
+                                                        .trim() === blueprintInstance["version"]
+                                                        .trim()) {
+                                                    $scope.blueprintInstance = blueprintInstance;
                                                 }
                                             }
                                         });
+                        if (!$scope.blueprintInstance
+                                || !$scope.blueprintInstance.timeslots
+                                || $scope.blueprintInstance.timeslots.length === 0) {
+                            confirm("No available timeslots for this blueprint instance in this lab");
+                            return;
+                        }
+                        angular.forEach($scope.blueprintInstance.timeslots,
+                                function(timeslot) {
+                                    var temp = "id: " + timeslot.timeslotId
+                                            + " Start date and time: "
+                                            + timeslot.startDateTime
+                                            /*
+                                             * + " duration(in sec) :" +
+                                             * blueprintInstance["timeslot"].duration
+                                             */
+                                            + " lab :" + timeslot.labInfo.lab;
+                                    $scope.declerativeTimeslots.push(temp);
+                                });
+                    }
+
+                    $scope.selectedDeclerativeTimeslotChange = function() {
+                        $scope.blueprintLayers = [];
+                        $scope.optionals = [];
+                        $scope.selectedBlueprintLayer = {};
+                        $scope.selectedOptional = "";
+                        angular.forEach(
+                                $scope.blueprintInstance.blueprintLayers,
+                                function(layer) {
+                                    $scope.blueprintLayers.push(layer.layer);
+                                });
                         $scope.blueprintLayers.push("all");
                     }
 
-                    $scope.selectedBluePrintLayerChange = function() {
+                    $scope.selectedBlueprintLayerChange = function() {
+                        $scope.optionals = [];
+                        $scope.selectedOptional = "";
                         $scope.optionals = [ 'true', 'false' ];
                     }
 
                     $scope.submit = function() {
                         if (!$scope.selectedBlueprintName
                                 || !$scope.selectedBlueprintVersion
+                                || !$scope.blueprintInstance
                                 || !$scope.selectedBlueprintLayer
                                 || !$scope.selectedOptional
                                 || !$scope.selectedDeclerativeTimeslot) {
@@ -126,7 +165,7 @@ app
                                                 .indexOf("Start date and time:") - 1);
                         angular
                                 .forEach(
-                                        $scope.timeslots,
+                                        $scope.blueprintInstance.timeslots,
                                         function(timeslot) {
                                             if (selectedDeclerativeTimeslotId
                                                     .toString().trim() === timeslot.timeslotId
@@ -138,30 +177,30 @@ app
                         if ($scope.selectedBlueprintLayer === 'all') {
                             allLayers = "true";
                         }
-                        var wRobotTestResults = [];
+                        var wrobotTestResults = [];
                         if (allLayers === "false") {
-                            wRobotTestResults = [ {
-                                "blueprintLayer" : $scope.selectedBlueprintLayer
+                            wrobotTestResults = [ {
+                                "layer" : $scope.selectedBlueprintLayer
                             } ];
                         }
 
-                        var validationNexusTestResult = {
-                            "blueprintName" : $scope.selectedBlueprintName,
-                            "version" : $scope.selectedBlueprintVersion,
+                        var validationDbTestResult = {
+                            "blueprintInstance" : $scope.blueprintInstance,
                             "allLayers" : allLayers,
-                            "wRobotNexusTestResults" : wRobotTestResults,
-                            "optional" : $scope.selectedOptional
+                            "wrobotDbTestResults" : wrobotTestResults,
+                            "optional" : $scope.selectedOptional,
+                            "lab" : finalTimeslot.labInfo
                         };
-                        var submissionData = {
-                            "validationNexusTestResult" : validationNexusTestResult,
+                        var submission = {
+                            "validationDbTestResult" : validationDbTestResult,
                             "timeslot" : finalTimeslot
                         };
                         restAPISvc
                                 .postRestAPI(
                                         "/api/v1/submission/",
-                                        submissionData,
+                                        submission,
                                         function(data) {
-                                            if (data !== undefined) {
+                                            if (data) {
                                                 var confirmText = "The blueprint instance for validation has been submitted successfully. Submission id:"
                                                         + data.submissionId;
                                                 confirm(confirmText);
@@ -169,11 +208,12 @@ app
                                                 confirm("Error when committing the submission");
                                             }
                                         });
-                        $scope.selectedBlueprintName = {};
-                        $scope.selectedBlueprintVersion = {};
-                        $scope.selectedBlueprintLayer = {};
+                        $scope.selectedBlueprintName = '';
+                        $scope.selectedBlueprintVersion = '';
+                        $scope.selectedBlueprintLayer = '';
                         $scope.selectedOptional = "";
-                        $scope.selectedDeclerativeTimeslot = {};
+                        $scope.selectedDeclerativeTimeslot = '';
+                        $scope.blueprintInstance = '';
                     }
 
                 });