mirror of
https://bitbucket.org/wisemapping/wisemapping-open-source.git
synced 2024-11-05 07:03:24 +01:00
Fix import.
This commit is contained in:
parent
b245b97db3
commit
873e635b9a
@ -55,16 +55,14 @@ public class ImportController
|
||||
mindMap.setOwner(user);
|
||||
|
||||
final MindmapService mindmapService = this.getMindmapService();
|
||||
mindmapService.addMindmap(mindMap,user);
|
||||
mindmapService.addMindmap(mindMap, user);
|
||||
|
||||
final StringBuilder redirectionTo = new StringBuilder("redirect:editor.htm?mapId=");
|
||||
redirectionTo.append(mindMap.getId());
|
||||
redirectionTo.append("&action=open");
|
||||
final StringBuilder redirectionTo = new StringBuilder("redirect:" + mindMap.getId() + "/edit.htm");
|
||||
return new ModelAndView(redirectionTo.toString());
|
||||
}
|
||||
|
||||
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
|
||||
throws ServletException {
|
||||
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder)
|
||||
throws ServletException {
|
||||
// to actually be able to convert Multipart instance to a String
|
||||
// we have to register a custom editor
|
||||
binder.registerCustomEditor(String.class, new StringMultipartFileEditor());
|
||||
|
@ -1,58 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package com.wisemapping.controller;
|
||||
|
||||
import com.wisemapping.exceptions.WiseMappingException;
|
||||
import com.wisemapping.service.MindmapService;
|
||||
import com.wisemapping.view.MindMapInfoBean;
|
||||
import com.wisemapping.model.MindMap;
|
||||
import com.wisemapping.model.User;
|
||||
import com.wisemapping.security.Utils;
|
||||
import org.springframework.validation.BindException;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
|
||||
import javax.servlet.ServletException;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
public class RenameMindmapController
|
||||
extends BaseSimpleFormController {
|
||||
|
||||
//~ Methods ..............................................................................................
|
||||
protected Object formBackingObject(HttpServletRequest httpServletRequest) throws Exception {
|
||||
final MindMap mindMap = getMindmapFromRequest(httpServletRequest);
|
||||
User user = Utils.getUser();
|
||||
if (!mindMap.getOwner().equals(user)) {
|
||||
throw new IllegalStateException("No enough right to execute this operation");
|
||||
}
|
||||
|
||||
|
||||
return new MindMapInfoBean(mindMap);
|
||||
}
|
||||
|
||||
public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors)
|
||||
throws ServletException, WiseMappingException {
|
||||
final MindMapInfoBean bean = (MindMapInfoBean) command;
|
||||
final MindmapService mindmapService = this.getMindmapService();
|
||||
mindmapService.updateMindmap(bean.getMindMap(), false);
|
||||
|
||||
return new ModelAndView(getSuccessView());
|
||||
}
|
||||
}
|
@ -1,98 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package com.wisemapping.controller;
|
||||
|
||||
import com.wisemapping.model.MindMap;
|
||||
import com.wisemapping.model.MindMapCriteria;
|
||||
import com.wisemapping.security.Utils;
|
||||
import com.wisemapping.view.MindMapBean;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import org.springframework.web.servlet.mvc.multiaction.NoSuchRequestHandlingMethodException;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class SearchController extends BaseMultiActionController {
|
||||
private static final int MAX_RESULT = 20;
|
||||
|
||||
public ModelAndView handleNoSuchRequestHandlingMethod(NoSuchRequestHandlingMethodException noSuchRequestHandlingMethodException, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
|
||||
return searchPage(httpServletRequest, httpServletResponse);
|
||||
}
|
||||
|
||||
public ModelAndView searchPage(HttpServletRequest request, HttpServletResponse response) {
|
||||
logger.info("Search");
|
||||
return new ModelAndView("search");
|
||||
}
|
||||
|
||||
public ModelAndView showAll(HttpServletRequest request, HttpServletResponse response)
|
||||
{
|
||||
final Map<String, Object> viewAttrMap = getRequestAttributes(request);
|
||||
|
||||
viewAttrMap.put("emptyCriteria", false);
|
||||
com.wisemapping.model.User user = Utils.getUser();
|
||||
viewAttrMap.put("user",user);
|
||||
|
||||
final List<MindMap> searchResult = getMindmapService().getPublicMaps(MAX_RESULT);
|
||||
final List<MindMapBean> result = new ArrayList<MindMapBean>();
|
||||
for (MindMap mindMap : searchResult) {
|
||||
result.add(new MindMapBean(mindMap));
|
||||
}
|
||||
viewAttrMap.put("wisemapsList", result);
|
||||
|
||||
|
||||
return new ModelAndView("searchResult", viewAttrMap);
|
||||
}
|
||||
|
||||
public ModelAndView search(HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
logger.info("Search Result");
|
||||
|
||||
final Map<String, Object> viewAttrMap = getRequestAttributes(request);
|
||||
|
||||
final MindMapCriteria criteria = getMindMapCriteriaFromRequest(request);
|
||||
viewAttrMap.put("emptyCriteria", criteria.isEmpty());
|
||||
com.wisemapping.model.User user = Utils.getUser();
|
||||
viewAttrMap.put("user",user);
|
||||
if (!criteria.isEmpty()) {
|
||||
final List<MindMap> searchResult = getMindmapService().search(criteria);
|
||||
final List<MindMapBean> result = new ArrayList<MindMapBean>();
|
||||
for (MindMap mindMap : searchResult) {
|
||||
result.add(new MindMapBean(mindMap));
|
||||
}
|
||||
viewAttrMap.put("wisemapsList", result);
|
||||
}
|
||||
|
||||
return new ModelAndView("searchResult", viewAttrMap);
|
||||
}
|
||||
|
||||
private Map<String, Object> getRequestAttributes(HttpServletRequest request) {
|
||||
final Map<String, Object> viewAttrMap = new HashMap<String, Object>();
|
||||
viewAttrMap.put("titleOrTags", request.getParameter("titleOrTags"));
|
||||
final String name = request.getParameter("name");
|
||||
viewAttrMap.put("name", name);
|
||||
viewAttrMap.put("description", request.getParameter("description"));
|
||||
viewAttrMap.put("tags", request.getParameter("tags"));
|
||||
viewAttrMap.put("advanceSearch", request.getParameter("advanceSearch"));
|
||||
return viewAttrMap;
|
||||
}
|
||||
}
|
@ -25,6 +25,7 @@ import com.wisemapping.importer.ImporterException;
|
||||
import com.wisemapping.importer.ImporterFactory;
|
||||
import com.wisemapping.model.MindMap;
|
||||
import com.wisemapping.view.ImportMapBean;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.validation.Errors;
|
||||
import org.springframework.validation.ValidationUtils;
|
||||
|
||||
@ -32,26 +33,25 @@ import java.io.ByteArrayInputStream;
|
||||
|
||||
public class ImportMapValidator extends MapInfoValidator {
|
||||
|
||||
public boolean supports(final Class clazz) {
|
||||
public boolean supports(final Class clazz) {
|
||||
return clazz.equals(ImportMapBean.class);
|
||||
}
|
||||
|
||||
public void validate(Object obj, Errors errors) {
|
||||
ImportMapBean bean = (ImportMapBean) obj;
|
||||
|
||||
super.validate(obj,errors);
|
||||
public void validate(Object obj, @NotNull Errors errors) {
|
||||
final ImportMapBean bean = (ImportMapBean) obj;
|
||||
|
||||
this.validateMapInfo(errors, bean.getTitle(), bean.getDescription());
|
||||
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "mapFile", Messages.FIELD_REQUIRED);
|
||||
try {
|
||||
final Importer importer = ImporterFactory.getInstance().getImporter(ImportFormat.FREEMIND);
|
||||
final ByteArrayInputStream stream = new ByteArrayInputStream(bean.getMapFile().getBytes());
|
||||
final MindMap map = importer.importMap(bean.getTitle(),bean.getDescription(),stream);
|
||||
final MindMap map = importer.importMap(bean.getTitle(), bean.getDescription(), stream);
|
||||
|
||||
bean.setImportedMap(map);
|
||||
|
||||
} catch (ImporterException e) {
|
||||
Object[] errorArgs = new Object[]{e.getMessage()};
|
||||
errors.rejectValue("mapFile", Messages.IMPORT_MAP_ERROR,errorArgs,"FreeMind could not be imported.");
|
||||
Object[] errorArgs = new Object[]{e.getMessage()};
|
||||
errors.rejectValue("mapFile", Messages.IMPORT_MAP_ERROR, errorArgs, "FreeMind could not be imported.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -48,38 +48,45 @@ public class MapInfoValidator implements Validator {
|
||||
|
||||
public void validate(Object obj, @NotNull Errors errors) {
|
||||
final MindMap map = (MindMap) obj;
|
||||
|
||||
|
||||
if (map == null) {
|
||||
errors.rejectValue("map", "error.not-specified", null, "Value required.");
|
||||
} else {
|
||||
|
||||
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", Messages.FIELD_REQUIRED);
|
||||
|
||||
final String title = map.getTitle();
|
||||
final String desc = map.getDescription();
|
||||
if (title != null && title.length() > 0) {
|
||||
if (title.length() > Constants.MAX_MAP_NAME_LENGTH) {
|
||||
errors.rejectValue("title", "field.max.length",
|
||||
new Object[]{Constants.MAX_MAP_NAME_LENGTH},
|
||||
"The title must have less than " + Constants.MAX_MAP_NAME_LENGTH + " characters.");
|
||||
} else {
|
||||
// Map already exists ?
|
||||
final MindmapService service = this.getMindmapService();
|
||||
final User user = com.wisemapping.security.Utils.getUser();
|
||||
final MindMap mindMap = service.getMindmapByTitle(title, user);
|
||||
if (mindMap != null) {
|
||||
errors.rejectValue("title", Messages.MAP_TITLE_ALREADY_EXISTS);
|
||||
}
|
||||
}
|
||||
}
|
||||
ValidatorUtils.rejectIfExceeded(errors,
|
||||
"description",
|
||||
"The description must have less than " + Constants.MAX_MAP_DESCRIPTION_LENGTH + " characters.",
|
||||
desc,
|
||||
Constants.MAX_MAP_DESCRIPTION_LENGTH);
|
||||
validateMapInfo(errors, title, desc);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void validateMapInfo(Errors errors, String title, String desc) {
|
||||
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", Messages.FIELD_REQUIRED);
|
||||
|
||||
|
||||
if (title != null && title.length() > 0) {
|
||||
if (title.length() > Constants.MAX_MAP_NAME_LENGTH) {
|
||||
errors.rejectValue("title", "field.max.length",
|
||||
new Object[]{Constants.MAX_MAP_NAME_LENGTH},
|
||||
"The title must have less than " + Constants.MAX_MAP_NAME_LENGTH + " characters.");
|
||||
} else {
|
||||
// Map already exists ?
|
||||
final MindmapService service = this.getMindmapService();
|
||||
final User user = com.wisemapping.security.Utils.getUser();
|
||||
final MindMap mindMap = service.getMindmapByTitle(title, user);
|
||||
if (mindMap != null) {
|
||||
errors.rejectValue("title", Messages.MAP_TITLE_ALREADY_EXISTS);
|
||||
}
|
||||
}
|
||||
}
|
||||
ValidatorUtils.rejectIfExceeded(errors,
|
||||
"description",
|
||||
"The description must have less than " + Constants.MAX_MAP_DESCRIPTION_LENGTH + " characters.",
|
||||
desc,
|
||||
Constants.MAX_MAP_DESCRIPTION_LENGTH);
|
||||
}
|
||||
|
||||
public MindmapService getMindmapService() {
|
||||
return mindmapService;
|
||||
}
|
||||
|
@ -1,82 +0,0 @@
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
package com.wisemapping.validator;
|
||||
|
||||
import org.springframework.validation.Validator;
|
||||
import org.springframework.validation.Errors;
|
||||
import org.springframework.validation.ValidationUtils;
|
||||
import com.wisemapping.service.MindmapService;
|
||||
import com.wisemapping.view.MindMapInfoBean;
|
||||
import com.wisemapping.controller.Messages;
|
||||
import com.wisemapping.model.Constants;
|
||||
import com.wisemapping.model.User;
|
||||
import com.wisemapping.model.MindMap;
|
||||
|
||||
public class RenameMapValidator
|
||||
implements Validator {
|
||||
|
||||
private MindmapService mindmapService;
|
||||
|
||||
public boolean supports(final Class clazz) {
|
||||
return clazz.equals(MindMapInfoBean.class);
|
||||
}
|
||||
|
||||
public void validate(Object obj, Errors errors) {
|
||||
final MindMapInfoBean map = (MindMapInfoBean) obj;
|
||||
if (map == null) {
|
||||
errors.rejectValue("map", "error.not-specified", null, "Value required.");
|
||||
} else {
|
||||
|
||||
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "title", Messages.FIELD_REQUIRED);
|
||||
|
||||
final String title = map.getTitle();
|
||||
final String desc = map.getDescription();
|
||||
if (title != null && title.length() > 0) {
|
||||
if (title.length() > Constants.MAX_MAP_NAME_LENGTH) {
|
||||
errors.rejectValue("title", "field.max.length",
|
||||
new Object[]{Constants.MAX_MAP_NAME_LENGTH},
|
||||
"The title must have less than " + Constants.MAX_MAP_NAME_LENGTH + " characters.");
|
||||
} else {
|
||||
// Map alredy exists ?
|
||||
final MindmapService service = this.getMindmapService();
|
||||
|
||||
final User user = com.wisemapping.security.Utils.getUser();
|
||||
final MindMap mindMap = service.getMindmapByTitle(title, user);
|
||||
if (mindMap != null && map.getMindMap().getId() != mindMap.getId() ) {
|
||||
errors.rejectValue("title", Messages.MAP_TITLE_ALREADY_EXISTS);
|
||||
}
|
||||
}
|
||||
}
|
||||
ValidatorUtils.rejectIfExceeded(errors,
|
||||
"description",
|
||||
"The description must have less than "+Constants.MAX_MAP_DESCRIPTION_LENGTH + " characters.",
|
||||
desc,
|
||||
Constants.MAX_MAP_DESCRIPTION_LENGTH);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public MindmapService getMindmapService() {
|
||||
return mindmapService;
|
||||
}
|
||||
|
||||
public void setMindmapService(MindmapService mindmapService) {
|
||||
this.mindmapService = mindmapService;
|
||||
}
|
||||
}
|
@ -78,9 +78,6 @@ SAVE=Save
|
||||
DISCARD_CHANGES=Discard Changes
|
||||
ABOUT=About
|
||||
ABOUT_TITLE=What is WiseMapping?
|
||||
BLOG=Blog
|
||||
BLOG_TITLE=WiseMapping Blog
|
||||
NEWS=News
|
||||
KEYBOARD=Keyboard Shortcuts
|
||||
KEYBOARD_MSG=These are the keyboard shortcuts you can use in the editor!
|
||||
FIRST_STEPS=Editor First Steps
|
||||
@ -93,18 +90,7 @@ ALREADY_A_MEMBER=Already a member?
|
||||
WORD_VERIFICATION=Word Verification
|
||||
TERM_OF_THE_SERVICE=Terms of Service:
|
||||
FORGOT_PASSWORD_MESSAGE=Please enter your email to start the password recovery process.
|
||||
LOADING_MSG=Loading ...
|
||||
SEARCH_TITLE=Search for WiseMaps
|
||||
SEARCH_TEXT=Search for public mind maps using either its name or tags
|
||||
SEARCH_FIELD=Map Title or Tag
|
||||
SEARCH=Search
|
||||
SEARCH_RESULTS=Search Results
|
||||
NO_SEARCH_RESULTS=No results were found. Go ahead and be the first one to publish a mind map about it!
|
||||
NO_SEARCH_TERM=You didn't enter any search terms.
|
||||
ADVANCE_SEARCH=Advanced Search
|
||||
SIMPLE_SEARCH=Simple Search
|
||||
TRYNOW= Try Demo !
|
||||
VIDEO=WiseMapping in 2 minutes
|
||||
|
||||
FIELD_REQUIRED=Required field cannot be left blank
|
||||
EMAIL_ALREADY_EXIST=Email already exists
|
||||
@ -253,14 +239,6 @@ FREEMIND_EXPORT_IMPORT_MESSAGE=You can now easily import and export mind maps fr
|
||||
EDITOR_TOOLBAR_IMPROVED=Usability Improvement: The editor toolbar has been redesign
|
||||
EDITOR_TOOLBAR_IMPROVED_MESSAGE= The toolbar has been redesign to improve its usability.
|
||||
COLLABORATE=Collaborate
|
||||
PRINT_FEATURE_IMPLEMENTED=You can print your maps now
|
||||
PRINT_FEATURE_IMPLEMENTED_MESSAGE=You can now easily print your maps from the editor and the map list!
|
||||
EMBEDDED_MAP_SIZE=* Note: You can change embedded map size modifying 'height' and 'width' style properties. You can also adjust the zoom factor modifying 'zoom' parameter from the URL.
|
||||
NEWSLETTER_DESC = Get News delivered to <br>your Inbox
|
||||
USABILITY_EDITING_IMPROVED= Usability Improvement: Node text Editing
|
||||
USABILITY_EDITING_IMPROVED_ESC= Usability Improvement: Cancelling Node text Editing with the ESC Key
|
||||
USABILITY_EDITING_IMPROVED_TEXT=Now you have 3 different ways of editing a node text.</br><ul><li><b>Typing:</b> Start typing to replace the focused node text.</li><li><b>F2:</b> Pressing F2 key, will let you edit the node text</li><li><b>Double click:</b> Double click with the mouse on the node to start editing its text</li></ul>
|
||||
USABILITY_EDITING_IMPROVED_TEXT_ESC=Now, You can also cancel the changes that you've made in the text of a node by pressing the ESC key while editing it's text.
|
||||
IMPORT-EXPORT_ISSUES_FIXED=Usability Improvement: Import-Export issues have been solved.
|
||||
GO_TO= Go to my Wisemaps
|
||||
|
||||
@ -289,18 +267,6 @@ EDITOR_LINKS_TEXT=You can add Links to the topics very easily using the link ico
|
||||
|
||||
IMPORT_EXPORT_IMPROVEMENTS=We have done some improvements in the import and export features
|
||||
|
||||
USERS_1500=We already have 2100 users!!, Thanks to all of you that have trust us in this starting phase...
|
||||
NO_PRIVATE_ANY_MORE= We are not private any more! More than 2100 users have tested and used the application, it's time to stop being private!.. Stay tune because we have a lot of new ideas for WiseMapping!!
|
||||
NO_PRIVATE_ANY_MORE_SHORT= We are not private any more!
|
||||
NO_PRIVATE_ANY_MORE_TEXT=More than 1500 real users have tested the application!, so it's time to stop being private!
|
||||
|
||||
NEWS_ADD_ICON=Mind Map feature: Add icons to the topics
|
||||
NEWS_ADD_ICON_SHORT=Add icons to the topics
|
||||
NEWS_ADD_ICON_TEXT=You can now add Icons to the topics very easily using the link icon in the toolbar
|
||||
|
||||
NEWS_TOOLBAR_SHORT =New Editor Toolbar
|
||||
NEWS_TOOLBAR_TEXT = We have update our editor toolbar in order to be more intuitive.
|
||||
|
||||
#####FOOTER
|
||||
COPYRIGHT=Powered by WiseMapping
|
||||
TERMS_AND_CONDITIONS=Terms and Conditions
|
||||
@ -332,3 +298,4 @@ INVALID_EMAIL_ERROR = The e-mail was not verified
|
||||
BROWSER_NOT_SUPPOERTED= Current Browser is not supported.
|
||||
CHECK_BROWSERS= You can check supported browser at
|
||||
NO_PRODUCTION_DATABASE_CONFIGURED=Note: Although HSQLDB is bundled with WiseMapping by default during the installation, we do not recommend this database for production use. Please consider using MySQL 5.5 instead. You can find more information how to configure MySQL
|
||||
IMPORT=Import
|
||||
|
@ -158,19 +158,13 @@
|
||||
<put name="body" value="/jsp/mindmapRename.jsp"/>
|
||||
</definition>
|
||||
|
||||
<definition name="importMap" extends="formDialogTemplate">
|
||||
<put name="title" value="IMPORT_MINDMAP"/>
|
||||
<put name="details" value="IMPORT_MINDMAP_INFO"/>
|
||||
<put name="body" value="/jsp/mindmapImport.jsp"/>
|
||||
</definition>
|
||||
|
||||
<definition name="keyboard" extends="formDialogTemplate">
|
||||
<put name="title" value="KEYBOARD"/>
|
||||
<put name="details" value="KEYBOARD_MSG"/>
|
||||
<put name="body" value="/jsp/keyboard.jsp"/>
|
||||
</definition>
|
||||
|
||||
<definition name="importMapError" extends="pageTemplate">
|
||||
<definition name="importMap" extends="pageTemplate">
|
||||
<put name="title" value="IMPORT_MINDMAP"/>
|
||||
<put name="details" value="IMPORT_MINDMAP_INFO"/>
|
||||
<put name="body" value="/jsp/mindmapImportError.jsp"/>
|
||||
|
@ -125,24 +125,11 @@
|
||||
<property name="userService" ref="userService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="renameMapValidator" class="com.wisemapping.validator.RenameMapValidator">
|
||||
<property name="mindmapService" ref="mindmapService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="importMapValidator" class="com.wisemapping.validator.ImportMapValidator">
|
||||
<property name="mindmapService" ref="mindmapService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="renameMapController" class="com.wisemapping.controller.RenameMindmapController">
|
||||
<property name="sessionForm" value="false"/>
|
||||
<property name="commandName" value="renameMap"/>
|
||||
<property name="commandClass" value="com.wisemapping.view.MindMapInfoBean"/>
|
||||
<property name="validator" ref="renameMapValidator"/>
|
||||
<property name="formView" value="renameMap"/>
|
||||
<property name="successView" value="closeDialog"/>
|
||||
<property name="mindmapService" ref="mindmapService"/>
|
||||
<property name="userService" ref="userService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="historyController" class="com.wisemapping.controller.HistoryController">
|
||||
<property name="methodNameResolver" ref="paramResolverByAction"/>
|
||||
@ -156,7 +143,7 @@
|
||||
<property name="commandClass" value="com.wisemapping.view.ImportMapBean"/>
|
||||
<property name="validator" ref="importMapValidator"/>
|
||||
<property name="formView" value="importMap"/>
|
||||
<property name="errorView" value="importMapError"/>
|
||||
<property name="errorView" value="importMap"/>
|
||||
<property name="mindmapService" ref="mindmapService"/>
|
||||
<property name="userService" ref="userService"/>
|
||||
</bean>
|
||||
@ -185,11 +172,6 @@
|
||||
<property name="userService" ref="userService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="searchController" class="com.wisemapping.controller.SearchController">
|
||||
<property name="methodNameResolver" ref="paramResolverByAction"/>
|
||||
<property name="mindmapService" ref="mindmapService"/>
|
||||
</bean>
|
||||
|
||||
<bean id="keyboardController" class="com.wisemapping.controller.KeyboardController">
|
||||
<property name="methodNameResolver" ref="paramResolverByAction"/>
|
||||
<property name="mindmapService" ref="mindmapService"/>
|
||||
@ -226,12 +208,9 @@
|
||||
<prop key="/c/publish.htm">publishController</prop>
|
||||
<prop key="/c/editProfile.htm">editProfileController</prop>
|
||||
<prop key="/c/tags.htm">tagsController</prop>
|
||||
<prop key="/c/search.htm">searchController</prop>
|
||||
<prop key="/c/keyboard.htm">keyboardController</prop>
|
||||
<prop key="/c/publicView.htm">publicView</prop>
|
||||
<prop key="/c/embeddedView.htm">embeddedView</prop>
|
||||
<prop key="/c/renameMap.htm">renameMapController</prop>
|
||||
<prop key="/c/importMap.htm">importMapController</prop>
|
||||
<prop key="/c/map/import.htm">importMapController</prop>
|
||||
<prop key="/c/history.htm">historyController</prop>
|
||||
<prop key="/c/installCFG.htm">homeController</prop>
|
||||
</props>
|
||||
|
@ -28,7 +28,7 @@
|
||||
|
||||
/* ------------------------------ Tags ---------------------------------- */
|
||||
|
||||
@tags-width: 20%;
|
||||
@tags-width: 10%;
|
||||
@tags-border-size: @base-border-size;
|
||||
@tags-padding: @base-padding;
|
||||
|
||||
|
@ -6,375 +6,20 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#intro {
|
||||
width: 100%;
|
||||
height: 310px;
|
||||
border-bottom: 1px solid #bbb4d6;
|
||||
background-color: #e5e5e5;
|
||||
}
|
||||
|
||||
#introContent {
|
||||
width: 800px;
|
||||
margin: auto;
|
||||
position: relative;
|
||||
height: 250px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#introAnimation {
|
||||
float: left;
|
||||
width: 510px;
|
||||
height: 210px;
|
||||
margin: 40px 12px 0 10px;
|
||||
}
|
||||
|
||||
.contentImage {
|
||||
height: 210px;
|
||||
width: 245px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.contentText {
|
||||
float: left;
|
||||
width: 255px;
|
||||
margin-left: 50px;
|
||||
margin-top: 25px;
|
||||
font: normal 80% "trebuchet ms", verdana, arial, helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.contentTitle {
|
||||
width: 100px;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
color: #808080;
|
||||
margin-left: -2px;
|
||||
}
|
||||
|
||||
.contentDescription {
|
||||
font-size: 15px;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
#introRightContent {
|
||||
float: left;
|
||||
width: 190px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#searchAdvance {
|
||||
padding: 5px;
|
||||
border: 1px dotted white;
|
||||
}
|
||||
|
||||
#searchAdvance table {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#searchResult {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
height: 550px;
|
||||
overflow: auto;
|
||||
border: 0 solid gray;
|
||||
background-color: white;
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#searchResultTable table {
|
||||
width: 100%;
|
||||
border: 0 solid gray;
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
#searchResultTable thead, #searchAdvance thead {
|
||||
background-color: #093A9D;
|
||||
font-size: 12px;
|
||||
font-weight: normal;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#searchResultTable td {
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #EEEEEE;
|
||||
color: #999999;
|
||||
font-size: 12px;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
#searchResultTable th, #searchAdvance th {
|
||||
color: white;
|
||||
border-right: 1px dotted #ffffff;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
font-size: 12px;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#searchResultTable tbody tr:hover {
|
||||
background-color: #E2f0f6;
|
||||
}
|
||||
|
||||
#searchResultTable tr {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
#searchResultTable .mapTitle {
|
||||
font-size: 13px;
|
||||
color: #666666;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#searchResultTable .mapTags {
|
||||
font-size: 11px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#search {
|
||||
clear: both;
|
||||
width: 200px;
|
||||
font-size: 12px;
|
||||
padding: 9px 9px 0;
|
||||
}
|
||||
|
||||
#searchTitle {
|
||||
height: 16px;
|
||||
top: 3px;
|
||||
color: #6186CB;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#searchText {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
#searchField {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
#searchField input {
|
||||
color: gray;
|
||||
width: 93%;
|
||||
}
|
||||
|
||||
#searchButton {
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
#searchButtonContainer {
|
||||
float: right;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
|
||||
div#tryNow a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
|
||||
div#tryNow .tryBtnText {
|
||||
padding: 0 20px;
|
||||
position: relative;
|
||||
height: 70px;
|
||||
font-size: 20px;
|
||||
color: #093A9D;
|
||||
font-weight: bold;
|
||||
top: 50%;
|
||||
margin-top: -13px;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
#video {
|
||||
clear: both;
|
||||
font-size: 12px;
|
||||
text-align: center;
|
||||
margin-top: 10px;
|
||||
margin-left: 20px;
|
||||
height:51px;
|
||||
}
|
||||
|
||||
div#video .videoIconContainer {
|
||||
display:inline;
|
||||
height:51px;
|
||||
margin-right:10px;
|
||||
position:relative;
|
||||
top:14px;
|
||||
width:20px;
|
||||
}
|
||||
|
||||
div#video img {
|
||||
width:20px;
|
||||
}
|
||||
|
||||
div#video a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div#video .videoBtnText {
|
||||
position: relative;
|
||||
height: 70px;
|
||||
font-size: 12px;
|
||||
color: #093A9D;
|
||||
font-weight: bold;
|
||||
white-space: normal;
|
||||
display:inline;
|
||||
width:125px;
|
||||
|
||||
}
|
||||
/* MAIN CONTENT STYLES */
|
||||
|
||||
#main {
|
||||
width: 800px;
|
||||
margin: auto;
|
||||
position: relative;
|
||||
height: 315px;
|
||||
clear: both;
|
||||
}
|
||||
|
||||
#mainContent, #introContent {
|
||||
padding: 10px 0 15px 0;
|
||||
font-size: 80%;
|
||||
width: 800px;
|
||||
}
|
||||
|
||||
.separator {
|
||||
width: 520px;
|
||||
padding-bottom: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
#newsAndArticles, #recentMaps, #join {
|
||||
width: 230px;
|
||||
float: left;
|
||||
margin-right: 0;
|
||||
padding: 9px;
|
||||
}
|
||||
|
||||
#recentMaps {
|
||||
margin-right: 10px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#join {
|
||||
|
||||
}
|
||||
|
||||
#join a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
div#signUpButton {
|
||||
color: black;
|
||||
padding: 5px;
|
||||
margin-bottom: 5px; /*text-align: center;*/
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
div#signUpButton a {
|
||||
font-size: 120%; /*color: #660066;*/
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div#signUpButton .signUpBtnContainer {
|
||||
left: 60px;
|
||||
}
|
||||
|
||||
|
||||
div#signUpButton .signUpText {
|
||||
padding: 0 20px;
|
||||
position: relative;
|
||||
height: 25px;
|
||||
color: #093A9D;
|
||||
font-weight: bold;
|
||||
top: 50%;
|
||||
margin-top: -7px;
|
||||
}
|
||||
|
||||
#newsAndArticles dl, #recentMaps dl, #join dl, #search dl {
|
||||
width: 100%; /*padding-bottom: 15px;*/
|
||||
color: black;
|
||||
}
|
||||
|
||||
#newsAndArticles dl dt, #join dl dt, #search dl dt {
|
||||
margin: 0;
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
padding: 10px 0 5px 0;
|
||||
}
|
||||
|
||||
#newsAndArticles dl dd, #join dl dd, #search dl dd {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
div#news {
|
||||
#loginContent .loginNews {
|
||||
float: left;
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
#recentMaps dl dt {
|
||||
margin: 0;
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#recentMaps dt {
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
#recentMaps dd {
|
||||
padding-bottom: 3px;
|
||||
margin: 0;
|
||||
border-bottom: 1px solid #E5E5E5;
|
||||
}
|
||||
|
||||
#newsAndArticles h1, #recentMaps h1, #join h1, #search h1 {
|
||||
color: #093A9D;
|
||||
font-size: 150%;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#join dl {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#join h1 {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#join dd {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#join dt {
|
||||
color: white;
|
||||
font-size: medium;
|
||||
}
|
||||
|
||||
#recentMapsContent, #newsContent, #joinContent {
|
||||
#joinContent {
|
||||
padding: 5px 10px;
|
||||
}
|
||||
|
||||
#search dl {
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
#search h1 {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#search dd {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#search dt {
|
||||
color: white;
|
||||
font-size: medium;
|
||||
}
|
||||
|
||||
/* Finish homepage styles */
|
||||
|
||||
div#mainBody {
|
||||
@ -383,7 +28,6 @@ div#mainBody {
|
||||
height: 300px;
|
||||
}
|
||||
|
||||
|
||||
div#login {
|
||||
float: right;
|
||||
width: 350px;
|
||||
@ -502,59 +146,48 @@ div.pageBodyContent ol li {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
div.newsContainer {
|
||||
clear:both;
|
||||
margin-bottom:20px;
|
||||
padding:10px;
|
||||
width:100%;
|
||||
}
|
||||
div.newsContainer h2 {
|
||||
padding:10px;
|
||||
color:#6B628F;
|
||||
}
|
||||
|
||||
#login.sb, #userRegistration.sb, #forgotPasswordContainer.sb {
|
||||
background: #eeeeee;
|
||||
border:1px solid #cfcfcf;
|
||||
border: 1px solid #cfcfcf;
|
||||
-moz-border-radius: 8px;
|
||||
-khtml-border-radius: 8px;
|
||||
-webkit-border-radius: 8px;
|
||||
border-radius:8px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
#detailContent.sb {
|
||||
background: #C3DEF5;
|
||||
border:1px solid #A7C6DF;
|
||||
border: 1px solid #A7C6DF;
|
||||
-moz-border-radius: 16px;
|
||||
-khtml-border-radius: 16px;
|
||||
-webkit-border-radius: 16px;
|
||||
border-radius:16px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
#detail.sb {
|
||||
background: white;
|
||||
border:1px solid #E5E5E5;
|
||||
border: 1px solid #E5E5E5;
|
||||
-moz-border-radius: 16px;
|
||||
-khtml-border-radius: 16px;
|
||||
-webkit-border-radius: 16px;
|
||||
border-radius:16px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
#userRegistration.sb {
|
||||
background: #eeeeee;
|
||||
border:1px solid #cfcfcf;
|
||||
border: 1px solid #cfcfcf;
|
||||
-moz-border-radius: 8px;
|
||||
-khtml-border-radius: 8px;
|
||||
-webkit-border-radius: 8px;
|
||||
border-radius:16px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
#searchResult.sb {
|
||||
background: #C3DEF5;
|
||||
border:1px solid #A7C6DF;
|
||||
-moz-border-radius: 16px;
|
||||
-khtml-border-radius: 16px;
|
||||
-webkit-border-radius: 16px;
|
||||
border-radius:16px;
|
||||
#importContainer table {
|
||||
background: #eeeeee;
|
||||
border: 1px solid #cfcfcf;
|
||||
-moz-border-radius: 8px;
|
||||
-khtml-border-radius: 8px;
|
||||
-webkit-border-radius: 8px;
|
||||
border-radius: 16px;
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<%@ include file="/jsp/init.jsp" %>
|
||||
|
||||
<div id="loginContent">
|
||||
<div id="news" class="sb">
|
||||
<div class="sb loginNews">
|
||||
<h1>What is New: </h1>
|
||||
<ul>
|
||||
<li>Links Between Nodes</li>
|
||||
@ -67,7 +67,7 @@
|
||||
<input type="submit" class="btn-primary" id="submitButton"
|
||||
value="<spring:message code="SIGN_IN"/>">
|
||||
|
||||
<div style="text-align:right;"><a href="<c:url value="forgotPassword.htm"/>">
|
||||
<div style="text-align:right;"><a href="<c:url value="/c/forgotPassword.htm"/>">
|
||||
<spring:message code="FORGOT_PASSWORD"/>
|
||||
</a></div>
|
||||
</td>
|
||||
@ -81,7 +81,7 @@
|
||||
<div id="register">
|
||||
<b><spring:message code="NOT_READY_A_USER"/></b>
|
||||
<spring:message code="NOT_READY_A_USER_MESSAGE"/>
|
||||
<a href="userRegistration.htm">
|
||||
<a href="c/userRegistration.htm">
|
||||
<spring:message code="JOIN_NOW"/>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -1,12 +1,11 @@
|
||||
<%@ include file="/jsp/init.jsp" %>
|
||||
<div>
|
||||
<div id="importContainer">
|
||||
<form:form method="post" commandName="importMap" enctype="multipart/form-data">
|
||||
<table>
|
||||
<tr>
|
||||
<td class="formLabel">
|
||||
<span class="fieldRequired">*</span>
|
||||
<spring:message code="NAME"/>
|
||||
:
|
||||
<spring:message code="NAME"/>:
|
||||
</td>
|
||||
<td>
|
||||
<form:input path="title" id="title" tabindex="1"/>
|
||||
@ -15,39 +14,29 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="formLabel">
|
||||
<spring:message code="DESCRIPTION"/>
|
||||
:
|
||||
<spring:message code="DESCRIPTION"/>:
|
||||
</td>
|
||||
<td>
|
||||
<form:input path="description" id="description" tabindex="2"/>
|
||||
<form:errors path="description" cssClass="errorMsg"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<tr>
|
||||
<td class="formLabel">
|
||||
<span class="fieldRequired">*</span>
|
||||
<spring:message code="FREE_MIND_FILE"/>
|
||||
:
|
||||
<spring:message code="FREE_MIND_FILE"/>:
|
||||
</td>
|
||||
<td>
|
||||
<input type="file" name="mapFile"/>
|
||||
<form:errors path="mapFile" cssClass="errorMsg"/>
|
||||
<form:errors path="mapFile" cssClass="errorMsg"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td>
|
||||
<input type="submit" value="<spring:message code="SUBMIT"/>" class="btn-primary">
|
||||
<c:choose>
|
||||
<c:when test="${!errorView}">
|
||||
<input type="button" value="<spring:message code="CANCEL"/>" class="btn-primary"
|
||||
onclick="MOOdalBox.close();">
|
||||
</c:when>
|
||||
<c:otherwise>
|
||||
<input type="button" value="<spring:message code="BACK"/>" class="btn-primary"
|
||||
onclick="window.location='mymaps.htm'">
|
||||
</c:otherwise>
|
||||
</c:choose>
|
||||
<input type="submit" value="<spring:message code="IMPORT"/>" class="btn-primary">
|
||||
<input type="button" value="<spring:message code="CANCEL"/>" class="btn-secondary"
|
||||
onclick="window.location='/c/mymaps.htm'">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
@ -193,7 +193,7 @@
|
||||
// Initialize dialog ...
|
||||
$("#duplicate-dialog-modal").dialogForm({
|
||||
modal: true,
|
||||
acceptButtonLabel : "Duplicated",
|
||||
acceptButtonLabel : "Duplicate",
|
||||
cancelButtonLabel : "Cancel",
|
||||
redirect: "c/map/{header.resourceId}/edit.htm",
|
||||
url : "../service/maps/" + mapId
|
||||
@ -263,7 +263,9 @@
|
||||
|
||||
$("#buttons .importMap").button({
|
||||
icons: { primary: "ui-icon-trash" }
|
||||
});
|
||||
}).click(function() {
|
||||
window.open('c/map/import.htm');
|
||||
});
|
||||
|
||||
$("#buttons .printMap").button({
|
||||
icons: { primary: "ui-icon-print" }
|
||||
@ -272,12 +274,24 @@
|
||||
if (mapIds.length > 0) {
|
||||
window.open('c/map/' + mapIds[0] + '/print.htm');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
$("#buttons .publishMap").button({
|
||||
icons: { primary: "ui-icon-print" }
|
||||
}).click(function() {
|
||||
});
|
||||
|
||||
$("#buttons .shareMap").button({
|
||||
icons: { primary: "ui-icon-print" }
|
||||
}).click(function() {
|
||||
});
|
||||
|
||||
$("#buttons .tagMap").button({
|
||||
icons: { primary: "ui-icon-print" }
|
||||
}).click(function() {
|
||||
});
|
||||
|
||||
|
||||
$("#buttons .moreActions").button({
|
||||
icons: { primary: "ui-icon-triangle-1-s" }
|
||||
});
|
||||
});
|
||||
|
||||
// Register time update functions ....
|
||||
@ -300,6 +314,18 @@
|
||||
</div>
|
||||
|
||||
<div id="buttons">
|
||||
<button class="newMap">New</button>
|
||||
<button class="importMap">Import</button>
|
||||
<button class="duplicateMap">Duplicate</button>
|
||||
<button class="delete">Delete</button>
|
||||
<button class="renameMap">Rename</button>
|
||||
<button class="printMap">Print</button>
|
||||
<button class="publishMap">Publish</button>
|
||||
<button class="shareMap">Collaborate</button>
|
||||
<button class="tagMap">Tag</button>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div id="delete-dialog-modal" title="Delete maps" style="display: none">
|
||||
<p>Are you sure you want to delete maps <span></span> ?</p>
|
||||
</div>
|
||||
@ -384,13 +410,6 @@
|
||||
<div id="share-dialog-modal" title="Share maps" style="display: none">
|
||||
<p>Are you sure you want to share maps <span></span> ?</p>
|
||||
</div>
|
||||
<button class="newMap">New</button>
|
||||
<button class="duplicateMap">Duplicate</button>
|
||||
<button class="delete">Delete</button>
|
||||
<button class="renameMap">Rename</button>
|
||||
<button class="importMap">Import</button>
|
||||
<button class="printMap">Print</button>
|
||||
<button class="moreActions">More</button>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
Loading…
Reference in New Issue
Block a user