/** * Created by wisestone on 2018-02-05. */ 'use strict'; define(['app', 'angular'], function (app, angular) { app.directive('agileCardSortable', ["$log", "$rootScope", "$compile", "$filter", "Task", "$resourceProvider", "$stateParams", function ($log, $rootScope, $compile, $filter, Task, $resourceProvider, $stateParams) { return { restrict : 'AE', link : function (scope, element, attrs) { $(element).sortable({ //items : ".sortable-item_inner:not(.not-sortable)", // 움직이지 못하게 막는 코드 //placeholder: "sortable_placeholder", // cancel: '.not-sortable', // 이동 금지 connectWith : ".connectList", stop : function (e, ui) { var taskId = ui.item[0].dataset.taskId; // 선택한 업무 var statusId = $(ui.item[0]).parent().attr("data-status-id"); // 이동한 상태 값 var currentStatusId = ui.item[0].dataset.tempStatusId; // 이동 전의 상태 값 var prevTaskId = null; // 이동한 상태에서 이전 업무 var nextTaskId = null; // 이동한 상태에서 다음 업무 if (angular.isDefined($(ui.item[0]).prev()[0])) { prevTaskId = $(ui.item[0]).prev()[0].dataset.taskId; } if (angular.isDefined($(ui.item[0]).next()[0])) { nextTaskId = $(ui.item[0]).next()[0].dataset.taskId; } var content = { moveWorkflowStatusId : statusId, // 이동한 status id prevTaskId : prevTaskId, // 이동한 상태의 이전 task id nextTaskId : nextTaskId, // 이동한 상태의 다음 task id taskId : taskId, // 이동한 task id projectId : $rootScope.lastProject.id, actionType : "/notification/task-move" }; scope.fn.executeSelfMoveTaskUpdate(content); $(ui.item[0]).attr("data-temp-status-id", statusId); if (currentStatusId !== statusId) { $(ui.item[0]).remove(); } Task.updateTaskKanBan($resourceProvider.getContent(content, $resourceProvider.getPageContent(0, 0))).then(function (result) { if (result.data.message.status == "success") { } else { // TODO - 웹 소켓으로 경고창 표시 } }); } }).disableSelection(); } } }]) });