diff options
-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> |