Server: Unified search introduction

Created on 19 Jun 2018  Â·  8Comments  Â·  Source: nextcloud/server

Since the implementation of the ISearch component, apps have the possibility to add their search provider classes to our instance. One of the downside is the way it's been implemented.
Currently the script is looking for a specific div id on the page and IFF it's present the global search is enabled and added into this div.

That means if I add this div on the contacts app, for example, I will be able to search the FileSearchProvider on the contacts page... Which is a nonsense.

Changes

  • With the new standard on #9912 we can register per-app javascript search handler.
  • This should stay this way. Search on the top right header need to stay this way.
  • In the meantime, the idea of a global search is great. I'm suggesting adding this for the whole instance with a popup similar to the contactsmenu.
2. developing design enhancement search

Most helpful comment

Let's move it to 17.

All 8 comments

global search with a popup similar to contactsmenu would be ideal.

@skjnldsv Let's move this to 16

Let's move it to 17.

In the meantime, the idea of a global search is great. I'm suggesting adding this for the whole instance with a popup similar to the contactsmenu.

@skjnldsv @daita As we talked about, this is what we had in earlier versions of Nextcloud. :) Some blast from the past screenshots I found:

The issue is that this was not very well integrated. It creates a completely separate view (the popup) which is a different place. Right now, we directly show results where normally the content is displayed. We filter Contacts, Apps, Files directly where they are displayed normally. It’s very nice and integrated and we should keep it that way. We get the added benefit that the layout and all file actions are available directly there and we don’t need to duplicate.

Search has 3 use-cases:

  1. You want to quickly find something in the current folder. (Filtering is enough here, and it’s _very_ fast.)
  2. It might not be where you expect and it should search through the rest of the current app.
  3. Just because we can, we also display results from the rest of Nextcloud.

Now the current search already does 1. and 2. for Files, and it’s reasonably nice and integrated. Adding results from other apps should also add it at the bottom, just like results from other places in Files – not change the whole interface. :)

We can use the simple results layout we already use for search results from other places:

  • Image/thumbnail on the left
  • First primary row
  • Secondary row

Search results from other places:
Search results layout

Mail app messages:
Mail app layout

Files recommendations:
Layout recommendations

Contacts:
Contacts layout

So you see it’s basically the same already, and that’s the layout we use for 2. (results from other folders) already, and can also use for 3. (results from other apps).

Now the current search already does 1. and 2. for Files, and it’s reasonably nice and integrated. Adding results from other apps should also add it at the bottom, just like results from other places in Files – not change the whole interface. :)

I'm really not sure on this one.
What if what you search have a lots of results? You get 4000px to scroll your current folder then 4000+ to scroll to search amongst other results ?
I still feel like the ui is off here and not very performant :smiley:
I think we can do better. How does other platforms do it?

@jancborchardt regarding the design similitudes, I agree, looks very similar.
If the files are displaying it as grid layout, how shall we display the results?
Same design you screenshoted?
Also, where does the unified search aim to be accessible? Only from files?
From all apps is impossible as we have tons of different designs and we cannot inject elements without breaking something :wink:

If the files are displaying it as grid layout, how shall we display the results? Same design you screenshoted?

Yes. The results view from others should always be the same, independent of the view of the current app. Also compare Bookmarks app, which is a very special and fitting grid view – results from the same app should filter in the style of that app, but results from other places should have one common style.

Also, where does the unified search aim to be accessible? Only from files?
From all apps is impossible as we have tons of different designs and we cannot inject elements without breaking something wink

Not only from Files for sure. :)

  • Possibly below the existing filters in the app-content-list
  • Or having a control/tooltip/something inside the search field or below it to "Show results from other apps" optionally

Another bigger question is also the placement of search. Right now it’s in the top right, which is really difficult to discover. We could:

  • Do it like google and center it in the header and make it more obvious. This interferes with our app list of course, and is also maybe a bit too present? Also it doesn’t work well on mobile at all anyhow.
  • Put a search box in the top of the left navigation of every app. All the core apps basically have a left navigation now so this would be possible. It would make it very clear that primarily it filters the content from the current app.
  • Or having a control/tooltip/something inside the search field or below it to "Show results from other apps" optionally

Then, maybe replace the entire view if enabled?
A bit like github does with the 'search this repo' and 'search github'?

I’d say for this actually a modal is proper, as it shows content which is out of the current app. This is better than replacing the entire view, since with a modal your context is not completely lost.

Was this page helpful?
0 / 5 - 0 ratings