mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-08-22 05:20:43 +02:00
Merge branch 'master' into db-purge
Conflicts: wise-webapp/src/main/webapp/WEB-INF/classes/log4j.properties
This commit is contained in:
commit
fe8516bb94
@ -1,6 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
set -x
|
|
||||||
set -e
|
set -e
|
||||||
set -u
|
set -u
|
||||||
|
|
||||||
@ -46,7 +45,6 @@ unzip $BASE_DIR/../wise-webapp/target/wisemapping.war -d $WISE_WEBAPP_DIR >/dev/
|
|||||||
sed 's/\${database.base.url}\/db\/wisemapping/webapps\/wisemapping\/WEB-INF\/database\/wisemapping/' $WISE_WEBAPP_DIR/WEB-INF/app.properties > $WISE_WEBAPP_DIR/WEB-INF/app.properties2
|
sed 's/\${database.base.url}\/db\/wisemapping/webapps\/wisemapping\/WEB-INF\/database\/wisemapping/' $WISE_WEBAPP_DIR/WEB-INF/app.properties > $WISE_WEBAPP_DIR/WEB-INF/app.properties2
|
||||||
mv $WISE_WEBAPP_DIR/WEB-INF/app.properties2 $WISE_WEBAPP_DIR/WEB-INF/app.properties
|
mv $WISE_WEBAPP_DIR/WEB-INF/app.properties2 $WISE_WEBAPP_DIR/WEB-INF/app.properties
|
||||||
|
|
||||||
|
|
||||||
mkdir $WISE_WEBAPP_DIR/WEB-INF/database
|
mkdir $WISE_WEBAPP_DIR/WEB-INF/database
|
||||||
cp -r $BASE_DIR/../wise-webapp/target/db/* $WISE_WEBAPP_DIR/WEB-INF/database/
|
cp -r $BASE_DIR/../wise-webapp/target/db/* $WISE_WEBAPP_DIR/WEB-INF/database/
|
||||||
cp $BASE_DIR/wisemapping.xml $JETTY_DIR/contexts/
|
cp $BASE_DIR/wisemapping.xml $JETTY_DIR/contexts/
|
||||||
@ -54,6 +52,7 @@ cp $BASE_DIR/wisemapping.xml $JETTY_DIR/contexts/
|
|||||||
|
|
||||||
# Distribute scripts
|
# Distribute scripts
|
||||||
cp -r $BASE_DIR/../wise-webapp/src/test/sql $TARGET_DIR/wisemapping-$WISE_VERSION/config
|
cp -r $BASE_DIR/../wise-webapp/src/test/sql $TARGET_DIR/wisemapping-$WISE_VERSION/config
|
||||||
|
cp ./start.sh ${JETTY_DIR}/
|
||||||
|
|
||||||
# Store version
|
# Store version
|
||||||
echo $1 > $WISE_WEBAPP_DIR/version
|
echo $1 > $WISE_WEBAPP_DIR/version
|
||||||
|
4
distribution/start.sh
Executable file
4
distribution/start.sh
Executable file
@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
java -Xmx256m -Dorg.apache.jasper.compiler.disablejsr199=true -jar start.jar
|
||||||
|
|
@ -167,39 +167,40 @@ mindplot.Designer = new Class({
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Enable drag events ...
|
// Enable drag events ...
|
||||||
Element.NativeEvents.dragenter = 2;
|
// @Todo: Images support on progress ...
|
||||||
Element.NativeEvents.dragexit = 2;
|
// Element.NativeEvents.dragenter = 2;
|
||||||
Element.NativeEvents.dragover = 2;
|
// Element.NativeEvents.dragexit = 2;
|
||||||
Element.NativeEvents.drop = 2;
|
// Element.NativeEvents.dragover = 2;
|
||||||
|
// Element.NativeEvents.drop = 2;
|
||||||
screenManager.addEvent('dragenter', noopHandler);
|
|
||||||
screenManager.addEvent('dragexit', noopHandler);
|
|
||||||
screenManager.addEvent('dragover', noopHandler);
|
|
||||||
screenManager.addEvent('drop', function (evt) {
|
|
||||||
evt.stopPropagation();
|
|
||||||
evt.preventDefault();
|
|
||||||
//
|
//
|
||||||
var files = evt.event.dataTransfer.files;
|
// screenManager.addEvent('dragenter', noopHandler);
|
||||||
console.log(event);
|
// screenManager.addEvent('dragexit', noopHandler);
|
||||||
|
// screenManager.addEvent('dragover', noopHandler);
|
||||||
var count = files.length;
|
// screenManager.addEvent('drop', function (evt) {
|
||||||
|
// evt.stopPropagation();
|
||||||
// Only call the handler if 1 or more files was dropped.
|
// evt.preventDefault();
|
||||||
if (count > 0) {
|
////
|
||||||
|
// var files = evt.event.dataTransfer.files;
|
||||||
var model = this.getMindmap().createNode();
|
// console.log(event);
|
||||||
model.setImageSize(80, 43);
|
//
|
||||||
model.setMetadata("{'media':'video,'url':'http://www.youtube.com/watch?v=P3FrXftyuzw&feature=g-vrec&context=G2b4ab69RVAAAAAAAAAA'}");
|
// var count = files.length;
|
||||||
model.setImageUrl("images/logo-small.png");
|
//
|
||||||
model.setShapeType(mindplot.model.TopicShape.IMAGE);
|
// // Only call the handler if 1 or more files was dropped.
|
||||||
|
// if (count > 0) {
|
||||||
var position = screenManager.getWorkspaceMousePosition(evt);
|
//
|
||||||
model.setPosition(position.x, position.y);
|
// var model = this.getMindmap().createNode();
|
||||||
model.setPosition(100, 100);
|
// model.setImageSize(80, 43);
|
||||||
|
// model.setMetadata("{'media':'video,'url':'http://www.youtube.com/watch?v=P3FrXftyuzw&feature=g-vrec&context=G2b4ab69RVAAAAAAAAAA'}");
|
||||||
this._actionDispatcher.addTopics([model]);
|
// model.setImageUrl("images/logo-small.png");
|
||||||
}
|
// model.setShapeType(mindplot.model.TopicShape.IMAGE);
|
||||||
}.bind(this));
|
//
|
||||||
|
// var position = screenManager.getWorkspaceMousePosition(evt);
|
||||||
|
// model.setPosition(position.x, position.y);
|
||||||
|
// model.setPosition(100, 100);
|
||||||
|
//
|
||||||
|
// this._actionDispatcher.addTopics([model]);
|
||||||
|
// }
|
||||||
|
// }.bind(this));
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
@ -83,6 +83,7 @@ mindplot.DesignerModel = new Class({
|
|||||||
|
|
||||||
addTopic:function (topic) {
|
addTopic:function (topic) {
|
||||||
$assert(topic, "topic can not be null");
|
$assert(topic, "topic can not be null");
|
||||||
|
$assert(typeof topic.getId() == "number", "id is not a number:" + topic.getId());
|
||||||
this._topics.push(topic);
|
this._topics.push(topic);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -38,6 +38,7 @@ mindplot.NodeGraph = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
setId : function(id) {
|
setId : function(id) {
|
||||||
|
$assert(typeof topic.getId() == "number", "id is not a number:" + id);
|
||||||
this.getModel().setId(id);
|
this.getModel().setId(id);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -54,7 +54,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
};
|
};
|
||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicId, position);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicId, position);
|
||||||
command.desc = "move topic";
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -72,7 +71,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds);
|
||||||
command.desc = "changeFontStyleToTopic";
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
|
|
||||||
},
|
},
|
||||||
@ -85,9 +83,9 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
topic.setText(value);
|
topic.setText(value);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
commandFunc.commandType = "changeTextToTopic";
|
||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, text);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, text);
|
||||||
command.desc = "changeTextToTopic";
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -105,8 +103,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
};
|
};
|
||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicIds, fontFamily);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicIds, fontFamily);
|
||||||
command.desc = "changeFontFamilyToTopic";
|
|
||||||
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -122,7 +118,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
|
||||||
command.discardDuplicated = "fontColorCommandId";
|
command.discardDuplicated = "fontColorCommandId";
|
||||||
command.desc = "changeFontColorToTopic";
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -138,8 +133,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
|
||||||
command.discardDuplicated = "backColor";
|
command.discardDuplicated = "backColor";
|
||||||
command.desc = "changeBackgroundColorToTopic";
|
|
||||||
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -155,8 +148,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, color);
|
||||||
command.discardDuplicated = "borderColorCommandId";
|
command.discardDuplicated = "borderColorCommandId";
|
||||||
command.desc = "changeBorderColorToTopic";
|
|
||||||
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -173,8 +164,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
};
|
};
|
||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, size);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, size);
|
||||||
command.desc = "changeFontSizeToTopic";
|
|
||||||
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -189,8 +178,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
};
|
};
|
||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, shapeType);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, shapeType);
|
||||||
command.desc = "changeShapeTypeToTopic";
|
|
||||||
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -207,8 +194,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
};
|
};
|
||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds);
|
||||||
command.desc = "changeFontWeightToTopic";
|
|
||||||
|
|
||||||
this.execute(command);
|
this.execute(command);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -221,8 +206,6 @@ mindplot.StandaloneActionDispatcher = new Class({
|
|||||||
};
|
};
|
||||||
|
|
||||||
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, collapse);
|
var command = new mindplot.commands.GenericFunctionCommand(commandFunc, topicsIds, collapse);
|
||||||
command.desc = "shrinkBranch";
|
|
||||||
|
|
||||||
this.execute(command, false);
|
this.execute(command, false);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -268,7 +251,7 @@ mindplot.CommandContext = new Class({
|
|||||||
var ids = designerTopics.map(function (topic) {
|
var ids = designerTopics.map(function (topic) {
|
||||||
return topic.getId();
|
return topic.getId();
|
||||||
});
|
});
|
||||||
$assert(result.length == topicsIds.length, "Could not find topic. Result:" + result + ", Filter Criteria:" + topicsIds + ", Current Topics: " + ids);
|
$assert(result.length == topicsIds.length, "Could not find topic. Result:" + result + ", Filter Criteria:" + topicsIds + ", Current Topics: [" + ids + "]");
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
@ -32,19 +32,27 @@ mindplot.commands.GenericFunctionCommand = new Class({
|
|||||||
execute:function (commandContext) {
|
execute:function (commandContext) {
|
||||||
if (!this.applied) {
|
if (!this.applied) {
|
||||||
|
|
||||||
// @Todo: Debug hack. Remove
|
var topics = null;
|
||||||
var topics;
|
|
||||||
try {
|
try {
|
||||||
topics = commandContext.findTopics(this._topicsId);
|
topics = commandContext.findTopics(this._topicsId);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
throw new Error(e + "," + this._commandFunc + "," + this._commandFunc.desc);
|
if (this._commandFunc.commandType != "changeTextToTopic") {
|
||||||
|
// Workaround: For some reason, there is a combination of events that involves
|
||||||
|
// making some modification and firing out of focus event. This is causing
|
||||||
|
// that a remove node try to be removed. In some other life, I will come with the solution.
|
||||||
|
// Almost aways occurs with IE9. I could be related with some change of order in sets o something similar.
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
topics.each(function (topic) {
|
if (topics != null) {
|
||||||
var oldValue = this._commandFunc(topic, this._value);
|
topics.each(function (topic) {
|
||||||
this._oldValues.push(oldValue);
|
var oldValue = this._commandFunc(topic, this._value);
|
||||||
}.bind(this));
|
this._oldValues.push(oldValue);
|
||||||
|
}.bind(this));
|
||||||
|
}
|
||||||
this.applied = true;
|
this.applied = true;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
throw "Command can not be applied two times in a row.";
|
throw "Command can not be applied two times in a row.";
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
web2d.peer.svg.ElementPeer = new Class({
|
web2d.peer.svg.ElementPeer = new Class({
|
||||||
initialize :function(svgElement) {
|
initialize:function (svgElement) {
|
||||||
this._native = svgElement;
|
this._native = svgElement;
|
||||||
if (!this._native.addEvent) {
|
if (!this._native.addEvent) {
|
||||||
// Hack bug: https://bugzilla.mozilla.org/show_bug.cgi?id=740811
|
// Hack bug: https://bugzilla.mozilla.org/show_bug.cgi?id=740811
|
||||||
@ -26,16 +26,16 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this._size = {width:1,height:1};
|
this._size = {width:1, height:1};
|
||||||
this._changeListeners = {};
|
this._changeListeners = {};
|
||||||
// http://support.adobe.com/devsup/devsup.nsf/docs/50493.htm
|
// http://support.adobe.com/devsup/devsup.nsf/docs/50493.htm
|
||||||
},
|
},
|
||||||
|
|
||||||
setChildren : function(children) {
|
setChildren:function (children) {
|
||||||
this._children = children;
|
this._children = children;
|
||||||
},
|
},
|
||||||
|
|
||||||
getChildren : function() {
|
getChildren:function () {
|
||||||
var result = this._children;
|
var result = this._children;
|
||||||
if (!$defined(result)) {
|
if (!$defined(result)) {
|
||||||
result = [];
|
result = [];
|
||||||
@ -44,15 +44,15 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
getParent : function() {
|
getParent:function () {
|
||||||
return this._parent;
|
return this._parent;
|
||||||
},
|
},
|
||||||
|
|
||||||
setParent : function(parent) {
|
setParent:function (parent) {
|
||||||
this._parent = parent;
|
this._parent = parent;
|
||||||
},
|
},
|
||||||
|
|
||||||
appendChild : function(elementPeer) {
|
appendChild:function (elementPeer) {
|
||||||
// Store parent and child relationship.
|
// Store parent and child relationship.
|
||||||
elementPeer.setParent(this);
|
elementPeer.setParent(this);
|
||||||
var children = this.getChildren();
|
var children = this.getChildren();
|
||||||
@ -66,20 +66,17 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
removeChild : function(elementPeer) {
|
removeChild:function (elementPeer) {
|
||||||
// Store parent and child relationship.
|
// Store parent and child relationship.
|
||||||
elementPeer.setParent(null);
|
elementPeer.setParent(null);
|
||||||
var children = this.getChildren();
|
var children = this.getChildren();
|
||||||
|
|
||||||
// Remove from children array ...
|
// Remove from children array ...
|
||||||
var length = children.length;
|
var oldLength = children.length;
|
||||||
|
|
||||||
children.erase(elementPeer);
|
children.erase(elementPeer);
|
||||||
|
$assert(children.length < oldLength, "element could not be removed:" + elementPeer);
|
||||||
|
|
||||||
var newLength = children.length;
|
|
||||||
if (newLength >= length) {
|
|
||||||
throw "Could not remove the element.";
|
|
||||||
}
|
|
||||||
// Append element as a child.
|
// Append element as a child.
|
||||||
this._native.removeChild(elementPeer._native);
|
this._native.removeChild(elementPeer._native);
|
||||||
},
|
},
|
||||||
@ -88,23 +85,23 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
* http://www.w3.org/TR/DOM-Level-3-Events/events.html
|
* http://www.w3.org/TR/DOM-Level-3-Events/events.html
|
||||||
* http://developer.mozilla.org/en/docs/addEvent
|
* http://developer.mozilla.org/en/docs/addEvent
|
||||||
*/
|
*/
|
||||||
addEvent : function(type, listener) {
|
addEvent:function (type, listener) {
|
||||||
this._native.addEvent(type, listener);
|
this._native.addEvent(type, listener);
|
||||||
},
|
},
|
||||||
|
|
||||||
fireEvent : function(type, event) {
|
fireEvent:function (type, event) {
|
||||||
this._native.fireEvent(type, event);
|
this._native.fireEvent(type, event);
|
||||||
},
|
},
|
||||||
|
|
||||||
cloneEvents : function(from) {
|
cloneEvents:function (from) {
|
||||||
this._native.cloneEvents(from);
|
this._native.cloneEvents(from);
|
||||||
},
|
},
|
||||||
|
|
||||||
removeEvent : function(type, listener) {
|
removeEvent:function (type, listener) {
|
||||||
this._native.removeEvent(type, listener);
|
this._native.removeEvent(type, listener);
|
||||||
},
|
},
|
||||||
|
|
||||||
setSize : function(width, height) {
|
setSize:function (width, height) {
|
||||||
if ($defined(width) && this._size.width != parseInt(width)) {
|
if ($defined(width) && this._size.width != parseInt(width)) {
|
||||||
this._size.width = parseInt(width);
|
this._size.width = parseInt(width);
|
||||||
this._native.setAttribute('width', parseInt(width));
|
this._native.setAttribute('width', parseInt(width));
|
||||||
@ -118,11 +115,11 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
web2d.peer.utils.EventUtils.broadcastChangeEvent(this, "strokeStyle");
|
||||||
},
|
},
|
||||||
|
|
||||||
getSize : function() {
|
getSize:function () {
|
||||||
return {width:this._size.width,height:this._size.height};
|
return {width:this._size.width, height:this._size.height};
|
||||||
},
|
},
|
||||||
|
|
||||||
setFill : function(color, opacity) {
|
setFill:function (color, opacity) {
|
||||||
if ($defined(color)) {
|
if ($defined(color)) {
|
||||||
this._native.setAttribute('fill', color);
|
this._native.setAttribute('fill', color);
|
||||||
}
|
}
|
||||||
@ -131,22 +128,22 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
getFill : function() {
|
getFill:function () {
|
||||||
var color = this._native.getAttribute('fill');
|
var color = this._native.getAttribute('fill');
|
||||||
var opacity = this._native.getAttribute('fill-opacity');
|
var opacity = this._native.getAttribute('fill-opacity');
|
||||||
return {color:color, opacity:Number(opacity)};
|
return {color:color, opacity:Number(opacity)};
|
||||||
},
|
},
|
||||||
|
|
||||||
getStroke : function() {
|
getStroke:function () {
|
||||||
var vmlStroke = this._native;
|
var vmlStroke = this._native;
|
||||||
var color = vmlStroke.getAttribute('stroke');
|
var color = vmlStroke.getAttribute('stroke');
|
||||||
var dashstyle = this._stokeStyle;
|
var dashstyle = this._stokeStyle;
|
||||||
var opacity = vmlStroke.getAttribute('stroke-opacity');
|
var opacity = vmlStroke.getAttribute('stroke-opacity');
|
||||||
var width = vmlStroke.getAttribute('stroke-width');
|
var width = vmlStroke.getAttribute('stroke-width');
|
||||||
return {color: color, style: dashstyle, opacity: opacity, width: width};
|
return {color:color, style:dashstyle, opacity:opacity, width:width};
|
||||||
},
|
},
|
||||||
|
|
||||||
setStroke : function(width, style, color, opacity) {
|
setStroke:function (width, style, color, opacity) {
|
||||||
if ($defined(width)) {
|
if ($defined(width)) {
|
||||||
this._native.setAttribute('stroke-width', width + "px");
|
this._native.setAttribute('stroke-width', width + "px");
|
||||||
}
|
}
|
||||||
@ -182,16 +179,16 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
/*
|
/*
|
||||||
* style='visibility: visible'
|
* style='visibility: visible'
|
||||||
*/
|
*/
|
||||||
setVisibility : function(isVisible) {
|
setVisibility:function (isVisible) {
|
||||||
this._native.setAttribute('visibility', (isVisible) ? 'visible' : 'hidden');
|
this._native.setAttribute('visibility', (isVisible) ? 'visible' : 'hidden');
|
||||||
},
|
},
|
||||||
|
|
||||||
isVisible : function() {
|
isVisible:function () {
|
||||||
var visibility = this._native.getAttribute('visibility');
|
var visibility = this._native.getAttribute('visibility');
|
||||||
return !(visibility == 'hidden');
|
return !(visibility == 'hidden');
|
||||||
},
|
},
|
||||||
|
|
||||||
updateStrokeStyle : function() {
|
updateStrokeStyle:function () {
|
||||||
var strokeStyle = this._stokeStyle;
|
var strokeStyle = this._stokeStyle;
|
||||||
if (this.getParent()) {
|
if (this.getParent()) {
|
||||||
if (strokeStyle && strokeStyle != 'solid') {
|
if (strokeStyle && strokeStyle != 'solid') {
|
||||||
@ -200,7 +197,7 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
attachChangeEventListener : function(type, listener) {
|
attachChangeEventListener:function (type, listener) {
|
||||||
var listeners = this.getChangeEventListeners(type);
|
var listeners = this.getChangeEventListeners(type);
|
||||||
if (!$defined(listener)) {
|
if (!$defined(listener)) {
|
||||||
throw "Listener can not be null";
|
throw "Listener can not be null";
|
||||||
@ -208,7 +205,7 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
listeners.push(listener);
|
listeners.push(listener);
|
||||||
},
|
},
|
||||||
|
|
||||||
getChangeEventListeners : function(type) {
|
getChangeEventListeners:function (type) {
|
||||||
var listeners = this._changeListeners[type];
|
var listeners = this._changeListeners[type];
|
||||||
if (!$defined(listeners)) {
|
if (!$defined(listeners)) {
|
||||||
listeners = [];
|
listeners = [];
|
||||||
@ -217,7 +214,7 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
return listeners;
|
return listeners;
|
||||||
},
|
},
|
||||||
|
|
||||||
positionRelativeTo : function(elem, options) {
|
positionRelativeTo:function (elem, options) {
|
||||||
options = !$defined(options) ? {} : options;
|
options = !$defined(options) ? {} : options;
|
||||||
options['relativeTo'] = $(this._native);
|
options['relativeTo'] = $(this._native);
|
||||||
elem.position(options);
|
elem.position(options);
|
||||||
@ -227,18 +224,18 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
/**
|
/**
|
||||||
* Move element to the front
|
* Move element to the front
|
||||||
*/
|
*/
|
||||||
moveToFront : function() {
|
moveToFront:function () {
|
||||||
this._native.parentNode.appendChild(this._native);
|
this._native.parentNode.appendChild(this._native);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Move element to the back
|
* Move element to the back
|
||||||
*/
|
*/
|
||||||
moveToBack : function() {
|
moveToBack:function () {
|
||||||
this._native.parentNode.insertBefore(this._native, this._native.parentNode.firstChild);
|
this._native.parentNode.insertBefore(this._native, this._native.parentNode.firstChild);
|
||||||
},
|
},
|
||||||
|
|
||||||
setCursor : function(type) {
|
setCursor:function (type) {
|
||||||
this._native.style.cursor = type;
|
this._native.style.cursor = type;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -246,5 +243,5 @@ web2d.peer.svg.ElementPeer = new Class({
|
|||||||
|
|
||||||
web2d.peer.svg.ElementPeer.prototype.svgNamespace = 'http://www.w3.org/2000/svg';
|
web2d.peer.svg.ElementPeer.prototype.svgNamespace = 'http://www.w3.org/2000/svg';
|
||||||
web2d.peer.svg.ElementPeer.prototype.linkNamespace = 'http://www.w3.org/1999/xlink';
|
web2d.peer.svg.ElementPeer.prototype.linkNamespace = 'http://www.w3.org/1999/xlink';
|
||||||
web2d.peer.svg.ElementPeer.prototype.__stokeStyleToStrokDasharray = {solid:[],dot:[1,3],dash:[4,3],longdash:[10,2],dashdot:[5,3,1,3]};
|
web2d.peer.svg.ElementPeer.prototype.__stokeStyleToStrokDasharray = {solid:[], dot:[1, 3], dash:[4, 3], longdash:[10, 2], dashdot:[5, 3, 1, 3]};
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ function buildDesigner(options) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trasform error ...
|
// Transform error ...
|
||||||
var errorMsg = message;
|
var errorMsg = message;
|
||||||
if (typeof(message) === 'object' && message.srcElement && message.target) {
|
if (typeof(message) === 'object' && message.srcElement && message.target) {
|
||||||
if (message.srcElement == '[object HTMLScriptElement]' && message.target == '[object HTMLScriptElement]') {
|
if (message.srcElement == '[object HTMLScriptElement]' && message.target == '[object HTMLScriptElement]') {
|
||||||
@ -57,7 +57,7 @@ function buildDesigner(options) {
|
|||||||
emulation:false,
|
emulation:false,
|
||||||
urlEncoded:false
|
urlEncoded:false
|
||||||
}).post(JSON.encode({
|
}).post(JSON.encode({
|
||||||
jsErrorMsg:"Message: '" + errorMsg + "', line:'" + lineNo + "', :" + url,
|
jsErrorMsg:"Message: '" + errorMsg + "', line:'" + lineNo + "', url: :" + url,
|
||||||
jsStack:window.errorStack,
|
jsStack:window.errorStack,
|
||||||
userAgent:navigator.userAgent,
|
userAgent:navigator.userAgent,
|
||||||
mapId:options.mapId}));
|
mapId:options.mapId}));
|
||||||
|
@ -1,197 +1,48 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<map name="welcome" version="tango">
|
||||||
<map version="tango" name="basic">
|
<topic central="true" text="Welcome To WiseMapping" id="1" fontStyle=";;#dfcfe6;;;" bgColor="#0a0a08">
|
||||||
<topic id="0" central="true" position="0,0" bgColor="#99ffff"
|
<topic position="178,-130" order="0" text="Try it Now!" id="11" fontStyle=";;#ffffff;;;" bgColor="#250be3"
|
||||||
fontStyle="Arial;16;#ff3300;bold;;" shape="rounded rectagle">
|
brColor="#080559">
|
||||||
<text><![CDATA[120924 Programme]]></text>
|
<topic position="272,-156" order="0" text="Double Click" id="12" fontStyle=";;#001be6;;italic;"/>
|
||||||
<note>
|
<topic position="274,-130" order="1" text=" INS to insert" id="13" fontStyle=";;#001be6;;italic;"/>
|
||||||
<text><![CDATA[]]></text>
|
<topic position="285,-104" order="2" text="Drag map to move" id="14" fontStyle=";;#001be6;;italic;"/>
|
||||||
</note>
|
</topic>
|
||||||
<topic id="1" position="200,0" order="0" brColor="#808080"
|
<topic position="-189,-52" order="1" text="Productivity" id="2" fontStyle=";;#104f11;;;" bgColor="#d9b518">
|
||||||
bgColor="#ffff33" fontStyle="Arial;14;#0000cc;bold;;" shape="rounded rectagle">
|
<icon id="chart_bar"/>
|
||||||
<text><![CDATA[bilan mi-parcours
|
<topic position="-310,-104" order="0" text="Share your ideas" id="3">
|
||||||
du plan d'actions]]></text>
|
<icon id="bulb_light_on"/>
|
||||||
<topic id="2" position="290,-75" order="0"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[modalités]]></text>
|
|
||||||
<topic id="3" position="380,-125" order="0" shape="line">
|
|
||||||
<text><![CDATA[cf. mi-parcours 201109]]></text>
|
|
||||||
</topic>
|
|
||||||
<topic id="4" position="380,-100" order="1"
|
|
||||||
fontStyle="Arial;12;;;;" shape="line">
|
|
||||||
<text><![CDATA[à partir des plans d'actions]]></text>
|
|
||||||
</topic>
|
|
||||||
<topic id="5" position="380,-75" order="2"
|
|
||||||
fontStyle="Arial;12;;;;" shape="line">
|
|
||||||
<text><![CDATA[donner la parole aux référents prévus, en demandant des exemples]]></text>
|
|
||||||
</topic>
|
|
||||||
<topic id="6" position="380,-50" order="3"
|
|
||||||
fontStyle="Arial;12;;;;" shape="line">
|
|
||||||
<text><![CDATA[faire compléter par les autres participants]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
</topic>
|
||||||
<topic id="7" position="290,-50" order="1" brColor="#808080"
|
<topic position="-299,-25" order="2" text="Brainstorming" id="4"/>
|
||||||
bgColor="#99ffff" fontStyle="Arial;12;#0000cc;bold;;" shape="rounded rectagle">
|
<topic position="-283,1" order="3" text="Visual " id="5"/>
|
||||||
<text><![CDATA[1) Adapter et améliorer
|
<topic position="-307,-65" order="1" shape="image" image="80,43:images/logo-small.png" id="27"
|
||||||
notre offre de services
|
metadata="{'media':'video,'url':'http://www.youtube.com/watch?v=P3FrXftyuzw&feature=g-vrec&context=G2b4ab69RVAAAAAAAAAA'}"/>
|
||||||
selon l'évolution des besoins]]></text>
|
</topic>
|
||||||
<topic id="8" position="380,-175" order="0"
|
<topic position="185,-39" order="2" text="Mind Mapping" id="6" fontStyle=";;#602378;;;" bgColor="#edabff">
|
||||||
bgColor="#99ffff" shape="line">
|
<topic position="303,-78" order="0" text="Share with Collegues" id="7"/>
|
||||||
<text><![CDATA[couleurs = état d'avancement en septembre 2011,
|
<topic position="275,-52" order="1" text="Online" id="8"/>
|
||||||
à mettre à jour selon avancement 2012]]></text>
|
<topic position="299,-26" order="2" text="Anyplace, Anytime" id="9"/>
|
||||||
<topic id="9" position="470,-225" order="0"
|
<topic position="277,0" order="3" text="Free!!!" id="10"/>
|
||||||
bgColor="#0099ff" shape="line">
|
</topic>
|
||||||
<text><![CDATA[Bleu 0%]]></text>
|
<topic position="-183,66" order="3" text="Web 2.0 Tool" id="22" fontStyle=";;#0c1d6b;;;" bgColor="#add1f7">
|
||||||
</topic>
|
<topic position="-281,27" order="0" text="Collaborate" id="23"/>
|
||||||
<topic id="10" position="470,-200" order="1"
|
<topic position="-302,53" order="1" text="No plugin required" id="24">
|
||||||
bgColor="#ff9999" shape="line">
|
<icon id="conn_disconnect"/>
|
||||||
<text><![CDATA[Rouge 25%]]></text>
|
|
||||||
</topic>
|
|
||||||
<topic id="11" position="470,-175" order="2"
|
|
||||||
bgColor="#ffcc00" shape="line">
|
|
||||||
<text><![CDATA[Orange 50%]]></text>
|
|
||||||
</topic>
|
|
||||||
<topic id="12" position="470,-150" order="3"
|
|
||||||
bgColor="#ffff00" shape="line">
|
|
||||||
<text><![CDATA[Jaune 75%]]></text>
|
|
||||||
</topic>
|
|
||||||
<topic id="13" position="470,-125" order="4"
|
|
||||||
bgColor="#66ff00" shape="line">
|
|
||||||
<text><![CDATA[Vert]]></text>
|
|
||||||
<topic id="14" position="560,-125" order="0" shape="line">
|
|
||||||
<text><![CDATA[100 %]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic shrink="true" id="15" position="380,-150"
|
|
||||||
order="1" bgColor="#66ff00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[1.1. .Renforcer et structurer
|
|
||||||
le service "accueil et orientation"]]></text>
|
|
||||||
<topic id="16" position="470,-175" order="0" shape="line">
|
|
||||||
<text><![CDATA[Sophie]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="17" position="380,-125" order="2"
|
|
||||||
bgColor="#ffff00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[1.2. Adapter l'offre Halte-Garderie
|
|
||||||
aux besoins des familles]]></text>
|
|
||||||
<topic id="18" position="470,-150" order="0" shape="line">
|
|
||||||
<text><![CDATA[Martine D et Christine]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="19" position="380,-100" order="3"
|
|
||||||
bgColor="#66ff00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[1.3. Renforcer et structurer les services
|
|
||||||
de soutien à la parentalité]]></text>
|
|
||||||
<topic id="20" position="470,-125" order="0" shape="line">
|
|
||||||
<text><![CDATA[Nathalie]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="21" position="380,-75" order="4"
|
|
||||||
bgColor="#ffff00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[1.4 Améliorer la qualité des
|
|
||||||
projets pédagogiques des ALSH]]></text>
|
|
||||||
<topic id="22" position="470,-100" order="0" shape="line">
|
|
||||||
<text><![CDATA[Josiane]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="23" position="380,-50" order="5"
|
|
||||||
bgColor="#ffcc00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[1.5 Renforcer et améliorer les
|
|
||||||
activités de loisirs existantes]]></text>
|
|
||||||
<topic id="24" position="470,-75" order="0" shape="line">
|
|
||||||
<text><![CDATA[Agnès]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="25" position="380,-25" order="6"
|
|
||||||
bgColor="#66ff00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[1.6 Renforcer et améliorer les ateliers
|
|
||||||
visant à rompre l'isolement lié à la langue,
|
|
||||||
la pauvreté, la pression de la consommation]]></text>
|
|
||||||
<topic id="26" position="470,-50" order="0" shape="line">
|
|
||||||
<text><![CDATA[Nathalie]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
</topic>
|
||||||
<topic id="27" position="290,-25" order="2"
|
<topic position="-271,79" order="2" text="Share" id="25"/>
|
||||||
brColor="#808080" bgColor="#99ffff"
|
<topic position="-282,105" order="3" text="Easy to use" id="26"/>
|
||||||
fontStyle="Arial;14;#0000cc;bold;;" shape="rounded rectagle">
|
</topic>
|
||||||
<text><![CDATA[2) Consolider nos moyens d'action :
|
<topic position="171,91" order="4" text="Features" id="15">
|
||||||
locaux, organisation, communication interne]]></text>
|
<topic position="266,26" order="0" text="Links to Sites" id="16" fontStyle=";6;;;;">
|
||||||
<topic id="28" position="380,-100" order="0"
|
<link url="http://www.digg.com" type="url"/>
|
||||||
bgColor="#ffff00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[2.1 Formaliser notre offre de services
|
|
||||||
et les modèles économiques correspondants]]></text>
|
|
||||||
<topic id="29" position="470,-150" order="0" shape="line">
|
|
||||||
<text><![CDATA[Agnès]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="30" position="380,-75" order="1"
|
|
||||||
bgColor="#ffcc00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[2.2 Formaliser le "qui fait quoi"
|
|
||||||
en lien avec notre offre de service]]></text>
|
|
||||||
<topic id="31" position="470,-125" order="0" shape="line">
|
|
||||||
<text><![CDATA[Martine G]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="32" position="380,-50" order="2"
|
|
||||||
bgColor="#66ff00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[2.3. Elaborer un projet immobilier de proximité
|
|
||||||
réalisable au centre ville]]></text>
|
|
||||||
<topic id="33" position="470,-100" order="0" shape="line">
|
|
||||||
<text><![CDATA[JMDW]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
</topic>
|
||||||
<topic id="34" position="290,0" order="3" brColor="#808080"
|
<topic position="245,52" order="1" text="Fonts" id="17"/>
|
||||||
bgColor="#99ffff" fontStyle="Arial;14;#0000cc;bold;;" shape="rounded rectagle">
|
<topic position="255,78" order="2" text="Topic Color" id="18"/>
|
||||||
<text><![CDATA[3) Renforcer nos
|
<topic position="260,104" order="3" text="Topic Shapes" shape="line" id="19"/>
|
||||||
partenariats et
|
<topic position="252,130" order="4" text="Icons" id="20">
|
||||||
notre notoriété]]></text>
|
<icon id="object_rainbow"/>
|
||||||
<topic id="35" position="380,-75" order="0"
|
</topic>
|
||||||
brColor="#808080" bgColor="#ffff00"
|
<topic position="272,156" order="5" text="History Changes" id="21">
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
<icon id="arrowc_turn_left"/>
|
||||||
<text><![CDATA[3.1 Organiser pour chaque segment de notre offre
|
|
||||||
l'identification et la rencontre des partenaires concernés]]></text>
|
|
||||||
<topic id="36" position="470,-125" order="0" shape="line">
|
|
||||||
<text><![CDATA[Martine P]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="37" position="380,-50" order="1"
|
|
||||||
brColor="#808080" bgColor="#ffcc00"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[3.2 Formaliser et contractualiser les partenariats
|
|
||||||
émergeants autour d'actions communes]]></text>
|
|
||||||
<topic id="38" position="470,-100" order="0" shape="line">
|
|
||||||
<text><![CDATA[Pdt + Agnès]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="39" position="380,-25" order="2"
|
|
||||||
bgColor="#ff6666"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[3.3 développer la vie associative]]></text>
|
|
||||||
<topic id="40" position="470,-50" order="0" shape="line">
|
|
||||||
<text><![CDATA[Pdt + Agnès]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
<topic id="41" position="380,0" order="3"
|
|
||||||
brColor="#808080" bgColor="#ff6666"
|
|
||||||
fontStyle="Arial;12;#006600;bold;;" shape="line">
|
|
||||||
<text><![CDATA[3.4 définir et faire vivre un plan de communication
|
|
||||||
à partir de notre segmentation de l'offre]]></text>
|
|
||||||
<topic id="42" position="470,-50" order="0" shape="line">
|
|
||||||
<text><![CDATA[Pdt + Agnès]]></text>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
|
||||||
</topic>
|
</topic>
|
||||||
</topic>
|
</topic>
|
||||||
</topic>
|
</topic>
|
||||||
</map>
|
</map>
|
@ -95,6 +95,12 @@
|
|||||||
<version>${org.springframework.version}</version>
|
<version>${org.springframework.version}</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-log4j12</artifactId>
|
||||||
|
<version>1.7.2</version>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework</groupId>
|
<groupId>org.springframework</groupId>
|
||||||
<artifactId>spring-web</artifactId>
|
<artifactId>spring-web</artifactId>
|
||||||
@ -255,7 +261,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>log4j</groupId>
|
<groupId>log4j</groupId>
|
||||||
<artifactId>log4j</artifactId>
|
<artifactId>log4j</artifactId>
|
||||||
<version>1.2.9</version>
|
<version>1.2.17</version>
|
||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- Only for test purposes -->
|
<!-- Only for test purposes -->
|
||||||
@ -280,7 +286,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.slf4j</groupId>
|
<groupId>org.slf4j</groupId>
|
||||||
<artifactId>slf4j-api</artifactId>
|
<artifactId>slf4j-api</artifactId>
|
||||||
<version>1.6.4</version>
|
<version>1.7.2</version>
|
||||||
<scope>runtime</scope>
|
<scope>runtime</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -18,29 +18,51 @@
|
|||||||
|
|
||||||
package com.wisemapping.filter;
|
package com.wisemapping.filter;
|
||||||
|
|
||||||
import com.wisemapping.exceptions.GoogleChromeFrameRequiredException;
|
|
||||||
import com.wisemapping.exceptions.UnsupportedBrowserException;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.core.env.ConfigurableEnvironment;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
import org.springframework.core.env.MutablePropertySources;
|
||||||
|
import org.springframework.core.env.PropertySource;
|
||||||
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import javax.servlet.http.HttpSession;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
|
||||||
public class RequestPropertiesInterceptor extends HandlerInterceptorAdapter {
|
public class RequestPropertiesInterceptor extends HandlerInterceptorAdapter {
|
||||||
private Map<String, String> attributes;
|
@Value("${google.analytics.enabled}")
|
||||||
|
private Boolean analyticsEnabled;
|
||||||
|
|
||||||
|
@Value("${google.analytics.account}")
|
||||||
|
private String analyticsAccount;
|
||||||
|
|
||||||
|
@Value("${google.ads.enabled}")
|
||||||
|
private Boolean adsEnabled;
|
||||||
|
|
||||||
|
@Value("${site.homepage}")
|
||||||
|
private String siteHomepage;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
Environment env;
|
||||||
|
|
||||||
public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, Object object) throws Exception {
|
public boolean preHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response, Object object) throws Exception {
|
||||||
for (String key : attributes.keySet()) {
|
|
||||||
request.setAttribute(key, attributes.get(key));
|
request.setAttribute("google.analytics.enabled", analyticsEnabled);
|
||||||
|
request.setAttribute("google.analytics.account", analyticsAccount);
|
||||||
|
request.setAttribute("google.ads.enabled", adsEnabled);
|
||||||
|
request.setAttribute("site.homepage", siteHomepage);
|
||||||
|
|
||||||
|
final String baseUrl;
|
||||||
|
if (env.containsProperty("site.baseurl")) {
|
||||||
|
baseUrl = env.getProperty("site.baseurl");
|
||||||
|
} else {
|
||||||
|
baseUrl = request.getRequestURL().toString().replace(request.getRequestURI(), request.getContextPath());
|
||||||
}
|
}
|
||||||
|
request.setAttribute("site.baseurl", baseUrl);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAttributes(Map<String, String> attributes) {
|
|
||||||
this.attributes = attributes;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -27,6 +27,7 @@ import org.apache.commons.lang.StringEscapeUtils;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.core.env.Environment;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
@ -37,12 +38,14 @@ import java.util.Map;
|
|||||||
|
|
||||||
final public class NotificationService {
|
final public class NotificationService {
|
||||||
|
|
||||||
|
public static final String DEFAULT_WISE_URL = "http://localhost:8080/wisemapping";
|
||||||
@Autowired
|
@Autowired
|
||||||
private Mailer mailer;
|
private Mailer mailer;
|
||||||
private String baseUrl;
|
|
||||||
private NotifierFilter notificationFilter;
|
private NotifierFilter notificationFilter;
|
||||||
|
|
||||||
|
private String baseUrl;
|
||||||
|
|
||||||
public NotificationService() {
|
public NotificationService() {
|
||||||
this.notificationFilter = new NotifierFilter();
|
this.notificationFilter = new NotifierFilter();
|
||||||
}
|
}
|
||||||
@ -64,8 +67,8 @@ final public class NotificationService {
|
|||||||
model.put("mindmap", mindmap);
|
model.put("mindmap", mindmap);
|
||||||
model.put("message", "message");
|
model.put("message", "message");
|
||||||
model.put("ownerName", user.getFirstname());
|
model.put("ownerName", user.getFirstname());
|
||||||
model.put("mapEditUrl", baseUrl + "/c/maps/" + mindmap.getId() + "/edit");
|
model.put("mapEditUrl", getBaseUrl() + "/c/maps/" + mindmap.getId() + "/edit");
|
||||||
model.put("baseUrl", baseUrl);
|
model.put("baseUrl", getBaseUrl());
|
||||||
model.put("senderMail", user.getEmail());
|
model.put("senderMail", user.getEmail());
|
||||||
model.put("message", message);
|
model.put("message", message);
|
||||||
model.put("supportEmail", mailer.getSupportEmail());
|
model.put("supportEmail", mailer.getSupportEmail());
|
||||||
@ -83,7 +86,7 @@ final public class NotificationService {
|
|||||||
final String messageBody =
|
final String messageBody =
|
||||||
"<p>Someone, most likely you, requested a new password for your WiseMapping account. </p>\n" +
|
"<p>Someone, most likely you, requested a new password for your WiseMapping account. </p>\n" +
|
||||||
"<p><strong>Here is your new password: " + temporalPassword + "</strong></p>\n" +
|
"<p><strong>Here is your new password: " + temporalPassword + "</strong></p>\n" +
|
||||||
"<p>You can login clicking <a href=\"" + this.baseUrl + "/c/login\">here</a>. We strongly encourage you to change the password as soon as possible.</p>";
|
"<p>You can login clicking <a href=\"" + getBaseUrl() + "/c/login\">here</a>. We strongly encourage you to change the password as soon as possible.</p>";
|
||||||
|
|
||||||
sendTemplateMail(user, mailSubject, messageTitle, messageBody);
|
sendTemplateMail(user, mailSubject, messageTitle, messageBody);
|
||||||
}
|
}
|
||||||
@ -112,7 +115,7 @@ final public class NotificationService {
|
|||||||
model.put("firstName", user.getFirstname());
|
model.put("firstName", user.getFirstname());
|
||||||
model.put("messageTitle", messageTitle);
|
model.put("messageTitle", messageTitle);
|
||||||
model.put("messageBody", messageBody);
|
model.put("messageBody", messageBody);
|
||||||
model.put("baseUrl", this.baseUrl);
|
model.put("baseUrl", getBaseUrl());
|
||||||
model.put("supportEmail", mailer.getSupportEmail());
|
model.put("supportEmail", mailer.getSupportEmail());
|
||||||
|
|
||||||
mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), mailSubject, model, "baseLayout.vm");
|
mailer.sendEmail(mailer.getServerSenderEmail(), user.getEmail(), mailSubject, model, "baseLayout.vm");
|
||||||
@ -127,10 +130,6 @@ final public class NotificationService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBaseUrl(String baseUrl) {
|
|
||||||
this.baseUrl = baseUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setMailer(Mailer mailer) {
|
public void setMailer(Mailer mailer) {
|
||||||
this.mailer = mailer;
|
this.mailer = mailer;
|
||||||
}
|
}
|
||||||
@ -227,6 +226,17 @@ final public class NotificationService {
|
|||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getBaseUrl() {
|
||||||
|
if ("${site.baseurl}".equals(baseUrl)) {
|
||||||
|
baseUrl = DEFAULT_WISE_URL;
|
||||||
|
System.err.println("Warning: site.baseurl has not being configured. Mail site references could be not properly sent. Using :" + baseUrl);
|
||||||
|
}
|
||||||
|
return baseUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBaseUrl(String baseUrl) {
|
||||||
|
this.baseUrl = baseUrl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE hibernate-mapping PUBLIC
|
<!DOCTYPE hibernate-mapping PUBLIC
|
||||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
|
|
||||||
<hibernate-mapping>
|
<hibernate-mapping>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE hibernate-mapping PUBLIC
|
<!DOCTYPE hibernate-mapping PUBLIC
|
||||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
|
|
||||||
<hibernate-mapping>
|
<hibernate-mapping>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE hibernate-mapping PUBLIC
|
<!DOCTYPE hibernate-mapping PUBLIC
|
||||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
|
|
||||||
<hibernate-mapping>
|
<hibernate-mapping>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE hibernate-mapping PUBLIC
|
<!DOCTYPE hibernate-mapping PUBLIC
|
||||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
|
|
||||||
<hibernate-mapping>
|
<hibernate-mapping>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE hibernate-mapping PUBLIC
|
<!DOCTYPE hibernate-mapping PUBLIC
|
||||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
|
|
||||||
<hibernate-mapping>
|
<hibernate-mapping>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<!DOCTYPE hibernate-mapping PUBLIC
|
<!DOCTYPE hibernate-mapping PUBLIC
|
||||||
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
|
||||||
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
|
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
|
||||||
|
|
||||||
<hibernate-mapping>
|
<hibernate-mapping>
|
||||||
|
|
||||||
|
@ -80,8 +80,10 @@ google.recaptcha.publicKey = 6LeQ4tISAAAAALzCGKNgRv8UqsDx7Cb0vq4wbJBr
|
|||||||
# etc.
|
# etc.
|
||||||
admin.user = admin@wisemapping.org
|
admin.user = admin@wisemapping.org
|
||||||
|
|
||||||
# Site URL. This url will be used during sharing emails and public views.
|
# Base URL where WiseMapping is deployed. By default, It will be automatically inferred.
|
||||||
site.baseurl = http://localhost:8080/wisemapping
|
# If you are planning to put wisemapping behind an Apache using an Apache Proxy setup, you must enable this property.
|
||||||
|
# site.baseurl = http:///example.com:8080/wisemapping
|
||||||
|
|
||||||
|
|
||||||
# Site Homepage URL. This will be used as URL for homepage location.
|
# Site Homepage URL. This will be used as URL for homepage location.
|
||||||
site.homepage = c/home
|
site.homepage = c/home
|
||||||
|
@ -4,7 +4,8 @@ log4j.logger.com.wisemapping=WARN,stdout,R
|
|||||||
log4j.logger.org.springframework=WARN,stdout,R
|
log4j.logger.org.springframework=WARN,stdout,R
|
||||||
log4j.logger.org.codehaus.jackson=WARN,stdout,R
|
log4j.logger.org.codehaus.jackson=WARN,stdout,R
|
||||||
log4j.logger.org.hibernate=WARN,stdout,R
|
log4j.logger.org.hibernate=WARN,stdout,R
|
||||||
log4j.logger.org.hibernate.SQL=true
|
log4j.logger.org.hibernate.engine.StatefulPersistenceContext=ERROR,stdout,R
|
||||||
|
#log4j.logger.org.hibernate.SQL=WARN,stdout,R
|
||||||
|
|
||||||
|
|
||||||
# Stdout logger <20>
|
# Stdout logger <20>
|
||||||
|
@ -7,9 +7,6 @@
|
|||||||
http://www.springframework.org/schema/context
|
http://www.springframework.org/schema/context
|
||||||
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
|
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
|
||||||
|
|
||||||
<context:property-placeholder location="/WEB-INF/app.properties"/>
|
|
||||||
|
|
||||||
|
|
||||||
<bean id="wiseDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
|
<bean id="wiseDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
|
||||||
<property name="driverClassName" value="${database.driver}"/>
|
<property name="driverClassName" value="${database.driver}"/>
|
||||||
<property name="url" value="${database.url}"/>
|
<property name="url" value="${database.url}"/>
|
||||||
|
@ -11,8 +11,6 @@
|
|||||||
http://www.springframework.org/schema/context
|
http://www.springframework.org/schema/context
|
||||||
http://www.springframework.org/schema/context/spring-context.xsd">
|
http://www.springframework.org/schema/context/spring-context.xsd">
|
||||||
|
|
||||||
<context:property-placeholder location="/WEB-INF/app.properties"/>
|
|
||||||
|
|
||||||
<bean id="encoder"
|
<bean id="encoder"
|
||||||
class="com.wisemapping.security.CustomPasswordEncoder"/>
|
class="com.wisemapping.security.CustomPasswordEncoder"/>
|
||||||
|
|
||||||
@ -72,9 +70,4 @@
|
|||||||
<property name="userService" ref="userService"/>
|
<property name="userService" ref="userService"/>
|
||||||
<property name="adminUser" value="${admin.user}"/>
|
<property name="adminUser" value="${admin.user}"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<beans profile="heroku">
|
|
||||||
<context:property-placeholder location="/WEB-INF/heroku.properties"/>
|
|
||||||
</beans>
|
|
||||||
|
|
||||||
</beans>
|
</beans>
|
@ -1,8 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans"
|
<beans xmlns="http://www.springframework.org/schema/beans"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xmlns:context="http://www.springframework.org/schema/context"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||||
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
|
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">
|
||||||
|
|
||||||
|
<context:property-placeholder location="/WEB-INF/app.properties" ignore-unresolvable="true"/>
|
||||||
|
|
||||||
<bean id="mailer" class="com.wisemapping.mail.Mailer" scope ="singleton">
|
<bean id="mailer" class="com.wisemapping.mail.Mailer" scope ="singleton">
|
||||||
<constructor-arg index="0" value="${mail.serverSendEmail}"/>
|
<constructor-arg index="0" value="${mail.serverSendEmail}"/>
|
||||||
|
@ -14,9 +14,7 @@
|
|||||||
<context:component-scan base-package="com.wisemapping.ncontroller"/>
|
<context:component-scan base-package="com.wisemapping.ncontroller"/>
|
||||||
<context:annotation-config/>
|
<context:annotation-config/>
|
||||||
<mvc:annotation-driven/>
|
<mvc:annotation-driven/>
|
||||||
<context:property-placeholder
|
<context:property-placeholder location="/WEB-INF/app.properties" ignore-unresolvable="true"/>
|
||||||
location="/WEB-INF/app.properties"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<!-- Interceptors Registration -->
|
<!-- Interceptors Registration -->
|
||||||
<mvc:interceptors>
|
<mvc:interceptors>
|
||||||
@ -38,18 +36,8 @@
|
|||||||
</set>
|
</set>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
<bean id="userLocaleInterceptor" class="com.wisemapping.filter.UserLocaleInterceptor">
|
<bean id="userLocaleInterceptor" class="com.wisemapping.filter.UserLocaleInterceptor"/>
|
||||||
</bean>
|
<bean id="requestInterceptor" class="com.wisemapping.filter.RequestPropertiesInterceptor"/>
|
||||||
<bean id="requestInterceptor" class="com.wisemapping.filter.RequestPropertiesInterceptor">
|
|
||||||
<property name="attributes">
|
|
||||||
<map>
|
|
||||||
<entry key="google.analytics.enabled" value="${google.analytics.enabled}"/>
|
|
||||||
<entry key="google.analytics.account" value="${google.analytics.account}"/>
|
|
||||||
<entry key="google.ads.enabled" value="${google.ads.enabled}"/>
|
|
||||||
<entry key="site.homepage" value="${site.homepage}"/>
|
|
||||||
</map>
|
|
||||||
</property>
|
|
||||||
</bean>
|
|
||||||
</mvc:interceptors>
|
</mvc:interceptors>
|
||||||
|
|
||||||
|
|
||||||
@ -110,10 +98,4 @@
|
|||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<beans profile="heroku">
|
|
||||||
<context:property-placeholder
|
|
||||||
location="/WEB-INF/heroku.properties"
|
|
||||||
/>
|
|
||||||
</beans>
|
|
||||||
</beans>
|
</beans>
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<base href="${baseURL}/">
|
<base href="${requestScope['site.baseurl']}/">
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
@ -2,6 +2,3 @@
|
|||||||
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
<%@taglib prefix="spring" uri="http://www.springframework.org/tags" %>
|
||||||
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
<%@taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
|
||||||
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
|
||||||
|
|
||||||
<c:set var="baseURL" value="${fn:replace(pageContext.request.requestURL, pageContext.request.requestURI, pageContext.request.contextPath)}" />
|
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<%--@elvariable id="mapXml" type="com.wisemapping.model.User"--%>
|
<%--@elvariable id="mapXml" type="com.wisemapping.model.User"--%>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<base href="${baseURL}/">
|
<base href="${requestScope['site.baseurl']}/">
|
||||||
<title><spring:message code="SITE.TITLE"/> - <c:out value="${mindmap.title}"/></title>
|
<title><spring:message code="SITE.TITLE"/> - <c:out value="${mindmap.title}"/></title>
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<base href="${baseURL}/">
|
<base href="{requestScope['site.baseurl']}/">
|
||||||
<title><spring:message code="SITE.TITLE"/> - ${mindmap.title} </title>
|
<title><spring:message code="SITE.TITLE"/> - ${mindmap.title} </title>
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<base href="${baseURL}/">
|
<base href="${requestScope['site.baseurl']}/">
|
||||||
<title><spring:message code="SITE.TITLE"/> - <spring:message code="MY_WISEMAPS"/></title>
|
<title><spring:message code="SITE.TITLE"/> - <spring:message code="MY_WISEMAPS"/></title>
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<base href="${baseURL}/">
|
<base href="${requestScope['site.baseurl']}/">
|
||||||
<title><spring:message code="SITE.TITLE"/> - ${mindmap.title} </title>
|
<title><spring:message code="SITE.TITLE"/> - ${mindmap.title} </title>
|
||||||
|
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<base href="${baseURL}/">
|
<base href="${requestScope['site.baseurl']}/">
|
||||||
<title>
|
<title>
|
||||||
<spring:message code="SITE.TITLE"/>-
|
<spring:message code="SITE.TITLE"/>-
|
||||||
<c:choose>
|
<c:choose>
|
||||||
|
Loading…
Reference in New Issue
Block a user