diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java index 6a51d43..81867e6 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java @@ -387,7 +387,7 @@ public class GeoPortalDataEntryApp implements EntryPoint { // resetUI(); if (vr.getAsJSONString() != null) { - modalContainerPanel.add(new ReportTemplateToHTML(vr.getAsJSONString())); + modalContainerPanel.add(new ReportTemplateToHTML(vr.getAsJSONString(), false)); } } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.ui.xml index 58d031d..346c494 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.ui.xml +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.ui.xml @@ -70,46 +70,49 @@ - - - - List of Projects - - - - - - - - - Reload Projects - - - - - Show on Map - Publication Report - Edit - Delete Project - - - -
- Go to bottom + + + + Show on Map + Publication Report + Edit + Delete Project + + + + + + List of Projects + + + + + + + + + Reload Projects + + + + +
+ Go to bottom +
+ + +
+ Go to top +
- - -
- Go to top -
-
-
+ +
diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/EditModeRecord.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/EditModeRecord.ui.xml index fdeac36..c9d898c 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/EditModeRecord.ui.xml +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/EditModeRecord.ui.xml @@ -56,9 +56,9 @@ - Update the file/s - By choosing a section (e.g. "relazione") and - uploading new file/s the old one/s will be replaced + Manage the file/s + You can choose a section (e.g. "piante") and + manage the existing file/s (by removing it/them) and uploading new one/s

At the end of the changes press the "Update" button to diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/UpdateFileset.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/UpdateFileset.java index b7617f3..2f75123 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/UpdateFileset.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/UpdateFileset.java @@ -1,7 +1,9 @@ package org.gcube.portlets.user.geoportaldataentry.client.ui.edit; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.gcube.application.geoportalcommon.shared.products.BaseConcessioneDV; import org.gcube.application.geoportalcommon.shared.products.ConcessioneDV; @@ -25,6 +27,7 @@ import com.github.gwtbootstrap.client.ui.ControlGroup; import com.github.gwtbootstrap.client.ui.Controls; import com.github.gwtbootstrap.client.ui.Label; import com.github.gwtbootstrap.client.ui.ListBox; +import com.github.gwtbootstrap.client.ui.constants.IconType; import com.github.gwtbootstrap.client.ui.constants.LabelType; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Style.Unit; @@ -52,7 +55,7 @@ import com.google.gwt.user.client.ui.Widget; */ public class UpdateFileset extends Composite { - private static final String _FORM_FIELDS_SIZE = "740px"; + private static final String _FORM_WIDTH_FIELDS_SIZE = "730px"; private static UpdateFilesetUiBinder uiBinder = GWT.create(UpdateFilesetUiBinder.class); @@ -96,9 +99,11 @@ public class UpdateFileset extends Composite { private HandlerManager uiBus = new HandlerManager(null); private MetaDataField fieldUploadWidget; - + private Integer pathIndex = null; + private Map mapForCCUploading = null; + /** * Instantiates a new update fileset. * @@ -113,7 +118,7 @@ public class UpdateFileset extends Composite { for (String path : listFileSetPaths) { listBoxPaths.addItem(path); } - listBoxPaths.setWidth(_FORM_FIELDS_SIZE); + listBoxPaths.setWidth(_FORM_WIDTH_FIELDS_SIZE); // add handler on select listBoxPaths.addChangeHandler(new ChangeHandler() { @@ -190,12 +195,13 @@ public class UpdateFileset extends Composite { placeholderListBoxIndex = true; fieldUploadWidget = null; pathIndex = null; + mapForCCUploading = null; // listBoxIndex.clear(); cgSelectFile.setVisible(true); ListBox listBoxContentIndex = new ListBox(); - listBoxContentIndex.setWidth(_FORM_FIELDS_SIZE); + listBoxContentIndex.setWidth(_FORM_WIDTH_FIELDS_SIZE); listBoxContentIndex.addItem("Select a content..."); if (listBoxPaths.getSelectedItemText().contains("abstract_relazione")) { @@ -250,13 +256,20 @@ public class UpdateFileset extends Composite { } int posizIndex = 0; for (LayerConcessioneDV lcDV : piante) { - fillListBoxToBeReplaced(listBoxContentIndex, "piante", posizIndex, lcDV.getTitolo(), lcDV.getListWsContent()); + fillListBoxToBeReplaced(listBoxContentIndex, "piante", posizIndex, lcDV.getTitolo(), + lcDV.getListWsContent()); posizIndex++; } } controlsContent.add(listBoxContentIndex); + + + if(listBoxContentIndex.getItemCount()==1) { + listBoxContentIndex.setSelectedIndex(0); + listBoxContentIndex.setSelectedValue(listBoxContentIndex.getItemText(0)); + } } @@ -294,7 +307,16 @@ public class UpdateFileset extends Composite { private void showFileBrowseInteraction(int pathContentIndex, List listWSC) { uploadFileContainer.clear(); pathIndex = pathContentIndex; - + + // map for current content uploading + mapForCCUploading = new HashMap(listWSC.size()); + int index = 0; + for (WorkspaceContentDV workspaceContentDV : listWSC) { + workspaceContentDV.setCliendId(index); + mapForCCUploading.put(index, workspaceContentDV); + index++; + } + if (listWSC.size() > 0) { FlexTable table = new FlexTable(); table.addStyleName("table-current-content"); @@ -302,12 +324,27 @@ public class UpdateFileset extends Composite { table.setHTML(1, 0, "Filename"); table.setHTML(1, 1, "MimeType"); table.setHTML(1, 2, "Link"); + int i = 2; - for (WorkspaceContentDV wsContent : listWSC) { + for (final WorkspaceContentDV wsContent : listWSC) { table.setHTML(i, 0, wsContent.getName()); table.setHTML(i, 1, wsContent.getMimetype()); - String link = "Download"; + String link = "View"; table.setHTML(i, 2, link); + + final int rowIndexToRem = i; + Button buttonRemoveFile = new Button(); + buttonRemoveFile.setIcon(IconType.TRASH); + buttonRemoveFile.setTitle("Remove this file"); + buttonRemoveFile.addClickHandler(new ClickHandler() { + + @Override + public void onClick(ClickEvent event) { + mapForCCUploading.remove(wsContent.getCliendId()); + table.getRowFormatter().getElement(rowIndexToRem).setAttribute("hidden", "hidden"); + } + }); + table.setWidget(i, 3, buttonRemoveFile); i++; } @@ -316,7 +353,8 @@ public class UpdateFileset extends Composite { HTML label = new HTML(); label.getElement().getStyle().setMarginTop(10, Unit.PX); - label.setHTML("With new content:"); + label.getElement().getStyle().setMarginBottom(10, Unit.PX); + label.setHTML("Add new file/s:"); uploadFileContainer.add(label); // mDU = new MultipleDilaogUpload(); @@ -328,12 +366,10 @@ public class UpdateFileset extends Composite { try { fieldUploadWidget = new MetaDataField(uploadField, uiBus); - // BrowseFilePanel fieldsetContent = new BrowseFilePanel(fieldUploadWidget); uploadFileContainer.add(fieldUploadWidget); buttonUpdate.setVisible(true); } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/UpdateFileset.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/UpdateFileset.ui.xml index ac27ab0..47d529b 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/UpdateFileset.ui.xml +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/edit/UpdateFileset.ui.xml @@ -23,7 +23,7 @@ - Replace the content + Manage the content of @@ -31,7 +31,7 @@ - + diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/BuildValidationReport.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/BuildValidationReport.java index f1aa06d..1b68850 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/BuildValidationReport.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/BuildValidationReport.java @@ -48,7 +48,7 @@ public class BuildValidationReport extends FlowPanel { break; } - rTToHTML = new ReportTemplateToHTML(validationReport.getAsJSONString()); + rTToHTML = new ReportTemplateToHTML(validationReport.getAsJSONString(), true); add(recordPublished); add(rTToHTML); diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/ReportTemplateToHTML.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/ReportTemplateToHTML.java index 5bf287e..329f95c 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/ReportTemplateToHTML.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/ReportTemplateToHTML.java @@ -2,7 +2,13 @@ package org.gcube.portlets.user.geoportaldataentry.client.ui.report; import org.gcube.portlets.user.geoportaldataentry.client.ui.utils.ExternalLib; +import com.github.gwtbootstrap.client.ui.AccordionGroup; import com.github.gwtbootstrap.client.ui.Paragraph; +import com.github.gwtbootstrap.client.ui.constants.IconType; +import com.github.gwtbootstrap.client.ui.event.HiddenEvent; +import com.github.gwtbootstrap.client.ui.event.HiddenHandler; +import com.github.gwtbootstrap.client.ui.event.ShowEvent; +import com.github.gwtbootstrap.client.ui.event.ShowHandler; import com.google.gwt.core.client.GWT; import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONObject; @@ -41,6 +47,9 @@ public class ReportTemplateToHTML extends Composite { @UiField VerticalPanel htmlContainer; + + @UiField + AccordionGroup showReportAsJSON; @UiField Paragraph reportJSON; @@ -52,9 +61,37 @@ public class ReportTemplateToHTML extends Composite { * * @param reportAsJSON the report as JSON */ - public ReportTemplateToHTML(String reportAsJSON) { + public ReportTemplateToHTML(String reportAsJSON, boolean openJSONReport) { initWidget(uiBinder.createAndBindUi(this)); vpContainer.setVisible(false); + showReportAsJSON.setDefaultOpen(openJSONReport); + //showReportAsJSON.setIconPosition(IconPosition.RIGHT); + + if(openJSONReport) { + showReportAsJSON.setIcon(IconType.ARROW_DOWN); + }else { + showReportAsJSON.setIcon(IconType.ARROW_RIGHT); + } + + showReportAsJSON.addShowHandler(new ShowHandler() { + + @Override + public void onShow(ShowEvent showEvent) { + showReportAsJSON.setIcon(IconType.ARROW_DOWN); + + } + }); + + showReportAsJSON.addHiddenHandler(new HiddenHandler() { + + @Override + public void onHidden(HiddenEvent hiddenEvent) { + showReportAsJSON.setIcon(IconType.ARROW_RIGHT); + + } + }); + + if (reportAsJSON != null) { GWT.log("report is: " + reportAsJSON); vpContainer.setVisible(true); diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/ReportTemplateToHTML.ui.xml b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/ReportTemplateToHTML.ui.xml index 0081bcb..572b030 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/ReportTemplateToHTML.ui.xml +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/report/ReportTemplateToHTML.ui.xml @@ -17,7 +17,7 @@ Publication Report: - + diff --git a/src/main/webapp/GeoPortalDataEntryApp.css b/src/main/webapp/GeoPortalDataEntryApp.css index e5e8797..384138f 100644 --- a/src/main/webapp/GeoPortalDataEntryApp.css +++ b/src/main/webapp/GeoPortalDataEntryApp.css @@ -83,7 +83,8 @@ h1 { position: -webkit-sticky; position: sticky; top: 0; - background-color: #eeeeee; + background-color: #f8f8f8; + border-radius: 20px; } .modal-body-custom { @@ -108,3 +109,11 @@ h1 { .table-current-content td { padding: 5px; } + +.upload-file-container .control-group { + display: inline-flex; +} + +.upload-file-container .control-group div { + margin-left: 10px; +}