file manager: hide directories outside the filter's file paths
When a filter is active (not "All"), only the matching files, their ancestor directories and the MF root stay; every other directory is hidden. The ancestors come from the standard file list (name -> paths): pysimFsFilterMatchingPaths unions the registry paths of every matching name, and pysimFsFilterShow keeps a directory iff it matches itself (e.g. DF.GSM for svc:GPRS) or its canonical path prefixes a matching path. Custom files contribute their own paths; the not-loaded window keeps directories rather than hiding everything. Frontend 1160 tests green (+8). (Version/sw bump still deferred.)
This commit is contained in:
1 parent
e2d5d720f7
commit
8fdf1ddff9
3 files changed
+274
-29
No files matched your search
@@ -45,6 +45,9 @@ function extractConst(src, name) {
|
||||
// module state the extracted functions close over
|
||||
let pysimFsFilter = new Set(['all']);
|
||||
let _servicesFeatureByNumber = null;
|
||||
// the tree filter's matching-path cache (pysimFsSetFilterToService drops it)
|
||||
let _fsFilterPaths = null;
|
||||
let _fsFilterPathsKey = null;
|
||||
const _store = {};
|
||||
let _renders = 0;
|
||||
let _treeRenders = 0;
|
||||
@@ -60,7 +63,8 @@ globalThis.pysimFsFilterRender = () => { _renders++; };
|
||||
globalThis.pysimFsRenderTree = () => { _treeRenders++; };
|
||||
|
||||
let code = '';
|
||||
for (const f of ['servicesFeatureByNumber', 'pysimFsFilterBtnHtml', 'pysimFsSetFilterToService']) {
|
||||
for (const f of ['servicesFeatureByNumber', 'pysimFsFilterBtnHtml', 'pysimFsSetFilterToService',
|
||||
'pysimFsFilterPathsInvalidate']) {
|
||||
code += extractFunc(html, f) + '\n';
|
||||
}
|
||||
for (const c of ['SERVICES_CROSS_REF', 'SERVICES_FS_MAP']) code += extractConst(html, c);
|
||||
|
||||
Reference in new issue
Block a user