just started to work on this task

task/19600
Francesco Mangiacrapa 4 years ago
parent ef2f034478
commit 0a1e418d13

@ -4,21 +4,26 @@
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [v6.31.0] [r4.25.0] - 2020-07-08
#### Fixes
[Task #19544] update the unsharing messages in the accounting history
## [v6.30.1] [r4.24.0] - 2020-06-25
**Fixes**
#### Fixes
[Task #19544] update the unsharing messages in the accounting history
## [v6.30.0] [r4.23.0] - 2020-05-18
**New Features**
#### New Features
[#19058] Restore operation: the user has to select the destination folder
**Fixes**
#### Fixes
[#19232] Fixed upload of file names that use special characters
@ -27,7 +32,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
## [v6.29.0] [r4.21.0] - 2020-03-27
**New Features**
#### New Features
[#18150] Get Shareable Link as Long URL also
@ -35,7 +40,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
[#18174] Workspace Search facility, business logic applied on workspace side
**Fixes**
#### Fixes
[#18577] Fixing Shareable link informative text for public file

@ -11,7 +11,7 @@
<groupId>org.gcube.portlets.user</groupId>
<artifactId>workspace-tree-widget</artifactId>
<version>6.30.1</version>
<version>6.31.0-SNAPSHOT</version>
<name>gCube Workspace Tree Widget</name>
<description>
gCube Workspace Tree Widget is a widget to navigate and interact with gCube Workspace

@ -119,6 +119,7 @@ import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndS
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddFolderAndSmart.AddType;
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddUrl;
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetInfo;
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetInfoBootstrap;
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetLink;
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetLink.Link_Type;
import org.gcube.portlets.user.workspace.client.view.windows.DialogShareLink;
@ -171,10 +172,14 @@ import com.extjs.gxt.ui.client.event.MessageBoxEvent;
import com.extjs.gxt.ui.client.widget.Dialog;
import com.extjs.gxt.ui.client.widget.Info;
import com.extjs.gxt.ui.client.widget.MessageBox;
import com.github.gwtbootstrap.client.ui.Button;
import com.github.gwtbootstrap.client.ui.Modal;
import com.github.gwtbootstrap.client.ui.ModalFooter;
import com.github.gwtbootstrap.client.ui.event.HideEvent;
import com.github.gwtbootstrap.client.ui.event.HideHandler;
import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.shared.EventHandler;
import com.google.gwt.event.shared.HandlerManager;
import com.google.gwt.http.client.RequestBuilder;
@ -690,8 +695,32 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
@Override
public void onGetInfo(GetInfoEvent getInfoEvent) {
new DialogGetInfo(getInfoEvent.getSourceFile());
//new DialogInfoboot(getInfoEvent.getSourceFile());
//new DialogGetInfo(getInfoEvent.getSourceFile());
FileModel fileItem = getInfoEvent.getSourceFile();
if(fileItem!=null) {
final Modal modal = new Modal(true);
modal.setCloseVisible(true);
modal.setTitle(fileItem.getName() + " - Details");
modal.setMaxHeigth("800px");
ModalFooter modalFooter = new ModalFooter();
final Button buttClose = new Button("Close");
modalFooter.add(buttClose);
buttClose.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
modal.hide();
}
});
DialogGetInfoBootstrap dlg = new DialogGetInfoBootstrap(fileItem);
modal.add(dlg);
modal.show();
}
}
});

@ -0,0 +1,173 @@
package org.gcube.portlets.user.workspace.client.view.windows;
import java.util.List;
import org.gcube.portlets.user.workspace.client.AppControllerExplorer;
import org.gcube.portlets.user.workspace.client.model.FileModel;
import com.extjs.gxt.ui.client.widget.form.TextField;
import com.github.gwtbootstrap.client.ui.ControlGroup;
import com.github.gwtbootstrap.client.ui.TextArea;
import com.github.gwtbootstrap.client.ui.TextBox;
import com.google.gwt.core.client.GWT;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Widget;
public class DialogGetInfoBootstrap extends Composite {
private static DialogGetInfoBootstrapUiBinder uiBinder = GWT.create(DialogGetInfoBootstrapUiBinder.class);
interface DialogGetInfoBootstrapUiBinder extends UiBinder<Widget, DialogGetInfoBootstrap> {
}
public DialogGetInfoBootstrap() {
initWidget(uiBinder.createAndBindUi(this));
}
public static final String UNKNOWN = "unknown";
@UiField
TextBox txtName;
@UiField
TextBox txtId;
@UiField
TextBox txtLocation;
@UiField
ControlGroup cgTxtIsPublic;
@UiField
TextBox txtIsPublic;
@UiField
TextArea txtAreaDescription;
/*
* TextField<String> txtType = new TextField<String>(); private
* TextField<String> txtCategory = new TextField<String>(); private
* TextField<String> txtOwner = new TextField<String>(); private
* TextField<String> txtLastMofication = new TextField<String>(); private
* TextField<String> txtCreated = new TextField<String>(); private
* TextField<String> txtSize = new TextField<String>(); private
* TextField<String> txtLocation = new TextField<String>(); private
* TextField<String> txtIsPublic = new TextField<String>(); private
* TextField<String> txtThreddsSynched = new TextField<String>(); private
* TextField<String> txtShared = new TextField<String>(); // private TextArea
* textAreaSharedWith = new TextArea(); private Html htmlUsersWidget = new
* Html(); private Html htmlPropertiesWidget = new Html(); private final
* NumberFormat number = ConstantsExplorer.numberFormatterKB; // private
* TextField<String> txtGcubeItemProperties; private HorizontalPanel
* hpGcubeProperties; private DialogEditProperties editProperties = null;
*/
public DialogGetInfoBootstrap(final FileModel fileModel) {
initWidget(uiBinder.createAndBindUi(this));
// Setting name
textFieldSetValue(txtName, fileModel.getName());
textFieldSetValue(txtId, fileModel.getIdentifier());
if (fileModel.isRoot())
txtLocation.setValue("/");
else
loadLocation(fileModel.getIdentifier());
if (fileModel.isDirectory()) {
cgTxtIsPublic.setVisible(true);
txtIsPublic.setValue(fileModel.isPublic() + "");
/*
* if (fileModel.getSynchedThreddsStatus() != null) { txtThreddsSynched = new
* TextField<String>(); txtThreddsSynched.setFieldLabel("Thredds Sync");
* txtThreddsSynched.setReadOnly(true);
* txtThreddsSynched.setValue(fileModel.getSynchedThreddsStatus() + "");
* add(txtThreddsSynched);
*
* }
*/
}
if (fileModel.isDirectory()) {
txtAreaDescription.setValue(fileModel.getDescription());
// add(txtAreaDescription);
} else
loadDescription(fileModel.getIdentifier());
}
private void textFieldSetValue(TextBox field, String value) {
if (value == null || value.isEmpty())
field.setValue(UNKNOWN);
else
field.setValue(value);
}
private void loadLocation(String itemId) {
txtLocation.setEnabled(false);
AppControllerExplorer.rpcWorkspaceService.getListParentsByItemIdentifier(itemId, false,
new AsyncCallback<List<FileModel>>() {
@Override
public void onFailure(Throwable caught) {
GWT.log("failure get list parents by item identifier " + caught);
txtLocation.setValue(UNKNOWN);
txtLocation.setEnabled(false);
}
@Override
public void onSuccess(List<FileModel> result) {
String location = "";
if (result != null) {
for (FileModel fileModel : result) {
if (fileModel != null)
location += "/" + fileModel.getName();
}
}
if (location.isEmpty())
location = "/";
txtLocation.setValue(location);
txtLocation.setEnabled(true);
}
});
}
/**
* @param identifier
*/
private void loadDescription(String identifier) {
txtAreaDescription.setEnabled(false);
AppControllerExplorer.rpcWorkspaceService.getItemDescriptionById(identifier, new AsyncCallback<String>() {
@Override
public void onFailure(Throwable arg0) {
txtAreaDescription.setEnabled(false);
}
@Override
public void onSuccess(String result) {
if (result != null)
txtAreaDescription.setValue(result);
else
txtAreaDescription.setValue("");
txtAreaDescription.setEnabled(true);
}
});
}
}

@ -0,0 +1,95 @@
<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:b="urn:import:com.github.gwtbootstrap.client.ui">
<ui:style>
.back-color-info {
background-color: #fafaff !important;
}
.margin-bottom-20 {
margin-bottom: 20px;
}
.padding-left-10 {
padding-left: 10px;
}
.margin-left-5 {
margin-left: 5px;
}
.text-bold {
font-weight: bold;
}
.not-active {
pointer-events: none;
cursor: default;
opacity: .5;
padding-left: 10px;
}
.font-size-14 {
font-size: 14px;
}
.to-top-alignment {
vertical-align: top;
padding-top: 0px !important;
}
.no-border {
border: 0px;
}
</ui:style>
<g:HTMLPanel>
<b:Form type="HORIZONTAL">
<b:Alert ui:field="actionAlert" close="false" type="INFO"
visible="false">
<b:Icon type="ROTATE_RIGHT" spin="true" />
</b:Alert>
<b:Fieldset ui:field="fieldSetGetInfo"
styleName="{style.noBorder}">
<b:ControlGroup addStyleNames="my-control-group">
<b:ControlLabel>Name</b:ControlLabel>
<b:Controls>
<b:TextBox ui:field="txtName" readOnly="true">
</b:TextBox>
</b:Controls>
</b:ControlGroup>
<b:ControlGroup addStyleNames="my-control-group">
<b:ControlLabel>Id</b:ControlLabel>
<b:Controls>
<b:TextBox ui:field="txtId" readOnly="true">
</b:TextBox>
</b:Controls>
</b:ControlGroup>
<b:ControlGroup addStyleNames="my-control-group">
<b:ControlLabel>Location</b:ControlLabel>
<b:Controls>
<b:TextBox ui:field="txtLocation" readOnly="true">
</b:TextBox>
</b:Controls>
</b:ControlGroup>
<b:ControlGroup addStyleNames="my-control-group"
ui:field="cgTxtIsPublic" visible="false">
<b:ControlLabel>Public Folder</b:ControlLabel>
<b:Controls>
<b:TextBox ui:field="txtIsPublic" readOnly="true">
</b:TextBox>
</b:Controls>
</b:ControlGroup>
<b:ControlGroup addStyleNames="my-control-group">
<b:ControlLabel>Description</b:ControlLabel>
<b:Controls>
<b:TextArea ui:field="txtAreaDescription" readOnly="true">
</b:TextArea>
</b:Controls>
</b:ControlGroup>
</b:Fieldset>
<b:Alert close="false" ui:field="errorAlert" type="ERROR"
visible="false"></b:Alert>
</b:Form>
</g:HTMLPanel>
</ui:UiBinder>
Loading…
Cancel
Save