diff --git a/www/assets/js/list.js b/www/assets/js/list.js index 5d117d5..3eb1794 100644 --- a/www/assets/js/list.js +++ b/www/assets/js/list.js @@ -19,6 +19,8 @@ $(".view-main").on("click", "#addresslist .package-list-item .delete-btn", funct // Searchbar is setup in routes.js, this is for forcing a wider scope var searchbar = null; +var itemVirtualList = null; + /** * Update package distances relative to the passed coordinates. * @param {type} latitude @@ -96,6 +98,7 @@ function loadPackageList(sortType) { $("#no-packages-display").addClass("display-none"); } + var items = []; for (var i = 0; i < sortedPackages.length; i++) { for (var j = 0; j < sortedPackages[i].value.items.length; j++) { var item = sortedPackages[i].value.items[j]; @@ -111,33 +114,60 @@ function loadPackageList(sortType) { } else if (typeof sortedPackages[i].value.distance != 'undefined' && sortedPackages[i].value.distance * 1 < getStorage("alertradius") * 1) { classes = "text-color-deeporange"; } - $("#addresslist ul").append( - '
  • ' - + '' - + '
    ' - + ' ' - + '
    ' - + '' - + '
  • ' - ); + items.push({ + id: item.id, + coordid: sortedPackages[i].value.id, + classes: classes, + latitude: sortedPackages[i].value.coords[0], + longitude: sortedPackages[i].value.coords[1], + icon1: icon1, + icon2: icon2, + address: item.address, + distance: (typeof sortedPackages[i].value.distance != 'undefined' ? getDisplayDistance(sortedPackages[i].value.distance) : '...'), + delivered: delivered, + geolink: 'geo:' + sortedPackages[i].value.coords[0] + ',' + sortedPackages[i].value.coords[1] + }); } } + itemVirtualList = app.virtualList.create({ + el: "#addresslist", + items: items, + searchAll: function (query, items) { + query = query.toLowerCase(); + var found = []; + for (var i = 0; i < items.length; i++) { + if (items[i].address.toLowerCase().indexOf(query) >= 0 || query.trim() === '') { + found.push(i); + } + } + return found; //return array with mathced indexes + }, + itemTemplate: + '
  • ' + + '' + + '
    ' + + ' ' + + '
    ' + + '' + + '
  • ' + }); + // If there was a search open when the reload was triggered if (router.currentRoute.name == "list") { var searchboxVal = $(".package-list-searchbar input[type=search]").val(); diff --git a/www/pages/list.html b/www/pages/list.html index cae686e..0cdadba 100644 --- a/www/pages/list.html +++ b/www/pages/list.html @@ -53,10 +53,8 @@
    Add a Package
    -
    - +
    +