- Add support for starred.
- Remove tags temporally.
@ -140,10 +140,10 @@ public class FreemindExporter
|
||||
|
||||
final String shape = mindmapTopic.getShape();
|
||||
if (shape != null && !shape.isEmpty()) {
|
||||
if (isRoot && !ShapeStyle.ROUNDED_RETAGLE.getStyle().endsWith(shape) || !isRoot && !ShapeStyle.LINE.getStyle().endsWith(shape)) {
|
||||
if (isRoot && !ShapeStyle.ROUNDED_RECTANGLE.getStyle().endsWith(shape) || !isRoot && !ShapeStyle.LINE.getStyle().endsWith(shape)) {
|
||||
|
||||
String style = shape;
|
||||
if (ShapeStyle.ROUNDED_RETAGLE.getStyle().equals(shape)) {
|
||||
if (ShapeStyle.ROUNDED_RECTANGLE.getStyle().equals(shape)) {
|
||||
style = "bubble";
|
||||
}
|
||||
freemindNode.setSTYLE(style);
|
||||
|
@ -128,7 +128,7 @@ public class FreemindImporter
|
||||
|
||||
convertNodeProperties(freeNode, wiseTopic);
|
||||
|
||||
wiseTopic.setShape(ShapeStyle.ROUNDED_RETAGLE.getStyle());
|
||||
wiseTopic.setShape(ShapeStyle.ROUNDED_RECTANGLE.getStyle());
|
||||
mindmapMap.getTopic().add(wiseTopic);
|
||||
mindmapMap.setName(mapName);
|
||||
|
||||
@ -631,7 +631,7 @@ public class FreemindImporter
|
||||
String result = node.getSTYLE();
|
||||
// In freemind a node without style is a line
|
||||
if ("bubble".equals(result)) {
|
||||
result = ShapeStyle.ROUNDED_RETAGLE.getStyle();
|
||||
result = ShapeStyle.ROUNDED_RECTANGLE.getStyle();
|
||||
} else {
|
||||
result = ShapeStyle.LINE.getStyle();
|
||||
}
|
||||
|
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright [2011] [wisemapping]
|
||||
*
|
||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||
* "powered by wisemapping" text requirement on every single page;
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the license at
|
||||
*
|
||||
* http://www.wisemapping.org/license
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.wisemapping.model;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class CollaboratorProperties {
|
||||
private long id;
|
||||
private boolean starred;
|
||||
private Collaborator collaborator;
|
||||
private MindMap mindmap;
|
||||
|
||||
|
||||
public CollaboratorProperties(@NotNull Collaborator collaborator, @NotNull MindMap mindmap) {
|
||||
this.collaborator = collaborator;
|
||||
this.mindmap = mindmap;
|
||||
}
|
||||
|
||||
public CollaboratorProperties(){
|
||||
|
||||
}
|
||||
|
||||
public boolean getStarred() {
|
||||
return starred;
|
||||
}
|
||||
|
||||
public void setStarred(boolean starred) {
|
||||
this.starred = starred;
|
||||
}
|
||||
public Collaborator getCollaborator() {
|
||||
return collaborator;
|
||||
}
|
||||
|
||||
public void setCollaborator(Collaborator collaborator) {
|
||||
this.collaborator = collaborator;
|
||||
}
|
||||
|
||||
public long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public MindMap getMindmap() {
|
||||
return mindmap;
|
||||
}
|
||||
|
||||
public void setMindmap(@NotNull MindMap mindmap) {
|
||||
this.mindmap = mindmap;
|
||||
}
|
||||
}
|
@ -19,7 +19,6 @@
|
||||
package com.wisemapping.model;
|
||||
|
||||
import com.wisemapping.util.ZipUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.IOException;
|
||||
@ -33,17 +32,18 @@ public class MindMap {
|
||||
private static final String UTF_8 = "UTF-8";
|
||||
|
||||
//~ Instance fields ......................................................................................
|
||||
|
||||
private int id;
|
||||
private Calendar creationTime;
|
||||
private String creator;
|
||||
private String description;
|
||||
|
||||
private int id;
|
||||
private boolean isPublic;
|
||||
private Calendar lastModificationTime;
|
||||
private String lastModifierUser;
|
||||
|
||||
private Set<MindmapUser> mindmapUsers = new HashSet<MindmapUser>();
|
||||
private Set<CollaboratorProperties> collaboratorProperties = new HashSet<CollaboratorProperties>();
|
||||
|
||||
private User owner;
|
||||
private String properties;
|
||||
private String tags;
|
||||
@ -86,7 +86,7 @@ public class MindMap {
|
||||
throws IOException {
|
||||
byte[] result = this.xml;
|
||||
if (result != null) {
|
||||
result = ZipUtils.stringToZip(new String(result, UTF_8));
|
||||
result = ZipUtils.stringToZip(new String(result, UTF_8));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -219,6 +219,41 @@ public class MindMap {
|
||||
return owner;
|
||||
}
|
||||
|
||||
public Set<CollaboratorProperties> getCollaboratorProperties() {
|
||||
return collaboratorProperties;
|
||||
}
|
||||
|
||||
public void setCollaboratorProperties(@NotNull Set<CollaboratorProperties> collaboratorProperties) {
|
||||
this.collaboratorProperties = collaboratorProperties;
|
||||
}
|
||||
|
||||
private CollaboratorProperties findUserProperty(@NotNull Collaborator collaborator) {
|
||||
final Set<CollaboratorProperties> collaboratorProperties = this.getCollaboratorProperties();
|
||||
CollaboratorProperties result = null;
|
||||
for (CollaboratorProperties collaboratorProperty : collaboratorProperties) {
|
||||
final Collaborator propCollab = collaboratorProperty.getCollaborator();
|
||||
if (propCollab != null && propCollab.getEmail().equals(collaborator.getEmail())) {
|
||||
result = collaboratorProperty;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setStarred(@NotNull Collaborator collaborator, boolean value) {
|
||||
CollaboratorProperties collaboratorProperties = this.findUserProperty(collaborator);
|
||||
if (collaboratorProperties == null) {
|
||||
collaboratorProperties = new CollaboratorProperties(collaborator, this);
|
||||
}
|
||||
collaboratorProperties.setStarred(value);
|
||||
this.getCollaboratorProperties().add(collaboratorProperties);
|
||||
}
|
||||
|
||||
public boolean isStarred(@NotNull Collaborator collaborator) {
|
||||
final CollaboratorProperties collaboratorProperty = this.findUserProperty(collaborator);
|
||||
return collaboratorProperty != null && collaboratorProperty.getStarred();
|
||||
}
|
||||
|
||||
public static String getDefaultMindmapXml(@NotNull final String title) {
|
||||
|
||||
final StringBuilder result = new StringBuilder();
|
||||
|
@ -21,9 +21,9 @@ package com.wisemapping.model;
|
||||
public enum ShapeStyle
|
||||
{
|
||||
LINE("line"),
|
||||
ROUNDED_RETAGLE("rounded rectagle"),
|
||||
RECTAGLE("rectagle"),
|
||||
ELIPSE("elipse");
|
||||
ROUNDED_RECTANGLE("rounded rectagle"),
|
||||
RECTANGLE("rectagle"),
|
||||
ELLIPSE("elipse");
|
||||
|
||||
private String style;
|
||||
|
||||
|
@ -1,3 +1,21 @@
|
||||
/*
|
||||
* Copyright [2011] [wisemapping]
|
||||
*
|
||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||
* "powered by wisemapping" text requirement on every single page;
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the license at
|
||||
*
|
||||
* http://www.wisemapping.org/license
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.wisemapping.rest;
|
||||
|
||||
|
||||
@ -35,8 +53,9 @@ public class MindmapController extends BaseController {
|
||||
@RequestMapping(method = RequestMethod.GET, value = "/maps/{id}", produces = {"application/json", "text/html", "application/xml"})
|
||||
@ResponseBody
|
||||
public ModelAndView getMindmap(@PathVariable int id) throws IOException {
|
||||
final User user = com.wisemapping.security.Utils.getUser();
|
||||
final MindMap mindMap = mindmapService.getMindmapById(id);
|
||||
final RestMindmap map = new RestMindmap(mindMap);
|
||||
final RestMindmap map = new RestMindmap(mindMap, user);
|
||||
return new ModelAndView("mapView", "map", map);
|
||||
}
|
||||
|
||||
@ -54,7 +73,7 @@ public class MindmapController extends BaseController {
|
||||
mindmaps.add(mindmap);
|
||||
}
|
||||
}
|
||||
final RestMindmapList restMindmapList = new RestMindmapList(mindmaps);
|
||||
final RestMindmapList restMindmapList = new RestMindmapList(mindmaps, user);
|
||||
return new ModelAndView("mapsView", "list", restMindmapList);
|
||||
}
|
||||
|
||||
@ -137,7 +156,7 @@ public class MindmapController extends BaseController {
|
||||
|
||||
@RequestMapping(method = RequestMethod.PUT, value = "/maps/{id}/title", consumes = {"text/plain"}, produces = {"application/json", "text/html", "application/xml"})
|
||||
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||
public void changeMapTitle(@RequestBody String title, @PathVariable int id) throws WiseMappingException {
|
||||
public void updateMapTitle(@RequestBody String title, @PathVariable int id) throws WiseMappingException {
|
||||
|
||||
final MindMap mindMap = mindmapService.getMindmapById(id);
|
||||
final User user = Utils.getUser();
|
||||
@ -156,7 +175,7 @@ public class MindmapController extends BaseController {
|
||||
|
||||
@RequestMapping(method = RequestMethod.PUT, value = "/maps/{id}/description", consumes = {"text/plain"}, produces = {"application/json", "text/html", "application/xml"})
|
||||
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||
public void changeMapDescription(@RequestBody String description, @PathVariable int id) throws WiseMappingException {
|
||||
public void updateMapDescription(@RequestBody String description, @PathVariable int id) throws WiseMappingException {
|
||||
|
||||
final MindMap mindMap = mindmapService.getMindmapById(id);
|
||||
final User user = Utils.getUser();
|
||||
@ -169,7 +188,7 @@ public class MindmapController extends BaseController {
|
||||
|
||||
@RequestMapping(method = RequestMethod.PUT, value = "/maps/{id}/publish", consumes = {"text/plain"}, produces = {"application/json", "text/html", "application/xml"})
|
||||
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||
public void changeMapPublish(@RequestBody String value, @PathVariable int id) throws WiseMappingException {
|
||||
public void updatePublishState(@RequestBody String value, @PathVariable int id) throws WiseMappingException {
|
||||
|
||||
final MindMap mindMap = mindmapService.getMindmapById(id);
|
||||
final User user = Utils.getUser();
|
||||
@ -184,6 +203,18 @@ public class MindmapController extends BaseController {
|
||||
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.PUT, value = "/maps/{id}/starred", consumes = {"text/plain"}, produces = {"application/json", "text/html", "application/xml"})
|
||||
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||
public void updateStarredState(@RequestBody String value, @PathVariable int id) throws WiseMappingException {
|
||||
|
||||
final MindMap mindMap = mindmapService.getMindmapById(id);
|
||||
final User user = Utils.getUser();
|
||||
|
||||
// Update map status ...
|
||||
mindMap.setStarred(user, Boolean.parseBoolean(value));
|
||||
updateMindmap(true, mindMap, user);
|
||||
}
|
||||
|
||||
@RequestMapping(method = RequestMethod.DELETE, value = "/maps/{id}")
|
||||
@ResponseStatus(value = HttpStatus.NO_CONTENT)
|
||||
public void updateMap(@PathVariable int id) throws IOException, WiseMappingException {
|
||||
|
@ -1,5 +1,24 @@
|
||||
package com.wisemapping.rest;
|
||||
/*
|
||||
* Copyright [2011] [wisemapping]
|
||||
*
|
||||
* Licensed under WiseMapping Public License, Version 1.0 (the "License").
|
||||
* It is basically the Apache License, Version 2.0 (the "License") plus the
|
||||
* "powered by wisemapping" text requirement on every single page;
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the license at
|
||||
*
|
||||
* http://www.wisemapping.org/license
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
|
||||
*/
|
||||
|
||||
|
||||
package com.wisemapping.rest;
|
||||
|
||||
import com.wisemapping.model.MindMap;
|
||||
import com.wisemapping.model.User;
|
||||
@ -20,6 +39,12 @@ public enum MindmapFilter {
|
||||
return mindmap.getOwner().equals(user);
|
||||
}
|
||||
},
|
||||
STARRED("starred") {
|
||||
@Override
|
||||
boolean accept(@NotNull MindMap mindmap, @NotNull User user) {
|
||||
return mindmap.isStarred(user);
|
||||
}
|
||||
},
|
||||
SHARED_WITH_ME("shared_with_me") {
|
||||
@Override
|
||||
boolean accept(@NotNull MindMap mindmap, @NotNull User user) {
|
||||
|
@ -1,10 +1,10 @@
|
||||
package com.wisemapping.rest.model;
|
||||
|
||||
|
||||
import com.wisemapping.model.Collaborator;
|
||||
import com.wisemapping.model.MindMap;
|
||||
import com.wisemapping.model.User;
|
||||
import org.codehaus.jackson.annotate.*;
|
||||
import org.codehaus.jackson.map.annotate.JsonSerialize;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@ -27,7 +27,8 @@ import java.util.TimeZone;
|
||||
)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class RestMindmap {
|
||||
|
||||
@JsonIgnore
|
||||
private Collaborator collaborator;
|
||||
@JsonIgnore
|
||||
private MindMap mindmap;
|
||||
@JsonIgnore
|
||||
@ -39,12 +40,13 @@ public class RestMindmap {
|
||||
}
|
||||
|
||||
public RestMindmap() {
|
||||
this(new MindMap());
|
||||
this(new MindMap(), null);
|
||||
|
||||
}
|
||||
|
||||
public RestMindmap(@NotNull MindMap mindmap) {
|
||||
public RestMindmap(@NotNull MindMap mindmap, @NotNull Collaborator collaborator) {
|
||||
this.mindmap = mindmap;
|
||||
this.collaborator = collaborator;
|
||||
}
|
||||
|
||||
public String getCreationTime() {
|
||||
@ -147,6 +149,18 @@ public class RestMindmap {
|
||||
return mindmap.getProperties();
|
||||
}
|
||||
|
||||
public boolean getStarred() {
|
||||
boolean result = false;
|
||||
if (collaborator != null) {
|
||||
result = mindmap.isStarred(collaborator);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void setStarred(boolean value) {
|
||||
mindmap.setStarred(collaborator, value);
|
||||
}
|
||||
|
||||
@JsonIgnore
|
||||
public MindMap getDelegated() {
|
||||
return this.mindmap;
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.wisemapping.rest.model;
|
||||
|
||||
|
||||
import com.wisemapping.model.Collaborator;
|
||||
import com.wisemapping.model.MindMap;
|
||||
import com.wisemapping.model.User;
|
||||
import org.codehaus.jackson.annotate.*;
|
||||
@ -10,7 +11,6 @@ import org.jetbrains.annotations.Nullable;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlRootElement;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
@ -29,6 +29,7 @@ public class RestMindmapInfo {
|
||||
|
||||
@JsonIgnore
|
||||
private MindMap mindmap;
|
||||
private Collaborator collaborator;
|
||||
@JsonIgnore
|
||||
static private SimpleDateFormat sdf;
|
||||
|
||||
@ -38,12 +39,13 @@ public class RestMindmapInfo {
|
||||
}
|
||||
|
||||
public RestMindmapInfo() {
|
||||
this(new MindMap());
|
||||
this(new MindMap(), null);
|
||||
|
||||
}
|
||||
|
||||
public RestMindmapInfo(@NotNull MindMap mindmap) {
|
||||
public RestMindmapInfo(@NotNull MindMap mindmap, @Nullable Collaborator collaborator) {
|
||||
this.mindmap = mindmap;
|
||||
this.collaborator = collaborator;
|
||||
}
|
||||
|
||||
public String getCreationTime() {
|
||||
@ -93,7 +95,14 @@ public class RestMindmapInfo {
|
||||
}
|
||||
|
||||
public void setId(int id) {
|
||||
mindmap.setId(id);
|
||||
}
|
||||
|
||||
public boolean getStarred() {
|
||||
return mindmap.isStarred(collaborator);
|
||||
}
|
||||
|
||||
public void setStarred(int value) {
|
||||
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.wisemapping.rest.model;
|
||||
|
||||
|
||||
import com.wisemapping.model.Collaborator;
|
||||
import com.wisemapping.model.MindMap;
|
||||
import org.codehaus.jackson.annotate.JsonAutoDetect;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@ -25,13 +26,13 @@ public class RestMindmapList {
|
||||
private List<RestMindmapInfo> mindmapsInfo;
|
||||
|
||||
public RestMindmapList() {
|
||||
this(Collections.<MindMap>emptyList());
|
||||
this(Collections.<MindMap>emptyList(), null);
|
||||
}
|
||||
|
||||
public RestMindmapList(@NotNull List<MindMap> mindmaps) {
|
||||
public RestMindmapList(@NotNull List<MindMap> mindmaps, @NotNull Collaborator collaborator) {
|
||||
this.mindmapsInfo = new ArrayList<RestMindmapInfo>();
|
||||
for (MindMap mindMap : mindmaps) {
|
||||
this.mindmapsInfo.add(new RestMindmapInfo(mindMap));
|
||||
this.mindmapsInfo.add(new RestMindmapInfo(mindMap, collaborator));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE hibernate-mapping PUBLIC
|
||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
||||
|
||||
<hibernate-mapping>
|
||||
|
||||
<class name="com.wisemapping.model.CollaboratorProperties" table="MINDMAP_COLLABORATOR_PROPERTIES">
|
||||
<id name="id">
|
||||
<generator class="increment"/>
|
||||
</id>
|
||||
|
||||
<property name="starred" column="starred" unique="false" not-null="true"/>
|
||||
|
||||
<!-- Read-only association property -->
|
||||
<many-to-one name="mindmap"
|
||||
column="MINDMAP_ID"
|
||||
not-null="true"
|
||||
class="com.wisemapping.model.MindMap"
|
||||
/>
|
||||
|
||||
<many-to-one name="collaborator"
|
||||
column="COLLABORATOR_ID"
|
||||
not-null="true"
|
||||
class="com.wisemapping.model.Collaborator"
|
||||
/>
|
||||
</class>
|
||||
|
||||
</hibernate-mapping>
|
@ -27,7 +27,14 @@
|
||||
inverse="true">
|
||||
<key column="MINDMAP_ID" not-null="true"/>
|
||||
<one-to-many class="com.wisemapping.model.MindmapUser"/>
|
||||
</set>
|
||||
</set>
|
||||
|
||||
<set name="collaboratorProperties"
|
||||
cascade="all, delete-orphan"
|
||||
inverse="true">
|
||||
<key column="MINDMAP_ID" not-null="true"/>
|
||||
<one-to-many class="com.wisemapping.model.CollaboratorProperties"/>
|
||||
</set>
|
||||
|
||||
</class>
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
column="MINDMAP_ID"
|
||||
not-null="true"
|
||||
class="com.wisemapping.model.MindMap"
|
||||
/>
|
||||
/>
|
||||
|
||||
<many-to-one name="collaborator"
|
||||
column="COLABORATOR_ID"
|
||||
|
@ -2,6 +2,9 @@ log4j.rootLogger=WARN, stdout, R
|
||||
log4j.logger.com.wisemapping=WARN,stdout,R
|
||||
log4j.logger.org.springframework=WARN,stdout,R
|
||||
log4j.logger.org.codehaus.jackson=WARN,stdout,R
|
||||
log4j.logger.org.hibernate.SQL=DEBUG, stdout,R
|
||||
log4j.additivity.org.hibernate.SQL=false
|
||||
|
||||
|
||||
# Stdout logger <20>
|
||||
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||
|
@ -27,6 +27,7 @@
|
||||
<value>com/wisemapping/model/Collaborator.hbm.xml</value>
|
||||
<value>com/wisemapping/model/MindMap.hbm.xml</value>
|
||||
<value>com/wisemapping/model/MindmapUser.hbm.xml</value>
|
||||
<value>com/wisemapping/model/CollaboratorProperties.hbm.xml</value>
|
||||
<value>com/wisemapping/model/UserLogin.hbm.xml</value>
|
||||
<value>com/wisemapping/model/MindMapHistory.hbm.xml</value>
|
||||
</list>
|
||||
|
@ -137,20 +137,6 @@
|
||||
<property name="userService" ref="userService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="tagValidator" class="com.wisemapping.validator.TagValidator">
|
||||
</bean>
|
||||
|
||||
<bean id="tagsController" class="com.wisemapping.controller.TagsController">
|
||||
<property name="sessionForm" value="false"/>
|
||||
<property name="commandName" value="tag"/>
|
||||
<property name="commandClass" value="com.wisemapping.view.TagBean"/>
|
||||
<property name="validator" ref="tagValidator"/>
|
||||
<property name="formView" value="mindmapTags"/>
|
||||
<property name="successView" value="closeDialog"/>
|
||||
<property name="mindmapService" ref="mindmapService"/>
|
||||
<property name="userService" ref="userService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="multipartResolver"
|
||||
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
|
||||
<!-- one of the properties available; the maximum file size in bytes -->
|
||||
@ -196,7 +182,6 @@
|
||||
<prop key="/c/cooker.htm">cookerController</prop>
|
||||
<prop key="/c/settings.htm">settingsController</prop>
|
||||
<prop key="/c/editProfile.htm">editProfileController</prop>
|
||||
<prop key="/c/tags.htm">tagsController</prop>
|
||||
<prop key="/c/history.htm">historyController</prop>
|
||||
</props>
|
||||
</property>
|
||||
|
@ -132,6 +132,10 @@ input#selectAll {
|
||||
|
||||
/* ----------------------------- Misc ----------------------------------- */
|
||||
|
||||
.messagesPanel {
|
||||
width: @body-width;
|
||||
}
|
||||
|
||||
.dataTables_empty {
|
||||
text-align: center;
|
||||
}
|
||||
@ -174,3 +178,23 @@ input#selectAll {
|
||||
margin-right: 2%;
|
||||
margin-top: 80px
|
||||
}
|
||||
|
||||
span.starredOff{
|
||||
background: url('../images/star-off.png') no-repeat center left;
|
||||
padding: 10px;
|
||||
margin: 0 0px 0 15px;
|
||||
}
|
||||
|
||||
span.starredOff:hover{
|
||||
background: url('../images/star-off-hover.png') no-repeat center left;
|
||||
}
|
||||
|
||||
span.starredOn{
|
||||
background: url('../images/star-on.png') no-repeat center left;
|
||||
padding: 10px;
|
||||
margin: 0 0px 0 15px;
|
||||
}
|
||||
|
||||
span.starredOn:hover{
|
||||
background: url('../images/star-on-hover.png') no-repeat center left;
|
||||
}
|
Before Width: | Height: | Size: 612 B |
Before Width: | Height: | Size: 807 B |
Before Width: | Height: | Size: 635 B |
Before Width: | Height: | Size: 852 B |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 192 B |
BIN
wise-webapp/src/main/webapp/images/star-off-hover.png
Normal file
After Width: | Height: | Size: 367 B |
BIN
wise-webapp/src/main/webapp/images/star-off.png
Normal file
After Width: | Height: | Size: 294 B |
BIN
wise-webapp/src/main/webapp/images/star-on-hover.png
Normal file
After Width: | Height: | Size: 490 B |
BIN
wise-webapp/src/main/webapp/images/star-on.png
Normal file
After Width: | Height: | Size: 315 B |
@ -71,7 +71,7 @@ jQuery.fn.dataTableExt.selectAllMaps = function() {
|
||||
$(this).prop("checked", false);
|
||||
});
|
||||
}
|
||||
updateStatus();
|
||||
updateStatusToolbar();
|
||||
};
|
||||
|
||||
jQuery.fn.dataTableExt.getSelectedMapsIds = function() {
|
||||
@ -93,7 +93,7 @@ jQuery.fn.dataTableExt.removeSelectedRows = function() {
|
||||
trs.each(function() {
|
||||
$('#mindmapListTable').dataTable().fnDeleteRow(this);
|
||||
});
|
||||
updateStatus();
|
||||
updateStatusToolbar();
|
||||
};
|
||||
|
||||
|
||||
@ -179,7 +179,7 @@ jQuery.fn.dialogForm = function(options) {
|
||||
|
||||
|
||||
// Update toolbar events ...
|
||||
function updateStatus() {
|
||||
function updateStatusToolbar() {
|
||||
|
||||
// Mark column row selection values ...
|
||||
$("#mindmapListTable tbody input:checked").parent().parent().addClass('row-selected');
|
||||
@ -206,4 +206,51 @@ function updateStatus() {
|
||||
}
|
||||
|
||||
|
||||
// Update toolbar events ...
|
||||
function updateStarred(spanElem) {
|
||||
$(spanElem).removeClass('starredOff');
|
||||
$(spanElem).addClass('starredOn');
|
||||
|
||||
// Retrieve row data ...
|
||||
var tableElem = $('#mindmapListTable');
|
||||
var trElem = $(spanElem).parent().parent();
|
||||
var rowData = tableElem.dataTable().fnGetData(trElem[0]);
|
||||
|
||||
// Update status ...
|
||||
var starred = !rowData.starred;
|
||||
var mapId = rowData.id;
|
||||
if (starred) {
|
||||
$(spanElem).removeClass('starredOff');
|
||||
$(spanElem).addClass('starredOn');
|
||||
} else {
|
||||
$(spanElem).removeClass('starredOn');
|
||||
$(spanElem).addClass('starredOff');
|
||||
}
|
||||
|
||||
jQuery.ajax("service/maps/" + mapId + "/starred", {
|
||||
async:false,
|
||||
dataType: 'json',
|
||||
data: "" + starred,
|
||||
type: 'PUT',
|
||||
contentType:"text/plain",
|
||||
success : function() {
|
||||
if (starred) {
|
||||
$(spanElem).removeClass('starredOff');
|
||||
$(spanElem).addClass('starredOn');
|
||||
} else {
|
||||
$(spanElem).removeClass('starredOn');
|
||||
$(spanElem).addClass('starredOff');
|
||||
}
|
||||
},
|
||||
error: function(jqXHR, textStatus, errorThrown) {
|
||||
$('#messagesPanel div').text(errorThrown).parent().show();
|
||||
}
|
||||
});
|
||||
|
||||
// Finally update st
|
||||
rowData.starred = starred;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -31,25 +31,31 @@
|
||||
sAjaxSource : "../service/maps",
|
||||
sAjaxDataProp: 'mindmapsInfo',
|
||||
fnInitComplete: function() {
|
||||
$('#mindmapListTable tbody').change(updateStatus);
|
||||
$('#mindmapListTable tbody').change(updateStatusToolbar);
|
||||
$('#mindmapListTable .starredOff').click(function() {
|
||||
updateStarred(this);
|
||||
});
|
||||
},
|
||||
aoColumns: [
|
||||
{
|
||||
sTitle : '<input type="checkbox" id="selectAll"/>',
|
||||
sWidth : "15px",
|
||||
sWidth : "55px",
|
||||
sClass : "select",
|
||||
bSortable : false,
|
||||
bSearchable : false,
|
||||
mDataProp: "starred",
|
||||
bUseRendered : false,
|
||||
fnRender : function(obj) {
|
||||
return '<input type="checkbox" id="' + obj.aData.id + '"/>';
|
||||
return '<input type="checkbox" id="' + obj.aData.id + '"/><span data-mid="' + obj.aData.id + '" class="' + (obj.aData.starred ? 'starredOn' : 'starredOff') + '"></span>';
|
||||
}
|
||||
},
|
||||
{
|
||||
sTitle : "Name",
|
||||
sWidth:"270px",
|
||||
bUseRendered : false,
|
||||
mDataProp: "title",
|
||||
fnRender : function(obj) {
|
||||
return '<a href="c/maps/' + obj.aData.id + '/edit.htm">' + obj.aData.title + '</a>';
|
||||
return '<span class="starOff"></span><a href="c/maps/' + obj.aData.id + '/edit.htm">' + obj.aData.title + '</a>';
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -224,11 +230,6 @@
|
||||
$("#actionButtons .shareMap").click(function() {
|
||||
});
|
||||
|
||||
$("#actionButtons .tagMap").click(function() {
|
||||
});
|
||||
|
||||
$("#actionButtons .tags").click(function() {
|
||||
});
|
||||
|
||||
$('#foldersContainer li').click(function(event) {
|
||||
// Deselect previous option ...
|
||||
@ -277,6 +278,7 @@
|
||||
<li data-filter="all" class="active"><a href="#"><i class="icon-inbox icon-white"></i> All</a></li>
|
||||
<li data-filter="my_maps"><a href="#"><i class="icon-user"></i> My Maps</a></li>
|
||||
<li data-filter="shared_with_me"><a href="#"><i class="icon-share"></i> Shared With Me</a></li>
|
||||
<li data-filter="starred"><a href="#"><i class="icon-star"></i> Starred</a></li>
|
||||
<li data-filter="public"><a href="#"><i class="icon-globe"></i> Public Maps</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -309,10 +311,9 @@
|
||||
Duplicate</a></li>
|
||||
<li id="renameBtn"><a href="#" onclick="return false"><i class="icon-edit"></i> Rename</a></li>
|
||||
<li id="printBtn"><a href="#" onclick="return false"><i class="icon-print"></i> Print</a></li>
|
||||
<li id="publishBtn"><a href="#" onclick="return false"><i class="icon-globe"></i>Publish</a>
|
||||
<li id="publishBtn"><a href="#" onclick="return false"><i class="icon-globe"></i> Publish</a>
|
||||
</li>
|
||||
<li id="shareBtn"><a href="#" onclick="return false"><i class="icon-share"></i> Share</a></li>
|
||||
<li id="tagBtn"><a href="#" onclick="return false"><i class="icon-tags"></i> Tag</a></li>
|
||||
<li id="historyBtn"><a href="#" onclick="return false"><i class="icon-time"></i> History</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
@ -76,10 +76,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id="collaboration" class="buttonContainer">
|
||||
<div id="tagIt" class="buttonOn">
|
||||
<img src="../images/tag.png"/>
|
||||
</div>
|
||||
<div id="shareIt" class="buttonOn">
|
||||
<div id="shareIt" class="buttonOn">
|
||||
<img src="../images/share.png"/>
|
||||
</div>
|
||||
<div id="publishIt" class="buttonOn">
|
||||
|
@ -13,18 +13,18 @@ password varchar(255) NOT NULL,
|
||||
activationCode BIGINT NOT NULL,
|
||||
activation_date DATE,
|
||||
allowSendEmail CHAR(1) NOT NULL,
|
||||
FOREIGN KEY(colaborator_id) REFERENCES colaborator(id)
|
||||
FOREIGN KEY(colaborator_id) REFERENCES COLABORATOR(id)
|
||||
);
|
||||
|
||||
CREATE TABLE MINDMAP (
|
||||
id INTEGER NOT NULL IDENTITY,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
description VARCHAR(255) NOT NULL,
|
||||
xml LONGVARBINARY NOT NULL,
|
||||
public BOOLEAN not null,
|
||||
public BOOLEAN NOT NULL,
|
||||
creation_date DATETIME,
|
||||
edition_date DATETIME,
|
||||
owner_id INTEGER not null,
|
||||
owner_id INTEGER NOT NULL,
|
||||
tags varchar(1014) ,
|
||||
last_editor varchar(255) ,
|
||||
creator_user varchar(255) ,
|
||||
@ -32,6 +32,15 @@ editor_properties varchar(512)
|
||||
--FOREIGN KEY(owner_id) REFERENCES USER(colaborator_id)
|
||||
);
|
||||
|
||||
CREATE TABLE MINDMAP_COLLABORATOR_PROPERTIES
|
||||
(id INTEGER NOT NULL IDENTITY,
|
||||
mindmap_id INTEGER NOT NULL,
|
||||
collaborator_id INTEGER NOT NULL,
|
||||
starred BOOLEAN NOT NULL,
|
||||
FOREIGN KEY(collaborator_id) REFERENCES COLABORATOR(id),
|
||||
FOREIGN KEY(mindmap_id) REFERENCES MINDMAP(id)
|
||||
);
|
||||
|
||||
CREATE TABLE MINDMAP_HISTORY
|
||||
(id INTEGER NOT NULL IDENTITY,
|
||||
xml LONGVARBINARY NOT NULL,
|
||||
@ -44,15 +53,15 @@ CREATE TABLE MINDMAP_COLABORATOR
|
||||
colaborator_id INTEGER NOT NULL,
|
||||
mindmap_id INTEGER NOT NULL,
|
||||
role_id INTEGER NOT NULL,
|
||||
FOREIGN KEY(colaborator_id) REFERENCES colaborator(id),
|
||||
FOREIGN KEY(mindmap_id) REFERENCES mindmap(id)
|
||||
FOREIGN KEY(colaborator_id) REFERENCES COLABORATOR(id),
|
||||
FOREIGN KEY(mindmap_id) REFERENCES MINDMAP(id)
|
||||
);
|
||||
|
||||
CREATE TABLE TAG
|
||||
(id INTEGER NOT NULL IDENTITY,
|
||||
name varchar(255) NOT NULL,
|
||||
user_id INTEGER NOT NULL,
|
||||
--FOREIGN KEY(user_id) REFERENCES user(colaborator_id)
|
||||
--FOREIGN KEY(user_id) REFERENCES USER(colaborator_id)
|
||||
);
|
||||
|
||||
CREATE TABLE USER_LOGIN
|
||||
|
@ -33,9 +33,18 @@ editor_properties varchar(512) CHARACTER SET utf8 ,
|
||||
FOREIGN KEY(owner_id) REFERENCES USER(colaborator_id)
|
||||
) CHARACTER SET utf8 ;
|
||||
|
||||
CREATE TABLE MINDMAP_HISTORY
|
||||
(
|
||||
|
||||
CREATE TABLE MINDMAP_COLLABORATOR_PROPERTIES(
|
||||
id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
mindmap_id INTEGER NOT NULL,
|
||||
collaborator_id INTEGER NOT NULL,
|
||||
starred BOOL NOT NULL default 0,
|
||||
FOREIGN KEY(collaborator_id) REFERENCES COLABORATOR(id),
|
||||
FOREIGN KEY(mindmap_id) REFERENCES MINDMAP(id)
|
||||
) CHARACTER SET utf8;
|
||||
|
||||
CREATE TABLE MINDMAP_HISTORY
|
||||
(id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
|
||||
xml blob NOT NULL,
|
||||
mindmap_id INTEGER NOT NULL,
|
||||
creation_date datetime,
|
||||
|