Updated Tasks for multi-select

This commit is contained in:
Brian McGonagill 2022-09-14 19:16:06 -05:00
parent 301c66eeba
commit aa8ea1ecb1
3 changed files with 61 additions and 27 deletions

View file

@ -1,9 +1,9 @@
<template name="taskForm"> <template name="taskForm">
<h4>Tasks</h4> <h4>Tasks</h4>
<div class="row"> <div class="row">
<div class="col s12 m6 l4 input-field"> <div class="col s12 m6 l4 input-field chips" id="taskName">
<input type="text" class="taskName" id="taskName" /> <!-- <input type="text" class="taskName" id="taskName" />
<label for="taskName">Task Name</label> <label for="taskName">Task Name</label> -->
</div> </div>
<div class="col s12 m6 l4 input-field"> <div class="col s12 m6 l4 input-field">
<select name="taskUser" id="taskUser" class="taskUser"> <select name="taskUser" id="taskUser" class="taskUser">
@ -16,6 +16,13 @@
<div class="col s12 m6 l4 input-field"> <div class="col s12 m6 l4 input-field">
<input type="text" class="datepicker" id="taskDate" /> <input type="text" class="datepicker" id="taskDate" />
<label for="taskDate">Task Date</label> <label for="taskDate">Task Date</label>
<div class="row">
{{#each taskDate in taskDates}}
<div class="col s6 l3 m4">
<span>{{taskDate}}</span>
</div>
{{/each}}
</div>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -29,6 +36,7 @@
</div> </div>
<div class="col s12 m6 l6"> <div class="col s12 m6 l6">
<a class="waves-effect waves-light btn saveTaskMgmt green right">Add</a> <a class="waves-effect waves-light btn saveTaskMgmt green right">Add</a>
<!-- <a class="waves-effect waves-light btn testChips blue left" id="testChips">Test Chips</a> -->
</div> </div>
</div> </div>
{{> snackbar}} {{> snackbar}}

View file

@ -11,10 +11,12 @@ Template.taskForm.onRendered(function() {
}, 100); }, 100);
$('select').formSelect(); $('select').formSelect();
$('.datepicker').datepicker(); $('.datepicker').datepicker();
$('.chips').chips();
Session.set("taskNameErr", false); Session.set("taskNameErr", false);
Session.set("taskUserErr", false); Session.set("taskUserErr", false);
Session.set("taskDateErr", false); Session.set("taskDateErr", false);
Session.set("hideCompletedTasks", true); Session.set("hideCompletedTasks", true);
Session.set("taskDateArr", []);
}); });
Template.taskForm.helpers({ Template.taskForm.helpers({
@ -27,30 +29,49 @@ Template.taskForm.helpers({
usersId: function() { usersId: function() {
return this._id; return this._id;
}, },
taskDates: function() {
return Session.get("taskDateArr");
},
}); });
Template.taskForm.events({ Template.taskForm.events({
'click #testChips' (event) {
event.preventDefault();
let taskName = M.Chips.getInstance($("#taskName")).chipsData;
console.log(taskName);
console.log(Session.get("taskDateArr"));
},
'change #taskDate' (event) {
let taskDate = $("#taskDate").val();
let taskDateArr = Session.get("taskDateArr");
taskDateArr.push(taskDate);
Session.set("taskDateArr", taskDateArr);
},
'click .saveTaskMgmt' (event) { 'click .saveTaskMgmt' (event) {
event.preventDefault(); event.preventDefault();
let taskName = $("#taskName").val(); let taskNameArr = M.Chips.getInstance($("#taskName")).chipsData;
let taskDateArr = Session.get("taskDateArr");
let taskUser = $("#taskUser").val(); let taskUser = $("#taskUser").val();
let taskDate = $("#taskDate").val();
let taskUserErr = false; let taskUserErr = false;
let taskNameErr = false; let taskNameErr = false;
let taskDateErr = false; let taskDateErr = false;
let userInfo; let userInfo;
let actDate; let actDate = [];
console.log("taskUser value: " + taskUser); // console.log("taskUser value: " + taskUser);
if (taskName == null || taskName == "") { if (taskNameArr == null || taskName == []) {
taskNameErr = true; taskNameErr = true;
} }
if (taskDate == null || taskDate == "") { if (taskDate == null || taskDate == []) {
taskDateErr = true; taskDateErr = true;
} else { } else {
actDate = new Date(taskDate); for (i = 0; i < taskDateArr.length; i++) {
// console.log(taskDateArr[i]);
let actDateTask = new Date(taskDateArr[i]);
actDate.push(actDateTask);
}
} }
if (taskUser == null || taskUser == "") {; if (taskUser == null || taskUser == "") {;
@ -60,12 +81,13 @@ Template.taskForm.events({
} }
if (taskUserErr == false && taskDateErr == false && taskNameErr == false) { if (taskUserErr == false && taskDateErr == false && taskNameErr == false) {
Meteor.call("add.task", taskName, userInfo[0], userInfo[1], taskDate, actDate, function(err, result) { Meteor.call("add.task", taskNameArr, userInfo[0], userInfo[1], taskDateArr, actDate, function(err, result) {
if (err) { if (err) {
console.log(" ERROR adding the new task: " + err); console.log(" ERROR adding the new task: " + err);
} else { } else {
console.log(" SUCCESS adding the new task."); console.log(" SUCCESS adding the new task.");
$("#taskName").val(""); M.Chips.getInstance($("#taskName")).deleteChip();
Session.set("taskDateArr", []);
$("#taskDate").val(""); $("#taskDate").val("");
$("#taskUser").val(""); $("#taskUser").val("");
$('select').formSelect(); $('select').formSelect();

View file

@ -12,12 +12,12 @@ TaskItems.allow({
}); });
Meteor.methods({ Meteor.methods({
'add.task' (taskName, assignedTo, assignedToId, taskDate, actDate) { 'add.task' (taskNameArr, assignedTo, assignedToId, taskDateArr, actDate) {
check(taskName, String); check(taskNameArr, [Object]);
check(assignedTo, String); check(assignedTo, String);
check(taskDate, String); check(taskDateArr, [String]);
check(assignedToId, String); check(assignedToId, String);
check(actDate, Date); check(actDate, [Date]);
if (!this.userId) { if (!this.userId) {
throw new Meteor.Error('You are not allowed to add tasks. Make sure you are logged in with valid user credentials.'); throw new Meteor.Error('You are not allowed to add tasks. Make sure you are logged in with valid user credentials.');
@ -33,17 +33,21 @@ Meteor.methods({
username = assignedTo; username = assignedTo;
} }
return TaskItems.insert({ for (i=0; i < taskDateArr.length; i++) {
taskName: taskName, for (j=0; j < taskNameArr.length; j++) {
taskDate: taskDate, TaskItems.insert({
actualDate: actDate, taskName: taskNameArr[j].tag,
assignedTo: username, taskDate: taskDateArr[i],
assignedToId: assignedToId, actualDate: actDate[i],
isComplete: false, assignedTo: username,
completedOn: null, assignedToId: assignedToId,
assignedOn: new Date(), isComplete: false,
assignedBy: this.userId, completedOn: null,
}); assignedOn: new Date(),
assignedBy: this.userId,
});
}
}
}, },
'edit.task' (taskId, taskName, assignedTo, taskDate) { 'edit.task' (taskId, taskName, assignedTo, taskDate) {
check(taskId, String); check(taskId, String);