Updaated Products to have multiple associated stores.

- Products will be updated on first start of server to make sure the store attribute is set as an Array of values.
- You can edit Products to add more associated stores
- Products will list all associated stores on the product table view
- Cut down method calls to single event trigger for adding / editing products info
This commit is contained in:
Brian McGonagill 2024-08-13 10:48:27 -05:00
parent a7a9c48e01
commit 3f6618d906
4 changed files with 56 additions and 96 deletions

View file

@ -32,36 +32,12 @@ Template.prodMgmtForm.helpers({
});
Template.prodMgmtForm.events({
'click .saveProdMgmt' (event) {
event.preventDefault();
'click .saveProdMgmt, click .editProdMgmt' (event) {
let name = $("#prodName").val();
let store = $("#prodStore").val();
if (store == null) {
store = "";
}
if (name == "" || name == null) {
Session.set("prodNameRed", true);
return;
} else {
Meteor.call('add.product', name, store, function(err, result) {
if (err) {
console.log(" ERROR: can't add product: " + err);
} else {
$("#prodName").val("");
let elemse = document.querySelectorAll('select');
let instancese = M.FormSelect.init(elemse, {});
showSnackbar("Succesffuly Added Product!", "green");
}
});
}
},
'click .editProdMgmt' (event) {
event.preventDefault();
let name = $("#prodName").val();
let prodId = Session.get("prodEditId");
let store = $("#prodStore").val();
let prodEditMode = Session.get("prodEditMode");
if (store == null) {
store = "";
@ -71,71 +47,27 @@ Template.prodMgmtForm.events({
Session.set("prodNameRed", true);
return;
} else {
Meteor.call('edit.product', prodId, name, store, function(err, result) {
if (err) {
// console.log(" ERROR: can't add product: " + err);
} else {
$("#prodName").val("");
Session.set("prodEditMode", false);
showSnackbar("Product Edited Successfully!", "green");
}
});
}
},
'keypress form.prodInputForm' (event) {
// event.preventDefault();
if (event.which === 13) {
let name = $("#prodName").val();
let store = $("#prodStore").val();
let prodId = Session.get("prodEditId");
let prodEditMode = Session.get("prodEditMode");
// console.log(" ---- got the submit event for products.");
if (store == null) {
store = "";
}
if (name == "" || name == null) {
Session.set("prodNameRed", true);
return;
if (prodEditMode == true) {
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 {
if (prodEditMode == true) {
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 {
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");
}
});
}
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");
}
});
}
}
},
'change #prodStore' (event) {
// event.preventDefault();
console.log("detected event");
let val = $("#prodStore").val();
console.log("Value detected: " + val);
if (val == "addNewStore") {
console.log("got the request for modal.");
$("#prodStore").val("");
// open modal to add a new store
let elemmm = document.getElementById('modalStore');
let storeModal = M.Modal.getInstance(elemmm);
storeModal.open();
}
},
'click #showNoStoreSet' (event) {
let noStoreSet = $("#showNoStoreSet").prop('checked');
console.log("Clicked: " + noStoreSet);