function refreshDropdownsUntilTasksAreLoaded()

in ui-modules/app-inspector/app/components/task-list/task-list.directive.js [192:286]


        function refreshDropdownsUntilTasksAreLoaded() {
            if (tasksLoadedTrueReceived || $scope.uiDropdownInteraction) return;
            tasksLoadedTrueReceived = $scope.tasksLoaded;

            let preselectedFilters;
            if (filtersFromSessionStorage=='initializing') {
                if (!$scope.contextKey) filtersFromSessionStorage = 'absent';
                else {
                    filtersFromSessionStorage = 'absent';
                    try {
                        const filters = sessionStorage.getItem('brooklyn-task-list-filters-' + $scope.contextKey);
                        if (filters) {
                            // console.debug("Read filters for", $scope.contextKey, filters);
                            preselectedFilters = JSON.parse(filters);
                        }
                    } catch (e) {
                        console.warn("Unable to load filiters from session storage for", $scope.contextKey, e);
                    }
                }
            }
            if (filtersFromSessionStorage=='loaded') {
                // don't auto-compute if taken from session storage
            } else {

                $scope.filters = {available: {}, selectedFilters: {}};
                setFiltersForTasks($scope, isActivityChildren);

                if (preselectedFilters) {
                    try {
                        if ($scope.selectedFilters) Object.entries($scope.selectedFilters, (k,v) => selectFilter(k, v, false));

                        $scope.selectedFilters = {};
                        preselectedFilters.forEach(fid => {
                            const f = $scope.filters.available[fid];
                            if (!f) {
                                // don't keep retrying the load, unless tasks aren't loaded yet
                                if (!$scope.tasksLoaded) {
                                    filtersFromSessionStorage = 'initializing';  // we don't have all the filters yet
                                }
                            } else {
                                selectFilter(fid, f, true);
                            }
                        });
                        filtersFromSessionStorage = 'loaded';
                    } catch (e) {
                        filtersFromSessionStorage = 'absent';
                        console.warn("Unable to process filiters from session storage for", $scope.contextKey, preselectedFilters, e);
                    }
                }

                if (filtersFromSessionStorage == 'absent') {

                    selectFilter("_top", true);
                    selectFilter("_anyTypeTag", true);
                    if ($scope.taskType) {
                        if ($scope.taskType == "ALL") {
                            selectFilter("_top", false);
                        } else {
                            selectFilter($scope.taskType);
                        }
                    } else {
                        selectFilter('_cross_entity');
                        selectFilter('_all_effectors');
                        selectFilter('TOP-LEVEL');
                        selectFilter('EFFECTOR');
                        selectFilter('WORKFLOW');
                        selectFilter('_periodic');
                        selectFilter('_other_entity');

                        if (isActivityChildren) {
                            // in children mode we also want sub-tasks
                            // (previously selected no filters in subtask view)
                            selectFilter('SUB-TASK');
                        }
                    }
                    if (!isActivityChildren) selectFilter("_workflowStepsHidden");
                    selectFilter("_workflowReplayedTopLevel");
                    selectFilter("_workflowNonLastReplayHidden");
                    selectFilter("_workflowCompletedWithoutTaskHidden");

                    // pick other filter combos until we get some conetnt
                    if ($scope.tasksFilteredByTag.length == 0) {
                        selectFilter('INITIALIZATION');
                    }
                    if ($scope.tasksFilteredByTag.length == 0) {
                        selectFilter("_anyTypeTag", true);
                    }
                    if (!isActivityChildren && $scope.tasksFilteredByTag.length == 0) {
                        selectFilter("_top", false);
                    }
                }
            }

            $scope.recomputeTasks();
        }