function OnInit(initData) { initData.name = 'EditQuickFilter'; initData.version = '2024-03-04b'; initData.url = 'https://resource.dopus.com/t/playground-using-the-evaluator-in-the-filter-bar/49510'; initData.desc = 'initData.desc'; initData.default_enable = true; initData.min_version = '13.3.4'; } function OnAddCommands(addCmdData) { var cmd = addCmdData.AddCommand(); cmd.name = 'EditQuickFilter'; cmd.method = 'OnEditQuickFilter'; cmd.desc = 'cmd.desc'; cmd.label = 'cmd.label'; cmd.template = 'headerkey/k'; cmd.hide = false; cmd.icon = 'script'; } function OnEditQuickFilter(scriptCmdData) { var cmd = scriptCmdData.func.command; var tab = scriptCmdData.func.sourcetab; var args = scriptCmdData.func.args; var dlg = scriptCmdData.func.Dlg(); cmd.deselect = false; var evalMode = cmd.IsSet('Set QUICKFILTERFLAGS=evalon'); var headerkey = args.headerkey; if (!headerkey) headerkey = ''; // DOpus.Output(headerkey); if (headerkey.match(/(^\d.*|.*[$:/]+.*)/)) headerkey = 'Val("' + headerkey + '")'; var newFilter = tab.quickfilter.filter; if (!evalMode && newFilter) newFilter = 'Match(name,"*' + newFilter + '*")'; if (newFilter) newFilter += ' && '; if (headerkey) newFilter += headerkey + '=='; dlg.GetString('Edit QuickFilter:', newFilter); if (dlg.result == 0) return; if (dlg.input == newFilter) return; var newFilter = (typeof dlg.input == 'string') ? dlg.input.replace(/"/g, '""') : ''; // DOpus.Output(newFilter); cmd.RunCommand('Set QUICKFILTERCLEAR'); // shouldn't be needed, but without it the filter occasionally fails cmd.RunCommand('Set QUICKFILTERFLAGS=evalon QUICKFILTER="' + newFilter + '"'); }