mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-22 14:17:57 +01:00
Merge remote-tracking branch 'origin/develop' into feature/WISE-15-mindmapListFolderSupport
This commit is contained in:
commit
7d9ccaec91
@ -119,16 +119,6 @@
|
||||
<version>${org.springframework.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
<artifactId>jaxb-api</artifactId>
|
||||
<version>2.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.xml.bind</groupId>
|
||||
<artifactId>jsr173_api</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.xmlgraphics</groupId>
|
||||
<artifactId>fop</artifactId>
|
||||
@ -188,12 +178,6 @@
|
||||
<version>${org.springframework.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.transaction</groupId>
|
||||
<artifactId>jta</artifactId>
|
||||
<version>1.0.1B</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-jdbc</artifactId>
|
||||
@ -236,21 +220,15 @@
|
||||
<version>1.7</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<version>2.4</version>
|
||||
<groupId>javax</groupId>
|
||||
<artifactId>javaee-api</artifactId>
|
||||
<version>6.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.mail</groupId>
|
||||
<artifactId>mail</artifactId>
|
||||
<version>1.4</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
@ -323,8 +301,49 @@
|
||||
<artifactId>swagger-springmvc</artifactId>
|
||||
<version>0.6.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.wordnik</groupId>
|
||||
<artifactId>swagger-annotations_2.9.1</artifactId>
|
||||
<version>1.2.0</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>coverage</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.jacoco</groupId>
|
||||
<artifactId>jacoco-maven-plugin</artifactId>
|
||||
<version>0.6.4.201312101107</version>
|
||||
<executions>
|
||||
<!--
|
||||
Prepares the property pointing to the JaCoCo runtime agent which
|
||||
is passed as VM argument when Maven the Surefire plugin is executed.
|
||||
-->
|
||||
<execution>
|
||||
<id>pre-unit-test</id>
|
||||
<goals>
|
||||
<goal>prepare-agent</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<!--
|
||||
Ensures that the code coverage report for unit tests is created after
|
||||
unit tests have been run.
|
||||
-->
|
||||
<execution>
|
||||
<id>post-unit-test</id>
|
||||
<phase>test</phase>
|
||||
<goals>
|
||||
<goal>report</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>hsqldb</id>
|
||||
<activation>
|
||||
@ -511,34 +530,7 @@
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.jacoco</groupId>
|
||||
<artifactId>jacoco-maven-plugin</artifactId>
|
||||
<version>0.6.4.201312101107</version>
|
||||
<executions>
|
||||
<!--
|
||||
Prepares the property pointing to the JaCoCo runtime agent which
|
||||
is passed as VM argument when Maven the Surefire plugin is executed.
|
||||
-->
|
||||
<execution>
|
||||
<id>pre-unit-test</id>
|
||||
<goals>
|
||||
<goal>prepare-agent</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
<!--
|
||||
Ensures that the code coverage report for unit tests is created after
|
||||
unit tests have been run.
|
||||
-->
|
||||
<execution>
|
||||
<id>post-unit-test</id>
|
||||
<phase>test</phase>
|
||||
<goals>
|
||||
<goal>report</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.tomcat.maven</groupId>
|
||||
<artifactId>tomcat7-maven-plugin</artifactId>
|
||||
@ -557,7 +549,7 @@
|
||||
<plugin>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-maven-plugin</artifactId>
|
||||
<version>9.1.0.v20131115</version>
|
||||
<version>9.1.1.v20140108</version>
|
||||
<configuration>
|
||||
<stopKey>foo</stopKey>
|
||||
<stopPort>9999</stopPort>
|
||||
|
@ -47,7 +47,7 @@ public class SupportedUserAgent implements Serializable {
|
||||
|
||||
boolean result = browser == Browser.FIREFOX && majorVersion >= 10;
|
||||
result = result || browser == Browser.FIREFOX2 && majorVersion >= 17;
|
||||
result = result || browser == Browser.IE8 || browser == Browser.IE9;
|
||||
result = result || browser == Browser.IE8 || browser == Browser.IE9 || browser == Browser.IE11 ;
|
||||
result = result || browser == Browser.IE && majorVersion >= 8;
|
||||
result = result || browser == Browser.OPERA10 && majorVersion >= 11;
|
||||
result = result || browser == Browser.CHROME && majorVersion >= 18;
|
||||
|
@ -104,8 +104,6 @@ class LockManagerImpl implements LockManager {
|
||||
}
|
||||
|
||||
private void unlock(int mapId) {
|
||||
System.out.println("Unlocking:"+mapId);
|
||||
|
||||
logger.debug("Unlock map id:" + mapId);
|
||||
lockInfoByMapId.remove(mapId);
|
||||
}
|
||||
|
@ -44,8 +44,8 @@ import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Enum constants for most common browsers, including e-mail clients and bots.
|
||||
* @author harald
|
||||
*
|
||||
* @author harald
|
||||
*/
|
||||
|
||||
public enum Browser {
|
||||
@ -73,6 +73,11 @@ public enum Browser {
|
||||
*/
|
||||
OUTLOOK2010(Manufacturer.MICROSOFT, Browser.OUTLOOK, 108, "Outlook 2010", new String[]{"MSOffice 14"}, null, BrowserType.EMAIL_CLIENT, RenderingEngine.WORD, null), // before IE7
|
||||
|
||||
/**
|
||||
* Family of Internet Explorer browsers
|
||||
*/
|
||||
IE11(Manufacturer.MICROSOFT, null, 1, "Internet Explorer", new String[]{") like Gecko"}, null, BrowserType.WEB_BROWSER, RenderingEngine.TRIDENT, "Mozilla/5.0 (([\\d]+)\\.([\\w]+))"), // before Mozilla
|
||||
|
||||
/**
|
||||
* Family of Internet Explorer browsers
|
||||
*/
|
||||
@ -155,8 +160,6 @@ public enum Browser {
|
||||
DOWNLOAD(Manufacturer.OTHER, null, 16, "Downloading Tool", new String[]{"cURL", "wget"}, null, BrowserType.TEXT_BROWSER, RenderingEngine.OTHER, null),
|
||||
|
||||
UNKNOWN(Manufacturer.OTHER, null, 14, "Unknown", new String[0], null, BrowserType.UNKNOWN, RenderingEngine.OTHER, null);
|
||||
|
||||
|
||||
private final short id;
|
||||
private final String name;
|
||||
private final String[] aliases;
|
||||
@ -172,7 +175,7 @@ public enum Browser {
|
||||
this.id = (short) ((manufacturer.getId() << 8) + (byte) versionId);
|
||||
this.name = name;
|
||||
this.parent = parent;
|
||||
this.children = new ArrayList<Browser>();
|
||||
this.children = new ArrayList<>();
|
||||
if (this.parent != null) {
|
||||
this.parent.children.add(this);
|
||||
}
|
||||
@ -186,6 +189,45 @@ public enum Browser {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterates over all Browsers to compare the browser signature with
|
||||
* the user agent string. If no match can be found Browser.UNKNOWN will
|
||||
* be returned.
|
||||
*
|
||||
* @param agentString
|
||||
* @return Browser
|
||||
*/
|
||||
public static Browser parseUserAgentString(String agentString) {
|
||||
for (Browser browser : Browser.values()) {
|
||||
// only check top level objects
|
||||
if (browser.parent == null) {
|
||||
Browser match = browser.checkUserAgent(agentString);
|
||||
if (match != null) {
|
||||
return match; // either current operatingSystem or a child object
|
||||
}
|
||||
}
|
||||
}
|
||||
return Browser.UNKNOWN;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the enum constant of this type with the specified id.
|
||||
* Throws IllegalArgumentException if the value does not exist.
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static Browser valueOf(short id) {
|
||||
for (Browser browser : Browser.values()) {
|
||||
if (browser.getId() == id)
|
||||
return browser;
|
||||
}
|
||||
|
||||
// same behavior as standard valueOf(string) method
|
||||
throw new IllegalArgumentException(
|
||||
"No enum const for id " + id);
|
||||
}
|
||||
|
||||
public short getId() {
|
||||
return id;
|
||||
}
|
||||
@ -207,6 +249,7 @@ public enum Browser {
|
||||
/**
|
||||
* Detects the detailed version information of the browser. Depends on the userAgent to be available.
|
||||
* Returns null if it can not detect the version information.
|
||||
*
|
||||
* @return Version
|
||||
*/
|
||||
public Version getVersion(String userAgentString) {
|
||||
@ -260,10 +303,8 @@ public enum Browser {
|
||||
* Checks if the given user-agent string matches to the browser.
|
||||
* Only checks for one specific browser.
|
||||
*/
|
||||
public boolean isInUserAgentString(String agentString)
|
||||
{
|
||||
for (String alias : aliases)
|
||||
{
|
||||
public boolean isInUserAgentString(String agentString) {
|
||||
for (String alias : aliases) {
|
||||
if (agentString.toLowerCase().indexOf(alias.toLowerCase()) != -1)
|
||||
return true;
|
||||
}
|
||||
@ -273,11 +314,11 @@ public enum Browser {
|
||||
/**
|
||||
* Checks if the given user-agent does not contain one of the tokens which should not match.
|
||||
* In most cases there are no excluding tokens, so the impact should be small.
|
||||
*
|
||||
* @param agentString
|
||||
* @return
|
||||
*/
|
||||
private boolean containsExcludeToken(String agentString)
|
||||
{
|
||||
private boolean containsExcludeToken(String agentString) {
|
||||
if (excludeList != null) {
|
||||
for (String exclude : excludeList) {
|
||||
if (agentString.toLowerCase().indexOf(exclude.toLowerCase()) != -1)
|
||||
@ -306,47 +347,5 @@ public enum Browser {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterates over all Browsers to compare the browser signature with
|
||||
* the user agent string. If no match can be found Browser.UNKNOWN will
|
||||
* be returned.
|
||||
* @param agentString
|
||||
* @return Browser
|
||||
*/
|
||||
public static Browser parseUserAgentString(String agentString)
|
||||
{
|
||||
for (Browser browser : Browser.values())
|
||||
{
|
||||
// only check top level objects
|
||||
if (browser.parent == null) {
|
||||
Browser match = browser.checkUserAgent(agentString);
|
||||
if (match != null) {
|
||||
return match; // either current operatingSystem or a child object
|
||||
}
|
||||
}
|
||||
}
|
||||
return Browser.UNKNOWN;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the enum constant of this type with the specified id.
|
||||
* Throws IllegalArgumentException if the value does not exist.
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public static Browser valueOf(short id)
|
||||
{
|
||||
for (Browser browser : Browser.values())
|
||||
{
|
||||
if (browser.getId() == id)
|
||||
return browser;
|
||||
}
|
||||
|
||||
// same behavior as standard valueOf(string) method
|
||||
throw new IllegalArgumentException(
|
||||
"No enum const for id " + id);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -151,19 +151,18 @@ public class MindmapController {
|
||||
final Locale locale = LocaleContextHolder.getLocale();
|
||||
|
||||
// Is the mindmap locked ?.
|
||||
boolean isLocked = false;
|
||||
boolean readOnlyMode = !requiresLock || !mindmap.hasPermissions(collaborator, CollaborationRole.EDITOR);
|
||||
if (!readOnlyMode) {
|
||||
final LockManager lockManager = this.mindmapService.getLockManager();
|
||||
if (lockManager.isLocked(mindmap) && !lockManager.isLockedBy(mindmap, collaborator)) {
|
||||
readOnlyMode = true;
|
||||
model.addAttribute("mindmapLocked", true);
|
||||
} else {
|
||||
model.addAttribute("lockTimestamp", mindmap.getLastModificationTime().getTimeInMillis());
|
||||
model.addAttribute(LOCK_SESSION_ATTRIBUTE, lockManager.generateSession());
|
||||
}
|
||||
model.addAttribute("lockInfo", lockManager.getLockInfo(mindmap));
|
||||
}
|
||||
|
||||
// Set render attributes ...
|
||||
model.addAttribute("mindmap", mindmapBean);
|
||||
|
||||
@ -171,6 +170,9 @@ public class MindmapController {
|
||||
model.addAttribute("locale", locale.toString().toLowerCase());
|
||||
model.addAttribute("principal", collaborator);
|
||||
model.addAttribute("readOnlyMode", readOnlyMode);
|
||||
model.addAttribute("memoryPersistence", false);
|
||||
model.addAttribute("mindmapLocked", isLocked);
|
||||
|
||||
return "mindmapEditor";
|
||||
}
|
||||
|
||||
|
@ -248,7 +248,8 @@ TUTORIAL.FONT_STYLE=Styles
|
||||
TUTORIAL.FONT_TYPE=Type
|
||||
TUTORIAL.SAMPLE_NOTE=This is a simple note !.
|
||||
SUPPORT=Support
|
||||
FEEDBACK=Feedback
|
||||
FEEDBACK=Got Feedback ?
|
||||
REPORT_BUG=Raise An Issue
|
||||
CONTACT_US=Contact Us
|
||||
|
||||
#Pending for translation ...
|
||||
|
@ -235,7 +235,9 @@ TUTORIAL.FONT_STYLE=Estilos
|
||||
TUTORIAL.FONT_TYPE=Tipos de Fuente
|
||||
TUTORIAL.SAMPLE_NOTE=Esto es una Nota !
|
||||
SUPPORT=Ayuda
|
||||
FEEDBACK=Feedback
|
||||
FEEDBACK=Tenes Feedback ?
|
||||
REPORT_BUG=Reportar Problema
|
||||
|
||||
CONTACT_US=Contáctenos
|
||||
|
||||
|
||||
|
@ -1,19 +1,35 @@
|
||||
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<div id="footerContainer">
|
||||
<script type="text/javascript" src="https://wisemapping.atlassian.net/s/d41d8cd98f00b204e9800998ecf8427e/en_US-f1g0rh-1988229788/6211/26/1.4.5/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=a47981d6"></script>
|
||||
<script type="text/javascript" src="https://wisemapping.atlassian.net/s/d41d8cd98f00b204e9800998ecf8427e/en_US-f1g0rh-1988229788/6211/26/1.4.5/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=703b9822"></script>
|
||||
|
||||
<div id="footerContainer" class="row">
|
||||
<div class="span1 offset3">
|
||||
<a href="https://twitter.com/share" class="twitter-share-button" data-via="wisemapping"
|
||||
data-related="wisemapping">Tweet</a>
|
||||
<script>!function (d, s, id) {
|
||||
var js, fjs = d.getElementsByTagName(s)[0];
|
||||
if (!d.getElementById(id)) {
|
||||
js = d.createElement(s);
|
||||
js.id = id;
|
||||
js.src = "//platform.twitter.com/widgets.js";
|
||||
fjs.parentNode.insertBefore(js, fjs);
|
||||
<script type="text/javascript">
|
||||
window.ATL_JQ_PAGE_PROPS = $.extend(window.ATL_JQ_PAGE_PROPS, {
|
||||
"a47981d6": {
|
||||
triggerFunction: function(showCollectorDialog) {
|
||||
//Requries that jQuery is available!
|
||||
jQuery("#feedbackBtn").click(function(e) {
|
||||
e.preventDefault();
|
||||
showCollectorDialog();
|
||||
});
|
||||
}
|
||||
}(document, "script", "twitter-wjs");</script>
|
||||
},
|
||||
"703b9822":{
|
||||
triggerFunction: function(showCollectorDialog) {
|
||||
//Requries that jQuery is available!
|
||||
jQuery("#reportIssueBtn").click(function(e) {
|
||||
e.preventDefault();
|
||||
showCollectorDialog();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<div class="span1 offset3">
|
||||
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://www.wisemapping.com" data-text="Check out this site" data-via="wisemapping" data-related="wisemapping">Tweet</a>
|
||||
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>
|
||||
</div>
|
||||
|
||||
<div class="span1">
|
||||
@ -35,10 +51,10 @@
|
||||
</div>
|
||||
<div class="span4">
|
||||
<p style="text-align: center;">
|
||||
<a href="https://groups.google.com/d/forum/wisemapping-support"><spring:message code="SUPPORT"/></a> |
|
||||
<a href="mailto:feedback@wisemapping.com"><spring:message code="FEEDBACK"/></a> |
|
||||
<a href="mailto:dev@wisemapping.com"><spring:message code="CONTACT_US"/></a> |
|
||||
<a href="http://www.wisemapping.org/license"><spring:message code="LICENSE"/></a><br/>
|
||||
<a href="" id="feedbackBtn"><spring:message code="FEEDBACK"/></a> |
|
||||
<a href="" id="reportIssueBtn"><spring:message code="REPORT_BUG"/></a> |
|
||||
<a href="mailto:team@wisemapping.com"><spring:message code="CONTACT_US"/></a> |
|
||||
<a href="https://wisemapping.atlassian.net/wiki/display/WS/License "><spring:message code="LICENSE"/></a><br/>
|
||||
<a href="http://www.wisemapping.org/"><spring:message code="COPYRIGHT"/></a>
|
||||
</p>
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||
<%
|
||||
request.setAttribute("principal", com.wisemapping.security.Utils.getUser());
|
||||
%>
|
||||
|
@ -49,6 +49,9 @@ public class UserAgentTest {
|
||||
final SupportedUserAgent mediapartners = SupportedUserAgent.create("Mediapartners-Google/2.1");
|
||||
Assert.assertEquals(mediapartners.isBrowserSupported(), true);
|
||||
|
||||
final SupportedUserAgent ie11 = SupportedUserAgent.create("Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko");
|
||||
Assert.assertEquals(ie11.isBrowserSupported(), true);
|
||||
|
||||
final SupportedUserAgent firefox20 = SupportedUserAgent.create("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20121215 Firefox/20.0 AppEngine-Google; (+http://code.google.com/appengine; appid: slubuntuk)");
|
||||
Assert.assertEquals(firefox20.isBrowserSupported(), true);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user