diff options
author | randomdan <randomdan@localhost> | 2010-07-29 23:54:14 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2010-07-29 23:54:14 +0000 |
commit | b42d4caefedb7eeb8dd5d605daebb14c66b85785 (patch) | |
tree | 47eccb075472d9c76055811f0bf01ffac6c7c620 | |
parent | Use correct links in atom feed (diff) | |
download | gentoobrowse-b42d4caefedb7eeb8dd5d605daebb14c66b85785.tar.bz2 gentoobrowse-b42d4caefedb7eeb8dd5d605daebb14c66b85785.tar.xz gentoobrowse-b42d4caefedb7eeb8dd5d605daebb14c66b85785.zip |
Allow users to track specific packages of their choice
Highlight them on the home page
Change the atom feed to only show these packages
Minor tweaks to work with changes for default values
-rw-r--r-- | gentoobrowse/browse.xslt | 27 | ||||
-rw-r--r-- | gentoobrowse/home.xslt | 3 | ||||
-rw-r--r-- | gentoobrowse/present/atom.xml | 2 | ||||
-rw-r--r-- | gentoobrowse/request/track.xml | 26 | ||||
-rw-r--r-- | gentoobrowse/request/untrack.xml | 17 | ||||
-rw-r--r-- | gentoobrowse/style.css | 8 | ||||
-rw-r--r-- | gentoobrowse/views/newebuilds.xml | 12 | ||||
-rw-r--r-- | gentoobrowse/views/newebuildsatom.xml | 23 | ||||
-rw-r--r-- | gentoobrowse/views/package.xml | 12 | ||||
-rw-r--r-- | gentoobrowse/views/search.xml | 4 |
10 files changed, 127 insertions, 7 deletions
diff --git a/gentoobrowse/browse.xslt b/gentoobrowse/browse.xslt index 26d5e25..db3f4f6 100644 --- a/gentoobrowse/browse.xslt +++ b/gentoobrowse/browse.xslt @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8" ?> -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:project2="http://project2.randomdan.homeip.net/" exclude-result-prefixes="project2" > <xsl:import href="base.xslt" /> <xsl:output encoding="utf-8" method="html" media-type="text/html" indent="yes" doctype-system="http://www.w3.org/TR/html4/loose.dtd" @@ -66,6 +67,30 @@ </tr> </xsl:template> <xsl:template match="/gentoo/summary/package"> + <xsl:if test="count(/gentoo/project2:session/project2:var[@name='loggedInUserID']) != 0"> + <xsl:if test="count(tracks/track) > 0"> + <form method="post" class="tracker"> + <xsl:attribute name="action">/untrack/<xsl:value-of select="catname" />/<xsl:value-of select="pkgname" /></xsl:attribute> + <input type="hidden" name="packageid"> + <xsl:attribute name="value"> + <xsl:value-of select="/gentoo/summary/package/packageid" /> + </xsl:attribute> + </input> + <input type="submit" value="Untrack" /> + </form> + </xsl:if> + <xsl:if test="count(tracks/track) = 0"> + <form method="post" class="tracker"> + <xsl:attribute name="action">/track/<xsl:value-of select="catname" />/<xsl:value-of select="pkgname" /></xsl:attribute> + <input type="hidden" name="packageid"> + <xsl:attribute name="value"> + <xsl:value-of select="/gentoo/summary/package/packageid" /> + </xsl:attribute> + </input> + <input type="submit" value="Track" /> + </form> + </xsl:if> + </xsl:if> <h2> <a> <xsl:attribute name="href"> diff --git a/gentoobrowse/home.xslt b/gentoobrowse/home.xslt index 35fd4ef..0363a81 100644 --- a/gentoobrowse/home.xslt +++ b/gentoobrowse/home.xslt @@ -29,6 +29,9 @@ <xsl:template match="/gentoo/newebuilds/ebuild"> <li> <a> + <xsl:if test="tracked = 1"> + <xsl:attribute name="class">tracked</xsl:attribute> + </xsl:if> <xsl:attribute name="title"> <xsl:value-of select="description" /> (updated <xsl:value-of select="moddate" />) </xsl:attribute> diff --git a/gentoobrowse/present/atom.xml b/gentoobrowse/present/atom.xml index 1bd5d24..72c1695 100644 --- a/gentoobrowse/present/atom.xml +++ b/gentoobrowse/present/atom.xml @@ -1,4 +1,4 @@ <?xml version="1.0"?> <view name="atomebuilds" root="gentoo" style="atomebuilds.xslt" xmlns:xi="http://www.w3.org/2001/XInclude"> - <xi:include href="../views/newebuilds.xml" /> + <xi:include href="../views/newebuildsatom.xml" /> </view> diff --git a/gentoobrowse/request/track.xml b/gentoobrowse/request/track.xml new file mode 100644 index 0000000..c5e62e4 --- /dev/null +++ b/gentoobrowse/request/track.xml @@ -0,0 +1,26 @@ +<?xml version="1.0"?> +<request name="track" present="package" xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:project2="http://project2.randomdan.homeip.net"> + <xi:include href="../datasources/postgres.xml" /> + <project2:sqlcheck datasource="postgres" testOp="=" testValue="0" present="package" name="checkNotTracked"> + <message>Package already tracked</message> + <sql> + SELECT COUNT(*) + FROM user_packages + WHERE packageid = ? + AND userid = ? + </sql> + <parameters> + <param bind="0" value="$packageid" /> + <param bind="1" value="%loggedInUserID" /> + </parameters> + </project2:sqlcheck> + <project2:sqltask datasource="postgres" name="addTrack"> + <sql>INSERT INTO user_packages(packageid, userid, trackedsince) VALUES(?, ?, NOW())</sql> + <parameters> + <param bind="0" value="$packageid" /> + <param bind="1" value="%loggedInUserID" /> + </parameters> + </project2:sqltask> +</request> + diff --git a/gentoobrowse/request/untrack.xml b/gentoobrowse/request/untrack.xml new file mode 100644 index 0000000..93c5108 --- /dev/null +++ b/gentoobrowse/request/untrack.xml @@ -0,0 +1,17 @@ +<?xml version="1.0"?> +<request name="track" present="package" xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:project2="http://project2.randomdan.homeip.net"> + <xi:include href="../datasources/postgres.xml" /> + <project2:sqltask datasource="postgres" name="addTrack"> + <sql> + DELETE FROM user_packages + WHERE packageid = ? + AND userid = ? + </sql> + <parameters> + <param bind="0" value="$packageid" /> + <param bind="1" value="%loggedInUserID" /> + </parameters> + </project2:sqltask> +</request> + diff --git a/gentoobrowse/style.css b/gentoobrowse/style.css index 8cfccbb..d0e558c 100644 --- a/gentoobrowse/style.css +++ b/gentoobrowse/style.css @@ -99,3 +99,11 @@ form.generalForm td input { border: 1px solid #aaaaff; width: 98%; } +form.tracker { + float: right; + margin-right: 30px; + margin-left: 30px; +} +.tracked { + font-weight: bold; +} diff --git a/gentoobrowse/views/newebuilds.xml b/gentoobrowse/views/newebuilds.xml index 7e26b37..a95fa3c 100644 --- a/gentoobrowse/views/newebuilds.xml +++ b/gentoobrowse/views/newebuilds.xml @@ -3,14 +3,20 @@ <xi:include href="../datasources/postgres.xml" /> <project2:sqlview name="newebuilds" recordname="ebuild" datasource="postgres"> <sql> - SELECT filename, description, moddate, p.name AS pkgname, c.name AS catname, f.firstseen sync - FROM ebuilds e, files f, packages p, categories c + SELECT filename, description, moddate, p.name AS pkgname, c.name AS catname, f.firstseen sync, + up.trackedsince IS NOT NULL AS tracked + FROM ebuilds e, files f, categories c, packages p LEFT OUTER JOIN user_packages up + ON up.userid = ? + AND up.packageid = p.packageid WHERE e.ebuildid = f.fileid AND e.packageid = p.packageid AND p.categoryid = c.categoryid AND f.firstseen IN (SELECT DISTINCT f.firstseen FROM files f ORDER BY f.firstseen DESC LIMIT 3) - ORDER BY c.name, p.name, e.versioninst + ORDER BY tracked DESC, c.name, p.name, e.versioninst </sql> + <parameters> + <param bind="0" value="%loggedInUserID|0" /> + </parameters> </project2:sqlview> <project2:sqlview name="syncs" recordname="sync" datasource="postgres"> <sql> diff --git a/gentoobrowse/views/newebuildsatom.xml b/gentoobrowse/views/newebuildsatom.xml new file mode 100644 index 0000000..fba9e2b --- /dev/null +++ b/gentoobrowse/views/newebuildsatom.xml @@ -0,0 +1,23 @@ +<?xml version="1.0"?> +<block xmlns:project2="http://project2.randomdan.homeip.net" xmlns:xi="http://www.w3.org/2001/XInclude"> + <xi:include href="../datasources/postgres.xml" /> + <project2:sqlview name="newebuilds" recordname="ebuild" datasource="postgres"> + <sql> + SELECT filename, description, moddate, p.name AS pkgname, c.name AS catname, f.firstseen sync + FROM ebuilds e, files f, categories c, packages p, user_packages up, users u + WHERE e.ebuildid = f.fileid + AND e.packageid = p.packageid + AND p.categoryid = c.categoryid + AND up.userid = u.userid + AND u.username = ? + AND up.packageid = p.packageid + AND f.firstseen >= up.trackedsince + ORDER BY f.firstseen DESC, c.name, p.name, e.versioninst + LIMIT 50 + </sql> + <parameters> + <param bind="0" value="/1" /> + </parameters> + </project2:sqlview> +</block> + diff --git a/gentoobrowse/views/package.xml b/gentoobrowse/views/package.xml index 28aff03..6ec12ec 100644 --- a/gentoobrowse/views/package.xml +++ b/gentoobrowse/views/package.xml @@ -14,6 +14,18 @@ <param bind="0" value="/1" /> <param bind="1" value="/2" /> </parameters> + <project2:sqlview name="tracks" recordname="track" datasource="postgres"> + <sql> + SELECT trackedsince + FROM user_packages up + WHERE up.packageid = ? + AND up.userid = ? + </sql> + <parameters> + <param bind="0" value="^packageid" /> + <param bind="1" value="%loggedInUserID|0" /> + </parameters> + </project2:sqlview> <project2:sqlview name="versions" recordname="version" datasource="postgres"> <sql> SELECT e.ebuildid, e.version diff --git a/gentoobrowse/views/search.xml b/gentoobrowse/views/search.xml index 65db6b8..3d6a72d 100644 --- a/gentoobrowse/views/search.xml +++ b/gentoobrowse/views/search.xml @@ -13,8 +13,8 @@ order by rank desc, p.name </sql> <parameters> - <param bind="0" value="$criteria" /> - <param bind="1" value="$criteria" /> + <param bind="0" value="$criteria|" /> + <param bind="1" value="$criteria|" /> </parameters> </project2:sqlview> </block> |