Commit 8d950be2 authored by mduppanapudi-nisum-com's avatar mduppanapudi-nisum-com Committed by tdutta-nisum-com

Feature/mt 105 (#71)

* Add flow and update flow was working

* For account with no domain

* Add flow and update flow was working

* For account with no domain

* Resolving merge confilcts

* adding new feature if no domain

* Add flow and update flow was working

* For account with no domain

* Add flow and update flow was working

* For account with no domain

* Resolving merge confilcts

* changes in MT_105 and resolved

* Integration issues
parent 781ca05c
...@@ -33,7 +33,7 @@ public class Project implements Serializable { ...@@ -33,7 +33,7 @@ public class Project implements Serializable {
//private String managerId; //private String managerId;
// private String managerName; // private String managerName;
// private String account; // private String account;
// private String domain; private String domain;
private String status; private String status;
private List<String> employeeIds; private List<String> employeeIds;
private List<String> managerIds; private List<String> managerIds;
......
...@@ -143,8 +143,9 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -143,8 +143,9 @@ public class ProjectServiceImpl implements ProjectService {
{ {
Domains domain=new Domains(); Domains domain=new Domains();
domain.setAccountId(project.getAccountId()); domain.setAccountId(project.getAccountId());
domain.setDomainId(project.getDomainId()); domain.setDomainName(project.getDomain());
domain.setDeliveryManagers(project.getManagerIds()); domain.setDeliveryManagers(project.getManagerIds());
domain.setStatus(project.getStatus());
domainController.addDomain(domain); domainController.addDomain(domain);
} }
return projectRepo.save(project); return projectRepo.save(project);
...@@ -795,8 +796,8 @@ public class ProjectServiceImpl implements ProjectService { ...@@ -795,8 +796,8 @@ public class ProjectServiceImpl implements ProjectService {
List<EmployeeRoles> employeeRoles = mongoTemplate.find(query, EmployeeRoles.class); List<EmployeeRoles> employeeRoles = mongoTemplate.find(query, EmployeeRoles.class);
for (EmployeeRoles employeesRole : employeeRoles) { for (EmployeeRoles employeesRole : employeeRoles) {
HashMap<String, String> managerMap = new HashMap<>(); HashMap<String, String> managerMap = new HashMap<>();
managerMap.put("id", employeesRole.getEmployeeId()); managerMap.put("employeeId", employeesRole.getEmployeeId());
managerMap.put("name", employeesRole.getEmployeeName()); managerMap.put("employeeName", employeesRole.getEmployeeName());
EmployeeList.add(managerMap); EmployeeList.add(managerMap);
} }
return EmployeeList; return EmployeeList;
......
...@@ -305,7 +305,7 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window ...@@ -305,7 +305,7 @@ myApp.controller("loginController",function($scope, myFactory, $compile, $window
}else if(role == "Delivery Manager" || role == "Director"){ }else if(role == "Delivery Manager" || role == "Director"){
menuItems.push({"menu" : "Manage Accounts","icon" : "fa fa fa-user fa-2x","path" : "templates/accounts.html"}); menuItems.push({"menu" : "Manage Accounts","icon" : "fa fa fa-user fa-2x","path" : "templates/accounts.html"});
menuItems.push({"menu" : "Manage Employees","icon" : "fa fa-user-plus fa-2x","path" : "templates/roles.html"}); menuItems.push({"menu" : "Manage Employees","icon" : "fa fa-user-plus fa-2x","path" : "templates/roles.html"});
// menuItems.push({"menu" : "Manage Team","icon" : "fa fa-sitemap fa-2x","path" : "templates/projectDetails.html"}); menuItems.push({"menu" : "Manage Team","icon" : "fa fa-sitemap fa-2x","path" : "templates/projectDetails.html"});
menuItems.push({"menu" : "Manage Domains","icon" : "fa fa-handshake-o","path" : "templates/domains.html"}); menuItems.push({"menu" : "Manage Domains","icon" : "fa fa-handshake-o","path" : "templates/domains.html"});
menuItems.push({"menu" : "Manage Projects","icon" : "fa fa-tasks fa-2x","path" : "templates/projects.html"}); menuItems.push({"menu" : "Manage Projects","icon" : "fa fa-tasks fa-2x","path" : "templates/projects.html"});
menuItems.push({"menu" : "Manage Visa","icon" : "fa fa-tasks fa-2x","path" : "templates/visaList.html"}); menuItems.push({"menu" : "Manage Visa","icon" : "fa fa-tasks fa-2x","path" : "templates/visaList.html"});
......
...@@ -35,7 +35,7 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -35,7 +35,7 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
{ field: 'projectName', displayName: 'Project ', enableColumnMenu: false, enableSorting: true, enableFiltering: true }, { field: 'projectName', displayName: 'Project ', enableColumnMenu: false, enableSorting: true, enableFiltering: true },
{ field: 'account', displayName: 'Account ', enableColumnMenu: false, enableSorting: true, enableFiltering: true }, { field: 'account', displayName: 'Account ', enableColumnMenu: false, enableSorting: true, enableFiltering: true },
//{field : 'managerId',displayName: 'Manager ID ', enableColumnMenu: false, enableSorting: false}, //{field : 'managerId',displayName: 'Manager ID ', enableColumnMenu: false, enableSorting: false},
{ field: 'managerIds', displayName: 'Manager Name ', cellTemplate: '<div ng-repeat= "item in row.entity[col.field]">{{item.name}}<span ng-hide="$last">,</span></div>', enableColumnMenu: false, enableSorting: true, enableFiltering: true }, { field: 'managerIds', displayName: 'Manager Name ', cellTemplate: '<div ng-repeat= "item in row.entity[col.field]">{{item.employeeName}}<span ng-hide="$last">,</span></div>', enableColumnMenu: false, enableSorting: true, enableFiltering: true },
{ field: 'status', displayName: 'Status ', enableColumnMenu: false, enableSorting: true, enableFiltering: false }, { field: 'status', displayName: 'Status ', enableColumnMenu: false, enableSorting: true, enableFiltering: false },
{ name: 'Actions', displayName: 'Actions', cellTemplate: getCellTemplate, enableColumnMenu: false, enableSorting: false, enableFiltering: false, width: 130 } { name: 'Actions', displayName: 'Actions', cellTemplate: getCellTemplate, enableColumnMenu: false, enableSorting: false, enableFiltering: false, width: 130 }
] ]
...@@ -43,6 +43,7 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -43,6 +43,7 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
$scope.gridOptions.data = $scope.records; $scope.gridOptions.data = $scope.records;
$scope.getRowData = function (row, action) { $scope.getRowData = function (row, action) {
console.log(row.entity);
$scope.parentData.projectId = row.entity.projectId; $scope.parentData.projectId = row.entity.projectId;
$scope.parentData.projectName = row.entity.projectName; $scope.parentData.projectName = row.entity.projectName;
$scope.parentData.account = row.entity.account; $scope.parentData.account = row.entity.account;
...@@ -256,11 +257,11 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -256,11 +257,11 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
} }
function AddProjectController($scope, $mdDialog, dataToPass, gridOptionsData, managers, $window, $mdSelect) { function AddProjectController($scope, $mdDialog, dataToPass, gridOptionsData, managers, $window, $mdSelect) {
console.log(managers,dataToPass);
$scope.templateTitle = dataToPass.action; $scope.templateTitle = dataToPass.action;
$scope.alertMsg = ""; $scope.alertMsg = "";
$scope.isDisabled = false; $scope.isDisabled = false;
$scope.result = ""; $scope.result = "";
$scope.managerDetails = managers;
$scope.employee; $scope.employee;
$scope.projectModel; $scope.projectModel;
$scope.isSecondTab = false; $scope.isSecondTab = false;
...@@ -270,6 +271,7 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -270,6 +271,7 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
$scope.selectedTab = 0; $scope.selectedTab = 0;
$scope.managersSelectedList = []; $scope.managersSelectedList = [];
$scope.employeeInTeam = []; $scope.employeeInTeam = [];
$scope.domains = [];
// code added // code added
$scope.searchTerm = ""; $scope.searchTerm = "";
...@@ -329,23 +331,28 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -329,23 +331,28 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
// $(".leads-data").text($("#lead .lead-search .md-select-value span .md-text").text().append('<span class="glyphicon glyphicon-remove" style="margin-left: 5px;"></span>')); // $(".leads-data").text($("#lead .lead-search .md-select-value span .md-text").text().append('<span class="glyphicon glyphicon-remove" style="margin-left: 5px;"></span>'));
} }
$scope.removeSelectedLead = function (item) { // $scope.removeSelectedLead = function (item) {
var index = $scope.managersSelectedList.indexOf(item); // var index = $scope.managersSelectedList.indexOf(item);
$scope.managersSelectedList.splice(index, 1); // $scope.managersSelectedList.splice(index, 1);
} // }
$scope.closeSelectBox = function () { $scope.closeSelectBox = function () {
$mdSelect.hide(); $mdSelect.hide();
} }
getSelectedLead = function () { getSelectedLead = function () {
$scope.managersSelectedList.forEach(function (manager) { var managerIds = [];
if (!$scope.employeeInTeam.includes(manager.employeeId)) if($scope.managersSelectedList.name){
$scope.employeeInTeam.push(manager.employeeId); managerIds.push($scope.managersSelectedList.id)
}) }
return $scope.employeeInTeam; else{
managerIds.push($scope.managersSelectedList.employeeId)
}
return managerIds;
} }
$scope.getEmployeeDetails = function(){ $scope.getEmployeeDetails = function(){
$http({ $http({
method : "GET", method : "GET",
...@@ -363,8 +370,10 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -363,8 +370,10 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
$scope.projectName = ""; $scope.projectName = "";
$scope.managerId = ""; $scope.managerId = "";
$scope.managerName = ""; $scope.managerName = "";
$scope.domains;
$scope.isDisabled = false; $scope.isDisabled = false;
} else if (dataToPass.action == "Update") { } else if (dataToPass.action == "Update") {
console.log("$scope.domains",$scope.domains)
$scope.projectId = dataToPass.projectId; $scope.projectId = dataToPass.projectId;
$scope.projectName = dataToPass.projectName; $scope.projectName = dataToPass.projectName;
$scope.managerId = dataToPass.managerId; $scope.managerId = dataToPass.managerId;
...@@ -375,8 +384,11 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -375,8 +384,11 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
$scope.account = accounts1[i]; $scope.account = accounts1[i];
} }
} }
$scope.domain = dataToPass.domain;
console.log(dataToPass.managerIds[0]);
$scope.managersSelectedList = dataToPass.managerIds[0];
$scope.domain = {"domainName":dataToPass.domain,"domainId":dataToPass.domainId};
$scope.projectStatus = dataToPass.status; $scope.projectStatus = dataToPass.status;
$scope.managerModel = { $scope.managerModel = {
'employeeName': dataToPass.managerName, 'employeeName': dataToPass.managerName,
...@@ -539,7 +551,25 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -539,7 +551,25 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
} }
}; };
function getDomainsAssoicatedToAccount(id){
$http({
method : "GET",
url : appConfig.appUri + "/user/getDomains?accountId="+id
}).then(function mySuccess(response) {
var result = response.data;
if(result != "" || result.length != 0){
$scope.domains = result;
}
else{
$scope.domains = [
{domainName: $scope.account.accountName}
]
}
}, function myError(response) {
});
}
$scope.getAccountText = function () { $scope.getAccountText = function () {
if ($scope.account !== undefined) { if ($scope.account !== undefined) {
...@@ -548,13 +578,47 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -548,13 +578,47 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
return "Please select account"; return "Please select account";
} }
}; };
$scope.onAccountChange = function(){
if($scope.account.accountId){
getDomainsAssoicatedToAccount($scope.account.accountId);
}
};
$scope.getDomainText = function () { $scope.getDomainText = function () {
console.log($scope.domain,$scope.domains);
if ($scope.domain !== undefined) { if ($scope.domain !== undefined) {
return $scope.domain; return $scope.domain.domainName;
} else { } else {
return "Please select domain"; return "Please select domain";
} }
}; };
$scope.onDomainChange = function(){
if($scope.domain.domainId !== undefined){
getManagersAssociatedToDomain($scope.domain.domainId);
}
else{
$scope.managerDetails = managers;
}
}
function getManagersAssociatedToDomain(id){
$http({
method : "GET",
url : appConfig.appUri + "/user/getDeliveryLeads?domainId="+id
}).then(function mySuccess(response) {
var result = response.data;
if(result != "" || result.length != 0){
$scope.managerDetails = result;
console.log($scope.managerDetails);
}
}, function myError(response) {
// showProgressDialog("Something went wrong redirecting to login page!!!");
});
}
$scope.validateEmpId = function () { $scope.validateEmpId = function () {
var searchId = $scope.empId; var searchId = $scope.empId;
if (searchId != "" && isNaN(searchId)) { if (searchId != "" && isNaN(searchId)) {
...@@ -606,9 +670,9 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -606,9 +670,9 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
} }
return false; return false;
} }
$scope.getSelected = function () { $scope.getSelectedManager = function () {
if ($scope.managersSelectedList.length > 0) { if (Object.keys($scope.managersSelectedList).length > 0) {
return null; return $scope.managersSelectedList.employeeName;
} else { } else {
return "Please select a lead"; return "Please select a lead";
} }
...@@ -628,7 +692,8 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -628,7 +692,8 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
var employeeModel = $scope.employeeModel; var employeeModel = $scope.employeeModel;
var projectModel = $scope.projectModel; var projectModel = $scope.projectModel;
var domain = $scope.domain; var domain = $scope.domain.domainName;
console.log(domain);
var newBillingStartDate = $scope.newBillingStartDate var newBillingStartDate = $scope.newBillingStartDate
if(action === "Add"){ if(action === "Add"){
...@@ -694,8 +759,9 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS ...@@ -694,8 +759,9 @@ myApp.controller("projectController", function ($scope, myFactory, exportUiGridS
// } // }
else { else {
$scope.alertMsg = ""; $scope.alertMsg = "";
console.log(getSelectedLead()); console.log($scope.projectStatus,$scope.domain.domainId);
var record = { "projectId": $scope.projectId, "projectName": $scope.projectName, "managerIds": getSelectedLead(), "status": $scope.projectStatus, "account": $scope.account.accountName, "domain": $scope.domain }; var record = { "projectId": $scope.projectId, "projectName": $scope.projectName,"account": $scope.account.accountName, "domain": $scope.domain.domainName, "accountId":$scope.account.accountId, "domainId": $scope.domain.domainId, "managerIds": getSelectedLead(), "status": $scope.projectStatus};
console.log(record);
addOrUpdateProject(record, $scope.templateTitle); addOrUpdateProject(record, $scope.templateTitle);
$timeout(function () { updateGrid($scope.templateTitle, record) }, 500); $timeout(function () { updateGrid($scope.templateTitle, record) }, 500);
} }
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<b>Project ID</b> <b>Project ID</b>
</td> </td>
<td colspan="8"> <td colspan="8">
<input type="text" class="form-control" id="projectId" name="projectId" ng-model="projectId" placeholder="Project Id Auto Generates" ng-blur="" ng-disabled="true" /> <input type="text" class="form-control" id="projectId" name="projectId" ng-model="projectId" placeholder="Project Id Auto Generates" ng-disabled="true" />
</td> </td>
</tr> </tr>
<tr> <tr>
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,7 @@
<b>Account</b> <b>Account</b>
</td> </td>
<td colspan="8"> <td colspan="8">
<md-select ng-model="account" md-selected-text="getAccountText()" id="account"> <md-select ng-model="account" md-selected-text="getAccountText()" ng-change="onAccountChange()" id="account">
<md-optgroup label="account"> <md-optgroup label="account">
<md-option ng-value="account1" ng-repeat="account1 in accounts">{{account1.accountName}}</md-option> <md-option ng-value="account1" ng-repeat="account1 in accounts">{{account1.accountName}}</md-option>
</md-optgroup> </md-optgroup>
...@@ -50,9 +50,9 @@ ...@@ -50,9 +50,9 @@
<b>Domain</b> <b>Domain</b>
</td> </td>
<td colspan="8"> <td colspan="8">
<md-select ng-model="domain" md-selected-text="getDomainText()" id="domain"> <md-select ng-model="domain" md-selected-text="getDomainText()" ng-change="onDomainChange()" id="domain">
<md-optgroup label="domain"> <md-optgroup label="domain">
<md-option ng-value="domain" ng-repeat="domain in account.subDomains">{{domain}}</md-option> <md-option ng-value="domain" ng-repeat="domain in domains">{{domain.domainName}}</md-option>
</md-optgroup> </md-optgroup>
</md-select> </md-select>
</td> </td>
...@@ -61,24 +61,16 @@ ...@@ -61,24 +61,16 @@
<td colspan="4"> <td colspan="4">
<b>Lead</b> <b>Lead</b>
</td> </td>
<td colspan="8"> <td colspan="8">
<div class="leads-data" ng-show="managersSelectedList.length > 0">
<div ng-repeat="item in managersSelectedList">
<p> {{item.employeeName}}
<span ng-click="removeSelectedLead(item)" class="glyphicon glyphicon-remove"></span>
</p>
</div>
</div>
<div style="display: block; float: left; width: 100%;"> <div style="display: block; float: left; width: 100%;">
<md-select ng-model="managersSelectedList" data-md-container-class="selectHeader" md-selected-text="getSelected()" multiple > <md-select ng-model="managersSelectedList" data-md-container-class="selectHeader" md-selected-text="getSelectedManager()" >
<md-select-header class="selectHeaderChild header-spacing" layout="column"> <md-select-header class="selectHeaderChild header-spacing" layout="column">
<input ng-model="searchTerm" type="search" ng-keydown="updateSearch($event)" ng-model-options="{debounce: {'default': 500, 'blur': 0}}" <input ng-model="searchTerm" type="search" ng-keydown="updateSearch($event)" ng-model-options="{debounce: {'default': 500, 'blur': 0}}"
placeholder="Please Search for a lead" class="searchBoxHeader demo-header-searchbox md-text search-spacingleft" /> placeholder="Please Search for a lead" class="searchBoxHeader demo-header-searchbox md-text search-spacingleft" />
<span class="glyphicon glyphicon-remove close-mdselect" ng-click="closeSelectBox()"></span> <span class="glyphicon glyphicon-remove close-mdselect" ng-click="closeSelectBox()"></span>
</md-select-header> </md-select-header>
<md-optgroup label="managers" class="optionScroll"> <md-optgroup label="managers" class="optionScroll">
<md-option ng-value="manager" ng-repeat="manager in managerDetails | filter:searchFilter">{{manager.employeeName}}</md-option> <md-option ng-value="manager" ng-repeat="manager in managerDetails | filter:searchFilter">{{manager.employeeName}}{{manager.name}}</md-option>
</md-optgroup> </md-optgroup>
</md-select> </md-select>
</div> </div>
...@@ -108,7 +100,7 @@ ...@@ -108,7 +100,7 @@
</md-dialog-content> </md-dialog-content>
<md-dialog-actions layout="row"> <md-dialog-actions layout="row">
<md-button class="md-raised" data-ng-click="validateFields()" style="width:120px;background: cadetblue;color:white;"> <md-button class="md-raised" data-ng-click="validateFields('{{templateTitle}}')" style="width:120px;background: cadetblue;color:white;">
{{templateTitle}} </md-button> {{templateTitle}} </md-button>
<md-button class="md-raised" ng-click="cancel()" style="width:120px;background: cadetblue;color:white;"> <md-button class="md-raised" ng-click="cancel()" style="width:120px;background: cadetblue;color:white;">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment