Add 18n support to the editor.

This commit is contained in:
Paulo Gustavo Veiga 2012-07-01 17:21:02 -03:00
parent cd46647602
commit 2757a5ddb4
16 changed files with 878 additions and 333 deletions

View File

@ -83,6 +83,7 @@
<includes> <includes>
<include>header.js</include> <include>header.js</include>
<include>${basedir}/../web2d/target/classes/web2d.svg-min.js</include> <include>${basedir}/../web2d/target/classes/web2d.svg-min.js</include>
<include>Messages.js</include>
<include>TopicEventDispatcher.js</include> <include>TopicEventDispatcher.js</include>
<include>model/IMindmap.js</include> <include>model/IMindmap.js</include>
<include>model/Mindmap.js</include> <include>model/Mindmap.js</include>

View File

@ -0,0 +1,45 @@
ZOOM_IN=Zoom In
ZOOM_OUT=Zoom Out
TOPIC_SHAPE=Topic Shape
TOPIC_ADD=Add Topic
TOPIC_DELETE=Delete Topic
TOPIC_ICON=Add Icon
TOPIC_LINK=Add Link
TOPIC_RELATIONSHIP=Relationship
TOPIC_COLOR=Topic Color
TOPIC_BORDER_COLOR=Topic Border Color
TOPIC_NOTE=Add Note
FONT_FAMILY=Font Type
FONT_SIZE=Text Size
FONT_BOLD=Text Bold
FONT_ITALIC=Text Italic
UNDO_EDITION=Undo Edition
REDO_EDITION=Redo Edition
UNDO=Undo
REDO=Redo
INSERT=Insert
SAVE=Save
NOTE=Note
ADD_TOPIC=Add Topic
LOADING=Loading ...
EXPORT=Export
PRINT=Print
PUBLISH=Publish
COLLABORATE=Share
HISTORY=History
DISCARD_CHANGES=Discard Changes
FONT_COLOR=Text Color
SAVING=Saving ...
SAVE_COMPLETE=Save Complete
ZOOM_IN_ERROR=Zoom too high.
ZOOM_ERROR=No more zoom can be applied.
ONLY_ONE_TOPIC_MUST_BE_SELECTED=Could not create a topic. Only one node must be selected.
ONE_TOPIC_MUST_BE_SELECTED=Could not create a topic. One topic must be selected.
SAVE_COULD_NOT_BE_COMPLETED=Save could not be completed. Try latter.
UNEXPECTED_ERROR_LOADING=We're sorry, an unexpected error has occurred.\nTry again reloading the editor.If the problem persists, contact us to support@wisemapping.com.
MAIN_TOPIC=Main Topic
SUB_TOPIC=Sub Topic
ISOLATED_TOPIC=Isolated Topic
CENTRAL_TOPIC=Central Topic

View File

@ -0,0 +1,41 @@
ZOOM_IN:'Zoom In',
ZOOM_OUT:'Zoom Out',
TOPIC_SHAPE:'Topic Shape',
TOPIC_ADD:'Add Topic',
TOPIC_DELETE:'Delete Topic',
TOPIC_ICON:'Add Icon',
TOPIC_LINK:'Add Link',
TOPIC_RELATIONSHIP:'Relationship',
TOPIC_COLOR:'Topic Color',
TOPIC_BORDER_COLOR:'Topic Border Color',
TOPIC_NOTE:'Add Note',
FONT_FAMILY:'Font Type',
FONT_SIZE:'Text Size',
FONT_BOLD:'Text Bold',
FONT_ITALIC:'Text Italic',
UNDO_EDITION:'Undo Edition',
REDO_EDITION:'Redo Edition',
UNDO:'Undo',
REDO:'Redo',
INSERT:'Insert',
SAVE:'Save',
NOTE:'Note',
ADD_TOPIC:'Add Topic',
LOADING:'Loading ...',
EXPORT:'Export',
PRINT:'Print',
PUBLISH:'Publish',
COLLABORATE:'Share',
HISTORY:'History',
DISCARD_CHANGES:'Discard Changes',
FONT_COLOR:'Text Color',
SAVING:'Saving ...',
SAVE_COMPLETE:'Save Complete',
ZOOM_IN_ERROR:'Zoom too high.',
ZOOM_ERROR:'No more zoom can be applied.',
ONLY_ONE_TOPIC_MUST_BE_SELECTED:'Could not create a topic. Only one node must be selected.',
ONE_TOPIC_MUST_BE_SELECTED:'Could not create a topic. One topic must be selected.',
SAVE_COULD_NOT_BE_COMPLETED:'Save could not be completed. Try latter.',
UNEXPECTED_ERROR_LOADING:'We're sorry, an unexected error has occurred. Try again realoading the editor.If the problem persists, contact us to <a href\='mailto\:support@wisemapping.com'>support@wisemapping.com</a>.',

View File

@ -0,0 +1,46 @@
DISCARD_CHANGES=Descartar Cambios
SAVE=Guardar
INSERT=Insertar
ZOOM_IN=Acercar
ZOOM_OUT=Alejar
TOPIC_BORDER_COLOR=Color del Borde
TOPIC_SHAPE=Forma del Tópico
TOPIC_ADD=Agregar Tópico
TOPIC_DELETE=Borrar Tópico
TOPIC_ICON=Agregar Icono
TOPIC_LINK=Agregar Enlace
TOPIC_NOTE=Agregar Nota
TOPIC_COLOR=Color Tópico
TOPIC_RELATIONSHIP=Relación
FONT_FAMILY=Tipo de Fuente
FONT_SIZE=Tamaño de Texto
FONT_BOLD=Negrita
FONT_ITALIC=Italica
FONT_COLOR=Color de Texto
UNDO_EDITION=Undo Edition
REDO_EDITION=Redo Edition
UNDO=Rehacer
NOTE=Nota
LOADING=Cargando ...
PRINT=Imprimir
PUBLISH=Publicar
REDO=Deshacer
ADD_TOPIC=Agregar Tópico
COLLABORATE=Compartir
EXPORT=Exportar
HISTORY=History
SAVE_COMPLETE=Grabado Completo
SAVING=Grabando ...
ONE_TOPIC_MUST_BE_SELECTED=No ha sido posible crear un nuevo tópico. Al menos un tópico debe ser seleccionado.
ONLY_ONE_TOPIC_MUST_BE_SELECTED=No ha sido posible crear un nuevo tópico. Solo un tópico debe ser seleccionado.
SAVE_COULD_NOT_BE_COMPLETED=Grabación no pudo ser completada. Intentelo mas tarde.
UNEXPECTED_ERROR_LOADING=Lo sentimos, un error inesperado ha ocurrido. Intentelo nuevamente recargando el editor. Si el problema persiste, contactenos a support@wisemapping.com.
ZOOM_ERROR=No es posible aplicar mas zoom.
ZOOM_IN_ERROR=El zoom es muy alto.
MAIN_TOPIC=Tópico Principal
SUB_TOPIC=Tópico Secundario
ISOLATED_TOPIC=Tópico Aislado
CENTRAL_TOPIC=Tópico Central

View File

@ -71,7 +71,7 @@ mindplot.CentralTopic = new Class({
}, },
_defaultText : function() { _defaultText : function() {
return "Central Topic"; return $msg('CENTRAL_TOPIC');
}, },
_defaultBackgroundColor : function() { _defaultBackgroundColor : function() {

View File

@ -17,12 +17,15 @@
*/ */
mindplot.Designer = new Class({ mindplot.Designer = new Class({
Extends: Events, Extends:Events,
initialize: function(options, divElement) { initialize:function (options, divElement) {
$assert(options, "options must be defined"); $assert(options, "options must be defined");
$assert(options.zoom, "zoom must be defined"); $assert(options.zoom, "zoom must be defined");
$assert(divElement, "divElement must be defined"); $assert(divElement, "divElement must be defined");
// Set up i18n location ...
mindplot.Messages.init(options.location);
this._options = options; this._options = options;
// Set full div elem render area ... // Set full div elem render area ...
@ -36,7 +39,7 @@ mindplot.Designer = new Class({
this._actionDispatcher = new mindplot.BrixActionDispatcher(commandContext); this._actionDispatcher = new mindplot.BrixActionDispatcher(commandContext);
} }
this._actionDispatcher.addEvent("modelUpdate", function(event) { this._actionDispatcher.addEvent("modelUpdate", function (event) {
this.fireEvent("modelUpdate", event); this.fireEvent("modelUpdate", event);
}.bind(this)); }.bind(this));
@ -67,7 +70,7 @@ mindplot.Designer = new Class({
/** /**
* Deactivates the keyboard events so you can enter text into forms * Deactivates the keyboard events so you can enter text into forms
*/ */
deactivateKeyboard: function() { deactivateKeyboard:function () {
mindplot.DesignerKeyboard.getInstance().deactivate(); mindplot.DesignerKeyboard.getInstance().deactivate();
this.deselectAll(); this.deselectAll();
}, },
@ -75,12 +78,12 @@ mindplot.Designer = new Class({
/** /**
* Activates the keyboard events so you can enter text into forms * Activates the keyboard events so you can enter text into forms
*/ */
activateKeyboard: function() { activateKeyboard:function () {
mindplot.DesignerKeyboard.getInstance().activate(); mindplot.DesignerKeyboard.getInstance().activate();
}, },
_registerEvents : function() { _registerEvents:function () {
// Register mouse events ... // Register mouse events ...
this._registerMouseEvents(); this._registerMouseEvents();
@ -88,7 +91,7 @@ mindplot.Designer = new Class({
mindplot.DesignerKeyboard.register(this); mindplot.DesignerKeyboard.register(this);
}, },
addEvent: function(type, listener) { addEvent:function (type, listener) {
if (type == mindplot.TopicEvent.EDIT || type == mindplot.TopicEvent.CLICK) { if (type == mindplot.TopicEvent.EDIT || type == mindplot.TopicEvent.CLICK) {
var editor = mindplot.TopicEventDispatcher.getInstance(); var editor = mindplot.TopicEventDispatcher.getInstance();
editor.addEvent(type, listener); editor.addEvent(type, listener);
@ -97,15 +100,15 @@ mindplot.Designer = new Class({
} }
}, },
_registerMouseEvents : function() { _registerMouseEvents:function () {
var workspace = this._workspace; var workspace = this._workspace;
var screenManager = workspace.getScreenManager(); var screenManager = workspace.getScreenManager();
// Initialize workspace event listeners. // Initialize workspace event listeners.
screenManager.addEvent('update', function() { screenManager.addEvent('update', function () {
// Topic must be set to his original state. All editors must be closed. // Topic must be set to his original state. All editors must be closed.
var topics = this.getModel().getTopics(); var topics = this.getModel().getTopics();
topics.forEach(function(object) { topics.forEach(function (object) {
object.closeEditors(); object.closeEditors();
}); });
@ -116,12 +119,12 @@ mindplot.Designer = new Class({
}.bind(this)); }.bind(this));
// Deselect on click ... // Deselect on click ...
screenManager.addEvent('click', function(event) { screenManager.addEvent('click', function (event) {
this.onObjectFocusEvent(null, event); this.onObjectFocusEvent(null, event);
}.bind(this)); }.bind(this));
// Create nodes on double click... // Create nodes on double click...
screenManager.addEvent('dblclick', function(event) { screenManager.addEvent('dblclick', function (event) {
if (workspace.isWorkspaceEventsEnabled()) { if (workspace.isWorkspaceEventsEnabled()) {
var mousePos = screenManager.getWorkspaceMousePosition(event); var mousePos = screenManager.getWorkspaceMousePosition(event);
@ -133,7 +136,7 @@ mindplot.Designer = new Class({
}.bind(this)); }.bind(this));
$(document).addEvent('mousewheel', function(event) { $(document).addEvent('mousewheel', function (event) {
// Change mousewheel handling so we let the default // Change mousewheel handling so we let the default
//event happen if we are outside the container. //event happen if we are outside the container.
var coords = screenManager.getContainer().getCoordinates(); var coords = screenManager.getContainer().getCoordinates();
@ -155,21 +158,21 @@ mindplot.Designer = new Class({
}, },
_buildDragManager: function(workspace) { _buildDragManager:function (workspace) {
var designerModel = this.getModel(); var designerModel = this.getModel();
var dragConnector = new mindplot.DragConnector(designerModel, this._workspace); var dragConnector = new mindplot.DragConnector(designerModel, this._workspace);
var dragManager = new mindplot.DragManager(workspace, this._eventBussDispatcher); var dragManager = new mindplot.DragManager(workspace, this._eventBussDispatcher);
var topics = designerModel.getTopics(); var topics = designerModel.getTopics();
dragManager.addEvent('startdragging', function() { dragManager.addEvent('startdragging', function () {
// Enable all mouse events. // Enable all mouse events.
for (var i = 0; i < topics.length; i++) { for (var i = 0; i < topics.length; i++) {
topics[i].setMouseEventsEnabled(false); topics[i].setMouseEventsEnabled(false);
} }
}); });
dragManager.addEvent('dragging', function(event, dragTopic) { dragManager.addEvent('dragging', function (event, dragTopic) {
dragTopic.updateFreeLayout(event); dragTopic.updateFreeLayout(event);
if (!dragTopic.isFreeLayoutOn(event)) { if (!dragTopic.isFreeLayoutOn(event)) {
// The node is being drag. Is the connection still valid ? // The node is being drag. Is the connection still valid ?
@ -181,7 +184,7 @@ mindplot.Designer = new Class({
} }
}); });
dragManager.addEvent('enddragging', function(event, dragTopic) { dragManager.addEvent('enddragging', function (event, dragTopic) {
for (var i = 0; i < topics.length; i++) { for (var i = 0; i < topics.length; i++) {
topics[i].setMouseEventsEnabled(true); topics[i].setMouseEventsEnabled(true);
} }
@ -191,14 +194,14 @@ mindplot.Designer = new Class({
return dragManager; return dragManager;
}, },
setViewPort : function(size) { setViewPort:function (size) {
this._workspace.setViewPort(size); this._workspace.setViewPort(size);
var model = this.getModel(); var model = this.getModel();
this._workspace.setZoom(model.getZoom(), true); this._workspace.setZoom(model.getZoom(), true);
}, },
_buildNodeGraph : function(model, readOnly) { _buildNodeGraph:function (model, readOnly) {
var workspace = this._workspace; var workspace = this._workspace;
// Create node graph ... // Create node graph ...
@ -210,7 +213,7 @@ mindplot.Designer = new Class({
// Add Topic events ... // Add Topic events ...
if (!readOnly) { if (!readOnly) {
// If a node had gained focus, clean the rest of the nodes ... // If a node had gained focus, clean the rest of the nodes ...
topic.addEvent('mousedown', function(event) { topic.addEvent('mousedown', function (event) {
this.onObjectFocusEvent(topic, event); this.onObjectFocusEvent(topic, event);
}.bind(this)); }.bind(this));
@ -243,7 +246,7 @@ mindplot.Designer = new Class({
topic.connectTo(targetTopic, workspace); topic.connectTo(targetTopic, workspace);
} }
topic.addEvent('ontblur', function() { topic.addEvent('ontblur', function () {
var topics = this.getModel().filterSelectedTopics(); var topics = this.getModel().filterSelectedTopics();
var rels = this.getModel().filterSelectedRelations(); var rels = this.getModel().filterSelectedRelations();
@ -252,7 +255,7 @@ mindplot.Designer = new Class({
} }
}.bind(this)); }.bind(this));
topic.addEvent('ontfocus', function() { topic.addEvent('ontfocus', function () {
var topics = this.getModel().filterSelectedTopics(); var topics = this.getModel().filterSelectedTopics();
var rels = this.getModel().filterSelectedRelations(); var rels = this.getModel().filterSelectedRelations();
@ -264,16 +267,16 @@ mindplot.Designer = new Class({
return topic; return topic;
}, },
onObjectFocusEvent : function(currentObject, event) { onObjectFocusEvent:function (currentObject, event) {
// Close node editors .. // Close node editors ..
var topics = this.getModel().getTopics(); var topics = this.getModel().getTopics();
topics.forEach(function(topic) { topics.forEach(function (topic) {
topic.closeEditors(); topic.closeEditors();
}); });
var model = this.getModel(); var model = this.getModel();
var objects = model.getObjects(); var objects = model.getObjects();
objects.forEach(function(object) { objects.forEach(function (object) {
// Disable all nodes on focus but not the current if Ctrl key isn't being pressed // Disable all nodes on focus but not the current if Ctrl key isn't being pressed
if (!$defined(event) || (!event.control && !event.meta)) { if (!$defined(event) || (!event.control && !event.meta)) {
if (object.isOnFocus() && object != currentObject) { if (object.isOnFocus() && object != currentObject) {
@ -284,17 +287,17 @@ mindplot.Designer = new Class({
}, },
selectAll : function() { selectAll:function () {
var model = this.getModel(); var model = this.getModel();
var objects = model.getObjects(); var objects = model.getObjects();
objects.forEach(function(object) { objects.forEach(function (object) {
object.setOnFocus(true); object.setOnFocus(true);
}); });
}, },
deselectAll : function() { deselectAll:function () {
var objects = this.getModel().getObjects(); var objects = this.getModel().getObjects();
objects.forEach(function(object) { objects.forEach(function (object) {
object.setOnFocus(false); object.setOnFocus(false);
}); });
}, },
@ -303,17 +306,16 @@ mindplot.Designer = new Class({
* Set the zoom of the map. * Set the zoom of the map.
* @param: zoom: number between 0.3 and 1.9 * @param: zoom: number between 0.3 and 1.9
*/ */
setZoom: function(zoom) { setZoom:function (zoom) {
if (zoom > 1.9 || zoom < 0.3) { if (zoom > 1.9 || zoom < 0.3) {
$notify("Zoom too high. Cannot apply zoom above 1.9 or below 0.3"); $notify($msg('ZOOM_IN_ERROR'));
console.log("Tried to set zoom to " + zoom + " which is outside allowed range.");
return; return;
} }
this.getModel().setZoom(zoom); this.getModel().setZoom(zoom);
this._workspace.setZoom(zoom); this._workspace.setZoom(zoom);
}, },
zoomOut : function(factor) { zoomOut:function (factor) {
if (!factor) if (!factor)
factor = 1.2; factor = 1.2;
@ -324,12 +326,12 @@ mindplot.Designer = new Class({
this._workspace.setZoom(scale); this._workspace.setZoom(scale);
} }
else { else {
$notify('No more zoom can be applied'); $notify($msg('ZOOM_ERROR'));
} }
}, },
zoomIn : function(factor) { zoomIn:function (factor) {
if (!factor) if (!factor)
factor = 1.2; factor = 1.2;
@ -341,26 +343,26 @@ mindplot.Designer = new Class({
this._workspace.setZoom(scale); this._workspace.setZoom(scale);
} }
else { else {
$notify('No more zoom can be applied'); $notify($msg('ZOOM_ERROR'));
} }
}, },
getModel : function() { getModel:function () {
return this._model; return this._model;
}, },
createChildForSelectedNode : function() { createChildForSelectedNode:function () {
var nodes = this.getModel().filterSelectedTopics(); var nodes = this.getModel().filterSelectedTopics();
if (nodes.length <= 0) { if (nodes.length <= 0) {
// If there are more than one node selected, // If there are more than one node selected,
$notify('Could not create a topic. Only one node must be selected.'); $notify($msg('ONE_TOPIC_MUST_BE_SELECTED'));
return; return;
} }
if (nodes.length != 1) { if (nodes.length != 1) {
// If there are more than one node selected, // If there are more than one node selected,
$notify('Could not create a topic. One topic must be selected.'); $notify($msg('ONLY_ONE_TOPIC_MUST_BE_SELECTED'));
return; return;
} }
@ -374,7 +376,7 @@ mindplot.Designer = new Class({
}, },
_createChildModel : function(topic, mousePos) { _createChildModel:function (topic, mousePos) {
// Create a new node ... // Create a new node ...
var model = topic.getModel(); var model = topic.getModel();
var mindmap = model.getMindmap(); var mindmap = model.getMindmap();
@ -391,7 +393,7 @@ mindplot.Designer = new Class({
return childModel; return childModel;
}, },
addDraggedNode: function(event, model) { addDraggedNode:function (event, model) {
$assert(event, "event can not be null"); $assert(event, "event can not be null");
$assert(model, "model can not be null"); $assert(model, "model can not be null");
@ -405,17 +407,17 @@ mindplot.Designer = new Class({
topic.fireEvent("mousedown", event); topic.fireEvent("mousedown", event);
}, },
createSiblingForSelectedNode : function() { createSiblingForSelectedNode:function () {
var nodes = this.getModel().filterSelectedTopics(); var nodes = this.getModel().filterSelectedTopics();
if (nodes.length <= 0) { if (nodes.length <= 0) {
// If there are no nodes selected, // If there are no nodes selected,
$notify('Could not create a topic. At least one node must be selected.'); $notify($msg('ONE_TOPIC_MUST_BE_SELECTED'));
return; return;
} }
if (nodes.length > 1) { if (nodes.length > 1) {
// If there are more than one node selected, // If there are more than one node selected,
$notify('Could not create a topic. One topic must be selected.'); $notify($msg('ONLY_ONE_TOPIC_MUST_BE_SELECTED'));
return; return;
} }
@ -435,12 +437,11 @@ mindplot.Designer = new Class({
} }
var parentTopicId = parentTopic.getId(); var parentTopicId = parentTopic.getId();
this._actionDispatcher.addTopic(siblingModel, parentTopicId, true); this._actionDispatcher.addTopic(siblingModel, parentTopicId, true);
} }
}, },
_createSiblingModel : function(topic) { _createSiblingModel:function (topic) {
var result = null; var result = null;
var parentTopic = topic.getOutgoingConnectedTopic(); var parentTopic = topic.getOutgoingConnectedTopic();
if (parentTopic != null) { if (parentTopic != null) {
@ -458,7 +459,7 @@ mindplot.Designer = new Class({
return result; return result;
}, },
showRelPivot : function(event) { showRelPivot:function (event) {
// Current mouse position .... // Current mouse position ....
var screen = this._workspace.getScreenManager(); var screen = this._workspace.getScreenManager();
var pos = screen.getWorkspaceMousePosition(event); var pos = screen.getWorkspaceMousePosition(event);
@ -468,7 +469,7 @@ mindplot.Designer = new Class({
this._relPivot.start(selectedTopic, pos); this._relPivot.start(selectedTopic, pos);
}, },
connectByRelation : function(sourceTopic, targetTopic) { connectByRelation:function (sourceTopic, targetTopic) {
$assert(sourceTopic, "sourceTopic can not be null"); $assert(sourceTopic, "sourceTopic can not be null");
$assert(targetTopic, "targetTopic can not be null"); $assert(targetTopic, "targetTopic can not be null");
@ -480,25 +481,25 @@ mindplot.Designer = new Class({
this._actionDispatcher.connectByRelation(model); this._actionDispatcher.connectByRelation(model);
}, },
needsSave : function() { needsSave:function () {
//@Todo: Review all this ... //@Todo: Review all this ...
return this._actionDispatcher._actionRunner.hasBeenChanged(); return this._actionDispatcher._actionRunner.hasBeenChanged();
}, },
getMindmapProperties : function() { getMindmapProperties:function () {
return {zoom:this.getModel().getZoom()}; return {zoom:this.getModel().getZoom()};
}, },
loadMap : function(mindmapModel) { loadMap:function (mindmapModel) {
$assert(mindmapModel, "mindmapModel can not be null"); $assert(mindmapModel, "mindmapModel can not be null");
this._mindmap = mindmapModel; this._mindmap = mindmapModel;
// try { // try {
// Init layout manager ... // Init layout manager ...
var size = {width:25,height:25}; var size = {width:25, height:25};
var layoutManager = new mindplot.layout.LayoutManager(mindmapModel.getCentralTopic().getId(), size); var layoutManager = new mindplot.layout.LayoutManager(mindmapModel.getCentralTopic().getId(), size);
layoutManager.addEvent('change', function(event) { layoutManager.addEvent('change', function (event) {
var id = event.getId(); var id = event.getId();
var topic = this.getModel().findTopicById(id); var topic = this.getModel().findTopicById(id);
topic.setPosition(event.getPosition()); topic.setPosition(event.getPosition());
@ -536,27 +537,27 @@ mindplot.Designer = new Class({
// } // }
}, },
getMindmap : function() { getMindmap:function () {
return this._mindmap; return this._mindmap;
}, },
undo : function() { undo:function () {
// @Todo: This is a hack... // @Todo: This is a hack...
this._actionDispatcher._actionRunner.undo(); this._actionDispatcher._actionRunner.undo();
}, },
redo : function() { redo:function () {
this._actionDispatcher._actionRunner.redo(); this._actionDispatcher._actionRunner.redo();
}, },
isReadOnly : function() { isReadOnly:function () {
return this._options.readOnly; return this._options.readOnly;
}, },
_nodeModelToNodeGraph : function(nodeModel, isVisible) { _nodeModelToNodeGraph:function (nodeModel, isVisible) {
$assert(nodeModel, "Node model can not be null"); $assert(nodeModel, "Node model can not be null");
var children = nodeModel.getChildren().slice(); var children = nodeModel.getChildren().slice();
children = children.sort(function(a, b) { children = children.sort(function (a, b) {
return a.getOrder() - b.getOrder() return a.getOrder() - b.getOrder()
}); });
@ -576,7 +577,7 @@ mindplot.Designer = new Class({
return nodeGraph; return nodeGraph;
}, },
_relationshipModelToRelationship : function(model) { _relationshipModelToRelationship:function (model) {
$assert(model, "Node model can not be null"); $assert(model, "Node model can not be null");
var relationship = this._buildRelationship(model); var relationship = this._buildRelationship(model);
@ -593,12 +594,12 @@ mindplot.Designer = new Class({
return relationship; return relationship;
}, },
createRelationship : function(model) { createRelationship:function (model) {
this._mindmap.addRelationship(model); this._mindmap.addRelationship(model);
return this._relationshipModelToRelationship(model); return this._relationshipModelToRelationship(model);
}, },
removeRelationship : function(model) { removeRelationship:function (model) {
this._mindmap.removeRelationship(model); this._mindmap.removeRelationship(model);
var relationship = this._relationships[model.getId()]; var relationship = this._relationships[model.getId()];
var sourceTopic = relationship.getSourceTopic(); var sourceTopic = relationship.getSourceTopic();
@ -609,7 +610,7 @@ mindplot.Designer = new Class({
delete this._relationships[model.getId()]; delete this._relationships[model.getId()];
}, },
_buildRelationship : function (model) { _buildRelationship:function (model) {
var elem = this; var elem = this;
var fromNodeId = model.getFromNode(); var fromNodeId = model.getFromNode();
@ -651,7 +652,7 @@ mindplot.Designer = new Class({
relationLine.setModel(model); relationLine.setModel(model);
//Add Listeners //Add Listeners
relationLine.addEvent('onfocus', function(event) { relationLine.addEvent('onfocus', function (event) {
elem.onObjectFocusEvent(relationLine, event); elem.onObjectFocusEvent(relationLine, event);
}); });
@ -661,7 +662,7 @@ mindplot.Designer = new Class({
return relationLine; return relationLine;
}, },
_removeNode : function(node) { _removeNode:function (node) {
if (node.getTopicType() != mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE) { if (node.getTopicType() != mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE) {
var parent = node._parent; var parent = node._parent;
node.disconnect(this._workspace); node.disconnect(this._workspace);
@ -684,9 +685,9 @@ mindplot.Designer = new Class({
} }
}, },
deleteCurrentNode : function() { deleteCurrentNode:function () {
var validateFunc = function(object) { var validateFunc = function (object) {
return object.getType() == mindplot.RelationshipLine.type || object.getTopicType() != mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE return object.getType() == mindplot.RelationshipLine.type || object.getTopicType() != mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE
}; };
var validateError = 'Central topic can not be deleted.'; var validateError = 'Central topic can not be deleted.';
@ -701,7 +702,7 @@ mindplot.Designer = new Class({
}, },
changeFontFamily : function(font) { changeFontFamily:function (font) {
var topicsIds = this.getModel().filterTopicsIds(); var topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) { if (topicsIds.length > 0) {
this._actionDispatcher.changeFontFamilyToTopic(topicsIds, font); this._actionDispatcher.changeFontFamilyToTopic(topicsIds, font);
@ -709,14 +710,14 @@ mindplot.Designer = new Class({
} }
}, },
changeFontStyle : function() { changeFontStyle:function () {
var topicsIds = this.getModel().filterTopicsIds(); var topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) { if (topicsIds.length > 0) {
this._actionDispatcher.changeFontStyleToTopic(topicsIds); this._actionDispatcher.changeFontStyleToTopic(topicsIds);
} }
}, },
changeFontColor : function(color) { changeFontColor:function (color) {
$assert(color, "color can not be null"); $assert(color, "color can not be null");
var topicsIds = this.getModel().filterTopicsIds(); var topicsIds = this.getModel().filterTopicsIds();
@ -725,9 +726,9 @@ mindplot.Designer = new Class({
} }
}, },
changeBackgroundColor : function(color) { changeBackgroundColor:function (color) {
var validateFunc = function(topic) { var validateFunc = function (topic) {
return topic.getShapeType() != mindplot.model.TopicShape.LINE; return topic.getShapeType() != mindplot.model.TopicShape.LINE;
}; };
var validateError = 'Color can not be set to line topics.'; var validateError = 'Color can not be set to line topics.';
@ -738,8 +739,8 @@ mindplot.Designer = new Class({
} }
}, },
changeBorderColor : function(color) { changeBorderColor:function (color) {
var validateFunc = function(topic) { var validateFunc = function (topic) {
return topic.getShapeType() != mindplot.model.TopicShape.LINE; return topic.getShapeType() != mindplot.model.TopicShape.LINE;
}; };
var validateError = 'Color can not be set to line topics.'; var validateError = 'Color can not be set to line topics.';
@ -749,15 +750,15 @@ mindplot.Designer = new Class({
} }
}, },
changeFontSize : function(size) { changeFontSize:function (size) {
var topicsIds = this.getModel().filterTopicsIds(); var topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) { if (topicsIds.length > 0) {
this._actionDispatcher.changeFontSizeToTopic(topicsIds, size); this._actionDispatcher.changeFontSizeToTopic(topicsIds, size);
} }
}, },
changeTopicShape : function(shape) { changeTopicShape:function (shape) {
var validateFunc = function(topic) { var validateFunc = function (topic) {
return !(topic.getType() == mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE && shape == mindplot.model.TopicShape.LINE) return !(topic.getType() == mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE && shape == mindplot.model.TopicShape.LINE)
}; };
@ -768,38 +769,38 @@ mindplot.Designer = new Class({
} }
}, },
changeFontWeight : function() { changeFontWeight:function () {
var topicsIds = this.getModel().filterTopicsIds(); var topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) { if (topicsIds.length > 0) {
this._actionDispatcher.changeFontWeightToTopic(topicsIds); this._actionDispatcher.changeFontWeightToTopic(topicsIds);
} }
}, },
addIconType : function(iconType) { addIconType:function (iconType) {
var topicsIds = this.getModel().filterTopicsIds(); var topicsIds = this.getModel().filterTopicsIds();
if (topicsIds.length > 0) { if (topicsIds.length > 0) {
this._actionDispatcher.addFeatureToTopic(topicsIds[0], mindplot.TopicFeature.Icon.id, {id:iconType}); this._actionDispatcher.addFeatureToTopic(topicsIds[0], mindplot.TopicFeature.Icon.id, {id:iconType});
} }
}, },
addLink : function() { addLink:function () {
var model = this.getModel(); var model = this.getModel();
var topic = model.selectedTopic(); var topic = model.selectedTopic();
topic.showLinkEditor(); topic.showLinkEditor();
}, },
addNote : function() { addNote:function () {
var model = this.getModel(); var model = this.getModel();
var topic = model.selectedTopic(); var topic = model.selectedTopic();
topic.showNoteEditor(); topic.showNoteEditor();
}, },
goToNode : function(node) { goToNode:function (node) {
node.setOnFocus(true); node.setOnFocus(true);
this.onObjectFocusEvent(node); this.onObjectFocusEvent(node);
}, },
getWorkSpace : function() { getWorkSpace:function () {
return this._workspace; return this._workspace;
} }
} }

View File

@ -193,12 +193,12 @@ mindplot.MainTopic = new Class({
var result = ""; var result = "";
if ($defined(targetTopic)) { if ($defined(targetTopic)) {
if (targetTopic.getType() == mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE) { if (targetTopic.getType() == mindplot.model.INodeModel.CENTRAL_TOPIC_TYPE) {
result = "Main Topic"; result = $msg('MAIN_TOPIC');
} else { } else {
result = "Sub Topic"; result = $msg('SUB_TOPIC');
} }
} else { } else {
result = "Isolated Topic"; result = $msg('ISOLATED_TOPIC');;
} }
return result; return result;
}, },

View File

@ -0,0 +1,129 @@
/*
* 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.
*/
mindplot.Messages = new Class({
Static:{
init:function (location) {
var locale = $defined(location) ? location : 'en';
mindplot.Messages.__bundle = mindplot.Messages.BUNDLES[locale];
console.log(mindplot.Messages.__bundle);
}
}
});
$msg = function (key) {
if (!mindplot.Messages.__bundle) {
mindplot.Messages.init('en');
}
return mindplot.Messages.__bundle[key];
};
mindplot.Messages.BUNDLES = {
'en':{
ZOOM_IN:'Zoom In',
ZOOM_OUT:'Zoom Out',
TOPIC_SHAPE:'Topic Shape',
TOPIC_ADD:'Add Topic',
TOPIC_DELETE:'Delete Topic',
TOPIC_ICON:'Add Icon',
TOPIC_LINK:'Add Link',
TOPIC_RELATIONSHIP:'Relationship',
TOPIC_COLOR:'Topic Color',
TOPIC_BORDER_COLOR:'Topic Border Color',
TOPIC_NOTE:'Add Note',
FONT_FAMILY:'Font Type',
FONT_SIZE:'Text Size',
FONT_BOLD:'Text Bold',
FONT_ITALIC:'Text Italic',
UNDO_EDITION:'Undo Edition',
REDO_EDITION:'Redo Edition',
UNDO:'Undo',
REDO:'Redo',
INSERT:'Insert',
SAVE:'Save',
NOTE:'Note',
ADD_TOPIC:'Add Topic',
LOADING:'Loading ...',
EXPORT:'Export',
PRINT:'Print',
PUBLISH:'Publish',
COLLABORATE:'Share',
HISTORY:'History',
DISCARD_CHANGES:'Discard Changes',
FONT_COLOR:'Text Color',
SAVING:'Saving ...',
SAVE_COMPLETE:'Save Complete',
ZOOM_IN_ERROR:'Zoom too high.',
ZOOM_ERROR:'No more zoom can be applied.',
ONLY_ONE_TOPIC_MUST_BE_SELECTED:'Could not create a topic. Only one node must be selected.',
ONE_TOPIC_MUST_BE_SELECTED:'Could not create a topic. One topic must be selected.',
SAVE_COULD_NOT_BE_COMPLETED:'Save could not be completed. Try latter.',
UNEXPECTED_ERROR_LOADING:"We're sorry, an unexpected error has occurred. Try again reloading the editor.\nIf the problem persists, contact us to support@wisemapping.com.",
MAIN_TOPIC:'Main Topic',
SUB_TOPIC:'Sub Topic',
ISOLATED_TOPIC:'Isolated Topic',
CENTRAL_TOPIC: 'Central Topic'
},
'es':{
DISCARD_CHANGES:'Descartar Cambios',
SAVE:'Guardar',
INSERT:'Insertar',
ZOOM_IN:'Acercar',
ZOOM_OUT:'Alejar',
TOPIC_BORDER_COLOR:'Color del Borde',
TOPIC_SHAPE:'Forma del Tópico',
TOPIC_ADD:'Agregar Tópico',
TOPIC_DELETE:'Borrar Tópico',
TOPIC_ICON:'Agregar Icono',
TOPIC_LINK:'Agregar Enlace',
TOPIC_NOTE:'Agregar Nota',
TOPIC_COLOR:'Color Tópico',
TOPIC_RELATIONSHIP:'Relación',
FONT_FAMILY:'Tipo de Fuente',
FONT_SIZE:'Tamaño de Texto',
FONT_BOLD:'Negrita',
FONT_ITALIC:'Italica',
FONT_COLOR:'Color de Texto',
UNDO_EDITION:'Undo Edition',
REDO_EDITION:'Redo Edition',
UNDO:'Rehacer',
NOTE:'Nota',
LOADING:'Cargando ...',
PRINT:'Imprimir',
PUBLISH:'Publicar',
REDO:'Deshacer',
ADD_TOPIC:'Agregar Tópico',
COLLABORATE:'Compartir',
EXPORT:'Exportar',
HISTORY:'History',
SAVE_COMPLETE:'Grabado Completo',
SAVING:'Grabando ...',
ONE_TOPIC_MUST_BE_SELECTED:'No ha sido posible crear un nuevo tópico. Al menos un tópico debe ser seleccionado.',
ONLY_ONE_TOPIC_MUST_BE_SELECTED:'No ha sido posible crear un nuevo tópico. Solo un tópico debe ser seleccionado.',
SAVE_COULD_NOT_BE_COMPLETED:'Grabación no pudo ser completada. Intentelo mas tarde.',
UNEXPECTED_ERROR_LOADING:"Lo sentimos, un error inesperado ha ocurrido. Intentelo nuevamente recargando el editor.\n Si el problema persiste, contactenos a support@wisemapping.com.",
ZOOM_ERROR:'No es posible aplicar mas zoom.',
ZOOM_IN_ERROR:'El zoom es muy alto.',
MAIN_TOPIC:'Tópico Principal',
SUB_TOPIC:'Tópico Secundario',
ISOLATED_TOPIC:'Tópico Aislado',
CENTRAL_TOPIC: 'Tópico Central'
}
};

View File

@ -18,7 +18,7 @@
mindplot.widget.IMenu = new Class({ mindplot.widget.IMenu = new Class({
initialize : function(designer, containerId, mapId) { initialize:function (designer, containerId, mapId) {
$assert(designer, "designer can not be null"); $assert(designer, "designer can not be null");
$assert(containerId, "containerId can not be null"); $assert(containerId, "containerId can not be null");
@ -28,13 +28,13 @@ mindplot.widget.IMenu = new Class({
this._mapId = mapId; this._mapId = mapId;
}, },
clear : function() { clear:function () {
this._toolbarElems.forEach(function(item) { this._toolbarElems.forEach(function (item) {
item.hide(); item.hide();
}); });
}, },
discard: function() { discard:function () {
var persistenceManager = mindplot.PersistenceManager.getInstance(); var persistenceManager = mindplot.PersistenceManager.getInstance();
var mindmap = designer.getMindmap(); var mindmap = designer.getMindmap();
persistenceManager.discard(mindmap.getId()); persistenceManager.discard(mindmap.getId());
@ -47,7 +47,7 @@ mindplot.widget.IMenu = new Class({
// Display save message .. // Display save message ..
if (saveHistory) { if (saveHistory) {
$notify("Saving ..."); $notify($msg('SAVING'));
saveElem.setStyle('cursor', 'wait'); saveElem.setStyle('cursor', 'wait');
} else { } else {
console.log("Saving without history ..."); console.log("Saving without history ...");
@ -56,16 +56,16 @@ mindplot.widget.IMenu = new Class({
// Call persistence manager for saving ... // Call persistence manager for saving ...
var persistenceManager = mindplot.PersistenceManager.getInstance(); var persistenceManager = mindplot.PersistenceManager.getInstance();
persistenceManager.save(mindmap, mindmapProp, saveHistory, { persistenceManager.save(mindmap, mindmapProp, saveHistory, {
onSuccess: function() { onSuccess:function () {
if (saveHistory) { if (saveHistory) {
saveElem.setStyle('cursor', 'pointer'); saveElem.setStyle('cursor', 'pointer');
$notify("Save complete"); $notify($msg('SAVE_COMPLETE'));
} }
}, },
onError: function() { onError:function () {
if (saveHistory) { if (saveHistory) {
saveElem.setStyle('cursor', 'pointer'); saveElem.setStyle('cursor', 'pointer');
$notify("Save could not be completed. Try latter."); $notify($msg('SAVE_COULD_NOT_BE_COMPLETED'));
} }
} }
}); });

View File

@ -17,21 +17,21 @@
*/ */
mindplot.widget.Menu = new Class({ mindplot.widget.Menu = new Class({
Extends: mindplot.widget.IMenu, Extends:mindplot.widget.IMenu,
initialize : function(designer, containerId, mapId, readOnly, baseUrl) { initialize:function (designer, containerId, mapId, readOnly, baseUrl) {
this.parent(designer, containerId, mapId); this.parent(designer, containerId, mapId);
baseUrl = !$defined(baseUrl) ? "" : baseUrl; baseUrl = !$defined(baseUrl) ? "" : baseUrl;
var widgetsBaseUrl = baseUrl + "css/widget"; var widgetsBaseUrl = baseUrl + "css/widget";
// Stop event propagation ... // Stop event propagation ...
$(this._containerId).addEvent('click', function(event) { $(this._containerId).addEvent('click', function (event) {
event.stopPropagation(); event.stopPropagation();
return false; return false;
}); });
$(this._containerId).addEvent('dblclick', function(event) { $(this._containerId).addEvent('dblclick', function (event) {
event.stopPropagation(); event.stopPropagation();
return false; return false;
}); });
@ -42,7 +42,7 @@ mindplot.widget.Menu = new Class({
var fontFamilyBtn = $('fontFamily'); var fontFamilyBtn = $('fontFamily');
if (fontFamilyBtn) { if (fontFamilyBtn) {
var fontFamilyModel = { var fontFamilyModel = {
getValue: function() { getValue:function () {
var nodes = designerModel.filterSelectedTopics(); var nodes = designerModel.filterSelectedTopics();
var result = null; var result = null;
for (var i = 0; i < nodes.length; i++) { for (var i = 0; i < nodes.length; i++) {
@ -56,19 +56,19 @@ mindplot.widget.Menu = new Class({
return result; return result;
}, },
setValue: function(value) { setValue:function (value) {
designer.changeFontFamily(value); designer.changeFontFamily(value);
} }
}; };
this._toolbarElems.push(new mindplot.widget.FontFamilyPanel("fontFamily", fontFamilyModel)); this._toolbarElems.push(new mindplot.widget.FontFamilyPanel("fontFamily", fontFamilyModel));
this._registerTooltip('fontFamily', "Text font"); this._registerTooltip('fontFamily', $msg('FONT_FAMILY'));
} }
var fontSizeBtn = $('fontSize'); var fontSizeBtn = $('fontSize');
if (fontSizeBtn) { if (fontSizeBtn) {
var fontSizeModel = { var fontSizeModel = {
getValue: function() { getValue:function () {
var nodes = designerModel.filterSelectedTopics(); var nodes = designerModel.filterSelectedTopics();
var result = null; var result = null;
for (var i = 0; i < nodes.length; i++) { for (var i = 0; i < nodes.length; i++) {
@ -81,18 +81,18 @@ mindplot.widget.Menu = new Class({
} }
return result; return result;
}, },
setValue: function(value) { setValue:function (value) {
designer.changeFontSize(value); designer.changeFontSize(value);
} }
}; };
this._toolbarElems.push(new mindplot.widget.FontSizePanel("fontSize", fontSizeModel)); this._toolbarElems.push(new mindplot.widget.FontSizePanel("fontSize", fontSizeModel));
this._registerTooltip('fontSize', "Text size"); this._registerTooltip('fontSize', $msg('FONT_SIZE'));
} }
var topicShapeBtn = $('topicShape'); var topicShapeBtn = $('topicShape');
if (topicShapeBtn) { if (topicShapeBtn) {
var topicShapeModel = { var topicShapeModel = {
getValue: function() { getValue:function () {
var nodes = designerModel.filterSelectedTopics(); var nodes = designerModel.filterSelectedTopics();
var result = null; var result = null;
for (var i = 0; i < nodes.length; i++) { for (var i = 0; i < nodes.length; i++) {
@ -105,27 +105,27 @@ mindplot.widget.Menu = new Class({
} }
return result; return result;
}, },
setValue: function(value) { setValue:function (value) {
designer.changeTopicShape(value); designer.changeTopicShape(value);
} }
}; };
this._toolbarElems.push(new mindplot.widget.TopicShapePanel("topicShape", topicShapeModel)); this._toolbarElems.push(new mindplot.widget.TopicShapePanel("topicShape", topicShapeModel));
this._registerTooltip('topicShape', "Topic shape"); this._registerTooltip('topicShape', $msg('TOPIC_SHAPE'));
} }
var topicIconBtn = $('topicIcon'); var topicIconBtn = $('topicIcon');
if (topicIconBtn) { if (topicIconBtn) {
// Create icon panel dialog ... // Create icon panel dialog ...
var topicIconModel = { var topicIconModel = {
getValue: function() { getValue:function () {
return null; return null;
}, },
setValue: function(value) { setValue:function (value) {
designer.addIconType(value); designer.addIconType(value);
} }
}; };
this._toolbarElems.push(new mindplot.widget.IconPanel('topicIcon', topicIconModel)); this._toolbarElems.push(new mindplot.widget.IconPanel('topicIcon', topicIconModel));
this._registerTooltip('topicIcon', "Icon"); this._registerTooltip('topicIcon', $msg('TOPIC_ICON'));
} }
// Topic color item ... // Topic color item ...
@ -133,7 +133,7 @@ mindplot.widget.Menu = new Class({
if (topicColorBtn) { if (topicColorBtn) {
var topicColorModel = { var topicColorModel = {
getValue : function() { getValue:function () {
var nodes = designerModel.filterSelectedTopics(); var nodes = designerModel.filterSelectedTopics();
var result = null; var result = null;
for (var i = 0; i < nodes.length; i++) { for (var i = 0; i < nodes.length; i++) {
@ -146,12 +146,12 @@ mindplot.widget.Menu = new Class({
} }
return result; return result;
}, },
setValue : function (hex) { setValue:function (hex) {
designer.changeBackgroundColor(hex); designer.changeBackgroundColor(hex);
} }
}; };
this._toolbarElems.push(new mindplot.widget.ColorPalettePanel('topicColor', topicColorModel, widgetsBaseUrl)); this._toolbarElems.push(new mindplot.widget.ColorPalettePanel('topicColor', topicColorModel, widgetsBaseUrl));
this._registerTooltip('topicColor', "Topic color"); this._registerTooltip('topicColor', $msg('TOPIC_COLOR'));
} }
// Border color item ... // Border color item ...
@ -159,7 +159,7 @@ mindplot.widget.Menu = new Class({
if (topicBorderBtn) { if (topicBorderBtn) {
var borderColorModel = var borderColorModel =
{ {
getValue : function() { getValue:function () {
var nodes = designerModel.filterSelectedTopics(); var nodes = designerModel.filterSelectedTopics();
var result = null; var result = null;
for (var i = 0; i < nodes.length; i++) { for (var i = 0; i < nodes.length; i++) {
@ -172,12 +172,12 @@ mindplot.widget.Menu = new Class({
} }
return result; return result;
}, },
setValue : function (hex) { setValue:function (hex) {
designer.changeBorderColor(hex); designer.changeBorderColor(hex);
} }
}; };
this._toolbarElems.push(new mindplot.widget.ColorPalettePanel('topicBorder', borderColorModel, widgetsBaseUrl)); this._toolbarElems.push(new mindplot.widget.ColorPalettePanel('topicBorder', borderColorModel, widgetsBaseUrl));
this._registerTooltip('topicBorder', "Border color"); this._registerTooltip('topicBorder', $msg('TOPIC_BORDER_COLOR'));
} }
// Font color item ... // Font color item ...
@ -185,7 +185,7 @@ mindplot.widget.Menu = new Class({
if (fontColorBtn) { if (fontColorBtn) {
var fontColorModel = var fontColorModel =
{ {
getValue : function() { getValue:function () {
var result = null; var result = null;
var nodes = designerModel.filterSelectedTopics(); var nodes = designerModel.filterSelectedTopics();
for (var i = 0; i < nodes.length; i++) { for (var i = 0; i < nodes.length; i++) {
@ -198,107 +198,107 @@ mindplot.widget.Menu = new Class({
} }
return result; return result;
}, },
setValue : function (hex) { setValue:function (hex) {
designer.changeFontColor(hex); designer.changeFontColor(hex);
} }
}; };
this._toolbarElems.push(new mindplot.widget.ColorPalettePanel('fontColor', fontColorModel, baseUrl)); this._toolbarElems.push(new mindplot.widget.ColorPalettePanel('fontColor', fontColorModel, baseUrl));
this._registerTooltip('fontColor', "Text color"); this._registerTooltip('fontColor', $msg('FONT_COLOR'));
} }
this._addButton('export', false, false, function() { this._addButton('export', false, false, function () {
var reqDialog = new MooDialog.Request('/c/iframeWrapper.htm?url=c/maps/' + mapId + "/exportf", null, var reqDialog = new MooDialog.Request('/c/iframeWrapper.htm?url=c/maps/' + mapId + "/exportf", null,
{'class': 'modalDialog exportModalDialog', {'class':'modalDialog exportModalDialog',
closeButton:true, closeButton:true,
destroyOnClose:true, destroyOnClose:true,
title:'Export' title:$msg('EXPORT')
}); });
reqDialog.setRequestOptions({ reqDialog.setRequestOptions({
onRequest: function() { onRequest:function () {
reqDialog.setContent('loading...'); reqDialog.setContent($msg('LOADING'));
} }
}); });
MooDialog.Request.active = reqDialog; MooDialog.Request.active = reqDialog;
}); });
this._registerTooltip('export', "Export"); this._registerTooltip('export', $msg('EXPORT'));
this._addButton('print', false, false, function() { this._addButton('print', false, false, function () {
window.open('/c/maps/' + mapId + '/print'); window.open('/c/maps/' + mapId + '/print');
}); });
this._registerTooltip('print', "Print"); this._registerTooltip('print', $msg('PRINT'));
this._addButton('zoomIn', false, false, function() { this._addButton('zoomIn', false, false, function () {
designer.zoomIn(); designer.zoomIn();
}); });
this._registerTooltip('zoomIn', "Zoom in"); this._registerTooltip('zoomIn', $msg('ZOOM_IN'));
this._addButton('zoomOut', false, false, function() { this._addButton('zoomOut', false, false, function () {
designer.zoomOut(); designer.zoomOut();
}); });
this._registerTooltip('zoomOut', "Zoom out"); this._registerTooltip('zoomOut', $msg('ZOOM_OUT'));
this._addButton('undoEdition', false, false, function() { this._addButton('undoEdition', false, false, function () {
designer.undo(); designer.undo();
}); });
this._registerTooltip('undoEdition', "Undo", "meta+Z"); this._registerTooltip('undoEdition', $msg('UNDO'), "meta+Z");
this._addButton('redoEdition', false, false, function() { this._addButton('redoEdition', false, false, function () {
designer.redo(); designer.redo();
}); });
this._registerTooltip('redoEdition', "Redo", "meta+Y"); this._registerTooltip('redoEdition', $msg('REDO'), "meta+Y");
this._addButton('addTopic', true, false, function() { this._addButton('addTopic', true, false, function () {
designer.createChildForSelectedNode(); designer.createChildForSelectedNode();
}); });
this._registerTooltip('addTopic', "Add topic", "Enter"); this._registerTooltip('addTopic', $msg('ADD_TOPIC'), "Enter");
this._addButton('deleteTopic', true, true, function() { this._addButton('deleteTopic', true, true, function () {
designer.deleteCurrentNode(); designer.deleteCurrentNode();
}); });
this._registerTooltip('deleteTopic', "Delete topic", "Backspace"); this._registerTooltip('deleteTopic', $msg('TOPIC_DELETE'), "Backspace");
this._addButton('topicLink', true, false, function() { this._addButton('topicLink', true, false, function () {
designer.addLink(); designer.addLink();
}); });
this._registerTooltip('topicLink', "Add link"); this._registerTooltip('topicLink', $msg('TOPIC_LINK'));
this._addButton('topicRelation', true, false, function(event) { this._addButton('topicRelation', true, false, function (event) {
designer.showRelPivot(event); designer.showRelPivot(event);
}); });
this._registerTooltip('topicRelation', "Relationship"); this._registerTooltip('topicRelation', $msg('TOPIC_RELATIONSHIP'));
this._addButton('topicNote', true, false, function() { this._addButton('topicNote', true, false, function () {
designer.addNote(); designer.addNote();
}); });
this._registerTooltip('topicNote', "Add note"); this._registerTooltip('topicNote', $msg('TOPIC_NOTE'));
this._addButton('fontBold', true, false, function() { this._addButton('fontBold', true, false, function () {
designer.changeFontWeight(); designer.changeFontWeight();
}); });
this._registerTooltip('fontBold', "Text bold", "meta+B"); this._registerTooltip('fontBold', $msg('FONT_BOLD'), "meta+B");
this._addButton('fontItalic', true, false, function() { this._addButton('fontItalic', true, false, function () {
designer.changeFontStyle(); designer.changeFontStyle();
}); });
this._registerTooltip('fontItalic', "Text italic", "meta+I"); this._registerTooltip('fontItalic', $msg('FONT_ITALIC'), "meta+I");
var saveElem = $('save'); var saveElem = $('save');
if (saveElem) { if (saveElem) {
this._addButton('save', false, false, function() { this._addButton('save', false, false, function () {
this.save(saveElem, designer, true); this.save(saveElem, designer, true);
}.bind(this)); }.bind(this));
this._registerTooltip('save', "Save", "meta+S"); this._registerTooltip('save', $msg('SAVE'), "meta+S");
if (!readOnly) { if (!readOnly) {
@ -310,7 +310,7 @@ mindplot.widget.Menu = new Class({
}.bind(this)); }.bind(this));
// Autosave on a fixed period of time ... // Autosave on a fixed period of time ...
(function() { (function () {
if (designer.needsSave()) { if (designer.needsSave()) {
this.save(saveElem, designer, false); this.save(saveElem, designer, false);
} }
@ -320,25 +320,25 @@ mindplot.widget.Menu = new Class({
var discardElem = $('discard'); var discardElem = $('discard');
if (discardElem) { if (discardElem) {
this._addButton('discard', false, false, function() { this._addButton('discard', false, false, function () {
this.discard(); this.discard();
window.location.reload(); window.location.reload();
}.bind(this)); }.bind(this));
this._registerTooltip('discard', "Discard"); this._registerTooltip('discard', $msg('DISCARD_CHANGES'));
} }
var tagElem = $('tagIt'); var tagElem = $('tagIt');
if (tagElem) { if (tagElem) {
this._addButton('tagIt', false, false, function() { this._addButton('tagIt', false, false, function () {
var reqDialog = new MooDialog.Request('c/tags?mapId=' + mapId, null, var reqDialog = new MooDialog.Request('c/tags?mapId=' + mapId, null,
{'class': 'modalDialog tagItModalDialog', {'class':'modalDialog tagItModalDialog',
closeButton:true, closeButton:true,
destroyOnClose:true, destroyOnClose:true,
title:'Tags' title:'Tags'
}); });
reqDialog.setRequestOptions({ reqDialog.setRequestOptions({
onRequest: function() { onRequest:function () {
reqDialog.setContent('loading...'); reqDialog.setContent($msg('LOADING'));
} }
}); });
}); });
@ -347,80 +347,80 @@ mindplot.widget.Menu = new Class({
var shareElem = $('shareIt'); var shareElem = $('shareIt');
if (shareElem) { if (shareElem) {
this._addButton('shareIt', false, false, function() { this._addButton('shareIt', false, false, function () {
var reqDialog = new MooDialog.Request('/c/iframeWrapper?url=c/maps/' + mapId + "/sharef", null, var reqDialog = new MooDialog.Request('/c/iframeWrapper?url=c/maps/' + mapId + "/sharef", null,
{'class': 'modalDialog shareModalDialog', {'class':'modalDialog shareModalDialog',
closeButton:true, closeButton:true,
destroyOnClose:true, destroyOnClose:true,
title:'Share' title:$msg('COLLABORATE')
}); });
reqDialog.setRequestOptions({ reqDialog.setRequestOptions({
onRequest: function() { onRequest:function () {
reqDialog.setContent('loading...'); reqDialog.setContent($msg('LOADING'));
} }
}); });
MooDialog.Request.active = reqDialog; MooDialog.Request.active = reqDialog;
}); });
this._registerTooltip('shareIt', "Share"); this._registerTooltip('shareIt', $msg('COLLABORATE'));
} }
var publishElem = $('publishIt'); var publishElem = $('publishIt');
if (publishElem) { if (publishElem) {
this._addButton('publishIt', false, false, function() { this._addButton('publishIt', false, false, function () {
var reqDialog = new MooDialog.Request('/c/iframeWrapper?url=c/maps/' + mapId + "/publishf", null, var reqDialog = new MooDialog.Request('/c/iframeWrapper?url=c/maps/' + mapId + "/publishf", null,
{'class': 'modalDialog publishModalDialog', {'class':'modalDialog publishModalDialog',
closeButton:true, closeButton:true,
destroyOnClose:true, destroyOnClose:true,
title:'Publish' title:$msg('PUBLISH')
}); });
reqDialog.setRequestOptions({ reqDialog.setRequestOptions({
onRequest: function() { onRequest:function () {
reqDialog.setContent('loading...'); reqDialog.setContent($msg('LOADING'));
} }
}); });
MooDialog.Request.active = reqDialog; MooDialog.Request.active = reqDialog;
}); });
this._registerTooltip('publishIt', "Publish"); this._registerTooltip('publishIt', $msg('PUBLISH'));
} }
var historyElem = $('history'); var historyElem = $('history');
if (historyElem) { if (historyElem) {
this._addButton('history', false, false, function() { this._addButton('history', false, false, function () {
var reqDialog = new MooDialog.Request('/c/iframeWrapper?url=c/maps/' + mapId + "/historyf", null, var reqDialog = new MooDialog.Request('/c/iframeWrapper?url=c/maps/' + mapId + "/historyf", null,
{'class': 'modalDialog historyModalDialog', {'class':'modalDialog historyModalDialog',
closeButton:true, closeButton:true,
destroyOnClose:true, destroyOnClose:true,
title:'History' title:$msg('HISTORY')
}); });
reqDialog.setRequestOptions({ reqDialog.setRequestOptions({
onRequest: function() { onRequest:function () {
reqDialog.setContent('loading...'); reqDialog.setContent($msg('LOADING'));
} }
}); });
}); });
this._registerTooltip('history', "History"); this._registerTooltip('history', $msg('HISTORY'));
} }
this._registerEvents(designer); this._registerEvents(designer);
}, },
_registerEvents : function(designer) { _registerEvents:function (designer) {
// Register on close events ... // Register on close events ...
this._toolbarElems.forEach(function(elem) { this._toolbarElems.forEach(function (elem) {
elem.addEvent('show', function() { elem.addEvent('show', function () {
this.clear() this.clear()
}.bind(this)); }.bind(this));
}.bind(this)); }.bind(this));
designer.addEvent('onblur', function() { designer.addEvent('onblur', function () {
var topics = designer.getModel().filterSelectedTopics(); var topics = designer.getModel().filterSelectedTopics();
var rels = designer.getModel().filterSelectedRelations(); var rels = designer.getModel().filterSelectedRelations();
this._toolbarElems.forEach(function(button) { this._toolbarElems.forEach(function (button) {
var disable = false; var disable = false;
if (button.isTopicAction() && button.isRelAction()) { if (button.isTopicAction() && button.isRelAction()) {
disable = rels.length == 0 && topics.length == 0; disable = rels.length == 0 && topics.length == 0;
@ -442,11 +442,11 @@ mindplot.widget.Menu = new Class({
}) })
}.bind(this)); }.bind(this));
designer.addEvent('onfocus', function() { designer.addEvent('onfocus', function () {
var topics = designer.getModel().filterSelectedTopics(); var topics = designer.getModel().filterSelectedTopics();
var rels = designer.getModel().filterSelectedRelations(); var rels = designer.getModel().filterSelectedRelations();
this._toolbarElems.forEach(function(button) { this._toolbarElems.forEach(function (button) {
if (button.isTopicAction() && topics.length > 0) { if (button.isTopicAction() && topics.length > 0) {
button.enable(); button.enable();
} }
@ -462,16 +462,16 @@ mindplot.widget.Menu = new Class({
// Register Events ... // Register Events ...
if ($(buttonId)) { if ($(buttonId)) {
var button = new mindplot.widget.ToolbarItem(buttonId, function(event) { var button = new mindplot.widget.ToolbarItem(buttonId, function (event) {
fn(event); fn(event);
this.clear(); this.clear();
}.bind(this), {topicAction:topic,relAction:rel}); }.bind(this), {topicAction:topic, relAction:rel});
this._toolbarElems.push(button); this._toolbarElems.push(button);
} }
}, },
_registerTooltip: function(buttonId, text, shortcut) { _registerTooltip:function (buttonId, text, shortcut) {
if ($(buttonId)) { if ($(buttonId)) {
var tooltip = text; var tooltip = text;
if (shortcut) { if (shortcut) {

View File

@ -20,8 +20,7 @@
<link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon"> <link rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
<script type="text/javascript"> <script type="text/javascript">
var mapId = 'welcome';
var mapId = 'test';
$(document).addEvent('loadcomplete', function(resource) { $(document).addEvent('loadcomplete', function(resource) {
var options = loadDesignerOptions(); var options = loadDesignerOptions();
var designer = buildDesigner(options); var designer = buildDesigner(options);

View File

@ -25,12 +25,12 @@ function buildDesigner(options) {
// Register load events ... // Register load events ...
designer = new mindplot.Designer(options, container); designer = new mindplot.Designer(options, container);
designer.addEvent('loadSuccess', function() { designer.addEvent('loadSuccess', function () {
window.waitDialog.close.delay(1000, window.waitDialog); window.waitDialog.close.delay(1000, window.waitDialog);
window.waitDialog = null; window.waitDialog = null;
}); });
window.onerror = function(message, url, lineNo) { window.onerror = function (message, url, lineNo) {
// Log error message ... // Log error message ...
if (window.waitDialog) { if (window.waitDialog) {
@ -38,16 +38,16 @@ function buildDesigner(options) {
window.waitDialog = null; window.waitDialog = null;
} }
var req = new Request({ var req = new Request({
method: 'post', method:'post',
url: "/service/logger/editor", url:"/service/logger/editor",
headers: {"Content-Type":"application/json","Accept":"application/json"}, headers:{"Content-Type":"application/json", "Accept":"application/json"},
emulation:false, emulation:false,
urlEncoded:false urlEncoded:false
}).post(JSON.encode({ }).post(JSON.encode({
jsErrorMsg : "message: " + message + ", line:" + lineNo + ", :" + url, jsErrorMsg:"message: " + message + ", line:" + lineNo + ", :" + url,
jsStack : window.errorStack, jsStack:window.errorStack,
userAgent: navigator.userAgent, userAgent:navigator.userAgent,
mapId: options.mapId})); mapId:options.mapId}));
errorDialog.show(); errorDialog.show();
}; };
@ -72,7 +72,7 @@ function buildDesigner(options) {
var menu = new mindplot.widget.Menu(designer, 'toolbar', options.mapId, ""); var menu = new mindplot.widget.Menu(designer, 'toolbar', options.mapId, "");
// If a node has focus, focus can be move to another node using the keys. // If a node has focus, focus can be move to another node using the keys.
designer._cleanScreen = function() { designer._cleanScreen = function () {
menu.clear() menu.clear()
}; };
} }
@ -86,10 +86,9 @@ function loadDesignerOptions(jsonConf) {
var result; var result;
if (jsonConf) { if (jsonConf) {
var request = new Request.JSON({ var request = new Request.JSON({
url: jsonConf, url:jsonConf,
async:false, async:false,
onSuccess: onSuccess:function (options) {
function(options) {
this.options = options; this.options = options;
}.bind(this) }.bind(this)
@ -101,15 +100,15 @@ function loadDesignerOptions(jsonConf) {
else { else {
// Set workspace screen size as default. In this way, resize issues are solved. // Set workspace screen size as default. In this way, resize issues are solved.
var containerSize = { var containerSize = {
height: parseInt(screen.height), height:parseInt(screen.height),
width: parseInt(screen.width) width:parseInt(screen.width)
}; };
var viewPort = { var viewPort = {
height: parseInt(window.innerHeight - 70), // Footer and Header height:parseInt(window.innerHeight - 70), // Footer and Header
width: parseInt(window.innerWidth) width:parseInt(window.innerWidth)
}; };
result = {readOnly:false,zoom:0.85,saveOnLoad:true,size:containerSize,viewPort:viewPort,container:'mindplot'}; result = {readOnly:false, zoom:0.85, saveOnLoad:true, size:containerSize, viewPort:viewPort, container:'mindplot', location:'en'};
} }
return result; return result;
} }
@ -117,7 +116,7 @@ function loadDesignerOptions(jsonConf) {
editor = {}; editor = {};
editor.WaitDialog = new Class({ editor.WaitDialog = new Class({
Extends:MooDialog, Extends:MooDialog,
initialize : function() { initialize:function () {
var panel = this._buildPanel(); var panel = this._buildPanel();
this.parent({ this.parent({
closeButton:false, closeButton:false,
@ -125,36 +124,36 @@ editor.WaitDialog = new Class({
autoOpen:false, autoOpen:false,
useEscKey:false, useEscKey:false,
title:'Loading ...', title:'Loading ...',
onInitialize: function(wrapper) { onInitialize:function (wrapper) {
wrapper.setStyle('opacity', 0); wrapper.setStyle('opacity', 0);
this.wrapper.setStyle('display', 'none'); this.wrapper.setStyle('display', 'none');
this.fx = new Fx.Morph(wrapper, { this.fx = new Fx.Morph(wrapper, {
duration: 100, duration:100,
transition: Fx.Transitions.Bounce.easeOut transition:Fx.Transitions.Bounce.easeOut
}); });
}, },
onBeforeOpen: function() { onBeforeOpen:function () {
this.overlay = new Overlay(this.options.inject, { this.overlay = new Overlay(this.options.inject, {
duration: this.options.duration duration:this.options.duration
}); });
this.overlay.open(); this.overlay.open();
this.fx.start({ this.fx.start({
'margin-top': [-200, -100], 'margin-top':[-200, -100],
opacity: [0, 1] opacity:[0, 1]
}).chain(function() { }).chain(function () {
this.fireEvent('show'); this.fireEvent('show');
this.wrapper.setStyle('display', 'block'); this.wrapper.setStyle('display', 'block');
}.bind(this)); }.bind(this));
}, },
onBeforeClose: function() { onBeforeClose:function () {
this.fx.start({ this.fx.start({
'margin-top': [-100, 0], 'margin-top':[-100, 0],
opacity: 0, opacity:0,
duration: 200 duration:200
}).chain(function() { }).chain(function () {
this.fireEvent('hide'); this.fireEvent('hide');
this.wrapper.setStyle('display', 'none'); this.wrapper.setStyle('display', 'none');
@ -164,23 +163,23 @@ editor.WaitDialog = new Class({
this.setContent(panel); this.setContent(panel);
}, },
_buildPanel : function () { _buildPanel:function () {
var result = new Element('div'); var result = new Element('div');
result.setStyles({ result.setStyles({
'text-align':'center', 'text-align':'center',
width: '400px' width:'400px'
}); });
var img = new Element('img', {'src': 'images/ajax-loader.gif'}); var img = new Element('img', {'src':'images/ajax-loader.gif'});
img.setStyle('margin-top', '15px'); img.setStyle('margin-top', '15px');
img.inject(result); img.inject(result);
return result; return result;
}, },
show : function() { show:function () {
this.open(); this.open();
}, },
destroy: function() { destroy:function () {
this.parent(); this.parent();
this.overlay.destroy(); this.overlay.destroy();
} }
@ -190,75 +189,76 @@ editor.WaitDialog = new Class({
editor.FatalErrorDialog = new Class({ editor.FatalErrorDialog = new Class({
Extends:MooDialog, Extends:MooDialog,
initialize : function() { initialize:function () {
var panel = this._buildPanel();
this.parent({ this.parent({
closeButton:false, closeButton:false,
destroyOnClose:true, destroyOnClose:true,
autoOpen:true, autoOpen:true,
useEscKey:false, useEscKey:false,
title:'Outch!!. An unexpected error has occurred', title:'Outch!!. An unexpected error has occurred',
onInitialize: function(wrapper) { onInitialize:function (wrapper) {
wrapper.setStyle('opacity', 0); wrapper.setStyle('opacity', 0);
this.wrapper.setStyle('display', 'none'); this.wrapper.setStyle('display', 'none');
this.fx = new Fx.Morph(wrapper, { this.fx = new Fx.Morph(wrapper, {
duration: 100, duration:100,
transition: Fx.Transitions.Bounce.easeOut transition:Fx.Transitions.Bounce.easeOut
}); });
}, },
onBeforeOpen: function() { onBeforeOpen:function () {
var panel = this._buildPanel();
this.setContent(panel);
this.overlay = new Overlay(this.options.inject, { this.overlay = new Overlay(this.options.inject, {
duration: this.options.duration duration:this.options.duration
}); });
if (this.options.closeOnOverlayClick) if (this.options.closeOnOverlayClick)
this.overlay.addEvent('click', this.close.bind(this)); this.overlay.addEvent('click', this.close.bind(this));
this.overlay.open(); this.overlay.open();
this.fx.start({ this.fx.start({
'margin-top': [-200, -100], 'margin-top':[-200, -100],
opacity: [0, 1] opacity:[0, 1]
}).chain(function() { }).chain(function () {
this.fireEvent('show'); this.fireEvent('show');
this.wrapper.setStyle('display', 'block'); this.wrapper.setStyle('display', 'block');
}.bind(this)); }.bind(this));
}, },
onBeforeClose: function() { onBeforeClose:function () {
this.fx.start({ this.fx.start({
'margin-top': [-100, 0], 'margin-top':[-100, 0],
opacity: 0, opacity:0,
duration: 200 duration:200
}).chain(function() { }).chain(function () {
this.wrapper.setStyle('display', 'none'); this.wrapper.setStyle('display', 'none');
this.fireEvent('hide'); this.fireEvent('hide');
}.bind(this)); }.bind(this));
}} }}
); );
this.setContent(panel);
}, },
destroy: function() { destroy:function () {
this.parent(); this.parent();
this.overlay.destroy(); this.overlay.destroy();
}, },
_buildPanel : function () { _buildPanel:function () {
var result = new Element('div'); var result = new Element('div');
result.setStyles({ result.setStyles({
'text-align':'center', 'text-align':'center',
width: '400px' width:'400px'
}); });
var p = new Element('p', {'text': 'We\'re sorry, an error has occurred and we can not process your request. Please try again, or go to the home page.'}); var p = new Element('p', {'text':$msg('UNEXPECTED_ERROR_LOADING')});
p.inject(result); p.inject(result);
var img = new Element('img', {'src': 'images/alert-sign.png'}); var img = new Element('img', {'src':'images/alert-sign.png'});
img.inject(result); img.inject(result);
return result; return result;
}, },
show : function() { show:function () {
this.open(); this.open();
} }
@ -266,14 +266,14 @@ editor.FatalErrorDialog = new Class({
editor.Help = { editor.Help = {
buildHelp:function(panel) { buildHelp:function (panel) {
var container = new Element('div'); var container = new Element('div');
container.setStyles({width:'100%', textAlign:'center'}); container.setStyles({width:'100%', textAlign:'center'});
var content1 = Help.buildContentIcon('images/black-keyboard.png', 'Keyboard Shortcuts', function() { var content1 = Help.buildContentIcon('images/black-keyboard.png', 'Keyboard Shortcuts', function () {
MOOdalBox.open('keyboard.htm', 'KeyBoard Shortcuts', '500px 400px', false); MOOdalBox.open('keyboard.htm', 'KeyBoard Shortcuts', '500px 400px', false);
panel.hidePanel(); panel.hidePanel();
}); });
var content2 = Help.buildContentIcon('images/firstSteps.png', 'Editor First Steps', function() { var content2 = Help.buildContentIcon('images/firstSteps.png', 'Editor First Steps', function () {
var wOpen; var wOpen;
var sOptions; var sOptions;
@ -289,14 +289,14 @@ editor.Help = {
panel.hidePanel(); panel.hidePanel();
}); });
container.addEvent('show', function() { container.addEvent('show', function () {
content1.effect('opacity', {duration:800}).start(0, 100); content1.effect('opacity', {duration:800}).start(0, 100);
var eff = function() { var eff = function () {
content2.effect('opacity', {duration:800}).start(0, 100); content2.effect('opacity', {duration:800}).start(0, 100);
}; };
eff.delay(150); eff.delay(150);
}); });
container.addEvent('hide', function() { container.addEvent('hide', function () {
content1.effect('opacity').set(0); content1.effect('opacity').set(0);
content2.effect('opacity').set(0) content2.effect('opacity').set(0)
}); });
@ -304,8 +304,8 @@ editor.Help = {
content2.inject(container); content2.inject(container);
return container; return container;
}, },
buildContentIcon:function(image, text, onClickFn) { buildContentIcon:function (image, text, onClickFn) {
var container = new Element('div').setStyles({margin:'15px 0px 0px 0px', opacity:0, padding:'5px 0px', border: '1px solid transparent', cursor:'pointer'}); var container = new Element('div').setStyles({margin:'15px 0px 0px 0px', opacity:0, padding:'5px 0px', border:'1px solid transparent', cursor:'pointer'});
var icon = new Element('div'); var icon = new Element('div');
icon.addEvent('click', onClickFn); icon.addEvent('click', onClickFn);
@ -318,11 +318,11 @@ editor.Help = {
textContainer.innerHTML = text; textContainer.innerHTML = text;
textContainer.inject(container); textContainer.inject(container);
container.addEvent('mouseover', function() { container.addEvent('mouseover', function () {
$(this).setStyle('border-top', '1px solid #BBB4D6'); $(this).setStyle('border-top', '1px solid #BBB4D6');
$(this).setStyle('border-bottom', '1px solid #BBB4D6'); $(this).setStyle('border-bottom', '1px solid #BBB4D6');
}.bind(this)); }.bind(this));
container.addEvent('mouseout', function() { container.addEvent('mouseout', function () {
$(this).setStyle('border-top', '1px solid transparent'); $(this).setStyle('border-top', '1px solid transparent');
$(this).setStyle('border-bottom', '1px solid transparent'); $(this).setStyle('border-bottom', '1px solid transparent');

View File

@ -0,0 +1,352 @@
<map name="66634" version="pela">
<topic central="true" text="PPM Plan" id="1" bgColor="#32e36a">
<topic position="241,250" order="10" text="Business Development " id="4" fontStyle=";;;bold;;"/>
<topic position="226,-100" order="3" text="Backlog Management" shape="line" id="18" fontStyle=";;;bold;;">
<link url="https://docs.google.com/a/freeform.ca/drawings/d/1mrtkVAN3_XefJJCgfxw4Va6xk9TVDBKXDt_uzyIF4Us/edit"/>
</topic>
<topic position="-193,50" order="2" text="Freeform IT" id="10" fontStyle=";;;bold;;"/>
<topic position="-271,-50" order="1" text="Client Project Management" id="204" fontStyle=";;;bold;;"/>
<topic position="-183,-150" order="5" text="Governance &amp; Executive" id="206" fontStyle=";;;bold;;"/>
<topic position="124,-200" order="7" text="Finance" id="5" fontStyle=";;;bold;;"/>
<topic position="176,-150" order="5" text="Administration" id="3" fontStyle=";;;bold;;"/>
<topic position="222,100" order="4" text="Human Resources" id="154" fontStyle=";;;bold;;">
<note text="HR%20Vision%3A%20Freeform%20Solutions%20is%20successful%20at%20its%20mission%2C%20sustainable%20as%20an%20organization%20AND%20is%20a%20great%20place%20to%20work.%0AHR%20Mission%3A%20To%20provide%20a%20positive%20HR%20service%20experience%20for%20applicants%20and%20employees%2C%20and%20%20collaborate%20with%20departments%20to%20recruit%2C%20develop%2C%20support%2C%20and%20retain%20diverse%20and%20talented%20employees%20who%20are%20the%20key%20to%20Freeform%u2019s%20%20reputation%20and%20success."/>
</topic>
<topic position="-202,150" order="6" text="Freeform Hosting" id="16" fontStyle=";;;bold;;"/>
<topic position="197,50" order="2" text="Community Outreach" id="247" fontStyle=";;;bold;;"/>
<topic position="124,300" order="12" text="R&amp;D" id="261" fontStyle=";;;bold;;">
<topic position="230,289" order="0" text="Goals" id="263"/>
<topic position="239,313" order="1" text="Formulize" id="264"/>
</topic>
<topic position="-158,0" order="0" text="Probono" id="268">
<topic position="-273,1" order="0" id="269"/>
</topic>
</topic>
<topic position="1558,-249" text="Strategy 2: Talent Development" id="31">
<note text="Strategy%20%232%3A%20Support%20the%20talent%20development%20of%20our%20employees%20through%20professional%20development%20and%20learning%20and%20through%20improved%20performance%20management."/>
<topic position="1817,-260" order="0" text="Strategic Priority 2a: Personal Plans" id="113">
<note text="Each%20employee%20will%20have%20a%20personal%20Professional%20Development%20Plan.%20%20"/>
</topic>
<topic position="1869,-236" order="1" text="Strategic Priority 2b: External learning matches organ. goals"
id="114">
<note text="Each%20department%20of%20Freeform%20will%20identify%20areas%20that%20need%20development%20to%20meet%20overall%20FS%20goals.%20%20Eg.%20%20Project%20Manager%20may%20identify%20needed%20improvement%20in%20a%20development%20tool.%20%20Or...%20Bus.%20Dev.%20may%20identify%20a%20new%20need%20in%20NFP%20that%20FS%20could%20fill%20within%20mandate%2C%20if%20training%20were%20provided.%20%20Professional%20Dev.%20priority%20will%20be%20given%20to%20proposals%20for%20development%20with%20clear%20ROIs."/>
</topic>
<topic position="1831,-212" order="2" text="Strategic Priority 2c: Learning Environment" id="116">
<note text="Learning%20and%20innovation%20are%20an%20essential%20part%20of%20providing%20the%20best%20solutions%20to%20NFPs.%20%20Cost%20effective%20internal%20learning%20and%20time%20to%20explore%20innovation%20will%20be%20encouraged%2C%20provided%20they%20conform%20with%20organization%20goal%20and%20clear%20ROI%20is%20demonstrated."/>
</topic>
<topic position="1766,-188" order="3" text="So That..." id="112">
<icon id="object_rainbow"/>
<note text="%28So%20that...%20our%20employees%20have%20improved%20skills%20and%20knowledge%2C%20So%20that...%20they%20are%20highly%20competent%20and%20can%20work%20well%20in%20agile%20teams%20and%20feel%20fulfilled%20and%20self%20actualized...%20So%20that%20we%20can%20so%20the%20best%20work%20possible%2C%20for%20the%20least%20cost%2C%20in%20the%20shortest%20time%20for%20other%20NFPs%2C%20So%20that...%20NFPs%20can%20help%20those%20who%20need%20it.%29"/>
</topic>
</topic>
<topic position="1952,168" text="Strategy 4: Inclusive, Positive Environment" id="105">
<note text="Strategy%20%234%3A%20Foster%20a%20diverse%2C%20inclusive%20community%20with%20a%20positive%20work%20environment."/>
<topic position="2229,142" order="0" text="Strategic Priority 4a:Feedback" id="119">
<note text="Conduct%20regular%20organizational%20feedback%20assessments%20and%20collaborate%20to%20improve%20the%20work%20climate"/>
</topic>
<topic position="2246,166" order="1" text="Strategic Priority 4b: Anti Harassment" id="120">
<note text="Educate%20employees%20on%20the%20prevention%20of%20harassment%20and%20discrimination%20and%20productive%20ways%20to%20resolve%20conflict"/>
</topic>
<topic position="2228,190" order="2" text="Strategic Priority 4c: Diversity" id="121">
<note text="Insure%20we%20promote%20our%20commitment%20to%20diversity%20and%20non-discrimination%20through%20our%20actions%20and%20in%20our%20outreach%20and%20employee%20recruitment%20efforts"/>
</topic>
<topic position="2178,214" order="3" id="253"/>
<topic position="2191,238" order="4" text="So That..." id="118">
<icon id="object_rainbow"/>
<note text="%28So%20that...%20we%20can%20reflect%20the%20diverse%20populations%20we%20serve%20AND%20ensure%20everyone%20feels%20safe%2C%20respected%20%20and%20%20included%2C%20So%20that...%20we%20better%20serve%20our%20diverse%20client%20organizations%20AND%20we%20are%20a%20great%20place%20to%20work%20%29"/>
</topic>
</topic>
<topic position="1326,-642" text="Strategy 1: Recruit &amp; Retain" id="29">
<note text="Recruit%20and%20retain%20top%20talent%20commensurate%20with%20identified%20organizational%20capacity%20requirements%20"/>
<topic position="1444,-781" order="0" text="So that..." id="28">
<note text="%28So%20that...%20we%20find%20and%20keep%20good%20people%2C%20So%20that...%20they%20are%20highly%20competent%20and%20can%20work%20well%20in%20agile%20teams...%20So%20that%20we%20can%20so%20the%20best%20work%20possible%2C%20for%20the%20least%20cost%2C%20in%20the%20shortest%20time%20for%20other%20NFPs%2C%20So%20that...%20NFPs%20can%20help%20those%20who%20need%20it.%29"/>
</topic>
<topic position="1539,-742" order="1" text="Strategic Priority 1a: Recruitment" id="37">
<note text="1.%20Identify%20and%20use%20proactive%20and%20effective%20recruitment%20strategies%2C%20"/>
<topic position="1573,-752" order="0" text="Modify App Form" shrink="true" id="238">
<note text="Recently%2C%20I%20saw%20a%20few%20job%20posts%20sent%20through%20different%20community%0Agroups%20and%20they%20seem%20to%20be%20taking%20our%20idea%20of%20screening%20candidates%0Ato%20a%20next%20level.%20Not%20only%20they%20ask%20candidates%20to%20provide%20resume%20and%0Acover%20letter%20+%20some%20project%20related%20information%20but%20also%20request%0Awritten%20answers%20to%20questions%20like%20%22Why%20are%20you%20interested%20in%20this%0Aposition%22%20etc.%20That%20allows%20to%20screen%20out%20people%20who%20just%20submit%0Amultiple%20resumes%20to%20multiple%20organizations%20without%20really%20applying%0Afor%20that%20particular%20job%20and%20it%20would%20make%20our%20interview%20process%20more%0Astraightforward%2C%20knowing%20answers%20to%20some%20questions.%0A%0AFor%20example%2C%20we%20may%20want%20to%20always%20include%20in%20the%20screening%0Aquestions%3A%0A-%20Why%20do%20you%20want%20to%20work%20for%20Freeform%20Solutions%3F%0A-%20Why%20are%20you%20interested%20in%20this%20position%3F%0A-%20What%27s%20your%20experience%20working%20with%20NFP%3F%0A-%20What%27s%20your%20experience%20working%20with%20Open%20Source%20software%3F%0Aetc.%0A%0AI%20also%20saw%20that%20people%20ask%20for%20references%20up%20front%2C%20in%20that%0Asubmissions%20form.%20We%20could%20include%20the%20HR%20requirement%20that%20Heather%0Abrought%20recently%20for%20%22permissions%20to%20ask%20your%20references%20about%20you%22%0Ain%20the%20online%20form%20so%20that%20we%20don%27t%20have%20to%20follow%20up%20with%20this%0Alater.%0A%0AAttached%20below%20a%20sample%20of%20such%20screening%20questions"/>
</topic>
<topic position="1614,-728" order="1" text="Strategy integrated with hiring plan" id="299">
<note text="Hiring%20plan%20should%20be%20comprehensive...%20not%20Agile%20or%20Iterative%2C%20in%20the%20sense%20that%20staff%20capacity%20and%20skill%20needs%20should%20be%20met%20within%20at%20least%20a%20six%20month%20plan.%20%20If%20three%20Drupal%20developers%20are%20needed%2C%20the%20hiring%20should%20be%20done%20concurrently%20to%20minimize%20HR%20costs%20and%20time."/>
</topic>
</topic>
<topic position="1477,-700" order="2" text="Strategic Priority 1b: Hiring" id="39">
<note text="2.%20Continue%20to%20practice%20our%20unique%20Freeform%20hiring%20process%20that%20balances%20fit%20with%20the%20Freeform%20culture%20and%20best%20talent%20"/>
</topic>
<topic position="1487,-647" order="3" text="Strategic Priority 1c: Onboarding" id="41">
<note text=""/>
<topic position="1592,-674" order="0" text="3 Month Onboarding Process" shape="elipse" id="275"
bgColor="#adddf0"/>
<topic position="1570,-650" order="1" text="Tools &amp; Guidelines" id="277"/>
<topic position="1552,-626" order="2" text="Mentoring" id="276"/>
</topic>
<topic position="1484,-569" order="4" text="Strategic Priority 1d: Incentives" id="43">
<note text="5.%20Explore%20incentives%20-%20monetary%2C%20benefits%2C%20fulfilment%20-%20needed%20to%20encourage%20top%20talent%20to%20work%20for%20and%20remain%20working%20for%20an%20NFP"/>
<topic position="1544,-596" order="0" text="Raises" id="274"/>
<topic position="1548,-572" order="1" text="Benefits" shape="elipse" id="270" bgColor="#adddf0"/>
<topic position="1577,-548" order="2" text="Rewards Message" id="45">
<note text="Create%20a%20total%20rewards%20message%20to%20encourage%20prospective%20and%20current%20employees%20to%20understand%20the%20full%20value%20of%20working%20for%20Freeform"/>
</topic>
</topic>
<topic position="1487,-518" order="5" text="Strategic Priority 1e: Offboarding" shrink="true" id="123">
<note text="Assess%20and%20address%20reasons%20why%20talented%20people%20leave%20Freeform"/>
</topic>
</topic>
<topic position="726,413" text="Business Development Plan" shape="rounded rectagle" id="156"
fontStyle=";;#0d0826;;;" bgColor="#32e36a">
<topic position="894,401" order="0" text="Goals" id="164">
<topic position="975,422" order="0" text="Increase new clients" id="168">
<topic position="1138,409" order="0" text="Academic Research" id="171"/>
<topic position="1118,433" order="1" id="177"/>
</topic>
<topic position="978,488" order="1" text="Support New Products" id="172">
<topic position="1125,463" order="0" text="Formulize" id="179"/>
<topic position="1125,487" order="1" id="180"/>
<topic position="1125,511" order="2" id="181"/>
</topic>
<topic position="966,539" order="2" text="Support CiviCRM" id="255"/>
<topic position="976,602" order="3" text="Identify Opportunites" id="182">
<topic position="1121,565" order="0" id="183"/>
<topic position="1121,589" order="1" id="184"/>
<topic position="1121,613" order="2" id="185"/>
<topic position="1121,637" order="3" id="186"/>
</topic>
</topic>
</topic>
<topic position="-621,395" text="Hosting NG Plan" shape="rounded rectagle" id="162" fontStyle=";;#0d0826;;;"
bgColor="#32e36a"/>
<topic position="-613,99" text="Freeform IT Plan" shape="rounded rectagle" id="163" bgColor="#52e380">
<topic position="-753,68" order="0" text="Fragile" id="17" fontStyle=";;;bold;;"/>
<topic position="-749,92" order="1" text="Tools" id="259"/>
<topic position="-760,116" order="2" id="260"/>
</topic>
<topic position="-548,-87" text="Project Teams" shape="rounded rectagle" shrink="true" id="9" bgColor="#52e380">
<topic position="-668,-142" order="0" text="Projects 1-3" id="13"/>
<topic position="-668,-118" order="1" text="Projects 4-6" id="14"/>
<topic position="-672,-94" order="2" text="Projects 7 &amp; 8" id="15"/>
<topic position="-696,-70" order="3" text="General Work" id="12"/>
<topic position="-686,-46" order="4" text="Learning Needs Plan" id="11"/>
</topic>
<topic position="-532,-250" text="Restructure" shape="rounded rectagle" shrink="true" id="33" bgColor="#52e380">
<topic position="-685,-282" order="0" text="Client Centric Process" id="216"/>
<topic position="-692,-258" order="1" text="Freeform Project Process" id="217"/>
<topic position="-693,-234" order="2" text="Supportive Systems Plan" id="218"/>
</topic>
<topic position="-427,-329" text="Board and C Planning" shape="rounded rectagle" shrink="true" id="208"
bgColor="#52e380">
<topic position="-614,-384" order="0" text="Mission Statements" id="23">
<note text="In%20the%20absence%20of%20one%20clearly%20defined%20mission%20statement%2C%20we%20have%20reviewed%20various%20expressed%20mission%20statement%20as%20following%0A%0A%20%20%20%20Objects%20of%20Incorporation%20in%20Letters%20Patent%0A%20%20%20%20%20%20%20%20The%20objects%20of%20the%20Corporation%20are%3ATo%20provide%20solutions%20that%20facilitate%20the%20effective%20use%20of%20information%20technology%20in%20not-for-profit%2C%20non-governmental%2C%20and%20charitable%20organizations%20throughout%20Canada%2C%20to%20support%20and%20improve%20their%20mission%20delivery.%0A%20%20%20%202006%20Strategic%20Business%20Plan%20-%20Brand%20Positioning%0A%20%20%20%20%20%20%20%20We%20are%20a%20nonprofit%20dedicated%20to%20helping%20other%20nonprofits%20understand%20and%20employ%20technology%20appropriately%20and%20effectively%20to%20support%20their%20mission.%20Our%20mission%20is%20to%20provide%20flexible%20consulting%2C%20website%20development%2C%20and%20Internet%20hosting%20solutions%20that%20give%20you%20peace%20of%20mind%20and%20help%20you%20stay%20focused%20on%20your%20mission.%0A%20%20%20%20Freeform%20One%20Page%20%28Freeform%20Wiki%29%0A%20%20%20%20%20%20%20%20About%20Freeform%20Solutions%3A%20Freeform%20Solutions%20is%20a%20not-for-profit%20organization.%20Our%20mission%20is%20help%20%28sic%29%20other%20not-for-profits%20organizations%20to%20build%20their%20capacity%20and%20increase%20their%20effectiveness.%0A%20%20%20%20Result%20of%20Google%20search%20for%20%u201CFreeform%20Solutions%20mission%u201D%0A%20%20%20%20%20%20%20%20Freeform%20Solutions%20is%20a%20not-for-profit%20organization.%20Our%20mission%20is%20to%20help%20other%20not-for-profits%20use%20technology%20to%20build%20their%20capacity%20and%20increase%20their%20effectiveness.%20%28www.freeformsolutions.ca/en/files/AboutFreeformSolutions.pdf%0A%20%20%20%20%20%20%20%20Freeform%20Solutions%20%28www.freeformsolutions.ca%29%20is%20a%20non%20profit%20organization.%20Our%20mission%20is%20to%20help%20other%20non-profit%20organizations%20to%20realize%20their%20missions%20through%20the%20appropriate%20deployment%20of%20information%20and%20knowledge%20management%20systems.www.freeformsolutions.ca/en/sites/default/.../virtual.volunteering.pdf%0A%20%20%20%20%20%20%20%20We%20are%20a%20not-for-profit%20organization%20%28NFP%29%20that%20helps%20other%20NFPs%20use%20IT%20to%20achieve%20their%20organizational%20goals%20and%20better%20serve%20their%20communities.%20Freeform%20Solutions%20is%20a%20nonprofit%20organization%20dedicated%20to%20helping%20other%20nonprofit%20organizations%20understand%20and%20employ%20technology%20appropriately%20and%20effectively%20to%20support%20their%20missions.%20Our%20mission%20is%20to%20provide%20flexible%20consulting%2C%20website%20development%2C%20and%20hosting%20solutions%20%20http%3A//socialinnovation.ca/community/organizations/freeform-solutions%0A%20%20%20%20%20%20%20%20Freeform%20Solutions%20is%20a%20not-for-profit%20organization%2C%20with%20a%20mission%20to%20help%20other%20not-for-profits%20use%20technology%20more%20effectively%20to%20meet%20their%20own%20missions.%20http%3A//timreview.ca/article/387%0A%20%20%20%20%20%20%20%20Freeform%20Solutions%20%u2013%20their%20mission%3A%20%u201Cwe%20help%20not-for-profit%20organisations%20use%20technology%20to%20build%20their%20capacity%20and%20increase%20their%20effectiveness.%20http%3A//www.warnerlaw.ca/links/community-organisations-and-local-businesses/%0A%20%20%20%20%20%20%20%20Freeform%20Solutions%20is%20a%20not-for-profit%20organization%20with%20a%20mission%20to%20help%20other%20not-for-profits%20use%20technology%20to%20meet%20their%20goals.%20http%3A//xoops.org/modules/news/article.php%3Fstoryid%3D3860%0A%20%20%20%20%20%20%20%20At%20Freeform%20Solutions%2C%20we%20have%20a%20mission%20to%20help%20not-for-profit%20and%20public%20sector%20organizations%20use%20technology%20more%20effectively.%20http%3A//osbrca.blogspot.ca/2010/07/development-commons-approach.html%0A%20%20%20%20Freeform%20Solutions%20Facebook%20Page%0A%20%20%20%20%20%20%20%20Mission%3A%20Freeform%20Solutions%20is%20a%20not-for-profit%20organization%20%28NFP%29%20that%20helps%20other%20NFPs%20use%20IT%20to%20achieve%20their%20organizational%20goals%20and%20better%20serve%20their%20communities.%0A%20%20%20%20The%20current%20Freeform%20Solutions%20website%0A%20%20%20%20%20%20%20%20We%20started%20Freeform%20to%20help%20NFPs%20use%20IT%20to%20achieve%20their%20organizational%20goals%20and%20better%20serve%20their%20communities%20-%20to%20support%20and%20improve%20their%20mission%20delivery.%20Our%20mission%20is%20to%20strengthen%20the%20capacity%20of%20NFPs%20and%20the%20voluntary%20sector%2C%20and%20to%20help%20build%20a%20civil%20society."/>
</topic>
<topic position="-579,-360" order="1" text="Values" id="25"/>
<topic position="-594,-336" order="2" text="Bylaw Review" id="201"/>
<topic position="-581,-312" order="3" text="Policies" id="202"/>
<topic position="-592,-288" order="4" text="Business Plan" id="203"/>
</topic>
<topic position="1723,-35" text="Strategy 3: Safety and Wellness" id="91">
<note text="Strategy%20%23%203%3A%20Promote%20the%20achievement%20of%20safety%20and%20wellness%20in%20our%20virtual%20employee%20community."/>
<topic position="1995,-81" order="0" text="Strategic Priority 3a: H&amp;S Policies &amp; Practices"
shrink="true" id="108">
<note text="Continuing%20improvement%20in%20Health%20and%20Safety%20policies%20and%20practices%20%26%20compliance%20with%20OHSC%20legislation"/>
<topic position="1948,-83" order="0" id="198"/>
</topic>
<topic position="1984,-38" order="1" text="Strategic Priority 3b: Health Promotion" id="110">
<note text="Promoting%20safety%2C%20work-life%20balance%2C%20self-care%2C%20ergonomics%20and%20other%20factors%20for%20wellness%20and%20productivity%20in%20a%20virtual%20workplace%20environment"/>
<topic position="2003,-51" order="0" text="Health and Wellness Committee" id="195">
<note text="The%20Freeform%20H%26S%20rep%20will%20lead%20a%20Health%20and%20Wellness%20Committee%20to%20%20responsible%20for%20recognizing%20health%20and%20safety%20concerns%20and%20identifying%20solutions."/>
</topic>
<topic position="1992,-27" order="1" text="Work-life Balance Initiative" id="197">
<link url="http://hrcouncil.ca/hr-toolkit/workplaces-health-safety.cfm"/>
</topic>
</topic>
<topic position="1933,0" order="2" text="So that..." id="106">
<icon id="object_rainbow"/>
<note text="%28So%20that...%20our%20employees%20remain%20well%20and%20safe%2C%20So%20that...%20they%20are%20highly%20competent%20and%20can%20work%20well%20in%20agile%20teams%20and%20feel%20fulfilled%20and%20self%20actualized...%20So%20that%20we%20can%20so%20the%20best%20work%20possible%2C%20for%20the%20least%20cost%2C%20in%20the%20shortest%20time%20for%20other%20NFPs%2C%20So%20that...%20NFPs%20can%20help%20those%20who%20need%20it.%29"/>
</topic>
</topic>
<topic position="2267,-485" text="Benefits" shape="elipse" id="130" bgColor="#c2eaf0">
<note text="As%20Freeform%20Employees%20we%20will%20have%20benefits%20reviewed%20in%20light%20of%20our%20priorities%20and%20cost%20to%20Freeform"/>
<topic position="2419,-579" order="0" text="As Freeform Staff" id="144">
<icon id="people_group"/>
</topic>
<topic position="2421,-553" order="1" text="Responsibility: HZ, JC" id="131"/>
<topic position="2403,-527" order="2" text="Release 3" id="141">
<icon id="time_calendar"/>
</topic>
<topic position="2514,-503" order="3" text="Have Heather create list benefits against Best Practice &amp; cost"
shape="rounded rectagle" id="132">
<icon id="tick_tick"/>
</topic>
<topic position="2430,-479" order="4" text="Have Jason review list" id="133">
<icon id="tag_green"/>
</topic>
<topic position="2449,-455" order="5" text="Have JC &amp; HZ consult with staff" id="134">
<icon id="tag_orange"/>
</topic>
<topic position="2453,-431" order="6" text="Have best benefits we can afford" id="140">
<icon id="tag_red"/>
</topic>
<topic position="2408,-407" order="7" text="So that..." id="142">
<icon id="object_rainbow"/>
<note text="%20so%20that%20our%20efforts%20to%20excel%20are%20rewarded."/>
</topic>
</topic>
<topic position="607,-489" text="Community Outreach Plan" shape="rounded rectagle" id="248" fontStyle=";8;;bold;;"
bgColor="#51e898">
<topic position="775,-545" order="0" text="Goals" id="285"/>
<topic position="770,-521" order="1" text="CSI" id="249"/>
<topic position="802,-497" order="2" text="Drupal Community" id="250"/>
<topic position="780,-473" order="3" text="CiviCRM" id="251"/>
<topic position="774,-449" order="4" text="Other" id="252"/>
</topic>
<topic position="469,-596" text="Backlog Plan" shape="rounded rectagle" id="215" fontStyle=";;;bold;;"
bgColor="#2ee668">
<link url="https://docs.google.com/a/freeform.ca/drawings/d/1mrtkVAN3_XefJJCgfxw4Va6xk9TVDBKXDt_uzyIF4Us/edit"/>
<topic position="645,-605" order="0" text="Go To Backlog Plan " shape="rectagle" id="286" bgColor="#e8da6d">
<icon id="funy_glasses"/>
<link url="https://docs.google.com/a/freeform.ca/drawings/d/1mrtkVAN3_XefJJCgfxw4Va6xk9TVDBKXDt_uzyIF4Us/edit"/>
</topic>
</topic>
<topic position="1460,394" text="Strategy Prospecting" id="167">
<topic position="1617,372" order="0" id="170"/>
<topic position="1617,396" order="1" id="175"/>
<topic position="1617,420" order="2" id="176"/>
</topic>
<topic position="1459,314" text="Stategies: Forecasting" id="166">
<topic position="1620,292" order="0" id="169"/>
<topic position="1620,316" order="1" id="173"/>
<topic position="1620,340" order="2" id="174"/>
</topic>
<topic position="1461,480" text="Strategies Marketing" id="2" fontStyle=";;;normal;;"/>
<topic position="-460,698" id="267"/>
<topic position="1867,-359" text="Exit Interviews" shape="elipse" id="220" fontStyle=";6;;;;">
<topic position="2010,-416" order="0" text="As Freeform" id="232">
<icon id="people_group"/>
</topic>
<topic position="2022,-392" order="1" text="Responsiblity: HZ, KS" id="233"/>
<topic position="2001,-368" order="2" text="Release" id="234">
<icon id="time_hourglass"/>
</topic>
<topic position="2100,-344" order="3" text="Have Heather write procedures for exit interview process" id="235"/>
<topic position="2006,-320" order="4" text="So that" id="236">
<icon id="object_rainbow"/>
<note text="We%20learn%20from%20our%20mistakes%20and%20missed%20opportunities%20in%20future%20with%20the%20goal%20of%20keeping%20the%20best%20talent."/>
</topic>
</topic>
<topic position="2250,-634" text="3 Month Onboarding Process" shape="elipse" id="298" bgColor="#adddf0"/>
<topic position="558,-26" text="Human Resources Plan" shape="rounded rectagle" id="6" fontStyle=";;#0d0826;bold;;"
bgColor="#32e36a">
<topic position="694,-284" order="0" text="Related Org Objectives" id="287" fontStyle=";;;bold;;">
<topic position="772,-321" order="0" text="1" id="288">
<note text="Attract%2C%20build%20and%20retain%20a%20motivated%2C%20agile%2C%20knowledgeable%20team%20of%20Top%20Talent%20that%20loves%20to%20%u201Ccome%u201D%20to%20work"/>
</topic>
<topic position="772,-297" order="1" text="2" id="289">
<note text="Maintain%20level%20of%20human%20resource%20capacity%20and%20skill%20to%20meet%20planned%20growth%20and%20client%20contractual%20commitments"/>
</topic>
<topic position="772,-273" order="2" text="3" id="290">
<note text="Conform%20to%20all%20legislated%20requirements"/>
</topic>
<topic position="772,-249" order="3" text="4" id="291">
<note text="Minimize%20and%20mitigate%20risk%20to%20the%20organization"/>
</topic>
</topic>
<topic position="695,-221" order="1" text="Related Documents" id="294" fontStyle=";;;bold;;">
<note text="MIssion%2C%20Values%2C%20Principles%2C%20Org%20Business%20Plan%2C%20Human%20Resources%20Policy%20Manual"/>
</topic>
<topic position="663,29" order="2" text="Goals" id="30" fontStyle=";;;bold;;">
<topic position="844,-153" order="0" text="Goal:Staff=Optimal Bus. Growth" id="104">
<icon id="sport_football"/>
<note text="Human%20resource%20capacity%20will%20remain%20at%20a%20level%20to%20%20meet%20planned%20growth%20growth%20objectives%20and%20client%20contractual%20commitments"/>
<topic position="1030,-193" order="0" text="So that..." id="124">
<icon id="object_rainbow"/>
</topic>
<topic position="1062,-169" order="1" text="Related Strategic Priorities: " id="125"/>
<topic position="1090,-145" order="2" text="KPI: HR Level equals Planned Growth" id="126">
<icon id="chart_bar"/>
</topic>
<topic position="1038,-118" order="3" text="Methodology" id="99">
<note text="Schedule%20of%20required%20HR%20capacity%20vs.%20actual%20HR%20capacity.%20%20Variance%20+%20or%20-%201"/>
<topic position="1172,-119" order="0" text="Target" id="100">
<note text="%3D%20+%20or%20-%201"/>
</topic>
</topic>
</topic>
<topic position="835,-38" order="1" text="Goal: Increase Job Satisfaction" id="49">
<icon id="sport_football"/>
<topic position="1016,-85" order="0" text="So That" id="59">
<icon id="object_rainbow"/>
<note text="%20%20%20%20Establish%20better%20relationships.%0A%20%20%20%20Identify%20with%20the%20new%20employer.%0A%20%20%20%20Build%20a%20great%20attitude%20with%20the%20company."/>
</topic>
<topic position="1043,-57" order="1" text="Related Strategic Priorities" shrink="true" id="86">
<topic position="1199,-59" order="0" id="90"/>
</topic>
<topic position="1051,-26" order="2" text="KPI: Employee Satisfaction" id="50">
<icon id="chart_bar"/>
<topic position="1214,-27" order="0" id="303"/>
</topic>
<topic position="1021,4" order="3" text="Methodology" id="128">
<note text="Percentage%20of%20improvement%20in%20employee%20reported%20job%20satisfaction%20based%20on%20survey%20vs%20previous%20year.%20%20Base%20level%20to%20be%20established%20in%20first%20year.%20"/>
<topic position="1155,3" order="0" text="Target" id="129">
<note text="Base%20level%201st%20%20year"/>
</topic>
</topic>
</topic>
<topic position="834,77" order="2" text="Goal: Improve Performance" id="51">
<icon id="sport_football"/>
<note text="To%20increase%20knowledge%2C%20skills%20and%20experience%20of%20the%20Freeform%20staff%20relevant%20to%20organizational%20priorities."/>
<topic position="1013,37" order="0" text="So That" id="60">
<icon id="object_rainbow"/>
<note text="%20%20%20%20Clarify%20expectations.%0A%20%20%20%20Understand%20values%20and%20priorities.%0A%20%20%20%20Decrease%20the%20learning%20curve."/>
</topic>
<topic position="1047,61" order="1" text="Related Strategic Priorities" id="87">
<note text="1"/>
</topic>
<topic position="1050,85" order="2" text="KPI: Employee Performance" id="61">
<icon id="chart_bar"/>
</topic>
<topic position="1011,112" order="3" text="Methodology" id="80">
<topic position="1131,111" order="0" text="Target" id="102"/>
</topic>
</topic>
<topic position="824,186" order="3" text="Goal: Reduce Turnover" id="52">
<icon id="sport_football"/>
<note text="To%20reduce%20turnover%20of%20Top%20Talent."/>
<topic position="994,145" order="0" text="So That" id="62">
<icon id="object_rainbow"/>
<note text="%20%20%20%20Provide%20support%20through%20feedback.%0A%20%20%20%20Help%20the%20employee%20feel%20valued.%0A%20%20%20%20Again%2C%20decrease%20the%20learning%20curve."/>
</topic>
<topic position="1021,169" order="1" text="Related Strategic Priorities" id="88"/>
<topic position="1014,193" order="2" text="KPI: Retention Rate" id="63">
<icon id="chart_bar"/>
</topic>
<topic position="992,221" order="3" text="Methodology" shrink="true" id="98">
<topic position="1112,219" order="0" text="Target" id="101"/>
</topic>
</topic>
<topic position="814,253" order="4" text="Risk &amp; Compliance" id="246">
<icon id="sport_football"/>
<note text="To%20eliminate%20or%20minimize%20risk%20and%20to%20comply%20with%20all%20legislated%20requirements.%20%20"/>
</topic>
</topic>
</topic>
<relationship srcTopicId="154" destTopicId="6" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="4" destTopicId="156" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="16" destTopicId="162" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="31" destTopicId="91" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="91" destTopicId="105" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="10" destTopicId="163" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="204" destTopicId="9" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="204" destTopicId="33" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="206" destTopicId="208" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="18" destTopicId="215" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="91" destTopicId="105" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="91" destTopicId="105" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="247" destTopicId="248" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="156" destTopicId="166" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="166" destTopicId="167" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="167" destTopicId="2" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="270" destTopicId="130" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="275" destTopicId="298" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="123" destTopicId="220" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="6" destTopicId="29" lineType="3" endArrow="true" startArrow="false"/>
<relationship srcTopicId="29" destTopicId="31" lineType="3" endArrow="true" startArrow="false"/>
</map>

View File

@ -32,7 +32,6 @@ CHANGE_LANGUAGE=Change Language
FAQ=Frequent Asked Questions FAQ=Frequent Asked Questions
SHORT_FAQ=FAQ SHORT_FAQ=FAQ
LOGIN=Login LOGIN=Login
SUBJECT=Subject
MSG=Message MSG=Message
PROBLEM_DETAIL=Description PROBLEM_DETAIL=Description
EXPORT=Export EXPORT=Export
@ -49,7 +48,6 @@ DELETE=Delete
EDITOR.ERROR_LOADING=An unexpected error has occurred initializing this page. <br/>We'll solve this problem as soon as possible. Please, click <a href="maps/">here</a> to return to your mindmap list. EDITOR.ERROR_LOADING=An unexpected error has occurred initializing this page. <br/>We'll solve this problem as soon as possible. Please, click <a href="maps/">here</a> to return to your mindmap list.
SITE.TITLE=WiseMapping SITE.TITLE=WiseMapping
SITE.SLOGAN=Visual Thinking Evolution SITE.SLOGAN=Visual Thinking Evolution
SAVE=Save
DISCARD_CHANGES=Discard Changes DISCARD_CHANGES=Discard Changes
KEYBOARD=Keyboard Shortcuts KEYBOARD=Keyboard Shortcuts
KEYBOARD_MSG=These are the keyboard shortcuts you can use in the editor! KEYBOARD_MSG=These are the keyboard shortcuts you can use in the editor!
@ -72,22 +70,14 @@ REGISTRATION_TITLE_MSG=Please, fill the fields and become a member of WiseMappin
CAPTCHA_ERROR=Enter the letters as they are shown in the image above. CAPTCHA_ERROR=Enter the letters as they are shown in the image above.
CREATOR=Creator CREATOR=Creator
CREATION_TIME=Creation Time CREATION_TIME=Creation Time
STATE=State
EDITORS=Editors EDITORS=Editors
VIEWER=Viewer
PRIVATE=Private
PUBLIC=Public PUBLIC=Public
SHARED=Shared SHARED=Shared
ONLY_VIEW_PRIVATE = This mindmap can be viewed by you only. ONLY_VIEW_PRIVATE = This mindmap can be viewed by you only.
ALL_VIEW_PUBLIC = This mindmap can be viewed by any user. ALL_VIEW_PUBLIC = This mindmap can be viewed by any user.
NEW_MAP_MSG=Create a new map NEW_MAP_MSG=Create a new map
TAG=Tag
PUBLISH=Publish PUBLISH=Publish
PUBLISH_MSG = What about using your maps in sites and blogs?
PUBLISH_DETAILS=By publishing the map you make it visible to everyone on the Internet. PUBLISH_DETAILS=By publishing the map you make it visible to everyone on the Internet.
DETAIL=Detail
INSERT=Insert
ACCOUNT_DETAIL=Do you want to change you user options?. Here is the place. ACCOUNT_DETAIL=Do you want to change you user options?. Here is the place.
SVG_EXPORT_FORMAT_DETAILS=Scalable Vector Graphics (SVG) is an XML markup language for describing two-dimensional vector graphics. This format will enable you to print your maps without quality lost at any resolution. SVG_EXPORT_FORMAT_DETAILS=Scalable Vector Graphics (SVG) is an XML markup language for describing two-dimensional vector graphics. This format will enable you to print your maps without quality lost at any resolution.
PDF_EXPORT_FORMAT_DETAILS=Get your map as Portable Document Format(PDF) to share use in your presentations. PDF_EXPORT_FORMAT_DETAILS=Get your map as Portable Document Format(PDF) to share use in your presentations.
@ -108,34 +98,11 @@ DIRECT_LINK=Direct Link
BLOG_INCLUSION=You can customize the code snippet to embed this map on your blog or website. Make sure you enter the correct dimensions of the content area of your blog so that the map fits nicely BLOG_INCLUSION=You can customize the code snippet to embed this map on your blog or website. Make sure you enter the correct dimensions of the content area of your blog so that the map fits nicely
BLOG_SNIPPET=Copy this snippet of code to embed in your blog or page BLOG_SNIPPET=Copy this snippet of code to embed in your blog or page
ZOOM=Zoom ZOOM=Zoom
ZOOM_IN=Zoom In
ZOOM_OUT=Zoom Out
HISTORY=History HISTORY=History
TOPIC=Topic
TOPIC_BACKGROUND_COLOR=Topic Background Color
TOPIC_BORDER_COLOR=Topic Border Color
BORDER_COLOR=Border Color
BORDER=Border
TOPIC_SHAPE=Topic Shape
SHAPE=Shape
TOPIC_ADD=Add Topic
TOPIC_DELETE=Delete Topic
TOPIC_ICON=Add Icon
ICON=Icon
TOPIC_LINK=Add Link
LINK=Link LINK=Link
TOPIC_RELATIONSHIP=Relationship
RELATION=Relationship
TOPIC_NOTE=Add Note
NOTE=Note
FONT=Font
FONT_TYPE=Font Type
TYPE=Type TYPE=Type
FONT_SIZE=Font Size
SIZE=Size SIZE=Size
FONT_BOLD=Bold
BOLD=Bold BOLD=Bold
FONT_ITALIC=Italic
ITALIC=Italic ITALIC=Italic
FONT_COLOR=Font Color FONT_COLOR=Font Color
COLOR=Color COLOR=Color
@ -156,10 +123,6 @@ CONTACT=Contact
ACCOUNT_ACTIVED= Your account has been activated ACCOUNT_ACTIVED= Your account has been activated
ACCOUNT_ACTIVED_FAIL = Account Activation Failed ACCOUNT_ACTIVED_FAIL = Account Activation Failed
UNDO_EDITION=Undo Edition
UNDO=Undo
REDO_EDITION=Redo Edition
REDO=Redo
NO_HISTORY_RESULTS= No history information available. NO_HISTORY_RESULTS= No history information available.
REVERT=revert REVERT=revert
INVALID_EMAIL_ERROR = The e-mail was not verified INVALID_EMAIL_ERROR = The e-mail was not verified

View File

@ -29,7 +29,6 @@ CHANGE_PASSWORD=Cambiar la Contrase\u00f1a
FAQ=Preguntas Frecuentes FAQ=Preguntas Frecuentes
SHORT_FAQ=FAQ SHORT_FAQ=FAQ
LOGIN=Entrar LOGIN=Entrar
MSG=Mensaje
MIND_FILE=Archivo MIND_FILE=Archivo
EXPORT=Exportar EXPORT=Exportar
SVG_EXPORT_FORMAT=Scalable Vector Graphics (SVG) SVG_EXPORT_FORMAT=Scalable Vector Graphics (SVG)
@ -38,9 +37,6 @@ IMG_EXPORT_FORMAT=Imagen (PNG/JPEG)
FREEMIND_EXPORT_FORMAT = Freemind (version 0.9.0) FREEMIND_EXPORT_FORMAT = Freemind (version 0.9.0)
STATUS=Estado STATUS=Estado
DELETE=Borrar DELETE=Borrar
SAVE=Guardar
DISCARD_CHANGES=Descartar cambios
ABOUT=Acerca
LOGIN_ERROR=El nombre de usuario o la contrase\u00f1a introducidos no son correctos. LOGIN_ERROR=El nombre de usuario o la contrase\u00f1a introducidos no son correctos.
USER_INACTIVE=Disculpe, su cuenta aun no ha sido activada. Usted recibira una notificaci&oacute;n por email tan pronto la activemos. USER_INACTIVE=Disculpe, su cuenta aun no ha sido activada. Usted recibira una notificaci&oacute;n por email tan pronto la activemos.
CREW=The Crew CREW=The Crew
@ -58,7 +54,6 @@ REGISTRATION_TITLE_MSG=Complete el siguiente formulario para convertirse en un m
CAPTCHA_ERROR=Enter the letters as they are shown in the image above. CAPTCHA_ERROR=Enter the letters as they are shown in the image above.
CREATOR=Creador CREATOR=Creador
CREATION_TIME=Fecha de creaci&oacute;n CREATION_TIME=Fecha de creaci&oacute;n
STATE=Estado
EDITORS=Editores EDITORS=Editores
PUBLIC=P&uacute;blico PUBLIC=P&uacute;blico
SHARED=Compartido SHARED=Compartido
@ -67,7 +62,6 @@ ALL_VIEW_PUBLIC = Este documento puede ser visualizado por cualquier usuario.
NEW_MAP_MSG=Crear un nuevo mapa NEW_MAP_MSG=Crear un nuevo mapa
PUBLISH=Publicar PUBLISH=Publicar
PUBLISH_DETAILS=Publicando el mapa hara que el mismo sea visible por cualquier persona que utlice Internet. Copie el c&oacute;digo de abajo para integrar el mapa con su sitio web o blog. PUBLISH_DETAILS=Publicando el mapa hara que el mismo sea visible por cualquier persona que utlice Internet. Copie el c&oacute;digo de abajo para integrar el mapa con su sitio web o blog.
INSERT=Insertar
ACCOUNT_DETAIL=Desea cambiar sus preferencias? Este es el lugar. ACCOUNT_DETAIL=Desea cambiar sus preferencias? Este es el lugar.
SVG_EXPORT_FORMAT_DETAILS=Scalable Vector Graphics (SVG) es un XML markup language para describir gr\u00e1ficos vectoriale de dos dimensiones. Este formato le permitira imprimir sus mapas sin perdida de calidad o resoluci&oacute;n. SVG_EXPORT_FORMAT_DETAILS=Scalable Vector Graphics (SVG) es un XML markup language para describir gr\u00e1ficos vectoriale de dos dimensiones. Este formato le permitira imprimir sus mapas sin perdida de calidad o resoluci&oacute;n.
PDF_EXPORT_FORMAT_DETAILS=Obtenga su mapa como un documento (PDF) para compartirlo y usarlo en sus presentaciones. PDF_EXPORT_FORMAT_DETAILS=Obtenga su mapa como un documento (PDF) para compartirlo y usarlo en sus presentaciones.
@ -76,7 +70,6 @@ FREEMIND_EXPORT_FORMAT_DETAILS = FreeMind un aplicaci&oacute;n de escritorio gra
TERMSOFUSE=T&eacute;rminos de uso TERMSOFUSE=T&eacute;rminos de uso
PRIVACYPOLICY= Politica de privacidad PRIVACYPOLICY= Politica de privacidad
EXPORT_DETAILS=Exporte el mapa en el formato que desee y comience a utlizarlo en sus presentaciones EXPORT_DETAILS=Exporte el mapa en el formato que desee y comience a utlizarlo en sus presentaciones
DETAILS=Detalles
WHO_ARE_WE=Quienes somos? WHO_ARE_WE=Quienes somos?
MEMBERS=Miembros MEMBERS=Miembros
WELCOME=Bienvenido WELCOME=Bienvenido
@ -89,25 +82,6 @@ DIRECT_LINK=Enlace directo
BLOG_INCLUSION=Para incluirlo en blogs y web pages BLOG_INCLUSION=Para incluirlo en blogs y web pages
ZOOM=Zoom ZOOM=Zoom
ZOOM_IN=Acercar
ZOOM_OUT=Alejar
TOPIC=T&oacute;pico
TOPIC_BACKGROUND_COLOR=Color de fondo del t&oacute;pico
TOPIC_BORDER_COLOR=Color del borde de t&oacute;pico
TOPIC_SHAPE=Forma del t&oacute;pico
TOPIC_ADD=Agregar t&oacute;pico
TOPIC_DELETE=Borrar t&oacute;pico
TOPIC_ICON=Agregar Icono
TOPIC_LINK=Agregar Enlace
TOPIC_NOTE=Agregar Nota
FONT=Fuente
FONT_TYPE=Tipo de fuente
FONT_SIZE=Tamano de fuente
FONT_BOLD=Negrita
FONT_ITALIC=Italica
FONT_COLOR=Color de texto
UNEXPECTED_ERROR=Outch!!. Un error inesperado ha ocurrido UNEXPECTED_ERROR=Outch!!. Un error inesperado ha ocurrido
UNEXPECTED_ERROR_DETAILS=Disculpas, un error ha ocurrido y no podremos procesar su pedido. Por favor intente nuevamente o vaya a la pagina de inico. UNEXPECTED_ERROR_DETAILS=Disculpas, un error ha ocurrido y no podremos procesar su pedido. Por favor intente nuevamente o vaya a la pagina de inico.
NO_ENOUGH_PERMISSIONS=Outch!!. EL mapa buscado no se encuentra disponible. NO_ENOUGH_PERMISSIONS=Outch!!. EL mapa buscado no se encuentra disponible.
@ -125,8 +99,6 @@ CONTACT=Contacto
KEYBOARD=Atajos de Teclado KEYBOARD=Atajos de Teclado
KEYBOARD_MSG=Estos son los atajos de teclado que puede utilizar en el editor! KEYBOARD_MSG=Estos son los atajos de teclado que puede utilizar en el editor!
UNDO_EDITION=Undo Edition
REDO_EDITION=Redo Edition
REVERT=revertir REVERT=revertir
EXPORT_FORMAT_RESTRICTIONS=Important: Exporting to Image, PDF or SVG is available only in the editor toolbar. EXPORT_FORMAT_RESTRICTIONS=Important: Exporting to Image, PDF or SVG is available only in the editor toolbar.
STARRED=Importantes STARRED=Importantes
@ -140,11 +112,8 @@ CHANGE_PASSWORD_SUCCESS=Contrase\u00f1a cambiada exitosamente
CONFIRM_NEW_PASSWORD=Confirmar Contrase\u00f1a CONFIRM_NEW_PASSWORD=Confirmar Contrase\u00f1a
COPYRIGHT=Impulsado por WiseMapping COPYRIGHT=Impulsado por WiseMapping
UNEXPECTED_ERROR_SERVER_ERROR=Lo sentimos, un error ha ocurrido y no es posible procesar su pedido. Recargue la p\u00e1gina y intentolo nuevamente. Si el problema persiste, contactenos a support@wisemapping.com UNEXPECTED_ERROR_SERVER_ERROR=Lo sentimos, un error ha ocurrido y no es posible procesar su pedido. Recargue la p\u00e1gina y intentolo nuevamente. Si el problema persiste, contactenos a support@wisemapping.com
UNDO=Rehacer
TYPE=Tipo TYPE=Tipo
NOTE=Nota
SHARE=Compartir SHARE=Compartir
SHAPE=Figura
SEND_ME_A_NEW_PASSWORD=Enviar Nueva Contrase\u00f1a SEND_ME_A_NEW_PASSWORD=Enviar Nueva Contrase\u00f1a
ALL_MAPS=Todos ALL_MAPS=Todos
CREATE=Crear CREATE=Crear
@ -214,9 +183,8 @@ BROWSER_RECOMMENDATION=Browsers are listed based on performance and hours of tes
BROWSER_NOT_SUPPORTED_TITLE=Ups\!\!\!. Su navegador no esta soportado BROWSER_NOT_SUPPORTED_TITLE=Ups\!\!\!. Su navegador no esta soportado
BROWSER_NOT_SUPPORTED_MSG=El navegador que esta usando no ha sido probado extensivamente y es posible que no sea completamente funcional con el sitio. WiseMapping ha sido optimizado para: BROWSER_NOT_SUPPORTED_MSG=El navegador que esta usando no ha sido probado extensivamente y es posible que no sea completamente funcional con el sitio. WiseMapping ha sido optimizado para:
BROWSER_NOT_SUPPORTED_TRY_AGAIN=Por favor, intente nuevamente con alguno de los browsers previamente listados. BROWSER_NOT_SUPPORTED_TRY_AGAIN=Por favor, intente nuevamente con alguno de los browsers previamente listados.
INSTALL_CFG=Disculpe, Microsoft Internet Explorer 8 esta parcialmente soportado INSTALL_CFG=Disculpe, Microsoft Internet Explorer 8 esta parcialmente soportado
INSTALL_CFG_REASON = Microsoft Internet Explorer 8 soporta parcialmente HTML 5 y SVG. SVG es la tecnolog\u00eda que WiseMapping usa para el editor de mapas. Le recomendamos que actualice a Microsoft Internet Explorer 9 o utilice otro navegador como ser Google Chrome, Firefox o Safari. INSTALL_CFG_REASON = Microsoft Internet Explorer 8 soporta parcialmente HTML 5 y SVG. SVG es la tecnolog\u00eda que WiseMapping usa para el editor de mapas. Le recomendamos que actualice a Microsoft Internet Explorer 9 o utilice otro navegador como ser Google Chrome, Firefox o Safari.
INSTALL_CFG_CLICK_HERE=Si desea seguir utilizando Internet Explorer 8, haga click ac\u00e1 para instalar Google Chrome Frame Plugin. Google Chrome Frame Plugin extiende las capaciadades de Internet Explorer con HTML 5. INSTALL_CFG_CLICK_HERE=Si desea seguir utilizando Internet Explorer 8, haga click ac\u00e1 para instalar Google Chrome Frame Plugin. Google Chrome Frame Plugin extiende las capaciadades de Internet Explorer con HTML 5.
HERE=aqu\u00ed HERE=aqu\u00ed
BOLD=Negrita

View File

@ -50,7 +50,7 @@ solid black" src="${baseUrl}/c/maps/${mindmap.id}/embed?zoom=1"&gt; &lt;/iframe&
</div> </div>
<div class="tab-pane fade" id="publicUrlTab"> <div class="tab-pane fade" id="publicUrlTab">
<spring:message code="URL"/>: <spring:message code="DIRECT_LINK"/>:
<input name="url" value="${baseUrl}/c/maps/${mindmap.id}/public" <input name="url" value="${baseUrl}/c/maps/${mindmap.id}/public"
style="width:400px" style="width:400px"
readonly="readonly"/> readonly="readonly"/>