Create Custom Search Function

Does anyone know how to create cutom search function in new desktop ?
The custom search will be simliar to right pane search, as attached photo.

The current M-Files Desktop Version Number: 22.12.12140.4

Top Replies

  • I would love to see the ability to create custom searches as you have shown in the base desktop product. 

  • I would love to see the ability to create custom searches as you have shown in the base desktop product. 

  • Once i can the way to create it, i don't mind to show you.
    However, i am struggling which API has to be used

  • I know that tagged Joonas, but I also know that Joonas is out of the office this week.  I hope that me answering helps in some way.

    I'm assuming that you've looked at all of the out-of-the-box search options including faceted search and decided that these are not good enough?

    There's no built-in way to create a custom search UI in the way you've highlighted.  If you wanted to create something like this then you would need to build it from scratch using the User Interface Extensibility Framework.  Depending upon the type of search conditions you need to create, this could be relatively straight-forward or it could be exceptionally complex.

    Once you have the UI built then you have various options to actually get the search run.  If you only care about the desktop then the approach I've used before is to create a temporary view containing the search conditions, then tell the listing to navigate to it.  From recollection there are a couple of quirks you have to work around (e.g. the temporary view needs to have a unique name), but the general approach works.

    I have also sent a link to this conversation to the product owner for searching, to see whether he has any additional guidance or comments.

  • Hi Craig,

    Thanks to your reply.
    May you advise how to pass the Dashboard data to navigate the view and display the search results in listing area ?

  • You have two related problems: how to communicate from the dashboard to the shellFrame to tell it to navigate, and then how to actually run your search.

    How to communicate from the dashboard to the shellFrame:

    When I've done this before, I've effectively passed a navigation callback to into the dashboard when it's displayed.  I would have something like this in my ShellUI module:

    myTab.ShowDashboard("myDashboardId", {
        navigateToFolder: function(folderDefs)
        {
            shellFrame.NavigateToFolder(folderDefs)
        }
    });

    You can then call this from within your dashboard itself:

    function OnNewDashboard(dashboard)
    {
      // TODO: create the folder defs
      var folderDefs = ...
      
      // Navigate
      dashboard.CustomData.navigateToFolder(folderDefs);
    }

    How to run the search:

    There's probably a few different ways, but the approach I've taken in the past is to collate the user's search data and use the COM API to create a temporary view.  Once that view is created you can create your FolderDefs instance to represent the temporary view, and use the above to navigate to that.

    One final point:

    The approach I described above probably doesn't work on the Classic Web.  That may or may not be possible; you would need to take a look at the UIX and API functionality that exists on the classic web to see.

  • thanks!!
    Let me and developer check if possible to develop as you advise