ng-sortable
Version:
Angular Library for Drag and Drop, supports Sortable and Draggable.
60 lines (55 loc) • 2.1 kB
JavaScript
/*jshint undef: false, unused: false, indent: 2*/
/*global angular: false */
;
angular.module('demoApp').service('BoardService', ['$uibModal', 'BoardManipulator', function ($uibModal, BoardManipulator) {
return {
removeCard: function (board, column, card) {
if (confirm('Are You sure to Delete?')) {
BoardManipulator.removeCardFromColumn(board, column, card);
}
},
addNewCard: function (board, column) {
var modalInstance = $uibModal.open({
templateUrl: 'views/partials/newCard.html',
controller: 'NewCardController',
backdrop: 'static',
resolve: {
column: function () {
return column;
}
}
});
modalInstance.result.then(function (cardDetails) {
if (cardDetails) {
BoardManipulator.addCardToColumn(board, cardDetails.column, cardDetails.title, cardDetails.details);
}
});
},
kanbanBoard: function (board) {
var kanbanBoard = new Board(board.name, board.numberOfColumns);
angular.forEach(board.columns, function (column) {
BoardManipulator.addColumn(kanbanBoard, column.name);
angular.forEach(column.cards, function (card) {
BoardManipulator.addCardToColumn(kanbanBoard, column, card.title, card.details);
});
});
return kanbanBoard;
},
sprintBoard: function (board) {
var sprintBoard = new Board(board.name, board.numberOfColumns);
angular.forEach(board.columns, function (column) {
BoardManipulator.addColumn(sprintBoard, column.name);
});
angular.forEach(board.backlogs, function (backlog) {
BoardManipulator.addBacklog(sprintBoard, backlog.title);
angular.forEach(backlog.phases, function (phase) {
BoardManipulator.addPhaseToBacklog(sprintBoard, backlog.title, phase);
angular.forEach(phase.cards, function (card) {
BoardManipulator.addCardToBacklog(sprintBoard, backlog.title, phase.name, card);
});
});
});
return sprintBoard;
}
};
}]);