[Picfinity-commit] SF.net SVN: picfinity: [19] .themes/ajax
Status: Beta
Brought to you by:
espadav8
From: <esp...@us...> - 2007-08-08 23:54:14
|
Revision: 19 http://picfinity.svn.sourceforge.net/picfinity/?rev=19&view=rev Author: espadav8 Date: 2007-08-08 16:54:15 -0700 (Wed, 08 Aug 2007) Log Message: ----------- Add a link to the heading to show the default view - XSL Add an empty trail to the initial view - XSL A folder with only folders inside it now gets a mini-folder icon - XSL Slight position change for the mini-icons - CSS Set colour/pointer for the heading link - CSS Add reloadPage() function for the heading - JS Remove some (very) unneeded code from openFolder() - JS Set the correct text for folders with images and/or folders - JS Modified Paths: -------------- .themes/ajax/ajax.css .themes/ajax/ajax.js .themes/ajax/ajax.xsl Modified: .themes/ajax/ajax.css =================================================================== --- .themes/ajax/ajax.css 2007-08-08 14:46:22 UTC (rev 18) +++ .themes/ajax/ajax.css 2007-08-08 23:54:15 UTC (rev 19) @@ -16,7 +16,8 @@ background: #1a1a1a url('background.gif') repeat-x; } -h1 +h1, +h1 a { text-align: center; color: #d0d0d0; @@ -92,7 +93,7 @@ .icon { position: absolute; - top: 3px; + top: 4px; left: 15px; } @@ -144,11 +145,12 @@ /* --- hover actions --- */ - +a:hover +{ + cursor: pointer; +} .image a:hover, #linktospan a:hover, -.folder span.image:hover, -.thumbnail span.image:hover, #breadcrumbtrail ul li:hover { background: #606060; Modified: .themes/ajax/ajax.js =================================================================== --- .themes/ajax/ajax.js 2007-08-08 14:46:22 UTC (rev 18) +++ .themes/ajax/ajax.js 2007-08-08 23:54:15 UTC (rev 19) @@ -21,10 +21,20 @@ xmlDoc.load("gallery.xml"); } +function reloadPage() +{ + openFolder(xmlDoc.documentElement.getAttribute("id")); +} + function getLayoutNode(elementID) { + // check for the documentElement first + if (xmlDoc.documentElement.getAttribute("id") == elementID) + { + return xmlDoc.documentElement; + } // this is the best way, but nothing supports this (yet) - if ((xmlDoc.getElementById) && (xmlDoc.getElementById(elementID) != null)) + else if ((xmlDoc.getElementById) && (xmlDoc.getElementById(elementID) != null)) { return xmlDoc.getElementById(elementID); } @@ -50,33 +60,26 @@ // this is possibly the worse way, and it's still not supported by Safari else { - if (xmlDoc.documentElement.getAttribute("id") == elementID) + // this causes a problem with Safari + // xmlDocFolders.length == 0 + var xmlDocFolders = xmlDoc.getElementsByTagName("folder"); + + for (var i = 0; i < xmlDocFolders.length; i++) { - return xmlDoc.documentElement; + if (xmlDocFolders[i].getAttribute("id") == elementID) + { + return xmlDocFolders[i]; + } } - else + + var xmlDocImages = xmlDoc.getElementsByTagName("image"); + + for (var i = 0; i < xmlDocImages.length; i++) { - // this causes a problem with Safari - // xmlDocFolders.length == 0 - var xmlDocFolders = xmlDoc.getElementsByTagName("folder"); - - for (var i = 0; i < xmlDocFolders.length; i++) + if (xmlDocImages[i].getAttribute("id") == elementID) { - if (xmlDocFolders[i].getAttribute("id") == elementID) - { - return xmlDocFolders[i]; - } + return xmlDocImages[i]; } - - var xmlDocImages = xmlDoc.getElementsByTagName("image"); - - for (var i = 0; i < xmlDocImages.length; i++) - { - if (xmlDocImages[i].getAttribute("id") == elementID) - { - return xmlDocImages[i]; - } - } } } return null; @@ -158,10 +161,11 @@ } function openFolder(elementID) -{ - var nodePath = getNodePath(getLayoutNode(elementID)); +{ + var layoutNode = getLayoutNode(elementID); + var nodePath = getNodePath(layoutNode); - var breadcrumbDiv; + var breadcrumbDiv = createBreadcrumbTrail(layoutNode);; var newAlbumsDiv = document.createElement("div"); newAlbumsDiv.setAttribute("id", "albums"); @@ -172,42 +176,21 @@ var selectedDiv = document.createElement("div"); selectedDiv.setAttribute("id", "selectedalbum"); - var mainFolders = getLayoutNode(elementID).parentNode.childNodes; + var selectedAlbumFolders = getChildNodesByTagName(layoutNode, "folder"); + var selectedAlbumImages = getChildNodesByTagName(layoutNode, "image"); - for (var i = 0; i < mainFolders.length; i++) + for (var j = 0; j < selectedAlbumFolders.length; j++) { - // if it's a folder we've come across - if (mainFolders[i].nodeName == "folder") - { - // if it's not the folder we're acting on - if(mainFolders[i].getAttribute("id") == elementID) - { - breadcrumbDiv = createBreadcrumbTrail(mainFolders[i]); - - var selectedAlbumFolders = getChildNodesByTagName(mainFolders[i], "folder"); - var selectedAlbumImages = getChildNodesByTagName(mainFolders[i], "image"); - - for (var j = 0; j < selectedAlbumFolders.length; j++) - { - var subFolderContainer = createSubFolderContainer(selectedAlbumFolders[j]); - selectedDiv.appendChild(subFolderContainer); - } - - for (var j = 0; j < selectedAlbumImages.length; j++) - { - var thumbnailContainer = createImageThumbnailContainer(selectedAlbumImages[j]); - selectedDiv.appendChild(thumbnailContainer); - } - } - } - - // we've come across an image node - else if (mainFolders[i].nodeName == "image") - { - continue; - } + var subFolderContainer = createSubFolderContainer(selectedAlbumFolders[j]); + selectedDiv.appendChild(subFolderContainer); } + for (var j = 0; j < selectedAlbumImages.length; j++) + { + var thumbnailContainer = createImageThumbnailContainer(selectedAlbumImages[j]); + selectedDiv.appendChild(thumbnailContainer); + } + newAlbumsDiv.appendChild(selectedDiv); document.getElementById("albums").parentNode.replaceChild(newAlbumsDiv, document.getElementById("albums")); @@ -318,8 +301,19 @@ textSpan.setAttribute("class", "name"); // create the text - var textNode = document.createTextNode(folderNode.getAttribute("name") - + '(' + getChildNodesByTagName(folderNode, "image").length + ')'); + var textContents = folderNode.getAttribute("name"); + var noImages = getChildNodesByTagName(folderNode, "image").length; + var noFolders = getChildNodesByTagName(folderNode, "folder").length; + + if ((noImages || noFolders) > 0) + { + textContents += " ("; + if (noImages > 0) textContents += noImages; + if (noFolders > 0) textContents += "+" + noFolders; + textContents += ")"; + } + + var textNode = document.createTextNode(textContents); textSpan.appendChild(textNode); // appened them all in order @@ -406,7 +400,7 @@ var breadcrumbTrailDiv = document.createElement("div"); breadcrumbTrailDiv.setAttribute("id", "breadcrumbtrail"); - var nodePath = getNodePath(getLayoutNode(element.getAttribute("id"))) + element.getAttribute("name"); + var nodePath = getNodePath(element) + element.getAttribute("name"); var paths = nodePath.split('/'); var currentPath = ''; Modified: .themes/ajax/ajax.xsl =================================================================== --- .themes/ajax/ajax.xsl 2007-08-08 14:46:22 UTC (rev 18) +++ .themes/ajax/ajax.xsl 2007-08-08 23:54:15 UTC (rev 19) @@ -26,7 +26,11 @@ </head> <body> - <h1><xsl:value-of select="$title" /></h1> + <h1> + <a href="#" onclick="reloadPage();return false;"> + <xsl:value-of select="$title" /> + </a> + </h1> <xsl:apply-templates select="layout" /> </body> @@ -38,12 +42,12 @@ <xsl:with-param name="location" select="@name" /> </xsl:apply-templates> + <div id="breadcrumbtrail"></div> + <div id="albums"> - <xsl:apply-templates select="folder"> <xsl:with-param name="location" select="@name" /> </xsl:apply-templates> - </div> </xsl:template> @@ -112,7 +116,7 @@ </xsl:choose> </a> </span> - <xsl:if test="count(image) > 0"> + <xsl:if test="count(folder) > 0 or count(image) > 0"> <span class="icon"> <img> <xsl:attribute name="src"><xsl:value-of select="concat('.themes/', $themename, '/foldericon.png')" /></xsl:attribute> @@ -124,7 +128,7 @@ <xsl:value-of select="@name" /> <xsl:choose> <xsl:when test="(count(folder) > 0) and (count(image) > 0)"> - <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>(<xsl:value-of select="count(image)" /> +<xsl:value-of select="count(folder)" />) + <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>(<xsl:value-of select="count(image)" />+<xsl:value-of select="count(folder)" />) </xsl:when> <xsl:when test="count(folder) > 0"> <xsl:text disable-output-escaping="yes">&nbsp;</xsl:text>(+<xsl:value-of select="count(folder)" />) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |