/** * 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) { } }; }]) });