Filter by Column : Powerful filtering/searching tool for all columns

Yes, my bad. I'll correct that for the next version.

Also, I'll consider add support for searching for a specific day/month value. Thanks for the idea.

For BuildListFromPreset, creating a preset file is not necessary. The rename script can be embedded by putting it after the Rename command. For example, here is a command GetColumnValue I made to retrieve the column value:

// @set can't set an empty variable
@set glob:result
// SCRIPTARG doesn't work
Rename PATTERN * TO "&COLUMN&"
@script:jscript
function OnGetNewName(getNewNameData)
{
    if (!DOpus.vars.Exists("result"))
        DOpus.vars.Set("result", getNewNameData.newname);
    else
        DOpus.vars.Set("result", DOpus.vars.Get("result") + '\n' + getNewNameData.newname);
    return true;  // prevent rename
}
// Access the result by `{$glob:result}`
// Delete the result by `@set glob:result`
1 Like

@Chaoses-Ib you need to use Evaluator to get the actual value and not something escaped to be path friendly. Using that in TO directly may not work in some scenarios. That's why a rename preset is needed.

v1.0.2 brings several improvements and new syntax. Check the whole changes in main post.

2 Likes

Thanks a lot. it would be nice for "between search" by month and dates. ex, 10-11m

v1.0.3 is up for testing! Probably the last one, we'll see.
Contains several additions and corrections, which can be read in the main post.

2 Likes

v1.0.4 comes with a very handy option for search by Name using file type groups. Also fix searchs in some columns not working and brings support for 'desc' column.

2 Likes

v1.0.5 comes with a very welcomed additions, such extend support for more columns, and the ability to define a column name in implicit mode. Read the main post to find out about the details.
Also, due to the new changes, you will probably need to reconfigure certain script options. Sorry about that. (you can use Prefs SCRIPTS=ColSearch.js* for quick access).

1 Like

v1.0.6 is up with support for 'Permissions' and 'Availability' columns. With that, all columns with meaningful values for filtering are supported now.

2 Likes

Since in the last few weeks I've discovered the use of Evaluator clauses in textual filters, this has opened the opportunity to expand the capabilities of this script when using it in that mode. Now it no longer has the previous limitations and in theory it could filter any relevant column, applying the search flags as well.
The v1.1.0b brings the following major improvements:

  • Textual Filters mode renewed, now it has no technical limitations and can be used to filter any relevant column.

    • Rename Presets mode is kept for the time being, for legacy and comparative reasons, it can be changed by using the preferred_filter_mode option in Settings.
    • This brings a substantial time improvement when filtering Script, Evaluator and Shell columns.
  • Option to filter built-in columns in Textual Filters Mode.
    However, please note still has some very small limitations:

    • Can't get results inside expanded folders.
    • Ignore non qualified items flag is not applicable.
      To enable it, set the use_filters_for_builtin option in Settings to true.

If you wish to test the new beta version, you can download it from the main post. Your feedback is highly appreciated!

3 Likes

Nice script @errante. I gave v1.1.0b a try with an evaluator column and it works perfectly after following your installation and configuration instructions. :grinning: :+1:

I understand that instead of specifying a column number, I could define my eval column as the user_defined_implicit_column to add a level of convenience. What would be even more convenient would be the ability to specify a column label using a suitable prefix to identify that a label follows. e.g.

$LMyColLabel!="" as an alternative to $C5!=""

Without digging deeply into your code I have no idea how hard it would be to implement what is only a "nice to have" suggestion.

Thanks! Glad you found it useful.
Note that some instructions are not longer required in the beta. e.g. (and I forgot to mention) for Evaluator columns, is not longer mandatory to define their type in custom_columns_categories.
The script will parse your configuration to see what type that column is declared. graph and percentage type are going to be disabled.
Only define the type if you want to override it. e.g. useful if you have a Evaluator column with a duration notation, but defined as text.

In my todo list. Thanks for the feedback!

Update v1.2.0 Beta (2024-2-2) :

  • Added the possibility to define custom names for columns in explicit mode.

For using this option, use the new entry in config named custom_columns_names.
Define custom names to refer for an specific column, using the following syntax:
"mycolname":"<col name>"
Where <col name> is the actual column raw name. (Press this command's quick key twice to show a list of currently visible column's names).
Don't use any operator (<,=,> or !) for mycolname value. You also probably shouldn't use long names with spaces in it.
You can refer any column you like. A visual example:
image

You were right @aussieboykie, this make it more useful!

PD: @Leo can you please change this post to Scripts category? Thanks.

Update v1.2.0 Beta 2 :

  • Added a new flag: Filter even if not visible; allows to filter based on a column previously declared in custom_columns_names, even if it is not visible in the current file display.
  • Added labels_access configuration option, which allows to choose if the filtering by labels should include all (including status) or only those visible in the Label Column. (Please note that use_filters_for_builtin set to true, override this option).
2 Likes

Update v1.2.1 :

  • Now is possible to define custom names to refer an specific column when in explicit mode, using custom_columns_names in Script configuration.
  • Added a new flag: Filter even if not visible; allows to filter based on a column previously declared in custom_columns_names or in user_defined_implicit_column, even if it is not visible in the current file display.
  • Added labels_access in Script configuration, which allows to choose if the filtering by labels should include all or only those visible in the Label Column. (Please note that use_filters_for_builtin set to true, override this option).
  • Minor corrections.

Also, I've updated the main post with a explanation for the last additions.

2 Likes

using script for modified date from here
i've got a wrong filtering by year (sort by current column, $<2023) - the today's files showing in this case (or even <2010 wil lalso show it). is it an issue of that script?

issue

I don't know, I don't have access to that script.
But if you want, you can send me via private message a screenshot of your script config, and I'll take a look.

I've found the correct link, and as this eval column returns text for today or yesterday; its value is interpreted as 1/1/1601, so it will not work correctly for date comparison purposes (not just here, but anywhere).

In the past week, I've seen the enormous potential that textual filters with Evaluator have, and since this command already has a base implemented for it, with an easy-to-use syntax that's easy to expand, I've added a new flag in this latest beta (v.1.3.0) : Search Mode.

When enabled, the following happens:

  • Instead of filtering, a search is performed using the same textual filter.
  • Results open in a new tab at the destination.
  • The search is recursive.
  • The same column referencing method as before is applied: implicit or explicit.
  • Much more useful if Filter even if no visible is also in use.

Remember that some values allow using ranges. For example, if I want to search for all files in the current folder within 2020-2024, using a Evaluator/Script column that displays dates, previously registered as "mycol", after enabling the flag, now I can simply type :
$mycol=2020..2024

To better understand the syntax, you can read the main post.
Hope the addition proves to be useful.

2 Likes

v1.3.0 Beta 3 :

  • $$ works as a toggle between filtering and searching.
  • Added range search for dates with the format:
    • dd-MM-yyyy or yyyy-MM-dd
    • dd-MM-yyyy HH:mm or yyyy-MM-dd HH:mm
    • dd-MM-yyyy HH:mm:ss or yyyy-MM-dd HH:mm:ss
  • Search Mode has several options for configuration (collection name, use subcollections, add column).
  • Improved logic when searching by date ranges.
  • Improved parsing of custom categories and custom names.
  • Improved dialog for configuring flags. Now keyboard accelerators can be used.
  • Improved suggestions when typing. Now all the custom names are included as suggestions.

For the 5 people who are using this, please note that if there are no bugs in this version, it will become the final release.

3 Likes

v1.3.1 is available to download in the main post!
Includes all the additions from the latest betas, plus fixes for 2 reported issues for which I have found a workaround. If you use the command regularly, it's highly recommended to update to this version.

  • Improvement in the flags configuration dialog (no more minimized listers/other windows).
  • Improved command history. You can now get suggestions for both filter and search mode, even if you use this filter as the default.

When I have more time, I'll update the main post with some examples of use.

1 Like