Commit 35e28e86 authored by  JosephK's avatar JosephK

Diff Framindmap 4.0.2 / Wisemapping 4.0.3

parent 554b1b33
/* HEADER STYLES */
html,body {
margin: 0;
padding: 0;
height: 100%;
}
body {
background:#eee;
}
.ombre {
background:#fff;
-webkit-box-shadow: -4px 6px 9px rgba(50, 50, 50, 0.5);
-moz-box-shadow: -4px 6px 9px rgba(50, 50, 50, 0.5);
box-shadow: -4px 6px 9px rgba(50, 50, 50, 0.5);
margin-bottom: 20px;
}
.trait {
background-color: #EEE;
height: 11px;
margin:15px 0px;
border:none;
}
#map-table {
margin-left:-10px;
}
main, header, footer {
padding : 10px 30px;
}
main {
padding-bottom:25px;
}
.jumbotron {
background:transparent;
}
#header {
margin-top: 0;
/* height: 78px;
width: 100%;*/
background: transparent;
/* border-bottom: 1px solid #bbb4d6;
position: absolute;
top: 0;
left: 0;*/
}
#headerToolbar {
height: 35px;
/* width: 100%;
background-color: #171a17;
border-top: 1px solid #999999;
border-bottom: 1px solid #424141;*/
color: #666;
}
#headerContent {
/* width: 800px;
height: 78px;*/
position: relative;
top: 0;
left: 0;
margin: auto;
}
#headerLogo {
margin-top: 23px;
height: 80px;
width: 160px;
background: url("../images/logo-medium.png") no-repeat;
position: absolute;
top: 0;
left: -50px;
}
#headerContent h1 {
font-family: "DejaVu Sans","Verdana","Geneva","sans serif";
font-weight: bold;
font-size:50px;
}
#headerContent a {
text-decoration:none;
}
#headerButtons {
position: absolute;
top: 65px;
left: 150px;
}
#aboutLink, #faqLink, #feedbackLink, #logoutLink {
float: right;
z-index: 300;
}
div#headerButtons a {
float: left;
color: #666;
padding: 0 10px;
text-decoration: none;
font-weight: bold;
font-size: 120%;
white-space: nowrap;
}
div#headerTitle {
float: left;
font-weight: bold;
font-size: 15px;
margin-right: 5px;
margin-left: 5px;
}
span#headerSubTitle {
font-weight: lighter;
font-size: 12px;
}
div#headerButtons a:hover {
/*text-decoration: underline;*/
color: #777;
}
div#headerButtons activelink a, div#headerButtons activelink a:hover {
text-decoration: none;
border-top: 0;
border-bottom: 0;
}
#headerLogo {
cursor: pointer;
}
div#headerActions {
padding: 7px 0;
/* position: absolute;
right: 0;
z-index: 50;
margin-right: 80px;*/
text-align:right;
color:#767676;
margin-right:-15px;
}
div#headerActions a {
color:#666;
padding:10px 15px;
text-decoration:none;
font-weight:bold;
}
div#headerActions a:hover,
div#headerActions a:focus {
color: white;
background-color:#767676;
text-decoration:none;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
<%@page pageEncoding="UTF-8" %>
<%@include file="/jsp/init.jsp" %>
<div>
<ul class="nav nav-tabs">
<c:if test="${principal.databaseSchema}">
<li class="active"><a href="#changeUserPanel" data-toggle="pill"><spring:message code="GENERAL"/></a></li>
<li><a href="#changePasswordPanel" data-toggle="pill"><spring:message code="SECURITY"/></a></li>
</c:if>
<li><a href="#languagePanel" data-toggle="pill"><spring:message code="LANGUAGE"/></a></li>
<c:if test="${principal.databaseSchema}">
<li><a href="#deleteAccountPanel" data-toggle="pill">Supprimer mon compte</a></li>
</c:if>
</ul>
<div class="tab-content" style="padding-top:15px;">
<div class="tab-pane fade ${principal.databaseSchema?'active in':''}" id="changeUserPanel">
<div id="changeInfoMsg" class="alert"></div>
<form action="#" method="POST" id="changeUserForm" class="form-horizontal">
<fieldset>
<div class="form-group">
<label for="email" class="col-md-3 control-label"><strong><spring:message
code="EMAIL"/>:</strong></label>
<div class="col-md-8">
<input type="text" name="password" id="email" required="required" class="form-control"
readonly="readonly" value="${user.email}"/>
</div>
</div>
<div class="form-group">
<label for="firstname" class="col-md-3 control-label"><strong><spring:message code="FIRSTNAME"/>:</strong></label>
<div class="col-md-8">
<input type="text" name="firstname" id="firstname" required="required" class="form-control"
value="${user.firstname}"/>
</div>
</div>
<div class="form-group">
<label for="lastname" class="col-md-3 control-label"><strong><spring:message
code="LASTNAME"/>:</strong></label>
<div class="col-md-8">
<input type="text" name="lastname" id="lastname" required="required" class="form-control"
value="${user.lastname}"/>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-8 col-md-2">
<input type="submit" id="changeUserInfoBtn" class="btn btn-primary" class="form-control"
value="<spring:message code="SAVE_CHANGES"/>"/>
</div>
</div>
</fieldset>
</form>
</div>
<div class="tab-pane fade" id="changePasswordPanel">
<div id="changePasswordMsg" class="alert">
</div>
<form action="#" method="POST" id="changePasswordForm" class="form-horizontal">
<fieldset>
<div class="form-group">
<label for="password" class="col-md-3 control-label"><strong><spring:message
code="NEW_PASSWORD"/>:</strong></label>
<div class="col-md-8">
<input type="password" name="password" id="password" required="required"
class="form-control"/>
</div>
</div>
<div class="form-group">
<label for="repassword" class="col-md-3 control-label"><strong><spring:message
code="CONFIRM_NEW_PASSWORD"/>:</strong></label>
<div class="col-md-8">
<input type="password" name="password" id="repassword" required="required"
class="form-control"/>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-8 col-md-2">
<input type="submit" id="changePasswordBtn" class="btn btn-primary"
value="<spring:message code="CHANGE_PASSWORD"/>"/>
</div>
</div>
</fieldset>
</form>
</div>
<div class="tab-pane fade ${principal.databaseSchema?'':'active in'}" id="languagePanel">
<div id="languageMsg" class="alert">
</div>
<form action="#" method="POST" id="languageForm" class="form-horizontal">
<div class="form-group">
<label for="language" class="col-md-3 control-label"><strong><spring:message
code="LANGUAGE"/>:</strong></label>
<div class="col-md-8">
<select name="language" id="language" class="form-control">
<option value="en">English</option>
<option value="es" <c:if test="${user.locale=='es'}">selected="selected" </c:if>>Spanish -
español
</option>
<option value="fr" <c:if test="${user.locale=='fr'}">selected="selected" </c:if>>French -
français
</option>
<option value="de" <c:if test="${user.locale=='de'}">selected="selected" </c:if>>German -
Deutsch
</option>
<option value="it" <c:if test="${user.locale=='it'}">selected="selected" </c:if>>Italian -
italiano
</option>
<option value="pt_BR" <c:if test="${user.locale=='pt_BR'}">selected="selected" </c:if>>
Portuguese
(Brazil) - português (Brasil)
</option>
<option value="zh_CN" <c:if test="${user.locale=='zh_CN'}">selected="selected" </c:if>>
Chinese
(Simplified Han) - 中文(简体中文)
</option>
<option value="zh_TW" <c:if test="${user.locale=='zh_TW'}">selected="selected" </c:if>>
Chinese
(Traditional Han) - 中文 (繁體中文)
</option>
<option value="ca" <c:if test="${user.locale=='ca'}">selected="selected" </c:if>>Catalan -
català
</option>
</select></div>
</div>
<div class="form-group">
<div class="col-md-offset-8 col-md-2">
<input type="submit" id="changeLanguageBtn" class="btn btn-primary"
value="<spring:message code="CHANGE_LANGUAGE"/>"/>
</div>
</div>
</form>
</div>
<div class="tab-pane fade" id="deleteAccountPanel">
<div id="deleteAccountMsg" class="alert alert-danger" style="display: block;">
Si vous ne souhaitez plus utiliser votre compte Framindmap, vous pouvez le supprimer ici.
Sachez cependant qu'une fois que vous aurez supprimé votre compte, vous ne pourrez plus récupérer vos cartes ni les consulter.
<br /><br />
Pour supprimer votre compte, cochez la case ci-dessous et cliquez sur le bouton « Je supprime mon compte »</div>
<form action="#" method="POST" id="deleteAccountForm">
<div class="form-group" style="text-align:right">
<input type="checkbox" name="confirmAccountDelete" id="accountMarkedForDelete" required="required"/>
<input type="submit" id="deleteAccountBtn" class="btn btn-primary"
value="Je supprime mon compte"/>
</div>
</form>
</div>
</div>
</div>
<script type="text/javascript">
$('#changePasswordMsg').hide();
$('#changeInfoMsg').hide();
$('#languageMsg').hide();
function postChange(url, postBody, onSuccess, onError, type) {
// Change success message ...
jQuery.ajax(url, {
async: false,
dataType: 'json',
data: postBody,
type: type ? type : 'PUT',
contentType: "text/plain; charset=utf-8",
success: function (data, textStatus, jqXHR) {
onSuccess()
},
error: function (jqXHR, textStatus, errorThrown) {
onError(textStatus)
}
});
}
$('#changePasswordForm').submit(function (event) {
var inputVal = $('#changePasswordForm #password').val();
var rinputVal = $('#changePasswordForm #repassword').val();
var changePasswordMsg = $('#changePasswordMsg');
if (inputVal != rinputVal) {
// Password mismatch message ...
changePasswordMsg.removeClass('alert-info').addClass('alert-danger').show();
changePasswordMsg.text('<spring:message code="PASSWORD_MISSMATCH"/>');
} else {
postChange(
"c/restful/account/password",
inputVal,
function () {
changePasswordMsg.removeClass('alert-danger').addClass('alert-info').show();
changePasswordMsg.text('<spring:message code="CHANGE_PASSWORD_SUCCESS"/>');
},
function (textStatus) {
changePasswordMsg.removeClass('alert-info').addClass('alert-danger').show();
changePasswordMsg.text(textStatus);
}
);
}
event.preventDefault();
});
$('#changeUserForm').submit(function (event) {
var firstname = $('#changeUserForm #firstname').val();
var lastname = $('#changeUserForm #lastname').val();
var changeInfoMsg = $('#changeInfoMsg');
postChange(
"c/restful/account/firstname",
firstname,
function () {
var changeInfoMsg = $('#changeInfoMsg');
changeInfoMsg.removeClass('alert-error').addClass('alert-info').show();
changeInfoMsg.text('<spring:message code="INFO_UPDATE_SUCCESS"/>');
},
function (textStatus) {
changeInfoMsg.removeClass('alert-info').addClass('alert-danger').show();
changeInfoMsg.text(textStatus);
}
);
postChange(
"c/restful/account/lastname",
lastname,
function () {
changeInfoMsg.removeClass('alert-danger').addClass('alert-info').show();
changeInfoMsg.text('<spring:message code="INFO_UPDATE_SUCCESS"/>');
},
function (textStatus) {
changeInfoMsg.removeClass('alert-info').addClass('alert-danger').show();
changeInfoMsg.text(textStatus);
}
);
event.preventDefault();
});
$('#languageForm').submit(function (event) {
var locale = $('#languageForm option:selected').val();
var languageMsg = $('#languageMsg');
postChange(
"c/restful/account/locale",
locale,
function () {
languageMsg.removeClass('alert-danger').addClass('alert-info').show();
languageMsg.text('<spring:message code="INFO_UPDATE_SUCCESS"/>');
},
function (textStatus) {
languageMsg.removeClass('alert-info').addClass('alert-danger').show();
languageMsg.text(textStatus);
}
);
event.preventDefault();
});
$('#deleteAccountForm').submit(function (event) {
var locale = $('#deleteAccountForm option:selected').val();
postChange(
"c/restful/account",
locale,
function () {
window.location.href = "/c/logout"
},
function (textStatus) {
var deleteAccountMsg = $('#deleteAccountMsg');
deleteAccountMsg.removeClass('alert-info').addClass('alert-danger').show();
deleteAccountMsg.text(textStatus);
},
'DELETE'
)
event.preventDefault();
});
</script>
<%@page pageEncoding="UTF-8" %>
<%@ include file="/jsp/init.jsp" %>
<!DOCTYPE HTML>
<p><spring:message code="KEYBOARD_SHORTCUTS_MSG"/></p>
<style type="text/css">
#keyboardTable {
font-family: Arial, verdana, serif;
font-size: 13px;
}
#keyboardTable td {
padding: 3px;
white-space: nowrap;
}
#keyboardTable th {
padding: 5px;
white-space: nowrap;
}
#keyboardTable th {
background-color: #000000;
color: #ffffff;
}
</style>
<div id="keyboardTable">
<table>
<colgroup>
<col width="40%"/>
<col width="30%"/>
<col width="30%"/>
</colgroup>
<thead>
<tr>
<th><spring:message code="ACTION"/></th>
<th>Windows - Linux</th>
<th>Mac OS X</th>
</tr>
</thead>
<tbody>
<tr>
<td><spring:message code="SAVE_CHANGES"/></td>
<td>Ctrl + s</td>
<td>⌘ + s</td>
</tr>
<tr>
<td><spring:message code="CREATE_SIBLING_TOPIC"/></td>
<td>Enter</td>
<td>Enter</td>
</tr>
<tr>
<td><spring:message code="CREATE_CHILD_TOPIC"/></td>
<td>Insert / Tab</td>
<td>⌘ + Enter / Tab</td>
</tr>
<tr>
<td><spring:message code="DELETE_TOPIC"/></td>
<td>Delete</td>
<td>Delete</td>
</tr>
<tr>
<td><spring:message code="EDIT_TOPIC_TEXT"/></td>
<td><spring:message code="JUST_START_TYPING"/> | F2</td>
<td><spring:message code="JUST_START_TYPING"/> | F2</td>
</tr>
<tr>
<td><spring:message code="MULTIPLE_LINES"/></td>
<td>Ctrl + Enter</td>
<td>⌘ + Enter</td>
</tr>
<tr>
<td><spring:message code="COPY_AND_PASTE_TOPICS"/></td>
<td>Ctrl + c/Ctrl + v</td>
<td>⌘ + c/⌘ + v</td>
</tr>
<tr>
<td><spring:message code="COLLAPSE_CHILDREN"/></td>
<td>Space bar</td>
<td>Space bar</td>
</tr>
<tr>
<td><spring:message code="TOPIC_NAVIGATION"/></td>
<td><spring:message code="ARROW_KEYS"/></td>
<td><spring:message code="ARROW_KEYS"/></td>
</tr>
<tr>
<td><spring:message code="SELECT_MULTIPLE_NODES"/></td>
<td>Ctrl + Mouse Click</td>
<td>Ctrl + Mouse Click</td>
</tr>
<tr>
<td><spring:message code="UNDO_EDITION"/></td>
<td>Ctrl + z</td>
<td>⌘ + z</td>
</tr>
<tr>
<td><spring:message code="REDO_EDITION"/></td>
<td>Ctrl + Shift + z</td>
<td>⌘ + Shift + z</td>
</tr>
<tr>
<td><spring:message code="SELECT_ALL_TOPIC"/></td>
<td>Ctrl + a</td>
<td>⌘ + a</td>
</tr>
<tr>
<td><spring:message code="CANCEL_TEXT_CHANGES"/></td>
<td>Esc</td>
<td>Esc</td>
</tr>
<tr>
<td><spring:message code="DESELECT_ALL_TOPIC"/></td>
<td>Ctrl + Shift + a</td>
<td>⌘ + Shift + a</td>
</tr>
<tr>
<td><spring:message code="CHANGE_TEXT_ITALIC"/></td>
<td>Ctrl + i</td>
<td>⌘ + i</td>
</tr>
<tr>
<td><spring:message code="CHANGE_TEXT_BOLD"/></td>
<td>Ctrl + b</td>
<td>⌘ + b</td>
</tr>
</tbody>
</table>
</div>
\ No newline at end of file
......@@ -58,14 +58,6 @@
var persistence = mindplot.PersistenceManager.getInstance();
var mindmap = mindmap = persistence.load(mapId);
designer.loadMap(mindmap);
$('zoomIn').addEvent('click', function () {
designer.zoomIn();
});
$('zoomOut').addEvent('click', function () {
designer.zoomOut();
});
});
</script>
</head>
......
......@@ -149,4 +149,4 @@
$('#export-dialog-modal').modal('hide');
}
</script>
</script>
\ No newline at end of file
<%@page pageEncoding="UTF-8" %>
<%@include file="/jsp/init.jsp" %>
<div>
<p class="alert alert-info"><spring:message code="IMPORT_MINDMAP_INFO"/></p>
<form method="POST" enctype="multipart/form-data" action="#" id="dialogMainForm" class="form-horizontal">
<div class="errorMessage"></div>
<fieldset>
<div class="form-group">
<label for="mapFile" class="control-label col-md-2 "><spring:message code="MIND_FILE"/>: </label>
<div class="col-md-10">
<input type="file" name="file" id="mapFile" required="required" class="form-control"/>
</div>
</div>
<div class="form-group">
<label for="title" class="control-label col-md-2 "><spring:message code="NAME"/>: </label>
<div class="col-md-10">
<input type="text" id="title" name="title" required="required"
placeholder="<spring:message code="MAP_NAME_HINT"/>"
class="form-control" maxlength="255"/>
</div>
</div>
<div class="form-group">
<label for="description" class="control-label col-md-2"><spring:message code="DESCRIPTION"/>: </label>
<div class="col-md-10">
<textarea type="text" name="description" id="description"
placeholder="<spring:message code="MAP_DESCRIPTION_HINT"/>" class="form-control" maxlength="255"></textarea>
</div>
</div>
</fieldset>
</form>
</div>
<script type="text/javascript">
// Save status on click ...
var contentType = null;
var fileContent = null;
$('#cancelButton').click(function () {
window.location = 'c/maps/';
});
$('#dialogMainForm').submit(function (event) {
// Load form parameters ...
var title = $('#dialogMainForm #title').attr('value');
title = title == undefined ? "" : title;
var description = $('#dialogMainForm #description').attr('value');
description = description == undefined ? "" : description;
// Save status on click ...
jQuery.ajax("c/restful/maps?title=" + encodeURI(title) + "&description=" + encodeURI(description),
{
async:false,
data:fileContent,
type:'POST',
dataType:'json',
contentType:contentType,
success:function (data, textStatus, jqXHR) {
var resourceId = jqXHR.getResponseHeader("ResourceId");
window.location = "c/maps/" + resourceId + "/edit";
},
error:function (jqXHR, textStatus, errorThrown) {
if (jqXHR.status == 400) {
var errors = JSON.parse(jqXHR.responseText);
// Mark fields with errors ...
var fieldErrors = errors.fieldErrors;
if (fieldErrors) {
for (var fieldName in fieldErrors) {
// Mark the field with errors ...
var message = fieldErrors[fieldName];
var inputField = $("#dialogMainForm input[name='" + fieldName + "']");
$("#dialogMainForm").find(".errorMessage").text(message).addClass("alert alert-danger");
inputField.parent().addClass('error');
}
}
var globalErrors = errors.globalErrors;
if (globalErrors) {
for (var error in globalErrors) {
// Mark the field with errors ...
$("#dialogMainForm").find(".errorMessage").text(error).addClass("alert alert-danger");
inputField.parent().addClass('error');
}
}
} else {
console.log(errorThrown);
console.log(jqXHR);
$('#messagesPanel div').text(errorThrown).parent().show();
}
}
});
event.preventDefault();
});
$('#dialogMainForm #mapFile').change(function (event) {
var file = event.target.files[0];
var reader = new FileReader();
var title = file.name;
title = title.substring(0, title.lastIndexOf("."));
$('#dialogMainForm #title').attr('value', jQuery.camelCase(title));
// Closure to capture the file information.
reader.onload = (function (event) {
fileContent = event.target.result;
contentType = file.name.lastIndexOf(".wxml") != -1 ? "application/xml" : "application/freemind";
});
// Read in the image file as a data URL.
reader.readAsText(file);
});
// Hook for interaction with the main parent window ...