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