[Lutinweb-commits] r32 - in trunk/lutinrss: . src/main/java/org/codelutin/rss src/main/webapp
Author: bpoussin Date: 2008-05-14 17:08:21 +0000 (Wed, 14 May 2008) New Revision: 32 Modified: trunk/lutinrss/pom.xml trunk/lutinrss/src/main/java/org/codelutin/rss/RSSServlet.java trunk/lutinrss/src/main/webapp/rssinclude.js trunk/lutinrss/src/main/webapp/test.html Log: tout semble fonctionner, il ne reste plus qu'a voir si la discussion avec le ws de tony fonctionne bien, ainsi que l'integration du plugin dans le vieux FCK Modified: trunk/lutinrss/pom.xml =================================================================== --- trunk/lutinrss/pom.xml 2008-05-14 16:23:27 UTC (rev 31) +++ trunk/lutinrss/pom.xml 2008-05-14 17:08:21 UTC (rev 32) @@ -34,7 +34,7 @@ <packaging>war</packaging> <!--Version--> - <version>1.0</version> + <version>2.0</version> <!--Description--> <description>Servlet pouvant �tre appeler depuis du JS pour r�cup�rer un Modified: trunk/lutinrss/src/main/java/org/codelutin/rss/RSSServlet.java =================================================================== --- trunk/lutinrss/src/main/java/org/codelutin/rss/RSSServlet.java 2008-05-14 16:23:27 UTC (rev 31) +++ trunk/lutinrss/src/main/java/org/codelutin/rss/RSSServlet.java 2008-05-14 17:08:21 UTC (rev 32) @@ -41,57 +41,81 @@ protected transient RSSHelper rss; /** * Le code JavaScript a utilise dans les pages clientes + * + * Provient du fichier rssinclude.js + * cat rssinclude.js |sed 's/"/\\"/g' |sed -re 's/^(.*)$/"\1\\n" +/' */ protected String js = - "function rssinclude(feedName, iddiv, nbItem, feedRepr, forceReload) {\n" + - " var serlvetUrl = \"%1$s\";\n" + - " var div = document.getElementById(iddiv);\n" + - "div.innerHTML=\"En attente de données pour le flux '\"+feedName+\"' \"\n"+ - " var xhr = null;\n" + - " if(window.XMLHttpRequest) // Firefox\n" + - " xhr = new XMLHttpRequest();\n" + - " else if(window.ActiveXObject) // Internet Explorer\n" + - " xhr = new ActiveXObject(\"Microsoft.XMLHTTP\");\n" + - " else { // XMLHttpRequest non supporté par le navigateur\n" + - " div.innerHTML = \"<span class='feed-error'>Votre navigateur ne supporte pas les objets XMLHTTPRequest...</span>\";\n" + - " return;\n" + - " }\n" + - //" if (!nbItem) {\n" + - //" nbItem = null;\n" + - //" }\n" + - //" if (!feedRepr) {\n" + - //" feedRepr = \"\";\n" + - //" }\n" + - //" var param = \"feedName=\" + escape(feedName) + \"&nbItem=\" + escape(nbItem) + \"&feedRepr=\" + escape(feedRepr);\n" + - //" var url = serlvetUrl + \"?\" + param;\n" + - " var url = serlvetUrl + \"?feedName=\" + escape(feedName);"+ - " if (!!nbItem) {url += \"&nbItem=\" + escape(nbItem);}"+ - " if (!!feedRepr) {url += \"&feedRepr=\" + escape(feedRepr);}"+ - " if (forceReload) {\n" + - " forceReload = \"true\";\n" + - " } else {\n" + - " forceReload = \"false\";\n" + - " }\n" + - " xhr.open(\"GET\", url, true);\n" + - " xhr.onreadystatechange = function() {\n" + - " if(xhr.readyState == 4) {\n" + - " div.innerHTML = xhr.responseText;\n" + - " }\n" + - " }\n" + - " xhr.send(null);\n" + - "}\n"; + "function rssincludeUpdateDiv(div, background, forceReload) {\n" + + " // mettre background a false est utile lorsque l'on appelle la methode\n" + + " // depuis une fenetre que l'on ferme ensuite\n" + + "\n" + + " var serlvetUrl = \"%1$s\";\n" + + "\n" + + " var win = window;\n" + + "\n" + + " var xhr = null;\n" + + " if(win.XMLHttpRequest) // Firefox\n" + + " xhr = new win.XMLHttpRequest();\n" + + " else if(win.ActiveXObject) // Internet Explorer\n" + + " xhr = new win.ActiveXObject(\"Microsoft.XMLHTTP\");\n" + + " else { // XMLHttpRequest non supporté par le navigateur\n" + + " var error = \"<span class='feed-error'>Votre navigateur ne supporte pas les objets XMLHTTPRequest...</span>\";\n" + + " }\n" + + "\n" + + " if (error) {\n" + + " div.innerHTML = error;\n" + + " } else {\n" + + " div.innerHTML = \"Loading \" + feedName;\n" + + "\n" + + " var feedName = div.getAttribute(\"feedName\");\n" + + " var url = serlvetUrl + \"?feedName=\" + escape(feedName);\n" + + "\n" + + " var nbItem = div.getAttribute(\"nbItem\");\n" + + " if (!!nbItem) {url += '&nbItem=' + escape(nbItem);}\n" + + "\n" + + " var feedRepr = div.getAttribute(\"feedRepr\");\n" + + " if (!!feedRepr) {url += '&feedRepr=' + escape(feedRepr);}\n" + + "\n" + + " if (forceReload) {\n" + + " forceReload = 'true';\n" + + " } else {\n" + + " forceReload = 'false';\n" + + " }\n" + + "\n" + + " xhr.open(\"GET\", url, !!background);\n" + + " xhr.onreadystatechange = function() {\n" + + " if(xhr.readyState == 4) {\n" + + " div.innerHTML = xhr.responseText;\n" + + " }\n" + + " }\n" + + " xhr.send(null);\n" + + " }\n" + + "}\n" + + "\n" + + "function rssinclude() {\n" + + " var divs = document.getElementsByName(\"rssinclude\");\n" + + " var i = 0;\n" + + " while (i < divs.length) {\n" + + " var div = divs[i++];\n" + + " rssincludeUpdateDiv(div, true);\n" + + " }\n" + + "}\n" + + "\n" + + "window.addEventListener( 'load', rssinclude, true );\n"; + private static final long serialVersionUID = 1L; - + @Override public void init(ServletConfig config) throws ServletException { - init(config,true); + init(config,true); } - + public void init(ServletConfig config,boolean initRssConfig) throws ServletException { try { super.init(config); - if (initRssConfig) { + if (initRssConfig) { // init depuis la config de servlet new RSSConfig.RSSConfigInitializer<ServletConfig>() { @Override @@ -99,10 +123,10 @@ return config.getInitParameter(fullConfigName); } }.init(config); - + // instanciate rss avec les implanatation par defaut rss = RSSHelper.newDefaultInstance(); - } + } } catch (Exception eee) { log.warn("Can't configure Servlet", eee); if (eee instanceof ServletException) { @@ -111,8 +135,8 @@ throw new ServletException("Can't configure Servlet", eee); } } - - /** + + /** * Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods. * @param request servlet request * @param response servlet response @@ -136,15 +160,15 @@ response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { - String feedRepr = request.getParameter("feedRepr"); - Integer nbItem = convertToInt(request.getParameter("nbItem")); + String feedRepr = request.getParameter("feedRepr"); + Integer nbItem = convertToInt(request.getParameter("nbItem")); boolean forceReload = "true".equalsIgnoreCase(request.getParameter("forceReload")); out.println(rss.getHTML(feedName, feedRepr, nbItem, forceReload)); } finally { out.close(); } } - } + } protected Integer convertToInt(String parameter) { Integer result = null; @@ -157,7 +181,7 @@ } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> - /** + /** * Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response @@ -166,9 +190,9 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); - } + } - /** + /** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response @@ -179,7 +203,7 @@ processRequest(request, response); } - /** + /** * Returns a short description of the servlet. */ @Override Modified: trunk/lutinrss/src/main/webapp/rssinclude.js =================================================================== --- trunk/lutinrss/src/main/webapp/rssinclude.js 2008-05-14 16:23:27 UTC (rev 31) +++ trunk/lutinrss/src/main/webapp/rssinclude.js 2008-05-14 17:08:21 UTC (rev 32) @@ -1,32 +1,59 @@ -function rssinclude(feedName, iddiv, nbItem, feedRepr) { - var serlvetUrl = "http://localhost:8080/lutinrss-1.0/RSSServlet"; - var div = document.getElementById(iddiv); +function rssincludeUpdateDiv(div, background, forceReload) { + // mettre background a false est utile lorsque l'on appelle la methode + // depuis une fenetre que l'on ferme ensuite - var xhr = null; - if(window.XMLHttpRequest) // Firefox - xhr = new XMLHttpRequest(); - else if(window.ActiveXObject) // Internet Explorer - xhr = new ActiveXObject("Microsoft.XMLHTTP"); - else { // XMLHttpRequest non supporté par le navigateur - div.innerHTML = "<span class='feed-error'>Votre navigateur ne supporte pas les objets XMLHTTPRequest...</span>"; - return; - } - - if (!nbItem) { - nbItem = -1; - } - if (!feedRepr) { - feedRepr = ""; - } - - var param = "feedName=" + escape(feedName) + "&nbItem=" + escape(nbItem) + "&feedRepr=" + escape(feedRepr); - var url = serlvetUrl + "?" + param; + var serlvetUrl = "http://rssinclude/lutinrss-1.0/RSSServlet"; - xhr.open("GET", url, true); - xhr.onreadystatechange = function() { - if(xhr.readyState == 4) { - div.innerHTML = xhr.responseText; - } - } - xhr.send(null); -} \ No newline at end of file + // if (!win) { + win = window; + // } + + var xhr = null; + if(win.XMLHttpRequest) // Firefox + xhr = new win.XMLHttpRequest(); + else if(win.ActiveXObject) // Internet Explorer + xhr = new win.ActiveXObject("Microsoft.XMLHTTP"); + else { // XMLHttpRequest non supporté par le navigateur + var error = "<span class='feed-error'>Votre navigateur ne supporte pas les objets XMLHTTPRequest...</span>"; + } + + if (error) { + div.innerHTML = error; + } else { + div.innerHTML = "Loading " + feedName; + + var feedName = div.getAttribute("feedName"); + var url = serlvetUrl + "?feedName=" + escape(feedName); + + var nbItem = div.getAttribute("nbItem"); + if (!!nbItem) {url += '&nbItem=' + escape(nbItem);} + + var feedRepr = div.getAttribute("feedRepr"); + if (!!feedRepr) {url += '&feedRepr=' + escape(feedRepr);} + + if (forceReload) { + forceReload = 'true'; + } else { + forceReload = 'false'; + } + + xhr.open("GET", url, !!background); + xhr.onreadystatechange = function() { + if(xhr.readyState == 4) { + div.innerHTML = xhr.responseText; + } + } + xhr.send(null); + } +} + +function rssinclude() { + var divs = document.getElementsByName("rssinclude"); + var i = 0; + while (i < divs.length) { + var div = divs[i++]; + rssincludeUpdateDiv(div, true); + } +} + +window.addEventListener( 'load', rssinclude, true ); Modified: trunk/lutinrss/src/main/webapp/test.html =================================================================== --- trunk/lutinrss/src/main/webapp/test.html 2008-05-14 16:23:27 UTC (rev 31) +++ trunk/lutinrss/src/main/webapp/test.html 2008-05-14 17:08:21 UTC (rev 32) @@ -10,26 +10,14 @@ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link href="feed.css" rel="stylesheet" type="text/css" /> <script src="RSSServlet"></script> -</head> -<body> -<h1>Test RSS</h1> - -<div id="content"> - <div id="lmi"> </div> - <div id="lemonde"> </div> - <div id="developpez"> </div> - <div id="formatouvert"> </div> - <div id="h2"> </div> - <div id="opensi"> </div> -</div> -<script> - rssinclude("http://www.lemondeinformatique.fr/flux-rss/open-source/rss.xml", "lmi", 5, "ndat-natd"); - rssinclude("http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml", "lemonde", 5, "indat-ntda"); - rssinclude("http://blog.developpez.com/xmlsrv/rss2.php?blog=42", "developpez", 5, "ndat-ndat"); - rssinclude("http://formats-ouverts.org/rss.php", "formatouvert", 5, "ndat-natd"); - rssinclude("http://www.h2database.com/html/newsfeed-rss.xml", "h2", 5, "ndat-natd"); - rssinclude("http://www.opensi.org/news.rss", "opensi", 5, "ndat-natd"); -</script> - + </head> + <body> + <h1>Test RSS</h1> + <div name="rssinclude" id="lmi" class="rssinclude" feedName="http://www.lemondeinformatique.fr/flux-rss/open-source/rss.xml" nbItem="5" feedRepre="indat-natd"></div> + <div name="rssinclude" id="lemonde" class="rssinclude" feedName="http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml" nbItem="5" feedRepre="indat-natd"></div> + <div name="rssinclude" id="developpez" class="rssinclude" feedName="http://blog.developpez.com/xmlsrv/rss2.php?blog=42" nbItem="5" feedRepre="indat-natd"></div> + <div name="rssinclude" id="formatouvert" class="rssinclude" feedName="http://formats-ouverts.org/rss.php" nbItem="5" feedRepre="indat-natd"></div> + <div name="rssinclude" id="h2" class="rssinclude" feedName="http://www.h2database.com/html/newsfeed-rss.xml" nbItem="5" feedRepre="indat-natd"></div> + <div name="rssinclude" id="opensi" class="rssinclude" feedName="http://www.opensi.org/news.rss" nbItem="5" feedRepre="indat-natd"></div> </body> </html>
participants (1)
-
bpoussin@users.labs.libre-entreprise.org