@@ -101,7 +101,12 @@ function renderEditorButtons(contentElement, cdata, settings, wfsData, selectedG
101101
102102 if ( ! selectedGeometryId ) {
103103 if ( isAddingGeometriesAllowed ( cdata , settings ) ) {
104- buttons . push ( createCreateGeometryButton ( contentElement , cdata , settings , wfsData , extent ) ) ;
104+ if ( getBaseConfiguration ( ) . show_upload_button ) {
105+ buttons . push ( createUploadGeometryButton ( contentElement , cdata , settings , wfsData , extent ) ) ;
106+ buttons . push ( createCreateGeometryButton ( contentElement , cdata , settings , wfsData , extent , true ) ) ;
107+ } else {
108+ buttons . push ( createCreateGeometryButton ( contentElement , cdata , settings , wfsData , extent ) ) ;
109+ }
105110 buttons . push ( createLinkExistingGeometryButton ( contentElement , cdata , settings ) ) ;
106111 }
107112 } else {
@@ -148,14 +153,24 @@ function createDeleteGeometryButton(contentElement, cdata, settings, uuid) {
148153 } ) ;
149154}
150155
151- function createCreateGeometryButton ( contentElement , cdata , settings , wfsData , extent ) {
156+ function createCreateGeometryButton ( contentElement , cdata , settings , wfsData , extent , showDrawLabel = false ) {
152157 return new CUI . Button ( {
153- text : $$ ( 'custom.data.type.nfis.geometry.createNewGeometry' ) ,
158+ text : showDrawLabel
159+ ? $$ ( 'custom.data.type.nfis.geometry.drawNewGeometry' )
160+ : $$ ( 'custom.data.type.nfis.geometry.createNewGeometry' ) ,
154161 icon_left : new CUI . Icon ( { class : 'fa-plus' } ) ,
155162 onClick : ( ) => createGeometry ( contentElement , cdata , settings , wfsData , extent )
156163 } ) ;
157164}
158165
166+ function createUploadGeometryButton ( contentElement , cdata , settings , wfsData , extent ) {
167+ return new CUI . Button ( {
168+ text : $$ ( 'custom.data.type.nfis.geometry.uploadNewGeometry' ) ,
169+ icon_left : new CUI . Icon ( { class : 'fa-upload' } ) ,
170+ onClick : ( ) => createGeometry ( contentElement , cdata , settings , wfsData , extent , true )
171+ } ) ;
172+ }
173+
159174function createLinkExistingGeometryButton ( contentElement , cdata , settings ) {
160175 const label = $$ ( 'custom.data.type.nfis.geometry.linkExistingGeometry' ) ;
161176 return new CUI . Button ( {
@@ -176,12 +191,12 @@ function editGeometry(contentElement, cdata, settings, wfsData, uuid) {
176191 openEditGeometryModal ( contentElement , cdata , settings , wfsData ) ;
177192}
178193
179- function createGeometry ( contentElement , cdata , settings , wfsData , extent ) {
194+ function createGeometry ( contentElement , cdata , settings , wfsData , extent , upload = false ) {
180195 const newGeometryId = window . crypto . randomUUID ( ) ;
181196 navigator . clipboard . writeText ( newGeometryId ) ;
182- window . open ( getEditGeometryUrl ( settings , wfsData , extent ) , '_blank' ) ;
197+ window . open ( getEditGeometryUrl ( settings , wfsData , extent , upload ) , '_blank' ) ;
183198 openCreateGeometryModal ( contentElement , cdata , settings , newGeometryId ) ;
184- } ;
199+ }
185200
186201function openEditGeometryModal ( contentElement , cdata , settings ) {
187202 const modalDialog = new CUI . ConfirmationDialog ( {
@@ -529,13 +544,19 @@ function getViewGeometriesUrl(extent) {
529544 return url + 'zoomToExtent=' + extent . join ( ',' ) ;
530545}
531546
532- function getEditGeometryUrl ( settings , wfsData , extent ) {
547+ function getEditGeometryUrl ( settings , wfsData , extent , upload = false ) {
533548 let url = getMasterportalUrl ( ) ;
534549 const layerIds = getMasterportalLayerIds ( settings . fieldConfiguration , wfsData ) ;
535- if ( ! url || ! layerIds . length ) return '' ;
550+ if ( ! url ) return '' ;
536551
537552 if ( extent ) url += 'zoomToExtent=' + extent . join ( ',' ) + '&' ;
538- return url + 'isinitopen=wfst&layerids=' + layerIds . join ( ',' ) ;
553+ url += upload
554+ ? 'menu={%22secondary%22:{%22currentComponent%22:%22wfstUploader%22}}'
555+ : 'isinitopen=wfst' ;
556+
557+ if ( layerIds ?. length ) url += '&layerids=' + layerIds . join ( ',' ) ;
558+
559+ return url ;
539560}
540561
541562function getMasterportalLayerIds ( fieldConfiguration , wfsData ) {
0 commit comments