branch develop updated (5cb44e4 -> 1afabcf)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository scmwebeditor. See http://git.nuiton.org/scmwebeditor.git from 5cb44e4 Add an automatic save of the edited file every 5 minutes new 1afabcf Add the ability to configure the automatic save from the configuration file The 1 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 1afabcf461284023fbdc58e7ce3676b1fb37d54d Author: Hugo PIGEON <hpigeon@codelutin.com> Date: Mon Jun 1 11:37:34 2015 +0200 Add the ability to configure the automatic save from the configuration file Summary of changes: .../scmwebeditor/uiweb}/ScmWebEditorConfig.java | 20 ++++++++++++++++- .../uiweb}/ScmWebEditorConfigOption.java | 4 +++- .../scmwebeditor/uiweb/SweSessionListener.java | 1 - .../scmwebeditor/uiweb/actions/BrowseAction.java | 2 +- .../uiweb/actions/CreateBranchAction.java | 6 +++++- .../uiweb/actions/CreateDirectoryAction.java | 2 +- .../uiweb/actions/DetectScmAction.java | 2 +- .../scmwebeditor/uiweb/actions/EditAction.java | 19 +++++++++++++++- .../uiweb/actions/ListBranchesAction.java | 2 +- .../scmwebeditor/uiweb/actions/LogoutAction.java | 2 +- .../scmwebeditor/uiweb/actions/MoveFileAction.java | 2 +- .../uiweb/actions/RemoveDirectoryAction.java | 2 +- .../uiweb/actions/RemoveFileAction.java | 2 +- .../scmwebeditor/uiweb/actions/ResetAction.java | 2 +- .../uiweb/actions/ScmWebEditorCommitAction.java | 2 +- .../uiweb/actions/ScmWebEditorMainAction.java | 2 +- .../uiweb/actions/UploadFileAction.java | 2 +- .../src/main/resources/scmwebeditor.properties | 3 +++ .../webapp/WEB-INF/content/modificationViewer.jsp | 8 +++++++ swe-ui-web/src/main/webapp/js/autoSave.js | 21 ++++++++++++++++++ swe-ui-web/src/main/webapp/js/editor.js | 25 ---------------------- 21 files changed, 89 insertions(+), 42 deletions(-) rename {swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api => swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb}/ScmWebEditorConfig.java (88%) rename {swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api => swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb}/ScmWebEditorConfigOption.java (90%) create mode 100644 swe-ui-web/src/main/webapp/js/autoSave.js -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository scmwebeditor. See http://git.nuiton.org/scmwebeditor.git commit 1afabcf461284023fbdc58e7ce3676b1fb37d54d Author: Hugo PIGEON <hpigeon@codelutin.com> Date: Mon Jun 1 11:37:34 2015 +0200 Add the ability to configure the automatic save from the configuration file --- .../scmwebeditor/uiweb}/ScmWebEditorConfig.java | 20 ++++++++++++++++- .../uiweb}/ScmWebEditorConfigOption.java | 4 +++- .../scmwebeditor/uiweb/SweSessionListener.java | 1 - .../scmwebeditor/uiweb/actions/BrowseAction.java | 2 +- .../uiweb/actions/CreateBranchAction.java | 6 +++++- .../uiweb/actions/CreateDirectoryAction.java | 2 +- .../uiweb/actions/DetectScmAction.java | 2 +- .../scmwebeditor/uiweb/actions/EditAction.java | 19 +++++++++++++++- .../uiweb/actions/ListBranchesAction.java | 2 +- .../scmwebeditor/uiweb/actions/LogoutAction.java | 2 +- .../scmwebeditor/uiweb/actions/MoveFileAction.java | 2 +- .../uiweb/actions/RemoveDirectoryAction.java | 2 +- .../uiweb/actions/RemoveFileAction.java | 2 +- .../scmwebeditor/uiweb/actions/ResetAction.java | 2 +- .../uiweb/actions/ScmWebEditorCommitAction.java | 2 +- .../uiweb/actions/ScmWebEditorMainAction.java | 2 +- .../uiweb/actions/UploadFileAction.java | 2 +- .../src/main/resources/scmwebeditor.properties | 3 +++ .../webapp/WEB-INF/content/modificationViewer.jsp | 8 +++++++ swe-ui-web/src/main/webapp/js/autoSave.js | 21 ++++++++++++++++++ swe-ui-web/src/main/webapp/js/editor.js | 25 ---------------------- 21 files changed, 89 insertions(+), 42 deletions(-) diff --git a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmWebEditorConfig.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ScmWebEditorConfig.java similarity index 88% rename from swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmWebEditorConfig.java rename to swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ScmWebEditorConfig.java index 2294591..e6aa683 100644 --- a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmWebEditorConfig.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ScmWebEditorConfig.java @@ -19,12 +19,14 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package org.nuiton.scmwebeditor.api; +package org.nuiton.scmwebeditor.uiweb; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ArgumentsParserException; +import org.nuiton.scmwebeditor.api.ScmProvider; +import org.nuiton.scmwebeditor.api.SweInternalException; import java.util.HashMap; import java.util.List; @@ -97,6 +99,22 @@ public class ScmWebEditorConfig { return getConfig().getOption(ScmWebEditorConfigOption.COOKIES_PRIVATE_KEY.getKey()); } + public static boolean isAutoSaveEnabled() { + String readValue = getConfig().getOption(ScmWebEditorConfigOption.ENABLE_AUTO_SAVE.getKey()); + boolean returnValue = false; + + if (readValue.equals("true")) { + returnValue = true; + } + + return returnValue; + } + + public static int getAutoSaveInterval() { + String readValue = getConfig().getOption(ScmWebEditorConfigOption.AUTO_SAVE_INTERVAL.getKey()); + return Integer.parseInt(readValue); + } + /** * Gives an instance of the provider for the given SCM type * @param scmType the type of SCM to use diff --git a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmWebEditorConfigOption.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ScmWebEditorConfigOption.java similarity index 90% rename from swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmWebEditorConfigOption.java rename to swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ScmWebEditorConfigOption.java index 111f042..17495ce 100644 --- a/swe-scm-api/src/main/java/org/nuiton/scmwebeditor/api/ScmWebEditorConfigOption.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/ScmWebEditorConfigOption.java @@ -19,7 +19,7 @@ * <http://www.gnu.org/licenses/lgpl-3.0.html>. * #L% */ -package org.nuiton.scmwebeditor.api; +package org.nuiton.scmwebeditor.uiweb; import org.nuiton.config.ApplicationConfig; import org.nuiton.config.ConfigOptionDef; @@ -33,6 +33,8 @@ public enum ScmWebEditorConfigOption implements ConfigOptionDef { EDITABLE_FILES("swe.editableFiles", "description", "Files types that are editable", String.class, true, true), COOKIES_PRIVATE_KEY("swe.cookiePrivateKey", "Private key for cookies", null, String.class, true, true), LOCAL_REPOSITORIES_PATH("swe.localRepositoriesPath", "The path where the local repositories will be stored", "/var/local/swe", String.class, false, true), + ENABLE_AUTO_SAVE("swe.enableAutoSave", "Whether the automatic save is enabled", "true", Boolean.class, false, true), + AUTO_SAVE_INTERVAL("swe.autoSaveInterval", "The time between two automatic saves in milliseconds", "300000", Integer.class, false, true), PROVIDERS("swe.provider.", "The SCMs that can be used", null, String.class, false, true); diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/SweSessionListener.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/SweSessionListener.java index 54335bb..3f160b8 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/SweSessionListener.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/SweSessionListener.java @@ -25,7 +25,6 @@ package org.nuiton.scmwebeditor.uiweb; import org.apache.commons.io.FileUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/BrowseAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/BrowseAction.java index 90bd8a9..87eccb2 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/BrowseAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/BrowseAction.java @@ -29,9 +29,9 @@ import org.apache.shiro.crypto.BlowfishCipherService; import org.apache.struts2.interceptor.ServletResponseAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import org.nuiton.scmwebeditor.api.dto.BrowseDto; import org.nuiton.scmwebeditor.api.dto.result.BrowseResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletResponse; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateBranchAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateBranchAction.java index b165587..29e86d7 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateBranchAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateBranchAction.java @@ -24,9 +24,13 @@ package org.nuiton.scmwebeditor.uiweb.actions; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletRequestAware; -import org.nuiton.scmwebeditor.api.*; +import org.nuiton.scmwebeditor.api.OperationNotSupportedException; +import org.nuiton.scmwebeditor.api.RepositoryNotFoundException; +import org.nuiton.scmwebeditor.api.ScmConnection; +import org.nuiton.scmwebeditor.api.ScmProvider; import org.nuiton.scmwebeditor.api.dto.CreateBranchDto; import org.nuiton.scmwebeditor.api.dto.result.AbstractResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.naming.AuthenticationException; import javax.servlet.http.HttpServletRequest; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateDirectoryAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateDirectoryAction.java index ac53be0..d551e24 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateDirectoryAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/CreateDirectoryAction.java @@ -26,9 +26,9 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import org.nuiton.scmwebeditor.api.dto.CreateDirectoryDto; import org.nuiton.scmwebeditor.api.dto.result.CreateDirectoryResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/DetectScmAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/DetectScmAction.java index 1ec9199..f4e11b5 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/DetectScmAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/DetectScmAction.java @@ -25,7 +25,7 @@ import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import java.util.List; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/EditAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/EditAction.java index 242a80f..8f1002a 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/EditAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/EditAction.java @@ -29,8 +29,8 @@ import org.apache.shiro.crypto.BlowfishCipherService; import org.nuiton.scmwebeditor.api.OperationNotSupportedException; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import org.nuiton.scmwebeditor.api.dto.result.AbstractResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.naming.AuthenticationException; import javax.servlet.http.Cookie; @@ -59,6 +59,12 @@ public class EditAction extends ScmWebEditorMainAction { /** the full path to the root of the repository */ protected String repositoryRoot; + /** equals true if the automatic save of the edited file is enabled */ + protected boolean autoSaveEnabled; + + /** the interval between two automatic saves */ + protected int autoSaveInterval; + public String getSelectedBranch() { return selectedBranch; } @@ -76,12 +82,23 @@ public class EditAction extends ScmWebEditorMainAction { public void setRepositoryRoot(String repositoryRoot) { this.repositoryRoot = repositoryRoot; } + public boolean isAutoSaveEnabled() { return autoSaveEnabled; } + + public void setAutoSaveEnabled(boolean autoSaveEnabled) { this.autoSaveEnabled = autoSaveEnabled; } + + public int getAutoSaveInterval() { return autoSaveInterval; } + + public void setAutoSaveInterval(int autoSaveInterval) { this.autoSaveInterval = autoSaveInterval; } + /** * Execution of the edit action * @return a code interpreted in the file struts.xml */ public String execute() { + autoSaveEnabled = ScmWebEditorConfig.isAutoSaveEnabled(); + autoSaveInterval = ScmWebEditorConfig.getAutoSaveInterval(); + HttpSession session = request.getSession(); String sessionId = session.getId(); diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ListBranchesAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ListBranchesAction.java index fe84486..4059e16 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ListBranchesAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ListBranchesAction.java @@ -25,7 +25,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.scmwebeditor.api.OperationNotSupportedException; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import java.util.List; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/LogoutAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/LogoutAction.java index e5e7a84..0b3a638 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/LogoutAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/LogoutAction.java @@ -27,7 +27,7 @@ import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.ServletResponseAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/MoveFileAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/MoveFileAction.java index 269327c..54dee46 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/MoveFileAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/MoveFileAction.java @@ -26,9 +26,9 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import org.nuiton.scmwebeditor.api.dto.MoveFileDto; import org.nuiton.scmwebeditor.api.dto.result.MoveFileResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveDirectoryAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveDirectoryAction.java index c53b2ae..f16b8f7 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveDirectoryAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveDirectoryAction.java @@ -26,9 +26,9 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import org.nuiton.scmwebeditor.api.dto.RemoveDirectoryDto; import org.nuiton.scmwebeditor.api.dto.result.RemoveDirectoryResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveFileAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveFileAction.java index c3d6fc0..fdad038 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveFileAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/RemoveFileAction.java @@ -26,9 +26,9 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import org.nuiton.scmwebeditor.api.dto.RemoveFileDto; import org.nuiton.scmwebeditor.api.dto.result.RemoveFileResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ResetAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ResetAction.java index 6ddee5d..2e33065 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ResetAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ResetAction.java @@ -26,7 +26,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.naming.AuthenticationException; import java.io.File; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorCommitAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorCommitAction.java index 6346945..ca8e35d 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorCommitAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorCommitAction.java @@ -32,9 +32,9 @@ import org.nuiton.jrst.JRST; import org.nuiton.jrst.legacy.JRSTReader; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import org.nuiton.scmwebeditor.api.dto.CommitDto; import org.nuiton.scmwebeditor.api.dto.result.CommitResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorMainAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorMainAction.java index 26e4f4f..ffca302 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorMainAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/ScmWebEditorMainAction.java @@ -25,7 +25,7 @@ import com.google.common.collect.Lists; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletResponseAware; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.HttpServletResponse; import java.util.List; diff --git a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/UploadFileAction.java b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/UploadFileAction.java index a8c6569..fb4688b 100644 --- a/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/UploadFileAction.java +++ b/swe-ui-web/src/main/java/org/nuiton/scmwebeditor/uiweb/actions/UploadFileAction.java @@ -26,9 +26,9 @@ import org.apache.commons.logging.LogFactory; import org.apache.struts2.interceptor.ServletRequestAware; import org.nuiton.scmwebeditor.api.ScmConnection; import org.nuiton.scmwebeditor.api.ScmProvider; -import org.nuiton.scmwebeditor.api.ScmWebEditorConfig; import org.nuiton.scmwebeditor.api.dto.UploadFileDto; import org.nuiton.scmwebeditor.api.dto.result.UploadFileResultDto; +import org.nuiton.scmwebeditor.uiweb.ScmWebEditorConfig; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; diff --git a/swe-ui-web/src/main/resources/scmwebeditor.properties b/swe-ui-web/src/main/resources/scmwebeditor.properties index 0deeb80..151b2e1 100644 --- a/swe-ui-web/src/main/resources/scmwebeditor.properties +++ b/swe-ui-web/src/main/resources/scmwebeditor.properties @@ -22,5 +22,8 @@ swe.editableFiles=text,xml,javascript,sh,x-tex,x-java swe.cookiePrivateKey=ZvcCyhfRTVZoQz3B/IpYdw== swe.localRepositoriesPath=/var/local/swe +swe.enableAutoSave=true +# the auto save interval is set in milliseconds +swe.autoSaveInterval=300000 swe.provider.SVN=org.nuiton.scmwebeditor.svn.SvnProvider swe.provider.Git=org.nuiton.scmwebeditor.git.GitProvider \ No newline at end of file diff --git a/swe-ui-web/src/main/webapp/WEB-INF/content/modificationViewer.jsp b/swe-ui-web/src/main/webapp/WEB-INF/content/modificationViewer.jsp index 68b17f5..5f3a9d6 100644 --- a/swe-ui-web/src/main/webapp/WEB-INF/content/modificationViewer.jsp +++ b/swe-ui-web/src/main/webapp/WEB-INF/content/modificationViewer.jsp @@ -120,6 +120,14 @@ <script type="text/javascript" src="js/editor.js"></script> + <s:if test="autoSaveEnabled"> + <script type="text/javascript" src="js/autoSave.js"></script> + + <script type="text/javascript"> + setInterval(autoSave, <s:property value="autoSaveInterval"/>); + </script> + </s:if> + <s:if test="format == 'rst'"> <script type="text/javascript" src="js/preview.js"></script> </s:if> diff --git a/swe-ui-web/src/main/webapp/js/autoSave.js b/swe-ui-web/src/main/webapp/js/autoSave.js new file mode 100644 index 0000000..0188a45 --- /dev/null +++ b/swe-ui-web/src/main/webapp/js/autoSave.js @@ -0,0 +1,21 @@ +function autoSave() { + loadChange(); + + $.post("save.action", { + username: document.getElementById("username").value, + pw: document.getElementById("pw").value, + saveCookie: document.getElementById("saveCookie").value, + commitMessage: "auto save", + newText: document.getElementById("newTextId").value, + origText: document.getElementById("origText").value, + format: document.getElementById("format").value, + scmType: document.getElementById("scmType").value, + address: document.getElementById("address").value + }).done(function(data) { + + // if there is an error, we ask the user to login + if (data.contains('<font color="red">')) { + openPopin('autoSavePopin'); + } + }); +} \ No newline at end of file diff --git a/swe-ui-web/src/main/webapp/js/editor.js b/swe-ui-web/src/main/webapp/js/editor.js index d803e76..f1e05b1 100644 --- a/swe-ui-web/src/main/webapp/js/editor.js +++ b/swe-ui-web/src/main/webapp/js/editor.js @@ -41,29 +41,4 @@ $.subscribe('treeChanged', function(event, data) { } }); -function autoSave() { - loadChange(); - - $.post("save.action", { - username: document.getElementById("username").value, - pw: document.getElementById("pw").value, - saveCookie: document.getElementById("saveCookie").value, - commitMessage: "auto save", - newText: document.getElementById("newTextId").value, - origText: document.getElementById("origText").value, - format: document.getElementById("format").value, - scmType: document.getElementById("scmType").value, - address: document.getElementById("address").value - }).done(function(data) { - - // if there is an error, we ask the user to login - if (data.contains('<font color="red">')) { - openPopin('autoSavePopin'); - } - }); -} - -// Every 5 minutes, the file is automatically saved -setInterval(autoSave, 300000); - window.onbeforeunload = confirmExitOnUnload; \ No newline at end of file -- To stop receiving notification emails like this one, please contact nuiton.org SCM administrator <admin+scm@nuiton.org>.
participants (1)
-
nuiton.org scm