- Change to start using bootstrap grid

This commit is contained in:
Paulo Gustavo Veiga 2012-09-10 23:51:53 -03:00
parent 6efc068a6c
commit 3fb746f79b
23 changed files with 316 additions and 375 deletions

View File

@ -333,7 +333,7 @@ public class UserAgent implements Serializable {
public boolean isBrowserSupported() {
// Is it a supported browser ?.
final UserAgent.Product product = this.getProduct();
boolean result = product == UserAgent.Product.FIREFOX && this.isVersionGreatedOrEqualThan(12, 0);
boolean result = product == UserAgent.Product.FIREFOX && this.isVersionGreatedOrEqualThan(10, 0);
result = result || product == UserAgent.Product.EXPLORER && this.isVersionGreatedOrEqualThan(7, 0) && this.getOs() == UserAgent.OS.WINDOWS;
result = result || product == UserAgent.Product.OPERA && this.isVersionGreatedOrEqualThan(11, 0);
result = result || product == UserAgent.Product.CHROME && this.isVersionGreatedOrEqualThan(18, 0);

View File

@ -20,6 +20,7 @@ package com.wisemapping.mail;
import com.wisemapping.filter.UserAgent;
import com.wisemapping.model.Collaboration;
import com.wisemapping.model.CollaborationRole;
import com.wisemapping.model.Mindmap;
import com.wisemapping.model.User;
import org.apache.commons.io.IOUtils;

View File

@ -29,7 +29,7 @@ public class NotifyingExceptionResolver extends SimpleMappingExceptionResolver {
}
private void sendNotification(@NotNull Exception ex, @NotNull HttpServletRequest request) {
final User user = Utils.getUser();
final User user = Utils.getUser(false);
notificationService.reportJavaException(ex, user, request);
}

View File

@ -18,9 +18,7 @@
package com.wisemapping.rest;
import com.wisemapping.exceptions.AccessDeniedSecurityException;
import com.wisemapping.exceptions.ClientException;
import com.wisemapping.filter.UserAgent;
import com.wisemapping.mail.NotificationService;
import com.wisemapping.model.User;
import com.wisemapping.rest.model.RestErrors;
@ -69,10 +67,11 @@ public class BaseController {
return ex.getMessage();
}
@ExceptionHandler(ValidationException.class)
@ExceptionHandler(JsonHttpMessageNotReadableException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public RestErrors handleValidationErrors(@NotNull ValidationException ex) {
return new RestErrors(ex.getErrors(), messageSource);
public String handleValidationErrors(@NotNull JsonHttpMessageNotReadableException ex) {
return "Request could not be saved. Message is not valid";
}
@ExceptionHandler(java.lang.reflect.UndeclaredThrowableException.class)

View File

@ -12,7 +12,7 @@ import java.io.InputStream;
public class DebugMappingJacksonHttpMessageConverter extends MappingJacksonHttpMessageConverter {
@Override
protected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws IOException, HttpMessageNotReadableException {
protected Object readInternal(Class<?> clazz, HttpInputMessage inputMessage) throws IOException, JsonHttpMessageNotReadableException {
final byte[] bytes = IOUtils.toByteArray(inputMessage.getBody());
final ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
final WrapHttpInputMessage wrap = new WrapHttpInputMessage(bais, inputMessage.getHeaders());
@ -21,20 +21,14 @@ public class DebugMappingJacksonHttpMessageConverter extends MappingJacksonHttpM
return super.readInternal(clazz, wrap);
} catch (org.springframework.http.converter.HttpMessageNotReadableException e) {
throw new HttpMessageNotReadableException("Request Body:\n" + new String(bytes, "UTF-8"), e);
throw new JsonHttpMessageNotReadableException("Request Body:\n" + new String(bytes, "UTF-8"), e);
}
catch (IOException e) {
throw new HttpMessageNotReadableException("Request Body:\n" + new String(bytes, "UTF-8"), e);
throw new JsonHttpMessageNotReadableException("Request Body:\n" + new String(bytes, "UTF-8"), e);
}
}
}
class HttpMessageNotReadableException extends org.springframework.http.converter.HttpMessageNotReadableException {
public HttpMessageNotReadableException(String msg, Exception cause) {
super(msg, cause);
}
}
class WrapHttpInputMessage implements HttpInputMessage {
private InputStream body;

View File

@ -0,0 +1,8 @@
package com.wisemapping.rest;
class JsonHttpMessageNotReadableException extends org.springframework.http.converter.HttpMessageNotReadableException {
public JsonHttpMessageNotReadableException(String msg, Exception cause) {
super(msg, cause);
}
}

View File

@ -1,27 +0,0 @@
package com.wisemapping.rest;
import org.jetbrains.annotations.NotNull;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJacksonHttpMessageConverter;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.util.List;
@EnableWebMvc
@Configuration
public class RestMvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void configureMessageConverters(@NotNull final List<HttpMessageConverter<?>> converters) {
converters.add(converter());
super.configureMessageConverters(converters);
}
@Bean
MappingJacksonHttpMessageConverter converter() {
return new DebugMappingJacksonHttpMessageConverter();
}
}

View File

@ -145,8 +145,6 @@ MAP_NAME_HINT=Name of the new map to create
MAP_DESCRIPTION_HINT=Some description for your map
WARNING=Warning
DELETE_MAPS_WARNING=Deleted mindmap can not be recovered. Do you want to continue ?.
WHAT_IS_NEW=What is New
WHAT_IS_NEW_DETAILS=<ul><li>New User Interface</li><li>FreeMind 0.9 Update</li><li>Improved HTML 5.0 Support</li><li>Firefox 12 officially supported</li></ul>
THANKS_FOR_SIGN_UP=Thanks for signing up\!
SIGN_UP_CONFIRMATION_EMAIL=\ You will receive a confirmation message shortly from WiseMapping. This message will ask you to activate your WiseMapping account.</br>Please select the link to activate and start creating and sharing maps.
SIGN_UP_SUCCESS=Your account has been created successfully, click <a href\="c/login">here</a> to sign in and start enjoying WiseMapping.
@ -244,6 +242,9 @@ CONTACT_US=Contact Us
#Pending for translation ...
CAPTCHA_LOADING_ERROR=ReCaptcha could not be loaded. You must have access to Google ReCaptcha service.
ACCESS_HAS_BEEN_REVOKED= Upps. your access permissions to this map has been revoked. Contact map owner.
LICENSE=License
WELCOME_TO_WISEMAPPING=Welcome to WiseMapping
WELCOME_DETAILS=WiseMapping will enable you to create and read your mind maps everywhere. With WiseMapping you can: <ul><li>Embed mind map it in web pages and blogs</li><li>Link mind map and documents</li><li>Share your maps with friend and colleagues</li><li>Export your maps SVG,PNG,JPG and FreeMind</li></ul>.

View File

@ -29,7 +29,7 @@ FORGOT_PASSWORD=Se olvidó la contraseña ?
CHANGE_PASSWORD=Cambiar la Contraseña
FAQ=Preguntas Frecuentes
SHORT_FAQ=FAQ
LOGIN=Entrar
LOGIN=Ingresar
MIND_FILE=Archivo
EXPORT=Exportar
SVG_EXPORT_FORMAT=Scalable Vector Graphics (SVG)
@ -142,8 +142,6 @@ MAP_NAME_HINT=El nombre del nuevo mapa
MAP_DESCRIPTION_HINT=Una descripción de tu mapa
WARNING=Cuidado
DELETE_MAPS_WARNING=Una vez borrado de un mapa no puede ser recuperado. Desea continuar ?
WHAT_IS_NEW=Novedades
WHAT_IS_NEW_DETAILS=<ul><li>Nueva interfaz</li><li>Soporte de FreeMind 0.9</li><li>Soporte HTML 5.0</li><li>Soporte de Firefox 12</li></ul>
THANKS_FOR_SIGN_UP=Graciar por registarse !
SIGN_UP_CONFIRMATION_EMAIL=You will receive a confirmation message shortly from WiseMapping. This message will ask you to activate your WiseMapping account.</br>Please select the link to activate and start creating and sharing maps.
SIGN_UP_SUCCESS=Su cuenta ha sido creada exitosamente,haga click <a href\="c/login">acá</a> para ingresar y empezar a disfrutar de WiseMapping.
@ -242,6 +240,10 @@ CONTACT_US=Contáctenos
ACCESS_HAS_BEEN_REVOKED=Los permisos de acceso al mapa han sido revocados. No es posible grabar sus cambios.
CAPTCHA_LOADING_ERROR=ReCaptcha no pudo ser cargado. Debes tener accesso al servicio de Google ReCaptcha.
LICENSE=Licencia
WELCOME_TO_WISEMAPPING=Bienvenido a WiseMapping
WELCOME_DETAILS=WiseMapping te permite crear y leer tus mapas mentales en cualquier lugar. Con WiseMapping tu puedes: <ul><li>Embeber tus mapas en páginas o blogs</li><li>Crear vinculos a documentos</li><li>Compartir tus mapas mentales con amigos y colegas</li><li>Exportar tus mapas a SVG,PNG,JPG and FreeMind</li></ul>.

View File

@ -125,7 +125,7 @@ IMPORT=Importer
EMBEDDED_MAP_SIZE=* Note: vous pouvez changer le format de la carte encapsulée en modifiant les propriétés de style 'height' et 'width'. Vous pouvez aussi modifier le facteur de zoom par le paramètre 'zoom' de l'URL.
EXPORT_FORMAT_RESTRICTIONS=Exporter vers Image, PDF ou SVG n'est possible que depuis la barre d'outils de l'éditeur.
STARRED=Etoilé (*)
STARRED=Favoris
ALL_MAPS=Toutes les cartes
MY_MAPS=Mes cartes
SHARED_WITH_ME=Partagées avec moi
@ -151,8 +151,6 @@ MAP_NAME_HINT=Nom de la nouvelle carte à créer
MAP_DESCRIPTION_HINT=Brève description de votre carte
WARNING=Avertissement
DELETE_MAPS_WARNING=Une carte effacée ne peut pas être récupérée. Voulez-vous continuer ?
WHAT_IS_NEW=Quoi de neuf
WHAT_IS_NEW_DETAILS=<ul><li>Nouvel interface utilisateur </li><li>Mise à jour FreeMind 0.9 </li><li> Support amélioré de HTML 5.0 </li><li>Firefox 12 officiellement supporté</li></ul>
THANKS_FOR_SIGN_UP=Merci de vous inscrire \!
SIGN_UP_CONFIRMATION_EMAIL=\ Vous recevrez prochainement un bref message de confirmation de WiseMapping. Ce message vous demandera d'activer votre compte WiseMapping. </br> SVP suivez le lien pour activer commencer à créer et partager vos cartes.
SIGN_UP_SUCCESS=Votre compte a été créé, cliquez <a href\="c/login">here</a> pour vous connecter et commencer à apprécier WiseMapping.
@ -248,6 +246,11 @@ TUTORIAL.SAMPLE_NOTE=Ceci est une simple note !.
CAPTCHA_LOADING_ERROR=ReCaptcha could not be loaded. You must have access to Google ReCaptcha service.
ACCESS_HAS_BEEN_REVOKED= Upps. your access permissions to this map has been revoked. Contact map owner.
LICENSE=License
WELCOME_TO_WISEMAPPING=Welcome to WiseMapping
WELCOME_DETAILS=WiseMapping will enable you to create and read your mind maps everywhere. With WiseMapping you can: <ul><li>Embed mind map it in web pages and blogs</li><li>Link mind map and documents</li><li>Share your maps with friend and colleagues</li><li>Export your maps SVG,PNG,JPG and FreeMind</li></ul>.

View File

@ -145,8 +145,6 @@ MAP_NAME_HINT=Nome della nuova mappa da creare
MAP_DESCRIPTION_HINT=Una descrizione della nuova mappa
WARNING=Attenzione
DELETE_MAPS_WARNING=Eliminando la mappa, non può essere più recuperata. Si desidera continuare?
WHAT_IS_NEW=Cosa c'è di nuovo
WHAT_IS_NEW_DETAILS=<ul><li>Nuova interfaccia utente</li><li>Aggiornamento FreeMind 0.9</li><li>Migliore Supporto HTML 5.0</li><li>Firefox 12 ufficialmente supportato</li></ul>
THANKS_FOR_SIGN_UP=Grazie per esserti registrato\!
SIGN_UP_CONFIRMATION_EMAIL=\ Riceverete un messaggio di conferma da WiseMapping. Questo messaggio vi chiederà di attivare il nuovo account WiseMapping.</br>Selezionare il link per attivare l'account ed iniziare a creare e condividere le tue mappe.
SIGN_UP_SUCCESS=Il tuo account è stato creato correttamente, clicca <a href\="c/login">qui</a> per entrare ed iniziare ad usare WiseMapping.

View File

@ -143,8 +143,6 @@ MAP_NAME_HINT=Nome do novo mapa para criar
MAP_DESCRIPTION_HINT=Alguma descrição para o seu mapa
WARNING=Alerta
DELETE_MAPS_WARNING=Mapa mental deletado não poderá ser recuperado. Quer continuar?
WHAT_IS_NEW=O que há de Novo
WHAT_IS_NEW_DETAILS=<ul><li>Nova Interface com o Usuário</li><li>Atualização para o FreeMind 0.9</li><li>Suporte a HTML 5.0 Melhorado</li><li>Firefox 12 é oficialmente suportado</li></ul>
THANKS_FOR_SIGN_UP=Obrigado por acessar\!
SIGN_UP_CONFIRMATION_EMAIL=\ Você receberá uma mensagem de confirmação do WiseMapping em breve. Esta mensagem vai pedir que você ative sua conta WiseMapping.</br>SElecione o link para ativar e comece criando e compartilhando mapas.
SIGN_UP_SUCCESS=Sua conta foi criada com sucesso, clique <a href\="c/login">aqui</a> para acessar e comece a desfrutar do WiseMapping.

View File

@ -145,8 +145,6 @@ MAP_NAME_HINT=新思路图的名字
MAP_DESCRIPTION_HINT=一些有关你的图的描述
WARNING=警告
DELETE_MAPS_WARNING=删除思维导图后无法恢复,是否继续?
WHAT_IS_NEW=新特性是什么
WHAT_IS_NEW_DETAILS=<ul><li>新用户界面</li><li>FreeMind 0.9 更新</li><li>改进HTML 5.0 支持</li><li>Firefox 12 正式支持</li></ul>
THANKS_FOR_SIGN_UP=感谢注册!
SIGN_UP_CONFIRMATION_EMAIL=\ 你不久将收到从WiseMapping发来的一封确认信息. 这个消息将询问你是否激活你的WiseMapping 账户。</br>请选择链接激活账户,开始创建思路图并分享它们吧。
SIGN_UP_SUCCESS=你的帐户已成功建立, 点击 <a href\="c/login">这里</a> 登录使用WiseMapping.

View File

@ -145,8 +145,6 @@ MAP_NAME_HINT=新思路圖的名字
MAP_DESCRIPTION_HINT=一些有關你的圖的描述
WARNING=警告
DELETE_MAPS_WARNING=刪除思維導圖後無法恢復,是否繼續?
WHAT_IS_NEW=新特性是什麼
WHAT_IS_NEW_DETAILS=<ul><li>新用戶介面</li><li>FreeMind 0.9 更新</li><li>改進HTML 5.0 支持</li><li>Firefox 12 正式支持</li></ul>
THANKS_FOR_SIGN_UP=感謝註冊!
SIGN_UP_CONFIRMATION_EMAIL=\ 你不久將收到從WiseMapping發來的一封確認資訊. 這個消息將詢問你是否啟動你的WiseMapping 帳戶。</br>請選擇鏈接啟動帳戶,開始創建思路圖並分享它們吧。
SIGN_UP_SUCCESS=你的帳戶已成功建立, 點擊 <a href\="c/login">這裏</a> 登錄使用WiseMapping.

View File

@ -14,7 +14,12 @@
<context:component-scan base-package="com.wisemapping.rest"/>
<context:annotation-config/>
<mvc:annotation-driven/>
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.wisemapping.rest.DebugMappingJacksonHttpMessageConverter"/>
<bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
@ -98,7 +103,6 @@
<constructor-arg ref="notificationService"/>
</bean>
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">
<list>

View File

@ -137,10 +137,6 @@ input#selectAll {
/* ----------------------------- Misc ----------------------------------- */
.messagesPanel {
width: @body-width;
}
.dataTables_empty {
text-align: center;
}
@ -149,13 +145,13 @@ input#selectAll {
background-color: #f5f5f5;
}
#buttonsToolbar {
margin: 30px 0px 10px 0px
.buttonsToolbar {
margin: 40px 0px 10px 0px
}
#tableActions {
float: right;
width: 350px;
padding-bottom: 10px;
white-space: nowrap;
}
@ -171,16 +167,13 @@ input#selectAll {
}
#tableFooter {
width: 100%;
height: 50px;
white-space: nowrap;
}
#foldersContainer {
width: 15%;
float: left;
margin-right: 2%;
margin-top: 80px
padding-top: 60px;
}
span.starredOff {
@ -205,8 +198,4 @@ span.starredOn:hover {
abbr[title] {
cursor: default;
}
#footer {
border-top: 0px;
}

View File

@ -83,7 +83,6 @@ div#headerTitle {
margin-left: 5px;
}
span#headerSubTitle {
font-weight: lighter;
font-size: 12px;
@ -100,31 +99,20 @@ div#headerButtons activelink a, div#headerButtons activelink a:hover {
border-bottom: 0;
}
#footer {
width: 100%;
border-top: 1px solid #8e9181;
text-align: center;
font-size: 90%;
padding-top:5px;
min-height:40px;
border-top: 1px black solid;
padding-top: 15px;
}
#footer > div{
display: inline-block;
}
div#paypal {
float: left;
margin: -29px;
}
#headerLogo {
cursor: pointer;
}
div#headerActions {
padding-right: 8px;
padding-top: 4px;
@ -135,7 +123,7 @@ div#headerActions {
}
#headerActions span {
border-bottom: 3px solid #F7C931;
border-bottom: 3px solid #F7C931;
}
div#headerActions a:hover, div#headerActions a:active, div#headerActions a:link, div#headerActions a:visited {

View File

@ -1,131 +1,111 @@
@import "../bootstrap/css/bootstrap.min.css";
@import "../bootstrap/css/bootstrap-responsive.min.css";
@import "pageHeaders.css";
#loginContent .loginNews {
float: left;
width: 300px;
}
div#login {
float: right;
width: 300px;
}
div#loginContent {
width: 100%;
min-height: 340px;
}
div#register {
position: relative;
margin: 10px auto;
width: 800px;
text-align: center;
white-space: nowrap;
}
div#register a {
color: #003399;
font-weight: bold;
}
div.pageBodyContent ol {
margin-left: 12px;
}
div.pageBodyContent ul {
list-style-position: outside;
}
div.pageBodyContent ol li {
list-style-type: decimal;
}
div.pageBody {
margin: 10px auto;
width: 800px;
min-height: 500px;
}
div.pageBodyContent {
padding-top: 30px;
}
div.pageBodyContent h1 {
color: #093A9D;
font-size: 150%;
margin-bottom: 5px;
font-weight: bold;
}
div.pageBodyContent h2 {
color: gray;
font-size: 150%;
border-bottom: 1px dashed #BBB4D6;
margin: 20px 0;
}
div.pageBodyContent ul {
padding: 5px;
}
div.pageBodyContent li {
list-style-type: disc;
margin-left: 12px;
}
/*-- End Main Page Style -- */
/* Share Styles */
#userEmails {
float: left;
width: 50%;
padding: 5px;
}
#userEmails textarea {
width: 100%;
}
#currentUsers {
float: left;
width: 40%;
height: 400px;
padding: 5px;
padding-left: 15px;
margin-left: 15px;
border-left: 1px dotted gray;
}
#currentUsers table {
width: 100%;
}
#invitation {
border: 1px dotted gray;
}
span.errorMsg{
color: red;
}
div.fform {
background: #eeeeee;
border: 1px solid #cfcfcf;
padding: 5px 25px;
-moz-border-radius: 8px;
-khtml-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
}
div.fform label {
font-weight: bold;
}
@import "../bootstrap/css/bootstrap.min.css";
@import "../bootstrap/css/bootstrap-responsive.min.css";
@import "pageHeaders.css";
div#register {
margin: 40px auto;
text-align: center;
white-space: nowrap;
}
div#register a {
color: #003399;
font-weight: bold;
}
div.pageBodyContent ol {
margin-left: 12px;
}
div.pageBodyContent ul {
list-style-position: outside;
}
div.pageBodyContent ol li {
list-style-type: decimal;
}
div.pageBody {
min-height: 500px;
}
div.pageBodyContent {
padding-top: 30px;
}
div.pageBodyContent h1 {
color: #093A9D;
font-size: 150%;
margin-bottom: 5px;
font-weight: bold;
}
div.pageBodyContent h2 {
color: gray;
font-size: 150%;
border-bottom: 1px dashed #BBB4D6;
margin: 20px 0;
}
div.pageBodyContent ul {
padding: 5px;
}
div.pageBodyContent li {
list-style-type: disc;
margin-left: 12px;
}
/*-- End Main Page Style -- */
/* Share Styles */
#userEmails {
float: left;
width: 50%;
padding: 5px;
}
#userEmails textarea {
width: 100%;
}
#currentUsers {
float: left;
width: 40%;
height: 400px;
padding: 5px;
padding-left: 15px;
margin-left: 15px;
border-left: 1px dotted gray;
}
#currentUsers table {
width: 100%;
}
#invitation {
border: 1px dotted gray;
}
span.errorMsg{
color: red;
}
div.fform {
background: #eeeeee;
border: 1px solid #cfcfcf;
padding: 5px 25px;
-moz-border-radius: 8px;
-khtml-border-radius: 8px;
-webkit-border-radius: 8px;
border-radius: 8px;
}
div.fform label {
font-weight: bold;
}

View File

@ -142,7 +142,8 @@ jQuery.fn.dialogForm = function (options) {
console.log(errorThrown);
console.log(jqXHR);
dialogElem.modal('hide');
$('#messagesPanel div').text(errorThrown).parent().show();
$('#messagesPanel div div').text(errorThrown);
$('#messagesPanel').show()
}
var acceptBtn = $('#' + containerId + ' .btn-accept');
acceptBtn.button('reset');
@ -168,22 +169,22 @@ function updateStatusToolbar() {
$("#mindmapListTable tbody input:checked").parent().parent().addClass('row-selected');
$("#mindmapListTable tbody input:not(:checked)").parent().parent().removeClass('row-selected');
$('#buttonsToolbar').find('.act-single').hide().end().find('.act-multiple').hide();
$('.buttonsToolbar').find('.act-single').hide().end().find('.act-multiple').hide();
var tableElem = $('#mindmapListTable');
var selectedRows = tableElem.dataTableExt.getSelectedRows();
if (selectedRows.length > 0) {
if (selectedRows.length == 1) {
$('#buttonsToolbar').find('.act-single').show().end().find('.act-multiple').show();
$('.buttonsToolbar').find('.act-single').show().end().find('.act-multiple').show();
// Can be executed by the owner ?
var rowData = tableElem.dataTable().fnGetData(selectedRows[0]);
if (rowData.role != 'owner') {
$("#buttonsToolbar").find('#publishBtn').hide().end().find('#shareBtn').hide().end().find('#renameBtn').hide();
$(".buttonsToolbar").find('#publishBtn').hide().end().find('#shareBtn').hide().end().find('#renameBtn').hide();
}
} else {
$("#buttonsToolbar .act-multiple").show();
$(".buttonsToolbar .act-multiple").show();
}
}
}

View File

@ -1,9 +1,10 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<div id="footer">
<div><a href="https://twitter.com/share" class="twitter-share-button" data-via="wisemapping"
data-related="wisemapping">Tweet</a>
<div class="row" id="footer">
<div class="span1 offset3">
<a href="https://twitter.com/share" class="twitter-share-button" data-via="wisemapping"
data-related="wisemapping">Tweet</a>
<script>!function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (!d.getElementById(id)) {
@ -13,8 +14,8 @@
fjs.parentNode.insertBefore(js, fjs);
}
}(document, "script", "twitter-wjs");</script>
<!-- Place this tag in your head or just before your close body tag -->
</div>
<div class="span1">
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{
parsetags: 'explicit'
@ -27,17 +28,17 @@
<!-- Place this render call where appropriate -->
<script type="text/javascript">gapi.plusone.go();</script>
</div>
<div style="width: 240px; padding: 0 40px;">
<p>
<div class="span4">
<p style="text-align: center;">
<a href="https://groups.google.com/d/forum/wisemapping-support"><spring:message code="SUPPORT"/></a> |
<a href="mailto:feedback@wisemapping.com"><spring:message code="FEEDBACK"/></a> |
<a href="mailto:dev@wisemapping.com"><spring:message code="CONTACT_US"/></a>
<a href="mailto:dev@wisemapping.com"><spring:message code="CONTACT_US"/></a> |
<a href="http://www.wisemapping.org/license"><spring:message code="LICENSE"/></a><br/>
<a href="http://www.wisemapping.org/"><spring:message code="COPYRIGHT"/></a>
</p>
</div>
<div style="padding: 0 20px">
<div class="span1">
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but04.gif" name="submit"
@ -47,30 +48,30 @@
value="-----BEGIN PKCS7-----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-----END PKCS7-----"/>
</form>
</div>
<div>
<div class="span1">
<a href="http://www.w3.org/html/logo/">
<img src="http://www.w3.org/html/logo/badge/html5-badge-h-graphics.png" width="66" height="32"
alt="HTML5 Powered with Graphics, 3D &amp; Effects"
title="HTML5 Powered with Graphics, 3D &amp; Effects">
</a>
</div>
</div>
<c:if test="${requestScope['google.analytics.enabled']}">
<script type="text/javascript">
<c:if test="${requestScope['google.analytics.enabled']}">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '${requestScope['google.analytics.account']}']);
_gaq.push(['_setDomainName', 'wisemapping.com']);
_gaq.push(['_trackPageview']);
var _gaq = _gaq || [];
_gaq.push(['_setAccount', '${requestScope['google.analytics.account']}']);
_gaq.push(['_setDomainName', 'wisemapping.com']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</c:if>
</div>
(function () {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</c:if>

View File

@ -4,20 +4,21 @@
<%--@elvariable id="isHsql" type="boolean"--%>
<script type="text/javascript" language="javascript">
$(function() {
$('.btn-primary').click(function() {
$(function () {
$('.btn-primary').click(function () {
$(this).button("loading");
});
});
</script>
<div id="loginContent">
<div class="loginNews">
<h1><spring:message code="WHAT_IS_NEW"/>: </h1>
<spring:message code="WHAT_IS_NEW_DETAILS"/>
<div id="row-fluid">
<div class="span1"></div>
<div class="span5" style="margin-top: 20px">
<h1><spring:message code="WELCOME_TO_WISEMAPPING"/></h1>
<spring:message code="WELCOME_DETAILS"/>
</div>
<div id="login" class="fform">
<div class="span1"></div>
<div id="login" class="fform span4">
<h1>
<spring:message code="SIGN_IN"/>
</h1>
@ -54,17 +55,22 @@
</div>
</div>
<div id="register">
<b><spring:message code="NOT_READY_A_USER"/></b>
<spring:message code="NOT_READY_A_USER_MESSAGE"/>
<a href="c/user/registration">
<spring:message code="JOIN_NOW"/>
</a>
<div class="row-fluid">
<div id="register" class="span12">
<b><spring:message code="NOT_READY_A_USER"/></b>
<spring:message code="NOT_READY_A_USER_MESSAGE"/>
<a href="c/user/registration">
<spring:message code="JOIN_NOW"/>
</a>
</div>
</div>
<c:if test="${isHsql== 'true'}">
<div class="alert alert-info">
<span class="label label-important"><spring:message code="WARNING"/></span> <spring:message code="NO_PRODUCTION_DATABASE_CONFIGURED"/>&nbsp;<a
href="http://www.wisemapping.org/documentation/configu"><spring:message code="HERE"/></a>.
<div class="row-fluid">
<div class="alert alert-info span offset12">
<span class="label label-important"><spring:message code="WARNING"/></span> <spring:message
code="NO_PRODUCTION_DATABASE_CONFIGURED"/>&nbsp;<a
href="http://www.wisemapping.org/documentation/configu"><spring:message code="HERE"/></a>.
</div>
</div>
</c:if>

View File

@ -3,7 +3,7 @@
<!DOCTYPE HTML>
<html>
<html lang="en">
<head>
<base href="${baseURL}/">
<title><spring:message code="SITE.TITLE"/> - <spring:message code="MY_WISEMAPS"/></title>
@ -99,7 +99,7 @@
// Re-arrange pagination actions ...
$("#tableFooter").appendTo("#mindmapListTable_wrapper");
$("#mindmapListTable_length").appendTo("#tableFooter");
$('#mindmapListTable_length select').addClass('span1');
$('#mindmapListTable_length select').attr("style", "width:60px;");
$('input:checkbox[id="selectAll"]').click(function () {
@ -122,99 +122,114 @@
<jsp:param name="showLogout" value="true"/>
</jsp:include>
<div style="min-height: 500px">
<div id="mindmapListContainer">
<div id="messagesPanel" class="alert alert-error alert-block fade in hide" style="margin-top: 10px">
<strong><spring:message code="UNEXPECTED_ERROR"/></strong>
<div class="row-fluid hide" id="messagesPanel" style="margin-top: 20px">
<div class="span2"></div>
<div class="alert alert-error alert-block fade in span8">
<strong><spring:message code="UNEXPECTED_ERROR"/></strong>
<p><spring:message code="UNEXPECTED_ERROR_SERVER_ERROR"/></p>
<p><spring:message code="UNEXPECTED_ERROR_SERVER_ERROR"/></p>
<div></div>
<div></div>
</div>
</div>
<div class="row-fluid" style="min-height: 500px">
<div class="span1"></div>
<div class="span2" id="foldersContainer">
<ul class="nav nav-list">
<li class="nav-header"><spring:message code="FILTERS"/></li>
<li data-filter="all" class="active"><a href="#"><i class="icon-inbox icon-white"></i> <spring:message
code="ALL_MAPS"/></a></li>
<li data-filter="my_maps"><a href="#"><i class="icon-user"></i> <spring:message code="MY_MAPS"/></a>
</li>
<li data-filter="shared_with_me"><a href="#"><i class="icon-share"></i> <spring:message
code="SHARED_WITH_ME"/></a></li>
<li data-filter="starred"><a href="#"><i class="icon-star"></i> <spring:message code="STARRED"/></a>
</li>
<li data-filter="public"><a href="#"><i class="icon-globe"></i> <spring:message code="PUBLIC_MAPS"/></a>
</li>
</ul>
</div>
<div class="buttonsToolbar btn-toolbar ${requestScope['google.ads.enabled']?'span7':'span8'}">
<div id="tableActions">
<div id="pageInfo"></div>
<div class="btn-group" id="pageButtons">
<button class="btn" id="pPageBtn"><strong>&lt;</strong></button>
<button class="btn" id="nPageBtn"><strong>&gt;</strong></button>
</div>
</div>
<div id="foldersContainer">
<ul class="nav nav-list">
<li class="nav-header"><spring:message code="FILTERS"/></li>
<li data-filter="all" class="active"><a href="#"><i class="icon-inbox icon-white"></i> <spring:message
code="ALL_MAPS"/></a></li>
<li data-filter="my_maps"><a href="#"><i class="icon-user"></i> <spring:message code="MY_MAPS"/></a>
<div class="btn-group">
<button id="newBtn" class="btn btn-primary"><i class="icon-file icon-white"></i> <spring:message
code="NEW"/></button>
<button id="importBtn" class="btn btn-primary"><i class="icon-upload icon-white"></i>
<spring:message code="IMPORT"/>
</button>
</div>
<div class="btn-group act-multiple" id="deleteBtn" style="display:none">
<button class="btn btn-primary"><i class="icon-trash icon-white"></i> <spring:message
code="DELETE"/></button>
</div>
<div id="infoBtn" class="btn-group act-single" style="display:none">
<button class="btn btn-primary"><i class="icon-exclamation-sign icon-white"></i> <spring:message
code="INFO"/></button>
</div>
<div id="actionsBtn" class="btn-group act-single" style="display:none">
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
<i class="icon-asterisk icon-white"></i> <spring:message code="MORE"/>
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li id="duplicateBtn"><a href="#" onclick="return false"><i class="icon-plus-sign"></i>
<spring:message code="DUPLICATE"/></a></li>
<li id="renameBtn"><a href="#" onclick="return false"><i class="icon-edit"></i> <spring:message
code="RENAME"/></a></li>
<li id="publishBtn"><a href="#" onclick="return false"><i class="icon-globe"></i>
<spring:message code="PUBLISH"/></a>
</li>
<li data-filter="shared_with_me"><a href="#"><i class="icon-share"></i> <spring:message
code="SHARED_WITH_ME"/></a></li>
<li data-filter="starred"><a href="#"><i class="icon-star"></i> <spring:message code="STARRED"/></a>
<li id="shareBtn"><a href="#" onclick="return false"><i class="icon-share"></i> <spring:message
code="SHARE"/></a></li>
<li id="exportBtn"><a href="#" onclick="return false"><i class="icon-download"></i>
<spring:message
code="EXPORT"/></a>
</li>
<li data-filter="public"><a href="#"><i class="icon-globe"></i> <spring:message code="PUBLIC_MAPS"/></a>
<li id="printBtn"><a href="#" onclick="return false"><i class="icon-print"></i> <spring:message
code="PRINT"/></a></li>
<li id="historyBtn"><a href="#" onclick="return false"><i class="icon-time"></i> <spring:message
code="HISTORY"/></a>
</li>
</ul>
</div>
<div style="width: 78%;float: left;">
<div id="buttonsToolbar" class="btn-toolbar">
<div class="btn-group">
<button id="newBtn" class="btn btn-primary"><i class="icon-file icon-white"></i> <spring:message
code="NEW"/></button>
<button id="importBtn" class="btn btn-primary"><i class="icon-upload icon-white"></i>
<spring:message code="IMPORT"/>
</button>
</div>
<div class="btn-group act-multiple" id="deleteBtn" style="display:none">
<button class="btn btn-primary"><i class="icon-trash icon-white"></i> <spring:message
code="DELETE"/></button>
</div>
<div id="infoBtn" class="btn-group act-single" style="display:none">
<button class="btn btn-primary"><i class="icon-exclamation-sign icon-white"></i> <spring:message
code="INFO"/></button>
</div>
<div id="actionsBtn" class="btn-group act-single" style="display:none">
<button class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
<i class="icon-asterisk icon-white"></i> <spring:message code="MORE"/>
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li id="duplicateBtn"><a href="#" onclick="return false"><i class="icon-plus-sign"></i>
<spring:message code="DUPLICATE"/></a></li>
<li id="renameBtn"><a href="#" onclick="return false"><i class="icon-edit"></i> <spring:message
code="RENAME"/></a></li>
<li id="publishBtn"><a href="#" onclick="return false"><i class="icon-globe"></i>
<spring:message code="PUBLISH"/></a>
</li>
<li id="shareBtn"><a href="#" onclick="return false"><i class="icon-share"></i> <spring:message
code="SHARE"/></a></li>
<li id="exportBtn"><a href="#" onclick="return false"><i class="icon-download"></i>
<spring:message
code="EXPORT"/></a>
</li>
<li id="printBtn"><a href="#" onclick="return false"><i class="icon-print"></i> <spring:message
code="PRINT"/></a></li>
<li id="historyBtn"><a href="#" onclick="return false"><i class="icon-time"></i> <spring:message
code="HISTORY"/></a>
</li>
</ul>
</div>
<div id="tableActions" class="btn-toolbar">
<div class="btn-group" id="pageButtons">
<button class="btn" id="pPageBtn"><strong>&lt;</strong></button>
<button class="btn" id="nPageBtn"><strong>&gt;</strong></button>
</div>
<div id="pageInfo"></div>
</div>
</div>
<div id="map-table">
<table class="table" id="mindmapListTable"></table>
<div id="tableFooter" class="form-inline"></div>
</div>
<div id="map-table">
<table class="table" id="mindmapListTable"></table>
<div id="tableFooter" class="form-inline"></div>
</div>
</div>
<div class="span1">
<c:if test="${requestScope['google.ads.enabled']}">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-7564778578019285";
/* WiseMapping Mindmap List */
google_ad_slot = "4071968444";
google_ad_width = 120;
google_ad_height = 440;
//-->
</script>
<div style="margin-top:5px;">
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
</c:if>
</div>
</div>
<div style="border-top: 1px solid #000000">
<jsp:include page="footer.jsp"/>
</div>
<jsp:include page="footer.jsp"/>
<div id="dialogsContainer">
<!-- New map dialog -->
@ -421,22 +436,5 @@
</div>
</div>
</div>
<c:if test="${requestScope['google.ads.enabled']}">
<script type="text/javascript"><!--
google_ad_client = "ca-pub-7564778578019285";
/* WiseMapping Mindmap List */
google_ad_slot = "4071968444";
google_ad_width = 120;
google_ad_height = 460;
//-->
</script>
<div style="position:absolute;right: 9px;top: 90px">
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
</c:if>
</body>
</html>

View File

@ -34,8 +34,9 @@
<jsp:include page="header.jsp"/>
<div class="pageBody">
<div class="pageBodyContent">
<div class="pageBody row-fluid">
<div class="span2"></div>
<div class="pageBodyContent span8">
<tiles:insertAttribute name="body"/>
</div>
</div>