get_my/client/AdminMgmt/ProductMgmt/prodMgmtTbl.js

119 lines
4.1 KiB
JavaScript
Raw Normal View History

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({
products: function() {
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 {
2024-08-18 09:59:58 -05:00
return Products.find({ prodName: { $regex: searchVal + '.*', $options: 'i' } }, { sort: { prodName: 1 }});
}
} else if (searchStore == true) {
let searchVal = Session.get("searchStoreVal");
if (typeof searchVal == 'undefined' || searchVal.length == 0) {
return Products.find({});
} else {
2024-08-18 09:59:58 -05:00
return Products.find({ prodStore: { $regex: searchVal + '.*', $options: 'i' } }, { sort: { prodName: 1 }});
}
} else if (noStoreSet == true) {
2024-08-18 09:59:58 -05:00
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++) {
// console.log(idsInList[i]);
idList.push(idsInLists[i].prodId);
}
if (i > idsInLists.length - 1) {
console.dir(idList);
let noProdsNot = Products.find({ _id: { $nin: idList }}).count();
console.log(noProdsNot);
return Products.find({ _id: { $nin: idList }}, { sort: { prodName: 1 }});
}
} else {
2024-08-18 09:59:58 -05:00
return Products.find({}, { sort: { prodName: 1 }});
}
},
searchProd: function() {
return Session.get("searchProds");
},
searchStore: function() {
return Session.get("searchStore");
},
});
Template.prodMgmtTbl.events({
'click .deleteProduct' (event) {
event.preventDefault();
Session.set("deleteId", this._id);
Session.set("method", "delete.product");
Session.set("item", this.prodName);
Session.set("view", "Products");;
},
'click .editProduct' (event) {
event.preventDefault();
Session.set("prodEditMode", true);
Session.set("prodEditId", this._id);
const getProds = async() => {
let prodInfo = await Products.findOneAsync({ _id: this._id });
if (!prodInfo) {
2025-07-23 19:44:24 -05:00
// console.log("No Product Returned.");
} else {
$("#prodName").val(prodInfo.prodName);
$("#prodStore").val(prodInfo.prodStore);
}
}
getProds();
},
'click #filterProds' (event) {
event.preventDefault();
Session.set("searchProds", true);
},
'click #closeFilter' (event) {
event.preventDefault();
Session.set("searchProds", false);
},
"keyup #searchProds" (event) {
if (event.which !== 13) {
let searchVal = $("#searchProds").val();
Session.set("searchVal", searchVal);
}
},
'click #filterStore' (event) {
event.preventDefault();
Session.set("searchStore", true);
},
'click #closeStoreFilter' (event) {
event.preventDefault();
Session.set("searchStore", false);
},
'keyup #searchStore' (event) {
if (event.which !== 13) {
let searchVal = $("#searchStore").val();
Session.set("searchStoreVal", searchVal);
}
}
});