mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-25 23:44:54 +01:00
- Add custom message support
This commit is contained in:
parent
9836ffdecf
commit
2f52856ea1
@ -20,6 +20,7 @@
|
||||
package com.wisemapping.mail;
|
||||
|
||||
import org.apache.velocity.app.VelocityEngine;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.mail.javamail.JavaMailSender;
|
||||
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||
import org.springframework.mail.javamail.MimeMessagePreparator;
|
||||
@ -53,7 +54,7 @@ public final class Mailer {
|
||||
}
|
||||
|
||||
public void sendEmail(final String from, final String to, final String subject, final Map model,
|
||||
final String templateMail) {
|
||||
@NotNull final String templateMail) {
|
||||
final MimeMessagePreparator preparator =
|
||||
new MimeMessagePreparator() {
|
||||
public void prepare(MimeMessage mimeMessage)
|
||||
@ -63,11 +64,7 @@ public final class Mailer {
|
||||
message.setFrom(from);
|
||||
message.setSubject(subject);
|
||||
|
||||
final String messageBody =
|
||||
VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "/mail/" + templateMail,
|
||||
model);
|
||||
System.out.println(message);
|
||||
|
||||
final String messageBody = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, "/mail/" + templateMail, model);
|
||||
message.setText(messageBody, true);
|
||||
}
|
||||
};
|
||||
|
@ -59,6 +59,7 @@ final public class NotificationService {
|
||||
model.put("mapEditUrl", baseUrl + "/c/maps/" + mindmap.getId() + "/edit");
|
||||
model.put("baseUrl", formMail);
|
||||
model.put("senderMail", user.getEmail());
|
||||
model.put("message", message);
|
||||
|
||||
|
||||
mailer.sendEmail(formMail, collabEmail, subject, model, "newCollaboration.vm");
|
||||
|
@ -1,3 +1,4 @@
|
||||
|
||||
/*
|
||||
* Copyright [2011] [wisemapping]
|
||||
*
|
||||
|
@ -227,9 +227,10 @@ public class MindmapController extends BaseController {
|
||||
// Is owner ?
|
||||
final CollaborationRole role = CollaborationRole.valueOf(roleStr.toUpperCase());
|
||||
if (role != CollaborationRole.OWNER) {
|
||||
mindmapService.addCollaboration(mindMap, restCollab.getEmail(), role);
|
||||
mindmapService.addCollaboration(mindMap, restCollab.getEmail(), role, restCollabs.getMessage());
|
||||
}
|
||||
|
||||
// Remove from the list of pendings to remove ...
|
||||
if (collaboration != null) {
|
||||
collabsToRemove.remove(collaboration);
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ import java.util.*;
|
||||
public class RestCollaborationList {
|
||||
|
||||
private List<RestCollaboration> collaborations;
|
||||
private String message;
|
||||
|
||||
public RestCollaborationList() {
|
||||
collaborations = new ArrayList<RestCollaboration>();
|
||||
@ -46,4 +47,12 @@ public class RestCollaborationList {
|
||||
public void setCollaborations(@NotNull List<RestCollaboration> collaborations) {
|
||||
this.collaborations = collaborations;
|
||||
}
|
||||
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public void setMessage(String message) {
|
||||
this.message = message;
|
||||
}
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ public interface MindmapService {
|
||||
|
||||
public void addMindmap(MindMap map, User user) throws WiseMappingException;
|
||||
|
||||
public void addCollaboration(@NotNull MindMap mindmap, @NotNull String email, @NotNull CollaborationRole role)
|
||||
public void addCollaboration(@NotNull MindMap mindmap, @NotNull String email, @NotNull CollaborationRole role, @Nullable String message)
|
||||
throws CollaborationException;
|
||||
|
||||
public void removeCollaboration(@NotNull MindMap mindmap, @NotNull Collaboration collaboration) throws CollaborationException;
|
||||
|
@ -20,7 +20,6 @@ package com.wisemapping.service;
|
||||
|
||||
import com.wisemapping.dao.MindmapManager;
|
||||
import com.wisemapping.exceptions.WiseMappingException;
|
||||
import com.wisemapping.mail.Mailer;
|
||||
import com.wisemapping.mail.NotificationService;
|
||||
import com.wisemapping.model.*;
|
||||
import com.wisemapping.security.Utils;
|
||||
@ -47,7 +46,7 @@ public class MindmapServiceImpl
|
||||
private NotificationService notificationService;
|
||||
|
||||
@Override
|
||||
public boolean hasPermissions(@NotNull User user, int mapId, @NotNull CollaborationRole grantedRole) {
|
||||
public boolean hasPermissions(@Nullable User user, int mapId, @NotNull CollaborationRole grantedRole) {
|
||||
final MindMap map = mindmapManager.getMindmapById(mapId);
|
||||
return hasPermissions(user, map, grantedRole);
|
||||
}
|
||||
@ -134,6 +133,7 @@ public class MindmapServiceImpl
|
||||
throw new IllegalArgumentException("The tile can not be empty");
|
||||
}
|
||||
|
||||
//noinspection ConstantConditions
|
||||
if (user == null) {
|
||||
throw new IllegalArgumentException("User can not be null");
|
||||
}
|
||||
@ -154,7 +154,7 @@ public class MindmapServiceImpl
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollaboration(@NotNull MindMap mindmap, @NotNull String email, @NotNull CollaborationRole role)
|
||||
public void addCollaboration(@NotNull MindMap mindmap, @NotNull String email, @NotNull CollaborationRole role, @Nullable String message)
|
||||
throws CollaborationException {
|
||||
|
||||
// Validate
|
||||
@ -178,7 +178,7 @@ public class MindmapServiceImpl
|
||||
|
||||
// Notify by email ...
|
||||
final User user = Utils.getUser();
|
||||
notificationService.newCollaboration(collaboration, mindmap, user, null);
|
||||
notificationService.newCollaboration(collaboration, mindmap, user, message);
|
||||
|
||||
} else if (collaboration.getRole() != role) {
|
||||
// If the relationship already exists and the role changed then only update the role
|
||||
|
@ -23,12 +23,10 @@
|
||||
</table>
|
||||
</div>
|
||||
<div style="font-size: 13px; background-color: #FFF; padding: 10px 7px 7px 7px; min-height: 100px">
|
||||
#if( ! $message )
|
||||
<p>${message}</p>
|
||||
#if($message )
|
||||
<pre style="font-family: Arial, sans-serif; color: #000; ">${message}</pre>
|
||||
#end
|
||||
<p>Click to open: <a href="${mapEditUrl}">${mindmap.title}</a></p>
|
||||
<br/>
|
||||
|
||||
<p style="color: #898989;">Do you have a WiseMapping account ?. Don't worry, you can create an account for
|
||||
free. </p>
|
||||
</div>
|
||||
|
@ -13,13 +13,26 @@
|
||||
}
|
||||
|
||||
#collabEmails {
|
||||
float: left;
|
||||
width: 300px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#roleBtn {
|
||||
float: left;
|
||||
margin: 0px 10px;
|
||||
margin: 0 10px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#addBtn {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#collabMessage {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
</style>
|
||||
@ -38,25 +51,43 @@
|
||||
|
||||
<div class="well">
|
||||
<div id="errorMsg" class="alert alert-error"></div>
|
||||
<p>Add People: </p>
|
||||
<input type="text" id="collabEmails" name="collabEmails"
|
||||
placeholder="Enter collaborators emails separared by comas."/>
|
||||
<div>
|
||||
|
||||
<div class="btn-group" id="roleBtn">
|
||||
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Can edit
|
||||
<span class="caret"> </span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" data-role="editor" id="shareRole">
|
||||
<li><a href="#" data-role="editor">Can edit</a></li>
|
||||
<li><a href="#" data-role="viewer">Can view</a></li>
|
||||
</ul>
|
||||
<p><strong>Add People:</strong></p>
|
||||
|
||||
<input type="text" id="collabEmails" name="collabEmails"
|
||||
placeholder="Enter collaborators emails separared by comas."/>
|
||||
|
||||
<div class="btn-group" id="roleBtn">
|
||||
<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">Can edit
|
||||
<span class="caret"> </span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" data-role="editor" id="shareRole">
|
||||
<li><a href="#" data-role="editor">Can edit</a></li>
|
||||
<li><a href="#" data-role="viewer">Can view</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<button id="addBtn" class="btn btn-primary">Add</button>
|
||||
</div>
|
||||
<div style="margin-top: 10px;">
|
||||
<p><strong>Notify people via email</strong> - <a href="#" id="addMessageLink">Add message</a></p>
|
||||
<textarea cols="4" id="collabMessage" placeholder="Optional: Include a personal message">
|
||||
|
||||
</textarea>
|
||||
</div>
|
||||
<button id="addBtn" class="btn btn-primary">Add</button>
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$("#errorMsg").hide();
|
||||
$("#collabMessage").hide();
|
||||
|
||||
$("#addMessageLink").click(function(event) {
|
||||
$("#collabMessage").toggle().val("");
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
var messages = {
|
||||
owner: 'Is owner',
|
||||
editor: 'Can edit',
|
||||
@ -248,6 +279,7 @@ var submitDialogForm = function() {
|
||||
collabs.collaborations = jQuery.grep(collabs.collaborations, function() {
|
||||
return this.role != 'owner';
|
||||
});
|
||||
collabs['message'] = $("#collabMessage").val();
|
||||
|
||||
jQuery.ajax("service/maps/${mindmap.id}/collabs", {
|
||||
async:false,
|
||||
|
Loading…
Reference in New Issue
Block a user