ios-app icon indicating copy to clipboard operation
ios-app copied to clipboard

[feature/new-search] New search experience for version 12

Open felix-schwarz opened this issue 3 years ago • 1 comments

Description

Implements a new and refined search experience for version 12. Key improvements:

  • integrated scope switcher (folder / tree (folder + subfolder) / space / account)
  • localized tokenization of special search terms
  • scope-specific suggestion bar aiding with discoverability and composition of special search terms ("tokens")

Related Issue

#933

TODO

  • [x] placeholder content view when no search term has been entered yet
  • [ ] a richer representation of tokens in saved searches and search views
  • [ ] the ability for users to enter a name for their saved search or search view
  • [ ] integration of saved searches in side bar or quick access

Screenshots (if appropriate):

Search with scope picker, tokenization of special terms while entering (here :image), limiting search results with regular search terms:

Inline Scope Picker Tokenization while typing Limiting with search term
Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 21 39 35 Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 21 40 18 Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 21 40 22

The search scope's suggestion bar provides quick access to type, date and size filters. If the user picks a suggestion, the suggestion's category is highlighted. Selecting the suggestion in the popup again removes it from the search query:

Type Suggestions Date Suggestions Size Suggestions
Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 21 40 32 Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 21 40 36 Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 21 40 39

It's also possible to save searches and restore them. There should be a differentiation in saved searches and search views down the road:

  • saved searches save scope (folder / account / space), filters (type, date, size, …), search terms and the searched location (think "Smart Folders" like on macOS)
  • search views save scope (folder / account / space), filters (type, date, size, …), search terms, but not the searched location (think "search settings quickly re-applicable to any location")

The current implementation creates saved searches internally, but doesn't apply the location part, so that the saved searches act like search views when chosen in the popup. In the final version, the popup should only show search views and saved searches should be available only via Quick Access and/or the account's Side Bar.

Saved searches Selecting :pdf scan Without any search terms
Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 21 40 48 Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 21 57 21 Simulator Screen Shot - iPhone 13 mini - 2022-09-14 at 22 00 06

Special filter keywords / tokens

Compared to #933, feature/new-search adds additional filter keywords. Below is an updated table with examples, covering all of them:

Term Meaning
engineering find items with engineering in their name
engineering demos find items with engineering and demos in their name
"engineering demos" find items with engineering demos in their name
"engineering "demos find items with engineering and demos in their name
type:pdf limit search to items with a pdf suffix
type:pdf,mov limit search to items with a pdf or mov suffix
before:2021 limit search to last modified before 2021-01-01
before:2021-02 limit search to last modified before 2021-02-01
before:2021-02-03 limit search to last modified before 2021-02-03
after:2020 limit search to last modified after 2020-01-01
after:2020-02 limit search to last modified after 2020-02-01
after:2020-02-03 limit search to last modified after 2020-02-03
on:2020-02-03 limit search to last modified on 2020-02-03 (0h-24h)
on:2020-02-03,2020-02-05 limit search to last modified on 2020-02-03 (0-24h) or 2020-02-05 (0-24h)
smaller:200mb limit search to items smaller than 200 MB (supports tb / tib / gb / gib / mb / mib / b)
greater:1gb limit search to items greater than 1 GB (supports tb / tib / gb / gib / mb / mib / b)
owner:cscherm limit search to items owned by user cscherm
:file limit search to files
:folder limit search to folders
:image limit search to images (MIME type starting with image/ or TypeAlias equal to image) extended
:video limit search to videos (MIME type starting with video/) new
:audio limit search to audio (MIME type starting with audio/) new
:document limit search to documents (TypeAlias equal to x-office/document) new
:spreadsheet limit search to spreadsheets (TypeAlias equal to x-office/spreadsheet) new
:presentation limit search to presentation (TypeAlias equal to x-office/presentation) new
:pdf limit search to PDFs (MIME type equals application/pdf) new
:year limit search to items last modified since Jan 1st of the current year
:month limit search to items last modified since the current months's first day
:week limit search to items last modified since beginning of the current week's Monday
:today or :d limit search to items last modified on the current day
:5d limit search to items last modified in the last 5 days
:2w limit search to items last modified in the last 2 weeks
:1m limit search to items last modified this or last month
:m limit search to items last modified this month
:1y limit search to items last modified this or last year
:y limit search to items last modified this year
-[term] negates the search term, i.e. -:image to exclude images, or -wrd to exclude all matches containing wrd. This works with any of the examples above.

Types of changes

  • [ ] Bug fix (non-breaking change which fixes an issue)
  • [x] New feature (non-breaking change which adds functionality)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)

felix-schwarz avatar Aug 25 '22 20:08 felix-schwarz

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
2 out of 4 committers have signed the CLA.

:white_check_mark: michaelstingl
:white_check_mark: hosy
:x: felix-schwarz
:x: Matthias Hühne


Matthias Hühne seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You have signed the CLA already but the status is still pending? Let us recheck it.

CLAassistant avatar Aug 25 '22 20:08 CLAassistant

Will test on experimental/12.0 branch

jesmrec avatar Oct 24 '22 10:10 jesmrec

(1)

In a folder with some files (more than 10)

  1. Click on lens icon
  2. Select Folder as scope
  3. Select Type = file

Current: all files in the folder are correctly listed. But, the files on the screen bottom are hidden behind the soft keyboard Expected: any way to vanish the soft keyboard?

https://user-images.githubusercontent.com/14894746/197511405-cf9646e8-020b-4426-b0f0-13a3d12e8ea2.MP4

iPhoneXR iOS16.1 8ad0aa62

jesmrec avatar Oct 24 '22 11:10 jesmrec

(2)

In an empty space (no matter if personal or custom space):

  1. Click on lens icon
  2. Set Folder scope
  3. Set Type = Folder -> empty result
  4. Set Tree scope
  5. Set Type = Folder

Current: hidden folders like .space and / (root) appears as result. Setting Show hidden files is disabled. Expected: Same search over two different "empty" scopes should return same results.

https://user-images.githubusercontent.com/14894746/197519923-e875faaf-80a1-477d-ac2b-4a38b85f50ed.MP4

iPhoneXR iOS16.1 8ad0aa62

jesmrec avatar Oct 24 '22 11:10 jesmrec

(3)

(probably related with (2)

  1. Create a folder structure like A/B/C
  2. Browse to B -> C is listed inside
  3. Click on lens
  4. Set Tree as scope
  5. Set Type = folder

Current: Results are B(current folder) and C Expected: Result is C, because B is out of the tree (parent folder). If expectation is different just let me know which one is expected.

https://user-images.githubusercontent.com/14894746/197522342-178af8a0-a3db-4526-af3d-a9e4cc9ed10e.MP4

iPhoneXR iOS16.1 8ad0aa62

jesmrec avatar Oct 24 '22 12:10 jesmrec

(4)

Just a suggestion: In the Type filter, i miss an option for text files (.txt). Would it make sense to add?

jesmrec avatar Oct 26 '22 06:10 jesmrec

(5) (question)

Mentioned above:

saved searches save scope (folder / account / space), filters (type, date, size, …), search terms and the searched location (think "Smart Folders" like on macOS) search views save scope (folder / account / space), filters (type, date, size, …), search terms, but not the searched location (think "search settings quickly re-applicable to any location")

is that correct?

Checking the implementation (f0d2ce2c), i noticed the opposite behaviour

  • Saved search template applies the filter to the current location. For ex, Type = Tree "GIF" returns a folder called GIF in the current folder and it subfolders. Same Saved search template applied to other folder with no matches, returns empty. That means, searched location not saved.

https://user-images.githubusercontent.com/14894746/198271484-265b17f0-dad5-4600-b710-062521805b4f.MP4

  • Saved search view, returns always the same result, no matter where the filter is applied:

https://user-images.githubusercontent.com/14894746/198273616-fe6b3e71-c048-4f05-a538-ce0f79a60015.MP4

Which is correct, the implementation or the description?

iPhoneXR iOS16 f0d2ce2c0

jesmrec avatar Oct 27 '22 11:10 jesmrec

(6)

Template/View creation dialog contains almost-transparent button labels Cancel and Save in default theme:

Screenshot 2022-10-27 at 13 35 35

iPhoneXR iOS16 f0d2ce2c0

jesmrec avatar Oct 27 '22 11:10 jesmrec

(7)

  1. Create a Search View that returns empty
  2. Save it
  3. Click on lens icon and apply that Search View

Current: empty screen Expected: No matches view displayed

https://user-images.githubusercontent.com/14894746/198277741-358acd45-333b-4d8b-a62d-3860f1fe22f0.MP4

iPhoneXR iOS16 f0d2ce2c0

jesmrec avatar Oct 27 '22 11:10 jesmrec

(8)

  1. Create an empty space, called Space1
  2. Create another empty spaced called Space2
  3. Upload two videos to Space2
  4. Open Space1
  5. Click on lens icon and select Account scope
  6. Select Type = Video -> Videos in Space2 are shown as result :+1:
  7. Click on right arrow, at the right of the result's cell, to jump to the file location

Current: Space1 shown with the videos. That's not correct because videos are stored in Space2 Expected: Videos stored in Space2, so Space2 should be displayed instead

(name of spaces and videos as type are only examples, also reproducible with other options)

https://user-images.githubusercontent.com/14894746/198285891-bbddb485-a7a7-4ed7-9415-184f9844a4f8.MP4

iPhoneXR iOS16 f0d2ce2c0

jesmrec avatar Oct 27 '22 12:10 jesmrec

(9)

this one is not directly related with searching, but is reproducible in the current branch (experimental/12.0) and not reproducible in milestone/12.0

iPad:

  1. Open list of files.
  2. In any file, open three-dot-button and select Open in a new Window

Current: List selector is displayed in the new window Expected: File is opened in new window

iPadPro iOS16 f0d2ce2c0

jesmrec avatar Oct 31 '22 10:10 jesmrec

(10)

This one is about the owner: . That seems to work only in personal space.

By creating a new custom space and uploading some files there, the owner: returns nothing with the proper username

iPadPro iOS16 f0d2ce2c0

jesmrec avatar Oct 31 '22 10:10 jesmrec

Merged in milestone/12.0 in cfa9100a6fff3e4dea55bafca61c1db9eae52d45.

felix-schwarz avatar Dec 12 '22 17:12 felix-schwarz