@eeacms/volto-clms-theme 1.0.41 → 1.0.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +117 -0
- package/Jenkinsfile +17 -19
- package/package.json +5 -3
- package/src/actions/geonetwork/import_geonetwork.js +21 -0
- package/src/actions/index.js +16 -0
- package/src/actions/registry/registry.js +21 -0
- package/src/actions/userschema/userschema.js +17 -0
- package/src/components/Blocks/CclHomeBgImageBlock/CclGreenBgView.jsx +32 -8
- package/src/components/Blocks/CclHomeBgImageBlock/CclHomeBgImageBlockEdit.jsx +5 -1
- package/src/components/Blocks/CclHomeBgImageBlock/CclHomeBgImageSchema.js +36 -7
- package/src/components/Blocks/CclRelatedListingBlock/CclRelatedListingEdit.jsx +95 -0
- package/src/components/Blocks/CclRelatedListingBlock/CclRelatedListingView.jsx +67 -0
- package/src/components/Blocks/CclRelatedListingBlock/schema.js +34 -0
- package/src/components/Blocks/CclTextLinkCarouselBlock/CclTextLinkCarouselEdit.jsx +38 -0
- package/src/components/Blocks/CclTextLinkCarouselBlock/CclTextLinkCarouselView.jsx +41 -0
- package/src/components/Blocks/CclTextLinkCarouselBlock/TextLinkCarouselSchema.js +18 -0
- package/src/components/Blocks/CustomTemplates/VoltoListingBlock/CclListingWorkOpportunities.jsx +5 -15
- package/src/components/Blocks/CustomTemplates/VoltoTabsBlock/CclCarouselView.jsx +39 -13
- package/src/components/Blocks/CustomTemplates/VoltoTabsBlock/CclProductTabsView.jsx +6 -1
- package/src/components/Blocks/CustomTemplates/VoltoTabsBlock/CclVerticalFaqTabsView.jsx +19 -60
- package/src/components/Blocks/CustomTemplates/VoltoTabsBlock/FixTemplates.jsx +19 -0
- package/src/components/Blocks/CustomTemplates/VoltoTabsBlock/custom.less +55 -1
- package/src/components/Blocks/CustomTemplates/VoltoTabsBlock/index.js +2 -0
- package/src/components/Blocks/customBlocks.js +97 -26
- package/src/components/CLMSDatasetDetailView/CLMSDatasetDetailView.jsx +175 -15
- package/src/components/CLMSDatasetDetailView/DataSetInfoContent.jsx +20 -13
- package/src/components/CLMSDatasetDetailView/MetadataContent.jsx +26 -7
- package/src/components/CLMSDownloadCartView/CLMSDownloadCartView.jsx +5 -1
- package/src/components/CLMSProfileView/CLMSApiTokensView.jsx +55 -33
- package/src/components/CLMSProfileView/CLMSProfileView.jsx +28 -15
- package/src/components/CLMSProfileView/CLMSUserProfileView.jsx +37 -64
- package/src/components/CclCard/CclCard.jsx +1 -7
- package/src/components/CclCard/cards.less +1 -1
- package/src/components/CclLoginModal/CclLoginModal.jsx +83 -0
- package/src/components/CclLoginModal/ccl-login-modal.css +3 -0
- package/src/components/CclModal/CclModal.jsx +20 -5
- package/src/components/Widgets/ContactWidget.jsx +91 -0
- package/src/components/Widgets/DistributionInfoWidget.jsx +40 -0
- package/src/components/Widgets/GeonetworkIdentifiersWidget.jsx +48 -0
- package/src/components/Widgets/TextLinkWidget.jsx +41 -0
- package/src/constants/ActionTypes.js +1 -0
- package/src/customizations/volto/components/theme/Header/Header.jsx +31 -31
- package/src/customizations/volto/components/theme/SearchWidget/SearchWidget.jsx +11 -3
- package/src/index.js +13 -8
- package/src/reducers/geonetwork/import_geonetwork_reducer.js +45 -0
- package/src/reducers/index.js +9 -3
- package/src/reducers/registry/registry.js +46 -0
- package/src/reducers/tokens/tokens.js +14 -10
- package/src/reducers/userschema/userschema.js +48 -0
- package/theme/clms/css/breadcrumbs.css +1 -0
- package/theme/clms/css/carousel.css +109 -11
- package/theme/clms/css/forms.css +6 -1
- package/theme/clms/css/home.css +29 -4
- package/theme/clms/css/maps.css +4 -0
- package/theme/clms/css/maps.less +4 -0
- package/theme/clms/css/styles.less +12 -3
- package/src/components/Blocks/CclTechnicalLibrariesList/CclTechnicalLibrariesListEdit.jsx +0 -63
- package/src/components/Blocks/CclTechnicalLibrariesList/CclTechnicalLibrariesListView.jsx +0 -43
- package/src/components/Blocks/CclTechnicalLibrariesList/TechnicalLibrariesListSchema.js +0 -17
- package/src/components/CLMSServiceDeskView/CLMSServiceDeskView.jsx +0 -113
|
@@ -1,4 +1,13 @@
|
|
|
1
1
|
/* Slider */
|
|
2
|
+
|
|
3
|
+
.tabs-block .slick-arrows .slick-prev:before,
|
|
4
|
+
.tabs-block .slick-arrows .slick-next:before {
|
|
5
|
+
display: block;
|
|
6
|
+
font-size: 2.2222222222rem;
|
|
7
|
+
font-weight: 900;
|
|
8
|
+
opacity: 1;
|
|
9
|
+
}
|
|
10
|
+
|
|
2
11
|
.slick-slider {
|
|
3
12
|
position: relative;
|
|
4
13
|
|
|
@@ -113,8 +122,13 @@
|
|
|
113
122
|
}
|
|
114
123
|
|
|
115
124
|
/* Arrows */
|
|
116
|
-
.slick-prev,
|
|
117
|
-
.slick-next {
|
|
125
|
+
.slick-slider .slick-prev,
|
|
126
|
+
.slick-slider .slick-next {
|
|
127
|
+
display: none !important;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.slick-arrows .slick-prev,
|
|
131
|
+
.slick-arrows .slick-next {
|
|
118
132
|
position: absolute;
|
|
119
133
|
top: 50%;
|
|
120
134
|
|
|
@@ -212,14 +226,9 @@
|
|
|
212
226
|
}
|
|
213
227
|
|
|
214
228
|
.slick-dots {
|
|
215
|
-
position:
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
width: 100%;
|
|
219
|
-
padding: 0;
|
|
220
|
-
margin: 0;
|
|
221
|
-
list-style: none;
|
|
222
|
-
text-align: center;
|
|
229
|
+
position: absolute;
|
|
230
|
+
z-index: 1;
|
|
231
|
+
bottom: 1.75rem;
|
|
223
232
|
}
|
|
224
233
|
|
|
225
234
|
.slick-dots li {
|
|
@@ -305,11 +314,46 @@
|
|
|
305
314
|
padding-bottom: 2.5rem;
|
|
306
315
|
padding-left: 2rem;
|
|
307
316
|
}
|
|
308
|
-
@media (max-width:
|
|
317
|
+
@media (max-width: 820px) {
|
|
309
318
|
.ccl-list-carousel {
|
|
310
319
|
padding-right: 0;
|
|
311
320
|
padding-left: 0;
|
|
312
321
|
}
|
|
322
|
+
|
|
323
|
+
.slick-prev,
|
|
324
|
+
.slick-next {
|
|
325
|
+
position: absolute !important;
|
|
326
|
+
top: 50% !important;
|
|
327
|
+
|
|
328
|
+
display: block !important;
|
|
329
|
+
|
|
330
|
+
width: 20px !important;
|
|
331
|
+
height: 20px !important;
|
|
332
|
+
padding: 0 !important;
|
|
333
|
+
border: none !important;
|
|
334
|
+
background: transparent !important;
|
|
335
|
+
|
|
336
|
+
color: transparent !important;
|
|
337
|
+
|
|
338
|
+
cursor: pointer !important;
|
|
339
|
+
font-size: 0 !important;
|
|
340
|
+
line-height: 0 !important;
|
|
341
|
+
outline: none !important;
|
|
342
|
+
-webkit-transform: translate(0, -50%) !important;
|
|
343
|
+
-ms-transform: translate(0, -50%) !important;
|
|
344
|
+
transform: translate(0, -50%) !important;
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
.slick-prev {
|
|
348
|
+
left: 0 !important;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
.slick-next {
|
|
352
|
+
right: 20px !important;
|
|
353
|
+
}
|
|
354
|
+
.slick-dots{
|
|
355
|
+
display: none;
|
|
356
|
+
}
|
|
313
357
|
}
|
|
314
358
|
|
|
315
359
|
.ccl-list-carousel .slick-arrow {
|
|
@@ -430,3 +474,57 @@
|
|
|
430
474
|
.tabs-block .slick-slider:not(.slick-vertical) .slick-slide {
|
|
431
475
|
padding-top: 0;
|
|
432
476
|
}
|
|
477
|
+
|
|
478
|
+
/* .ccl-banner-top-bar {
|
|
479
|
+
display: flex;
|
|
480
|
+
align-items: flex-end;
|
|
481
|
+
justify-content: flex-end;
|
|
482
|
+
margin-right: auto;
|
|
483
|
+
margin-left: auto;
|
|
484
|
+
} */
|
|
485
|
+
|
|
486
|
+
/* Banner info */
|
|
487
|
+
.ccl-banner-info {
|
|
488
|
+
position: absolute;
|
|
489
|
+
z-index: 1;
|
|
490
|
+
right: 0;
|
|
491
|
+
bottom: 2rem;
|
|
492
|
+
display: none;
|
|
493
|
+
width: 100%;
|
|
494
|
+
padding: 1.5rem;
|
|
495
|
+
background: #ffffffd9;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
@media (min-width: 768px) {
|
|
499
|
+
.ccl-banner-info {
|
|
500
|
+
width: 30%;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
.ccl-banner-info .ccl-banner-info-title {
|
|
505
|
+
margin-bottom: 1rem;
|
|
506
|
+
color: black !important;
|
|
507
|
+
font-size: 1rem !important;
|
|
508
|
+
font-weight: bold;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
.ccl-banner-info .ccl-banner-info-content p {
|
|
512
|
+
margin-bottom: 0.5rem;
|
|
513
|
+
font-size: 1rem;
|
|
514
|
+
line-height: 1.125rem;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
.ccl-banner-info-link {
|
|
518
|
+
display: inline-block;
|
|
519
|
+
width: 100%;
|
|
520
|
+
text-align: right;
|
|
521
|
+
}
|
|
522
|
+
|
|
523
|
+
.tabs-block > .styled {
|
|
524
|
+
display: block !important;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
.tabs-block .slick-slider {
|
|
528
|
+
display: block !important;
|
|
529
|
+
}
|
|
530
|
+
|
package/theme/clms/css/forms.css
CHANGED
package/theme/clms/css/home.css
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
/*
|
|
4
4
|
*/
|
|
5
|
-
.contenttype-lrf:not(.section-cart)
|
|
5
|
+
.contenttype-lrf:not(.section-cart):not(.section-profile)
|
|
6
|
+
#page-document.ui.container {
|
|
6
7
|
width: calc(100vmax - (100vmax - 100%)) !important;
|
|
7
8
|
margin: 0 0 !important;
|
|
8
9
|
}
|
|
@@ -11,16 +12,18 @@
|
|
|
11
12
|
margin-bottom: 0.5rem;
|
|
12
13
|
}
|
|
13
14
|
|
|
14
|
-
.contenttype-lrf:not(.section-cart)
|
|
15
|
+
.contenttype-lrf:not(.section-cart):not(.section-profile)
|
|
16
|
+
.ui.basic.segment.content-area {
|
|
15
17
|
padding-top: 0;
|
|
16
18
|
margin-top: 0;
|
|
17
19
|
}
|
|
18
20
|
|
|
19
|
-
.contenttype-lrf:not(.section-cart) .block {
|
|
21
|
+
.contenttype-lrf:not(.section-cart):not(.section-profile) .block {
|
|
20
22
|
margin-bottom: 0;
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
.contenttype-lrf:not(.section-cart)
|
|
25
|
+
.contenttype-lrf:not(.section-cart):not(.section-profile)
|
|
26
|
+
.ui.basic.segment.content-area {
|
|
24
27
|
padding-bottom: 0;
|
|
25
28
|
margin-bottom: 0;
|
|
26
29
|
}
|
|
@@ -71,6 +74,22 @@
|
|
|
71
74
|
color: #fff;
|
|
72
75
|
}
|
|
73
76
|
|
|
77
|
+
@media (max-width: 1200px) {
|
|
78
|
+
.ccl-banner-top-bar {
|
|
79
|
+
height: 5rem;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
@media (max-width: 420px) {
|
|
83
|
+
.ccl-banner-top-bar {
|
|
84
|
+
height: 7rem;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.ccl-banner-top-bar .ccl-container .ccl-banner-top-bar-right {
|
|
89
|
+
margin-left: 0.5rem;
|
|
90
|
+
cursor: pointer;
|
|
91
|
+
}
|
|
92
|
+
|
|
74
93
|
.ccl-banner-top-bar .ccl-container {
|
|
75
94
|
display: flex;
|
|
76
95
|
height: 100%;
|
|
@@ -78,6 +97,12 @@
|
|
|
78
97
|
justify-content: space-between;
|
|
79
98
|
}
|
|
80
99
|
|
|
100
|
+
.ccl-banner-top-bar-left .ccl-banner-top-bar-right {
|
|
101
|
+
overflow: hidden;
|
|
102
|
+
text-overflow: ellipsis;
|
|
103
|
+
white-space: nowrap;
|
|
104
|
+
}
|
|
105
|
+
|
|
81
106
|
.ccl-banner-top-bar .ccl-banner-top-bar-left,
|
|
82
107
|
.ccl-banner-top-bar .ccl-banner-top-bar-right {
|
|
83
108
|
overflow: hidden;
|
package/theme/clms/css/maps.css
CHANGED
package/theme/clms/css/maps.less
CHANGED
|
@@ -101,7 +101,9 @@ li {
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
.ul-list li::marker,
|
|
104
|
-
.ol-list li::marker
|
|
104
|
+
.ol-list li::marker,
|
|
105
|
+
ul > li,
|
|
106
|
+
ol > li {
|
|
105
107
|
color: #a0b128;
|
|
106
108
|
}
|
|
107
109
|
|
|
@@ -145,13 +147,15 @@ a:hover,
|
|
|
145
147
|
margin-left: auto;
|
|
146
148
|
}
|
|
147
149
|
|
|
148
|
-
body.contenttype-lrf:not(.section-cart) main .ccl-container {
|
|
150
|
+
body.contenttype-lrf:not(.section-cart):not(.profilecart) main .ccl-container {
|
|
149
151
|
max-width: 1400px;
|
|
150
152
|
margin-right: auto;
|
|
151
153
|
margin-left: auto;
|
|
152
154
|
}
|
|
153
155
|
|
|
154
|
-
body:not(.contenttype-lrf:not(.section-cart)
|
|
156
|
+
body:not(.contenttype-lrf:not(.section-cart):not(.section-profile))
|
|
157
|
+
main
|
|
158
|
+
.ccl-container {
|
|
155
159
|
max-width: 100%;
|
|
156
160
|
padding: 0;
|
|
157
161
|
}
|
|
@@ -1111,4 +1115,9 @@ body.section-map-viewer #page-document.ui.container {
|
|
|
1111
1115
|
body.searchlib-page div#page-document {
|
|
1112
1116
|
top: 0em !important;
|
|
1113
1117
|
width: 1127px !important;
|
|
1118
|
+
max-width: 1127px !important;
|
|
1119
|
+
}
|
|
1120
|
+
|
|
1121
|
+
.metadata.image img {
|
|
1122
|
+
max-width: 100%;
|
|
1114
1123
|
}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { TechnicalLibrariesListSchema } from './TechnicalLibrariesListSchema';
|
|
3
|
-
import { SidebarPortal } from '@plone/volto/components';
|
|
4
|
-
import InlineForm from '@plone/volto/components/manage/Form/InlineForm';
|
|
5
|
-
import { useSelector, useDispatch } from 'react-redux';
|
|
6
|
-
import { searchContent } from '@plone/volto/actions';
|
|
7
|
-
import CclCard from '@eeacms/volto-clms-theme/components/CclCard/CclCard';
|
|
8
|
-
|
|
9
|
-
const CclTechnicalLibrariesListEdit = (props) => {
|
|
10
|
-
const {
|
|
11
|
-
block,
|
|
12
|
-
data,
|
|
13
|
-
onChangeBlock,
|
|
14
|
-
selected,
|
|
15
|
-
id,
|
|
16
|
-
properties,
|
|
17
|
-
metadata,
|
|
18
|
-
} = props;
|
|
19
|
-
const dispatch = useDispatch();
|
|
20
|
-
const searchSubrequests = useSelector((state) => state.search.subrequests);
|
|
21
|
-
const path = metadata ? metadata['@id'] : properties['@id'];
|
|
22
|
-
let libraries = searchSubrequests?.[props.id]?.items || [];
|
|
23
|
-
React.useEffect(() => {
|
|
24
|
-
dispatch(
|
|
25
|
-
searchContent(
|
|
26
|
-
path,
|
|
27
|
-
{
|
|
28
|
-
fullobjects: 1,
|
|
29
|
-
portal_type: 'TechnicalLibrary',
|
|
30
|
-
path: '/',
|
|
31
|
-
associated_products: metadata['id'],
|
|
32
|
-
},
|
|
33
|
-
id,
|
|
34
|
-
),
|
|
35
|
-
);
|
|
36
|
-
}, [path, data, id, metadata, dispatch]);
|
|
37
|
-
|
|
38
|
-
return (
|
|
39
|
-
<>
|
|
40
|
-
<div className="technical-libraries">
|
|
41
|
-
<h2>Technical Libraries</h2>
|
|
42
|
-
{libraries.map((item, index) => (
|
|
43
|
-
<CclCard key={index} type="doc" card={item} />
|
|
44
|
-
))}
|
|
45
|
-
</div>
|
|
46
|
-
<SidebarPortal selected={selected}>
|
|
47
|
-
<InlineForm
|
|
48
|
-
schema={TechnicalLibrariesListSchema()}
|
|
49
|
-
title="TechnicalLibraries List block"
|
|
50
|
-
onChangeField={(id, value) => {
|
|
51
|
-
onChangeBlock(block, {
|
|
52
|
-
...data,
|
|
53
|
-
[id]: value,
|
|
54
|
-
});
|
|
55
|
-
}}
|
|
56
|
-
formData={data}
|
|
57
|
-
/>
|
|
58
|
-
</SidebarPortal>
|
|
59
|
-
</>
|
|
60
|
-
);
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
export default CclTechnicalLibrariesListEdit;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useSelector, useDispatch } from 'react-redux';
|
|
3
|
-
import { searchContent } from '@plone/volto/actions';
|
|
4
|
-
import CclCard from '@eeacms/volto-clms-theme/components/CclCard/CclCard';
|
|
5
|
-
|
|
6
|
-
const CclTechnicalLibrariesListView = (props) => {
|
|
7
|
-
const { data, id, properties, metadata } = props;
|
|
8
|
-
const dispatch = useDispatch();
|
|
9
|
-
const searchSubrequests = useSelector((state) => state.search.subrequests);
|
|
10
|
-
const path = metadata ? metadata['@id'] : properties['@id'];
|
|
11
|
-
let libraries = searchSubrequests?.[props.id]?.items || [];
|
|
12
|
-
|
|
13
|
-
React.useEffect(() => {
|
|
14
|
-
dispatch(
|
|
15
|
-
searchContent(
|
|
16
|
-
path,
|
|
17
|
-
{
|
|
18
|
-
fullobjects: 1,
|
|
19
|
-
portal_type: 'TechnicalLibrary',
|
|
20
|
-
path: '/',
|
|
21
|
-
associated_products: metadata['id'],
|
|
22
|
-
},
|
|
23
|
-
id,
|
|
24
|
-
),
|
|
25
|
-
);
|
|
26
|
-
}, [path, data, id, metadata, dispatch]);
|
|
27
|
-
|
|
28
|
-
return (
|
|
29
|
-
<>
|
|
30
|
-
<div className="technical-libraries">
|
|
31
|
-
{libraries.length > 0 ? (
|
|
32
|
-
libraries.map((item, index) => (
|
|
33
|
-
<CclCard key={index} type="doc" card={item} />
|
|
34
|
-
))
|
|
35
|
-
) : (
|
|
36
|
-
<p>There are no technical libraries for this product.</p>
|
|
37
|
-
)}
|
|
38
|
-
</div>
|
|
39
|
-
</>
|
|
40
|
-
);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export default CclTechnicalLibrariesListView;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export const TechnicalLibrariesListSchema = () => ({
|
|
2
|
-
title: 'TechnicalLibraries List block',
|
|
3
|
-
fieldsets: [
|
|
4
|
-
{
|
|
5
|
-
id: 'default',
|
|
6
|
-
title: 'Default',
|
|
7
|
-
fields: ['title'],
|
|
8
|
-
},
|
|
9
|
-
],
|
|
10
|
-
properties: {
|
|
11
|
-
title: {
|
|
12
|
-
title: 'Title',
|
|
13
|
-
type: 'string',
|
|
14
|
-
},
|
|
15
|
-
},
|
|
16
|
-
required: [],
|
|
17
|
-
});
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/* eslint-disable jsx-a11y/label-has-associated-control */
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import CclButton from '@eeacms/volto-clms-theme/components/CclButton/CclButton';
|
|
4
|
-
|
|
5
|
-
const ServiceDeskView = () => {
|
|
6
|
-
return (
|
|
7
|
-
<>
|
|
8
|
-
<div className="ui container">
|
|
9
|
-
<section className="page-section">
|
|
10
|
-
<h1 className="page-title">Service desk</h1>
|
|
11
|
-
<div className="page-description">
|
|
12
|
-
<p>
|
|
13
|
-
Have you checked our <a href="/en/faq">FAQ section</a>? If you
|
|
14
|
-
haven't found an answer to your problem or question, please fill
|
|
15
|
-
in this form to contact the Copernicus land service desk.
|
|
16
|
-
</p>
|
|
17
|
-
<p>
|
|
18
|
-
We will try to respond as soon as possible within office working
|
|
19
|
-
hours from Monday to Friday.
|
|
20
|
-
</p>
|
|
21
|
-
<p>Please note, that the support is provided in English only.</p>
|
|
22
|
-
</div>
|
|
23
|
-
<div className="ccl-container">
|
|
24
|
-
<form className="ccl-form user-form contact-form">
|
|
25
|
-
<div className="ccl-fieldset">
|
|
26
|
-
<div className="ccl-form-group">
|
|
27
|
-
<label
|
|
28
|
-
className="ccl-form-label"
|
|
29
|
-
htmlFor="contact_form_email"
|
|
30
|
-
>
|
|
31
|
-
E-mail
|
|
32
|
-
<span className="label-required">*</span>
|
|
33
|
-
</label>
|
|
34
|
-
<input
|
|
35
|
-
// maxlength="10"
|
|
36
|
-
type="text"
|
|
37
|
-
className="ccl-text-input"
|
|
38
|
-
id="contact_form_email"
|
|
39
|
-
name=""
|
|
40
|
-
placeholder="Enter an email address"
|
|
41
|
-
/>
|
|
42
|
-
</div>
|
|
43
|
-
<div className="ccl-form-group">
|
|
44
|
-
<label
|
|
45
|
-
className="ccl-form-label"
|
|
46
|
-
htmlFor="contact_form_subject"
|
|
47
|
-
>
|
|
48
|
-
Subject
|
|
49
|
-
<span className="label-required">*</span>
|
|
50
|
-
</label>
|
|
51
|
-
<span className="form-tip">
|
|
52
|
-
A short indication of the problem, question or issue, i.e.
|
|
53
|
-
login, download, errors in the product, thematic question
|
|
54
|
-
etc.
|
|
55
|
-
</span>
|
|
56
|
-
<input
|
|
57
|
-
type="text"
|
|
58
|
-
className="ccl-text-input"
|
|
59
|
-
id="contact_form_subject"
|
|
60
|
-
name=""
|
|
61
|
-
placeholder="Enter an subject"
|
|
62
|
-
/>
|
|
63
|
-
</div>
|
|
64
|
-
<div className="ccl-form-group">
|
|
65
|
-
<label
|
|
66
|
-
className="ccl-form-label"
|
|
67
|
-
htmlFor="contact_form_message"
|
|
68
|
-
>
|
|
69
|
-
Message
|
|
70
|
-
<span className="label-required">*</span>
|
|
71
|
-
</label>
|
|
72
|
-
<span className="form-tip">
|
|
73
|
-
A short description of the problem, question or issue.
|
|
74
|
-
Please don't forget to specify which product(s) you are
|
|
75
|
-
referring to in your message.
|
|
76
|
-
</span>
|
|
77
|
-
<textarea
|
|
78
|
-
className="ccl-textarea"
|
|
79
|
-
id="contact_form_message"
|
|
80
|
-
name=""
|
|
81
|
-
cols="30"
|
|
82
|
-
rows="10"
|
|
83
|
-
placeholder="Enter a message"
|
|
84
|
-
></textarea>
|
|
85
|
-
</div>
|
|
86
|
-
<div className="ccl-form-group">
|
|
87
|
-
<label
|
|
88
|
-
className="ccl-form-label"
|
|
89
|
-
htmlFor="contact_form_verification"
|
|
90
|
-
>
|
|
91
|
-
Verification
|
|
92
|
-
<span className="label-required">*</span>
|
|
93
|
-
</label>
|
|
94
|
-
<div className="validation-image"></div>
|
|
95
|
-
<input
|
|
96
|
-
type="text"
|
|
97
|
-
className="ccl-text-input"
|
|
98
|
-
id="contact_form_verification"
|
|
99
|
-
name=""
|
|
100
|
-
placeholder="Enter validation code"
|
|
101
|
-
/>
|
|
102
|
-
</div>
|
|
103
|
-
</div>
|
|
104
|
-
<CclButton mode="default">Submit</CclButton>
|
|
105
|
-
</form>
|
|
106
|
-
</div>
|
|
107
|
-
</section>
|
|
108
|
-
</div>
|
|
109
|
-
</>
|
|
110
|
-
);
|
|
111
|
-
};
|
|
112
|
-
|
|
113
|
-
export default ServiceDeskView;
|