-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: advanced view of asset index #1322
Comments
@carlosvirreira I am deploying a version of this to staging that would benefit from testing. So here is what you can currently test: Column configuration:
Index configuration:
Sorting:
|
Screen.Recording.2024-10-17.at.10.42.30.movChrome - Desktop: Same behaviour
Safari / Chrome: After moving a column it snaps back to its original position. Screen.Recording.2024-10-17.at.10.48.49.mov
Works well.
Works well.
Works well. 'Remembers' the preference.
Ascending > Check Observation: We might need to do a explainer page/knowledgebase article for how sorting logic works for ascending descending.
Ascending > Check
Ascending > Check Observation: Unavailable to book seems to not have any sort of extra weight on the sort. So it appears in random position. This is not an issue but it is worth mentioning that it might cause some sort of a feeling with our users sorting. Not sure how to handle this for now.
Ascending > Check
Ascending > Fail Cannot state that this works due to the fact that Value is toggled off by default on my test and I cannot enable it without snapping back to its original state.
Ascending > Fail In both directions the values are inconsistent.
Ascending > Check Ascending: Numbers come first (matches our expectation), then uppercase 'A' to 'Z', then lowercase 'a' to 'z'.
Ascending > Check
Ascending > Fail Cannot state that this works due to the fact that Value is toggled off by default on my test and I cannot enable it without snapping back to its original state.
Ascending > Check sorting is consistent with ASCII/Unicode character ordering, where: Numbers (0-9) come first However, it might not be the most human friendly. A more natural sorting method might: Ignore case (treat uppercase and lowercase the same) In such a "natural" sort, the order might be: KIT TEST
Ascending > Check Same observation on human friendly. It follows Ascii/Unicode but might be confusing.
Ascending > Check Same observation on human friendly. It follows Ascii/Unicode but might be confusing.
Ascending > Check Observation, the view content on descending last item when click 'view content' it goes behind the scroll bar.
Available to book custom field cannot be shown on my index. Cannot test with that field. Ascending > Check
Ascending > Check
Ascending > Check Other observation:
|
My latest test was quite fruitful. Only the below can be looked at:
Maybe we have to look into handling a case with special characters
All searches for NRMs are failing. (https://testapp.shelf.nu/assets?per_page=20&custody=is%3AMarketing+Manager) |
After many considerations we decided that instead of making the default view of the asset index too crowded, we will instead create an advanced view for advanced users.
Designs: https://www.figma.com/design/ykvc0MhPeNLsrJ4tJsKosQ/Shelf-%7C-UX-Scenarios?node-id=7109-18468&node-type=canvas&t=deekb5gz94eEw1Zt-0
Checklist:
columns
insideAssetIndexSettings
When a new- decided on a different and simpler approach. InsideUserOrganization
is created, we need to create theAssetIndexSettings
- check this:createUserOrgAssociation
getAssetIndexSettings
, if not settings are found we just create them on the go. This basically handles multiple cases and will make sure there is never a user without settings.AssetIndexSettings
for their personal orgPossibility to open asset in new tab
asset.title
andasset.description
available for bookings
Base
andSelf_service
users?qrId
column?name=is:xxx
we dont parse this as it will cause for nothing to be shown and such errors:is
orisNot
we can actually use a select instead of the text field. This will be way better UX.AssetIndexSettings
. They are all parsed as 'single-line text'http://localhost:3000/assets?per_page=20&status=IN_CUSTODY
. In this casestatus
is a valid key but the value is not valid based on the schema we use for searchParams in the advanced index. This needs to be handled properly.page
param is removed when the filters change.Text fragment- this doesnt really work like I expected. It cannot do partial match and it only works on chromium browsers even tho caniuse says something elseSorting options tests: ✅
Filtering search params tests:✅
String Fields (id, name, category, location, kit, custody)
?name=is:John
?name=isNot:John
?name=contains:oh
?category=is:Electronics
?location=contains:New York
Text Fields (description)
?description=contains:important
Boolean Fields (availableToBook)
?availableToBook=is:true
?availableToBook=is:false
Date Fields (createdAt)
?createdAt=is:2023-05-15
?createdAt=isNot:2023-05-15
?createdAt=before:2023-05-15
?createdAt=after:2023-05-15
?createdAt=between:2023-05-01,2023-05-31
Number Fields (valuation)
?valuation=is:1000
?valuation=isNot:1000
?valuation=gt:1000
?valuation=lt:1000
?valuation=gte:1000
?valuation=lte:1000
?valuation=between:1000,2000
Enum Fields (status)
?status=is:AVAILABLE
?status=isNot:AVAILABLE
Array Fields (tags)
?tags=contains:urgent
?tags=containsAll:urgent,important
?tags=containsAny:urgent,important
Custom Fields
Single Line Text
?cf_fieldName=is:Value
?cf_fieldName=isNot:Value
?cf_fieldName=contains:alue
Multiline Text
?cf_fieldName=contains:important information
Boolean
?cf_fieldName=is:true
?cf_fieldName=is:false
Date
?cf_fieldName=is:2023-05-15
?cf_fieldName=isNot:2023-05-15
?cf_fieldName=before:2023-05-15
?cf_fieldName=after:2023-05-15
?cf_fieldName=between:2023-05-01,2023-05-31
Option (Enum)
?cf_fieldName=is:Option1
?cf_fieldName=isNot:Option1
Multiple Filters
?name=contains:John&status=is:AVAILABLE&valuation=between:1000,2000&cf_customField=is:true
Custom field filtering testing
The text was updated successfully, but these errors were encountered: