Added Updated Item button

This commit is contained in:
Francesco Mangiacrapa 2024-02-05 17:30:15 +01:00
parent f98ccd3bfc
commit 2257e3450e
4 changed files with 89 additions and 8 deletions

View File

@ -40,6 +40,7 @@ import org.gcube.portlets.widgets.ckancontentmoderator.client.CkanContentModerat
import org.gcube.portlets.widgets.ckancontentmoderator.client.ContentModeratorWidgetConstants;
import org.gcube.portlets.widgets.ckancontentmoderator.shared.DISPLAY_FIELD;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.form.CreateDatasetForm;
import org.gcube.portlets.widgets.ckandatapublisherwidget.client.ui.form.UpdateDatasetForm;
import org.gcube.portlets_widgets.catalogue_sharing_widget.client.ShareCatalogueWidget;
import com.github.gwtbootstrap.client.ui.Modal;
@ -305,6 +306,48 @@ public class CkanEventHandlerManager {
}
});
eventBus.addHandler(EditMetadataEvent.TYPE, new EditMetadataEventHandler() {
@Override
public void onEditMetadata(EditMetadataEvent editMetadataEvent) {
GWT.log("onEditMetadata called");
if (editMetadataEvent.getItemID() != null) {
GWT.log("editMetadataEvent: " + editMetadataEvent);
final Modal modal = new ExtModal(true, true);
modal.setTitle(WIDGET_CREATE_TITLE);
modal.addStyleName("insert-metadata-modal-style");
modal.addStyleName("modal-top-custom");
((Element) modal.getElement().getChildNodes().getItem(1)).addClassName("modal-body-custom");
modal.add(new UpdateDatasetForm(eventBus, editMetadataEvent.getItemID()));
modal.setCloseVisible(true);
// // hide any popup gcubeCkanDataCatalogue opened
// modal.addHideHandler(new HideHandler() {
//
// @Override
// public void onHide(HideEvent hideEvent) {
// GWT.log("HideEvent on modal fired");
// GWT.log(hideEvent.toDebugString());
// eventBus.fireEvent(new CloseCreationFormEvent());
//
// hideEvent.preventDefault();
// hideEvent.stopPropagation();
// return;
//
// }
// });
GWT.log("show");
modal.show();
}
}
});
}
/**

View File

@ -11,14 +11,22 @@ import com.google.gwt.event.shared.GwtEvent;
*/
public class EditMetadataEvent extends GwtEvent<EditMetadataEventHandler> {
public static Type<EditMetadataEventHandler> TYPE = new Type<EditMetadataEventHandler>();
private String itemID;
/**
* Instantiates a new insert metadata event.
* Instantiates a new edits the metadata event.
*
* @param itemID the item ID
*/
public EditMetadataEvent() {
public EditMetadataEvent(String itemID) {
this.itemID = itemID;
}
/**
* Gets the associated type.
*
* @return the associated type
*/
/* (non-Javadoc)
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
*/
@ -27,6 +35,11 @@ public class EditMetadataEvent extends GwtEvent<EditMetadataEventHandler> {
return TYPE;
}
/**
* Dispatch.
*
* @param handler the handler
*/
/* (non-Javadoc)
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
*/
@ -34,5 +47,9 @@ public class EditMetadataEvent extends GwtEvent<EditMetadataEventHandler> {
protected void dispatch(EditMetadataEventHandler handler) {
handler.onEditMetadata(this);
}
public String getItemID() {
return itemID;
}
}

View File

@ -22,6 +22,7 @@ import com.github.gwtbootstrap.client.ui.Label;
import com.github.gwtbootstrap.client.ui.constants.AlertType;
import com.github.gwtbootstrap.client.ui.constants.ButtonType;
import com.github.gwtbootstrap.client.ui.constants.IconType;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.Style.Float;
import com.google.gwt.dom.client.Style.FontWeight;
import com.google.gwt.dom.client.Style.Unit;
@ -78,7 +79,7 @@ public class CkanMetadataManagementPanel extends FlowPanel {
private Button shareLink = new Button("Share Link");
private Button uploadToZenodo = new Button("Upload to Zenodo");
private Button insertMeta = new Button("Publish Item");
private Button editMeta = new Button("Edit Item");
private Button editMeta = new Button("Update Item");
private Button manageGRSFProduct = new Button("Manage GRSF Item"); // GRSF Manage
private Button manageCModS = new Button("Manage Items"); // Moderation
@ -146,7 +147,7 @@ public class CkanMetadataManagementPanel extends FlowPanel {
// hide edit and insert
shareLink.setEnabled(false);
uploadToZenodo.setEnabled(false);
editMeta.setVisible(false);
editMeta.setEnabled(false);
insertMeta.setVisible(false);
manageGRSFProduct.setVisible(false);
manageGRSFProduct.setEnabled(false);
@ -261,8 +262,8 @@ public class CkanMetadataManagementPanel extends FlowPanel {
@Override
public void onClick(ClickEvent event) {
eventBus.fireEvent(new EditMetadataEvent());
GWT.log("Edit Meta CLICK");
eventBus.fireEvent(new EditMetadataEvent(GCubeCkanDataCatalogPanel.getLatestSelectedProductIdentifier()));
}
});
@ -391,7 +392,7 @@ public class CkanMetadataManagementPanel extends FlowPanel {
/**
* Button to manage the products under moderation via Content Moderation System
* (CMS)
* (CMS).
*
* @param value true or false
*/
@ -436,6 +437,15 @@ public class CkanMetadataManagementPanel extends FlowPanel {
uploadToZenodo.setEnabled(value);
}
/**
* Enable edit item button.
*
* @param value the value
*/
public void enableEditItemButton(boolean value) {
editMeta.setEnabled(value);
}
/**
* Visibility publish on zenodo button.
*
@ -444,6 +454,16 @@ public class CkanMetadataManagementPanel extends FlowPanel {
public void visibilityPublishOnZenodoButton(boolean value) {
uploadToZenodo.setVisible(value);
}
/**
* Visibility edit item button.
*
* @param value the value
*/
public void visibilityEditItemButton(boolean value) {
editMeta.setVisible(value);
}
/**
* Show only home/statistics buttons.

View File

@ -563,6 +563,7 @@ public class GCubeCkanDataCatalogPanel extends BaseViewTemplate {
if (!isProductKeyMissing) {
latestSelectedProductIdentifier = productId.toString();
managementPanel.enableShareItemButton(productId != null && !productId.isEmpty());
managementPanel.enableEditItemButton(productId != null && !productId.isEmpty());
managementPanel.enablePublishOnZenodoButton(productId != null && !productId.isEmpty());
managementPanel.enableManageGRSFProductButton(
productId != null && !productId.isEmpty() && manageProductResponse.isManageEnabled());