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>.