Added autocomplete to Menu Item entryies

This commit is contained in:
Brian McGonagill 2024-07-29 07:46:30 -05:00
parent 9abb198e82
commit d8c08578f3
4 changed files with 42 additions and 7 deletions

View file

@ -5,7 +5,7 @@ import { M } from '../lib/assets/materialize.js';
Template.menuItemsForm.onCreated(function() { Template.menuItemsForm.onCreated(function() {
this.subscribe("myMenus"); this.subscribe("myMenus");
this.subscribe("myMenuItems", Session.get("menuId")); this.subscribe("allMenuItems", Session.get("menuId"));
}); });
Template.menuItemsForm.onRendered(function() { Template.menuItemsForm.onRendered(function() {
@ -13,6 +13,15 @@ Template.menuItemsForm.onRendered(function() {
var instances = M.Datepicker.init(elems, {}); var instances = M.Datepicker.init(elems, {});
Session.set("menuItemErr", false); Session.set("menuItemErr", false);
Session.set("menuListItems", {});
this.autorun(() => {
var elema = document.querySelectorAll('.autocomplete');
var instancea = M.Autocomplete.init(elema, {
minlength: 0,
data: Session.get("menuListItems"),
});
});
}); });
Template.menuItemsForm.helpers({ Template.menuItemsForm.helpers({
@ -65,5 +74,20 @@ Template.menuItemsForm.events({
} }
}); });
} }
} },
'keyup #menuItemInp' (event) {
if (event.which != 13) {
let findMenuItem = $("#menuItemInp").val();
let menuItemInfo = MenuItems.find({ itemName: {$regex: findMenuItem + '.*', $options: 'i' }}).fetch();
if (typeof menuItemInfo != 'undefined' && menuItemInfo != '' && menuItemInfo != null) {
getMenuItemList(menuItemInfo);
}
}
},
}); });
getMenuItemList = function(menuItemInfo) {
let menuItemObjArray = [];
menuItemObjArray = menuItemInfo.map(info => ({ id: info._id, text: info.itemName }));
Session.set("menuListItems", menuItemObjArray);
}

View file

@ -22,7 +22,7 @@ Template.menuItemsTbl.onRendered(function() {
Template.menuItemsTbl.helpers({ Template.menuItemsTbl.helpers({
thisMenuItems: function() { thisMenuItems: function() {
return MenuItems.find({}, { sort: { serveDateActual: 1 }}); return MenuItems.find({ menuId: Session.get("menuId") }, { sort: { serveDateActual: 1 }});
} }
}); });

View file

@ -2,8 +2,11 @@
<h5>{{menuName}}</h5> <h5>{{menuName}}</h5>
<form class="menuItemFrm row" style="gap: 1em;" id="menuItemFrm"> <form class="menuItemFrm row" style="gap: 1em;" id="menuItemFrm">
<div class="col s12 m6 l9 input-field outlined"> <div class="col s12 m6 l9 input-field outlined">
<input type="text" class="menuItemInp" style="{{#if $eq menuItemErr true}}border: 2px solid red{{/if}}" id="menuItemInp" /> <input type="text" class="autocomplete" id="menuItemInp" autocomplete="off" />
<label for="menuItemInp">Add Menu Item</label> <label for="menuItemInp">Item</label>
<!-- <input type="text" class="menuItemInp" style="{{#if $eq menuItemErr true}}border: 2px solid red{{/if}}" id="menuItemInp" />
<label for="menuItemInp">Add Menu Item</label> -->
</div> </div>
<div class="col s12 m6 l3 input-field outlined"> <div class="col s12 m6 l3 input-field outlined">
<input type="text" class="datepicker" id="dateServed" /> <input type="text" class="datepicker" id="dateServed" />

View file

@ -83,10 +83,18 @@ Meteor.publish("myMenuItems", function(menuId) {
try { try {
return MenuItems.find({ menuId: menuId }); return MenuItems.find({ menuId: menuId });
} catch (error) { } catch (error) {
console.log(" ERROR pulling list items for this list: " + error); console.log(" ERROR pulling menu items for this list: " + error);
} }
}); });
Meteor.publish("allMenuItems", function() {
try {
return MenuItems.find({});
} catch (error) {
console.log(" ERROR pulling all menu items from collection: " + error);
}
})
Meteor.publish("todayMenuItems", function() { Meteor.publish("todayMenuItems", function() {
try { try {
let todayDate = new Date(); let todayDate = new Date();