• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

geosolutions-it / MapStore2 / 19710972030

26 Nov 2025 03:38PM UTC coverage: 76.665% (-0.3%) from 76.929%
19710972030

Pull #11119

github

web-flow
Fix maven publish (#11739)
Pull Request #11119: Layer Selection Plugin on ArcGIS, WFS & WMS layers

32272 of 50209 branches covered (64.28%)

3 of 3 new or added lines in 2 files covered. (100.0%)

3018 existing lines in 249 files now uncovered.

40157 of 52380 relevant lines covered (76.66%)

37.9 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

96.49
/web/client/selectors/rulesmanager.js
1
/**
2
* Copyright 2016, GeoSolutions Sas.
3
* All rights reserved.
4
*
5
* This source code is licensed under the BSD-style license found in the
6
* LICENSE file in the root directory of this source tree.
7
*/
8

9
import { uniq } from 'lodash';
10
import { createSelector } from 'reselect';
11
import Api from '../api/geoserver/GeoFence';
12

13
export const rulesSelector = (state) => {
1✔
14
    if (!state.rulesmanager || !state.rulesmanager.rules) {
2!
UNCOV
15
        return [];
×
16
    }
17
    const rules = state.rulesmanager.rules;
2✔
18
    return rules.map(rule => {
2✔
19
        const formattedRule = {};
2✔
20
        Object.assign(formattedRule, {'id': rule.id});
2✔
21
        Object.assign(formattedRule, {'priority': rule.priority});
2✔
22
        Object.assign(formattedRule, {'roleName': rule.roleName ? rule.roleName : '*'});
2!
23
        Object.assign(formattedRule, {'roleAny': rule.roleAny ? rule.roleAny : '*'});
2!
24
        Object.assign(formattedRule, {'userName': rule.userName ? rule.userName : '*'});
2!
25
        Object.assign(formattedRule, {'userAny': rule.userAny ? rule.userAny : '*'});
2!
26
        Object.assign(formattedRule, {'service': rule.service ? rule.service : '*'});
2!
27
        Object.assign(formattedRule, {'serviceAny': rule.serviceAny ? rule.serviceAny : '*'});
2!
28
        Object.assign(formattedRule, {'request': rule.request ? rule.request : '*'});
2!
29
        Object.assign(formattedRule, {'requestAny': rule.requestAny ? rule.requestAny : '*'});
2!
30
        Object.assign(formattedRule, {'workspace': rule.workspace ? rule.workspace : '*'});
2!
31
        Object.assign(formattedRule, {'workspaceAny': rule.workspaceAny ? rule.workspaceAny : '*'});
2!
32
        Object.assign(formattedRule, {'layer': rule.layer ? rule.layer : '*'});
2!
33
        Object.assign(formattedRule, {'layerAny': rule.layerAny ? rule.layerAny : '*'});
2!
34
        Object.assign(formattedRule, {'access': rule.access});
2✔
35
        // for stand-alone geofence version [multi]
36
        const isStandAloneGeofence = Api.getRuleServiceType() === 'geofence';
2✔
37
        if (isStandAloneGeofence) {
2✔
38
            Object.assign(formattedRule, {'instanceName': rule.instanceName ? rule.instanceName : '*'});
1!
39
            Object.assign(formattedRule, {'instanceAny': rule.instanceAny ? rule.instanceAny : '*'});
1!
40
        }
41
        return formattedRule;
2✔
42
    });
43
};
44

45
export const optionsSelector = (state) => {
1✔
46
    const stateOptions = state.rulesmanager && state.rulesmanager.options || {};
1!
47
    const options = {};
1✔
48
    options.roles = stateOptions.roles;
1✔
49
    options.users = stateOptions.users && stateOptions.users.map(user => user.userName);
1✔
50
    options.workspaces = stateOptions.workspaces
1✔
51
        && stateOptions.workspaces.map(workspace => workspace.name);
1✔
52
    options.layers = stateOptions.layers && stateOptions.layers.records
1✔
53
        && uniq(stateOptions.layers.records.map(layer => layer.dc.identifier.replace(/^.*?:/g, '')));
1✔
54
    options.layersPage = stateOptions.layersPage || 1;
1!
55
    options.layersCount = stateOptions.layersCount || 0;
1!
56
    return options;
1✔
57
};
58
export const EMPTY_FILTERS = {};
1✔
59
export const filterSelector = (state) => state.rulesmanager && state.rulesmanager.filters || EMPTY_FILTERS;
76✔
60
export const selectedRules = (state) => state.rulesmanager && state.rulesmanager.selectedRules || [];
10✔
61
export const activeRuleSelector = (state) => state.rulesmanager && state.rulesmanager.activeRule;
1!
62
export const servicesConfigSel = (state) => state.rulesmanager && state.rulesmanager.services;
20✔
63
export const servicesSelector = createSelector(servicesConfigSel, (services) => ( services && Object.keys(services).map(service => ({value: service, label: service}))
1!
64
));
65
export const targetPositionSelector = (state) => state.rulesmanager && state.rulesmanager.targetPosition || EMPTY_FILTERS;
1!
66
export const activeGridSelector = state => state.rulesmanager && state.rulesmanager.activeGrid;
1!
67

68
// for GS Instances
69
export const selectedGSInstances = (state) => state.rulesmanager && state.rulesmanager.selectedGSInstances || [];
1!
70

71
export const rulesEditorToolbarSelector = createSelector(selectedRules, selectedGSInstances, targetPositionSelector, activeGridSelector, (sel, selGSInstances, {offsetFromTop}, activeGrid) => {
1✔
UNCOV
72
    return {
×
73
        showAdd: sel.length === 0,
74
        showEdit: sel.length === 1,
75
        showInsertBefore: sel.length === 1 && offsetFromTop !== 0,
×
76
        showInsertAfter: sel.length === 1,
77
        showDel: sel.length > 0,
78
        showCache: sel.length === 0,
79
        activeGrid,
80
        // for GS Instances
81
        showAddGSInstance: selGSInstances.length === 0,
82
        showEditGSInstance: selGSInstances.length === 1,
83
        showDelGSInstance: selGSInstances.length > 0
84
    };
85
});
86
export const isRulesManagerConfigured = state => state.localConfig && state.localConfig.plugins && !!state.localConfig.plugins.rulesmanager;
1!
87
export const isEditorActive = state => state.rulesmanager && !!state.rulesmanager.activeRule;
8✔
88
export const triggerLoadSel = state => state.rulesmanager && state.rulesmanager.triggerLoad;
10✔
89
export const isLoading = state => state.rulesmanager && state.rulesmanager.loading;
1!
90
export const geometryStateSel = state => state.rulesmanager && state.rulesmanager.geometryState;
1!
91
// for gs instance
92
export const isEditorActiveGSInstance = state => state.rulesmanager && !!state.rulesmanager.activeGSInstance;
1!
93
export const activeGSInstanceSelector = (state) => state.rulesmanager && state.rulesmanager.activeGSInstance;
1!
94
export const gsInstancesDDListSelector = (state) => state.rulesmanager && state.rulesmanager.instances || [];
23✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc