diff --git a/.meteor/packages b/.meteor/packages index 5346828..c866ba8 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -4,27 +4,29 @@ # 'meteor add' and 'meteor remove' will edit this file for you, # but you can also edit it by hand. -meteor-base@1.5.2 # Packages every Meteor app needs to have -mobile-experience@1.1.2 # Packages for a great mobile UX -mongo@2.1.4 # The database Meteor supports right now +meteor-base@1.5.1 # Packages every Meteor app needs to have +mobile-experience@1.1.1 # Packages for a great mobile UX +mongo@1.16.10 # The database Meteor supports right now blaze-html-templates # Compile .html files into Meteor Blaze views jquery # Wrapper package for npm-installed jquery -reactive-var@1.0.13 # Reactive variable for tracker -tracker@1.3.4 # Meteor's client-side reactive programming library +reactive-var@1.0.12 # Reactive variable for tracker +tracker@1.3.3 # Meteor's client-side reactive programming library -standard-minifier-css@1.9.3 # CSS minifier run for production mode -standard-minifier-js@3.1.1 # JS minifier run for production mode -es5-shim@4.8.1 # ECMAScript 5 compatibility for older browsers -ecmascript@0.16.13 # Enable ECMAScript2015+ syntax in app code -typescript@5.6.6 # Enable TypeScript syntax in .ts and .tsx modules -shell-server@0.6.2 # Server-side component of the `meteor shell` command +standard-minifier-css@1.9.2 # CSS minifier run for production mode +standard-minifier-js@2.8.1 # JS minifier run for production mode +es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers +ecmascript@0.16.8 # Enable ECMAScript2015+ syntax in app code +typescript@4.9.5 # Enable TypeScript syntax in .ts and .tsx modules +shell-server@0.5.0 # Server-side component of the `meteor shell` command -hot-module-replacement@0.5.4 # Update code in development without reloading the page +hot-module-replacement@0.5.3 # Update code in development without reloading the page blaze-hot # Update files using Blaze's API with HMR -roles@1.0.1 -session@1.2.2 -email@3.1.2 -arianjahiri:meteor-handlebars-helpers -ostrio:flow-router-extra -accounts-password@3.2.1 +alanning:roles@2.2.0 +email@2.2.6 +session@1.2.1 + +raix:handlebar-helpers +kadira:flow-router +kadira:blaze-layout +accounts-password@2.4.0 diff --git a/.meteor/release b/.meteor/release index 4876d6f..5152abe 100644 --- a/.meteor/release +++ b/.meteor/release @@ -1 +1 @@ -METEOR@3.3.2 +METEOR@2.16 diff --git a/.meteor/versions b/.meteor/versions index 9d06cad..6007c47 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -1,94 +1,94 @@ -accounts-base@3.1.2 -accounts-password@3.2.1 -allow-deny@2.1.0 -arianjahiri:meteor-handlebars-helpers@0.0.1 -autoupdate@2.0.1 -babel-compiler@7.12.2 -babel-runtime@1.5.2 -base64@1.0.13 -binary-heap@1.0.12 -blaze@3.0.2 -blaze-hot@2.0.0 -blaze-html-templates@3.0.0 -blaze-tools@2.0.0 -boilerplate-generator@2.0.2 -caching-compiler@2.0.1 -caching-html-compiler@2.0.0 -callback-hook@1.6.1 -check@1.4.4 -core-runtime@1.0.0 -ddp@1.4.2 -ddp-client@3.1.1 -ddp-common@1.4.4 -ddp-rate-limiter@1.2.2 -ddp-server@3.1.2 -deps@1.0.5-pre.1 -diff-sequence@1.1.3 -dynamic-import@0.7.4 -ecmascript@0.16.13 -ecmascript-runtime@0.8.3 -ecmascript-runtime-client@0.12.3 -ecmascript-runtime-server@0.11.1 -ejson@1.1.5 -email@3.1.2 -es5-shim@4.8.1 -facts-base@1.0.2 -fetch@0.1.6 -geojson-utils@1.0.12 -hot-code-push@1.0.5 -hot-module-replacement@0.5.4 -html-tools@2.0.0 -htmljs@2.0.1 -id-map@1.2.0 -inter-process-messaging@0.1.2 -jquery@3.0.2 -launch-screen@2.0.1 -localstorage@1.2.1 -logging@1.3.6 -meteor@2.1.1 -meteor-base@1.5.2 -minifier-css@2.0.1 -minifier-js@3.0.4 -minimongo@2.0.4 -mobile-experience@1.1.2 -mobile-status-bar@1.1.1 -modern-browsers@0.2.3 -modules@0.20.3 -modules-runtime@0.13.2 -modules-runtime-hot@0.14.3 -mongo@2.1.4 -mongo-decimal@0.2.0 -mongo-dev-server@1.1.1 -mongo-id@1.0.9 -npm-mongo@6.16.1 -observe-sequence@2.0.0 -ordered-dict@1.2.0 -ostrio:flow-router-extra@3.12.0 -promise@1.0.0 -random@1.2.2 -rate-limit@1.1.2 -react-fast-refresh@0.2.9 -reactive-dict@1.3.2 -reactive-var@1.0.13 -reload@1.3.2 -retry@1.1.1 -roles@1.0.1 -routepolicy@1.1.2 -session@1.2.2 -sha@1.0.10 -shell-server@0.6.2 -socket-stream-client@0.6.1 -spacebars@2.0.0 -spacebars-compiler@2.0.0 -standard-minifier-css@1.9.3 -standard-minifier-js@3.1.1 -templating@1.4.4 -templating-compiler@2.0.0 -templating-runtime@2.0.1 -templating-tools@2.0.0 -tracker@1.3.4 -typescript@5.6.6 -underscore@1.6.4 -url@1.3.5 -webapp@2.0.7 -webapp-hashing@1.1.2 +accounts-base@2.2.11 +accounts-password@2.4.0 +alanning:roles@2.2.0 +allow-deny@1.1.1 +autoupdate@1.8.0 +babel-compiler@7.10.5 +babel-runtime@1.5.1 +base64@1.0.12 +binary-heap@1.0.11 +blaze@2.9.0 +blaze-hot@1.1.2 +blaze-html-templates@1.2.1 +blaze-tools@1.1.4 +boilerplate-generator@1.7.2 +caching-compiler@1.2.2 +caching-html-compiler@1.2.2 +callback-hook@1.5.1 +check@1.4.1 +ddp@1.4.1 +ddp-client@2.6.2 +ddp-common@1.4.1 +ddp-rate-limiter@1.2.1 +ddp-server@2.7.1 +deps@1.0.12 +diff-sequence@1.1.2 +dynamic-import@0.7.3 +ecmascript@0.16.8 +ecmascript-runtime@0.8.1 +ecmascript-runtime-client@0.12.1 +ecmascript-runtime-server@0.11.0 +ejson@1.1.3 +email@2.2.6 +es5-shim@4.8.0 +fetch@0.1.4 +geojson-utils@1.0.11 +hot-code-push@1.0.4 +hot-module-replacement@0.5.3 +html-tools@1.1.4 +htmljs@1.2.1 +id-map@1.1.1 +inter-process-messaging@0.1.1 +jquery@3.0.0 +kadira:blaze-layout@2.0.1 +kadira:flow-router@2.12.1 +launch-screen@2.0.0 +localstorage@1.2.0 +logging@1.3.4 +meteor@1.11.5 +meteor-base@1.5.1 +minifier-css@1.6.4 +minifier-js@2.8.0 +minimongo@1.9.4 +mobile-experience@1.1.1 +mobile-status-bar@1.1.0 +modern-browsers@0.1.10 +modules@0.20.0 +modules-runtime@0.13.1 +modules-runtime-hot@0.14.2 +mongo@1.16.10 +mongo-decimal@0.1.3 +mongo-dev-server@1.1.0 +mongo-id@1.0.8 +npm-mongo@4.17.2 +observe-sequence@1.0.22 +ordered-dict@1.1.0 +promise@0.12.2 +raix:handlebar-helpers@0.2.5 +random@1.2.1 +rate-limit@1.1.1 +react-fast-refresh@0.2.8 +reactive-dict@1.3.1 +reactive-var@1.0.12 +reload@1.3.1 +retry@1.1.0 +routepolicy@1.1.1 +session@1.2.1 +sha@1.0.9 +shell-server@0.5.0 +socket-stream-client@0.5.2 +spacebars@1.6.0 +spacebars-compiler@1.3.2 +standard-minifier-css@1.9.2 +standard-minifier-js@2.8.1 +templating@1.4.3 +templating-compiler@1.4.2 +templating-runtime@1.6.4 +templating-tools@1.2.3 +tracker@1.3.3 +typescript@4.9.5 +ui@1.0.13 +underscore@1.6.2 +url@1.3.2 +webapp@1.13.8 +webapp-hashing@1.1.1 diff --git a/Dockerfile b/Dockerfile index 5064534..6cf4fd2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,8 @@ -FROM node:22.16.0-alpine +FROM alpine:3.17 + +ENV NODE_VERSION=14.21.4 +ENV NODE_URL="https://static.meteor.com/dev-bundle-node-os/unofficial-builds/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz" +ENV DIR_NODE=/usr/local RUN apk add --no-cache \ libstdc++ \ @@ -16,6 +20,13 @@ RUN apk add --no-cache \ ccache \ xz +RUN echo $NODE_URL +RUN curl -sSL "$NODE_URL" | tar -xz -C /usr/local/ && mv $DIR_NODE/node-v${NODE_VERSION}-linux-x64 $DIR_NODE/v$NODE_VERSION + +# add node and npm to path so the commands are available +ENV NODE_PATH $DIR_NODE/v$NODE_VERSION/lib/node_modules +ENV PATH $DIR_NODE/v$NODE_VERSION/bin:$PATH + # confirm installation RUN node -v RUN npm -v @@ -27,11 +38,11 @@ ENV MONGO_URL=mongodb://mongo:27017/get_my\ RUN mkdir -p /usr/src/get_my WORKDIR /usr/src/get_my -COPY ../bundle/ /usr/src/get_my/ +COPY bundle/ /usr/src/get_my/ RUN cd /usr/src/get_my/programs/server/ \ && npm install EXPOSE 3000 -CMD [ "node", "main.js" ] \ No newline at end of file +CMD [ "node", "main.js" ] diff --git a/README.md b/README.md index 8590db0..6b3d1b8 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,6 @@ The documentation is being done in the amazing open source software [Bookstack]( If you'd like to contribute by writing some documentation, please contact me me with an, and I'll see about getting you access to contribute. -I have a video introduction on my YouTube channel here as well: https://youtu.be/hbGNTzU24hI?si=K5mcb8FuzSWNCueB - ## Keeping it Simple - Registration / Login System built in - 1st user to register is the system admin by default. diff --git a/client/Accounts/Login/login.js b/client/Accounts/Login/login.js index f436e4b..7f3c38a 100644 --- a/client/Accounts/Login/login.js +++ b/client/Accounts/Login/login.js @@ -1,5 +1,4 @@ import { SysConfig } from '../../../imports/api/systemConfig.js'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Template.login.onCreated(function() { this.subscribe("SystemConfig"); @@ -26,7 +25,7 @@ Template.login.helpers({ Template.login.events({ 'click #logmein' (event) { event.preventDefault(); - // console.log("clicked login"); + console.log("clicked login"); let email = $("#email").val(); let pass = $("#password").val(); diff --git a/client/Accounts/Login/reg.js b/client/Accounts/Login/reg.js index 2a46225..c2ddbe2 100644 --- a/client/Accounts/Login/reg.js +++ b/client/Accounts/Login/reg.js @@ -1,5 +1,4 @@ import { SysConfig } from "../../../imports/api/systemConfig.js"; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Template.reg.onCreated(function() { this.subscribe("SystemConfig"); @@ -30,16 +29,12 @@ Template.reg.helpers({ return Session.get("missingReq"); }, allowReg: function() { - const sysConf = async() => { - let conf = await SysConfig.findOneAsync(); - if (!conf) { - return true; - } else { - return conf.allowReg; - } + let conf = SysConfig.findOne(); + if (typeof conf != 'undefined') { + return conf.allowReg; + } else { + return true } - let sysConfig = sysConf(); - return sysConfig; } }); @@ -88,17 +83,15 @@ Template.reg.events({ }); let userId = Meteor.userId(); - // console.log("User ID: " + userId); - const addRole = async() => { - let result = await Meteor.callAsync("addToRole", "user"); - if (!result) { - console.log(" ERROR: ROLES - Error adding user to role: "); + console.log("User ID: " + userId); + Meteor.call("addToRole", "user", function(err, result) { + if (err) { + console.log(" ERROR: ROLES - Error adding user to role: " + err); } else { // console.log("User should be added to role - teacher."); FlowRouter.go('/dashboard'); } - } - addRole(); + }); } } }, diff --git a/client/Accounts/UserMgmt/userInfoModal.html b/client/Accounts/UserMgmt/userInfoModal.html index 156a66a..e25fda3 100644 --- a/client/Accounts/UserMgmt/userInfoModal.html +++ b/client/Accounts/UserMgmt/userInfoModal.html @@ -15,7 +15,7 @@ {{#if $eq passMatch false}}

Passwords do not match!

{{/if}} -
+
-
+

-
-

- -

-
diff --git a/client/AdminMgmt/ListMgmt/listMgmtForm.js b/client/AdminMgmt/ListMgmt/listMgmtForm.js index 75a01c3..ece9583 100644 --- a/client/AdminMgmt/ListMgmt/listMgmtForm.js +++ b/client/AdminMgmt/ListMgmt/listMgmtForm.js @@ -7,7 +7,6 @@ Template.listMgmtForm.onCreated(function() { Template.listMgmtForm.onRendered(function() { Session.set("listNameMiss", false); Session.set("listNameEditMode", false); - Session.set("showCompletedLists", false); }); Template.listMgmtForm.helpers({ @@ -29,7 +28,15 @@ Template.listMgmtForm.events({ Session.set("listNameMiss", true); return; } else { - addList(listName, shared); + Meteor.call('add.list', listName, shared, function(err, result) { + if (err) { + // console.log(" ERROR adding list name: " + err); + } else { + // console.log(" SUCCESS adding list name."); + $("#listNameInp").val(""); + $("#isShared").prop("checked", false); + } + }); } }, 'click .renameListMgmt' (event) { @@ -42,7 +49,16 @@ Template.listMgmtForm.events({ Session.set("listNameMiss", true); return; } else { - editList(listId, listName, shared); + Meteor.call('edit.list', listId, listName, shared, function(err, result) { + if (err) { + // console.log(" ERROR editing list name: " + err); + } else { + // console.log(" SUCCESS editing list name."); + $("#listNameInp").val(""); + $("#isShared").prop("checked", false); + Session.set("listNameEditMode", false); + } + }); } }, 'submit .listAdd' (event) { @@ -57,34 +73,27 @@ Template.listMgmtForm.events({ return; } else { if (editMode == false) { - addList(listName, shared); + Meteor.call('add.list', listName, shared, function(err, result) { + if (err) { + // console.log(" ERROR adding list name: " + err); + } else { + // console.log(" SUCCESS adding list name."); + $("#listNameInp").val(""); + $("#isShared").prop("checked", false); + } + }); } else { - editList(listId, listName, shared); + Meteor.call('edit.list', listId, listName, shared, function(err, result) { + if (err) { + // console.log(" ERROR editing list name: " + err); + } else { + // console.log(" SUCCESS editing list name."); + $("#listNameInp").val(""); + $("#isShared").prop("checked", false); + Session.set("listNameEditMode", false); + } + }); } } - }, - 'change #isCompleted' (event) { - Session.set("showCompletedLists", true); - }, -}); - -const addList = async(listName, shared) => { - let result = await Meteor.callAsync('add.list', listName, shared); - if (!result) { - console.log("Nothing returned from method call add.list"); - } else { - $("#listNameInp").val(""); - $("#isShared").prop("checked", false); } -} - -const editList = async(listId, listName, shared) => { - let result = await Meteor.callAsync('edit.list', listId, listName, shared); - if (!result) { - // console.log("Nothing returned from method call edit.list"); - } else { - $("#listNameInp").val(""); - $("#isShared").prop("checked", false); - Session.set("listNameEditMode", false); - } -} \ No newline at end of file +}); \ No newline at end of file diff --git a/client/AdminMgmt/ListMgmt/listMgmtTbl.html b/client/AdminMgmt/ListMgmt/listMgmtTbl.html index a3d9577..7011beb 100644 --- a/client/AdminMgmt/ListMgmt/listMgmtTbl.html +++ b/client/AdminMgmt/ListMgmt/listMgmtTbl.html @@ -8,7 +8,6 @@ delete edit check - refresh {{/each}} @@ -22,9 +21,6 @@ -
{{> deleteConfirmationModal}} \ No newline at end of file diff --git a/client/AdminMgmt/ListMgmt/listMgmtTbl.js b/client/AdminMgmt/ListMgmt/listMgmtTbl.js index 256f7d5..d737894 100644 --- a/client/AdminMgmt/ListMgmt/listMgmtTbl.js +++ b/client/AdminMgmt/ListMgmt/listMgmtTbl.js @@ -2,7 +2,7 @@ import { Lists } from '../../../imports/api/lists.js'; import { M } from '../../lib/assets/materialize.js'; Template.listMgmtTbl.onCreated(function() { - this.subscribe("allLists"); + this.subscribe("myLists"); }); Template.listMgmtTbl.onRendered(function() { @@ -14,13 +14,7 @@ Template.listMgmtTbl.onRendered(function() { Template.listMgmtTbl.helpers({ lists: function() { - let showComplete = Session.get("showCompletedLists"); - // console.log("Show Complete Lists: " + showComplete); - if (showComplete) { - return Lists.find({}); - } else { - return Lists.find({ listComplete: false }); - } + return Lists.find({}); } }); @@ -35,14 +29,9 @@ Template.listMgmtTbl.events({ }, 'click .editListName' (event) { event.preventDefault(); - const lInfo = async() => { - let listInfo = await Lists.findOneAsync({ _id: this._id }); - return listInfo; - } - let listData = lInfo(); - - let listName = listData.listName; - let listShared = listData.listShared; + let listInfo = Lists.findOne({ _id: this._id }); + let listName = listInfo.listName; + let listShared = listInfo.listShared; $("#listNameInp").val(listName); if (listShared == true) { $("#isShared").prop("checked", true); @@ -55,27 +44,12 @@ Template.listMgmtTbl.events({ 'click .markListComplete' (event) { event.preventDefault(); let listId = this._id; - const markComp = async() => { - let result = await Meteor.callAsync('mark.complete', listId); - if (!result) { - console.log(" ERROR marking complete."); + Meteor.call('mark.complete', listId, function(err, result) { + if (err) { + // console.log(" ERROR marking complete: " + err); } else { // console.log(" SUCCESS marking complete."); } - } - markComp(); - }, - 'click .markListNotComplete' (event) { - event.preventDefault(); - let listId = this._id; - const markInc = async() => { - let result = await Meteor.callAsync('mark.incomplete', listId); - if (!result) { - console.log("Issue marking list incomplete."); - } else { - // console.log("List marked incomplete."); - } - } - markInc(); + }); } }); \ No newline at end of file diff --git a/client/AdminMgmt/MgmtPage/mgmtPage.js b/client/AdminMgmt/MgmtPage/mgmtPage.js index 6b16295..39c831a 100644 --- a/client/AdminMgmt/MgmtPage/mgmtPage.js +++ b/client/AdminMgmt/MgmtPage/mgmtPage.js @@ -1,5 +1,3 @@ -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; - Template.mgmtPage.onCreated(function() { }); diff --git a/client/AdminMgmt/ProductMgmt/prodMgmtForm.html b/client/AdminMgmt/ProductMgmt/prodMgmtForm.html index 7ebd800..357b19c 100644 --- a/client/AdminMgmt/ProductMgmt/prodMgmtForm.html +++ b/client/AdminMgmt/ProductMgmt/prodMgmtForm.html @@ -2,22 +2,14 @@

Product Management

{{#if Template.subscriptionsReady}}
-
-

- -

-
-
-

- -

-
+
+

+ +

+
diff --git a/client/AdminMgmt/ProductMgmt/prodMgmtForm.js b/client/AdminMgmt/ProductMgmt/prodMgmtForm.js index f0c2a2d..d133fd8 100644 --- a/client/AdminMgmt/ProductMgmt/prodMgmtForm.js +++ b/client/AdminMgmt/ProductMgmt/prodMgmtForm.js @@ -35,65 +35,46 @@ Template.prodMgmtForm.events({ 'click .saveProdMgmt, click .editProdMgmt' (event) { let name = $("#prodName").val(); let store = $("#prodStore").val(); + let prodId = Session.get("prodEditId"); let prodEditMode = Session.get("prodEditMode"); + if (store == null) { store = ""; } + if (name == "" || name == null) { Session.set("prodNameRed", true); return; } else { if (prodEditMode == true) { - editProd(prodId, name, store); + Meteor.call('edit.product', prodId, name, store, function(err, result) { + if (err) { + console.log(" ERROR: can't add product: " + err); + } else { + $("#prodName").val(""); + showSnackbar("Successfully Edited Product!", "green"); + } + }); } else { - newProd(name, store); + Meteor.call('add.product', name, store, function(err, result) { + if (err) { + console.log(" ERROR: can't add product: " + err); + } else { + $("#prodName").val(""); + showSnackbar("Product Added Succssfully!", "green"); + } + }); } } }, 'click #showNoStoreSet' (event) { let noStoreSet = $("#showNoStoreSet").prop('checked'); - // console.log("Clicked: " + noStoreSet); + console.log("Clicked: " + noStoreSet); if (noStoreSet == true) { Session.set("noStoreSet", true); } else { Session.set("noStoreSet", false); } - }, - 'click #showNoList' (event) { - let notUsedInList = $("#showNoList").prop('checked'); - if (notUsedInList == true) { - Session.set("noListUsed", true); - } else { - Session.set("noListUsed", false); - } - }, - 'submit .prodInputForm' (event) { - - }, + } }); - -const newProd = async(name, store) => { - let result = await Meteor.callAsync('add.product', name, store); - try { - if (!result) { - // console.log("No result when trying to add a new product."); - showSnackbar("Unable to add new product."); - } else { - $("#prodName").val(""); - showSnackbar("New Product Added!", "green"); - } - } catch(error) { - console.log(" ERROR - couldn't add product: " + error); - } -} - -const editProd = async(prodId, name, store) => { - let result = await Meteor.callAsync('edit.product', prodId, name, store); - if (!result) { - console.log(" ERROR: can't add product: " + err); - } else { - $("#prodName").val(""); - showSnackbar("Successfully Edited Product!", "green"); - } -} \ No newline at end of file diff --git a/client/AdminMgmt/ProductMgmt/prodMgmtTbl.js b/client/AdminMgmt/ProductMgmt/prodMgmtTbl.js index 67b3e12..8f4b4cc 100644 --- a/client/AdminMgmt/ProductMgmt/prodMgmtTbl.js +++ b/client/AdminMgmt/ProductMgmt/prodMgmtTbl.js @@ -1,17 +1,14 @@ import { Products } from '../../../imports/api/products.js'; -import { ListItems } from '../../../imports/api/listItems.js'; import { M } from '../../lib/assets/materialize.js'; Template.prodMgmtTbl.onCreated(function() { this.subscribe("myProducts"); - this.subscribe("allListItems"); }); Template.prodMgmtTbl.onRendered(function() { Session.set("searchProds", false); Session.set("searchStore", false); Session.set("noStoreSet", false); - Session.set("noListUsed", false); }); Template.prodMgmtTbl.helpers({ @@ -19,37 +16,25 @@ Template.prodMgmtTbl.helpers({ let searchProd = Session.get("searchProds"); let searchStore = Session.get("searchStore"); let noStoreSet = Session.get("noStoreSet"); - let noListUsed = Session.get("noListUsed"); if (searchProd == true) { let searchVal = Session.get("searchVal"); if (typeof searchVal == 'undefined' || searchVal.length == 0) { return Products.find({}); } else { - return Products.find({ prodName: { $regex: searchVal + '.*', $options: 'i' } }, { sort: { prodName: 1 }}); + return Products.find({ prodName: { $regex: searchVal + '.*', $options: 'i' } }); } } else if (searchStore == true) { let searchVal = Session.get("searchStoreVal"); if (typeof searchVal == 'undefined' || searchVal.length == 0) { return Products.find({}); } else { - return Products.find({ prodStore: { $regex: searchVal + '.*', $options: 'i' } }, { sort: { prodName: 1 }}); + return Products.find({ prodStore: { $regex: searchVal + '.*', $options: 'i' } }); } } else if (noStoreSet == true) { - return Products.find({ prodStore: '' }, { sort: { prodName: 1 }}); - } else if (noListUsed == true) { - let i; - let idList = []; - let idsInLists = ListItems.find({}).fetch(); - for (i=0; i < idsInLists.length; i++) { - idList.push(idsInLists[i].prodId); - } - if (i > idsInLists.length - 1) { - let noProdsNot = Products.find({ _id: { $nin: idList }}).count(); - return Products.find({ _id: { $nin: idList }}, { sort: { prodName: 1 }}); - } + return Products.find({ prodStore: '' }); } else { - return Products.find({}, { sort: { prodName: 1 }}); + return Products.find({}); } }, searchProd: function() { @@ -72,17 +57,10 @@ Template.prodMgmtTbl.events({ event.preventDefault(); Session.set("prodEditMode", true); Session.set("prodEditId", this._id); - const getProds = async() => { - let prodInfo = await Products.findOneAsync({ _id: this._id }); - if (!prodInfo) { - // console.log("No Product Returned."); - } else { - $("#prodName").val(prodInfo.prodName); - $("#prodStore").val(prodInfo.prodStore); - } - } - getProds(); - + let prodInfo = Products.findOne({ _id: this._id }); + $("#prodName").val(prodInfo.prodName); + $("#prodStore").val(prodInfo.prodStore); + // $('select').formSelect(); }, 'click #filterProds' (event) { event.preventDefault(); diff --git a/client/AdminMgmt/StoreMgmt/storeMgmtForm.js b/client/AdminMgmt/StoreMgmt/storeMgmtForm.js index 07da897..642c921 100644 --- a/client/AdminMgmt/StoreMgmt/storeMgmtForm.js +++ b/client/AdminMgmt/StoreMgmt/storeMgmtForm.js @@ -23,7 +23,14 @@ Template.storeMgmtForm.events({ Session.set("borderRed", true); return; } else { - addStore(storeName); + Meteor.call("add.store", storeName, function(err, result) { + if (err) { + console.log("ERROR: Store add failed: " + err); + } else { + $("#storeName").val(""); + showSnackbar("Store Added Successfully!", "green"); + } + }); } }, 'click .cancelStoreMgmt' (event) { @@ -31,51 +38,51 @@ Template.storeMgmtForm.events({ $("#storeName").val(""); Session.set("editModeStore", false); }, - 'submit #storeForm' (event) { - event.preventDefault(); - let editMode = Session.get("editModeStore"); - let storeName = $("#storeName").val(); - if (storeName == "" || storeName == null) { - Session.set("borderRed", true); - return; - } else { - if (editMode == false) { - addStore(storeName); - } else { - let storeId = Session.get("storeIdEdit"); - editStore(storeId, storeName); - } - } - }, + // 'submit #storeForm' (event) { + // event.preventDefault(); + // let editMode = Session.get("editModeStore"); + // let storeName = $("#storeName").val(); + // if (storeName == "" || storeName == null) { + // Session.set("borderRed", true); + // return; + // } else { + // if (editMode == false) { + // Meteor.call("add.store", storeName, function(err, result) { + // if (err) { + // console.log("ERROR: Store add failed: " + err); + // } else { + // $("#storeName").val(""); + // } + // }); + // } else { + // let storeId = Session.get("storeIdEdit"); + // Meteor.call("edit.store", storeId, storeName, function(err, result) { + // if (err) { + // console.log("ERROR: Store add failed: " + err); + // } else { + // $("#storeName").val(""); + // Session.set("editModeStore", false); + // } + // }); + // } + // } + // }, 'click .editStoreMgmt' (event) { let storeName = $("#storeName").val(); let storeId = Session.get("storeIdEdit"); if (storeName == "" || storeName == null) { Session.set("borderRed", true); return; - } else { - editStore(storeId, storeName); + } else { + Meteor.call("edit.store", storeId, storeName, function(err, result) { + if (err) { + console.log("ERROR: Store add failed: " + err); + } else { + $("#storeName").val(""); + Session.set("editModeStore", false); + showSnackbar("Store Updated Successfully!", "green"); + } + }); } } -}); - -const addStore = async(storeName) => { - let result = await Meteor.callAsync("add.store", storeName); - if (!result) { - // console.log("ERROR: Store add failed."); - } else { - $("#storeName").val(""); - showSnackbar("Store Added Successfully!", "green"); - } -} - -const editStore = async(storeId, storeName) => { - let result = await Meteor.callAsync("edit.store", storeId, storeName); - if (!result) { - // console.log("ERROR: Store add failed: " + err); - } else { - $("#storeName").val(""); - Session.set("editModeStore", false); - showSnackbar("Store Updated Successfully!", "green"); - } -} \ No newline at end of file +}); \ No newline at end of file diff --git a/client/AdminMgmt/SystemAdmin/systemAdmin.html b/client/AdminMgmt/SystemAdmin/systemAdmin.html index 2a31b13..9fa8709 100644 --- a/client/AdminMgmt/SystemAdmin/systemAdmin.html +++ b/client/AdminMgmt/SystemAdmin/systemAdmin.html @@ -1,7 +1,7 @@ + \ No newline at end of file diff --git a/client/AdminMgmt/SystemAdmin/systemAdmin.js b/client/AdminMgmt/SystemAdmin/systemAdmin.js index 2e52c4e..95f6e1d 100644 --- a/client/AdminMgmt/SystemAdmin/systemAdmin.js +++ b/client/AdminMgmt/SystemAdmin/systemAdmin.js @@ -1,9 +1,7 @@ import { SysConfig } from '../../../imports/api/systemConfig.js'; -import { M } from '../../lib/assets/materialize.js'; Template.systemAdmin.onCreated(function() { this.subscribe("SystemConfig"); - this.subscribe("rolesAvailable"); }); Template.systemAdmin.onRendered(function() { @@ -12,49 +10,31 @@ Template.systemAdmin.onRendered(function() { if (typeof curr != 'undefined') { $("#allowGenReg").prop('checked', curr.allowReg); $("#allAdmReg").prop('checked', curr.SysAdminReg); - $("#recvUpdateMsgs").prop('checked', curr.allowUpdates); } else { - // console.log(" ---- unable to find current system configuration."); + console.log(" ---- unable to find current system configuration."); } }); - - var elems = document.querySelectorAll('select'); - - setTimeout(function() { - var instances = M.FormSelect.init(elems, {}); - }, 300); - }); Template.systemAdmin.helpers({ - + currConfigs: function() { + + } }); Template.systemAdmin.events({ 'change #allowGenReg, change #allowAdmReg' (evnnt) { let genReg = $("#allowGenReg").prop('checked'); let admReg = $("#allowAdmReg").prop('checked'); - const addNoSysReg = async() => { - let result = await Meteor.callAsync("add.noSysAdminReg", admReg, genReg); - if (!result) { + // console.log("General Reg set to: " + genReg); + Meteor.call("add.noSysAdminReg", admReg, genReg, function(err, result) { + if (err) { + console.log(" ERROR updating permission to allow general registration: " + err); showSnackbar("Registration Permission Change Failed.", "red"); } else { + console.log(" Successfully updated permission to allow general registration."); showSnackbar("Registration Permission Successfully Changed.", "green") } - } - addNoSysReg(); - }, - 'change #recvUpdateMsgs' (event) { - let updSet = $("#recvUpdateMsgs").prop('checked'); - const allowUpdateInfo = async() => { - let result = await Meteor.callAsync('allow.updateInfo', updSet); - if (!result) { - // console.log(" ERROR changing update setting."); - showSnackbar("Update Setting Change Failed.", "red"); - } else { - showSnackbar("Update Setting Changed Successfully!", "green"); - } - } - allowUpdateInfo(); - }, -}); + }); + } +}); \ No newline at end of file diff --git a/client/AdminMgmt/Tasks/taskForm.html b/client/AdminMgmt/Tasks/taskForm.html index dc520fb..596451c 100644 --- a/client/AdminMgmt/Tasks/taskForm.html +++ b/client/AdminMgmt/Tasks/taskForm.html @@ -3,7 +3,7 @@
-
+
-
+
diff --git a/client/AdminMgmt/Tasks/taskForm.js b/client/AdminMgmt/Tasks/taskForm.js index 2c5f42a..8dd95d3 100644 --- a/client/AdminMgmt/Tasks/taskForm.js +++ b/client/AdminMgmt/Tasks/taskForm.js @@ -50,7 +50,7 @@ Template.taskForm.events({ event.preventDefault(); let elemcc = document.getElementById('taskName'); let taskName = M.Chips.getInstance(elemcc).chipsData; - // console.log(taskName); + console.log(taskName); }, 'change #taskDate' (event) { let taskDate = $("#taskDate").val(); @@ -69,6 +69,7 @@ Template.taskForm.events({ let taskDateErr = false; let userInfo; let actDate = []; + // console.dir(taskNameArr); if (taskNameArr == null || taskNameArr == []) { taskNameErr = true; @@ -91,19 +92,17 @@ Template.taskForm.events({ } if (taskUserErr == false && taskDateErr == false && taskNameErr == false) { - const addTask = async() => { - let result = await Meteor.callAsync("add.task", taskNameArr, userInfo[0], userInfo[1], taskDateArr, actDate); - if (!result) { - // console.log(" ERROR adding the new task."); + Meteor.call("add.task", taskNameArr, userInfo[0], userInfo[1], taskDateArr, actDate, function(err, result) { + if (err) { + console.log(" ERROR adding the new task: " + err); } else { - // console.log(" SUCCESS adding the new task."); + console.log(" SUCCESS adding the new task."); Session.set("taskDateArr", []); $("#taskDate").val(""); $("#taskUser").val(""); $('select').formSelect(); } - } - addTask(); + }); } else { showSnackbar("ERROR: Missing Required Fields!", "red"); } @@ -114,6 +113,7 @@ Template.taskForm.events({ Session.set("hideCompletedTasks", true); } else { Session.set("hideCompletedTasks", false); - } + } + } }); \ No newline at end of file diff --git a/client/AdminMgmt/Tasks/taskTbl.js b/client/AdminMgmt/Tasks/taskTbl.js index dfb41eb..f5a8973 100644 --- a/client/AdminMgmt/Tasks/taskTbl.js +++ b/client/AdminMgmt/Tasks/taskTbl.js @@ -43,15 +43,13 @@ Template.taskTbl.events({ 'click .markTaskComplete' (event) { event.preventDefault(); let taskId = this._id; - const markComp = async() => { - let result = await Meteor.callAsync("markTask.complete", taskId); - if (!result) { - // console.log(" ERROR marking task completeL " + err); + Meteor.call("markTask.complete", taskId, function(err, result) { + if (err) { + console.log(" ERROR marking task completeL " + err); showSnackbar("ERROR Marking Task Complete!", "red"); } else { showSnackbar("Successfully Marked Task Complete!", "green"); } - } - markComp(); + }); }, }); \ No newline at end of file diff --git a/client/Dashboard/dashboard.html b/client/Dashboard/dashboard.html index 3ab5ff3..017ac4f 100644 --- a/client/Dashboard/dashboard.html +++ b/client/Dashboard/dashboard.html @@ -1,45 +1,6 @@ \ No newline at end of file diff --git a/client/ListItems/listItemsMain.js b/client/ListItems/listItemsMain.js index a81812f..fe9e509 100644 --- a/client/ListItems/listItemsMain.js +++ b/client/ListItems/listItemsMain.js @@ -1,12 +1,9 @@ -import { M } from '../lib/assets/materialize.js'; - Template.listItemsMain.onCreated(function() { }); Template.listItemsMain.onRendered(function() { - var elems = document.querySelectorAll('.tabs'); - var instance = M.Tabs.init(elems, {}); + }); Template.listItemsMain.helpers({ @@ -15,4 +12,4 @@ Template.listItemsMain.helpers({ Template.listItemsMain.events({ -}); +}); \ No newline at end of file diff --git a/client/ListItems/listItemsTbl.js b/client/ListItems/listItemsTbl.js index 4d04e18..314ae0f 100644 --- a/client/ListItems/listItemsTbl.js +++ b/client/ListItems/listItemsTbl.js @@ -20,15 +20,15 @@ Template.listItemsTbl.onRendered(function() { Template.listItemsTbl.helpers({ 'thisListItems': function() { let showRecvd = Session.get("showReceivedItems"); - let searchVal = Session.get("searchVal"); + let searchVal = Session.get("searchVal");; if (showRecvd == false) { - if (!searchVal) { + if (typeof searchVal == 'undefined' || searchVal.length === 0) { return ListItems.find({ itemReceived: false }); } else { return ListItems.find({ itemReceived: false, itemName: { $regex: searchVal + '.*', $options: 'i' } }); } } else { - if (!searchVal) { + if (typeof searchVal == 'undefined' || searchVal.length == 0) { return ListItems.find({}); } else { return ListItems.find({ itemName: { $regex: searchVal + '.*', $options: 'i' } }); @@ -40,37 +40,34 @@ Template.listItemsTbl.helpers({ Template.listItemsTbl.events({ 'click li' (event) { event.preventDefault(); - const setOrd = async() => { - let itemInfo = await ListItems.findOneAsync({ _id: this._id }); - if (itemInfo.itemOrdered == true) { - let result = await Meteor.callAsync('setNotOrdered.listItem', this._id); - if (!result) { - // console.log(" ERROR seeting item as not ordered."); + let itemInfo = ListItems.findOne({ _id: this._id }); + if (itemInfo.itemOrdered == true) { + Meteor.call('setNotOrdered.listItem', this._id, function(err, result) { + if (err) { + console.log(" ERROR setting this item as NOT ordered: " + err); } else { - // console.log(" SUCCESS setting item as ordered."); - } - } else { - let result = Meteor.callAsync('setOrdered.listItem', this._id); - if (!result) { - // console.log(" ERROR marking item ordered: " + err); + // console.log(" SUCCESS setting this item as NOT ordered."); + } + }); + } else { + Meteor.call('setOrdered.listItem', this._id, function(err, result) { + if (err) { + console.log(" ERROR marking item ordered: " + err); } else { // console.log(" SUCCESS marking this item ordered."); } - } + }); } - setOrd(); }, 'click .markListItemReceived' (event) { event.preventDefault(); - const setRcvd = async() => { - let result = await Meteor.callAsync('setReceived.listItem', this._id); - if (!result) { - // console.log("Item not marked properly - why?"); + Meteor.call('setReceived.listItem', this._id, function(err, result) { + if (err) { + console.log(" ERROR setting item as received: " + err); } else { - // console.log("Item Marked Received."); + // console.log(" SUCCESS setting item received."); } - } - setRcvd(); + }); }, 'click .deleteListItem' (event) { event.preventDefault(); @@ -79,4 +76,4 @@ Template.listItemsTbl.events({ Session.set("item", this.itemName); Session.set("view", "List Items"); }, -}); +}); \ No newline at end of file diff --git a/client/Lists/listsTbl.js b/client/Lists/listsTbl.js index 05a065e..1d7a8f0 100644 --- a/client/Lists/listsTbl.js +++ b/client/Lists/listsTbl.js @@ -1,6 +1,5 @@ import { Lists } from '../../imports/api/lists.js'; import { M } from '../lib/assets/materialize.js'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Template.listsTbl.onCreated(function() { this.subscribe("myLists"); @@ -28,17 +27,15 @@ Template.listsTbl.events({ } else { // console.log("listId is: " + listId); Session.set("listId", listId); - const addUserLast = async() => { - let result = await Meteor.callAsync('add.userLast', "List", listId); - if (!result) { - // console.log(" ERROR setting user last list id in db: " + err); + Meteor.call('add.userLast', "List", listId, function(err, result) { + if (err) { + console.log(" ERROR setting user last list id in db: " + err); } else { - setTimeout(function() { + Meteor.setTimeout(function() { FlowRouter.go('/listitems'); }, 100); } - } - addUserLast(); + }); } } }, @@ -50,17 +47,15 @@ Template.listsTbl.events({ let splitList = listFullId.split("_"); let listId = splitList[1]; // console.log("listId is " + listId); - const markComp = async() => { - let result = await Meteor.callAsync("mark.complete", listId); - if (!result) { - // console.log(" ERROR marking list complete!"); + Meteor.call("mark.complete", listId, function(err, result){ + if (err) { + console.log(" ERROR marking list complete! " + err); showSnackbar("ERROR! List Not Makred Complete!", "red"); } else { // console.log(" SUCCESS marking list complete."); showSnackbar("List Marked Complete!", "green"); } - } - markComp(); + }); } } }); \ No newline at end of file diff --git a/client/MainLayout.js b/client/MainLayout.js index 010b72f..2a37018 100644 --- a/client/MainLayout.js +++ b/client/MainLayout.js @@ -7,27 +7,20 @@ Template.MainLayout.onCreated(function() { Template.MainLayout.onRendered(function() { this.autorun(() => { let myId = Meteor.userId(); - const getConfig = async() => { - let myprefs = await UserConfig.findOneAsync({ user: myId }); - try { - if (!myprefs) { - // console.log("User Prefs appear undefined."); - } else { - if (myprefs.darkMode == "light") { - // console.log("Found theme as light"); - Session.set("myTheme", "light"); - document.documentElement.setAttribute('theme', "light"); - } else { - // console.log("Found theme as dark"); - Session.set("myTheme", "dark"); - document.documentElement.setAttribute('theme', "dark"); - } - } - } catch(error) { - console.log(" ERROR getting user preferences: " + error); - } + let myprefs = UserConfig.findOne({ user: myId }); + if (typeof myprefs != 'undefined') { + if (myprefs.darkMode == "light") { + console.log("Found theme as light"); + Session.set("myTheme", "light"); + document.documentElement.setAttribute('theme', "light"); + } else { + console.log("Found theme as dark"); + Session.set("myTheme", "dark"); + document.documentElement.setAttribute('theme', "dark"); + } + } else { + console.log("User Prefs appear undefined."); } - getConfig(); }); }); diff --git a/client/MenuItems/addProdToListModal.html b/client/MenuItems/addProdToListModal.html index 4ac3f34..191eaeb 100644 --- a/client/MenuItems/addProdToListModal.html +++ b/client/MenuItems/addProdToListModal.html @@ -39,9 +39,10 @@ Cancel
-
+
+
{{> snackbar}} diff --git a/client/MenuItems/addProdToListModal.js b/client/MenuItems/addProdToListModal.js index 914273a..7204281 100644 --- a/client/MenuItems/addProdToListModal.js +++ b/client/MenuItems/addProdToListModal.js @@ -31,9 +31,9 @@ Template.addProdToListModal.helpers({ }, productToChoose: function() { let menuItemId = Session.get("menuItemId"); - // console.log("Menu Item Id received is: " + menuItemId); + console.log("Menu Item Id received is: " + menuItemId); let prodLinkLIst = MenuProdLinks.find({ menuItemId: menuItemId}); - // console.dir(prodLinkLIst); + console.dir(prodLinkLIst); if (typeof prodLinkLIst != 'undefined' && prodLinkLIst != "" && prodLinkLIst != null) { return prodLinkLIst; } @@ -44,23 +44,21 @@ Template.addProdToListModal.events({ 'click .productListing' (event) { let itemId = event.currentTarget.id; let selected = Session.get("itemsSelected"); - // console.log("Item clicked: " + itemId); + console.log("Item clicked: " + itemId); selected.push(itemId); - // console.dir(selected); + console.dir(selected); Session.set("itemsSelected", selected); }, 'click #saveProdsToList' (event) { event.preventDefault(); let selectedItems = Session.get("itemsSelected"); let listId = $("#chooseList").val(); - const addItemsFromMenu = async() => { - let result = await Meteor.callAsync('add.itemsFromMenuItem', selectedItems, listId); - if (!result) { - console.log(" ERROR adding menu components to list: "); + Meteor.call('add.itemsFromMenuItem', selectedItems, listId, function(err, result) { + if (err) { + console.log(" ERROR adding menu components to list: " + err); } else { showSnackbar("Items Added to List!", "green"); } - } - addItemsFromMenu(); + }); } }); diff --git a/client/MenuItems/menuItemsForm.js b/client/MenuItems/menuItemsForm.js index e0a6e65..9419402 100644 --- a/client/MenuItems/menuItemsForm.js +++ b/client/MenuItems/menuItemsForm.js @@ -38,27 +38,13 @@ Template.menuItemsForm.helpers({ if (Session.get("menuId")) { menuId = Session.get("menuId"); } else { - const menuInfor = async() => { - let result = await UserLast.findOneAsync({ view: "Menu" }).viewId; - if (!result) { - - } else { - return result; - } - } - let menuId = menuInfor(); + menuId = UserLast.findOne({ view: "Menu" }).viewId; } - const menuData = async() => { - let menuInfo = await Menus.findOneAsync({ _id: menuId }); - if (!menuInfo) { - return; - } else { - return menuInfo.menuName; - } + let menuInfo = Menus.findOne({ _id: menuId }); + if (menuInfo) { + return menuInfo.menuName; } - let menuInformation = menuData(); - return menuInformation; } }); @@ -69,77 +55,49 @@ Template.menuItemsForm.events({ let dateSrv = $("#dateServed").val(); let menuId = Session.get("menuId"); - if (menuId == null || menuId == "") { - console.log(" ---- NO MENU ID! ----"); - } - const mie = async() => { - let menuItemExists = await MenuItems.findOneAsync({ itemName: menuItem }); - if (!menuItemExists) { - // call to add it - notExists(); - } else { - // call to add it to the menu only - console.dir(menuItemExists); - itExists(menuItemExists); - } - } - mie(); + let menuItemExists = MenuItems.findOne({ itemName: menuItem }); - const notExists = async() => { - // add the item as new and add to the menu - if (menuItem == null || menuItem == "") { - Session.set("menuItemErr", true); - } else { - const addMenuItem = async() => { - let result = await Meteor.callAsync('add.menuItem', menuItem); - if (!result) { - // console.log(" ERROR adding menu item: " + err); - } else { - // console.log(" SUCCESS adding menu item. Result is: " + result); - return result; - } - } - let addedItem = await addMenuItem(); - - if (!addedItem) { - // console.log("Item was not added."); - } else { - // now add this item to the menu - // console.log("Added Item = " + addedItem); - const addToMenu = async() => { - let result2 = await Meteor.callAsync('addto.Menu', menuId, menuItem, addedItem, dateSrv, false); - if (!result2) { - // console.log(" ERROR adding menuitem to menu: " + error); - } else { - $("#menuItemInp").val(""); - $("#dateServed").val(""); - // console.log("Added item to menu - no problem."); - } - } - addToMenu(); - } - } - } - - const itExists = async(menuItemExists) => { + if (typeof menuItemExists != 'undefined' && menuItemExists != null && menuItemExists != "") { // use the existing item on the menu let menuItemId = menuItemExists._id; let isLinked = menuItemExists.isLinked; if (menuItem == null || menuItem == "") { Session.set("menuItemErr", true); } else { - const addToMenu = async() => { - let result = await Meteor.callAsync('addto.Menu', menuId, menuItem, menuItemId, dateSrv, isLinked); - if (!result) { - // console.log(" ERROR adding menuitem to menu: " + error); + Meteor.call('addto.Menu', menuId, menuItem, menuItemId, dateSrv, isLinked, function(error, nresult) { + if (error) { + console.log(" ERROR adding menuitem to menu: " + error); } else { // console.log("Added item to menu - no problem."); $("#menuItemInp").val(""); $("#dateServed").val(""); } - } - addToMenu(); + }); + } + } else { + // add the item as new and add to the menu + if (menuItem == null || menuItem == "") { + Session.set("menuItemErr", true); + } else { + Meteor.call('add.menuItem', menuItem, function(err, result) { + if (err) { + console.log(" ERROR adding menu item: " + err); + } else { + // console.log(" SUCCESS adding menu item."); + $("#menuItemInp").val(""); + $("#dateServed").val(""); + + // now add this item to the menu + Meteor.call('addto.Menu', menuId, menuItem, result, dateSrv, false, function(error, nresult) { + if (error) { + console.log(" ERROR adding menuitem to menu: " + error); + } else { + // console.log("Added item to menu - no problem."); + } + }); + } + }); } } }, @@ -152,25 +110,20 @@ Template.menuItemsForm.events({ let menuItemId = menuInfo[i]._id; let momentAddDay = moment(menuInfo[i].serveDate).add(1, 'day').format("MMM DD, YYYY"); // console.log(momentAddDay); - const shiftDay = async() => { - let result = await Meteor.callAsync('shiftDate', menuItemId, momentAddDay); - if (!result) { - // console.log(" ERROR shifting meal days: " + err); + Meteor.call('shiftDate', menuItemId, momentAddDay, function(err,result) { + if (err) { + console.log(" ERROR shifting meal days: " + err); } else { showSnackbar("Items Shifted Out by 1 Calendar Day", "green"); } - } + }); } }, 'keyup #menuItemInp' (event) { if (event.which != 13) { let findMenuItem = $("#menuItemInp").val(); let menuItemInfo = MenuItems.find({ itemName: {$regex: findMenuItem + '.*', $options: 'i' }}).fetch(); - if (!menuItemInfo) { - console.log("Nothing found in menu items:"); - console.dir(menuItemInfo); - } else { - console.dir(menuItemInfo) + if (typeof menuItemInfo != 'undefined' && menuItemInfo != '' && menuItemInfo != null) { getMenuItemList(menuItemInfo); } } diff --git a/client/MenuItems/menuItemsTbl.js b/client/MenuItems/menuItemsTbl.js index f931e62..40e279c 100644 --- a/client/MenuItems/menuItemsTbl.js +++ b/client/MenuItems/menuItemsTbl.js @@ -30,21 +30,11 @@ Template.menuItemsTbl.helpers({ if (Session.get("menuId")) { menuId = Session.get("menuId"); } else { - const menu = async() => { - let menId = await UserLast.findOneAsync({ view: "Menu" }).viewId; - if (!menId) { - - } else { - return menId; - } - } - menuId = menu(); + menuId = UserLast.findOne({ view: "Menu" }).viewId; } - if (menuId) { - let menuInfo = Menus.find({ _id: menuId }, { sort: { serveDateActual: 1 }}); - if (menuInfo) { - return menuInfo; - } + let menuInfo = Menus.find({ _id: menuId }, { sort: { serveDateActual: 1 }}); + if (menuInfo) { + return menuInfo } } }); @@ -53,7 +43,7 @@ Template.menuItemsTbl.events({ 'click .deleteMenuItem' (event) { event.preventDefault(); let theseIds = Session.get("menuId") + "_" + this.menuItemId; - // console.log("These Ids: " + theseIds); + console.log("These Ids: " + theseIds); Session.set("deleteId", theseIds); Session.set("method", "delete.itemFromMenu"); Session.set("item", this.menuItemName); @@ -63,7 +53,7 @@ Template.menuItemsTbl.events({ event.preventDefault(); Session.set("menuItemId", this.menuItemId); Session.set("menuItemName", this.menuItemName); - // console.log("menu item name = " + this.menuItemName); + console.log("menu item name = " + this.menuItemName); }, 'click .addProdsToList' (event) { event.preventDefault(); diff --git a/client/MenuItems/modalLinkProducts.js b/client/MenuItems/modalLinkProducts.js index 8d777d3..86c3378 100644 --- a/client/MenuItems/modalLinkProducts.js +++ b/client/MenuItems/modalLinkProducts.js @@ -18,29 +18,17 @@ Template.modalLinkProducts.onRendered(function() { dropdownOptions: 4, }); - this.autorun(() => { - if (this.subscriptionsReady()) { - // setTimeout(function() { - // var instances = M.Modal.init(elems, {}); - var elemse = document.querySelectorAll('select'); - var instancese = M.FormSelect.init(elemse, { - dropdownOptions: 4, - }); - // }, 250); - } - }); + setTimeout(function() { + var instances = M.Modal.init(elems, {}); + var instancese = M.FormSelect.init(elemse, { + dropdownOptions: 4, + }); + }, 250); }); Template.modalLinkProducts.helpers({ products: function() { - let prodInfo = Products.find({}, { sort: { prodName:1 }}); - // return Products.find({}, {sort: { prodName:1 }}); - if (!prodInfo) { - console.log("no product info yet."); - } else { - console.log("prod info found."); - return prodInfo; - } + return Products.find({}); } }); @@ -54,7 +42,7 @@ Template.modalLinkProducts.events({ let links = M.FormSelect.getInstance(linkSelect).getSelectedValues(); if (typeof links != undefined && links != [] && links != null) { // let's split these links into their parts, and make an array of objects - for (let i=0; i { - let result = await Meteor.callAsync("add.menuProdLinks", menuItemId, menuItemName, linkObjArray); - if (!result) { - // console.log(" ERROR adding product links to this menu item: " + err); + Meteor.call("add.menuProdLinks", menuItemId, menuItemName, linkObjArray, function(err, result) { + if (err) { + console.log(" ERROR adding product links to this menu item: " + err); } else { - updMenuItemLinks(); + Meteor.call('update.menuItemLinked', menuItemId, true, function(err, result) { + if (err) { + console.log(" ERROR adding link to menu item: " + err); + } else { + Meteor.call('link.inMenu', menuItemId, true, function(error, nresult) { + if (error) { + console.log(" ERROR adding link to menu sub-item: " + error); + } else { + showSnackbar("Products added to Menu Item successfully!", "green"); + } + }); + } + }); } - } - addMenuProdLinks(); - - const updMenuItemLinks = async() => { - let result = await Meteor.callAsync('update.menuItemLinked', menuItemId, true); - if (!result) { - // console.log(" ERROR adding link to menu item: " + err); - } else { - linkInMenu(); - } - } - - const linkInMenu = async() => { - let result = await Meteor.callAsync('link.inMenu', menuItemId, true); - if (!result) { - console.log(" ERROR adding link to menu sub-item: " + error); - } else { - showSnackbar("Products added to Menu Item successfully!", "green"); - } - } + }); } } -}); \ No newline at end of file +}); diff --git a/client/Menus/addMenuModal.js b/client/Menus/addMenuModal.js index 638f81d..ae92d87 100644 --- a/client/Menus/addMenuModal.js +++ b/client/Menus/addMenuModal.js @@ -27,16 +27,14 @@ Template.addMenuModal.events({ if (menuName == "" || menuName == null) { Session.set("menuNameErr", true); } else { - const addMenu = async() => { - let result = await Meteor.callAsync("add.menu", menuName); - if (!result) { - // console.log(" ERROR adding menu: " + err); + Meteor.call("add.menu", menuName, function(err, result) { + if (err) { + console.log(" ERROR adding menu: " + err); } else { - // console.log(" SUCCESS adding menu."); + console.log(" SUCCESS adding menu."); $("#menuNameInp").val(""); } - } - addMenu(); + }); } }, }); \ No newline at end of file diff --git a/client/Menus/mainMenuTbl.js b/client/Menus/mainMenuTbl.js index a64e4c3..0ae96b7 100644 --- a/client/Menus/mainMenuTbl.js +++ b/client/Menus/mainMenuTbl.js @@ -1,6 +1,5 @@ import { Menus } from '../../imports/api/menu.js'; import { M } from '../lib/assets/materialize.js'; -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; Template.mainMenuTbl.onCreated(function() { this.subscribe("myMenus"); @@ -22,7 +21,7 @@ Template.mainMenuTbl.events({ 'click li.collection-item' (event) { event.preventDefault(); let sender = event.target; - // console.log("Sender originated from: "); + // console.log("Sender origination from: "); // console.log(sender.localName); if (sender.localName == "li") { let menuId = event.currentTarget.id; @@ -30,38 +29,33 @@ Template.mainMenuTbl.events({ // console.log("add menu clicked"); } else { // console.log("menuId is: " + menuId); - const addUserLast = async() => { - Session.set("menuId", menuId); - let result = await Meteor.callAsync('add.userLast', "Menu", menuId); - if (!result) { - // console.log(" ERROR writing last menu viewed by user to db."); + Meteor.call('add.userLast', "Menu", menuId, function(err, result) { + if (err) { + console.log(" ERROR writing last menu viewed by user to db: " + err); } else { - FlowRouter.go('/menuitems'); + Session.set("menuId", menuId); + Meteor.setTimeout(function() { + FlowRouter.go('/menuitems'); + }, 100); } - } - addUserLast(); + }); } } else if (sender.localName == "i") { let menuId = this._id; - const makrMenuComp = async() => { - let result = await Meteor.callAsync("markMenu.complete", menuId); - if (!result) { - // console.log(" ERROR: can't mark menu complete."); + Meteor.call("markMenu.complete", menuId, function(err, result) { + if (err) { + console.log(" ERROR: can't mark menu complete: " + err); } else { - // console.log(" SUCCESS marking menu complete."); - setAllMade(); + console.log(" SUCCESS marking menu complete."); + Meteor.call('setAllMade.menuItem', menuId, function(err, result) { + if (err) { + console.log(" ERROR: cannot set all items as made: " + err); + } else { + console.log(" SUCCESS setting all items made."); + } + }); } - } - makrMenuComp(); - - const setAllMade = async() => { - let result = await Meteor.callAsync('setAllMade.menuItem', menuId); - if (!result) { - // console.log(" ERROR: cannot set all items as made."); - } else { - // console.log(" SUCCESS setting all items made."); - } - } + }); } }, }); \ No newline at end of file diff --git a/client/MyTasks/myTasksForm.js b/client/MyTasks/myTasksForm.js index 82e4b1a..7d50d29 100644 --- a/client/MyTasks/myTasksForm.js +++ b/client/MyTasks/myTasksForm.js @@ -33,26 +33,34 @@ Template.myTasksForm.events({ let taskDateArray = Session.get("taskDateArr"); let actDate = []; - console.dir(taskNameArray); - console.dir(taskDateArray); - if (taskNameArray == null || taskNameArray == [] || taskNameArray == "") { taskNameErr = true; } if (taskDateArray == null || taskDateArray == []|| taskDateArray == "") { taskDateErr = true; + } else { + for (i = 0; i < taskDateArray.length; i++) { + // console.log(taskDateArray[i]); + let actDateTask = new Date(taskDateArray[i]); + actDate.push(actDateTask); + } } - // console.log("Date Error: " + taskDateErr + " - Name Error: " + taskNameErr); + console.log("Date Error: " + taskDateErr + " - Name Error: " + taskNameErr); if (taskDateErr == false && taskNameErr == false) { - for (const task of taskNameArray) { - for (const date of taskDateArray) { - let actDate = new Date(date); - - addTask(task.id, date, actDate); + Meteor.call("add.task", taskNameArray, "self", "selfId", taskDateArray, actDate, function(err, result) { + if (err) { + console.log(" ERROR adding task for self: " + err); + showSnackbar("ERROR adding task for self!", "red"); + } else { + console.log(" SUCCESS adding task for self."); + Session.set("taskDateArr", []); + $("#myTaskName").val(""); + $("#myTaskDate").val(""); + showSnackbar("Added Tasks Successfully!", "green"); } - } + }); } else { showSnackbar("Error! Both Task & Date are Required!", "red"); } @@ -83,18 +91,4 @@ Template.myTasksForm.events({ taskDateArr.push(taskDate); Session.set("taskDateArr", taskDateArr); }, -}); - -const addTask = async(task, date, actDate) => { - let result = await Meteor.callAsync("add.myTask", task, date, actDate); - if (!result) { - // console.log(" ERROR adding task for self: "); - showSnackbar("Error adding task for self!", "red"); - } else { - // console.log(" SUCCESS adding task for self."); - // Session.set("taskDateArr", []); - // $("#myTaskName").val(""); - // $("#myTaskDate").val(""); - showSnackbar("Added Tasks Successfully!", "green"); - } -} \ No newline at end of file +}); \ No newline at end of file diff --git a/client/MyTasks/myTasksTbl.js b/client/MyTasks/myTasksTbl.js index 9f2bc91..ea3569c 100644 --- a/client/MyTasks/myTasksTbl.js +++ b/client/MyTasks/myTasksTbl.js @@ -55,19 +55,19 @@ Template.myTasksTbl.events({ 'click .markMyTaskComplete' (event) { event.preventDefault(); let taskId = this._id; - const makrTaskComp = async() => { - let result = await Meteor.callAsync("markTask.complete", taskId); - if (!result) { - // console.log(" ERROR marking task completeL " + err); + Meteor.call("markTask.complete", taskId, function(err, result) { + if (err) { + console.log(" ERROR marking task completeL " + err); showSnackbar("ERROR Marking Task Complete!", "red"); } else { showSnackbar("Successfully Marked Task Complete!", "green"); + } - } + }); }, 'click .deleteMyTask' (event) { event.preventDefault(); - // console.log("detected click"); + console.log("detected click"); Session.set("deleteId", this._id); Session.set("method", "delete.task"); Session.set("item", this.taskName); diff --git a/client/UserConfig/userConfig.js b/client/UserConfig/userConfig.js index e5f8725..8afff09 100644 --- a/client/UserConfig/userConfig.js +++ b/client/UserConfig/userConfig.js @@ -5,29 +5,15 @@ Template.userConfig.onCreated(function() { }); Template.userConfig.onRendered(function() { - const getConfig = async() => { - // console.log("tried to get switch config.") - let myConfig = await UserConfig.findOneAsync({ user: Meteor.userId() }); - try { - // console.dir(myConfig); - if (!myConfig) { - // console.log("config not found, setting to light mode."); - $("#darkMode").prop('checked', false); - } else { - // console.log("My Pref: " + myConfig.darkMode); - if (myConfig.darkMode == 'light') { - $("#darkMode").prop('checked', false); - } else { - // console.log("should be checked.") - $("#darkMode").prop('checked', true); - } - } - } catch(error) { - console.log(" ERROR getting dark theme for setting swtich: " + error); + let myConfig = UserConfig.findOne({ user: Meteor.userId() }); + if (typeof myConfig != 'undefined') { + console.log("My Pref: " + myConfig.darkPref); + if (myConfig.darkMode == 'light') { + $("#darkMode").prop('checked', false); + } else { + $("#darkMode").prop('checked', true); } - } - getConfig(); }); Template.userConfig.helpers({ @@ -36,22 +22,23 @@ Template.userConfig.helpers({ Template.userConfig.events({ 'click #darkMode' (event) { - let darkModePref = $("#darkMode").prop('checked') + let darkModePref = $("#darkMode").prop('checked'); if (darkModePref == true) { - let mode = 'dark'; - setDarkMode(mode); + Meteor.call('update.darkModePref', 'dark', function(err, reuslt) { + if (err) { + console.log(" ERROR: could not set dark mode preference to dark: " + err); + } else { + showSnackbar("Dark Mode Preference Set to Dark", "green"); + } + }); } else { - let mode = 'light'; - setDarkMode(mode); + Meteor.call('update.darkModePref', 'light', function(err, result) { + if (err) { + console.log(" ERROR: could not set dark mode preference to light: " + err); + } else { + showSnackbar("Dark Mode Preference Set to Light", "green"); + } + }); } }, -}); - -const setDarkMode = async(mode) => { - let result = await Meteor.callAsync('update.darkModePref', mode); - if (!result) { - // console.log(" - Did not receive back a 'result' from the update."); - } else { - showSnackbar("Dark Mode Preference Set to " + mode, "green"); - } -} \ No newline at end of file +}); \ No newline at end of file diff --git a/imports/api/listItems.js b/imports/api/listItems.js index ad85f68..e83b9f3 100644 --- a/imports/api/listItems.js +++ b/imports/api/listItems.js @@ -14,7 +14,7 @@ ListItems.allow({ }); Meteor.methods({ - async 'add.listItem' (itemName, listId) { + 'add.listItem' (itemName, listId) { check(itemName, String); check(listId, String); @@ -22,24 +22,18 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add items. Make sure you are logged in with valid user credentials.'); } - let iname = itemName.charAt(0).toUpperCase() + itemName.slice(1); - // look up the item from the Products collection - - let prodInfo = await Products.findOneAsync({ prodName: iname }); - try { - if (!prodInfo) { - // add product info first - let added = await Meteor.callAsync("add.product", itemName, [""]); - if (!added) { - // console.log(" ERROR adding item to products: " + err); + let prodInfo = Products.findOne({ prodName: itemName }); + if (typeof prodInfo == "undefined") { + Meteor.call("add.product", itemName, "", "", "", function(err, result) { + if (err) { + console.log(" ERROR adding item to products: " + err); } else { // console.log(" SUCCESS adding item to Products."); - - return await ListItems.insertAsync({ - itemName: iname, + return ListItems.insert({ + itemName: itemName, listId: listId, - prodId: added, + prodId: result, addedBy: this.userId, itemStore: "", itemOrdered: false, @@ -47,23 +41,21 @@ Meteor.methods({ dateAddedToList: new Date(), }); } - } else { - return await ListItems.insertAsync({ - itemName: iname, - listId: listId, - prodId: prodInfo._id, - addedBy: this.userId, - itemStore: prodInfo.prodStore, - itemOrdered: false, - itemReceived: false, - dateAddedToList: new Date(), - }); - } - } catch(error) { - console.log(" ERROR adding new product and item: " + error); + }); + } else { + return ListItems.insert({ + itemName: itemName, + listId: listId, + prodId: prodInfo._id, + addedBy: this.userId, + itemStore: prodInfo.prodStore, + itemOrdered: false, + itemReceived: false, + dateAddedToList: new Date(), + }); } }, - async 'add.itemsFromMenuItem' (itemIds, listId) { + 'add.itemsFromMenuItem' (itemIds, listId) { check(itemIds, [String]); check(listId, String); @@ -72,81 +64,70 @@ Meteor.methods({ } console.dir(itemIds); - let noitems = itemIds.length; - let i; - for (i=0; i < noitems; i++) { + for (i=0; i < itemIds.length; i++) { // let's check and make sure the product isn't already on the list - let onList = await ListItems.find({ listId: listId, prodId: itemIds[i] }).countAsync(); - // console.log("Number On List: " + onList); + let onList = ListItems.find({ listId: listId, prodId: itemIds[i] }).count(); + console.log("Number On List: " + onList); if (onList == 0) { // now pull the product - let prodInfo = await Products.findOneAsync({ _id: itemIds[i] }); - if (!prodInfo) { - console.log("Unable to load product info."); - } else { - console.log("Run " + i); - ListItems.insertAsync({ - itemName: prodInfo.prodName, - listId: listId, - prodId: prodInfo._id, - addedBy: this.userId, - itemStore: prodInfo.prodStore, - itemOrdered: false, - itemReceived: false, - dateAddedToList: new Date(), - }); - } + let prodInfo = Products.findOne({ _id: itemIds[i] }); + ListItems.insert({ + itemName: prodInfo.prodName, + listId: listId, + prodId: prodInfo._id, + addedBy: this.userId, + itemStore: prodInfo.prodStore, + itemOrdered: false, + itemReceived: false, + dateAddedToList: new Date(), + }); } else { // product exists on list, move on to next console.log("Product Exists on Selected List."); } - if (i == (noitems - 1)) { - console.log("Returning now."); - return true; - } } }, - async 'setOrdered.listItem' (itemId) { + 'setOrdered.listItem' (itemId) { check(itemId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to set items as ordered. Make sure you are logged in with valid user credentials.'); } - return await ListItems.updateAsync({ _id: itemId }, { + return ListItems.update({ _id: itemId }, { $set: { itemOrdered: true, dateOrdered: new Date(), } }); }, - async 'setAllOrdered.listItem' (shopListId) { + 'setAllOrdered.listItem' (shopListId) { // set all items that are not already set as ordered, or set as received to ordered on this list }, - async 'setNotOrdered.listItem' (itemId) { + 'setNotOrdered.listItem' (itemId) { check(itemId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to set items as not ordered. Make sure you are logged in with valid user credentials.'); } - return await ListItems.updateAsync({ _id: itemId }, { + return ListItems.update({ _id: itemId }, { $set: { itemOrdered: false, dateUnOrdered: new Date(), } }); }, - async 'setReceived.listItem' (itemId) { + 'setReceived.listItem' (itemId) { check(itemId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to set items as received. Make sure you are logged in with valid user credentials.'); } - return await ListItems.updateAsync({ _id: itemId }, { + return ListItems.update({ _id: itemId }, { $set: { itemReceived: true, dateReceived: new Date(), @@ -154,25 +135,25 @@ Meteor.methods({ }); }, - async 'setNotReceived.listItem' (shopListId) { + 'setNotReceived.listItem' (shopListId) { check(itemId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to set items as not received. Make sure you are logged in with valid user credentials.'); } - return await ListItems.updateAsync({ _id: itemId }, { + return ListItems.update({ _id: itemId }, { $set: { itemReceived: false, dateNotReceived: new Date(), } }); }, - async 'setAllReceived.listItem' () { + 'setAllReceived.listItem' () { // set all items that are not already listed as received to received on this list }, - async 'edit.listItem' (itemId, itemName) { + 'edit.listItem' (itemId, itemName) { check(itemId, String); check(itemName, String); @@ -180,19 +161,19 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add items. Make sure you are logged in with valid user credentials.'); } - return await ListItems.updateAsync({ _id: itemId }, { + return ListItems.update({ _id: itemId }, { $set: { itemName: itemName, } }); }, - async 'delete.listItem' (itemId) { + 'delete.listItem' (itemId) { check(itemId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete list items. Make sure you are logged in with valid user credentials.'); } - return await ListItems.removeAsync({ _id: itemId }); + return ListItems.remove({ _id: itemId }); } -}); +}); \ No newline at end of file diff --git a/imports/api/lists.js b/imports/api/lists.js index 65f2f5d..6b8651d 100644 --- a/imports/api/lists.js +++ b/imports/api/lists.js @@ -12,7 +12,7 @@ Lists.allow({ }); Meteor.methods({ - async 'add.list' (listName, isShared) { + 'add.list' (listName, isShared) { check(listName, String); check(isShared, Boolean); @@ -20,14 +20,14 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add lists. Make sure you are logged in with valid user credentials.'); } - return await Lists.insertAsync({ + return Lists.insert({ listName: listName, listShared: isShared, listOwner: this.userId, listComplete: false, }); }, - async 'edit.list' (listId, listName, isShared) { + 'edit.list' (listId, listName, isShared) { check(listId, String); check(listName, String); check(isShared, Boolean); @@ -36,55 +36,41 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to edit lists. Make sure you are logged in with valid user credentials.'); } - return await Lists.updateAsync({ _id: listId }, { + return Lists.update({ _id: listId }, { $set: { listName: listName, listShared: isShared, } }); }, - async 'delete.list' (listId) { + 'delete.list' (listId) { check(listId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete lists. Make sure you are logged in with valid user credentials.'); } - return await Lists.removeAsync({ _id: listId }); + return Lists.remove({ _id: listId }); }, - async 'mark.complete' (listId) { + 'mark.complete' (listId) { check(listId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to mark lists complete. Make sure you are logged in with valid user credentials.'); } - return await Lists.updateAsync({ _id: listId }, { + return Lists.update({ _id: listId }, { $set: { listComplete: true, completedOn: new Date() } - }); + });; }, - async 'mark.incomplete' (listId) { - check(listId, String); - - if (!this.userId) { - throw new Meteor.Error('You are not allowed to restore completed lists. Make sure you are logged in with valid user credentials.'); - } - - return await Lists.updateAsync({ _id: listId }, { - $set: { - listComplete: false, - completedOn: new Date() - } - }); - }, - async 'clean.Lists' () { + 'clean.Lists' () { if (!this.userId) { throw new Meteor.Error('You are not allowed to clean up old lists. Make sure you are logged in with valid user credentials.'); } - return await Lists.removeAsync({ listComplete: true }); + return Lists.remove({ listComplete: true }); }, }); \ No newline at end of file diff --git a/imports/api/mScripts.js b/imports/api/mScripts.js index 67c1685..4152b65 100644 --- a/imports/api/mScripts.js +++ b/imports/api/mScripts.js @@ -12,10 +12,10 @@ MScripts.allow({ }); Meteor.methods({ - async 'set.ScriptRun' (scriptName) { + 'set.ScriptRun' (scriptName) { check(scriptName, String); - return await MScripts.insertAsync({ + MScripts.insert({ scriptName: scriptName, hasRun: true, runOn: new Date(), diff --git a/imports/api/menu.js b/imports/api/menu.js index e9bd450..b97d21a 100644 --- a/imports/api/menu.js +++ b/imports/api/menu.js @@ -15,20 +15,20 @@ Menus.allow({ }); Meteor.methods({ - async 'add.menu' (menuName) { + 'add.menu' (menuName) { check(menuName, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to add menus. Make sure you are logged in with valid user credentials.'); } - return await Menus.insertAsync({ + return Menus.insert({ menuName: menuName, menuOwner: this.userId, menuComplete: false, }); }, - async 'edit.menu' (menuId, menuName) { + 'edit.menu' (menuId, menuName) { check(menuId, String); check(menuName, String); @@ -36,55 +36,88 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to edit menus. Make sure you are logged in with valid user credentials.'); } - return await Menus.updateAsync({ _id: menuId }, { + return Menus.update({ _id: menuId }, { $set: { menuName: menuName, } }); }, - async 'delete.menu' (menuId) { + 'delete.menu' (menuId) { check(menuId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete menus. Make sure you are logged in with valid user credentials.'); } - return await Menus.removeAsync({ _id: menuId }); + return Menus.remove({ _id: menuId }); }, - async 'markMenu.complete' (menuId) { + 'markMenu.complete' (menuId) { check(menuId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to mark menus complete. Make sure you are logged in with valid user credentials.'); } - return await Menus.updateAsync({ _id: menuId }, { + return Menus.update({ _id: menuId }, { $set: { menuComplete: true, } }); }, - async 'markMenu.notComplete' (menuId) { + 'markMenu.notComplete' (menuId) { check(menuId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to mark menus not complete. Make sure you are logged in with valid user credentials.'); } - return await Menus.updateAsync({ _id: menuId }, { + return Menus.update({ _id: menuId }, { $set: { menuComplete: false, } }); }, - async 'clean.Menus' () { + 'clean.Menus' () { if (!this.userId) { throw new Meteor.Error('You are not allowed to clean up old Menus. Make sure you are logged in with valid user credentials.'); } - return await Menus.removeAsync({ menuComplete: true }); + let removeMenuIds = []; + + + // let's find all the menus with menu items that are past their date. + let menuList = Menus.find({ menuComplete: false }).fetch(); + for (i=0; i < menuList.length; i++) { + let removeMenu = true; + let items = MenuItems.find({ menuId: menuList[i]._id }).fetch(); + for (j=0; j < items.length; j++) { + let srvDate = moment(items[j].serveDateActual); + let today = moment(); + let expired = moment(today).isAfter(srvDate); + if (expired != true) { + removeMenu = false; + } + if (j == items.length - 1) { + if (removeMenu == true) { + removeMenuIds.push(menuList[i]._id); + } + } + } + } + + // next let's add the ids of any menus that are marked complete + let markedComplete = Menus.find({ menuComplete: true }).fetch(); + for (k = 0; k < markedComplete.length; k++) { + let menuId = markedComplete[k]._id; + removeMenuIds.push(menuId); + } + + // 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] }); + } }, - async 'addto.Menu' (menuId, menuItem, menuItemId, dateSrv, isLinked) { + 'addto.Menu' (menuId, menuItem, menuItemId, dateSrv, isLinked) { check(menuId, String); check(menuItem, String); check(menuItemId, String); @@ -95,9 +128,9 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add items to menus. Make sure you are logged in with valid user credentials.'); } - let serveDateActual = new Date(dateSrv); + serveDateActual = new Date(dateSrv); - return await Menus.updateAsync({ _id: menuId }, { + return Menus.update({ _id: menuId }, { $addToSet: { menuItems: { @@ -110,7 +143,7 @@ Meteor.methods({ } }); }, - async 'link.inMenu' (menuItemId, isLinked) { + 'link.inMenu' (menuItemId, isLinked) { check(menuItemId, String); check(isLinked, Boolean); @@ -118,13 +151,13 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to link menu items to products. Make sure you are logged in with valid user credentials.'); } - return await Menus.updateAsync({ 'menuItems.menuItemId': menuItemId }, { + return Menus.update({ 'menuItems.menuItemId': menuItemId }, { $set: { "menuItems.$.isLinked": isLinked } }); }, - async 'delete.itemFromMenu' (itemIds) { + 'delete.itemFromMenu' (itemIds) { check(itemIds, String); if (!this.userId) { @@ -132,9 +165,9 @@ Meteor.methods({ } let ids = itemIds.split('_'); - // console.log("item ids: " + ids[0] + " and " + ids[1]); + console.log("item ids: " + ids[0] + " and " + ids[1]); - return await Menus.updateAsync({ _id: ids[0] }, { + return Menus.update({ _id: ids[0] }, { $pull: { menuItems: { menuItemId: ids[1], diff --git a/imports/api/menuItems.js b/imports/api/menuItems.js index 232d510..eca07b0 100644 --- a/imports/api/menuItems.js +++ b/imports/api/menuItems.js @@ -12,21 +12,21 @@ MenuItems.allow({ }); Meteor.methods({ - async 'add.menuItem' (itemName) { + 'add.menuItem' (itemName) { check(itemName, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to add items. Make sure you are logged in with valid user credentials.'); } - return await MenuItems.insertAsync({ + return MenuItems.insert({ itemName: itemName, addedBy: this.userId, dateAddedtoMenu: new Date(), isLinked: false, }); }, - async 'update.menuItemLinked' (itemId, isLinked) { + 'update.menuItemLinked' (itemId, isLinked) { check(itemId, String); check(isLinked, Boolean); @@ -34,13 +34,13 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to set this menu item as linked to products. Make sure you are logged in with valid user credentials.'); } - return await MenuItems.updateAsync({ _id: itemId }, { + return MenuItems.update({ _id: itemId }, { $set: { isLinked: isLinked, } }); }, - async 'edit.madeItem' (itemId, itemName) { + 'edit.madeItem' (itemId, itemName) { check(itemId, String); check(itemName, String); @@ -48,22 +48,22 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to edit menu items. Make sure you are logged in with valid user credentials.'); } - return await MenuItems.updateAsync({ _id: itemId }, { + return MenuItems.update({ _id: itemId }, { $set: { itemName: itemName, } }); }, - async 'delete.menuItem' (itemId) { + 'delete.menuItem' (itemId) { check(itemId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete menu items. Make sure you are logged in with valid user credentials.'); } - return await MenuItems.removeAsync({ _id: itemId }); + return MenuItems.remove({ _id: itemId }); }, - async 'shiftDate' (itemId, momentAddDay) { + 'shiftDate' (itemId, momentAddDay) { check(itemId, String); check(momentAddDay, String); @@ -71,7 +71,7 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to shift menu item dates. Make sure you are logged in with valid user credentials.'); } - return await MenuItems.updateAsync({ _id: itemId }, { + return MenuItems.update({ _id: itemId }, { $set: { serveDate: momentAddDay, } diff --git a/imports/api/menuProdLinks.js b/imports/api/menuProdLinks.js index 3dba4fc..042755b 100644 --- a/imports/api/menuProdLinks.js +++ b/imports/api/menuProdLinks.js @@ -13,7 +13,7 @@ MenuProdLinks.allow({ }); Meteor.methods({ - async 'add.menuProdLinks' (menuItemId, menuItemName, prodNameArray) { + 'add.menuProdLinks' (menuItemId, menuItemName, prodNameArray) { check(menuItemId, String); check(menuItemName, String); check(prodNameArray, [Object]); @@ -22,19 +22,19 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add menu and product links. Make sure you are logged in with valid user credentials.'); }; - let linkExists = await MenuProdLinks.findOneAsync({ menuItemId: menuItemId }); + let linkExists = MenuProdLinks.findOne({ menuItemId: menuItemId }); if (linkExists) { - // console.log("sending to update method instead."); - await Meteor.callAsync('update.menuPordLInks', menuItemId, menuItemName, prodNameArray, function(err, result) { + console.log("sending to update method instead."); + Meteor.call('update.menuPordLInks', menuItemId, menuItemName, prodNameArray, function(err, result) { if (err) { - // console.log(" ERROR moving to the update method: " + err); + console.log(" ERROR moving to the update method: " + err); } else { - // console.log("Successfully updated the menu prod links.") + console.log("Successfully updated the menu prod links.") } }); } else { - return await MenuProdLinks.insertAsync({ + return MenuProdLinks.insert({ menuItemId: menuItemId, menuItemName: menuItemName, products: prodNameArray, @@ -43,7 +43,7 @@ Meteor.methods({ }); } }, - async 'update.menuPordLInks' (menuItemId, menuItemName, prodNameArray) { + 'update.menuPordLInks' (menuItemId, menuItemName, prodNameArray) { check(menuItemId, String); check(menuItemName, String); check(prodNameArray, [Object]); @@ -52,8 +52,7 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add menu and product links. Make sure you are logged in with valid user credentials.'); }; - console.log(" ---- Doing an Update instead! ---- "); - return await MenuProdLinks.updateAsync({ menuItemId: menuItemId }, { + return MenuProdLinks.update({ menuItemId: menuItemId }, { $set: { products: prodNameArray, dateUpdated: Date(), diff --git a/imports/api/products.js b/imports/api/products.js index 35e8206..965346e 100644 --- a/imports/api/products.js +++ b/imports/api/products.js @@ -12,7 +12,7 @@ Products.allow({ }); Meteor.methods({ - async 'add.product' (prodName, prodStore) { + 'add.product' (prodName, prodStore) { check(prodName, String); check(prodStore, [String]); @@ -20,24 +20,13 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add products. Make sure you are logged in with valid user credentials.'); } - let pname = prodName.charAt(0).toUpperCase() + prodName.slice(1); - - // first does this product already exist? - - let prodExists = await Products.findOneAsync({ prodName: pname }); - try { - if (!prodExists) { - return await Products.insertAsync({ - prodName: pname, - prodOwner: this.userId, - prodStore: prodStore, - }); - } - } catch(error) { - console.log(" ERROR adding Pdocut: " + error); - } + return Products.insert({ + prodName: prodName, + prodOwner: this.userId, + prodStore: prodStore, + }); }, - async 'edit.product' (prodId, prodName, prodStore) { + 'edit.product' (prodId, prodName, prodStore) { check(prodId, String); check(prodName, String); check(prodStore, [String]); @@ -46,32 +35,20 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to edit products. Make sure you are logged in with valid user credentials.'); } - let pname = prodName.charAt(0).toUpperCase() + prodName.slice(1); - - return await Products.updateAsync({ _id: prodId }, { + return Products.update({ _id: prodId }, { $set: { - prodName: pname, + prodName: prodName, prodStore: prodStore, } }); }, - async 'delete.product' (prodId) { + 'delete.product' (prodId) { check(prodId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete products. Make sure you are logged in with valid user credentials.'); } - return await Products.removeAsync({ _id: prodId }); - }, - async 'clean.Products' () { - if (!this.userId) { - throw new Meteor.Error('You are not allowed to delete products. Make sure you are logged in with valid user credentials.'); - } - - // first we need to find potential duplicate products - // next we need to see which of those are on incomplete lists - // Then we'll update those to use the main products ID instead - // finally we'll delete the duplicates + return Products.remove({ _id: prodId }); } }); diff --git a/imports/api/recipeItems.js b/imports/api/recipeItems.js index 42b374f..a0688be 100644 --- a/imports/api/recipeItems.js +++ b/imports/api/recipeItems.js @@ -12,7 +12,7 @@ RecipeItems.allow({ }); Meteor.methods({ - async 'add.recipeItem' (recipeId, recipeItemType, recipeItem) { + 'add.recipeItem' (recipeId, recipeItemType, recipeItem) { check(recipeId, String); check(recipeItemType, String); check(recipeItem, String); @@ -21,13 +21,13 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add recipe items. Make sure you are logged in with valid user credentials.'); } - return await RecipeItems.insertAsync({ + return RecipeItems.insert({ recipeId: recipeId, recipeItemType: recipeItemType, recipeItem: recipeItem, }); }, - async 'edit.recipeItem' (recipeItemId, recipeId, recipeItemType, recipeItem) { + 'edit.recipeItem' (recipeItemId, recipeId, recipeItemType, recipeItem) { check(recipeItemId, String); check(recipeId, String); check(recipeItemType, String); @@ -37,7 +37,7 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to edit recipe items. Make sure you are logged in with valid user credentials.'); } - return await RecipeItems.updateAsync({ _id: recipeItemId }, { + return RecipeItems.update({ _id: recipeItemId }, { $set: { recipeId: recipeId, recipeItemType: recipeItemType, @@ -45,13 +45,13 @@ Meteor.methods({ } }); }, - async 'delete.recipeItem' (recipeItemId) { + 'delete.recipeItem' (recipeItemId) { check(recipeItemId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete recipe items. Make sure you are logged in with valid user credentials.'); } - return await RecipeItems.removeAsync({ _id: recipeItemId }); + return RecipeItems.remove({ _id: recipeItemId }); } }); \ No newline at end of file diff --git a/imports/api/recipes.js b/imports/api/recipes.js index 008bb51..9ad2169 100644 --- a/imports/api/recipes.js +++ b/imports/api/recipes.js @@ -12,20 +12,20 @@ Recipes.allow({ }); Meteor.methods({ - async 'add.recipe' (recipeName) { + 'add.recipe' (recipeName) { check(recipeName, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to add recipes. Make sure you are logged in with valid user credentials.'); } - return await Recipes.insertAsync({ + return Recipes.insert({ recipeName: recipeName, addedBy: this.userId, addedOn: new Date(), }); }, - async 'edit.recipe' (recipeId, recipeName) { + 'edit.recipe' (recipeId, recipeName) { check(recipeId, String); check(recipeName, String); @@ -33,7 +33,7 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add recipes. Make sure you are logged in with valid user credentials.'); } - return await Recipes.updateAsync({ _id: recipeId }, { + return Recipes.update({ _id: recipeId }, { $set: { recipeName: recipeName, updatedOn: new Date(), @@ -41,13 +41,13 @@ Meteor.methods({ } }); }, - async 'delete.recipe' (recipeId) { + 'delete.recipe' (recipeId) { check(recipeId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete recipes. Make sure you are logged in with valid user credentials.'); } - return await Recipes.removeAsync({ _id: recipeId }); + return Recipes.remove({ _id: recipeId }); } }); \ No newline at end of file diff --git a/imports/api/shopList.js b/imports/api/shopList.js index 637e740..b013d50 100644 --- a/imports/api/shopList.js +++ b/imports/api/shopList.js @@ -12,19 +12,19 @@ ShopLists.allow({ }); Meteor.methods({ - async 'add.shopList' (shopName) { + 'add.shopList' (shopName) { check(shopName, Sring); if (!this.userId) { throw new Meteor.Error('You are not allowed to add shopping lists. Make sure you are logged in with valid user credentials.'); } - return await ShopLists.insert({ + return ShopLists.insert({ shopName: shopName, shopOwner: this.userId, }); }, - async 'edit.shopList' (shopId, shopName) { + 'edit.shopList' (shopId, shopName) { check(shopId, String); check(shopName, String); @@ -32,19 +32,19 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to edit shopping lists. Make sure you are logged in with valid user credentials.'); } - return await ShopLists.update({ _id: shopId }, { + return ShopLists.update({ _id: shopId }, { $set: { shopName: shopName, } }); }, - async 'delete.shopList' (shopId) { + 'delete.shopList' (shopId) { check(shopId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete shopping lists. Make sure you are logged in with valid user credentials.'); } - return await ShopLists.remove({ _id: shopId }); + return ShopLists.remove({ _id: shopId }); }, }); \ No newline at end of file diff --git a/imports/api/stores.js b/imports/api/stores.js index c97b381..4638595 100644 --- a/imports/api/stores.js +++ b/imports/api/stores.js @@ -12,19 +12,19 @@ Stores.allow({ }); Meteor.methods({ - async 'add.store' (storeName) { + 'add.store' (storeName) { check(storeName, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to add stores. Make sure you are logged in with valid user credentials.'); } - return await Stores.insertAsync({ + return Stores.insert({ storeName: storeName, owner: this.userId, }); }, - async 'edit.store' (storeId, storeName) { + 'edit.store' (storeId, storeName) { check(storeId, String); check(storeName, String); @@ -32,19 +32,19 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to edit stores. Make sure you are logged in with valid user credentials.'); } - return await Stores.updateAsync({ _id: storeId }, { + return Stores.update({ _id: storeId }, { $set: { storeName: storeName, } }); }, - async 'delete.store' (storeId) { + 'delete.store' (storeId) { check(storeId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete stores. Make sure you are logged in with valid user credentials.'); } - return await Stores.removeAsync({ _id: storeId }); + return Stores.remove({ _id: storeId }); }, }); \ No newline at end of file diff --git a/imports/api/systemConfig.js b/imports/api/systemConfig.js index 7126453..82108a8 100644 --- a/imports/api/systemConfig.js +++ b/imports/api/systemConfig.js @@ -12,7 +12,7 @@ SysConfig.allow({ }); Meteor.methods({ - async 'add.noSysAdminReg' (admReg, genReg) { + 'add.noSysAdminReg' (admReg, genReg) { check(admReg, Boolean); check(genReg, Boolean); @@ -20,39 +20,25 @@ Meteor.methods({ throw new Meteor.Error('Not able to change registration setting. Make sure you are logged in with valid system administrator credentials.'); } - const currConfig = async() => { - let curr = await SysConfig.findOneAsync({}); - if (!curr) { - try { - return await SysConfig.insertAsync({ - SysAdminReg: admReg, - dateAdded: new Date(), - allowReg: genReg, - }); - } catch(error) { - console.log(" ERROR trying to insert system config:"); - console.log(error.message); - console.log(error.stack); - } - } else { - try { - let configId = curr._id; - const addNoSys = await Meteor.callAsync('edit.noSysAdminReg', configId, admReg, genReg); - if (!addNoSys) { - // console.log(" Couldn't edit the system config."); + let curr = SysConfig.findOne({}); + if (typeof curr != 'undefined') { + let configId = curr._id; + Meteor.call('edit.noSysAdminReg', configId, admReg, genReg, function(err, result) { + if (err) { + console.log(" ERROR updating sys admin reg: " + err); } else { - // console.log("Success updating sys admin reg."); + console.log("Success updating sys admin reg."); } - } catch(error) { - console.log(" ERROR trying to pull current system config:"); - console.log(error.message); - console.log(error.stack); - } + }); + } else { + return SysConfig.insert({ + SysAdminReg: admReg, + dateAdded: new Date(), + allowReg: genReg, + }); } - } - currConfig(); }, - async 'edit.noSysAdminReg' (configId, canReg, genReg) { + 'edit.noSysAdminReg' (configId, canReg, genReg) { check(canReg, Boolean); check(configId, String); check(genReg, Boolean); @@ -61,7 +47,7 @@ Meteor.methods({ throw new Meteor.Error('Not able to change registration setting. Make sure you are logged in with valid system administrator credentials.'); } - return await SysConfig.updateAsync({ _id: configId }, { + return SysConfig.update({ _id: configId }, { $set: { SysAdminReg: canReg, allowReg: genReg, @@ -69,21 +55,4 @@ Meteor.methods({ } }); }, - async 'allow.updateInfo' (allowUpdate) { - check(allowUpdate, Boolean); - - if (!this.userId) { - throw new Meteor.Error('Not able to change system update notification settings. Make sure you are logged in with valid system administrator credentials.'); - } - - let curr = SysConfig.findOne({}); - - let configId = curr._id; - - return await SysConfig.updateAsync({ _id: configId }, { - $set: { - allowUpdates: allowUpdate, - } - }); - }, -}); +}); \ No newline at end of file diff --git a/imports/api/tasks.js b/imports/api/tasks.js index a3d5a83..7e581b1 100644 --- a/imports/api/tasks.js +++ b/imports/api/tasks.js @@ -13,7 +13,7 @@ TaskItems.allow({ }); Meteor.methods({ - async 'add.task' (taskNameArr, assignedTo, assignedToId, taskDateArr, actDate) { + 'add.task' (taskNameArr, assignedTo, assignedToId, taskDateArr, actDate) { check(taskNameArr, [Object]); check(assignedTo, String); check(taskDateArr, [String]); @@ -23,14 +23,24 @@ Meteor.methods({ if (!this.userId) { throw new Meteor.Error('You are not allowed to add tasks. Make sure you are logged in with valid user credentials.'); } - - for (let i=0; i < taskDateArr.length; i++) { - for (let j=0; j < taskNameArr.length; j++) { - await TaskItems.insertAsync({ + + let username; + + if (assignedTo == "self") { + let userInfo = Meteor.users.findOne({ _id: this.userId }); + username = userInfo.profile.fullname; + assignedToId = this.userId; + } else { + username = assignedTo; + } + + for (i=0; i < taskDateArr.length; i++) { + for (j=0; j < taskNameArr.length; j++) { + TaskItems.insert({ taskName: taskNameArr[j].id, taskDate: taskDateArr[i], actualDate: actDate[i], - assignedTo: assignedTo, + assignedTo: username, assignedToId: assignedToId, isComplete: false, completedOn: null, @@ -40,7 +50,7 @@ Meteor.methods({ } } }, - async 'add.myTask' (taskName, taskDate, actDate) { + 'add.mytask' (taskName, assignedTo, assignedToId, taskDate, actDate) { check(taskName, String); check(taskDate, String); check(actDate, Date); @@ -49,28 +59,29 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to add tasks. Make sure you are logged in with valid user credentials.'); } - let userInfo = await Meteor.users.findOneAsync({ _id: this.userId }); - if (!userInfo) { - // console.log("No matching user info found.") + let username; + + if (assignedTo == "self") { + let userInfo = Meteor.users.findOne({ _id: this.userId }); + username = userInfo.profile.fullname; + assignedToId = this.userId; } else { - try { - return await TaskItems.insertAsync({ - taskName: taskName, - taskDate: taskDate, - actualDate: actDate, - assignedTo: userInfo.profile.fullname, - assignedToId: this.userId, - isComplete: false, - completedOn: null, - assignedOn: new Date(), - assignedBy: this.userId, - }); - } catch(error) { - console.log(" ERROR adding tasksL " + error.message); - } + username = assignedTo; } + + return TaskItems.insert({ + taskName: taskName, + taskDate: taskDate, + actualDate: actDate, + assignedTo: username, + assignedToId: assignedToId, + isComplete: false, + completedOn: null, + assignedOn: new Date(), + assignedBy: this.userId, + }); }, - async 'edit.task' (taskId, taskName, assignedTo, taskDate) { + 'edit.task' (taskId, taskName, assignedTo, taskDate) { check(taskId, String); check(taskName, String); check(assignedTo, String); @@ -80,7 +91,7 @@ Meteor.methods({ throw new Meteor.Error('You are not allowed to edit tasks. Make sure you are logged in with valid user credentials.'); } - return await TaskItems.updateAsync({ _id: taskId }, { + return TaskItems.update({ _id: taskId }, { $set: { taskName: taskName, taskDate: taskDate, @@ -90,23 +101,23 @@ Meteor.methods({ } }); }, - async 'delete.task' (taskId) { + 'delete.task' (taskId) { check(taskId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to delete tasks. Make sure you are logged in with valid user credentials.'); } - return await TaskItems.removeAsync({ _id: taskId }); + return TaskItems.remove({ _id: taskId }); }, - async 'markTask.complete' (taskId) { + 'markTask.complete' (taskId) { check(taskId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to mark tasks complete. Make sure you are logged in with valid user credentials.'); } - return await TaskItems.updateAsync({ _id: taskId }, { + return TaskItems.update({ _id: taskId }, { $set: { isComplete: true, completedOn: new Date(), @@ -114,14 +125,14 @@ Meteor.methods({ } }); }, - async 'markTask.notComplete' (taskId) { + 'markTask.notComplete' (taskId) { check(taskId, String); if (!this.userId) { throw new Meteor.Error('You are not allowed to mark tasks not complete. Make sure you are logged in with valid user credentials.'); } - return await TaskItems.updateAsync({ _id: taskId }, { + return TaskItems.update({ _id: taskId }, { $set: { isComplete: false, markedUncomplteOn: new Date(), @@ -129,7 +140,7 @@ Meteor.methods({ } }); }, - async 'clean.Tasks' (timeFrame) { + 'clean.Tasks' (timeFrame) { check(timeFrame, String); if (!this.userId) { @@ -140,29 +151,29 @@ Meteor.methods({ let upToDate = ""; switch(timeFrame) { case "1-week": - // console.log("1 Week"); + console.log("1 Week"); upToDate = 7 * 24 * 60 * 60 * 1000; break; case "2-weeks": - // console.log("2 Week"); + console.log("2 Week"); upToDate = 14 * 24 * 60 * 60 * 1000; break; case '1-month': - // console.log("1 month"); + console.log("1 month"); upToDate = 30 * 24 * 60 * 60 * 1000; break; case '3-months': - // console.log("3 months"); + console.log("3 months"); upToDate = 90 * 24 * 60 * 60 * 1000; break; case 'all': - // console.log("all"); + console.log("all"); upToDate = 1 * 24 * 60 * 60 * 1000; break; default: break; } - return await TaskItems.removeAsync({ actualDate: { $lt: new Date((new Date()) - upToDate )}}); + return TaskItems.remove({ actualDate: { $lt: new Date((new Date()) - upToDate )}}); } }); \ No newline at end of file diff --git a/imports/api/updateInfo.js b/imports/api/updateInfo.js deleted file mode 100644 index 34f222b..0000000 --- a/imports/api/updateInfo.js +++ /dev/null @@ -1,38 +0,0 @@ -import { Meteor } from 'meteor/meteor'; -import { Mongo } from 'meteor/mongo'; -import { check } from 'meteor/check'; - -export const UpdateInfo = new Mongo.Collection('updateInfo'); - -UpdateInfo.allow({ - insert: function(userId, doc){ - // if use id exists, allow insert - return !!userId; - }, -}); - -Meteor.methods({ - async 'add.updateInfo' (updateObject) { - check(updateObject, Object); - - return await UpdateInfo.insertAsync({ - title: updateObject.title, - description: updateObject.description, - dateRelease: updateObject.date, - releaseLink: updateObject.link - }); - }, - async 'markUpdate.read' (updateId) { - check(updateId, String); - - if (!this.userId) { - throw new Meteor.Error('You are not allowed to mark updates as read. Make sure you are logged in with valid user credentials.'); - } - - return await UpdateInfo.updateAsync({ _id: updateId }, { - $set: { - viewed: true - } - }); - } -}); diff --git a/imports/api/userConfig.js b/imports/api/userConfig.js index ac6ab2e..354230a 100644 --- a/imports/api/userConfig.js +++ b/imports/api/userConfig.js @@ -9,38 +9,43 @@ UserConfig.allow({ // if use id exists, allow insert return !!userId; }, - update: function(userId, doc){ - // if use id exists, allow insert - return !!userId; - }, }); Meteor.methods({ - async 'add.darkModePref' (pref) { + 'add.darkModePref' (pref) { check(pref, String); if (!this.userId) { - throw new Meteor.Error('Not able to change theme setting. Make sure you are logged in with valid system administrator credentials.'); + throw new Meteor.Error('Not able to change registration setting. Make sure you are logged in with valid system administrator credentials.'); } - return await UserConfig.insertAsync({ + return UserConfig.insert({ user: this.userId, darkMode: pref, dateAdded: Date() }); }, - async 'update.darkModePref' (pref) { + 'update.darkModePref' (pref) { check(pref, String); if (!this.userId) { - throw new Meteor.Error('Not able to change theme setting. Make sure you are logged in with valid system administrator credentials.'); + throw new Meteor.Error('Not able to change registration setting. Make sure you are logged in with valid system administrator credentials.'); } - return await UserConfig.updateAsync({ user: this.userId }, { - $set: { - darkMode: pref, - dateUpdate: Date() - } - }); + let myConfig = UserConfig.findOne({ user: this.userId }); + if (typeof myConfig == 'undefined') { + Meteor.call('add.darkModePref', pref, function(err, result) { + if (err) { + console.log(" ERROR calling the add functioin for dark mode: " + err); + } + }); + } else { + return UserConfig.update({ user: this.userId }, { + $set: { + darkMode: pref, + dateUpdate: Date() + } + }); + } } }); \ No newline at end of file diff --git a/imports/api/userConfigOptions.js b/imports/api/userConfigOptions.js index 09c9207..d7b59c3 100644 --- a/imports/api/userConfigOptions.js +++ b/imports/api/userConfigOptions.js @@ -12,10 +12,10 @@ UserConfigOptions.allow({ }); Meteor.methods({ - async 'change.userPass' (usersId, password) { + 'change.userPass' (usersId, password) { check(usersId, String); check(password, String); - return await Accounts.setPasswordAsync(usersId, password); + return Accounts.setPassword(usersId, password); }, }); \ No newline at end of file diff --git a/imports/api/userLast.js b/imports/api/userLast.js index a370e2f..93c12a9 100644 --- a/imports/api/userLast.js +++ b/imports/api/userLast.js @@ -12,7 +12,7 @@ UserLast.allow({ }); Meteor.methods({ - async 'add.userLast' (view, viewId) { + 'add.userLast' (view, viewId) { check(view, String); check(viewId, String); @@ -22,33 +22,24 @@ Meteor.methods({ // first let's find out if there's an entry for this user and view, and if so // we'll just edit that entry with updated information - let userListInfo = await UserLast.findOneAsync({ userId: this.userId, view: view }); - if (!userListInfo) { - // console.log("Adding new user last item."); - return await UserLast.insertAsync({ + let userListInfo = UserLast.findOne({ userId: this.userId, view: view }); + if (typeof userListInfo != 'undefined' && userListInfo != "" && userListInfo != null) { + // entry exists, call the edit function instead + Meteor.call('edit.userLast', view, viewId, function(err, result) { + if (err) { + console.log(" ERROR moving user to edit for last view: " + err); + } + }); + } else { + return UserLast.insert({ userId: this.userId, view: view, viewId: viewId, dateAdded: Date(), }); - } else { - // console.log("Editing existing user last itme."); - // entry exists, call the edit function instead - let result = await Meteor.callAsync('edit.userLast', view, viewId); - if (!result) { - try { - // console.log("Issue editing existing entry in userLast. Check the logs."); - } catch(error) { - console.log(" ERROR adding userLast item: " + error); - console.log(error.message); - console.log(error.stack); - } - } else { - return true; - } } }, - async 'edit.userLast' (view, viewId) { + 'edit.userLast' (view, viewId) { check(view, String); check(viewId, String); @@ -56,8 +47,7 @@ Meteor.methods({ throw new Meteor.Error('Not able to change user view last setting. Make sure you are logged in with valid system administrator credentials.'); } - // console.log("Edit in progress."); - return await UserLast.updateAsync({ view: view, userId: this.userId }, { + return UserLast.update({ view: view, userId: this.userId }, { $set: { viewId: viewId, dateLastUpdate: Date(), diff --git a/lib/routes.js b/lib/routes.js index 0a4df86..6071936 100644 --- a/lib/routes.js +++ b/lib/routes.js @@ -1,134 +1,132 @@ -import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; - FlowRouter.route('/dashboard', { name: 'home', action() { - this.render('MainLayout', { main: "dashboard" }); + BlazeLayout.render('MainLayout', { main: "dashboard" }); } }); FlowRouter.route('/', { name: 'homeNoRoute', action() { - this.render('MainLayout', { main: "dashboard" }); + BlazeLayout.render('MainLayout', { main: "dashboard" }); } }); FlowRouter.route('/', { name: 'homeNotLoggedIn', action() { - this.render('MainLayout', { notLoggedIn: "login" }); + BlazeLayout.render('MainLayout', { notLoggedIn: "login" }); } }); FlowRouter.route('/login', { name: 'login', action() { - this.render('MainLayout', { notLoggedIn: "login" }); + BlazeLayout.render('MainLayout', { notLoggedIn: "login" }); } }); FlowRouter.route('/reg', { name: 'reg', action() { - this.render('MainLayout', { notLoggedIn: "reg" }); + BlazeLayout.render('MainLayout', { notLoggedIn: "reg" }); } }); FlowRouter.route('/userMgmt', { name: 'userMgmt', action() { - this.render('MainLayout', { main: 'userMgmt' }); + BlazeLayout.render('MainLayout', { main: 'userMgmt' }); } }); FlowRouter.route('/manageStore', { name: 'storeMgmt', action() { - this.render('MainLayout', { main: 'storeMgmt' }); + BlazeLayout.render('MainLayout', { main: 'storeMgmt' }); } }); FlowRouter.route('/manage', { name: 'mgmtPage', action() { - this.render('MainLayout', { main: 'mgmtPage' }); + BlazeLayout.render('MainLayout', { main: 'mgmtPage' }); } }); FlowRouter.route('/manageProduct', { name: 'manageProduct', action() { - this.render('MainLayout', { main: 'prodMgmt' }); + BlazeLayout.render('MainLayout', { main: 'prodMgmt' }); } }); FlowRouter.route('/manageLists', { name: 'manageLists', action() { - this.render('MainLayout', { main: 'listMgmt' }); + BlazeLayout.render('MainLayout', { main: 'listMgmt' }); } }); FlowRouter.route('/mylists', { name: 'mylists', action() { - this.render('MainLayout', { main: 'listsMain' }); + BlazeLayout.render('MainLayout', { main: 'listsMain' }); } }); FlowRouter.route('/listItems', { name: 'listItems', action() { - this.render('MainLayout', { main: 'listItemsMain' }); + BlazeLayout.render('MainLayout', { main: 'listItemsMain' }); } }); FlowRouter.route('/mymenus', { name: 'mymenus', action() { - this.render('MainLayout', { main: 'mainMenu' }); + BlazeLayout.render('MainLayout', { main: 'mainMenu' }); } }); FlowRouter.route('/menuItems', { name: 'menuItems', action() { - this.render('MainLayout', { main: 'menuItems' }); + BlazeLayout.render('MainLayout', { main: 'menuItems' }); } }); FlowRouter.route('/taskHome', { name: 'taskHome', action() { - this.render('MainLayout', { main: 'taskHome' }); + BlazeLayout.render('MainLayout', { main: 'taskHome' }); } }); FlowRouter.route('/myTasks', { name: 'myTasks', action() { - this.render('MainLayout', { main: 'myTasks' }); + BlazeLayout.render('MainLayout', { main: 'myTasks' }); } }); FlowRouter.route('/systemAdmin', { name: 'systemAdmin', action() { - this.render('MainLayout', { main: 'systemAdmin' }); + BlazeLayout.render('MainLayout', { main: 'systemAdmin' }); } }); FlowRouter.route('/cleanUp', { name: 'cleanUp', action() { - this.render('MainLayout', { main: 'cleanUp'}); + BlazeLayout.render('MainLayout', { main: 'cleanUp'}); } }); FlowRouter.route('/mySettings', { name: 'mySettings', action() { - this.render('MainLayout', { main: 'userConfig'}); + BlazeLayout.render('MainLayout', { main: 'userConfig'}); } }); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index a78ea76..597c896 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,1621 +1,812 @@ { - "name": "get-my", - "lockfileVersion": 3, + "name": "pPickup", "requires": true, - "packages": { - "": { - "name": "get-my", - "dependencies": { - "@babel/runtime": "^7.15.3", - "jquery": "^3.6.0", - "meteor-node-stubs": "^1.2.5", - "moment": "^2.29.4", - "node-cron": "^3.0.3", - "rss-url-parser": "^3.0.0", - "typeahead-standalone": "^5.2.0" + "lockfileVersion": 1, + "dependencies": { + "@babel/runtime": { + "version": "7.15.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz", + "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==", + "requires": { + "regenerator-runtime": "^0.13.4" } }, - "node_modules/@babel/runtime": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", - "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } + "jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" }, - "node_modules/addressparser": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", - "integrity": "sha512-aQX7AISOMM7HFE0iZ3+YnD07oIeJqWGVnJ+ZIKaBZAk03ftmVYVqsGas/rbXKR21n4D/hKCSHypvcyOkds/xzg==", - "license": "MIT" - }, - "node_modules/array-indexofobject": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/array-indexofobject/-/array-indexofobject-0.0.1.tgz", - "integrity": "sha512-tpdPBIBm4TMNxSp8O3pZgC7mF4+wn9SmJlhE+7bi5so6x39PvzUqChQMbv93R5ilYGZ1HV+Neki4IH/i+87AoQ==", - "license": "MIT" - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "license": "MIT" - }, - "node_modules/feedparser": { - "version": "2.2.10", - "resolved": "https://registry.npmjs.org/feedparser/-/feedparser-2.2.10.tgz", - "integrity": "sha512-WoAOooa61V8/xuKMi2pEtK86qQ3ZH/M72EEGdqlOTxxb3m6ve1NPvZcmPFs3wEDfcBbFLId2GqZ4YjsYi+h1xA==", - "license": "MIT", - "dependencies": { - "addressparser": "^1.0.1", - "array-indexofobject": "~0.0.1", - "lodash.assign": "^4.2.0", - "lodash.get": "^4.4.2", - "lodash.has": "^4.5.2", - "lodash.uniq": "^4.5.0", - "mri": "^1.1.5", - "readable-stream": "^2.3.7", - "sax": "^1.2.4" - }, - "bin": { - "feedparser": "bin/feedparser.js" - }, - "engines": { - "node": ">= 10.18.1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/jquery": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", - "license": "MIT" - }, - "node_modules/lodash.assign": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha512-hFuH8TY+Yji7Eja3mGiuAxBqLagejScbG8GbG0j6o9vzn0YL14My+ktnqtZgFTosKymC9/44wP6s7xyuLfnClw==", - "license": "MIT" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.", - "license": "MIT" - }, - "node_modules/lodash.has": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", - "integrity": "sha512-rnYUdIo6xRCJnQmbVFEwcxF144erlD+M3YcJUVesflU9paQaE8p+fJDcIQrlMYbxoANFL+AB9hZrzSBBk5PL+g==", - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "license": "MIT" - }, - "node_modules/meteor-node-stubs": { - "version": "1.2.24", - "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.24.tgz", - "integrity": "sha512-tw9QzDFVOI5A5CcEw4tTD6CjF+Lk14uzhy2gWH5ImoH4mx4pyPVcha9MmyVur+rEVgpzk+aMG6rs3RxAF9SwiA==", - "bundleDependencies": [ - "@meteorjs/crypto-browserify", - "assert", - "browserify-zlib", - "buffer", - "console-browserify", - "constants-browserify", - "domain-browser", - "events", - "https-browserify", - "os-browserify", - "path-browserify", - "process", - "punycode", - "querystring-es3", - "readable-stream", - "stream-browserify", - "stream-http", - "string_decoder", - "timers-browserify", - "tty-browserify", - "url", - "util", - "vm-browserify" - ], - "license": "MIT", - "dependencies": { - "@meteorjs/crypto-browserify": "^3.12.1", - "assert": "^2.1.0", + "meteor-node-stubs": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.2.5.tgz", + "integrity": "sha512-FLlOFZx3KnZ5s3yPCK+x58DyX9ewN+oQ12LcpwBXMLtzJ/YyprMQVivd6KIrahZbKJrNenPNUGuDS37WUFg+Mw==", + "requires": { + "assert": "^2.0.0", "browserify-zlib": "^0.2.0", "buffer": "^5.7.1", "console-browserify": "^1.2.0", "constants-browserify": "^1.0.0", - "domain-browser": "^4.23.0", + "crypto-browserify": "^3.12.0", + "domain-browser": "^4.22.0", + "elliptic": "^6.5.4", "events": "^3.3.0", "https-browserify": "^1.0.0", "os-browserify": "^0.3.0", - "path-browserify": "^1.0.1", + "path-browserify": "^1.0.0", "process": "^0.11.10", "punycode": "^1.4.1", "querystring-es3": "^0.2.1", - "readable-stream": "^3.6.2", - "sha.js": "^2.4.12", + "readable-stream": "^3.6.0", "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", "string_decoder": "^1.3.0", "timers-browserify": "^2.0.12", "tty-browserify": "0.0.1", - "url": "^0.11.4", - "util": "^0.12.5", + "url": "^0.11.0", + "util": "^0.12.4", "vm-browserify": "^1.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/browserify-sign": { - "version": "4.2.6", - "inBundle": true, - "license": "ISC", - "dependencies": { - "bn.js": "^5.2.1", - "brorand": "^1.1.0", - "browserify-rsa": "^4.1.0", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash-base": "~3.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1", - "parse-asn1": "^5.1.7", - "readable-stream": "^2.3.8", - "safe-buffer": "^5.2.1" }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/browserify-sign/node_modules/isarray": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/browserify-sign/node_modules/readable-stream": { - "version": "2.3.8", - "inBundle": true, - "license": "MIT", "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/browserify-sign/node_modules/string_decoder": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.1.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/create-ecdh": { - "version": "4.0.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/create-ecdh/node_modules/bn.js": { - "version": "4.12.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/@meteorjs/crypto-browserify": { - "version": "3.12.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "@meteorjs/browserify-sign": "^4.2.3", - "@meteorjs/create-ecdh": "^4.0.4", - "browserify-cipher": "^1.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "diffie-hellman": "^5.0.3", - "hash-base": "~3.0.4", - "inherits": "^2.0.4", - "pbkdf2": "^3.1.2", - "public-encrypt": "^4.0.3", - "randombytes": "^2.1.0", - "randomfill": "^1.0.4" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/asn1.js": { - "version": "4.10.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/assert": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2", - "is-nan": "^1.3.2", - "object-is": "^1.1.5", - "object.assign": "^4.1.4", - "util": "^0.12.5" - } - }, - "node_modules/meteor-node-stubs/node_modules/available-typed-arrays": { - "version": "1.0.7", - "inBundle": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "asn1.js": { + "version": "5.4.1", + "bundled": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "assert": { + "version": "2.0.0", + "bundled": true, + "requires": { + "es6-object-assign": "^1.1.0", + "is-nan": "^1.2.1", + "object-is": "^1.0.1", + "util": "^0.12.0" + } }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/bn.js": { - "version": "5.2.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/brorand": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/browserify-aes": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-cipher": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-des": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-rsa": { - "version": "4.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^5.2.1", - "randombytes": "^2.1.0", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/meteor-node-stubs/node_modules/browserify-zlib": { - "version": "0.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/meteor-node-stubs/node_modules/buffer": { - "version": "5.7.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "available-typed-arrays": { + "version": "1.0.4", + "bundled": true }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "base64-js": { + "version": "1.5.1", + "bundled": true }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT", - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/meteor-node-stubs/node_modules/buffer-xor": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/builtin-status-codes": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/call-bind": { - "version": "1.0.8", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/call-bound": { - "version": "1.0.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/cipher-base": { - "version": "1.0.6", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/meteor-node-stubs/node_modules/console-browserify": { - "version": "1.2.0", - "inBundle": true - }, - "node_modules/meteor-node-stubs/node_modules/constants-browserify": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/core-util-is": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/create-hash": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/create-hmac": { - "version": "1.1.7", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/meteor-node-stubs/node_modules/define-data-property": { - "version": "1.1.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/define-properties": { - "version": "1.2.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/des.js": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/diffie-hellman": { - "version": "5.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/domain-browser": { - "version": "4.23.0", - "inBundle": true, - "license": "Artistic-2.0", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://bevry.me/fund" - } - }, - "node_modules/meteor-node-stubs/node_modules/dunder-proto": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/es-define-property": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/es-errors": { - "version": "1.3.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/es-object-atoms": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/events": { - "version": "3.3.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/meteor-node-stubs/node_modules/evp_bytestokey": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/for-each": { - "version": "0.3.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/function-bind": { - "version": "1.1.2", - "inBundle": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/get-intrinsic": { - "version": "1.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/get-proto": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/gopd": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-property-descriptors": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-symbols": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/has-tostringtag": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/hash-base": { - "version": "3.0.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/meteor-node-stubs/node_modules/hash.js": { - "version": "1.1.7", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/hasown": { - "version": "2.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/hmac-drbg": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/https-browserify": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/ieee754": { - "version": "1.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "bn.js": { + "version": "5.2.0", + "bundled": true }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "brorand": { + "version": "1.1.0", + "bundled": true }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "BSD-3-Clause" - }, - "node_modules/meteor-node-stubs/node_modules/inherits": { - "version": "2.0.4", - "inBundle": true, - "license": "ISC" - }, - "node_modules/meteor-node-stubs/node_modules/is-arguments": { - "version": "1.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-callable": { - "version": "1.2.7", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-generator-function": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-nan": { - "version": "1.3.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-regex": { - "version": "1.2.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/is-typed-array": { - "version": "1.1.15", - "inBundle": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/isarray": { - "version": "2.0.5", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/math-intrinsics": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/md5.js": { - "version": "1.3.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/miller-rabin": { - "version": "4.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/meteor-node-stubs/node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/minimalistic-assert": { - "version": "1.0.1", - "inBundle": true, - "license": "ISC" - }, - "node_modules/meteor-node-stubs/node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/object-inspect": { - "version": "1.13.4", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/object-is": { - "version": "1.1.6", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/object-keys": { - "version": "1.1.1", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/object.assign": { - "version": "4.1.7", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/os-browserify": { - "version": "0.3.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/pako": { - "version": "1.0.11", - "inBundle": true, - "license": "(MIT AND Zlib)" - }, - "node_modules/meteor-node-stubs/node_modules/parse-asn1": { - "version": "5.1.7", - "inBundle": true, - "license": "ISC", - "dependencies": { - "asn1.js": "^4.10.1", - "browserify-aes": "^1.2.0", - "evp_bytestokey": "^1.0.3", - "hash-base": "~3.0", - "pbkdf2": "^3.1.2", - "safe-buffer": "^5.2.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/meteor-node-stubs/node_modules/path-browserify": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/pbkdf2": { - "version": "3.1.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "create-hash": "~1.1.3", - "create-hmac": "^1.1.7", - "ripemd160": "=2.0.1", - "safe-buffer": "^5.2.1", - "sha.js": "^2.4.11", - "to-buffer": "^1.2.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/meteor-node-stubs/node_modules/pbkdf2/node_modules/create-hash": { - "version": "1.1.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "sha.js": "^2.4.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/pbkdf2/node_modules/hash-base": { - "version": "2.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/pbkdf2/node_modules/ripemd160": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "hash-base": "^2.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/possible-typed-array-names": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/process": { - "version": "0.11.10", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/process-nextick-args": { - "version": "2.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/public-encrypt": { - "version": "4.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/punycode": { - "version": "1.4.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/qs": { - "version": "6.14.0", - "inBundle": true, - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/querystring-es3": { - "version": "0.2.1", - "inBundle": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/meteor-node-stubs/node_modules/randombytes": { - "version": "2.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/randomfill": { - "version": "1.0.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/readable-stream": { - "version": "3.6.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/meteor-node-stubs/node_modules/ripemd160": { - "version": "2.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/meteor-node-stubs/node_modules/safe-buffer": { - "version": "5.2.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" + "browserify-aes": { + "version": "1.2.0", + "bundled": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" + "browserify-cipher": { + "version": "1.0.1", + "bundled": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/safe-regex-test": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/set-function-length": { - "version": "1.2.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/setimmediate": { - "version": "1.0.5", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/sha.js": { - "version": "2.4.12", - "inBundle": true, - "license": "(MIT AND BSD-3-Clause)", - "dependencies": { - "inherits": "^2.0.4", - "safe-buffer": "^5.2.1", - "to-buffer": "^1.2.0" - }, - "bin": { - "sha.js": "bin.js" - }, - "engines": { - "node": ">= 0.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/side-channel": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/side-channel-list": { - "version": "1.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/side-channel-map": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/side-channel-weakmap": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/stream-browserify": { - "version": "3.0.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/stream-http": { - "version": "3.2.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "xtend": "^4.0.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/string_decoder": { - "version": "1.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/timers-browserify": { - "version": "2.0.12", - "inBundle": true, - "license": "MIT", - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/meteor-node-stubs/node_modules/to-buffer": { - "version": "1.2.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "isarray": "^2.0.5", - "safe-buffer": "^5.2.1", - "typed-array-buffer": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/tty-browserify": { - "version": "0.0.1", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/typed-array-buffer": { - "version": "1.0.3", - "inBundle": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/url": { - "version": "0.11.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "punycode": "^1.4.1", - "qs": "^6.12.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/meteor-node-stubs/node_modules/util": { - "version": "0.12.5", - "inBundle": true, - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/meteor-node-stubs/node_modules/util-deprecate": { - "version": "1.0.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/vm-browserify": { - "version": "1.1.2", - "inBundle": true, - "license": "MIT" - }, - "node_modules/meteor-node-stubs/node_modules/which-typed-array": { - "version": "1.1.19", - "inBundle": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.4", - "for-each": "^0.3.5", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/meteor-node-stubs/node_modules/xtend": { - "version": "4.0.2", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/mri": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", - "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/node-cron": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-3.0.3.tgz", - "integrity": "sha512-dOal67//nohNgYWb+nWmg5dkFdIwDm8EpeGYMekPMrngV3637lqnX0lbUcCtgibHTz6SEz7DAIjKvKDFYCnO1A==", - "license": "ISC", - "dependencies": { - "uuid": "8.3.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/node-fetch": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", - "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", - "license": "MIT", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true + "browserify-des": { + "version": "1.0.2", + "bundled": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "bundled": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "bundled": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "bundled": true, + "requires": { + "pako": "~1.0.5" + } + }, + "buffer": { + "version": "5.7.1", + "bundled": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-xor": { + "version": "1.0.3", + "bundled": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "bundled": true + }, + "call-bind": { + "version": "1.0.2", + "bundled": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "cipher-base": { + "version": "1.0.4", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "console-browserify": { + "version": "1.2.0", + "bundled": true + }, + "constants-browserify": { + "version": "1.0.0", + "bundled": true + }, + "create-ecdh": { + "version": "4.0.4", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "bundled": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "bundled": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "bundled": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "define-properties": { + "version": "1.1.3", + "bundled": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "des.js": { + "version": "1.0.1", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diffie-hellman": { + "version": "5.0.3", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "domain-browser": { + "version": "4.22.0", + "bundled": true + }, + "elliptic": { + "version": "6.5.4", + "bundled": true, + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "es-abstract": { + "version": "1.18.3", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "bundled": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es6-object-assign": { + "version": "1.1.0", + "bundled": true + }, + "events": { + "version": "3.3.0", + "bundled": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "bundled": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "foreach": { + "version": "2.0.5", + "bundled": true + }, + "function-bind": { + "version": "1.1.1", + "bundled": true + }, + "get-intrinsic": { + "version": "1.1.1", + "bundled": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "has": { + "version": "1.0.3", + "bundled": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "bundled": true + }, + "has-symbols": { + "version": "1.0.2", + "bundled": true + }, + "hash-base": { + "version": "3.1.0", + "bundled": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "bundled": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "https-browserify": { + "version": "1.0.0", + "bundled": true + }, + "ieee754": { + "version": "1.2.1", + "bundled": true + }, + "inherits": { + "version": "2.0.4", + "bundled": true + }, + "is-arguments": { + "version": "1.1.0", + "bundled": true, + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-bigint": { + "version": "1.0.2", + "bundled": true + }, + "is-boolean-object": { + "version": "1.1.1", + "bundled": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-callable": { + "version": "1.2.3", + "bundled": true + }, + "is-date-object": { + "version": "1.0.4", + "bundled": true + }, + "is-generator-function": { + "version": "1.0.9", + "bundled": true + }, + "is-nan": { + "version": "1.3.2", + "bundled": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "bundled": true + }, + "is-number-object": { + "version": "1.0.5", + "bundled": true + }, + "is-regex": { + "version": "1.1.3", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.6", + "bundled": true + }, + "is-symbol": { + "version": "1.0.4", + "bundled": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.5", + "bundled": true, + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.2", + "es-abstract": "^1.18.0-next.2", + "foreach": "^2.0.5", + "has-symbols": "^1.0.1" + } + }, + "md5.js": { + "version": "1.3.5", + "bundled": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "bundled": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "bundled": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "bundled": true + }, + "object-inspect": { + "version": "1.10.3", + "bundled": true + }, + "object-is": { + "version": "1.1.5", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "bundled": true + }, + "object.assign": { + "version": "4.1.2", + "bundled": true, + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "os-browserify": { + "version": "0.3.0", + "bundled": true + }, + "pako": { + "version": "1.0.11", + "bundled": true + }, + "parse-asn1": { + "version": "5.1.6", + "bundled": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "path-browserify": { + "version": "1.0.1", + "bundled": true + }, + "pbkdf2": { + "version": "3.1.2", + "bundled": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "process": { + "version": "0.11.10", + "bundled": true + }, + "public-encrypt": { + "version": "4.0.3", + "bundled": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "bundled": true + } + } + }, + "punycode": { + "version": "1.4.1", + "bundled": true + }, + "querystring": { + "version": "0.2.0", + "bundled": true + }, + "querystring-es3": { + "version": "0.2.1", + "bundled": true + }, + "randombytes": { + "version": "2.1.0", + "bundled": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "bundled": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "ripemd160": { + "version": "2.0.2", + "bundled": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "bundled": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true + }, + "setimmediate": { + "version": "1.0.5", + "bundled": true + }, + "sha.js": { + "version": "2.4.11", + "bundled": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "stream-browserify": { + "version": "3.0.0", + "bundled": true, + "requires": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "stream-http": { + "version": "3.2.0", + "bundled": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "bundled": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string_decoder": { + "version": "1.3.0", + "bundled": true, + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "timers-browserify": { + "version": "2.0.12", + "bundled": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tty-browserify": { + "version": "0.0.1", + "bundled": true + }, + "unbox-primitive": { + "version": "1.0.1", + "bundled": true, + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "url": { + "version": "0.11.0", + "bundled": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "bundled": true + } + } + }, + "util": { + "version": "0.12.4", + "bundled": true, + "requires": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "safe-buffer": "^5.1.2", + "which-typed-array": "^1.1.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true + }, + "vm-browserify": { + "version": "1.1.2", + "bundled": true + }, + "which-boxed-primitive": { + "version": "1.0.2", + "bundled": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.4", + "bundled": true, + "requires": { + "available-typed-arrays": "^1.0.2", + "call-bind": "^1.0.0", + "es-abstract": "^1.18.0-next.1", + "foreach": "^2.0.5", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.1", + "is-typed-array": "^1.1.3" + } + }, + "xtend": { + "version": "4.0.2", + "bundled": true } } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "license": "MIT" + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" }, - "node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, - "node_modules/rss-url-parser": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rss-url-parser/-/rss-url-parser-3.0.0.tgz", - "integrity": "sha512-x39bDQDe1BwpiVwPrjg52ILbTMZc5h7oDPE7FRLa/sgYar7BrNRBTU/msxgokacPZN1rawXmK1rtBU5N7Gsn4A==", - "license": "MIT", - "dependencies": { - "feedparser": "^2.2.10", - "node-fetch": "^2.6.7" - }, - "engines": { - "node": "^16 || ^18 || ^20", - "npm": "9.x.x" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/sax": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", - "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", - "license": "ISC" - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/typeahead-standalone": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/typeahead-standalone/-/typeahead-standalone-5.4.0.tgz", - "integrity": "sha512-aKm/POm1SXb9kPBCZLne+evPOrZtVPtZ8K63EsPhKda77Ax+CaZpxnc+Ahr5Ba4T6BdKMdCiGxBUePF2Sw1Fpw==", - "license": "MIT" - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "license": "MIT" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "typeahead-standalone": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/typeahead-standalone/-/typeahead-standalone-5.2.0.tgz", + "integrity": "sha512-9GTbCO7XhwimgolmxzuPklftoIa2NEGXBI30n9f5kQZOptvTeJ9ublhNYy4W00RN1D5gSHM5n4dI5vOojr51hg==" } } } diff --git a/package.json b/package.json index 1e134b9..3e3c382 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "get-my", + "name": "pPickup", "private": true, "scripts": { "start": "meteor run", @@ -12,8 +12,6 @@ "jquery": "^3.6.0", "meteor-node-stubs": "^1.2.5", "moment": "^2.29.4", - "node-cron": "^3.0.3", - "rss-url-parser": "^3.0.0", "typeahead-standalone": "^5.2.0" } } diff --git a/server/main.js b/server/main.js index 05920f8..c82781f 100644 --- a/server/main.js +++ b/server/main.js @@ -1,239 +1,146 @@ -// this file has been converted for meteor 3 and later - import { Meteor } from 'meteor/meteor'; import { SysConfig } from '../imports/api/systemConfig'; import { MenuItems } from '../imports/api/menuItems'; import { Products } from '../imports/api/products.js'; import { Menus } from '../imports/api/menu.js'; import { MScripts } from '../imports/api/mScripts.js'; -import { UpdateInfo } from '../imports/api/updateInfo.js'; -import { Roles } from 'meteor/roles'; -Meteor.startup(async() => { +Meteor.startup(() => { // code to run on server at startup - Roles.createRoleAsync("user", {unlessExists: true}); - Roles.createRoleAsync("admin", {unlessExists: true}); - Roles.createRoleAsync("systemadmin", {unlessExists: true}); + Roles.createRole("user", {unlessExists: true}); + Roles.createRole("admin", {unlessExists: true}); + Roles.createRole("systemadmin", {unlessExists: true}); // set the systemconfig defaults for registration // check if this has already been run - let regPolRun = await MScripts.findOneAsync({ scriptName: "DefaultRegPolicy", scriptRun: true }); - if (!regPolRun) { - try { - let regPolicy = await SysConfig.findOneAsync({}); - if (!regPolicy) { - SysConfig.insertAsync({ - SysAdminReg: false, - dateAdded: new Date(), - allowReg: true, - allowUpdates: true, - }); - markScriptRun("DefaultRegPolicy"); - } else { - // console.log("Registration policy already set."); - markScriptRun("DefaultRegPolicy"); - } - } catch(error) { - console.log(" ERROR trying to check if registration policy was set."); - console.log(error.message); - console.log(error.stack); - } + let regPolRun = MScripts.findOne({ scriptName: "DefaultRegPolicy", scriptRun: true }); + if (typeof regPolRun == "undefined" || regPolRun == null || regPolRun == "") { + let regPolicy = SysConfig.findOne({}); + if (typeof regPolicy == 'undefined') { + return SysConfig.insert({ + SysAdminReg: false, + dateAdded: new Date(), + allowReg: true, + }); + } else { + // console.log("Registration policy already set."); + markScriptRun("DefaultRegPolicy"); + } } - + + // check if the isLInked item exists on menuitems, and if not, add it (data cleanup task) // see if already updated - let linkUpdateRun = await MScripts.findOneAsync({ scriptName: "updateMenuItemLinks", scriptRun: true }); - try { - if (!linkUpdateRun) { - let itemInfoNoLink = MenuItems.find({ isLinked: { $exists: false } }).fetch(); - // console.log("No Ites with isLinked not set: " + itemInfoNoLink.length); - if (itemInfoNoLink.length > 0) { - // console.log("Found items with isLinked not set. Updating..."); - // console.dir(itemInfoNoLink); - let infoLength = itemInfoNoLink.length; - for (i=0; i < infoLength; i++) { - MenuItems.updateAsync({ _id: itemInfoNoLink[i]._id }, { - $set: { - isLinked: false, - } - }); - if (i == (infoLength -1)) { - markScriptRun("updateMenuItemLinks"); + let linkUpdateRun = MScripts.findOne({ scriptName: "updateMenuItemLinks", scriptRun: true }); + if (typeof linkUpdateRun == 'undefined' || linkUpdateRun == null || linkUpdateRun == "") { + let itemInfoNoLink = MenuItems.find({ isLinked: { $exists: false } }).fetch(); + // console.log("No Ites with isLinked not set: " + itemInfoNoLink.length); + if (itemInfoNoLink.length > 0) { + // console.log("found items with isLinked not set."); + // console.dir(itemInfoNoLink); + let infoLength = itemInfoNoLink.length; + for (i=0; i < infoLength; i++) { + MenuItems.update({ _id: itemInfoNoLink[i]._id }, { + $set: { + isLinked: false, } + }); + if (i == (infoLength -1)) { + markScriptRun("updateMenuItemLinks"); } - } else { - // this will show if all items are found to have isLInked set. - // console.log("No items with isLinked not set."); - markScriptRun("updateMenuItemLinks"); } + } else { + // this will show if all items are found to have isLInked set. + // console.log("No items with isLinked not set."); + markScriptRun("updateMenuItemLinks"); } - } catch(error) { - console.log(" ERROR running check for isLinked items."); - console.log(error.message); - console.log(error.stack); } + // update Products to be able to have multiple stores in the document // check if update already run - let prodStoreArrayRun = await MScripts.findOneAsync({ scriptName: "changeProdStoreToArray", scriptRun: true }); + let prodStoreArrayRun = MScripts.findOne({ scriptName: "changeProdStoreToArray", scriptRun: true }); if (!prodStoreArrayRun) { - try { - let prodInfo = Products.find({}).fetch(); - let prodCount = prodInfo.length; - // console.log("Updating Products to allow multiple store assocation for " + prodCount + " products."); - for (let j = 0; j < prodCount; j++) { - if (typeof prodInfo[j].prodStore == 'object') { - // console.log(typeof prodInfo[j].prodStore); - // console.log("Is Array already"); - } else { - let prodStoreArray = []; - // console.log("---- ---- ----"); - // console.log(typeof prodInfo[j].prodStore); - // console.log("---- Is Not Array."); - let prodStore = prodInfo[j].prodStore; + let prodInfo = Products.find({}).fetch(); + let prodCount = prodInfo.length; + console.log("Updating Products to allow multiple store assocation for " + prodCount + " products."); + for (j = 0; j < prodCount; j++) { + if (typeof prodInfo[j].prodStore == 'object') { + // console.log(typeof prodInfo[j].prodStore); + // console.log("Is Array already"); + } else { + let prodStoreArray = []; + // console.log("---- ---- ----"); + // console.log(typeof prodInfo[j].prodStore); + // console.log("---- Is Not Array."); + let prodStore = prodInfo[j].prodStore; - prodStoreArray.push(prodStore); - // console.dir(prodStoreArray); - Products.update({ _id: prodInfo[j]._id }, { - $set: { - prodStore: prodStoreArray, - } - }); - } - if (j == (prodCount -1)) { - markScriptRun("changeProdStoreToArray"); - } + prodStoreArray.push(prodStore); + // console.dir(prodStoreArray); + Products.update({ _id: prodInfo[j]._id }, { + $set: { + prodStore: prodStoreArray, + } + }); } - } catch(error) { - console.log("Script to update product stores couldn't run."); - console.log(error.message); - console.log(error.stack); - } + if (j == (prodCount -1)) { + markScriptRun("changeProdStoreToArray"); + } + } } // update menu items to new format so they get the linked products // check if this update has run - let menuItemUpdRun = await MScripts.findOneAsync({ scriptName: "updateMenuProdLinks", scriptRun: true }); + let menuItemUpdRun = MScripts.findOne({ scriptName: "updateMenuProdLinks", scriptRun: true }); if (!menuItemUpdRun) { - try { - let openMenus = Menus.find({ menuComplete: false }).fetch(); - let openMenuCount = openMenus.length; - // console.log("Open Menu count is: " + openMenuCount); - for (let k = 0; k < openMenuCount; k++) { - if (typeof openMenus.menuItems == 'object') { - // console.log(openMenus.menuName + " appears to be converted."); - markScriptRun("updateMenuProdLinks"); - } else { - let menuId = openMenus[k]._id; + let openMenus = Menus.find({ menuComplete: false }).fetch(); + let openMenuCount = openMenus.length; + // console.log("Open Menu count is: " + openMenuCount); + for (k = 0; k < openMenuCount; k++) { + if (typeof openMenus.menuItems == 'object') { + // console.log(openMenus.menuName + " appears to be converted."); + markScriptRun("updateMenuProdLinks"); + } else { + let menuId = openMenus[k]._id; - let thisMenuItems = MenuItems.find({ menuId: menuId }).fetch(); + let thisMenuItems = MenuItems.find({ menuId: menuId }).fetch(); - let itemCount = thisMenuItems.length; + let itemCount = thisMenuItems.length; - for (l = 0; l < itemCount; l++) { - Menus.update({ _id: menuId }, { - $addToSet: { - menuItems: - { - menuItemId: thisMenuItems[l]._id, - menuItemName: thisMenuItems[l].itemName, - serveDate: thisMenuItems[l].serveDate, - serveDateActual: thisMenuItems[l].serveDateActual, - isLinked: thisMenuItems[l].isLinked - }, - } - }); - } - } - if (k == (openMenuCount - 1)) { - markScriptRun("updateMenuProdLinks"); + for (l = 0; l < itemCount; l++) { + Menus.update({ _id: menuId }, { + $addToSet: { + menuItems: + { + menuItemId: thisMenuItems[l]._id, + menuItemName: thisMenuItems[l].itemName, + serveDate: thisMenuItems[l].serveDate, + serveDateActual: thisMenuItems[l].serveDateActual, + isLinked: thisMenuItems[l].isLinked + }, + } + }); } } - } catch(error) { - console.log(" ERROR updating the menu product links: "); - console.log(error.message); - console.log(error.stack); - } - } else { - // console.log("Menu Item updates have already been run."); - } - - // get update available information if enabled in system confiuration - let currConfig = await SysConfig.findOneAsync({}); - if (!currConfig) { - // console.log("No Current Config found.") - } else { - try { - let feedurl = "https://gitlab.com/bmcgonag/get_my/-/releases.atom" - if (currConfig.allowUpdates == true) { - // console.log("Allow Updates is true"); - startCronForUpdates(feedurl); - } else if (typeof currConfig.allowUpdates == 'undefined' || currConfig.allowUpdates == null) { - SysConfig.update({ _id: currConfig._id }, { $set: { - allowUpdates: true, - }}); - startCronForUpdates(feedurl); + if (k == (openMenuCount - 1)) { + markScriptRun("updateMenuProdLinks"); } - } catch(error) { - console.log(" ERROR checking current config for updates: " + error); - console.log(error.message); - console.log(error.stack); } } + }); -var startCronForUpdates = function(feedurl) { - var cron = require('node-cron'); - - cron.schedule('*/30 * * * *', () => { - getUpdateInfoNow(feedurl); - }); -} - -var markScriptRun = async function(scriptName) { +var markScriptRun = function(scriptName) { // check if this is already set - let scriptRun = await MScripts.findOneAsync({ scriptName: scriptName }); - if (!scriptRun) { - try { - return MScripts.insertAsync({ - scriptName: scriptName, - scriptRun: true, - runOn: new Date() - }); - } catch(error) { - console.log(" ERROR inserting the script run log: " + error); - console.log(error.message); - console.log(error.stack); - } + let scriptRun = MScripts.findOne({ scriptName: scriptName }); + + if (scriptRun) { + console.log(scriptName + " already set as run on " + scriptRun.runOn); } else { - // console.log(scriptName + " already set as run on " + scriptRun.runOn); + MScripts.insert({ + scriptName: scriptName, + scriptRun: true, + runOn: new Date() + }); } } - -var getUpdateInfoNow = async function(feedurl) { - const parser = require('rss-url-parser') - - const data = await parser(feedurl) - let dataLength = data.length; - // console.dir(data[0].title); - - // check if this title already exists in db - let updatesExist = await UpdateInfo.findOneAsync({ title: data[0].title }); - try { - if (!updatesExist) { - UpdateInfo.insertAsync({ - title: data[0].title, - description: data[0].description, - dateRelease: data[0].date, - releaseLink: data[0].link, - viewed: false - }); - } else { - console.log("No new updates available at this time."); - } - } catch(error) { - console.log(" ERROR checking for update: " + error); - console.log(error.message); - console.log(error.stack); - } -} diff --git a/server/methods.js b/server/methods.js index d634eed..ecb0347 100644 --- a/server/methods.js +++ b/server/methods.js @@ -2,67 +2,61 @@ import { Meteor } from 'meteor/meteor'; import { Mongo } from 'meteor/mongo'; import { check } from 'meteor/check'; import { TaskItems } from '../imports/api/tasks'; -import { SysConfig } from '../imports/api/systemConfig'; -import { Roles } from 'meteor/roles'; Meteor.methods({ - async 'addToRole' (role) { - try { - let countOfUsers = await Meteor.users.find().countAsync(); - const user = await Meteor.userAsync(); - if (user) { - let userId = user._id; - if (countOfUsers > 1) { - await Roles.addUsersToRolesAsync(userId, role); - const result = await Meteor.callAsync('add.darkModePref', "light"); - if (!result) { - console.log(" ERROR: can't set user dark mode preference: " + err); - } else { - // console.log(" SUCCESSFULLY set user dark mode preference."); - } - } else if (countOfUsers == 1) { - await Roles.addUsersToRolesAsync(userId, "systemadmin"); - const result = await Meteor.callAsync('add.darkModePref', "light"); - if (!result) { - console.log(" ERROR: can't set user dark mode preference: " + err); - } else { - console.log(" SUCCESSFULLY set user dark mode preference."); - } + 'addToRole' (role) { + let countOfUsers = Meteor.users.find().count(); + + // if users = 1 - set to role passed in function call + if (countOfUsers > 1) { + console.log("User id for role: " + Meteor.userId() ); + let userId = Meteor.userId(); + Roles.addUsersToRoles(userId, role); + Meteor.call('add.darkModePref', "light", function(err, result) { + if (err) { + console.log(" ERROR: can't set user dark mode preference: " + err); } else { - console.log("The count of users didn't seem to work when adding a new user."); + // console.log(" SUCCESSFULLY set user dark mode preference."); } - } else { - console.log(" ---- No user info found.") - } - } catch(error) { - console.log(" ERROR getting user info on server: " + error); + }); + } else if (countOfUsers == 1) { + console.log("Creating first system admin user: " + Meteor.userId() ); + let userId = Meteor.userId(); + Roles.addUsersToRoles(userId, "systemadmin"); + Meteor.call('add.darkModePref', "light", function(err, result) { + if (err) { + console.log(" ERROR: can't set user dark mode preference: " + err); + } else { + // console.log(" SUCCESSFULLY set user dark mode preference."); + } + }); } }, - async 'edit.userPass' (userId, newPassword) { + 'edit.userPass' (userId, newPassword) { check(userId, String); check(newPassword, String); - return await Accounts.setPasswordAsync(userId, newPassword); + return Accounts.setPassword(userId, newPassword); }, - async 'delete.userFromSys' (userId) { + 'delete.userFromSys' (userId) { check(userId, String); - return await Meteor.users.removeAsync({ _id: userId }); + return Meteor.users.remove({ _id: userId }); }, - async 'update.userEmail' (userId, email) { + 'update.userEmail' (userId, email) { check(userId, String); check(email, String); - return await Meteor.users.updateAsync({ _id: userId }, { + return Meteor.users.update({ _id: userId }, { $set: { 'emails.0.address': email, } }); }, - async 'edit.userRole' (userId, role) { + 'edit.userRole' (userId, role) { check(userId, String); check(role, String); - return await Roles.setUserRolesAsync(userId, role); + return Roles.setUserRoles(userId, role); }, }); diff --git a/server/publish.js b/server/publish.js index 57e5e13..594c197 100644 --- a/server/publish.js +++ b/server/publish.js @@ -11,14 +11,6 @@ import { TaskItems } from '../imports/api/tasks.js'; import { UserConfig } from '../imports/api/userConfig.js'; import { MenuProdLinks } from '../imports/api/menuProdLinks.js'; import { UserLast } from '../imports/api/userLast.js'; -import { UpdateInfo } from '../imports/api/updateInfo.js'; - -Meteor.publish(null, function () { - if (this.userId) { - return Meteor.roleAssignment.find({ "user._id": this.userId }); - } - this.ready(); -}); Meteor.publish("SystemConfig", function() { try { @@ -30,20 +22,12 @@ Meteor.publish("SystemConfig", function() { Meteor.publish("UserConfigPrefs", function() { try { - return UserConfig.find({ user: this.userId }); + return UserConfig.find({}); } catch (error) { console.log(" ERROR: Error accessing user config: " + error); } }); -Meteor.publish("UpdateVersion", function() { - try { - return UpdateInfo.find({ viewed: false }); - } catch(error) { - console.log(" ERROR pulling updated version info: " + error); - } -}) - Meteor.publish('userList', function() { return Meteor.users.find({}); }); @@ -96,28 +80,6 @@ Meteor.publish("myListItems", function(listId) { } }); -Meteor.publish("allListItems", function() { - try { - return ListItems.find({}); - } catch (error) { - console.log(" ERROR pulling all list items."); - } -}); - -Meteor.publish("myStoreListItems", function(listId) { - try { - let stores = Store.find({}); - if (stores) { - for (i=0; i