210 lines
4.9 KiB
Java
210 lines
4.9 KiB
Java
package org.gcube.portlets.widgets.ckancontentmoderator.client.util;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import org.gcube.datacatalogue.utillibrary.shared.ItemStatus;
|
|
import org.gcube.portlets.widgets.ckancontentmoderator.client.ContentModeratorWidgetConstants;
|
|
import org.gcube.portlets.widgets.ckancontentmoderator.shared.DISPLAY_FIELD;
|
|
|
|
import com.google.gwt.core.client.GWT;
|
|
|
|
/**
|
|
* The Class ModerationQueryStringUtil.
|
|
*
|
|
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
|
*
|
|
* May 4, 2022
|
|
*/
|
|
public class ModerationQueryStringUtil {
|
|
|
|
public static final String MODERATION_PARAMETER = "moderation";
|
|
public static final String ITEM_NAME_PARAMETER = "item_name";
|
|
public static final String STATUS_PARAMETER = "status";
|
|
|
|
/**
|
|
* The Enum MODERATION_VALUE.
|
|
*
|
|
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
|
*
|
|
* May 4, 2022
|
|
*/
|
|
public enum MODERATION_VALUE {
|
|
show
|
|
}
|
|
|
|
/**
|
|
* Instantiates a new moderation query string util.
|
|
*/
|
|
public ModerationQueryStringUtil() {
|
|
}
|
|
|
|
/**
|
|
* To moderation builder.
|
|
*
|
|
* @param decodedQueryString the decoded query string
|
|
* @return the moderation builder
|
|
*/
|
|
public ModerationBuilder toModerationBuilder(String decodedQueryString) {
|
|
ModerationBuilder mbuilder = null;
|
|
|
|
if (decodedQueryString == null || decodedQueryString.isEmpty())
|
|
return null;
|
|
|
|
String moderationValue = QueryStringUtil.getValueOfParameterInTheURL(MODERATION_PARAMETER, decodedQueryString);
|
|
|
|
MODERATION_VALUE toModerationValue = null;
|
|
// Moderation parameter in the query string has a not empty value
|
|
if (moderationValue != null) {
|
|
try {
|
|
toModerationValue = MODERATION_VALUE.valueOf(moderationValue.toLowerCase());
|
|
} catch (Exception e) {
|
|
GWT.log("Moderation value: " + moderationValue + " is not a value of " + MODERATION_VALUE.values());
|
|
}
|
|
}
|
|
|
|
if (toModerationValue != null) {
|
|
|
|
mbuilder = new ModerationBuilder();
|
|
|
|
String itemNameValue = QueryStringUtil.getValueOfParameterInTheURL(ITEM_NAME_PARAMETER, decodedQueryString);
|
|
if (itemNameValue != null) {
|
|
mbuilder.setItemName(itemNameValue);
|
|
}
|
|
|
|
String statusValue = QueryStringUtil.getValueOfParameterInTheURL(STATUS_PARAMETER, decodedQueryString);
|
|
if (statusValue != null) {
|
|
try {
|
|
ItemStatus theStatus = ItemStatus.valueOf(statusValue.toUpperCase());
|
|
mbuilder.setItemStatus(theStatus);
|
|
} catch (Exception e) {
|
|
GWT.log("Error on assigning "+ItemStatus.values() +" from string "+statusValue);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
return mbuilder;
|
|
}
|
|
|
|
/**
|
|
* The Class ModerationBuilder.
|
|
*
|
|
* @author Francesco Mangiacrapa at ISTI-CNR francesco.mangiacrapa@isti.cnr.it
|
|
*
|
|
* May 4, 2022
|
|
*/
|
|
public class ModerationBuilder {
|
|
|
|
private ItemStatus itemStatus = ItemStatus.PENDING;
|
|
private String itemName = null;
|
|
private DISPLAY_FIELD[] displayFields = DISPLAY_FIELD.values();
|
|
private DISPLAY_FIELD[] sortByFields = ContentModeratorWidgetConstants.DEFAULT_SORT_BY_FIELDS;
|
|
|
|
/**
|
|
* Instantiates a new moderation builder.
|
|
*/
|
|
ModerationBuilder() {
|
|
|
|
}
|
|
|
|
/**
|
|
* Gets the item name.
|
|
*
|
|
* @return the item name
|
|
*/
|
|
public String getItemName() {
|
|
return itemName;
|
|
}
|
|
|
|
/**
|
|
* Sets the item name.
|
|
*
|
|
* @param itemName the new item name
|
|
*/
|
|
public void setItemName(String itemName) {
|
|
this.itemName = itemName;
|
|
}
|
|
|
|
/**
|
|
* Gets the item status.
|
|
*
|
|
* @return the item status
|
|
*/
|
|
public ItemStatus getItemStatus() {
|
|
return itemStatus;
|
|
}
|
|
|
|
/**
|
|
* Gets the display fields.
|
|
*
|
|
* @return the display fields
|
|
*/
|
|
public DISPLAY_FIELD[] getDisplayFields() {
|
|
return displayFields;
|
|
}
|
|
|
|
/**
|
|
* Gets the sort by fields.
|
|
*
|
|
* @return the sort by fields
|
|
*/
|
|
public DISPLAY_FIELD[] getSortByFields() {
|
|
return sortByFields;
|
|
}
|
|
|
|
/**
|
|
* Sets the item status.
|
|
*
|
|
* @param itemStatus the new item status
|
|
*/
|
|
public void setItemStatus(ItemStatus itemStatus) {
|
|
this.itemStatus = itemStatus;
|
|
}
|
|
|
|
/**
|
|
* Sets the display fields.
|
|
*
|
|
* @param displayFields the new display fields
|
|
*/
|
|
public void setDisplayFields(DISPLAY_FIELD[] displayFields) {
|
|
this.displayFields = displayFields;
|
|
}
|
|
|
|
/**
|
|
* Sets the sort by fields.
|
|
*
|
|
* @param sortByFields the new sort by fields
|
|
*/
|
|
public void setSortByFields(DISPLAY_FIELD[] sortByFields) {
|
|
this.sortByFields = sortByFields;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
StringBuilder builder = new StringBuilder();
|
|
builder.append("ModerationBuilder [itemStatus=");
|
|
builder.append(itemStatus);
|
|
builder.append(", itemName=");
|
|
builder.append(itemName);
|
|
builder.append(", displayFields=");
|
|
builder.append(Arrays.toString(displayFields));
|
|
builder.append(", sortByFields=");
|
|
builder.append(Arrays.toString(sortByFields));
|
|
builder.append("]");
|
|
return builder.toString();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Base 64 decode.
|
|
*
|
|
* @param a the a
|
|
* @return the string
|
|
*/
|
|
protected static native String base64decode(String a) /*-{
|
|
return window.atob(a);
|
|
}-*/;
|
|
|
|
}
|