r130 - in trunk/src/main: java/org/nuiton/scmwebeditor/actions resources webapp
Author: kcardineaud Date: 2011-06-21 14:56:58 +0200 (Tue, 21 Jun 2011) New Revision: 130 Url: http://nuiton.org/repositories/revision/scmwebeditor/130 Log: Add JQuery for ajax save and continue option Added: trunk/src/main/java/org/nuiton/scmwebeditor/actions/SaveAction.java trunk/src/main/webapp/Save.jsp Removed: trunk/src/main/webapp/Preview.js trunk/src/main/webapp/Saver.js Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java trunk/src/main/resources/struts.xml trunk/src/main/webapp/ModificationViewer.jsp trunk/src/main/webapp/Preview.jsp Added: trunk/src/main/java/org/nuiton/scmwebeditor/actions/SaveAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/actions/SaveAction.java (rev 0) +++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/SaveAction.java 2011-06-21 12:56:58 UTC (rev 130) @@ -0,0 +1,44 @@ +package org.nuiton.scmwebeditor.actions; + +import com.opensymphony.xwork2.Action; +import com.opensymphony.xwork2.ActionContext; + +public class SaveAction extends ScmWebEditorCommitAction { + + String result; + + public String getResult() { + return result; + } + + + public void setResult(String result) { + this.result = result; + } + + + /** + * + */ + private static final long serialVersionUID = -115627369699637253L; + + + public String save() { + + if(origText.equals(newText)) { + result = "uselessSave"; + return Action.SUCCESS; + } + + result = execute(); + + return Action.SUCCESS; + } + + static public SaveAction getAction() { + return (SaveAction) ActionContext.getContext() + .get(CONTEXT_ACTION_KEY); + } + + +} Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java =================================================================== --- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-06-21 09:02:44 UTC (rev 129) +++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-06-21 12:56:58 UTC (rev 130) @@ -138,7 +138,7 @@ log.error("SVN FAIL",e); } //Suppression du repertoire temporaire - delTempDirectory(svnSess); + //delTempDirectory(svnSess); request.setAttribute(ATTRIBUTE_REDIRECT_URL, getRedirectUrl(svnSess)); return "erreur"; } @@ -146,7 +146,7 @@ if (svnSess.getCheckoutdir() != null) { //Suppression du repertoire temporaire - delTempDirectory(svnSess); + //delTempDirectory(svnSess); } //if commit success user is redirect on the project page request.setAttribute(ATTRIBUTE_REDIRECTION_URL, svnSess.getProjectUrl()); @@ -155,7 +155,7 @@ log.debug("End of commit"); } //Suppression du repertoire temporaire - delTempDirectory(svnSess); + //delTempDirectory(svnSess); return "success"; } Modified: trunk/src/main/resources/struts.xml =================================================================== --- trunk/src/main/resources/struts.xml 2011-06-21 09:02:44 UTC (rev 129) +++ trunk/src/main/resources/struts.xml 2011-06-21 12:56:58 UTC (rev 130) @@ -16,6 +16,9 @@ <result name="authError" >/ModificationViewer.jsp</result> <result name="erreur">/BadFileRedirect.jsp</result> </action> + <action name="save" class="org.nuiton.scmwebeditor.actions.SaveAction" method="save"> + <result>/Save.jsp</result> + </action> <action name="preview" class="org.nuiton.scmwebeditor.actions.PreviewAction" method="execute"> <result>/Preview.jsp</result> </action> Modified: trunk/src/main/webapp/ModificationViewer.jsp =================================================================== --- trunk/src/main/webapp/ModificationViewer.jsp 2011-06-21 09:02:44 UTC (rev 129) +++ trunk/src/main/webapp/ModificationViewer.jsp 2011-06-21 12:56:58 UTC (rev 130) @@ -22,13 +22,14 @@ <form method="post" action=commit.action id="editForm"> <script src="GereFormSize.js" type="text/javascript"></script> <textarea name="newText" id="newText"><%=request.getAttribute("OrigText")%></textarea> - <script src="Preview.js" type="text/javascript"></script> - <script src="Saver.js" type="text/javascript"></script> <script src="GereSession.js" type="text/javascript"></script> <script src="cancelRedirectDelete.js" type="text/javascript"></script> <script src="pictureUpload.js" type="text/javascript"></script> <noscript><h4>Javascript is not activated. You can't only use Save and Quit or Reset button.</h4></noscript> <noscript><h4>For a better use of SCMWebEditor please activate JavaScript.</h4></noscript> + + <div id="htmlcontentCommit"></div> + <p>Commit Message: <input type="text" name="commitMessage" title="Let a commit message with this file."/></p> <%if (request.getAttribute("IsLogin").equals(false) == true){ @@ -52,15 +53,29 @@ <input type="hidden" name="origText" value="<%=request.getAttribute("OrigText")%>"/> <input type="hidden" name="scmEditorUrl" value="<%=request.getAttribute("scmEditorUrl")%>"/> <input type="hidden" name="previewServletUrl" value="<%=request.getAttribute("previewServletUrl")%>"/> - <input title="Save your work and continue editing this file." type="button" value="Save and Continue Editing" name="SaveandC" onclick="javascript:saver(this.form.newText, this.form.username, this.form.pw, this.form.commitMessage, this.form.origText, this.form.scmEditorUrl);"/> + + <s:url id="ajaxCommit" value="save.action" /> + + <sj:submit + id="ajaxSaveButton" + formIds="editForm" + targets="htmlcontentCommit" + href="%{ajaxCommit}" + indicator="indicator" + button="true" + buttonIcon="ui-icon-refresh" + value="Save and Continue Editing" + > + </sj:submit> + <input title="Save this file and go back to previous page." type="submit" value="Save and Quit" name="Save"/> + <%if (request.getAttribute("format")!=null && request.getAttribute("format")!=null && request.getAttribute("format").equals("rst") == true){ %> - - <s:url id="ajaxPreview" value="preview.action" /> + <s:url id="ajaxPreview" value="preview.action" /> <sj:submit - id="ajaxformlink" + id="ajaxPreviewButton" formIds="editForm" targets="htmlcontentPreview" href="%{ajaxPreview}" @@ -70,9 +85,9 @@ value="Preview" > </sj:submit> + + <%}%> - - <%}%> <input title="Reset text as current repository HEAD revision." type="reset" value="Reset" name="Reset" alt="Test plop plop plop"/> <input type="hidden" value="<%=request.getAttribute("ProjectUrl")%>" name="ProjectUrl"> <input title="Exit ScmWebEditor without saving." type="button" value="Exit" name="Cancel" onclick="javascript:cancelRedirectDelete(this.form.origText, this.form.username, this.form.pw, this.form.commitMessage, this.form.ProjectUrl, this.form.scmEditorUrl);"/> Deleted: trunk/src/main/webapp/Preview.js =================================================================== --- trunk/src/main/webapp/Preview.js 2011-06-21 09:02:44 UTC (rev 129) +++ trunk/src/main/webapp/Preview.js 2011-06-21 12:56:58 UTC (rev 130) @@ -1,56 +0,0 @@ -/** - * @author geoffroy lorieux - */ - -function createRequestObject() -{ - var req; - if(window.XMLHttpRequest) - { - //For Firefox, Safari, Opera - req = new XMLHttpRequest(); - } - else if(window.ActiveXObject) - { - //For IE 5+ - req = new ActiveXObject("Microsoft.XMLHTTP"); - } - else - { - //Error for an old browser - alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera'); - } - return req; -} - -//Make the XMLHttpRequest Object -var http= createRequestObject(); - -function sendRequest(method, url, text) -{ - - http.open(method, url, true); - http.onreadystatechange = handleResponse; - http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); - http.send("text="+text.value); -} - -function handleResponse() -{ - if(http.readyState == 4 && http.status != 406) - { - var response = http.responseText; - document.getElementById("prevtitle").innerHTML = "Preview : "; - document.getElementById("prev").innerHTML ="<div id=\"preview\" >"+response+"</div>"; - } - else if (http.readyState == 4 && http.status == 406) - { - alert("Bad RestructuredText file format please correct it."); - } -} - -function preview(my_text, url) -{ - sendRequest("POST", "preview.action", my_text); -} - Modified: trunk/src/main/webapp/Preview.jsp =================================================================== --- trunk/src/main/webapp/Preview.jsp 2011-06-21 09:02:44 UTC (rev 129) +++ trunk/src/main/webapp/Preview.jsp 2011-06-21 12:56:58 UTC (rev 130) @@ -2,7 +2,7 @@ import="org.nuiton.scmwebeditor.actions.PreviewAction"%> <%--Title and div for rst preview--%> - <h3 id="prevtitle" ></h3> + <h3 id="prevtitle" >Preview :</h3> <div id="prev" title="Preview"> <div id="preview" > <% Added: trunk/src/main/webapp/Save.jsp =================================================================== --- trunk/src/main/webapp/Save.jsp (rev 0) +++ trunk/src/main/webapp/Save.jsp 2011-06-21 12:56:58 UTC (rev 130) @@ -0,0 +1,22 @@ +<%@page + import="org.nuiton.scmwebeditor.actions.SaveAction"%> +<%@page import="java.util.Date" %> + <% + SaveAction action = SaveAction.getAction(); + + String result = action.getResult(); + %> + + + + <%if(result.equals("authError")) { %> + <h4> Bad login or password, can't save modification </h4> + <% } else if(result.equals("erreur")) { %> + <h4> Can't save modification </h4> + <% } else if(result.equals("uselessSave")) { %> + <h4> It's useless to save the file, it is not modify</h4> + <% } else { %> + <h4>Last change save <%=new Date()%> </h4> + <% } %> + + \ No newline at end of file Deleted: trunk/src/main/webapp/Saver.js =================================================================== --- trunk/src/main/webapp/Saver.js 2011-06-21 09:02:44 UTC (rev 129) +++ trunk/src/main/webapp/Saver.js 2011-06-21 12:56:58 UTC (rev 130) @@ -1,59 +0,0 @@ -/** - * @author geoffroy lorieux - */ - -function createRequestObject() -{ - var req; - if(window.XMLHttpRequest) - { - //For Firefox, Safari, Opera - req = new XMLHttpRequest(); - } - else if(window.ActiveXObject) - { - //For IE 5+ - req = new ActiveXObject("Microsoft.XMLHTTP"); - } - else - { - //Error for an old browser - alert('Your browser is not IE 5 or higher, or Firefox or Safari or Opera'); - } - return req; -} - -//Make the XMLHttpRequest Object -var http= createRequestObject(); - -function sendReq(method, url, text, login, pass, message, orig_text) -{ - http.open(method, url, true); - http.onreadystatechange = handleResp; - http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); - http.send("newText="+text.value+"&username="+login.value+"&pw="+pass.value+"&commitMessage="+message.value+"&origText="+orig_text.value); -} - -function handleResp() -{ - if(http.readyState == 4 && http.status != 401){ - alert("Save Ok. Page will be reload shortly please wait."); - window.location.reload(true); - } else if (http.readyState == 4 && http.status == 401){ - alert("Bad login or password please recheck."); - } -} - -function saver(my_text, login, pass, message, orig_text, scmEditorUrl) -{ - - if (my_text.value != orig_text.value){ - if (confirm("Do you really want to save?")){ - - sendReq("POST", "commit.action", my_text, login, pass, message, orig_text); - - } - } else{ - alert("File don't need to be save."); - } -} \ No newline at end of file
participants (1)
-
kcardineaud@users.nuiton.org