Moar work

This commit is contained in:
Julius Haertl
2016-08-15 11:29:11 +02:00
parent 0e7a71787f
commit c958f9b37c
25 changed files with 616 additions and 414 deletions

View File

@@ -1,4 +1,4 @@
app.controller('BoardController', function ($rootScope, $scope, $stateParams, StatusService, BoardService, StackService, CardService, LabelService, $state, $transitions) {
app.controller('BoardController', function ($rootScope, $scope, $stateParams, StatusService, BoardService, StackService, CardService, LabelService, $state, $transitions, $filter) {
$scope.sidebar = $rootScope.sidebar;
@@ -6,10 +6,6 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
$scope.status={},
$scope.newLabel={};
$scope.status.boardtab = $stateParams.detailTab;
$scope.state = $state.current;
$scope.stackservice = StackService;
$scope.boardservice = BoardService;
@@ -18,26 +14,87 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
$scope.labelservice = LabelService;
$scope.defaultColors = ['31CC7C', '317CCC', 'FF7A66', 'F1DB50', '7C31CC', 'CC317C', '3A3B3D', 'CACBCD'];
// fetch data
StackService.clear();
$scope.search = function (searchText) {
$scope.searchText = searchText;
$scope.refreshData();
};
$scope.board = BoardService.getCurrent();
StackService.clear(); //FIXME: Is this still needed?
$scope.statusservice.retainWaiting();
$scope.statusservice.retainWaiting();
BoardService.fetchOne($scope.id).then(function(data) {
$scope.statusservice.releaseWaiting();
}, function(error) {
$scope.statusservice.setError('Error occured', error);
// FIXME: ugly solution for archive
$scope.$state = $stateParams;
$scope.filter = $stateParams.filter;
$scope.$watch('$state.filter', function (name) {
console.log("statewatch" + name);
$scope.filter = name;
});
$scope.switchFilter = function(filter) {
console.log("switch filter click " + name);
$state.go('.', {filter: filter}, {notify: false});
$scope.filter = filter;
};
$scope.$watch('filter', function(name) {
if(name==="archive") {
$scope.loadArchived();
} else {
$scope.loadDefault();
}
});
console.log($scope.state);
$scope.stacksData = StackService;
$scope.stacks = {};
$scope.$watch('stacksData', function(value) {
$scope.refreshData();
}, true);
$scope.refreshData = function () {
if($scope.filter === "archive") {
$scope.filterData('-lastModified', $scope.searchText);
} else {
$scope.filterData('order', $scope.searchText);
}
};
// filter cards here, as ng-sortable will not work nicely with html-inline filters
$scope.filterData = function (order, text) {
if ($scope.stacks === undefined)
return;
angular.copy($scope.stackservice.data, $scope.stacks);
angular.forEach($scope.stacks, function (value, key) {
var cards = [];
cards = $filter('cardSearchFilter')(value.cards, text);
cards = $filter('orderBy')(cards, order);
$scope.stacks[key].cards = cards;
});
};
$scope.loadDefault = function() {
console.log("Load default");
StackService.fetchAll($scope.id).then(function(data) {
$scope.statusservice.releaseWaiting();
}, function(error) {
$scope.statusservice.setError('Error occured', error);
});
};
$scope.loadArchived = function() {
console.log("Load archived!");
StackService.fetchArchived($scope.id).then(function(data) {
$scope.statusservice.releaseWaiting();
}, function(error) {
$scope.statusservice.setError('Error occured', error);
});
};
// Handle initial Loading
BoardService.fetchOne($scope.id).then(function(data) {
$scope.statusservice.releaseWaiting();
}, function(error) {
$scope.statusservice.setError('Error occured', error);
});
@@ -68,7 +125,14 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
$scope.cardDelete = function(card) {
CardService.delete(card.id);
StackService.deleteCard(card);
}
$scope.cardArchive = function(card) {
CardService.archive(card);
StackService.deleteCard(card);
};
$scope.cardUnarchive = function(card){
CardService.unarchive(card);
StackService.deleteCard(card);
}
$scope.labelDelete = function(label) {
@@ -102,27 +166,33 @@ app.controller('BoardController', function ($rootScope, $scope, $stateParams, St
BoardService.updateAcl(acl);
}
$scope.checkCanEdit = function() {
if($scope.archived) {
return false;
}
return true;
}
// settings for card sorting
$scope.sortOptions = {
itemMoved: function (event) {
// TODO: Implement reodering here
// TODO: Implement reodering here (set new order of all cards in stack)
event.source.itemScope.modelValue.status = event.dest.sortableScope.$parent.column;
var order = event.dest.index;
var card = event.source.itemScope.c;
var newStack = event.dest.sortableScope.$parent.s.id;
card.stackId = newStack;
CardService.update(card);
CardService.reorder(card, order).then(function(data) {
StackService.data[newStack].addCard(card);
});
},
orderChanged: function (event) {
// TODO: Implement ordering here
// TODO: Implement ordering here (set new order of all cards in stack)
// then maybe also call $scope.filterData('order')?
var order = event.dest.index;
var card = event.source.itemScope.c;
var stack = event.dest.sortableScope.$parent.s.id;
CardService.reorder(card, order);
},
scrollableContainer: '#board',