[Suiviobsmer-commits] r535 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/pages webapp/css webapp/js
Author: fdesbois Date: 2010-06-15 19:54:07 +0000 (Tue, 15 Jun 2010) New Revision: 535 Log: Evo #2333 : use anchor from FCKEditor to detect where the text need to be crop Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Index.java trunk/wao-ui/src/main/webapp/css/news.css trunk/wao-ui/src/main/webapp/js/wao.js Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Index.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Index.java 2010-06-15 17:59:24 UTC (rev 534) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Index.java 2010-06-15 19:54:07 UTC (rev 535) @@ -34,6 +34,7 @@ import fr.ifremer.wao.ui.data.RequiresAuthentication; import org.apache.tapestry5.Asset2; import org.apache.tapestry5.PersistenceConstants; +import org.apache.tapestry5.RenderSupport; import org.apache.tapestry5.annotations.IncludeStylesheet; import org.apache.tapestry5.annotations.Log; import org.apache.tapestry5.annotations.Path; @@ -88,7 +89,14 @@ @Path("context:js/FCKConf.js") private Asset2 fckconf; + @Inject + private RenderSupport renderSupport; + public void beginRender() { + // Hide news details depends on an anchor named 'details' in news.getContent() + renderSupport.addScript("hideNewsDetails();"); + } + @Log void setupRender() throws WaoException { if (editedId == null || !"NEW".equals(editedId)) { Modified: trunk/wao-ui/src/main/webapp/css/news.css =================================================================== --- trunk/wao-ui/src/main/webapp/css/news.css 2010-06-15 17:59:24 UTC (rev 534) +++ trunk/wao-ui/src/main/webapp/css/news.css 2010-06-15 19:54:07 UTC (rev 535) @@ -65,6 +65,16 @@ text-indent: 30px; } +div#so-news div.news-item div.news-content a.news-details-link { + color: blue; + text-decoration: underline; + cursor: pointer; +} + +div#so-news div.news-item div.news-content a.news-details-link:hover { + text-decoration: none; +} + div#so-news div.news-item p.date { font-style: italic; font-size: 0.8em; Modified: trunk/wao-ui/src/main/webapp/js/wao.js =================================================================== --- trunk/wao-ui/src/main/webapp/js/wao.js 2010-06-15 17:59:24 UTC (rev 534) +++ trunk/wao-ui/src/main/webapp/js/wao.js 2010-06-15 19:54:07 UTC (rev 535) @@ -102,15 +102,48 @@ } } -function toggleNewsMoreContent(element) { - // Get the 'div' parent of the 'a' element - var newsContent = element.ancestors()[0]; +function toggleNewsDetails(element) { + $(element).toggleClassName('hidden'); +} - if (newsContent.match('div.news-content')) { - // Retrieve elements with select 'span.news-more', so the hidden block - var array = newsContent.select('span.news-more'); - // toggle the block - array[0].toggleClassName('hidden'); +function hideNewsDetails() { + var allNews = $('so-news').select('div.news-content'); + // Tapestry.debug('nb news : ' + contentsArray.length); + + for (j = 0; j < allNews.length; j++) { + var news = allNews[j]; + // Select all paragraphs in the news + // Tapestry.debug('nb paragraphs in news : ' + paragraphs.length); + var paragraphs = news.select('p'); + + for (i = 0; i < paragraphs.length; i++) { + var paragraph = paragraphs[i]; + + // Check the firstDescendant in the paragraph, we take only anchor called 'details' + if (paragraph.firstDescendant() && paragraph.firstDescendant().match('a[name="details"]')) { + var anchor = paragraph.firstDescendant(); + // Tapestry.debug('find anchor : ' + anchor); + + // Prepare the hidden block + var moreContent = document.createElement('div'); + moreContent.id = 'news-details-content-' + j; + moreContent.addClassName('hidden'); + + // Update params of the anchor to be clickable + anchor.update('Lire la suite...'); + anchor.addClassName('news-details-link'); + anchor.writeAttribute('onClick', 'toggleNewsDetails("' + moreContent.id + '")'); + + // Retrieve siblings paragraphs to wrap them into the hidden moreContent + var otherParagraphs = paragraph.nextSiblings(); + for (k = 0; k < otherParagraphs.length; k++) { + moreContent.appendChild(otherParagraphs[k]); + } + + // append the hidden block to the news + news.appendChild(moreContent); + break; + } + } } - }
participants (1)
-
fdesbois@users.labs.libre-entreprise.org