just started to work on this task
This commit is contained in:
parent
ef2f034478
commit
0a1e418d13
15
CHANGELOG.md
15
CHANGELOG.md
|
@ -4,21 +4,26 @@
|
||||||
All notable changes to this project will be documented in this file.
|
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).
|
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
|
## [v6.30.1] [r4.24.0] - 2020-06-25
|
||||||
|
|
||||||
**Fixes**
|
#### Fixes
|
||||||
|
|
||||||
[Task #19544] update the unsharing messages in the accounting history
|
[Task #19544] update the unsharing messages in the accounting history
|
||||||
|
|
||||||
|
|
||||||
## [v6.30.0] [r4.23.0] - 2020-05-18
|
## [v6.30.0] [r4.23.0] - 2020-05-18
|
||||||
|
|
||||||
**New Features**
|
#### New Features
|
||||||
|
|
||||||
[#19058] Restore operation: the user has to select the destination folder
|
[#19058] Restore operation: the user has to select the destination folder
|
||||||
|
|
||||||
**Fixes**
|
#### Fixes
|
||||||
|
|
||||||
[#19232] Fixed upload of file names that use special characters
|
[#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
|
## [v6.29.0] [r4.21.0] - 2020-03-27
|
||||||
|
|
||||||
**New Features**
|
#### New Features
|
||||||
|
|
||||||
[#18150] Get Shareable Link as Long URL also
|
[#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
|
[#18174] Workspace Search facility, business logic applied on workspace side
|
||||||
|
|
||||||
**Fixes**
|
#### Fixes
|
||||||
|
|
||||||
[#18577] Fixing Shareable link informative text for public file
|
[#18577] Fixing Shareable link informative text for public file
|
||||||
|
|
||||||
|
|
2
pom.xml
2
pom.xml
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<groupId>org.gcube.portlets.user</groupId>
|
<groupId>org.gcube.portlets.user</groupId>
|
||||||
<artifactId>workspace-tree-widget</artifactId>
|
<artifactId>workspace-tree-widget</artifactId>
|
||||||
<version>6.30.1</version>
|
<version>6.31.0-SNAPSHOT</version>
|
||||||
<name>gCube Workspace Tree Widget</name>
|
<name>gCube Workspace Tree Widget</name>
|
||||||
<description>
|
<description>
|
||||||
gCube Workspace Tree Widget is a widget to navigate and interact with gCube Workspace
|
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.DialogAddFolderAndSmart.AddType;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogAddUrl;
|
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.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;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetLink.Link_Type;
|
import org.gcube.portlets.user.workspace.client.view.windows.DialogGetLink.Link_Type;
|
||||||
import org.gcube.portlets.user.workspace.client.view.windows.DialogShareLink;
|
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.Dialog;
|
||||||
import com.extjs.gxt.ui.client.widget.Info;
|
import com.extjs.gxt.ui.client.widget.Info;
|
||||||
import com.extjs.gxt.ui.client.widget.MessageBox;
|
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.Modal;
|
||||||
|
import com.github.gwtbootstrap.client.ui.ModalFooter;
|
||||||
import com.github.gwtbootstrap.client.ui.event.HideEvent;
|
import com.github.gwtbootstrap.client.ui.event.HideEvent;
|
||||||
import com.github.gwtbootstrap.client.ui.event.HideHandler;
|
import com.github.gwtbootstrap.client.ui.event.HideHandler;
|
||||||
import com.google.gwt.core.client.GWT;
|
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.EventHandler;
|
||||||
import com.google.gwt.event.shared.HandlerManager;
|
import com.google.gwt.event.shared.HandlerManager;
|
||||||
import com.google.gwt.http.client.RequestBuilder;
|
import com.google.gwt.http.client.RequestBuilder;
|
||||||
|
@ -690,8 +695,32 @@ public class AppControllerExplorer implements EventHandler, TreeAppControllerInt
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onGetInfo(GetInfoEvent getInfoEvent) {
|
public void onGetInfo(GetInfoEvent getInfoEvent) {
|
||||||
new DialogGetInfo(getInfoEvent.getSourceFile());
|
//new DialogGetInfo(getInfoEvent.getSourceFile());
|
||||||
//new DialogInfoboot(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…
Reference in New Issue