/** * Created by wisestone on 2018-01-17. */ 'use strict'; define([ 'app', 'angular' ], function (app, angular) { app.controller('taskExcelImportController', ['$scope', '$rootScope', '$log', '$resourceProvider', '$uibModalInstance', '$injector', '$controller', '$tableProvider', 'Task', 'User', function ($scope, $rootScope, $log, $resourceProvider, $uibModalInstance, $injector, $controller, $tableProvider, Task, User) { $scope.fn = { cancel : cancel, formSubmit : formSubmit, formCheck : formCheck, excelTemplateDownload : excelTemplateDownload, getUserListCallBack : getUserListCallBack, makeUserTableConfigs : makeUserTableConfigs, onFileSelect : onFileSelect, broadCastTasks : broadCastTasks }; $scope.vm = { form : { users : [], file : "" }, userName : "", autoCompletePage : { user : { page : 0, totalPage : 0 } }, videoView : false, userTableConfigs : [] }; $scope.userTableEvent = { remove : remove }; angular.extend(this, $controller('autoCompleteController', {$scope : $scope, $injector : $injector})); function excelTemplateDownload() { $("form[name='excelTemplateDownload']").submit(); } function onFileSelect($files) { $scope.vm.form.file = $files; } function remove(id) { var users = []; angular.forEach($scope.vm.form.users, function (user) { if (user.id != id) { users.push(user); } }); $scope.vm.form.users = angular.copy(users); } function getUserListCallBack(result) { $scope.vm.autoCompletePage.user.totalPage = result.data.page.totalPage; } function makeUserTableConfigs() { $scope.vm.userTableConfigs = []; $scope.vm.userTableConfigs.push($tableProvider.config() .setHName("이름") .setDType("renderer") .setDAlign("text-center") .setDRenderer("PROJECT_USER_NAME")); $scope.vm.userTableConfigs.push($tableProvider.config() .setHName("이메일") .setHWidth("width-180-p") .setDVisible("hidden-xs") .setDAlign("text-center") .setDName("email")); $scope.vm.userTableConfigs.push($tableProvider.config() .setHName("연락처") .setDVisible("hidden-xs") .setHWidth("width-180-p") .setDName("phone") .setDAlign("text-center")); $scope.vm.userTableConfigs.push($tableProvider.config() .setHName("설정") .setDType("renderer") .setHWidth("width-60-p") .setDAlign("text-center") .setDRenderer("TARGET_REMOVE")); } function formCheck(formInvalid) { if (formInvalid) { return true; } return false; } function formSubmit() { $rootScope.spinner = true; Task.excelImport({ method : "POST", file : $scope.vm.form.file, // data 속성으로 별도의 데이터 전송 fields : { content : {} }, fileFormDataName : "file" }) .then(function (result) { // TODO - 웹 소켓으로 결과 표시 if (result.data.message.status == "success") { $scope.fn.cancel(); // 목록 화면 갱신 $scope.fn.broadCastTasks(); $rootScope.$broadcast("getTaskList"); } $rootScope.spinner = false; }); } function cancel() { $uibModalInstance.dismiss('cancel'); } function broadCastTasks() { User.requestTaskReloadUser($resourceProvider.getContent({projectId : ""}, $resourceProvider.getPageContent(0, 0))).then(function (result) { if (result.data.message.status == "success") { } else { // TODO - 웹 소켓으로 경고창 표시 } }); } $scope.fn.makeUserTableConfigs(); }]); });