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>
|
<h3>Clean Up System Data</h3>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col s12 m6 l4">
|
<div class="col s12 m6 l4">
|
||||||
<div class="card">
|
<div class="card grey darken-4 white-text">
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<span class="card-title">Clean Up List Items</span>
|
<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>
|
<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>
|
</div>
|
||||||
<div class="col s12 m6 l4">
|
<div class="col s12 m6 l4">
|
||||||
<div class="card">
|
<div class="card grey darken-4 white-text">
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<span class="card-title">Clean Up Menus</span>
|
<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>
|
<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>
|
</div>
|
||||||
<div class="col s12 m6 l4">
|
<div class="col s12 m6 l4">
|
||||||
<div class="card">
|
<div class="card grey darken-4 white-text">
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<span class="card-title">Clean Up Products</span>
|
<span class="card-title">Clean Up Products</span>
|
||||||
<a class="btn waves-effect waves-light blue white-text" id="cleanProducts">Clean Products</a>
|
<a class="btn waves-effect waves-light blue white-text" id="cleanProducts">Clean Products</a>
|
||||||
|
|
@ -33,17 +33,31 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col s12 m6 l4">
|
<div class="col s12 m6 l4">
|
||||||
<div class="card">
|
<div class="card grey darken-4 white-text">
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<span class="card-title">Clean Up Tasks</span>
|
<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>
|
<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 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>
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col s12 m6 l4">
|
<div class="col s12 m6 l4">
|
||||||
<div class="card">
|
<div class="card grey darken-4 white-text">
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<span class="card-title">Clean Up Stores</span>
|
<span class="card-title">Clean Up Stores</span>
|
||||||
<a class="btn waves-effect waves-light blue white-text" id="cleanStores">Clean Stores</a>
|
<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 elemsm = document.querySelectorAll('.modal');
|
||||||
var instancesm = M.Modal.init(elemsm, {});
|
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({
|
Template.cleanUp.helpers({
|
||||||
|
|
@ -45,5 +53,7 @@ Template.cleanUp.events({
|
||||||
'click #cleanTasks' (event) {
|
'click #cleanTasks' (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
Session.set("cleanWhat", "Tasks");
|
Session.set("cleanWhat", "Tasks");
|
||||||
|
let timeFrame = $("#removeOverdueTasks").val();
|
||||||
|
Session.set("overdueVal", timeFrame);
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
@ -25,27 +25,40 @@ Template.cleanUpModalConfirm.events({
|
||||||
|
|
||||||
switch(whatItems) {
|
switch(whatItems) {
|
||||||
case "Lists":
|
case "Lists":
|
||||||
cleanUp("clean.Lists");
|
cleanUp("clean.Lists", whatItems);
|
||||||
case "Menus":
|
case "Menus":
|
||||||
cleanUp("clean.Menus");
|
cleanUp("clean.Menus", whatItems);
|
||||||
case "Products":
|
case "Products":
|
||||||
// cleanUp("clean.Products");
|
// cleanUp("clean.Products", whatItems);
|
||||||
case "Stores":
|
case "Stores":
|
||||||
// cleanUp("clean.Stores");
|
// cleanUp("clean.Stores", whatItems);
|
||||||
case "Tasks":
|
case "Tasks":
|
||||||
// cleanUp("clean.Tasks");
|
cleanTasks("clean.Tasks", whatItems);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
cleanUp = function(methodName) {
|
cleanUp = function(methodName, whatItems) {
|
||||||
Meteor.call(methodName, function(err, result) {
|
Meteor.call(methodName, function(err, result) {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.log(" ERROR cleaning lists: " + err)
|
console.log(" ERROR cleaning " + whatItems + ": " + err);
|
||||||
} else {
|
} 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');
|
let confirmModal = document.getElementById('cleanUpConfirm');
|
||||||
M.Modal.getInstance(confirmModal).close();
|
M.Modal.getInstance(confirmModal).close();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,6 @@ Meteor.methods({
|
||||||
let srvDate = moment(items[j].serveDateActual);
|
let srvDate = moment(items[j].serveDateActual);
|
||||||
let today = moment();
|
let today = moment();
|
||||||
let expired = moment(today).isAfter(srvDate);
|
let expired = moment(today).isAfter(srvDate);
|
||||||
// console.log("Expired: " + expired);
|
|
||||||
if (expired != true) {
|
if (expired != true) {
|
||||||
removeMenu = false;
|
removeMenu = false;
|
||||||
}
|
}
|
||||||
|
|
@ -108,16 +107,12 @@ Meteor.methods({
|
||||||
|
|
||||||
// next let's add the ids of any menus that are marked complete
|
// next let's add the ids of any menus that are marked complete
|
||||||
let markedComplete = Menus.find({ menuComplete: true }).fetch();
|
let markedComplete = Menus.find({ menuComplete: true }).fetch();
|
||||||
// console.log("---- ---- ----");
|
|
||||||
// console.dir(markedComplete);
|
|
||||||
for (k = 0; k < markedComplete.length; k++) {
|
for (k = 0; k < markedComplete.length; k++) {
|
||||||
let menuId = markedComplete[k]._id;
|
let menuId = markedComplete[k]._id;
|
||||||
removeMenuIds.push(menuId);
|
removeMenuIds.push(menuId);
|
||||||
}
|
}
|
||||||
|
|
||||||
// console.log(" ----- Need to remove Menus: ");
|
// finally we'll cycle through the ids and remove the items we collected up.
|
||||||
console.dir(removeMenuIds);
|
|
||||||
|
|
||||||
for (l = 0; l < removeMenuIds.length; l++) {
|
for (l = 0; l < removeMenuIds.length; l++) {
|
||||||
Menus.remove({ _id: removeMenuIds[l] });
|
Menus.remove({ _id: removeMenuIds[l] });
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { Meteor } from 'meteor/meteor';
|
import { Meteor } from 'meteor/meteor';
|
||||||
import { Mongo } from 'meteor/mongo';
|
import { Mongo } from 'meteor/mongo';
|
||||||
import { check } from 'meteor/check';
|
import { check } from 'meteor/check';
|
||||||
|
import moment from 'moment';
|
||||||
|
|
||||||
export const TaskItems = new Mongo.Collection('taskitems');
|
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 { Meteor } from 'meteor/meteor';
|
||||||
import { Mongo } from 'meteor/mongo';
|
import { Mongo } from 'meteor/mongo';
|
||||||
import { check } from 'meteor/check';
|
import { check } from 'meteor/check';
|
||||||
|
import { TaskItems } from '../imports/api/tasks';
|
||||||
|
|
||||||
Meteor.methods({
|
Meteor.methods({
|
||||||
'addToRole' (role) {
|
'addToRole' (role) {
|
||||||
|
|
@ -57,5 +58,5 @@ Meteor.methods({
|
||||||
check(role, String);
|
check(role, String);
|
||||||
|
|
||||||
return Roles.setUserRoles(userId, role);
|
return Roles.setUserRoles(userId, role);
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
Loading…
Add table
Add a link
Reference in a new issue