• 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

54.55
/web/client/plugins/MapCatalog.jsx
1
/*
2
 * Copyright 2020, 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 React from 'react';
10
import {Glyphicon} from 'react-bootstrap';
11
import { connect } from 'react-redux';
12
import { createStructuredSelector } from 'reselect';
13

14
import { toggleControl } from '../actions/controls';
15
import {
16
    setFilterReloadDelay,
17
    triggerReload,
18
    saveMap,
19
    deleteMap
20
} from '../actions/mapcatalog';
21
import { userSelector } from '../selectors/security';
22
import {
23
    triggerReloadValueSelector,
24
    filterReloadDelaySelector,
25
    mapTypeSelector
26
} from '../selectors/mapcatalog';
27

28
import MapCatalogPanel from '../components/mapcatalog/MapCatalogPanel';
29
import Message from '../components/I18N/Message';
30
import { createPlugin } from '../utils/PluginsUtils';
31

32
import mapcatalog from '../reducers/mapcatalog';
33
import * as epics from '../epics/mapcatalog';
34
import {mapLayoutValuesSelector} from "../selectors/maplayout";
35
import * as PropTypes from "prop-types";
36
import ResponsivePanel from "../components/misc/panels/ResponsivePanel";
37
import { DEFAULT_PANEL_WIDTH } from '../utils/LayoutUtils';
38

39
/**
40
 * Allows users to existing maps directly on the map.
41
 * @memberof plugins
42
 * @class
43
 * @name MapCatalog
44
 */
45
class MapCatalogComponent extends React.Component {
46
    static propTypes = {
1✔
47
        allow3d: PropTypes.any,
48
        active: PropTypes.any,
49
        mapType: PropTypes.any,
50
        user: PropTypes.any,
51
        triggerReloadValue: PropTypes.any,
52
        filterReloadDelay: PropTypes.any,
53
        onToggleControl: PropTypes.func,
54
        onTriggerReload: PropTypes.func,
55
        onDelete: PropTypes.func,
56
        onSave: PropTypes.func,
57
        dockStyle: PropTypes.object,
58
        size: PropTypes.number
59
    };
60
    static defaultProps = {
1✔
61
        onToggleControl: () => {
62
        }, onTriggerReload: () => {
63
        }, onDelete: () => {
64
        }, onSave: () => {
65
        }, dockStyle: {},
66
        size: DEFAULT_PANEL_WIDTH
67
    };
68

69
    render() {
70
        const {
71
            allow3d,
72
            active,
73
            mapType,
74
            user,
75
            triggerReloadValue,
76
            filterReloadDelay,
77
            onToggleControl,
78
            onTriggerReload,
79
            onDelete,
80
            onSave,
81
            dockStyle,
82
            size,
83
            ...props
84
        } = this.props;
1✔
85
        return (
1✔
86
            <ResponsivePanel
87
                containerStyle={dockStyle}
88
                containerId="map-catalog-container"
89
                containerClassName="dock-container"
90
                className="map-catalog-dock-panel"
91
                open={active}
92
                position="right"
93
                size={size}
94
                glyph="maps-catalog"
95
                title={<Message msgId="mapCatalog.title"/>}
UNCOV
96
                onClose={() => onToggleControl()}
×
97
                style={dockStyle}
98
            >
99
                <MapCatalogPanel
100
                    mapType={mapType}
101
                    user={user}
102
                    triggerReloadValue={triggerReloadValue}
103
                    filterReloadDelay={filterReloadDelay}
104
                    setFilterReloadDelay={props.setFilterReloadDelay}
105
                    onTriggerReload={onTriggerReload}
106
                    onDelete={onDelete}
107
                    onSave={onSave}
UNCOV
108
                    getShareUrl={(map) => map.contextName ?
×
109
                        `context/${map.contextName}/${map.id}` :
110
                        `viewer/${map.id}`
111
                    }
UNCOV
112
                    toggleCatalog={() => onToggleControl()}
×
113
                    shareApi/>
114
            </ResponsivePanel>
115
        );
116
    }
117
}
118

119

120
export default createPlugin('MapCatalog', {
121
    component: connect(createStructuredSelector({
122
        active: state => state.controls && state.controls.mapCatalog && state.controls.mapCatalog.enabled,
1!
123
        mapType: mapTypeSelector,
124
        user: userSelector,
125
        triggerReloadValue: triggerReloadValueSelector,
126
        filterReloadDelay: filterReloadDelaySelector,
127
        dockStyle: state => mapLayoutValuesSelector(state, { height: true, right: true }, true)
1✔
128
    }), {
129
        setFilterReloadDelay,
130
        onToggleControl: toggleControl.bind(null, 'mapCatalog', 'enabled'),
131
        onTriggerReload: triggerReload,
132
        onDelete: deleteMap,
133
        onSave: saveMap
134
    })(MapCatalogComponent),
135
    containers: {
136
        BurgerMenu: {
137
            name: 'mapCatalog',
138
            position: 6,
139
            text: <Message msgId="mapCatalog.title" />,
140
            icon: <Glyphicon glyph="maps-catalog" />,
141
            tooltip: "mapCatalog.tooltip",
UNCOV
142
            action: () => toggleControl('mapCatalog', 'enabled'),
×
143
            priority: 2,
144
            doNotHide: true
145
        },
146
        SidebarMenu: {
147
            name: "mapCatalog",
148
            position: 6,
149
            icon: <Glyphicon glyph="maps-catalog" />,
150
            text: <Message msgId="mapCatalog.title" />,
151
            tooltip: "mapCatalog.tooltip",
UNCOV
152
            action: () => toggleControl('mapCatalog', 'enabled'),
×
153
            toggle: true,
154
            priority: 1,
155
            doNotHide: true
156
        }
157
    },
158
    reducers: {
159
        mapcatalog
160
    },
161
    epics
162
});
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