/** * Created by wisestone on 2017-12-20. */ 'use strict'; define([ 'app', 'angular' ], function (app, angular) { app.controller('autoCompleteController', ['$scope', '$injector', '$filter', function ($scope, $injector, $filter) { var $rootScope = $injector.get("$rootScope"); var $resourceProvider = $injector.get("$resourceProvider"); var $q = $injector.get("$q"); var User = $injector.get("User"); var Project = $injector.get("Project"); var Workflow = $injector.get("Workflow"); var Issue = $injector.get("Issue"); var $log = $injector.get("$log"); var SweetAlert = $injector.get("SweetAlert"); // 함수 $scope.fn.getUserList = getUserList; // 사용자 목록 정보를 조회한다. $scope.fn.getProjectList = getProjectList; // 프로젝트 목록 정보를 조회한다. $scope.fn.getIssueList = getIssueList; // 일감 목록 정보를 조회한다. $scope.fn.getWorkflowList = getWorkflowList; // 워크플로우 목록 정보를 조회한다. function getUserList(query, excludeList, page, callBack) { var conditions = { name : query, statuses : ["01"], projectId : (function () { var projectId = ""; if ($rootScope.isDefined($scope.vm.form)) { angular.forEach($scope.vm.form.projects, function (project) { projectId = project.id; }); } return projectId; })(), excludeIds : (function () { var excludeIds = []; angular.forEach(excludeList, function (exclude) { excludeIds.push(exclude.id); }); return excludeIds; })() }; var deferred = $q.defer(); User.find($resourceProvider.getContent( // 페이징 업데이트가 필요한 컴포넌트 일경우, page 업데이트가 있을 경우 기본 10개씩 가져오고 아닐경우 25개씩 가져온다. conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { if (result.data.message.status === "success") { if ($rootScope.isDefined(callBack)) { callBack(result); } deferred.resolve(result.data.data); } else { SweetAlert.swal($filter("translate")("common.failedToUserListLookUp"), result.data.message.message, "error"); // "사용자 목록 조회 실패" } }); return deferred.promise; } function getProjectList(query, excludeList, page, callBack, statuses, roleTypes) { var conditions = { name : query, roleTypes : $rootScope.isDefined(roleTypes) ? roleTypes : ["01", "02"], statuses : $rootScope.isDefined(statuses) ? statuses : ["01", "02"], userId : $rootScope.user.id, excludeIds : (function () { var excludeIds = []; angular.forEach(excludeList, function (exclude) { excludeIds.push(exclude.id); }); return excludeIds; })() }; var deferred = $q.defer(); Project.findWork($resourceProvider.getContent( // 페이징 업데이트가 필요한 컴포넌트 일경우, page 업데이트가 있을 경우 기본 10개씩 가져오고 아닐경우 25개씩 가져온다. conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { if (result.data.message.status === "success") { if ($rootScope.isDefined(callBack)) { callBack(result); } deferred.resolve(result.data.data); } else { SweetAlert.swal($filter("translate")("common.failedToProjectListLookUp"), result.data.message.message, "error"); // "프로젝트 목록 조회 실패" } }); return deferred.promise; } function getWorkflowList(query, excludeList, page, callBack) { var conditions = { name : query, excludeIds : (function () { var excludeIds = []; angular.forEach(excludeList, function (exclude) { excludeIds.push(exclude.id); }); return excludeIds; })() }; var deferred = $q.defer(); Workflow.find($resourceProvider.getContent( // 페이징 업데이트가 필요한 컴포넌트 일경우, page 업데이트가 있을 경우 기본 10개씩 가져오고 아닐경우 25개씩 가져온다. conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { if (result.data.message.status === "success") { if ($rootScope.isDefined(callBack)) { callBack(result); } deferred.resolve(result.data.data); } else { SweetAlert.swal($filter("translate")("common.failedToWorkflowListLookUp"), result.data.message.message, "error"); // "워크플로우 목록 조회 실패" } }); return deferred.promise; } function getIssueList(query, excludeList, page, callBack) { var conditions = { name : query, excludeIds : (function () { var excludeIds = []; angular.forEach(excludeList, function (exclude) { excludeIds.push(exclude.id); }); return excludeIds; })() }; var deferred = $q.defer(); Issue.find($resourceProvider.getContent( // 페이징 업데이트가 필요한 컴포넌트 일경우, page 업데이트가 있을 경우 기본 10개씩 가져오고 아닐경우 25개씩 가져온다. conditions, $resourceProvider.getPageContent($rootScope.isDefined(page) ? page : 0, $rootScope.isDefined(page) ? 10 : 25))).then(function (result) { if (result.data.message.status === "success") { if ($rootScope.isDefined(callBack)) { callBack(result); } deferred.resolve(result.data.data); } else { SweetAlert.swal($filter("translate")("common.failedToIssueListLookUp"), result.data.message.message, "error"); // "워크플로우 목록 조회 실패" } }); return deferred.promise; } } ]); } );