messages with attachment support
This commit is contained in:
parent
3e624e687a
commit
46e5e2a787
|
@ -1,12 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" output="target/messages-2.5.0-SNAPSHOT/WEB-INF/classes" path="src/main/java">
|
||||
<classpathentry kind="src" output="target/messages-2.5.0/WEB-INF/classes" path="src/main/java">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry excluding="**" kind="src" output="target/messages-2.5.0-SNAPSHOT/WEB-INF/classes" path="src/main/resources">
|
||||
<classpathentry excluding="**" kind="src" output="target/messages-2.5.0/WEB-INF/classes" path="src/main/resources">
|
||||
<attributes>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
|
@ -30,11 +30,11 @@
|
|||
<attribute name="test" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/messages-2.5.0-SNAPSHOT/WEB-INF/classes" path="target/generated-sources/gwt">
|
||||
<classpathentry kind="src" output="target/messages-2.5.0/WEB-INF/classes" path="target/generated-sources/gwt">
|
||||
<attributes>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/messages-2.5.0-SNAPSHOT/WEB-INF/classes"/>
|
||||
<classpathentry kind="output" path="target/messages-2.5.0/WEB-INF/classes"/>
|
||||
</classpath>
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-module deploy-name="messages">
|
||||
|
||||
|
||||
|
@ -16,6 +19,9 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
|
||||
|
||||
|
||||
|
@ -25,6 +31,9 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
|
||||
|
||||
|
||||
|
@ -34,6 +43,9 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
|
||||
|
||||
|
||||
|
@ -43,11 +55,10 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
|
||||
|
||||
|
||||
|
||||
|
||||
<wb-resource deploy-path="/WEB-INF/classes" source-path="/target/generated-sources/gwt"/>
|
||||
|
||||
|
||||
|
@ -57,6 +68,9 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="java-output-path" value="/message-conversations/target/message-conversations-0.0.1-SNAPSHOT/WEB-INF/classes"/>
|
||||
|
||||
|
||||
|
@ -66,6 +80,9 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<property name="context-root" value="messages"/>
|
||||
|
||||
|
||||
|
@ -75,6 +92,9 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</wb-module>
|
||||
|
||||
|
||||
|
@ -84,4 +104,7 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</project-modules>
|
||||
|
|
|
@ -59,8 +59,8 @@ public class WriteMessage extends Composite {
|
|||
@UiField MaterialAutoComplete acModal;
|
||||
@UiField MaterialButton btnSendModal, btnCloseModal;
|
||||
@UiField MaterialPanel modalContent, sendingLoader;
|
||||
// @UiField MaterialRow attachmentsRow;
|
||||
// @UiField MaterialLink attachButton;
|
||||
@UiField MaterialRow attachmentsRow;
|
||||
@UiField MaterialLink attachButton;
|
||||
@UiField MaterialLabel sendingFeedback;
|
||||
@UiField MaterialPreLoader sendingSpinner;
|
||||
@UiField MaterialTextArea txtArea;
|
||||
|
@ -205,39 +205,39 @@ public class WriteMessage extends Composite {
|
|||
toReturn.add(new WSUser("testing", "username testing", "Andrea testing", "@gmail.com"));
|
||||
return toReturn;
|
||||
}
|
||||
// @UiHandler("attachButton")
|
||||
// void onAttach(ClickEvent e) {
|
||||
// List<ItemType> types = new ArrayList<>();
|
||||
// ItemType[] theTypes = ItemType.values();
|
||||
// for (int i = 0; i < theTypes.length; i++) {
|
||||
// if (theTypes[i] != ItemType.FOLDER)
|
||||
// types.add(theTypes[i]);
|
||||
// }
|
||||
// FilterCriteria criteria = null;
|
||||
// final WorkspaceExplorerSelectDialog wpTreepopup = new WorkspaceExplorerSelectDialog("Select an item", criteria, types);
|
||||
// wpTreepopup.setId(Utils.ID_MODALBOOTSTRAP);
|
||||
// wpTreepopup.getElement().getStyle().setLeft(50, Unit.PCT);
|
||||
// wpTreepopup.setZIndex(10010);
|
||||
// WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() {
|
||||
// @Override
|
||||
// public void onSelectedItem(Item item) {
|
||||
// attachmentsRow.add(getChip(item.getId(), item.getName(), item.isFolder(), true));
|
||||
// wpTreepopup.hide();
|
||||
// }
|
||||
// @Override
|
||||
// public void onFailed(Throwable throwable) {
|
||||
// Window.alert("There are networks problem, please check your connection.");
|
||||
// }
|
||||
// @Override
|
||||
// public void onAborted() {}
|
||||
// @Override
|
||||
// public void onNotValidSelection() {
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// wpTreepopup.addWorkspaceExplorerSelectNotificationListener(listener);
|
||||
// wpTreepopup.show();
|
||||
// }
|
||||
@UiHandler("attachButton")
|
||||
void onAttach(ClickEvent e) {
|
||||
List<ItemType> types = new ArrayList<>();
|
||||
ItemType[] theTypes = ItemType.values();
|
||||
for (int i = 0; i < theTypes.length; i++) {
|
||||
if (theTypes[i] != ItemType.FOLDER)
|
||||
types.add(theTypes[i]);
|
||||
}
|
||||
FilterCriteria criteria = null;
|
||||
final WorkspaceExplorerSelectDialog wpTreepopup = new WorkspaceExplorerSelectDialog("Select an item", criteria, types);
|
||||
wpTreepopup.setId(Utils.ID_MODALBOOTSTRAP);
|
||||
wpTreepopup.getElement().getStyle().setLeft(50, Unit.PCT);
|
||||
wpTreepopup.setZIndex(10010);
|
||||
WorskpaceExplorerSelectNotificationListener listener = new WorskpaceExplorerSelectNotificationListener() {
|
||||
@Override
|
||||
public void onSelectedItem(Item item) {
|
||||
attachmentsRow.add(getChip(item.getId(), item.getName(), item.isFolder(), true));
|
||||
wpTreepopup.hide();
|
||||
}
|
||||
@Override
|
||||
public void onFailed(Throwable throwable) {
|
||||
Window.alert("There are networks problem, please check your connection.");
|
||||
}
|
||||
@Override
|
||||
public void onAborted() {}
|
||||
@Override
|
||||
public void onNotValidSelection() {
|
||||
}
|
||||
};
|
||||
|
||||
wpTreepopup.addWorkspaceExplorerSelectNotificationListener(listener);
|
||||
wpTreepopup.show();
|
||||
}
|
||||
|
||||
//for the attachments we distinguish between folder and files
|
||||
private MaterialChip getChip(String itemId, String itemName, boolean isFolder, boolean deletable) {
|
||||
|
@ -263,13 +263,13 @@ public class WriteMessage extends Composite {
|
|||
|
||||
private ArrayList<String> getSelectedFilesAndFoldersId() {
|
||||
ArrayList<String> toReturn = new ArrayList<>();
|
||||
// int n = attachmentsRow.getWidgetCount();
|
||||
// for (int i = 0; i < n; i++) {
|
||||
// Widget w = attachmentsRow.getWidget(i);
|
||||
// if (w instanceof MaterialChip) {
|
||||
// toReturn.add(((MaterialChip) w).getId());
|
||||
// }
|
||||
// }
|
||||
int n = attachmentsRow.getWidgetCount();
|
||||
for (int i = 0; i < n; i++) {
|
||||
Widget w = attachmentsRow.getWidget(i);
|
||||
if (w instanceof MaterialChip) {
|
||||
toReturn.add(((MaterialChip) w).getId());
|
||||
}
|
||||
}
|
||||
return toReturn;
|
||||
}
|
||||
|
||||
|
@ -297,6 +297,7 @@ public class WriteMessage extends Composite {
|
|||
txtArea.reset();
|
||||
}
|
||||
GWT.log(getSelectedUsers()+"");
|
||||
GWT.log(getSelectedFilesAndFoldersId()+"");
|
||||
ArrayList<String> recipientIds = new ArrayList<>();
|
||||
for (WSUser u : getSelectedUsers()) {
|
||||
recipientIds.add(u.getScreenname());
|
||||
|
|
|
@ -44,12 +44,12 @@
|
|||
<m:MaterialTextBox label="Subject" ui:field="txtBoxSubject"
|
||||
marginBottom="0" />
|
||||
</m:MaterialRow>
|
||||
<!-- <m:MaterialRow marginBottom="0"> -->
|
||||
<!-- <m:MaterialLink href="#attach" text="Select files to attach" -->
|
||||
<!-- textColor="BLACK" iconType="ATTACHMENT" iconPosition="LEFT" -->
|
||||
<!-- ui:field="attachButton" /> -->
|
||||
<!-- </m:MaterialRow> -->
|
||||
<!-- <m:MaterialRow ui:field="attachmentsRow" marginBottom="0" /> -->
|
||||
<m:MaterialRow marginBottom="0">
|
||||
<m:MaterialLink href="#attach" text="Select files to attach"
|
||||
textColor="BLACK" iconType="ATTACHMENT" iconPosition="LEFT"
|
||||
ui:field="attachButton" />
|
||||
</m:MaterialRow>
|
||||
<m:MaterialRow ui:field="attachmentsRow" marginBottom="0" />
|
||||
<m:MaterialRow>
|
||||
<m:MaterialTextArea ui:field="txtArea" label="Body" resizeRule="AUTO"/>
|
||||
</m:MaterialRow>
|
||||
|
|
|
@ -13,10 +13,13 @@ import org.gcube.applicationsupportlayer.social.shared.SocialNetworkingUser;
|
|||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||
import org.gcube.common.portal.PortalContext;
|
||||
import org.gcube.common.scope.api.ScopeProvider;
|
||||
import org.gcube.common.storagehub.client.dsl.ContainerType;
|
||||
import org.gcube.common.storagehub.client.dsl.FileContainer;
|
||||
import org.gcube.common.storagehub.client.dsl.OpenResolver;
|
||||
import org.gcube.common.storagehub.client.dsl.StorageHubClient;
|
||||
import org.gcube.common.storagehub.client.plugins.AbstractPlugin;
|
||||
import org.gcube.common.storagehub.client.proxies.MessageManagerClient;
|
||||
import org.gcube.common.storagehub.model.exceptions.StorageHubException;
|
||||
import org.gcube.common.storagehub.model.items.FolderItem;
|
||||
import org.gcube.common.storagehub.model.items.Item;
|
||||
import org.gcube.common.storagehub.model.messages.Message;
|
||||
|
@ -368,12 +371,12 @@ public class ConvServiceImpl implements MessageService {
|
|||
String checkedBody = body;
|
||||
String messageId = client.sendMessage(recipientIds, checkedSubject, checkedBody, listAttachmentsId);
|
||||
|
||||
/*try {
|
||||
try {
|
||||
body += getPublicLinksForAttachs(listAttachmentsId);
|
||||
|
||||
catch (StorageHubException e) {
|
||||
}
|
||||
catch (Exception e) {
|
||||
_log.error("Ops, could not generate publick link for some of the attachments");
|
||||
}*/
|
||||
}
|
||||
_log.debug("Sending message notification to: " + recipientIds.toString());
|
||||
|
||||
List<GenericItemBean> recipients = getUsersbyUserId(recipientIds);
|
||||
|
@ -432,10 +435,8 @@ public class ConvServiceImpl implements MessageService {
|
|||
* @throws ItemNotFoundException
|
||||
* @throws InternalErrorException
|
||||
*/
|
||||
/*
|
||||
|
||||
private String getPublicLinksForAttachs(ArrayList<String> listAttachments) {
|
||||
|
||||
|
||||
if (listAttachments != null && (!listAttachments.isEmpty()) ) {
|
||||
StorageHubClient client = new StorageHubClient();
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
@ -449,22 +450,21 @@ public class ConvServiceImpl implements MessageService {
|
|||
|
||||
if(openResolver.asItem().getType()==ContainerType.FOLDER) {
|
||||
|
||||
String publicLink = openResolver.getPublickLink(itemId).toString();;
|
||||
String itemName = item.getTitle();
|
||||
String publicLink = openResolver.asFile().getPublicLink(itemId).toString();
|
||||
String itemName = openResolver.asFile().get().getTitle();
|
||||
|
||||
builder.append(itemName + " ("+publicLink+")");
|
||||
builder.append("\n");
|
||||
}catch (StorageHubException e) {
|
||||
}
|
||||
} catch (StorageHubException e) {
|
||||
_log.error("While reading attachments");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_log.debug("returning public links: "+builder.toString());
|
||||
return builder.toString();
|
||||
}
|
||||
else return "";
|
||||
}*/
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue