Scmwebeditor-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- 436 discussions
r246 - in trunk/src/main: java/org/nuiton/scmwebeditor/actions resources resources/i18n webapp/WEB-INF/content webapp/css
by kcardineaud@users.nuiton.org 26 Aug '11
by kcardineaud@users.nuiton.org 26 Aug '11
26 Aug '11
Author: kcardineaud
Date: 2011-08-26 16:29:22 +0200 (Fri, 26 Aug 2011)
New Revision: 246
Url: http://nuiton.org/repositories/revision/scmwebeditor/246
Log:
Change style properties and remove java code in jsp
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/resources/i18n/scmwebeditor_en_GB.properties
trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties
trunk/src/main/resources/struts.xml
trunk/src/main/webapp/WEB-INF/content/logout.jsp
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/outConnection.jsp
trunk/src/main/webapp/WEB-INF/content/reset.jsp
trunk/src/main/webapp/WEB-INF/content/save.jsp
trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
trunk/src/main/webapp/css/main.css
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-26 14:29:22 UTC (rev 246)
@@ -34,7 +34,6 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.shiro.codec.Base64;
@@ -74,9 +73,11 @@
protected String projectUrl;
protected String diff;
protected String headCommiter;
+ protected String mimeType;
protected boolean force;
protected boolean saveCookie;
+ protected boolean badLogin;
protected String numRevision;
@@ -185,6 +186,19 @@
this.saveCookie = saveCookie;
}
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ public void setMimeType(String mimeType) {
+ this.mimeType = mimeType;
+ }
+
+
+ public boolean isBadLogin() {
+ return badLogin;
+ }
+
protected boolean isRstValid(String newText) {
try {
JRST.generate(JRST.TYPE_HTML, newText);
@@ -347,8 +361,7 @@
try {
String originalText = FileUtils.readFileToString(checkOutFile);
- request.setAttribute("lastText", lastText);
- request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(originalText));
+ origText = originalText;
@@ -430,12 +443,10 @@
}
// if authentication failed edition page is reload form user's relogin
- request.setAttribute(PARAMETER_ADDRESS, address);
- request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(newText));
-
+ origText = newText;
+ badLogin = true;
- request.setAttribute(ATTRIBUTE_BAD_LOGIN, true);
//Suppression du repertoire temporaire
delTempDirectory(checkoutdir);
username = null;
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-26 14:29:22 UTC (rev 246)
@@ -31,7 +31,6 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.shiro.codec.Base64;
@@ -58,10 +57,12 @@
protected String projectUrl;
protected String format;
protected String origText;
+ protected String mimeType;
+
protected boolean saveCookie = true;
+ protected boolean badLogin = false;
-
protected String numRevision;
@@ -89,6 +90,10 @@
protected boolean fromLoginPage;
+
+ public String getMimeType() {
+ return mimeType;
+ }
public String getRepositoryId() {
return repositoryId;
@@ -160,9 +165,11 @@
this.fromLoginPage = fromLoginPage;
}
-
-
+ public boolean isBadLogin() {
+ return badLogin;
+ }
+
/**
* On test si les parametres ne sont pas vide
* @return
@@ -393,7 +400,7 @@
- String mimeType =null;
+ mimeType =null;
try {
mimeType = getMimeType(originalText, svnConn.getFileName());
@@ -428,22 +435,16 @@
// Si le fichier n'est pas de type texte, on ne peut pas l'éditer
if(mimeType==null || editable==false ) {
- request.setAttribute("projectUrl", projectUrl);
if(log.isErrorEnabled()) {
log.error("Can't edit this file, mimetype : "+mimeType);
}
return "errorPath";
}
- else {
- request.setAttribute("minetype", mimeType);
- }
-
-
-
+
- origText=StringEscapeUtils.escapeHtml(originalText);
- request.setAttribute(ATTRIBUTE_PROJECT_URL, projectUrl);
+ origText=originalText;
+
if(log.isInfoEnabled()) {
log.info("IP client : "+request.getRemoteAddr() + " , get file : "+address+ ". File's mimetype : "+mimeType);
Modified: trunk/src/main/resources/i18n/scmwebeditor_en_GB.properties
===================================================================
--- trunk/src/main/resources/i18n/scmwebeditor_en_GB.properties 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/resources/i18n/scmwebeditor_en_GB.properties 2011-08-26 14:29:22 UTC (rev 246)
@@ -8,6 +8,7 @@
scm.clickHere=click here
scm.commitMessage=Commit message
scm.commitMessageTitle=let a message for commit
+scm.connection=Connection
scm.erreurRepo=Error on repository
scm.exit=Exit
scm.exitJavascript=Exit ScmWebEditor without saving ? All modification will be lost.
@@ -21,6 +22,7 @@
scm.lastChangeSave=Last change save
scm.logAs=You are log as \:
scm.loginButton=Login
+scm.logoutWait=Logout...
scm.modificationViewer.betterUseJavascript=For a better use of SCMWebEditor please activate JavaScript.
scm.modificationViewer.noJavascript=Javascript is not activated. You can't only use Save and Quit or upload button.
scm.mustBeLog=You must be login to see this repository.
@@ -43,6 +45,7 @@
scm.saveAndQuit=Save and quit
scm.saveAndQuitTitle=Save this file and go back to previous page.
scm.showDiff=Show differences
+scm.stayLogin=Keep me logged
scm.text=Text
scm.thankUsing=Thank you using SCMWebEditor
scm.upload=Upload
Modified: trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties
===================================================================
--- trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties 2011-08-26 14:29:22 UTC (rev 246)
@@ -1,5 +1,5 @@
scm.FileInEditor=Fichier dans l'éditeur \:
-scm.atRevision=à la revision
+scm.atRevision=à la révision
scm.badPathOrFileName=L'adresse du dépôt ou le nom du fichier est incorrect, ou le fichier n'est pas éditable \!
scm.badUsernameOrPassword=Identifiant ou mot de passe incorrect
scm.beTransferred=Vous devriez être redirigé sur une nouvelle page. si non
@@ -8,6 +8,7 @@
scm.clickHere=cliquez ici
scm.commitMessage=Message associé au commit
scm.commitMessageTitle=laisser un message pour le commit
+scm.connection=Connexion
scm.erreurRepo=Erreur sur le dépôt
scm.exit=Quitter
scm.exitJavascript=Quitter ScmWebEditor sans sauvegarder ? Toutes les modifications seront perdues.
@@ -19,38 +20,40 @@
scm.info.rstWebsite=site de la documentation RST
scm.language=Langage
scm.lastChangeSave=Dernière sauvegarde effectuée
-scm.logAs=Connecte en tant que \:
+scm.logAs=Connecté en tant que \:
scm.loginButton=Connexion
+scm.logoutWait=Déconnexion...
scm.modificationViewer.betterUseJavascript=Activer Javascript pour accéder à toute les fonctionnalités.
-scm.modificationViewer.noJavascript=Javascript est désactivé. Vous pouvez seulement utiliser les boutons sauvegarder et quitter, quitter ou upload.
+scm.modificationViewer.noJavascript=Javascript est désactivé. Vous pouvez seulement utiliser les boutons sauvegarder et quitter, quitter ou ajouter un fichier.
scm.mustBeLog=Vous devez vous identifier pour parcourir ce dépôt.
scm.no=Non
scm.outConnection.enterRepo=Entrez l'adresse de votre dépôt.
-scm.outConnection.noJavascript=Javascript n'est pas active. Certaines fonctions ne seront pas accessibles.
+scm.outConnection.noJavascript=Javascript n'est pas activé. Certaines fonctions ne seront pas accessibles.
scm.outConnection.scmPath=Répertoire SCM \:
scm.outConnection.search=Chercher
scm.password=Mot de passe
scm.passwordTitle=Mot de passe du dépôt
scm.pathError=Erreur dans le chemin
-scm.preview=Apercu
+scm.preview=Aperçu
scm.privateScmAccess=Pour modifier ce fichier, veuillez vous connecter.
scm.redirection=Redirection...
scm.reset=Réinitialiser
-scm.resetTitle=Retour a la dernière révision du fichier
+scm.resetTitle=Retour à la dernière révision du fichier
scm.rstNotValidMessage=The Rst n'est pas valide, voulez-vous continuer ?
scm.saveAndContinue=Sauvegarder et continuer
-scm.saveAndContinueTitle=Enregister les modifications sur le dépôt et continuer d'editer le fichier
+scm.saveAndContinueTitle=Enregister les modifications sur le dépôt et continuer d'éditer le fichier
scm.saveAndQuit=Sauvegarder et quitter
scm.saveAndQuitTitle=Sauvegarder le fichier sur le dépôt et retourner à la page précédente.
scm.showDiff=Voir les differences
+scm.stayLogin=Rester connecté
scm.text=Texte
-scm.thankUsing=merci d'avoir utilise SCMWebEditor
+scm.thankUsing=merci d'avoir utilisé SCMWebEditor
scm.upload=Ajouter un fichier
scm.uploadFile=Url du fichier
-scm.uploadPath=Repertoire sur le dépôt
-scm.uploadSuccess=Fichier telecharche avec succes
+scm.uploadPath=Répertoire sur le dépôt
+scm.uploadSuccess=Fichier télécharché avec succès
scm.uploadTitle=Ajouter un fichier sur le dépôt
-scm.uselessSave=Inutile de sauvegarder le fichier, aucune modification n'ont été apporté
+scm.uselessSave=Inutile de sauvegarder le fichier, aucune modification n'ont été apportée
scm.username=Identifiant
scm.usernameTitle=Identifiant du dépôt
scm.welcome=Bienvenue sur SCMWebEditor
Modified: trunk/src/main/resources/struts.xml
===================================================================
--- trunk/src/main/resources/struts.xml 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/resources/struts.xml 2011-08-26 14:29:22 UTC (rev 246)
@@ -122,7 +122,7 @@
<result name="root" >/WEB-INF/content/search.jsp</result>
<result name="success" type="json">
<param name="root">nodes</param>
- </result>
+ </result>
<result name="authError" >/WEB-INF/content/loginSearch.jsp</result>
</action>
Modified: trunk/src/main/webapp/WEB-INF/content/logout.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/logout.jsp 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/webapp/WEB-INF/content/logout.jsp 2011-08-26 14:29:22 UTC (rev 246)
@@ -48,7 +48,7 @@
-<p>Logout... <a href="checkout.action?address=<%=request.getAttribute("address")%>"> <s:text name="scm.clickHere" /> </a>.</p>
+<p><s:text name="scm.logoutWait" /><a href="checkout.action?address=<%=request.getAttribute("address")%>"> <s:text name="scm.clickHere" /> </a>.</p>
<p>©2004-2009 CodeLutin</p>
</body>
</html>
\ No newline at end of file
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-26 14:29:22 UTC (rev 246)
@@ -81,16 +81,53 @@
<form method="POST" action="commit.action" id="editForm">
<div id="head">
+
+
+ <div id="flagEdit">
+
+ <ul>
+ <li>
+ <s:if test="%{#session['WW_TRANS_I18N_LOCALE'] != null && #session['WW_TRANS_I18N_LOCALE'].language == 'en'}">
+ <img src="img/flag-i18n-uk.png" />
+ </s:if>
+ <s:else>
+ <s:a action="checkout.action" namespace="/">
+ <s:param name="address"><s:property value="address"/></s:param>
+ <s:param name="request_locale">en_GB</s:param>
+ <img src="img/flag-i18n-uk.png" />
+ </s:a>
+ </s:else>
+ </li>
+ <li>
+ <s:if
+ test="%{#session['WW_TRANS_I18N_LOCALE'] == null || #session['WW_TRANS_I18N_LOCALE'].language == 'fr'}">
+ <img src="img/flag-i18n-fr.png" />
+ </s:if>
+ <s:else>
+ <s:a action="checkout.action" namespace="/">
+ <s:param name="address"><s:property value="address"/></s:param>
+ <s:param name="request_locale">fr_FR</s:param>
+ <img src="img/flag-i18n-fr.png" />
+ </s:a>
+ </s:else>
+ </li>
+
+ </ul>
+
+ </div>
+
+
+
<!-- <a title="ScmWebEditor Project Website" target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img width="200" height="160" src="img/editor/machine-a-ecrire.png" alt="ScmWebEditor logo"/></a> -->
- <h2 id="editorTitle" >SCMWebEditor</h2>
+ <h1 id="editorTitle" >SCMWebEditor</h1>
<!-- authentification -->
<div id="headLogin">
<div id="authDiv">
- <h3>Connexion</h3>
+ <h3><s:text name="scm.connection" /></h3>
<s:if test="username==null || pw==null" >
<s:set id="scm.username">
@@ -108,7 +145,7 @@
<s:textfield accesskey="U" size="12" label="%{scm.username}" name="username" title="%{scm.usernameTitle}" />
<s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" />
- <input type="checkbox" name="saveCookie" value="true" >Rester connecté
+ <input type="checkbox" name="saveCookie" value="true" ><s:text name="scm.stayLogin" />
</s:if>
<s:else >
@@ -134,13 +171,13 @@
</s:else>
<div id="htmlcontentCommit">
- <%if (request.getAttribute("badLogin")!=null && request.getAttribute("badLogin").equals(true)) { %>
+ <s:if test="badLogin" >
<p>
<font color="red">
<s:text name="scm.badUsernameOrPassword"/>
</font>
</p>
- <%} %>
+ </s:if>
</div>
@@ -179,25 +216,25 @@
<!--END Save and continue -->
<!--BEGIN preview -->
- <%if (request.getAttribute("format")!=null && request.getAttribute("format")!=null && request.getAttribute("format").equals("rst") == true){
- %>
- <s:url id="ajaxPreview" value="preview.action" />
-
- <s:set id="scm.preview">
- <s:text name="scm.preview"/>
- </s:set>
- <sj:a onclick="loadChange()"
- id="ajaxPreviewButton"
- formIds="editForm"
- targets="htmlcontentPreview"
- href="%{ajaxPreview}"
- title="%{scm.preview}"
-
- >
- <div id="previewButton" ></div>
- </sj:a>
-
- <%}%>
+
+ <s:if test="format=='rst'">
+ <s:url id="ajaxPreview" value="preview.action" />
+
+ <s:set id="scm.preview">
+ <s:text name="scm.preview"/>
+ </s:set>
+ <sj:a onclick="loadChange()"
+ id="ajaxPreviewButton"
+ formIds="editForm"
+ targets="htmlcontentPreview"
+ href="%{ajaxPreview}"
+ title="%{scm.preview}"
+
+ >
+ <div id="previewButton" ></div>
+ </sj:a>
+ </s:if>
+
<!--END preview -->
<!--BEGIN reset -->
@@ -234,11 +271,12 @@
<!-- BEGIN exit -->
- <% if(request.getAttribute("projectUrl")!=null) { %>
- <input type="hidden" id="projectUrl" value="<%=request.getAttribute("projectUrl")%>" />
- <% } else { %>
- <input type="hidden" id="projectUrl" value="checkout.action" />
- <% } %>
+ <s:if test="projectUrl!=null">
+ <s:hidden key="projectUrl" />
+ </s:if>
+ <s:else>
+ <s:hidden id="projectUrl" value="checkout.action" />
+ </s:else>
<s:set id="scm.exitTitle">
@@ -262,45 +300,38 @@
</div>
</div>
+
-
-
+ <s:set id="scm.commitMessage">
+ <s:text name="scm.commitMessage"/>
+ </s:set>
+ <s:set id="scm.commitMessageTitle">
+ <s:text name="scm.commitMessageTitle"/>
+ </s:set>
+
+ <div id="commitArea" >
+ <s:textarea cols="60" label="%{scm.commitMessage} " name="commitMessage" title="%{scm.commitMessageTitle}" ></s:textarea>
+ </div>
</div>
- <%
- String typeEditor="null";
- if (request.getAttribute("format")!=null && request.getAttribute("format").equals("rst")) {
- %>
+ <s:hidden key="format" />
+ <s:hidden key="mimeType" />
+
+ <s:if test="format=='rst'">
<h4><s:text name="scm.info.ProblemWithRst"/> <a href="http://docutils.sourceforge.net/docs/user/rst/quickref.html"><s:text name="scm.info.rstWebsite"/></a>.</h4>
- <% } %>
-
-
+ </s:if>
+
-
- <%
- if (request.getAttribute("format")!=null){
- %>
- <input type="hidden" name="format" value="<%=request.getAttribute("format")%>" />
- <% } %>
-
-
- <%
- String valueTextarea;
- if(request.getAttribute("lastText")!=null) {
- valueTextarea = (String) request.getAttribute("lastText");
- } else {
- valueTextarea = (String) request.getAttribute("OrigText");
- }
- %>
-
<p>
- <s:text name="scm.FileInEditor"/><a href="<%=request.getAttribute("address")%>" ><%=request.getAttribute("address")%></a>
+ <s:text name="scm.FileInEditor"/> <s:a href="%{address}" ><s:property value="address" /></s:a>
<s:text name="scm.atRevision"/> <span id="numrevisionDiv"><s:property value="numRevision" /></span>
</p>
- <textarea id="newTextId" rows="50" cols="80" name="newText" ><%=valueTextarea%></textarea>
+
+
+ <textarea id="newTextId" rows="50" cols="80" name="newText" ><s:property escapeHtml="false" value="OrigText" /></textarea>
@@ -328,7 +359,7 @@
<script type='text/javascript'>
- selectLanguage('<%=((String) request.getAttribute("minetype"))%>','<%=request.getAttribute("format")%>' );
+ selectLanguage('<s:property value="mimeType"/>','<s:property value="format"/>' );
changeModeBy(editor, document.getElementById('language'));
</script>
@@ -349,36 +380,19 @@
- <s:set id="scm.commitMessage">
- <s:text name="scm.commitMessage"/>
- </s:set>
- <s:set id="scm.commitMessageTitle">
- <s:text name="scm.commitMessageTitle"/>
- </s:set>
-
- <s:textarea cols="70" required="true" label="%{scm.commitMessage} " name="commitMessage" title="%{scm.commitMessageTitle}" ></s:textarea>
+
<p>
- <input type="hidden" name="address" value="<%=request.getAttribute("address")%>"/>
- <input type="hidden" id="origText" name="origText" value="<%=request.getAttribute("OrigText")%>"/>
- <% if(request.getAttribute("lastText")!=null) { %>
- <input type="hidden" name="lastText" value="<%=request.getAttribute("lastText")%>" />
- <% } %>
- <input type="hidden" name="scmEditorUrl" value="<%=request.getAttribute("scmEditorUrl")%>"/>
+ <s:hidden key="address" />
+ <s:hidden key="origText" />
+ <s:hidden key="scmEditorUrl" />
-
-
-
- <div id="scmButton">
+ <div id="scmButton"></div>
-
-
</div>
-
- </div>
</form>
<s:set id="scm.upload">
@@ -391,9 +405,8 @@
<s:set name="address">
<s:property value="address" />
</s:set>
- <s:hidden id="fileaddress" value="%{address}" />
<center>
- <s:submit name="uploadButton" value="%{scm.upload}" title="%{scm.uploadTitle}" onClick="javascript:upload_popup('doUpload.action', 'upload' , getElementById('fileaddress') );" />
+ <s:submit name="uploadButton" value="%{scm.upload}" title="%{scm.uploadTitle}" onClick="javascript:upload_popup('doUpload.action', 'upload' , getElementById('address') );" />
</center>
Modified: trunk/src/main/webapp/WEB-INF/content/outConnection.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/outConnection.jsp 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/webapp/WEB-INF/content/outConnection.jsp 2011-08-26 14:29:22 UTC (rev 246)
@@ -42,6 +42,41 @@
<body>
<!-- <a target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img src="img/accueil/machine-a-ecrire.png" alt="$alt" /></a> -->
<div id="wrapperConfig">
+
+
+
+<div id="flagHome">
+
+ <ul>
+ <li>
+ <s:if test="%{#session['WW_TRANS_I18N_LOCALE'] != null && #session['WW_TRANS_I18N_LOCALE'].language == 'en'}">
+ <img src="img/flag-i18n-uk.png" />
+ </s:if>
+ <s:else>
+ <s:a action="checkout.action" namespace="/">
+ <s:param name="request_locale">en_GB</s:param>
+ <img src="img/flag-i18n-uk.png" />
+ </s:a>
+ </s:else>
+ </li>
+ <li>
+ <s:if
+ test="%{#session['WW_TRANS_I18N_LOCALE'] == null || #session['WW_TRANS_I18N_LOCALE'].language == 'fr'}">
+ <img src="img/flag-i18n-fr.png" />
+ </s:if>
+ <s:else>
+ <s:a action="checkout.action" namespace="/">
+ <s:param name="request_locale">fr_FR</s:param>
+ <img src="img/flag-i18n-fr.png" />
+ </s:a>
+ </s:else>
+ </li>
+
+ </ul>
+
+</div>
+
+
<div id="wrapper2Config">
<div id="titleConfig" >
@@ -53,36 +88,13 @@
</div>
-<ul>
- <li>
- <s:if test="%{#session['WW_TRANS_I18N_LOCALE'] != null && #session['WW_TRANS_I18N_LOCALE'].language == 'en'}">
- <img src="img/flag-i18n-uk.png" />
- </s:if>
- <s:else>
- <s:a action="checkout.action" namespace="/">
- <s:param name="request_locale">en_GB</s:param>
- <img src="img/flag-i18n-uk.png" />
- </s:a>
- </s:else>
- </li>
- <li>
- <s:if
- test="%{#session['WW_TRANS_I18N_LOCALE'] == null || #session['WW_TRANS_I18N_LOCALE'].language == 'fr'}">
- <img src="img/flag-i18n-fr.png" />
- </s:if>
- <s:else>
- <s:a action="checkout.action" namespace="/">
- <s:param name="request_locale">fr_FR</s:param>
- <img src="img/flag-i18n-fr.png" />
- </s:a>
- </s:else>
- </li>
-
- </ul>
<form id="configForm" method="get" action="checkout.action">
+
<center>
+
+
<p><label><s:text name="scm.outConnection.scmPath"/> <input TYPE=text name="address" SIZE=50></label>
<s:url id="ajaxSearch" value="search.action" />
Modified: trunk/src/main/webapp/WEB-INF/content/reset.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/reset.jsp 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/webapp/WEB-INF/content/reset.jsp 2011-08-26 14:29:22 UTC (rev 246)
@@ -40,7 +40,7 @@
editor.mirror.setValue(document.getElementById('valueOfLastRevision').value);
- var numrev = <%=request.getAttribute("numRevision")%>;
+ var numrev = <s:property value="numRevision" />;
if(numrev!=null) {
document.getElementById('numrevisionDiv').innerHTML=numrev;
}
Modified: trunk/src/main/webapp/WEB-INF/content/save.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-26 14:29:22 UTC (rev 246)
@@ -99,13 +99,13 @@
</s:elseif>
<s:else>
- <p><s:text name="scm.lastChangeSave"/><s:property value="formatDate" /> </p>
+ <p><s:text name="scm.lastChangeSave"/>: <s:property value="formatDate" /> </p>
<s:set id="lastRevSet" value="newText" />
- <s:hidden id="lastRev" value="%{lastRevSet}" />
+ <s:hidden id="lastRev" value="%{lastText}" />
<script type="text/javascript">
origText = document.getElementById("origText");
origText.value = document.getElementById("lastRev").value;
- var numrev = <%=request.getAttribute("numRevision")%>;
+ var numrev = <s:property value="numRevision" />;
if(numrev!=null) {
document.getElementById('numrevisionDiv').innerHTML=numrev;
}
Modified: trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-26 14:29:22 UTC (rev 246)
@@ -88,7 +88,7 @@
</s:else>
- <input type="hidden" name="address" value="<%=request.getParameter("address") %>" />
+ <s:hidden key="address" />
<s:if test="badLogin">
<p><font color="red"><s:text name="scm.badUsernameOrPassword"/></font></p>
</s:if>
Modified: trunk/src/main/webapp/css/main.css
===================================================================
--- trunk/src/main/webapp/css/main.css 2011-08-25 14:53:10 UTC (rev 245)
+++ trunk/src/main/webapp/css/main.css 2011-08-26 14:29:22 UTC (rev 246)
@@ -39,6 +39,16 @@
margin:0;
}
+ul {
+ list-style: none ;
+ margin: 0 ;
+ padding: 0 ;
+}
+
+li {
+ display: inline ;
+}
+
.wwlbl , .wwctrl {
display:inline;
}
@@ -131,7 +141,7 @@
#headLogin {
position: relative;
- bottom:31px;
+ bottom:40px;
left:556px;
margin:0;
background-image:url("../img/editor/post-it.png");
@@ -162,6 +172,31 @@
}
+#flagHome {
+ float:right;
+ margin-right : 10px;
+}
+
+#flagEdit {
+ float:left;
+ margin-left : 10px;
+}
+
+
+#commitArea {
+ position:relative;
+ bottom : 121px;
+ left : 255px;
+ width : 445px;
+}
+
+#commitMessage {
+ width : 445px;
+ height : 50px;
+ max-height: 100px;
+ max-width: 445px;
+}
+
/* Button */
#saveButton {
@@ -235,7 +270,8 @@
margin:auto;
width:198px;
position:relative;
- top:70px;
+ top:53px;
+ right:49px;
}
#uploadFormId {
1
0
r245 - in trunk/src/main: java/org/nuiton/scmwebeditor java/org/nuiton/scmwebeditor/actions resources webapp/WEB-INF/content webapp/img
by kcardineaud@users.nuiton.org 25 Aug '11
by kcardineaud@users.nuiton.org 25 Aug '11
25 Aug '11
Author: kcardineaud
Date: 2011-08-25 16:53:10 +0200 (Thu, 25 Aug 2011)
New Revision: 245
Url: http://nuiton.org/repositories/revision/scmwebeditor/245
Log:
#1695 Make application multi-language
Added:
trunk/src/main/webapp/img/flag-i18n-fr.png
trunk/src/main/webapp/img/flag-i18n-uk.png
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/resources/struts.xml
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/outConnection.jsp
trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java 2011-08-25 13:46:34 UTC (rev 244)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java 2011-08-25 14:53:10 UTC (rev 245)
@@ -62,7 +62,7 @@
}
public static List<String> getEditableFiles(ApplicationConfig config) {
- return config.getOptionAsList(ScmWebEditorConfigOption.EDITABLESFILES.key).getOption();
+ return config.getOptionAsList(ScmWebEditorConfigOption.EDITABLESFILES.getKey()).getOption();
}
public static String getKey() {
@@ -70,7 +70,7 @@
}
public static String getKey(ApplicationConfig config) {
- return config.getOption(ScmWebEditorConfigOption.COOKIES_PRIVATE_KEY.key);
+ return config.getOption(ScmWebEditorConfigOption.COOKIES_PRIVATE_KEY.getKey());
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java 2011-08-25 13:46:34 UTC (rev 244)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java 2011-08-25 14:53:10 UTC (rev 245)
@@ -34,12 +34,12 @@
COOKIES_PRIVATE_KEY("cookiePrivateKey", "Private key for cookies" , null , String.class, true, true);
- public final String key;
- public final String description;
- public String defaultValue;
- public final Class<?> type;
- public boolean _transient;
- public boolean _final;
+ private final String key;
+ private final String description;
+ private String defaultValue;
+ private final Class<?> type;
+ private boolean _transient;
+ private boolean _final;
ScmWebEditorConfigOption(String key, String description, String defaultValue,
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-25 13:46:34 UTC (rev 244)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-25 14:53:10 UTC (rev 245)
@@ -25,12 +25,7 @@
package org.nuiton.scmwebeditor.actions;
import java.io.IOException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Iterator;
import java.util.LinkedList;
-import java.util.Map;
-import java.util.Map.Entry;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
@@ -46,7 +41,6 @@
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
import org.nuiton.scmwebeditor.ScmWebEditorConfig;
import org.nuiton.scmwebeditor.SvnConnection;
-import org.nuiton.scmwebeditor.urlResolver.ScmUrlResolverEngine;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNException;
@@ -96,7 +90,6 @@
protected boolean fromLoginPage;
-
public String getRepositoryId() {
return repositoryId;
}
@@ -218,45 +211,45 @@
- Map<?,?> map =(Map<?,?>) request.getParameterMap();
+// Map<?,?> map =(Map<?,?>) request.getParameterMap();
- if(map.size()==0 && testParameters()) {
+ if(testParameters()) {
return "noParameter";
}
- if(testParameters()) {
+// if(testParameters()) {
+//
+// Map<String,String> parameters = new HashMap<String,String>();
+//
+// Iterator<?> iter = map.entrySet().iterator();
+// while (iter.hasNext()) {
+// Entry<?,?> n = (Entry<?,?>)iter.next();
+// String key = n.getKey().toString();
+// String values[] = (String[]) n.getValue();
+// parameters.put(key,values[0].toString());
+// }
+//
+//
+// URL urlSvn = null;
+// try {
+// urlSvn = ScmUrlResolverEngine.resolver(parameters);
+// } catch (IOException e1) {
+// if(log.isErrorEnabled()) {
+// log.error("erreur", e1);
+// }
+// return "errorPath";
+// } catch (IllegalArgumentException e1) {
+// if(log.isErrorEnabled()) {
+// log.error(e1.getMessage());
+// }
+// return "errorPath";
+// }
+//
+// address=urlSvn.toString();
+//
+// }
- Map<String,String> parameters = new HashMap<String,String>();
-
- Iterator<?> iter = map.entrySet().iterator();
- while (iter.hasNext()) {
- Entry<?,?> n = (Entry<?,?>)iter.next();
- String key = n.getKey().toString();
- String values[] = (String[]) n.getValue();
- parameters.put(key,values[0].toString());
- }
-
-
- URL urlSvn = null;
- try {
- urlSvn = ScmUrlResolverEngine.resolver(parameters);
- } catch (IOException e1) {
- if(log.isErrorEnabled()) {
- log.error("erreur", e1);
- }
- return "errorPath";
- } catch (IllegalArgumentException e1) {
- if(log.isErrorEnabled()) {
- log.error(e1.getMessage());
- }
- return "errorPath";
- }
-
- address=urlSvn.toString();
-
- }
-
SvnConnection svnConn = null;
@@ -476,5 +469,8 @@
}
+
+
+
}
Modified: trunk/src/main/resources/struts.xml
===================================================================
--- trunk/src/main/resources/struts.xml 2011-08-25 13:46:34 UTC (rev 244)
+++ trunk/src/main/resources/struts.xml 2011-08-25 14:53:10 UTC (rev 245)
@@ -35,12 +35,41 @@
type="com.opensymphony.xwork2.TextProvider" />
<constant name="struts.xworkTextProvider" value="i18nTextProvider" />
+
+
+
+
<package name="action" extends="struts-default">
+
+
<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
</result-types>
+ <interceptors>
+
+ <!-- to remove parameter from context -->
+ <interceptor name="paramRemover"
+ class="com.opensymphony.xwork2.interceptor.ParameterRemoverInterceptor"/>
+
+
+ <!-- basic stack -->
+ <interceptor-stack name="scmwebeditorDefaultStack">
+ <interceptor-ref name="defaultStack"/>
+ <!-- remove the request_locale parameter from request -->
+ <interceptor-ref name="paramRemover">
+ <param name="paramNames">request_locale</param>
+ </interceptor-ref>
+
+ </interceptor-stack>
+ </interceptors>
+
+
+ <default-interceptor-ref name="scmwebeditorDefaultStack"/>
+
<action name="checkout" class="org.nuiton.scmwebeditor.actions.ScmWebEditorMainAction" method="execute">
+
+
<result name="noParameter" >/WEB-INF/content/outConnection.jsp</result>
<result name="login" >/WEB-INF/content/privateSvnRedirect.jsp</result>
<result name="errorPath" >/WEB-INF/content/badFileRedirect.jsp</result>
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-25 13:46:34 UTC (rev 244)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-25 14:53:10 UTC (rev 245)
@@ -348,7 +348,7 @@
<div id="form">
-
+
<s:set id="scm.commitMessage">
<s:text name="scm.commitMessage"/>
</s:set>
Modified: trunk/src/main/webapp/WEB-INF/content/outConnection.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/outConnection.jsp 2011-08-25 13:46:34 UTC (rev 244)
+++ trunk/src/main/webapp/WEB-INF/content/outConnection.jsp 2011-08-25 14:53:10 UTC (rev 245)
@@ -52,6 +52,35 @@
</h4>
</div>
+
+<ul>
+ <li>
+ <s:if test="%{#session['WW_TRANS_I18N_LOCALE'] != null && #session['WW_TRANS_I18N_LOCALE'].language == 'en'}">
+ <img src="img/flag-i18n-uk.png" />
+ </s:if>
+ <s:else>
+ <s:a action="checkout.action" namespace="/">
+ <s:param name="request_locale">en_GB</s:param>
+ <img src="img/flag-i18n-uk.png" />
+ </s:a>
+ </s:else>
+ </li>
+ <li>
+ <s:if
+ test="%{#session['WW_TRANS_I18N_LOCALE'] == null || #session['WW_TRANS_I18N_LOCALE'].language == 'fr'}">
+ <img src="img/flag-i18n-fr.png" />
+ </s:if>
+ <s:else>
+ <s:a action="checkout.action" namespace="/">
+ <s:param name="request_locale">fr_FR</s:param>
+ <img src="img/flag-i18n-fr.png" />
+ </s:a>
+ </s:else>
+ </li>
+
+ </ul>
+
+
<form id="configForm" method="get" action="checkout.action">
<center>
<p><label><s:text name="scm.outConnection.scmPath"/> <input TYPE=text name="address" SIZE=50></label>
Modified: trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-25 13:46:34 UTC (rev 244)
+++ trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-25 14:53:10 UTC (rev 245)
@@ -54,15 +54,12 @@
});
</script>
- <s:set id="scm.upload">
- <s:text name="scm.upload"/>
- </s:set>
-
+
<form method="POST" id="uploadForm" action="doUpload.action" enctype="multipart/form-data">
- <center><h1><s:text name="%{scm.upload}" ></s:text></h1></center>
+ <center><h1><s:text name="scm.upload" ></s:text></h1></center>
<label><s:text name="scm.uploadFile" /> : <input type="file" name="upload"/></label><br/>
<label><s:text name="scm.uploadPath" /> : <s:textfield size="50px" type="text" name="svnPath" id="svnPath" value="%{fileRoot}" /></label><br/>
Added: trunk/src/main/webapp/img/flag-i18n-fr.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/img/flag-i18n-fr.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Added: trunk/src/main/webapp/img/flag-i18n-uk.png
===================================================================
(Binary files differ)
Property changes on: trunk/src/main/webapp/img/flag-i18n-uk.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
1
0
r244 - in trunk/src/main: java/org/nuiton/scmwebeditor/actions webapp/WEB-INF/content
by kcardineaud@users.nuiton.org 25 Aug '11
by kcardineaud@users.nuiton.org 25 Aug '11
25 Aug '11
Author: kcardineaud
Date: 2011-08-25 15:46:34 +0200 (Thu, 25 Aug 2011)
New Revision: 244
Url: http://nuiton.org/repositories/revision/scmwebeditor/244
Log:
Fix an issue with logout
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/webapp/WEB-INF/content/logout.jsp
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java 2011-08-25 13:46:02 UTC (rev 243)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java 2011-08-25 13:46:34 UTC (rev 244)
@@ -44,6 +44,7 @@
private static final Log log = LogFactory.getLog(LogoutAction.class);
protected String address;
+ protected String projectUrl;
protected HttpServletRequest request;
protected HttpServletResponse response;
@@ -57,9 +58,16 @@
return address;
}
+ public String getProjectUrl() {
+ return projectUrl;
+ }
+ public void setProjectUrl(String projectUrl) {
+ this.projectUrl = projectUrl;
+ }
+
public String execute() {
-
+
SvnConnection svnConn = new SvnConnection(address);
//Si le repo n'est pas protege en ecriture on recupere sont UUID
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-25 13:46:02 UTC (rev 243)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-25 13:46:34 UTC (rev 244)
@@ -207,7 +207,7 @@
// }
- if(!this.fromLoginPage) {
+ if(!this.fromLoginPage && projectUrl==null) {
projectUrl=request.getHeader("referer");
}
Modified: trunk/src/main/webapp/WEB-INF/content/logout.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/logout.jsp 2011-08-25 13:46:02 UTC (rev 243)
+++ trunk/src/main/webapp/WEB-INF/content/logout.jsp 2011-08-25 13:46:34 UTC (rev 244)
@@ -34,12 +34,20 @@
<link rel="icon" href="img/ScmWebEditor_little.png" type="image/png">
<link rel="stylesheet" type="text/css" href="css/main.css">
+
+<% if(request.getAttribute("projectUrl")!=null) { %>
+<meta http-equiv="Refresh" content="0;URL=checkout.action?address=<%=request.getAttribute("address")%>&projectUrl=<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
<meta http-equiv="Refresh" content="0;URL=checkout.action?address=<%=request.getAttribute("address")%>">
+<% } %>
+
</head>
<body>
<a target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img src="img/ScmWebEditor_main.png" alt="$alt" /></a>
+
+
<p>Logout... <a href="checkout.action?address=<%=request.getAttribute("address")%>"> <s:text name="scm.clickHere" /> </a>.</p>
<p>©2004-2009 CodeLutin</p>
</body>
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-25 13:46:02 UTC (rev 243)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-25 13:46:34 UTC (rev 244)
@@ -114,10 +114,13 @@
<s:set id="addressDeco">
<s:property value="address"/>
+ </s:set>
+ <s:set id="projectUrlDeco">
+ <s:property value="projectUrl"/>
</s:set>
<s:a
id="logout"
- href="logout.action?address=%{addressDeco}"
+ href="logout.action?address=%{addressDeco}&projectUrl=%{projectUrlDeco}"
title="Logout"
>
<div id="logoutButton" ></div>
@@ -231,6 +234,13 @@
<!-- BEGIN exit -->
+ <% if(request.getAttribute("projectUrl")!=null) { %>
+ <input type="hidden" id="projectUrl" value="<%=request.getAttribute("projectUrl")%>" />
+ <% } else { %>
+ <input type="hidden" id="projectUrl" value="checkout.action" />
+ <% } %>
+
+
<s:set id="scm.exitTitle">
<s:text name="scm.exitTitle"/>
</s:set>
@@ -243,7 +253,7 @@
title="%{scm.exitTitle}"
value="%{scm.exit}"
name="Cancel"
- onclick="return cancelRedirect('%{scm.exitJavascript}',document.getElementById('ProjectUrl'));">
+ onclick="return cancelRedirect('%{scm.exitJavascript}',document.getElementById('projectUrl'));">
<div id="exitButton" ></div>
</s:a>
@@ -365,14 +375,6 @@
-
-
- <% if(request.getAttribute("projectUrl")!=null) { %>
- <input type="hidden" id="ProjectUrl" value="<%=request.getAttribute("projectUrl")%>" />
- <% } else { %>
- <input type="hidden" id="ProjectUrl" value="checkout.action" />
- <% } %>
-
</div>
1
0
r243 - in trunk/src/main: java/org/nuiton/scmwebeditor resources
by kcardineaud@users.nuiton.org 25 Aug '11
by kcardineaud@users.nuiton.org 25 Aug '11
25 Aug '11
Author: kcardineaud
Date: 2011-08-25 15:46:02 +0200 (Thu, 25 Aug 2011)
New Revision: 243
Url: http://nuiton.org/repositories/revision/scmwebeditor/243
Log:
Change ScmWebEditorConfigOption to be an enum that implements OptionDef
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java
trunk/src/main/resources/scmwebeditor.properties
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java 2011-08-25 09:42:26 UTC (rev 242)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java 2011-08-25 13:46:02 UTC (rev 243)
@@ -31,7 +31,7 @@
import org.nuiton.util.ApplicationConfig;
import org.nuiton.util.ArgumentsParserException;
-public class ScmWebEditorConfig extends ScmWebEditorConfigOption {
+public class ScmWebEditorConfig {
private static final Log log = LogFactory.getLog(ScmWebEditorConfig.class);
@@ -39,13 +39,13 @@
protected static ApplicationConfig config;
- public static ApplicationConfig getConfig() {
+ public static ApplicationConfig getConfig(String... args) {
if(config==null) {
synchronized (ScmWebEditorConfig.class) {
if(config==null) {
- config = new ApplicationConfig(PROPERTIESFILES);
+ config = new ApplicationConfig(ScmWebEditorConfigOption.CONFIG_FILE.getDefaultValue());
try {
- config.parse();
+ config.parse(args);
} catch (ArgumentsParserException e) {
if(log.isErrorEnabled()) {
log.error("Error when parsing ApplicationConfig",e);
@@ -58,14 +58,20 @@
}
public static List<String> getEditableFiles() {
- getConfig();
- return config.getOptionAsList(EDITABLESFILES).getOption();
+ return getEditableFiles(getConfig());
}
+ public static List<String> getEditableFiles(ApplicationConfig config) {
+ return config.getOptionAsList(ScmWebEditorConfigOption.EDITABLESFILES.key).getOption();
+ }
+
public static String getKey() {
- getConfig();
- return config.getOption(KEY);
+ return getKey(getConfig());
}
+ public static String getKey(ApplicationConfig config) {
+ return config.getOption(ScmWebEditorConfigOption.COOKIES_PRIVATE_KEY.key);
+ }
+
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java 2011-08-25 09:42:26 UTC (rev 242)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java 2011-08-25 13:46:02 UTC (rev 243)
@@ -24,22 +24,82 @@
*/
package org.nuiton.scmwebeditor;
-public class ScmWebEditorConfigOption {
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ApplicationConfig.OptionDef;
- /**
- * Nom du fichier de configuration
- */
- protected static final String PROPERTIESFILES = "scmwebeditor.properties";
-
- /**
- * propriété contenant la liste des fichiers éditables
- */
- protected static final String EDITABLESFILES = "editableFiles";
+public enum ScmWebEditorConfigOption implements OptionDef {
+
+ CONFIG_FILE(ApplicationConfig.CONFIG_FILE_NAME, "The file name", "scmwebeditor.properties", String.class, false, false),
+ EDITABLESFILES("editableFiles", "description" , "Files types that are editable", String.class, true, true),
+ COOKIES_PRIVATE_KEY("cookiePrivateKey", "Private key for cookies" , null , String.class, true, true);
+
- /**
- * Propriété contenant la clé
- */
- protected static final String KEY = "key";
+ public final String key;
+ public final String description;
+ public String defaultValue;
+ public final Class<?> type;
+ public boolean _transient;
+ public boolean _final;
+
+
+ ScmWebEditorConfigOption(String key, String description, String defaultValue,
+ Class<?> type, boolean _transient, boolean _final) {
+ this.key = key;
+ this.description = description;
+ this.defaultValue = defaultValue;
+ this.type = type;
+ this._final = _final;
+ this._transient = _transient;
+ }
+
+
+
+ @Override
+ public String getKey() {
+ return key;
+ }
+
+ @Override
+ public Class<?> getType() {
+ return type;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public String getDefaultValue() {
+ return defaultValue;
+ }
+
+ @Override
+ public boolean isTransient() {
+ return _transient;
+ }
+
+ @Override
+ public boolean isFinal() {
+ return _final;
+ }
+
+ @Override
+ public void setDefaultValue(String defaultValue) {
+ this.defaultValue = defaultValue ;
+ }
+
+ @Override
+ public void setTransient(boolean isTransient) {
+ this._transient=isTransient;
+ }
+
+ @Override
+ public void setFinal(boolean isFinal) {
+ this._final = isFinal;
+ }
+
+
Modified: trunk/src/main/resources/scmwebeditor.properties
===================================================================
--- trunk/src/main/resources/scmwebeditor.properties 2011-08-25 09:42:26 UTC (rev 242)
+++ trunk/src/main/resources/scmwebeditor.properties 2011-08-25 13:46:02 UTC (rev 243)
@@ -23,4 +23,4 @@
# #L%
###
editableFiles=text,xml,javascript,sh,x-tex,x-java
-key=ZvcCyhfRTVZoQz3B/IpYdw==
\ No newline at end of file
+cookiePrivateKey=ZvcCyhfRTVZoQz3B/IpYdw==
\ No newline at end of file
1
0
r242 - in trunk: . src/main/java/org/nuiton/scmwebeditor src/main/java/org/nuiton/scmwebeditor/actions src/main/resources src/main/webapp/WEB-INF/content src/main/webapp/css
by kcardineaud@users.nuiton.org 25 Aug '11
by kcardineaud@users.nuiton.org 25 Aug '11
25 Aug '11
Author: kcardineaud
Date: 2011-08-25 11:42:26 +0200 (Thu, 25 Aug 2011)
New Revision: 242
Url: http://nuiton.org/repositories/revision/scmwebeditor/242
Log:
Add cookies for authentifications
Added:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java
trunk/src/main/webapp/WEB-INF/content/logout.jsp
Modified:
trunk/pom.xml
trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/SaveAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
trunk/src/main/resources/scmwebeditor.properties
trunk/src/main/resources/struts.xml
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp
trunk/src/main/webapp/WEB-INF/content/search.jsp
trunk/src/main/webapp/css/main.css
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/pom.xml 2011-08-25 09:42:26 UTC (rev 242)
@@ -90,6 +90,13 @@
<artifactId>tika-core</artifactId>
<version>0.9</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.shiro</groupId>
+ <artifactId>shiro-core</artifactId>
+ <version>1.1.0</version>
+ </dependency>
+
<dependency>
Added: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java (rev 0)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfig.java 2011-08-25 09:42:26 UTC (rev 242)
@@ -0,0 +1,71 @@
+/*
+ * #%L
+ * ScmWebEditor
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.scmwebeditor;
+
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ArgumentsParserException;
+
+public class ScmWebEditorConfig extends ScmWebEditorConfigOption {
+
+ private static final Log log = LogFactory.getLog(ScmWebEditorConfig.class);
+
+
+ protected static ApplicationConfig config;
+
+
+ public static ApplicationConfig getConfig() {
+ if(config==null) {
+ synchronized (ScmWebEditorConfig.class) {
+ if(config==null) {
+ config = new ApplicationConfig(PROPERTIESFILES);
+ try {
+ config.parse();
+ } catch (ArgumentsParserException e) {
+ if(log.isErrorEnabled()) {
+ log.error("Error when parsing ApplicationConfig",e);
+ }
+ }
+ }
+ }
+ }
+ return config;
+ }
+
+ public static List<String> getEditableFiles() {
+ getConfig();
+ return config.getOptionAsList(EDITABLESFILES).getOption();
+ }
+
+ public static String getKey() {
+ getConfig();
+ return config.getOption(KEY);
+ }
+
+
+}
Added: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java (rev 0)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorConfigOption.java 2011-08-25 09:42:26 UTC (rev 242)
@@ -0,0 +1,47 @@
+/*
+ * #%L
+ * ScmWebEditor
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.scmwebeditor;
+
+public class ScmWebEditorConfigOption {
+
+ /**
+ * Nom du fichier de configuration
+ */
+ protected static final String PROPERTIESFILES = "scmwebeditor.properties";
+
+ /**
+ * propriété contenant la liste des fichiers éditables
+ */
+ protected static final String EDITABLESFILES = "editableFiles";
+
+ /**
+ * Propriété contenant la clé
+ */
+ protected static final String KEY = "key";
+
+
+
+
+}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java 2011-08-25 09:42:26 UTC (rev 242)
@@ -24,7 +24,6 @@
*/
package org.nuiton.scmwebeditor;
-import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.util.FileUtil;
@@ -178,7 +177,7 @@
SVNDiffClient diffClient = new SVNDiffClient(getManager(), getSvnOption());
- FileUtils.writeStringToFile(pathToFile, text);
+ FileUtil.writeString(pathToFile, text, "UTF-8");
ByteArrayOutputStream diff = new ByteArrayOutputStream();
@@ -204,7 +203,7 @@
SVNDiffClient diffClient = new SVNDiffClient(getManager(), getSvnOption());
- FileUtils.writeStringToFile(pathToFile, text);
+ FileUtil.writeString(pathToFile, text, "UTF-8");
ByteArrayOutputStream diff = new ByteArrayOutputStream();
Added: trunk/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java (rev 0)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/LogoutAction.java 2011-08-25 09:42:26 UTC (rev 242)
@@ -0,0 +1,100 @@
+/*
+ * #%L
+ * ScmWebEditor
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2011 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.scmwebeditor.actions;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.interceptor.ServletRequestAware;
+import org.apache.struts2.interceptor.ServletResponseAware;
+import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
+import org.nuiton.scmwebeditor.SvnConnection;
+
+import com.opensymphony.xwork2.Action;
+
+public class LogoutAction extends ScmWebEditorBaseAction implements ServletRequestAware, ServletResponseAware {
+
+ private static final long serialVersionUID = 6937086747942656369L;
+
+ private static final Log log = LogFactory.getLog(LogoutAction.class);
+
+ protected String address;
+
+ protected HttpServletRequest request;
+ protected HttpServletResponse response;
+
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
+
+ public String getAddress() {
+ return address;
+ }
+
+
+ public String execute() {
+
+ SvnConnection svnConn = new SvnConnection(address);
+
+ //Si le repo n'est pas protege en ecriture on recupere sont UUID
+ String repositoryUUID = svnConn.getUUID();
+ if (repositoryUUID==null) {
+ repositoryUUID=address;
+ }
+
+ //suppression des cookies pour ce dépot
+ for (Cookie c : request.getCookies()) {
+ if(c.getName().equals(repositoryUUID)) {
+ c.setMaxAge(0);//On supprime le cookie
+ response.addCookie(c);
+ if(log.isDebugEnabled()) {
+ log.debug("Cookie supprimé");
+ }
+ }
+ }
+
+ //Suppression des identifiants stockés en session
+ getScmSession().delScmUser(repositoryUUID);
+
+
+ return Action.SUCCESS;
+ }
+
+
+ @Override
+ public void setServletRequest(HttpServletRequest request) {
+ this.request=request;
+ }
+
+ @Override
+ public void setServletResponse(HttpServletResponse response) {
+ this.response=response;
+ }
+
+}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/SaveAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/SaveAction.java 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/SaveAction.java 2011-08-25 09:42:26 UTC (rev 242)
@@ -57,9 +57,6 @@
}
- /**
- *
- */
private static final long serialVersionUID = -115627369699637253L;
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-25 09:42:26 UTC (rev 242)
@@ -29,28 +29,33 @@
import java.io.FileNotFoundException;
import java.io.IOException;
+import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.shiro.codec.Base64;
+import org.apache.shiro.crypto.BlowfishCipherService;
import org.apache.struts2.interceptor.ServletRequestAware;
+import org.apache.struts2.interceptor.ServletResponseAware;
import org.nuiton.jrst.JRST;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
+import org.nuiton.scmwebeditor.ScmWebEditorConfig;
import org.nuiton.scmwebeditor.SvnConnection;
+import org.nuiton.util.FileUtil;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.wc.SVNCommitClient;
-
-
import com.opensymphony.xwork2.Action;
-public class ScmWebEditorCommitAction extends ScmWebEditorBaseAction implements ServletRequestAware {
+public class ScmWebEditorCommitAction extends ScmWebEditorBaseAction implements ServletRequestAware, ServletResponseAware {
/**
*
*/
@@ -71,15 +76,12 @@
protected String headCommiter;
protected boolean force;
+ protected boolean saveCookie;
protected String numRevision;
-
-
-
-
-
protected HttpServletRequest request;
+ protected HttpServletResponse response;
public String getCommitMessage() {
return commitMessage;
@@ -174,7 +176,15 @@
public String getHeadCommiter() {
return headCommiter;
}
+
+ public boolean isSaveCookie() {
+ return saveCookie;
+ }
+ public void setSaveCookie(boolean saveCookie) {
+ this.saveCookie = saveCookie;
+ }
+
protected boolean isRstValid(String newText) {
try {
JRST.generate(JRST.TYPE_HTML, newText);
@@ -196,6 +206,8 @@
public String execute() {
+ System.setProperty("file.encoding", "UTF-8");
+
if(!force) {
if(format.equals("rst")) {
if(!isRstValid(newText)) {
@@ -227,6 +239,47 @@
repositoryUUID=address;
}
+
+ /*
+ * Lecture du cookie
+ */
+ String usernamepwCookie = null;
+ // lire cookies
+
+ BlowfishCipherService bf = new BlowfishCipherService();
+
+ byte[] privateKey = Base64.decode(ScmWebEditorConfig.getKey());
+
+ for(Cookie c : request.getCookies()) {
+ if (c.getName().equals(repositoryUUID))
+ usernamepwCookie= c.getValue();
+ }
+
+
+
+ if(usernamepwCookie!=null) {
+
+ String usernameDecode = new String( bf.decrypt(Base64.decode(usernamepwCookie), privateKey).getBytes() );
+ String[] resCookie = usernameDecode.split(",");
+ if (resCookie.length==2) {
+ username=resCookie[0];
+ pw=resCookie[1];
+ }
+ }
+
+ if(saveCookie) {
+ if(username!=null && pw!=null) {
+ Cookie authCookie = new Cookie( repositoryUUID , bf.encrypt( (username+","+pw).getBytes() , privateKey ).toBase64() );
+ authCookie.setMaxAge(60*60*24*365);
+ response.addCookie(authCookie);
+ }
+
+ }
+
+
+ /*
+ * Recuperation des informations d'authentification dans la session
+ */
if( ( login==null || login.equals("") ) && ( password==null || password.equals("") ) ) {
if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
@@ -353,30 +406,31 @@
File pathToFile = new File(checkoutdir, svnConn.getFileName());
+
try {
- FileUtils.writeStringToFile(pathToFile, newText);
+ FileUtil.writeString(pathToFile, newText, "UTF-8");
} catch (IOException e1) {
delTempDirectory(checkoutdir);
return "error";
}
+
File[] tabFile = new File[1];
tabFile[0] = pathToFile;
-
-
+
try {
if(log.isDebugEnabled()) {
log.debug("Try to commit");
}
- commitClient.doCommit(tabFile, false, "From scmwebeditor -- "+commitMessage, null, null, false, true, SVNDepth.FILES);
+ commitClient.doCommit(tabFile, false, "From scmwebeditor -- "+commitMessage, null, null, false, false, SVNDepth.FILES);
} catch (SVNAuthenticationException authexep) {
if(log.isErrorEnabled()) {
log.error("AUTH FAIL");
}
// if authentication failed edition page is reload form user's relogin
- request.setAttribute("address", address);
+ request.setAttribute(PARAMETER_ADDRESS, address);
request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(newText));
@@ -430,4 +484,9 @@
this.request = request;
}
+ @Override
+ public void setServletResponse(HttpServletResponse response) {
+ this.response = response;
+ }
+
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-25 09:42:26 UTC (rev 242)
@@ -32,25 +32,28 @@
import java.util.Map;
import java.util.Map.Entry;
+import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.shiro.codec.Base64;
+import org.apache.shiro.crypto.BlowfishCipherService;
import org.apache.struts2.interceptor.ServletRequestAware;
+import org.apache.struts2.interceptor.ServletResponseAware;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
+import org.nuiton.scmwebeditor.ScmWebEditorConfig;
import org.nuiton.scmwebeditor.SvnConnection;
import org.nuiton.scmwebeditor.urlResolver.ScmUrlResolverEngine;
-import org.nuiton.util.ApplicationConfig;
-import org.nuiton.util.ArgumentsParserException;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNException;
import com.opensymphony.xwork2.Action;
-public class ScmWebEditorMainAction extends ScmWebEditorBaseAction implements ServletRequestAware {
+public class ScmWebEditorMainAction extends ScmWebEditorBaseAction implements ServletRequestAware, ServletResponseAware {
private static final long serialVersionUID = 8361035067228171624L;
@@ -189,8 +192,7 @@
* @return
*/
public String execute() {
-
-
+
if(log.isDebugEnabled()) {
log.debug("Connection to SCMWebEditor\n");
}
@@ -285,7 +287,45 @@
}
+ /*
+ * Lecture du cookie
+ */
+
+
+ String usernamepwCookie = null;
+ // lire cookies
+
+ BlowfishCipherService bf = new BlowfishCipherService();
+
+ byte[] privateKey = Base64.decode(ScmWebEditorConfig.getKey());
+
+ for(Cookie c : request.getCookies()) {
+ if (c.getName().equals(repositoryUUID))
+ usernamepwCookie= c.getValue();
+ }
+ if(usernamepwCookie!=null) {
+
+ String usernameDecode = new String( bf.decrypt(Base64.decode(usernamepwCookie), privateKey).getBytes() );
+
+ String[] resCookie = usernameDecode.split(",");
+ if (resCookie.length==2) {
+ username=resCookie[0];
+ pw=resCookie[1];
+ }
+ }
+
+ if(saveCookie) {
+ if(username!=null && pw!=null) {
+
+ Cookie authCookie = new Cookie( repositoryUUID , bf.encrypt( (username+","+pw).getBytes() , privateKey ).toBase64() );
+ authCookie.setMaxAge(60*60*24*365);
+ response.addCookie(authCookie);
+ }
+
+ }
+
+
/*
* Récuperation des informations en session
*/
@@ -325,6 +365,17 @@
log.debug("Auth Fail " ,authexep);
}
+ //suppression des cookies pour ce dépot
+ for (Cookie c : request.getCookies()) {
+ if(c.getName().equals(repositoryUUID)) {
+ c.setMaxAge(0);//On supprime le cookie
+ response.addCookie(c);
+ if(log.isDebugEnabled()) {
+ log.debug("Cookie supprimé");
+ }
+ }
+ }
+
getScmSession().delScmUser(repositoryUUID);
//redirect to a login page
return Action.LOGIN;
@@ -361,22 +412,14 @@
- ApplicationConfig config = new ApplicationConfig(PROPERTIESFILES);
-
LinkedList<String> editableFiles = new LinkedList<String>();
editableFiles.add("text");
editableFiles.add("xml");
editableFiles.add("x-java");
- try {
- config.parse();
- editableFiles.addAll(config.getOptionAsList(EDITABLESFILES).getOption());
- } catch (ArgumentsParserException eee) {
- if(log.isErrorEnabled()) {
- log.error("Can't read properties file", eee );
- }
- }
+ editableFiles.addAll(ScmWebEditorConfig.getEditableFiles());
+
boolean editable =false;
@@ -427,8 +470,11 @@
}
+ @Override
+ public void setServletResponse(HttpServletResponse response) {
+ this.response = response;
+ }
-
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-25 09:42:26 UTC (rev 242)
@@ -268,10 +268,7 @@
-// //On test si le chemin commence par un / si non, on l'ajoute
-// if(!svnPath.startsWith("/")) {
-// svnPath="/"+svnPath;
-// }
+
//On test si le chemin se termine par un / si non, on l'ajoute
if(!svnPath.endsWith("/")) {
svnPath+=("/");
Modified: trunk/src/main/resources/scmwebeditor.properties
===================================================================
--- trunk/src/main/resources/scmwebeditor.properties 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/resources/scmwebeditor.properties 2011-08-25 09:42:26 UTC (rev 242)
@@ -22,4 +22,5 @@
# <http://www.gnu.org/licenses/lgpl-3.0.html>.
# #L%
###
-editableFiles=text,xml,javascript,sh,x-tex,x-java
\ No newline at end of file
+editableFiles=text,xml,javascript,sh,x-tex,x-java
+key=ZvcCyhfRTVZoQz3B/IpYdw==
\ No newline at end of file
Modified: trunk/src/main/resources/struts.xml
===================================================================
--- trunk/src/main/resources/struts.xml 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/resources/struts.xml 2011-08-25 09:42:26 UTC (rev 242)
@@ -66,6 +66,10 @@
<result name="errorPath">/WEB-INF/content/reset.jsp</result>
</action>
+ <action name="logout" class="org.nuiton.scmwebeditor.actions.LogoutAction" >
+ <result>/WEB-INF/content/logout.jsp</result>
+ </action>
+
<action name="doUpload" class="org.nuiton.scmwebeditor.actions.UploadAction" >
<result>/WEB-INF/content/uploadSuccess.jsp</result>
<result name="redirect" >/WEB-INF/content/uploadForm.jsp</result>
Added: trunk/src/main/webapp/WEB-INF/content/logout.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/logout.jsp (rev 0)
+++ trunk/src/main/webapp/WEB-INF/content/logout.jsp 2011-08-25 09:42:26 UTC (rev 242)
@@ -0,0 +1,46 @@
+<%--
+ #%L
+ ScmWebEditor
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2009 - 2011 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ --%>
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+ <%@ taglib prefix="s" uri="/struts-tags"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Logout...</title>
+<link rel="icon" href="img/ScmWebEditor_little.png" type="image/png">
+<link rel="stylesheet" type="text/css" href="css/main.css">
+
+<meta http-equiv="Refresh" content="0;URL=checkout.action?address=<%=request.getAttribute("address")%>">
+
+</head>
+<body>
+<a target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img src="img/ScmWebEditor_main.png" alt="$alt" /></a>
+
+<p>Logout... <a href="checkout.action?address=<%=request.getAttribute("address")%>"> <s:text name="scm.clickHere" /> </a>.</p>
+<p>©2004-2009 CodeLutin</p>
+</body>
+</html>
\ No newline at end of file
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-25 09:42:26 UTC (rev 242)
@@ -108,10 +108,26 @@
<s:textfield accesskey="U" size="12" label="%{scm.username}" name="username" title="%{scm.usernameTitle}" />
<s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" />
-
+ <input type="checkbox" name="saveCookie" value="true" >Rester connecté
</s:if>
<s:else >
- <s:text name="scm.logAs" /> <s:property value="username" /> <br/>
+
+ <s:set id="addressDeco">
+ <s:property value="address"/>
+ </s:set>
+ <s:a
+ id="logout"
+ href="logout.action?address=%{addressDeco}"
+ title="Logout"
+ >
+ <div id="logoutButton" ></div>
+ </s:a>
+
+ <s:text name="scm.logAs" /> <s:property value="username" />
+
+
+
+ <br/>
</s:else>
<div id="htmlcontentCommit">
@@ -134,7 +150,7 @@
</s:set>
<s:submit
value="commit"
- title="%{scm.saveAndQuitTitle}"
+ title="Deconnexion"
name="Save"
/>
</noscript>
@@ -274,7 +290,7 @@
<s:text name="scm.FileInEditor"/><a href="<%=request.getAttribute("address")%>" ><%=request.getAttribute("address")%></a>
<s:text name="scm.atRevision"/> <span id="numrevisionDiv"><s:property value="numRevision" /></span>
</p>
- <textarea id="newTextId" rows="50" cols="80" name="newText"><%=valueTextarea%></textarea>
+ <textarea id="newTextId" rows="50" cols="80" name="newText" ><%=valueTextarea%></textarea>
Modified: trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp 2011-08-25 09:42:26 UTC (rev 242)
@@ -53,9 +53,12 @@
<p><label ACCESSKEY=U><s:text name="scm.username" /> : <input TYPE=text
NAME=username SIZE=12></label>
<label ACCESSKEY=P><s:text name="scm.password" /> : <input
- TYPE=password NAME=pw SIZE=12></label></p>
+ TYPE=password NAME=pw SIZE=12></label>
+ <input type="checkbox" name="saveCookie" value="true" >Rester connecté
+ </p>
+
<input type="submit" name="Save" />
Modified: trunk/src/main/webapp/WEB-INF/content/search.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/search.jsp 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/webapp/WEB-INF/content/search.jsp 2011-08-25 09:42:26 UTC (rev 242)
@@ -61,7 +61,7 @@
jstreetheme="classic"
href="%{searchTreeUrl}"
onClickTopics="treeClicked"
- />
+ />
</div>
Modified: trunk/src/main/webapp/css/main.css
===================================================================
--- trunk/src/main/webapp/css/main.css 2011-08-24 15:27:19 UTC (rev 241)
+++ trunk/src/main/webapp/css/main.css 2011-08-25 09:42:26 UTC (rev 242)
@@ -136,7 +136,7 @@
margin:0;
background-image:url("../img/editor/post-it.png");
background-repeat:no-repeat;
- width:460px;
+ width:468px;
height:190px;
}
@@ -145,7 +145,7 @@
float:right;
margin-right:30px;
text-align:center;
- width:261px;
+ width:270px;
}
#htmlcontentCommit {
@@ -219,6 +219,16 @@
background-image:url("../img/editor/shut-down-hover.png");
}
+#logoutButton {
+ float:right;
+ background-image:url("../img/editor/shut-down-hover.png");
+ background-repeat:no-repeat;
+ height:33px;
+ width:33px;
+ background-position: 0px -4px;
+}
+
+
/* END Button */
#editorTitle {
1
0
Author: tchemit
Date: 2011-08-24 17:27:19 +0200 (Wed, 24 Aug 2011)
New Revision: 241
Url: http://nuiton.org/repositories/revision/scmwebeditor/241
Log:
remove unused import in jsp
Modified:
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/search.jsp
trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-24 15:21:15 UTC (rev 240)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-24 15:27:19 UTC (rev 241)
@@ -22,12 +22,9 @@
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
--%>
- <%-- Document : ModificationViewer Created on : 10 sept. 2009, 13:43:11 Author : glorieux --%>
- <%@page import="org.apache.commons.lang.StringEscapeUtils"%>
- <%@page import="java.util.Map"%>
- <%@page import="org.nuiton.scmwebeditor.ScmSession"%>
-
- <%@page contentType="text/html" pageEncoding="UTF-8"%>
+ <%-- Document : ModificationViewer Created on : 10 sept. 2009, 13:43:11 Author : glorieux --%>
+
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<sj:head jquerytheme="default"/>
Modified: trunk/src/main/webapp/WEB-INF/content/search.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/search.jsp 2011-08-24 15:21:15 UTC (rev 240)
+++ trunk/src/main/webapp/WEB-INF/content/search.jsp 2011-08-24 15:27:19 UTC (rev 241)
@@ -24,12 +24,8 @@
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
-<%@page import="org.nuiton.scmwebeditor.actions.SearchAction"%>
-<%@page import="java.util.LinkedList" %>
-<%@page import="java.util.Iterator" %>
-
-
- <%@ taglib prefix="s" uri="/struts-tags"%>
+
+<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags" %>
Modified: trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-24 15:21:15 UTC (rev 240)
+++ trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-24 15:27:19 UTC (rev 241)
@@ -24,10 +24,8 @@
--%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
- <%@page import="org.nuiton.scmwebeditor.ScmSession"%>
- <%@page import="org.nuiton.scmwebeditor.SvnConnection"%>
-
- <%@ taglib prefix="s" uri="/struts-tags"%>
+
+<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
<%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags" %>
1
0
r240 - in trunk: . src/main/java/org/nuiton/scmwebeditor src/main/resources src/main/resources/i18n
by tchemit@users.nuiton.org 24 Aug '11
by tchemit@users.nuiton.org 24 Aug '11
24 Aug '11
Author: tchemit
Date: 2011-08-24 17:21:15 +0200 (Wed, 24 Aug 2011)
New Revision: 240
Url: http://nuiton.org/repositories/revision/scmwebeditor/240
Log:
Anomalie #1710: Bad internalisation translations
Modified:
trunk/pom.xml
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorApplicationListener.java
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties
trunk/src/main/resources/struts.properties
trunk/src/main/resources/struts.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-08-24 12:36:33 UTC (rev 239)
+++ trunk/pom.xml 2011-08-24 15:21:15 UTC (rev 240)
@@ -96,9 +96,15 @@
<groupId>org.nuiton.i18n</groupId>
<artifactId>nuiton-i18n</artifactId>
<version>${nuitonI18nVersion}</version>
- <scope>runtime</scope>
+ <scope>compile</scope>
</dependency>
+ <dependency>
+ <groupId>org.nuiton.web</groupId>
+ <artifactId>nuiton-struts2</artifactId>
+ <version>${nuitonWebVersion}</version>
+ </dependency>
+
<!-- Struts -->
<dependency>
@@ -216,8 +222,9 @@
<struts2Version>2.2.3</struts2Version>
<struts2jqueryVersion>3.1.0</struts2jqueryVersion>
- <nuitonI18nVersion>2.4</nuitonI18nVersion>
+ <nuitonI18nVersion>2.4.1</nuitonI18nVersion>
<nuitonUtilsVersion>2.2</nuitonUtilsVersion>
+ <nuitonWebVersion>1.3</nuitonWebVersion>
<jrstPluginVersion>1.4</jrstPluginVersion>
<!-- <scmwebeditorUrl>http://localhost:8080/scmwebeditor/checkout.action</scmwebeditorUrl> -->
@@ -227,7 +234,6 @@
<i18n.bundleOutputName>scmwebeditor-i18n</i18n.bundleOutputName>
- <i18n.bundleOutputPackage/>
<!-- extra files to include in release -->
<redmine.releaseFiles>
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorApplicationListener.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorApplicationListener.java 2011-08-24 12:36:33 UTC (rev 239)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorApplicationListener.java 2011-08-24 15:21:15 UTC (rev 240)
@@ -24,19 +24,28 @@
*/
package org.nuiton.scmwebeditor;
+import org.nuiton.i18n.I18n;
+import org.nuiton.i18n.init.DefaultI18nInitializer;
+import org.nuiton.i18n.init.I18nInitializer;
+import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
+import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
+
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
+import java.util.Locale;
-import org.tmatesoft.svn.core.internal.io.dav.DAVRepositoryFactory;
-import org.tmatesoft.svn.core.internal.io.svn.SVNRepositoryFactoryImpl;
-
public class ScmWebEditorApplicationListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
SVNRepositoryFactoryImpl.setup();
DAVRepositoryFactory.setup();
-
+
+ // init I18n
+ I18nInitializer i18nInitializer =
+ new DefaultI18nInitializer("scmwebeditor-i18n");
+ i18nInitializer.setMissingKeyReturnNull(true);
+ I18n.init(i18nInitializer, Locale.getDefault());
}
@Override
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-24 12:36:33 UTC (rev 239)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-24 15:21:15 UTC (rev 240)
@@ -24,8 +24,12 @@
*/
package org.nuiton.scmwebeditor;
-import info.monitorenter.cpdetector.io.*;
-
+import com.opensymphony.xwork2.ActionContext;
+import info.monitorenter.cpdetector.io.ASCIIDetector;
+import info.monitorenter.cpdetector.io.ByteOrderMarkDetector;
+import info.monitorenter.cpdetector.io.CodepageDetectorProxy;
+import info.monitorenter.cpdetector.io.JChardetFacade;
+import info.monitorenter.cpdetector.io.ParsingDetector;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
@@ -34,6 +38,7 @@
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.AutoDetectParser;
import org.apache.tika.sax.BodyContentHandler;
+import org.nuiton.web.struts2.BaseAction;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNNodeKind;
@@ -51,11 +56,19 @@
import org.tmatesoft.svn.core.wc.SVNWCUtil;
import org.xml.sax.SAXException;
-import com.opensymphony.xwork2.ActionContext;
-import com.opensymphony.xwork2.ActionSupport;
-
import javax.servlet.http.HttpSession;
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Reader;
+import java.io.Writer;
import java.net.MalformedURLException;
import java.nio.charset.Charset;
import java.util.Map;
@@ -66,7 +79,7 @@
* Date: 24 nov. 2009
* Time: 21:24:39
*/
-public class ScmWebEditorBaseAction extends ActionSupport {
+public class ScmWebEditorBaseAction extends BaseAction {
protected Map<String, Object> session;
Modified: trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties
===================================================================
--- trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties 2011-08-24 12:36:33 UTC (rev 239)
+++ trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties 2011-08-24 15:21:15 UTC (rev 240)
@@ -1,57 +1,57 @@
-scm.FileInEditor=Fichier dans l''editeur \:
-scm.atRevision=a la revision
-scm.badPathOrFileName=L''adresse du depot ou le nom du fichier est incorrect, ou le fichier n''est pas editable \!
+scm.FileInEditor=Fichier dans l'éditeur \:
+scm.atRevision=à la revision
+scm.badPathOrFileName=L'adresse du dépôt ou le nom du fichier est incorrect, ou le fichier n'est pas éditable \!
scm.badUsernameOrPassword=Identifiant ou mot de passe incorrect
-scm.beTransferred=Vous devriez etre redirige sur une nouvelle page. si non
+scm.beTransferred=Vous devriez être redirigé sur une nouvelle page. si non
scm.by=Par
scm.cannotSave=Modification impossible
scm.clickHere=cliquez ici
-scm.commitMessage=Message associe au commit
+scm.commitMessage=Message associé au commit
scm.commitMessageTitle=laisser un message pour le commit
-scm.erreurRepo=Erreur sur le depot
+scm.erreurRepo=Erreur sur le dépôt
scm.exit=Quitter
-scm.exitJavascript=Quitter ScmWebEditor sans sauvegarder ? Toutes les modifications serons perdues.
+scm.exitJavascript=Quitter ScmWebEditor sans sauvegarder ? Toutes les modifications seront perdues.
scm.exitTitle=Quitter ScmWebEditor sans sauvegarder.
-scm.fileModify=Fichier modifie pendant l'edition.
+scm.fileModify=Fichier modifié pendant l'édition.
scm.forceSave=Forcer la sauvegarde
-scm.formTransferred=Vous devriez etre redirige vers la page du formulaire. si non
+scm.formTransferred=Vous devriez être redirigé vers la page du formulaire. si non
scm.info.ProblemWithRst=Si vous rencontrez des problemes avec RestruturedText, visitez le
scm.info.rstWebsite=site de la documentation RST
scm.language=Langage
-scm.lastChangeSave=Derniere sauvegarde effectuee
+scm.lastChangeSave=Dernière sauvegarde effectuée
scm.logAs=Connecte en tant que \:
scm.loginButton=Connexion
-scm.modificationViewer.betterUseJavascript=Activer Javascript pour acceder a toute les fonctionnalitees.
-scm.modificationViewer.noJavascript=Javascript est desactive. Vous pouvais seulement utiliser les boutons sauvegarder et quitter, quitter ou upload.
-scm.mustBeLog=Vous devez vous identifier pour parcourir ce depot.
+scm.modificationViewer.betterUseJavascript=Activer Javascript pour accéder à toute les fonctionnalités.
+scm.modificationViewer.noJavascript=Javascript est désactivé. Vous pouvez seulement utiliser les boutons sauvegarder et quitter, quitter ou upload.
+scm.mustBeLog=Vous devez vous identifier pour parcourir ce dépôt.
scm.no=Non
-scm.outConnection.enterRepo=Entrez l''adresse de votre depot.
-scm.outConnection.noJavascript=Javascript n''est pas active. Certaines fonctions ne serons pas accessible.
-scm.outConnection.scmPath=Repertoire SCM \:
+scm.outConnection.enterRepo=Entrez l'adresse de votre dépôt.
+scm.outConnection.noJavascript=Javascript n'est pas active. Certaines fonctions ne seront pas accessibles.
+scm.outConnection.scmPath=Répertoire SCM \:
scm.outConnection.search=Chercher
scm.password=Mot de passe
-scm.passwordTitle=Mot de passe du depot
-scm.pathError=erreur dans le chemin
+scm.passwordTitle=Mot de passe du dépôt
+scm.pathError=Erreur dans le chemin
scm.preview=Apercu
scm.privateScmAccess=Pour modifier ce fichier, veuillez vous connecter.
scm.redirection=Redirection...
-scm.reset=Reinitialiser
-scm.resetTitle=Retour a la derniere revision du fichier
-scm.rstNotValidMessage=The Rst n''est pas valide, voulez-vous continuer ?
+scm.reset=Réinitialiser
+scm.resetTitle=Retour a la dernière révision du fichier
+scm.rstNotValidMessage=The Rst n'est pas valide, voulez-vous continuer ?
scm.saveAndContinue=Sauvegarder et continuer
-scm.saveAndContinueTitle=Enregister les modifications sur le depot et continuer d''editer le fichier
+scm.saveAndContinueTitle=Enregister les modifications sur le dépôt et continuer d'editer le fichier
scm.saveAndQuit=Sauvegarder et quitter
-scm.saveAndQuitTitle=Sauvegarder le fichier sur le depot et retourner à la page precedente.
+scm.saveAndQuitTitle=Sauvegarder le fichier sur le dépôt et retourner à la page précédente.
scm.showDiff=Voir les differences
scm.text=Texte
-scm.thankUsing=merci d''avoir utilise SCMWebEditor
+scm.thankUsing=merci d'avoir utilise SCMWebEditor
scm.upload=Ajouter un fichier
scm.uploadFile=Url du fichier
-scm.uploadPath=Repertoire sur le depot
+scm.uploadPath=Repertoire sur le dépôt
scm.uploadSuccess=Fichier telecharche avec succes
-scm.uploadTitle=Ajouter un fichier sur le depot
-scm.uselessSave=Inutile de sauvegarder le fichier, aucune modification n''ont ete apporte
+scm.uploadTitle=Ajouter un fichier sur le dépôt
+scm.uselessSave=Inutile de sauvegarder le fichier, aucune modification n'ont été apporté
scm.username=Identifiant
-scm.usernameTitle=Identifiant du depot
+scm.usernameTitle=Identifiant du dépôt
scm.welcome=Bienvenue sur SCMWebEditor
scm.yes=Oui
Modified: trunk/src/main/resources/struts.properties
===================================================================
--- trunk/src/main/resources/struts.properties 2011-08-24 12:36:33 UTC (rev 239)
+++ trunk/src/main/resources/struts.properties 2011-08-24 15:21:15 UTC (rev 240)
@@ -23,47 +23,53 @@
# #L%
###
struts.locale=fr_FR
-struts.i18n.encoding=UTF-8
+#struts.i18n.encoding=UTF-8
+struts.ognl.logMissingProperties=true
+
+struts.el.throwExceptionOnFailure=true
+
+#struts.action.extension=,,
+
# struts.multipart.parser=cos
# struts.multipart.parser=pell
-struts.multipart.parser=jakarta
+#struts.multipart.parser=jakarta
# uses javax.servlet.context.tempdir by default
-struts.multipart.saveDir=
-struts.multipart.maxSize=2097152
+#struts.multipart.saveDir=
+#struts.multipart.maxSize=2097152
# struts.custom.properties=application,com/webwork/extension/custom
#struts.mapper.class=org.apache.struts2.dispatcher.mapper.DefaultActionMapper
-struts.action.extension=action
+#struts.action.extension=action
-struts.serve.static=true
+#struts.serve.static=true
-struts.serve.static.browserCache=true
+#struts.serve.static.browserCache=true
-struts.tag.altSyntax=true
+#struts.tag.altSyntax=true
-struts.devMode=false
+#struts.devMode=false
struts.i18n.reload=true
struts.ui.theme=css_xhtml
-struts.ui.templateDir=template
+#struts.ui.templateDir=template
#sets the default template type. Either ftl, vm, or jsp
-struts.ui.templateSuffix=ftl
+#struts.ui.templateSuffix=ftl
-struts.configuration.xml.reload=false
+#struts.configuration.xml.reload=false
-struts.url.http.port = 80
-struts.url.https.port = 443
+#struts.url.http.port = 80
+#struts.url.https.port = 443
-struts.custom.i18n.resources=scmwebeditor-i18n
+#struts.custom.i18n.resources=scmwebeditor-i18n
-struts.dispatcher.parametersWorkaround = false
+#struts.dispatcher.parametersWorkaround = false
#struts.freemarker.manager.classname=org.apache.struts2.views.freemarker.FreemarkerManager
-struts.freemarker.wrapper.altMap=true
+#struts.freemarker.wrapper.altMap=true
-struts.xslt.nocache=false
+#struts.xslt.nocache=false
Modified: trunk/src/main/resources/struts.xml
===================================================================
--- trunk/src/main/resources/struts.xml 2011-08-24 12:36:33 UTC (rev 239)
+++ trunk/src/main/resources/struts.xml 2011-08-24 15:21:15 UTC (rev 240)
@@ -29,6 +29,12 @@
2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
+
+ <bean class="org.nuiton.web.struts2.I18nTextProvider"
+ name="i18nTextProvider"
+ type="com.opensymphony.xwork2.TextProvider" />
+ <constant name="struts.xworkTextProvider" value="i18nTextProvider" />
+
<package name="action" extends="struts-default">
<result-types>
<result-type name="json" class="org.apache.struts2.json.JSONResult"/>
1
0
Author: kcardineaud
Date: 2011-08-24 14:36:33 +0200 (Wed, 24 Aug 2011)
New Revision: 239
Url: http://nuiton.org/repositories/revision/scmwebeditor/239
Log:
Change properties file name
Added:
trunk/src/main/resources/scmwebeditor.properties
Removed:
trunk/src/main/resources/scm.properties
Deleted: trunk/src/main/resources/scm.properties
===================================================================
--- trunk/src/main/resources/scm.properties 2011-08-24 12:35:24 UTC (rev 238)
+++ trunk/src/main/resources/scm.properties 2011-08-24 12:36:33 UTC (rev 239)
@@ -1,25 +0,0 @@
-###
-# #%L
-# ScmWebEditor
-#
-# $Id$
-# $HeadURL$
-# %%
-# Copyright (C) 2009 - 2011 CodeLutin
-# %%
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Lesser Public License for more details.
-#
-# You should have received a copy of the GNU General Lesser Public
-# License along with this program. If not, see
-# <http://www.gnu.org/licenses/lgpl-3.0.html>.
-# #L%
-###
-editableFiles=text,xml,javascript,sh,x-tex,x-java
\ No newline at end of file
Added: trunk/src/main/resources/scmwebeditor.properties
===================================================================
--- trunk/src/main/resources/scmwebeditor.properties (rev 0)
+++ trunk/src/main/resources/scmwebeditor.properties 2011-08-24 12:36:33 UTC (rev 239)
@@ -0,0 +1,25 @@
+###
+# #%L
+# ScmWebEditor
+#
+# $Id$
+# $HeadURL$
+# %%
+# Copyright (C) 2009 - 2011 CodeLutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Lesser Public License for more details.
+#
+# You should have received a copy of the GNU General Lesser Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/lgpl-3.0.html>.
+# #L%
+###
+editableFiles=text,xml,javascript,sh,x-tex,x-java
\ No newline at end of file
1
0
r238 - in trunk/src/main/java/org/nuiton/scmwebeditor: . actions
by kcardineaud@users.nuiton.org 24 Aug '11
by kcardineaud@users.nuiton.org 24 Aug '11
24 Aug '11
Author: kcardineaud
Date: 2011-08-24 14:35:24 +0200 (Wed, 24 Aug 2011)
New Revision: 238
Url: http://nuiton.org/repositories/revision/scmwebeditor/238
Log:
Use ApplicationConfig to get properties file
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-19 16:29:53 UTC (rev 237)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-24 12:35:24 UTC (rev 238)
@@ -110,6 +110,10 @@
protected static final String ATTRIBUTE_FILESEARCH_SERVLET_URL = "searchServletUrl";
protected static final String ATTRIBUTE_REDIRECT_URL = "Redirect_url";
protected static final String ATTRIBUTE_PRIVATE_SERVLET_URI = "privateServletUri";
+
+ protected static final String PROPERTIESFILES = "scmwebeditor.properties";
+ protected static final String EDITABLESFILES = "editableFiles";
+
protected static CodepageDetectorProxy detector;
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-19 16:29:53 UTC (rev 237)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-24 12:35:24 UTC (rev 238)
@@ -25,15 +25,15 @@
package org.nuiton.scmwebeditor.actions;
import java.io.IOException;
-import java.io.InputStream;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.LinkedList;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.logging.Log;
@@ -42,10 +42,11 @@
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
import org.nuiton.scmwebeditor.SvnConnection;
import org.nuiton.scmwebeditor.urlResolver.ScmUrlResolverEngine;
+import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.ArgumentsParserException;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNException;
-
import com.opensymphony.xwork2.Action;
@@ -61,7 +62,9 @@
protected String format;
protected String origText;
+ protected boolean saveCookie = true;
+
protected String numRevision;
@@ -82,6 +85,9 @@
protected HttpServletRequest request;
+ protected HttpServletResponse response;
+
+
protected String repositoryId;
protected boolean fromLoginPage;
@@ -277,7 +283,12 @@
if(log.isDebugEnabled()) {
log.debug("Login : "+username);
}
-
+
+
+
+ /*
+ * Récuperation des informations en session
+ */
if(username==null && pw==null) {
if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
@@ -293,9 +304,14 @@
getScmSession().addScmUser(repositoryUUID, username , pw);
}
+
svnConn.updateAuthentication(username, pw);
+
+ /*
+ * Recuperation du fichier et de sa revision
+ */
try {
originalText = getHeadRevision(address, username, pw);
numRevision = getHeadNumberRevision(address, username, pw);
@@ -344,41 +360,25 @@
}
- Properties properties=null;
- String[] editableFiles=null;
- boolean errorReadingProperties = false;
-
- try {
- InputStream inStream = getClass().getResourceAsStream("/scm.properties");
-
- properties = loadProperties(inStream);
-
-
- if(log.isDebugEnabled()) {
- log.debug("editableFiles: "+ properties.getProperty("editableFiles", "text"));
- }
- editableFiles=properties.getProperty("editableFiles", "text").split(",");
-
- } catch (IOException e) {
- if(log.isErrorEnabled()) {
- log.error("Can't read properties file", e );
- }
- errorReadingProperties=true;
- } catch (NullPointerException e) {
- if(log.isErrorEnabled()) {
- log.error("Can't read properties file", e );
- }
- errorReadingProperties=true;
+
+ ApplicationConfig config = new ApplicationConfig(PROPERTIESFILES);
+
+ LinkedList<String> editableFiles = new LinkedList<String>();
+
+ editableFiles.add("text");
+ editableFiles.add("xml");
+ editableFiles.add("x-java");
+
+ try {
+ config.parse();
+ editableFiles.addAll(config.getOptionAsList(EDITABLESFILES).getOption());
+ } catch (ArgumentsParserException eee) {
+ if(log.isErrorEnabled()) {
+ log.error("Can't read properties file", eee );
}
-
- if(errorReadingProperties) {
- editableFiles = new String[3];
- editableFiles[0] = "text";
- editableFiles[1] = "xml";
- editableFiles[2] = "x-java";
}
-
+
boolean editable =false;
if(mimeType!=null ) {
for (String fileType : editableFiles){
@@ -427,5 +427,8 @@
}
+
+
+
}
1
0
Author: tchemit
Date: 2011-08-19 18:29:53 +0200 (Fri, 19 Aug 2011)
New Revision: 237
Url: http://nuiton.org/repositories/revision/scmwebeditor/237
Log:
Update mavenpom4redmine to 3.0.2.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-08-19 15:43:34 UTC (rev 236)
+++ trunk/pom.xml 2011-08-19 16:29:53 UTC (rev 237)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>3.0.1</version>
+ <version>3.0.2</version>
</parent>
<artifactId>scmwebeditor</artifactId>
@@ -227,7 +227,7 @@
<i18n.bundleOutputName>scmwebeditor-i18n</i18n.bundleOutputName>
- <i18n.bundleOutputPackage />
+ <i18n.bundleOutputPackage/>
<!-- extra files to include in release -->
<redmine.releaseFiles>
1
0