fixed delete message in sent messages

git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/portlets/user/message-conversations@154403 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Massimiliano Assante 2017-09-21 16:15:40 +00:00
parent 5e8d256a79
commit b8642ea79d
9 changed files with 20 additions and 108 deletions

View File

@ -21,5 +21,5 @@ public interface MessageService extends RemoteService {
boolean deleteMessageById(String messageId, boolean sent);
String getAttachmentDownloadURL(String itemId);
boolean saveAttachmentToWorkspaceFolder(String itemId, String destinationFolderId);
boolean markMessageUnread(String messageId);
boolean markMessageUnread(String messageId, boolean sent);
}

View File

@ -1,35 +0,0 @@
package org.gcube.portets.user.message_conversations.client.event;
import org.gcube.portets.user.message_conversations.shared.ConvMessage;
import com.google.gwt.event.shared.GwtEvent;
public class DeleteMessageEvent extends GwtEvent<DeleteMessageEventHandler> {
public static Type<DeleteMessageEventHandler> TYPE = new Type<DeleteMessageEventHandler>();
private ConvMessage m;
private boolean sent;
public DeleteMessageEvent(ConvMessage m, boolean sent) {
this.m = m;
}
public ConvMessage getMessage() {
return m;
}
public boolean isSent() {
return sent;
}
@Override
public Type<DeleteMessageEventHandler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(DeleteMessageEventHandler handler) {
handler.onDeleteMessage(this);
}
}

View File

@ -1,7 +0,0 @@
package org.gcube.portets.user.message_conversations.client.event;
import com.google.gwt.event.shared.EventHandler;
public interface DeleteMessageEventHandler extends EventHandler {
void onDeleteMessage(DeleteMessageEvent event);
}

View File

@ -1,40 +0,0 @@
package org.gcube.portets.user.message_conversations.client.event;
import java.util.HashSet;
import com.google.gwt.event.shared.GwtEvent;
public class NewMessageEvent extends GwtEvent<NewMessageEventHandler> {
public static Type<NewMessageEventHandler> TYPE = new Type<NewMessageEventHandler>();
private String text;
private HashSet<String> mentionedUsers;
public NewMessageEvent() {
this.text = text;
this.mentionedUsers = mentionedUsers;
}
public String getText() {
return text;
}
public HashSet<String> getMentionedUsers() {
return mentionedUsers;
}
@Override
public Type<NewMessageEventHandler> getAssociatedType() {
return TYPE;
}
@Override
protected void dispatch(NewMessageEventHandler handler) {
handler.onNewMessage(this);
}
}

View File

@ -1,7 +0,0 @@
package org.gcube.portets.user.message_conversations.client.event;
import com.google.gwt.event.shared.EventHandler;
public interface NewMessageEventHandler extends EventHandler {
void onNewMessage(NewMessageEvent event);
}

View File

@ -8,7 +8,6 @@ import java.util.List;
import org.gcube.portets.user.message_conversations.client.MessageService;
import org.gcube.portets.user.message_conversations.client.MessageServiceAsync;
import org.gcube.portets.user.message_conversations.client.Utils;
import org.gcube.portets.user.message_conversations.client.event.DeleteMessageEvent;
import org.gcube.portets.user.message_conversations.client.ui.resources.MessagesResources;
import org.gcube.portets.user.message_conversations.shared.ConvMessage;
import org.gcube.portets.user.message_conversations.shared.MessageUserModel;
@ -174,11 +173,10 @@ public class ApplicationView extends Composite {
}
/**
*
* @param sent
* @param event
*/
public void deleteMessage(final DeleteMessageEvent event) {
final ConvMessage toDelete = event.getMessage();
boolean sent = event.isSent();
public void deleteMessage(final ConvMessage toDelete, boolean sent) {
convService.deleteMessageById(toDelete.getId(), sent, new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
@ -188,7 +186,7 @@ public class ApplicationView extends Composite {
public void onSuccess(Boolean result) {
MaterialToast.fireToast("Message Deleted ("+toDelete.getSubject()+")");
totalMessages = totalMessages - 1;
updateBadge(event.isSent());
updateBadge(sent);
}
});
}
@ -197,8 +195,8 @@ public class ApplicationView extends Composite {
*
* @param event
*/
public void setMessageUnread(ConvMessage toSet) {
convService.markMessageUnread(toSet.getId(), new AsyncCallback<Boolean>() {
public void setMessageUnread(ConvMessage toSet, boolean sent) {
convService.markMessageUnread(toSet.getId(), sent, new AsyncCallback<Boolean>() {
@Override
public void onFailure(Throwable caught) {
}
@ -367,7 +365,7 @@ public class ApplicationView extends Composite {
List<MessageUserModel> recipients = Arrays.asList(new MessageUserModel(0, "you", "You", ""));
@SuppressWarnings("deprecation")
MessageUserModel sender = new MessageUserModel(0, "jarvis", "D4Science Team", images.d4scienceTeam().getURL(), "", "");
ConvMessage welcomeMessage = new ConvMessage("0", "Welcome to your Messages", sender, recipients , new Date(), MessagesResources.WELCOME_MESSAGE, true);
ConvMessage welcomeMessage = new ConvMessage("0", "Welcome to your Messages", sender, recipients , new Date(), MessagesResources.WELCOME_MESSAGE, true, false);
FAB.setVisible(false);
displayMessage.showMessage(welcomeMessage);
welcomeMessage.setContent(MessagesResources.WELCOME_MESSAGE.substring(0, 102)+ " ...");

View File

@ -1,7 +1,6 @@
package org.gcube.portets.user.message_conversations.client.ui;
import org.gcube.portets.user.message_conversations.client.Utils;
import org.gcube.portets.user.message_conversations.client.event.DeleteMessageEvent;
import org.gcube.portets.user.message_conversations.client.ui.resources.MessagesResources;
import org.gcube.portets.user.message_conversations.shared.ConvMessage;
@ -153,15 +152,14 @@ public class MessageItem extends Composite {
@UiHandler("setUnreadButton")
void onSetUnread(ClickEvent e) {
e.stopPropagation();
ap.setMessageUnread(myMessage);
ap.setMessageUnread(myMessage, this.sent);
myMessage.setRead(false);
item.addStyleName("unread-message");
}
private void doDelete(String subject) {
if (deleteClicked) {
GWT.log("is sent?"+ this.sent);
ap.deleteMessage(new DeleteMessageEvent(myMessage, this.sent));
ap.deleteMessage(myMessage, this.sent);
}
else
deleteClicked = true;

View File

@ -159,8 +159,9 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
mu = new MessageUserModel(m.getAddresses().get(0));
}
}
boolean hasAttachments = !m.getAttachmentsIds().isEmpty();
if (!sent) { //received messages
boolean hasAttachments = !m.getAttachmentsIds().isEmpty();
toReturn.add(new ConvMessage(
m.getId(),
m.getSubject(),
@ -181,7 +182,8 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
recipients,
new Date(m.getSendTime().getTimeInMillis()),
previewBody,
m.isRead()));
m.isRead(),
hasAttachments));
}
}
} catch (Exception e) {
@ -192,7 +194,7 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
}
@Override
public boolean markMessageUnread(String messageId) {
public boolean markMessageUnread(String messageId, boolean sent) {
GCubeUser user = getCurrentUser(getThreadLocalRequest());
String scope = pContext.getCurrentScope(getThreadLocalRequest());
SecurityTokenProvider.instance.set(pContext.getCurrentUserToken(scope, user.getUserId()));
@ -200,7 +202,9 @@ public class ConvServiceImpl extends RemoteServiceServlet implements MessageServ
HomeManagerFactory factory = HomeLibrary.getHomeManagerFactory();
HomeManager manager = factory.getHomeManager();
Workspace workspace = manager.getHome().getWorkspace();
workspace.getWorkspaceMessageManager().getReceivedMessage(messageId).setStatus(false);
WorkspaceMessage m = (sent) ?
workspace.getWorkspaceMessageManager().getSentMessage(messageId): workspace.getWorkspaceMessageManager().getReceivedMessage(messageId);
m.setStatus(false);
return true;
} catch (Exception e) {
e.printStackTrace();

View File

@ -55,9 +55,9 @@ public class ConvMessage implements IsSerializable{
}
//without attchment
public ConvMessage(String id, String subject, MessageUserModel owner, List<MessageUserModel> recipients, Date date,
String content, boolean isRead) {
String content, boolean isRead, boolean hasAttachments) {
super();
this.id = id;
this.subject = subject;
@ -66,6 +66,7 @@ public class ConvMessage implements IsSerializable{
this.date = date;
this.content = content;
this.isRead = isRead;
this.hasAttachments = hasAttachments;
attachments = new ArrayList<>();
}