Merge pull request #282 from owncloud/ShowSubTasks

Temporally show subtasks when task open
This commit is contained in:
raimund-schluessler 2015-11-23 08:59:23 +01:00
commit 00cae41865
4 changed files with 43 additions and 1 deletions

View file

@ -79,6 +79,15 @@ SettingsBusinessLayer, SearchBusinessLayer) ->
@_$scope.showSubtaskInput = (uid) -> @_$scope.showSubtaskInput = (uid) ->
_$scope.status.addSubtaskTo = uid _$scope.status.addSubtaskTo = uid
@_$scope.hideSubtasks = (task) ->
descendants = _$tasksmodel.getDescendantID(task.id)
if task.id == _$scope.route.taskID
return false
else if _$scope.route.taskID in descendants
return false
else
return task.hidesubtasks
@_$scope.showInput = () -> @_$scope.showInput = () ->
if _$scope.route.listID in ['completed', 'week'] if _$scope.route.listID in ['completed', 'week']
return false return false

View file

@ -149,6 +149,14 @@ angular.module('Tasks').factory 'TasksModel',
childrenID.push t.id childrenID.push t.id
return childrenID return childrenID
getDescendantID: (taskID) ->
childrenID = @getChildrenID(taskID)
descendantID = []
descendantID = descendantID.concat childrenID
for childID in childrenID
descendantID = descendantID.concat @getDescendantID(childID)
return descendantID
filterTasks: (task, filter) -> filterTasks: (task, filter) ->
switch filter switch filter
when 'completed' when 'completed'

View file

@ -987,6 +987,8 @@
}).call(this); }).call(this);
(function() { (function() {
var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };
angular.module('Tasks').controller('TasksController', [ angular.module('Tasks').controller('TasksController', [
'$scope', '$window', '$routeParams', 'TasksModel', 'ListsModel', 'CollectionsModel', 'TasksBusinessLayer', '$location', 'SettingsBusinessLayer', 'SearchBusinessLayer', function($scope, $window, $routeParams, TasksModel, ListsModel, CollectionsModel, TasksBusinessLayer, $location, SettingsBusinessLayer, SearchBusinessLayer) { '$scope', '$window', '$routeParams', 'TasksModel', 'ListsModel', 'CollectionsModel', 'TasksBusinessLayer', '$location', 'SettingsBusinessLayer', 'SearchBusinessLayer', function($scope, $window, $routeParams, TasksModel, ListsModel, CollectionsModel, TasksBusinessLayer, $location, SettingsBusinessLayer, SearchBusinessLayer) {
var TasksController; var TasksController;
@ -1039,6 +1041,17 @@
this._$scope.showSubtaskInput = function(uid) { this._$scope.showSubtaskInput = function(uid) {
return _$scope.status.addSubtaskTo = uid; return _$scope.status.addSubtaskTo = uid;
}; };
this._$scope.hideSubtasks = function(task) {
var descendants, _ref;
descendants = _$tasksmodel.getDescendantID(task.id);
if (task.id === _$scope.route.taskID) {
return false;
} else if (_ref = _$scope.route.taskID, __indexOf.call(descendants, _ref) >= 0) {
return false;
} else {
return task.hidesubtasks;
}
};
this._$scope.showInput = function() { this._$scope.showInput = function() {
var _ref; var _ref;
if ((_ref = _$scope.route.listID) === 'completed' || _ref === 'week') { if ((_ref = _$scope.route.listID) === 'completed' || _ref === 'week') {
@ -2626,6 +2639,18 @@
return childrenID; return childrenID;
}; };
TasksModel.prototype.getDescendantID = function(taskID) {
var childID, childrenID, descendantID, _i, _len;
childrenID = this.getChildrenID(taskID);
descendantID = [];
descendantID = descendantID.concat(childrenID);
for (_i = 0, _len = childrenID.length; _i < _len; _i++) {
childID = childrenID[_i];
descendantID = descendantID.concat(this.getDescendantID(childID));
}
return descendantID;
};
TasksModel.prototype.filterTasks = function(task, filter) { TasksModel.prototype.filterTasks = function(task, filter) {
switch (filter) { switch (filter) {
case 'completed': case 'completed':

View file

@ -31,7 +31,7 @@
</div> </div>
</div> </div>
<div class="subtasks-container" <div class="subtasks-container"
ng-class="{subtaskshidden: task.hidesubtasks}"> ng-class="{subtaskshidden: hideSubtasks(task)}">
<ol dnd-list="draggedTasks" <ol dnd-list="draggedTasks"
dnd-drop="dropCallback(event, item, index)" dnd-drop="dropCallback(event, item, index)"
dnd-dragover="dragover(event, item, index)"> dnd-dragover="dragover(event, item, index)">