/**
|
* Created by wisestone on 2018-11-05.
|
*/
|
'use strict';
|
|
define(['app', 'angular'],
|
function (app, angular) {
|
app.directive('memberProgressWidget', ['$log', '$rootScope', '$resourceProvider', 'Widget', 'SweetAlert', '$filter',
|
function ($log, $rootScope, $resourceProvider, Widget, SweetAlert, $filter) {
|
return {
|
restrict : 'E',
|
scope : {
|
memberProgressWidget : '=',
|
},
|
replace : true,
|
templateUrl : '../custom_components/widget/member-progress-widget/member-progress-widget.html',
|
controller : function ($scope, $element, $attrs) {
|
|
// 변수 모음
|
$scope.vm = {
|
memberProgressWidget : {},
|
projectId : ""
|
};
|
|
// 함수 모음
|
$scope.fn = {
|
saveMemberProgressWidget : saveMemberProgressWidget, // 선택한 프로젝트 정보를 저장한다.
|
findMemberProgressWidget : findMemberProgressWidget, // 멤버별 진행률을 조회한다.
|
};
|
|
// 멤버별 진행률 정보가 변경될때 감지한다.
|
$scope.$watch("memberProgressWidget", function (newValue) {
|
if ($rootScope.isDefined(newValue)) {
|
// 선택한 프로젝트 정보를 저장한다.
|
$scope.fn.saveMemberProgressWidget(newValue);
|
}
|
});
|
|
// 선택한 프로젝트 정보를 저장한다.
|
function saveMemberProgressWidget(result) {
|
$scope.vm.memberProgressWidget = result;
|
|
if ($scope.vm.memberProgressWidget.projectVos.length > 0) {
|
$scope.vm.memberProgressWidget.projectVos[0].checked = true;
|
// 최초 접근시 선택된 프로젝트 아이디
|
$scope.vm.projectId = $scope.vm.memberProgressWidget.projectVos[0].id;
|
}
|
}
|
|
// 멤버별 진행률을 조회한다.
|
function findMemberProgressWidget(projectId) {
|
// 검색 조건
|
var content = {
|
projectId : projectId
|
};
|
|
Widget.findMemberProgress($resourceProvider.getContent(content,
|
$resourceProvider.getPageContent(0, 0))).then(function (result) {
|
|
if (result.data.message.status === "success") {
|
// 선택한 프로젝트 정보를 저장한다.
|
$scope.fn.saveMemberProgressWidget(result.data.memberProgressWidget);
|
|
angular.forEach($scope.vm.memberProgressWidget.projectVos, function (projectVo) {
|
if (projectVo.id === projectId) {
|
projectVo.checked = true;
|
// 사용자가 프로젝트를 선택했을 때 프로젝트 아이디 정보를 다시 저장
|
$scope.vm.projectId = projectVo.id;
|
}
|
else {
|
projectVo.checked = false;
|
}
|
});
|
}
|
else {
|
SweetAlert.error($filter("translate")("dashboard.failedToCheckProgressMember"), result.data.message.message); // 멤버별 진행률 조회 실패
|
}
|
});
|
}
|
|
|
|
},
|
link : function (scope, element, attrs) {
|
|
}
|
};
|
}])
|
});
|