super-productivity/app/scripts/dialogs/simple-task-summary/simple-task-summary-c.js
2017-01-25 23:32:41 +01:00

77 lines
2.2 KiB
JavaScript

/**
* @ngdoc function
* @name superProductivity.controller:SimpleTaskSummaryCtrl
* @description
* # SimpleTaskSummaryCtrl
* Controller of the superProductivity
*/
(function () {
'use strict';
angular
.module('superProductivity')
.controller('SimpleTaskSummaryCtrl', SimpleTaskSummaryCtrl);
/* @ngInject */
function SimpleTaskSummaryCtrl($mdDialog, Tasks, TasksUtil, $scope) {
let vm = this;
vm.options = {
separateBy: ', ',
isUseNewLine: false,
isListSubTasks: true,
isListDoneOnly: false,
isWorkedOnTodayOnly: true
};
function createTasksText() {
let tasksTxt = '';
let tasks = Tasks.getToday();
let newLineSeparator = '\n';
if (tasks) {
for (let i = 0; i < tasks.length; i++) {
let task = tasks[i];
if ((!vm.options.isListDoneOnly || task.isDone) && (!vm.options.isWorkedOnTodayOnly || TasksUtil.isWorkedOnToday(task))) {
tasksTxt += task.title + vm.options.separateBy;
if (vm.options.isUseNewLine) {
tasksTxt += newLineSeparator;
}
}
if (vm.options.isListSubTasks && task.subTasks) {
for (let j = 0; j < task.subTasks.length; j++) {
let subTask = task.subTasks[j];
if ((!vm.options.isListDoneOnly || subTask.isDone) && (!vm.options.isWorkedOnTodayOnly || TasksUtil.isWorkedOnToday(subTask))) {
tasksTxt += subTask.title + vm.options.separateBy;
if (vm.options.isUseNewLine) {
tasksTxt += newLineSeparator;
}
}
}
}
}
}
// cut off last separator
tasksTxt = tasksTxt.substring(0, tasksTxt.length - vm.options.separateBy.length);
if (vm.options.isUseNewLine) {
tasksTxt = tasksTxt.substring(0, tasksTxt.length - newLineSeparator.length);
}
return tasksTxt;
}
vm.tasksTxt = createTasksText();
$scope.$watch('vm.options', () => {
vm.tasksTxt = createTasksText();
}, true);
vm.submit = () => {
$mdDialog.hide();
};
vm.cancel = () => {
$mdDialog.hide();
};
}
})();