mirror of
https://gitlab.com/bmcgonag/get_my.git
synced 2026-03-27 00:08:49 +00:00
Aded Task cleanup by number of weeks or months
This commit is contained in:
parent
e60c32894c
commit
98bcbcd256
6 changed files with 93 additions and 23 deletions
|
|
@ -3,7 +3,7 @@
|
|||
<h3>Clean Up System Data</h3>
|
||||
<div class="row">
|
||||
<div class="col s12 m6 l4">
|
||||
<div class="card">
|
||||
<div class="card grey darken-4 white-text">
|
||||
<div class="card-content">
|
||||
<span class="card-title">Clean Up List Items</span>
|
||||
<a class="btn waves-effect waves-light blue white-text modal-trigger" href="#cleanUpConfirm" id="cleanLists">Clean Lists</a>
|
||||
|
|
@ -13,7 +13,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="col s12 m6 l4">
|
||||
<div class="card">
|
||||
<div class="card grey darken-4 white-text">
|
||||
<div class="card-content">
|
||||
<span class="card-title">Clean Up Menus</span>
|
||||
<a class="btn waves-effect waves-light blue white-text modal-trigger" href="#cleanUpConfirm" id="cleanMenus">Clean Menus</a>
|
||||
|
|
@ -23,7 +23,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="col s12 m6 l4">
|
||||
<div class="card">
|
||||
<div class="card grey darken-4 white-text">
|
||||
<div class="card-content">
|
||||
<span class="card-title">Clean Up Products</span>
|
||||
<a class="btn waves-effect waves-light blue white-text" id="cleanProducts">Clean Products</a>
|
||||
|
|
@ -33,17 +33,31 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="col s12 m6 l4">
|
||||
<div class="card">
|
||||
<div class="card grey darken-4 white-text">
|
||||
<div class="card-content">
|
||||
<span class="card-title">Clean Up Tasks</span>
|
||||
<a class="btn waves-effect waves-light blue white-text" id="cleanTasks">Clean Tasks</a>
|
||||
<form class="row" style="gap: 1em;">
|
||||
<div class="col s12 input-field">
|
||||
<select name="removeOverDueTasks" id="removeOverdueTasks" class="removeOverDueTasks">
|
||||
<option value="1-week">1 Week</option>
|
||||
<option value="2-weeks">2 Weeks</option>
|
||||
<option value="1-month">1 Month</option>
|
||||
<option value="3-months">3 Months</option>
|
||||
<option value="all">All Overdue Tasks</option>
|
||||
</select>
|
||||
<label for="removeOverdueTasks">Remove Overdue Tasks Older Than</label>
|
||||
</div>
|
||||
<div class="col s12">
|
||||
<a class="btn waves-effect waves-light blue white-text modal-trigger" href="#cleanUpConfirm" id="cleanTasks">Clean Tasks</a>
|
||||
<i class="material-icons tooltipped right" data-html="true" data-position="top" data-tooltip-id="tooltip-tasks">info</i>
|
||||
<div id="tooltip-tasks" style="display: none;">This will clean up all tasks where the date has past, or the task is marked completed. For completed tasks to be cleared, today must also be past the due date on the task.</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col s12 m6 l4">
|
||||
<div class="card">
|
||||
<div class="card grey darken-4 white-text">
|
||||
<div class="card-content">
|
||||
<span class="card-title">Clean Up Stores</span>
|
||||
<a class="btn waves-effect waves-light blue white-text" id="cleanStores">Clean Stores</a>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,14 @@ Template.cleanUp.onRendered(function() {
|
|||
|
||||
var elemsm = document.querySelectorAll('.modal');
|
||||
var instancesm = M.Modal.init(elemsm, {});
|
||||
|
||||
var elemse = document.querySelectorAll('select');
|
||||
var instancese = M.FormSelect.init(elemse, {});
|
||||
|
||||
setTimeout(function() {
|
||||
var instances = M.Tooltip.init(elems, {});
|
||||
var instancese = M.FormSelect.init(elemse, {});
|
||||
}, 300);
|
||||
});
|
||||
|
||||
Template.cleanUp.helpers({
|
||||
|
|
@ -45,5 +53,7 @@ Template.cleanUp.events({
|
|||
'click #cleanTasks' (event) {
|
||||
event.preventDefault();
|
||||
Session.set("cleanWhat", "Tasks");
|
||||
let timeFrame = $("#removeOverdueTasks").val();
|
||||
Session.set("overdueVal", timeFrame);
|
||||
},
|
||||
});
|
||||
|
|
@ -25,27 +25,40 @@ Template.cleanUpModalConfirm.events({
|
|||
|
||||
switch(whatItems) {
|
||||
case "Lists":
|
||||
cleanUp("clean.Lists");
|
||||
cleanUp("clean.Lists", whatItems);
|
||||
case "Menus":
|
||||
cleanUp("clean.Menus");
|
||||
cleanUp("clean.Menus", whatItems);
|
||||
case "Products":
|
||||
// cleanUp("clean.Products");
|
||||
// cleanUp("clean.Products", whatItems);
|
||||
case "Stores":
|
||||
// cleanUp("clean.Stores");
|
||||
// cleanUp("clean.Stores", whatItems);
|
||||
case "Tasks":
|
||||
// cleanUp("clean.Tasks");
|
||||
cleanTasks("clean.Tasks", whatItems);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
cleanUp = function(methodName) {
|
||||
cleanUp = function(methodName, whatItems) {
|
||||
Meteor.call(methodName, function(err, result) {
|
||||
if (err) {
|
||||
console.log(" ERROR cleaning lists: " + err)
|
||||
console.log(" ERROR cleaning " + whatItems + ": " + err);
|
||||
} else {
|
||||
showSnackbar("Lists have been cleaned up!", "green");
|
||||
showSnackbar(whatItems + " have been cleaned up!", "green");
|
||||
let confirmModal = document.getElementById('cleanUpConfirm');
|
||||
M.Modal.getInstance(confirmModal).close();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
cleanTasks = function(methodName, whatItems) {
|
||||
let timeFrame = Session.get("overdueVal");
|
||||
Meteor.call(methodName, timeFrame, function(err, result) {
|
||||
if (err) {
|
||||
console.log(" ERROR cleaning " + whatItems + ": " + err);
|
||||
} else {
|
||||
showSnackbar(whatItems + " have been cleaned up!", "green");
|
||||
let confirmModal = document.getElementById('cleanUpConfirm');
|
||||
M.Modal.getInstance(confirmModal).close();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@ Meteor.methods({
|
|||
let srvDate = moment(items[j].serveDateActual);
|
||||
let today = moment();
|
||||
let expired = moment(today).isAfter(srvDate);
|
||||
// console.log("Expired: " + expired);
|
||||
if (expired != true) {
|
||||
removeMenu = false;
|
||||
}
|
||||
|
|
@ -108,16 +107,12 @@ Meteor.methods({
|
|||
|
||||
// next let's add the ids of any menus that are marked complete
|
||||
let markedComplete = Menus.find({ menuComplete: true }).fetch();
|
||||
// console.log("---- ---- ----");
|
||||
// console.dir(markedComplete);
|
||||
for (k = 0; k < markedComplete.length; k++) {
|
||||
let menuId = markedComplete[k]._id;
|
||||
removeMenuIds.push(menuId);
|
||||
}
|
||||
|
||||
// console.log(" ----- Need to remove Menus: ");
|
||||
console.dir(removeMenuIds);
|
||||
|
||||
// finally we'll cycle through the ids and remove the items we collected up.
|
||||
for (l = 0; l < removeMenuIds.length; l++) {
|
||||
Menus.remove({ _id: removeMenuIds[l] });
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
import { Meteor } from 'meteor/meteor';
|
||||
import { Mongo } from 'meteor/mongo';
|
||||
import { check } from 'meteor/check';
|
||||
import moment from 'moment';
|
||||
|
||||
export const TaskItems = new Mongo.Collection('taskitems');
|
||||
|
||||
|
|
@ -139,4 +140,40 @@ Meteor.methods({
|
|||
}
|
||||
});
|
||||
},
|
||||
'clean.Tasks' (timeFrame) {
|
||||
check(timeFrame, String);
|
||||
|
||||
if (!this.userId) {
|
||||
throw new Meteor.Error('You are not allowed to clean up old Tasks. Make sure you are logged in with valid user credentials.');
|
||||
}
|
||||
|
||||
let d = new Date();
|
||||
let upToDate = "";
|
||||
switch(timeFrame) {
|
||||
case "1-week":
|
||||
console.log("1 Week");
|
||||
upToDate = 7 * 24 * 60 * 60 * 1000;
|
||||
break;
|
||||
case "2-weeks":
|
||||
console.log("2 Week");
|
||||
upToDate = 14 * 24 * 60 * 60 * 1000;
|
||||
break;
|
||||
case '1-month':
|
||||
console.log("1 month");
|
||||
upToDate = 30 * 24 * 60 * 60 * 1000;
|
||||
break;
|
||||
case '3-months':
|
||||
console.log("3 months");
|
||||
upToDate = 90 * 24 * 60 * 60 * 1000;
|
||||
break;
|
||||
case 'all':
|
||||
console.log("all");
|
||||
upToDate = 1 * 24 * 60 * 60 * 1000;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return TaskItems.remove({ actualDate: { $lt: new Date((new Date()) - upToDate )}});
|
||||
}
|
||||
});
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
import { Meteor } from 'meteor/meteor';
|
||||
import { Mongo } from 'meteor/mongo';
|
||||
import { check } from 'meteor/check';
|
||||
import { TaskItems } from '../imports/api/tasks';
|
||||
|
||||
Meteor.methods({
|
||||
'addToRole' (role) {
|
||||
|
|
@ -57,5 +58,5 @@ Meteor.methods({
|
|||
check(role, String);
|
||||
|
||||
return Roles.setUserRoles(userId, role);
|
||||
}
|
||||
},
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue