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

geosolutions-it / MapStore2 / 15560777340

10 Jun 2025 01:25PM UTC coverage: 76.954% (-0.04%) from 76.993%
15560777340

Pull #11026

github

web-flow
Merge 9eb3869d2 into 710995799
Pull Request #11026: Update User Guide - Legend filtering for WMS layers

31047 of 48334 branches covered (64.23%)

38674 of 50256 relevant lines covered (76.95%)

36.17 hits per line

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

8.33
/web/client/plugins/widgetbuilder/CatalogServiceEditor.jsx
1
import React, { useState } from 'react';
2
import { isEmpty } from 'lodash';
3

4
import uuid from 'uuid';
5
import CatalogServiceEditorComponent from '../../components/catalog/CatalogServiceEditor';
6
import { DEFAULT_ALLOWED_PROVIDERS } from '../MetadataExplorer';
7

8
const emptyService = {
1✔
9
    url: "",
10
    type: "wms",
11
    title: "",
12
    isNew: true,
13
    showAdvancedSettings: false,
14
    showTemplate: false,
15
    hideThumbnail: false,
16
    metadataTemplate: "<p>${description}</p>",
17
    excludeShowTemplate: true
18
};
19

20
const CatalogServiceEditor = ({
1✔
21
    protectedId,
22
    service: defaultService,
23
    catalogServices,
24
    error = () => {},
×
25
    onAddService = () => {},
×
26
    isNew,
27
    dashboardServices,
28
    defaultServices,
29
    defaultSelectedService,
30
    dashboardSelectedService,
31
    ...props
32
}) => {
33
    const [service, setService] = useState(() => {
×
34
        // [dashboardHasEmptyServices] if true => show the default services, else show the dashboard services with its stored configurations
35
        // adding (!dashboardServices) in the condition shows the expected behaviour
36
        const dashboardHasEmptyServices = isEmpty(dashboardSelectedService) && !dashboardServices;
×
37
        return isNew ? emptyService :
×
38
            dashboardHasEmptyServices ?
×
39
                {...defaultServices[defaultSelectedService], old: defaultServices[defaultSelectedService], key: defaultSelectedService, excludeShowTemplate: true} :
40
                {...dashboardServices[dashboardSelectedService || defaultSelectedService], old: dashboardServices[dashboardSelectedService || defaultSelectedService],
×
41
                    key: dashboardSelectedService || defaultSelectedService, excludeShowTemplate: true};
×
42
    });
43

44
    const existingServices = isEmpty(dashboardServices) ? defaultServices : dashboardServices;
×
45

46
    const addNewService = () => {
×
47
        if (service.type !== 'tms' && (!service.title || !service.url)) {
×
48
            error({ title: 'catalog.notification.errorTitle', message: 'catalog.notification.warningAddCatalogService'});
×
49
            return;
×
50
        }
51
        const key = !isNew ? service.key : service.title + uuid();
×
52
        const newService = {
×
53
            ...service, key, protectedId
54
        };
55
        onAddService(newService, existingServices, isNew);
×
56
    };
57

58
    const handleChangeServiceProperty = (property, value) => {
×
59
        setService({ ...service, [property]: value });
×
60
    };
61
    return (<div style={{padding: '1rem', height: '100%'}}>
×
62
        <CatalogServiceEditorComponent
63
            onChangeUrl={(url) => setService({...service, url})}
×
64
            onChangeType={(type) => setService({...service, type})}
×
65
            onChangeTitle={(title) => setService({...service, title})}
×
66
            service={{
67
                ...service,
68
                protectedId
69
            }}
70
            onChangeServiceFormat={(format) => setService({...service, format})}
×
71
            onToggleAdvancedSettings={() => setService({...service, showAdvancedSettings: !service.showAdvancedSettings})}
×
72
            onAddService={addNewService}
73
            onChangeServiceProperty={handleChangeServiceProperty}
74
            onToggleTemplate={() => setService({...service, showTemplate: !service.showTemplate})}
×
75
            onToggleThumbnail={() => setService({...service, hideThumbnail: !service.hideThumbnail})}
×
76
            serviceTypes={[{ name: "csw", label: "CSW" }, { name: "wms", label: "WMS" },
77
                { name: "wmts", label: "WMTS" }, { name: "tms", label: "TMS", allowedProviders: DEFAULT_ALLOWED_PROVIDERS }, {name: "wfs", label: "WFS"}]}
78
            onChangeMetadataTemplate={(metadataTemplate) => setService({...service, metadataTemplate})}
×
79
            services={existingServices}
80
            {...props}
81
        />
82
    </div>);
83
};
84

85
export default CatalogServiceEditor;
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

© 2026 Coveralls, Inc