diff options
-rw-r--r-- | gentoobrowse/base.xslt | 16 | ||||
-rw-r--r-- | gentoobrowse/login.xslt | 50 | ||||
-rw-r--r-- | gentoobrowse/present/accountHome.xml | 6 | ||||
-rw-r--r-- | gentoobrowse/present/login.xml | 12 | ||||
-rw-r--r-- | gentoobrowse/present/signup.xml | 13 | ||||
-rw-r--r-- | gentoobrowse/request/dologin.xml | 14 | ||||
-rw-r--r-- | gentoobrowse/request/dologout.xml | 6 | ||||
-rw-r--r-- | gentoobrowse/style.css | 13 |
8 files changed, 106 insertions, 24 deletions
diff --git a/gentoobrowse/base.xslt b/gentoobrowse/base.xslt index 803d56a..bc6e7a8 100644 --- a/gentoobrowse/base.xslt +++ b/gentoobrowse/base.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:output encoding="utf-8" method="html" media-type="text/html" indent="yes" doctype-system="http://www.w3.org/TR/html4/loose.dtd" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" /> @@ -8,8 +9,7 @@ <head> <link rel="stylesheet" href="/style.css" type="text/css" /> <link rel="shortcut icon" href="/images/glogo-small.png" type="image/png" /> - <title>Gentoo Browse</title> - <meta http-equiv="Expires" content="0" /> + <xsl:call-template name="head" /> </head> <body> <h1>Gentoo Browse</h1> @@ -17,7 +17,12 @@ <a href="/">Home</a> | <a href="/categories">Browse</a> | <a href="/search">Search</a> | - <a href="/login">Login</a> + <xsl:if test="count(/gentoo/project2:session/project2:var[@name='loggedInUserID']) = 0"> + <a href="/login">Login</a> + </xsl:if> + <xsl:if test="count(/gentoo/project2:session/project2:var[@name='loggedInUserID']) > 0"> + <a href="/accountHome">My Account</a> + </xsl:if> </div> <table width="100%"> <tr> @@ -50,6 +55,9 @@ </body> </html> </xsl:template> + <xsl:template name="head"> + <title>Gentoo Browse</title> + </xsl:template> <xsl:template name="content"> </xsl:template> <xsl:template match="package"> diff --git a/gentoobrowse/login.xslt b/gentoobrowse/login.xslt index ac1b651..26dea0e 100644 --- a/gentoobrowse/login.xslt +++ b/gentoobrowse/login.xslt @@ -1,24 +1,46 @@ <?xml version="1.0" encoding="UTF-8" ?> <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" > + xmlns:project2="http://project2.randomdan.homeip.net/" exclude-result-prefixes="project2" + xmlns:dyn="http://exslt.org/dynamic" extension-element-prefixes="dyn"> <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" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" /> <xsl:template name="content"> - <h2>Login</h2> - <form action="/dologin" method="post"> - <input type="text" name="username"> - <xsl:attribute name="value"> - <xsl:value-of select="/gentoo/project2:params/project2:param[@name='username']" /> - </xsl:attribute> - </input> - <input type="password" name="password"> - <xsl:attribute name="value"> - <xsl:value-of select="/gentoo/project2:params/project2:param[@name='password']" /> - </xsl:attribute> - </input> - <input type="submit" /> + <xsl:apply-templates select="form|para" /> + </xsl:template> + <xsl:template match="para"> + <xsl:copy-of select="." /> + </xsl:template> + <xsl:template match="form"> + <form class="generalForm"> + <xsl:attribute name="action"><xsl:value-of select="@action" /></xsl:attribute> + <xsl:attribute name="method"><xsl:value-of select="@method" /></xsl:attribute> + <h2><xsl:value-of select="@caption" /></h2> + <table> + <xsl:for-each select="input"> + <tr> + <th><xsl:value-of select="@caption" /></th> + <td> + <input> + <xsl:attribute name="type"><xsl:value-of select="@type" /></xsl:attribute> + <xsl:attribute name="name"><xsl:value-of select="@name" /></xsl:attribute> + <xsl:attribute name="value"> + <xsl:value-of select="dyn:evaluate(@xslvalue)" /> + </xsl:attribute> + <xsl:attribute name="autocomplete"><xsl:value-of select="@auto" /></xsl:attribute> + </input> + </td> + </tr> + </xsl:for-each> + <tr> + <th colspan="2" align="right"> + <input type="submit"> + <xsl:attribute name="value"><xsl:value-of select="@submit" /></xsl:attribute> + </input> + </th> + </tr> + </table> </form> </xsl:template> </xsl:stylesheet> diff --git a/gentoobrowse/present/accountHome.xml b/gentoobrowse/present/accountHome.xml index 00c239f..aea6835 100644 --- a/gentoobrowse/present/accountHome.xml +++ b/gentoobrowse/present/accountHome.xml @@ -1,4 +1,8 @@ <?xml version="1.0"?> -<view name="index" root="gentoo" style="home.xslt" xmlns:xi="http://www.w3.org/2001/XInclude"> +<view name="index" root="gentoo" style="login.xslt" xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:project2="http://project2.randomdan.homeip.net"> + <project2:rawview> + <form caption="Logout" submit="Logout" action="/dologout" method="post" /> + </project2:rawview> </view> diff --git a/gentoobrowse/present/login.xml b/gentoobrowse/present/login.xml index 88da572..6b86881 100644 --- a/gentoobrowse/present/login.xml +++ b/gentoobrowse/present/login.xml @@ -1,4 +1,14 @@ <?xml version="1.0"?> -<view name="login" root="gentoo" style="login.xslt" xmlns:xi="http://www.w3.org/2001/XInclude"> +<view name="login" root="gentoo" style="login.xslt" xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:project2="http://project2.randomdan.homeip.net"> + <project2:rawview> + <form caption="Login" submit="Login" action="/dologin" method="post"> + <input type="text" name="username" caption="User name" + xslvalue="/gentoo/project2:params/project2:param[@name='username']" /> + <input type="password" name="password" caption="Password" + xslvalue="/gentoo/project2:params/project2:param[@name='password']" /> + </form> + <para>I don't have an account... so I'll <a href="/signup">signup...</a></para> + </project2:rawview> </view> diff --git a/gentoobrowse/present/signup.xml b/gentoobrowse/present/signup.xml new file mode 100644 index 0000000..9e74e3f --- /dev/null +++ b/gentoobrowse/present/signup.xml @@ -0,0 +1,13 @@ +<?xml version="1.0"?> +<view name="index" root="gentoo" style="login.xslt" xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:project2="http://project2.randomdan.homeip.net"> + <project2:rawview> + <form caption="Signup" submit="Signup" action="/dosignup" method="post"> + <input type="text" name="username" caption="User name" auto="off" /> + <input type="text" name="email" caption="Email address" auto="off" /> + <input type="text" name="realname" caption="Real name" auto="off" /> + <input type="password" name="password" caption="Password" auto="off" /> + </form> + </project2:rawview> +</view> + diff --git a/gentoobrowse/request/dologin.xml b/gentoobrowse/request/dologin.xml index 315e65d..5b3999a 100644 --- a/gentoobrowse/request/dologin.xml +++ b/gentoobrowse/request/dologin.xml @@ -23,16 +23,22 @@ <param bind="1" id="password" source="query" /> </parameters> </project2:sqlcheck> - <project2:sqltask datasource="postgres" name="auditLogin"> + <project2:sqliterate datasource="postgres"> <sql> - INSERT INTO user_logins(userid, logintime) - SELECT userid, NOW() + SELECT userid FROM users WHERE username = ? </sql> <parameters> <param bind="0" id="username" source="query" /> </parameters> - </project2:sqltask> + <tasks> + <project2:sessionset key="loggedInUserID"> + <parameters> + <param bind="0" id="userid" source="parent" /> + </parameters> + </project2:sessionset> + </tasks> + </project2:sqliterate> </view> diff --git a/gentoobrowse/request/dologout.xml b/gentoobrowse/request/dologout.xml new file mode 100644 index 0000000..54e0b2f --- /dev/null +++ b/gentoobrowse/request/dologout.xml @@ -0,0 +1,6 @@ +<?xml version="1.0"?> +<view name="dologin" present="index" xmlns:xi="http://www.w3.org/2001/XInclude" + xmlns:project2="http://project2.randomdan.homeip.net"> + <project2:sessionclear key="loggedInUserID" /> +</view> + diff --git a/gentoobrowse/style.css b/gentoobrowse/style.css index 9e85628..8cfccbb 100644 --- a/gentoobrowse/style.css +++ b/gentoobrowse/style.css @@ -86,3 +86,16 @@ div.trademark, div.poweredby { color: red; font-weight: bold; } +form.generalForm table { + width: 500px; + background-color: #ddddff; + border: 1px solid #aaaaff; +} + +form.generalForm td { + width: 75%; +} +form.generalForm td input { + border: 1px solid #aaaaff; + width: 98%; +} |