From 8b085051161890cde2e30b611e783d365d6ade2e Mon Sep 17 00:00:00 2001 From: howard-stearns Date: Thu, 7 Jun 2018 16:14:18 -0700 Subject: [PATCH] using filter/sort endpoint parameters --- interface/resources/qml/hifi/Feed.qml | 4 ++-- interface/resources/qml/hifi/Pal.qml | 13 +++++++++++-- .../hifi/commerce/common/sendAsset/SendAsset.qml | 4 ++-- .../resources/qml/hifi/models/PSFListModel.qml | 10 ++++++++-- 4 files changed, 23 insertions(+), 8 deletions(-) diff --git a/interface/resources/qml/hifi/Feed.qml b/interface/resources/qml/hifi/Feed.qml index 1d28f18f9d..4aa07f5d99 100644 --- a/interface/resources/qml/hifi/Feed.qml +++ b/interface/resources/qml/hifi/Feed.qml @@ -61,11 +61,11 @@ Column { listModelName: actions; listView: scroll; searchFilter: filter.toUpperCase().split(/\s+/).filter(identity).join(' '); - searchItemTest: function (text, item) { + /* FIXME searchItemTest: function (text, item) { return searchFilter.split().every(function (word) { return item.searchText.indexOf(word) >= 0; }); - }; //HRS FIXME remove when endpoint works. + };*/ //HRS FIXME remove when endpoint works. } function resolveUrl(url) { diff --git a/interface/resources/qml/hifi/Pal.qml b/interface/resources/qml/hifi/Pal.qml index fbe34b2ebc..a1cc156fdd 100644 --- a/interface/resources/qml/hifi/Pal.qml +++ b/interface/resources/qml/hifi/Pal.qml @@ -50,9 +50,18 @@ Rectangle { id: connectionsUserModel; http: http; endpoint: "/api/v1/users?filter=connections"; - localSort: true; + //FIXME localSort: true; property var sortColumn: connectionsTable.getColumn(connectionsTable.sortIndicatorColumn); - sortProperty: sortColumn ? sortColumn.role : "userName"; + sortProperty: switch (sortColumn && sortColumn.role) { + case 'placeName': + 'location'; + break; + case 'connection': + 'is_friend'; + break; + default: + 'username'; + } sortAscending: connectionsTable.sortIndicatorOrder === Qt.AscendingOrder; itemsPerPage: 9; listView: connectionsTable; diff --git a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml index a416030711..b3fd661088 100644 --- a/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml +++ b/interface/resources/qml/hifi/commerce/common/sendAsset/SendAsset.qml @@ -404,9 +404,9 @@ Item { return data.users; }; searchFilter: filterBar.text; - searchItemTest: function (text, item) { + /* FIXME searchItemTest: function (text, item) { return item.username.toLowerCase().indexOf(text.toLowerCase()) !== -1; - }; //HRS FIXME remove when endpoint works. + };*/ //HRS FIXME remove when endpoint works. } Rectangle { diff --git a/interface/resources/qml/hifi/models/PSFListModel.qml b/interface/resources/qml/hifi/models/PSFListModel.qml index 5cca73af92..b00d3684cf 100644 --- a/interface/resources/qml/hifi/models/PSFListModel.qml +++ b/interface/resources/qml/hifi/models/PSFListModel.qml @@ -27,7 +27,7 @@ Item { property string endpoint; property string sortProperty; // Currently only handles sorting on one column, which fits with current needs and tables. property bool sortAscending; - property string sortKey: !sortProperty ? '' : (sortProperty + "," + (sortAscending ? "asc" : "desc")); + property string sortKey: !sortProperty ? '' : (sortProperty + "," + (sortAscending ? "ASC" : "DESC")); property string searchFilter: ""; property string tagsFilter; @@ -144,10 +144,16 @@ Item { // If it is a path starting with slash, add the metaverseServer domain. var url = /^\//.test(endpoint) ? (Account.metaverseServerURL + endpoint) : endpoint; var parameters = [ - // FIXME: handle sort, search, tag parameters + // FIXME: handle sort, tag parameters 'per_page=' + itemsPerPage, 'page=' + currentPageToRetrieve ]; + if (!searchItemTest && searchFilter) { + parameters.splice(parameters.length, 0, 'search=' + searchFilter); + } + if (!localSort && sortKey) { + parameters.splice(parameters.length, 0, 'sort=' + sortKey); + } var parametersSeparator = /\?/.test(url) ? '&' : '?'; url = url + parametersSeparator + parameters.join('&'); console.debug('getPage', listModelName, currentPageToRetrieve);