summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2010-07-01 20:15:00 +0000
committerrandomdan <randomdan@localhost>2010-07-01 20:15:00 +0000
commit55054f30f6ea7d70354d10288be8b347e63aaed8 (patch)
treeda36fab9ce8923235229be305c0779a496694259
parentFix monthly roll over bug on new ebuilds (diff)
downloadgentoobrowse-55054f30f6ea7d70354d10288be8b347e63aaed8.tar.bz2
gentoobrowse-55054f30f6ea7d70354d10288be8b347e63aaed8.tar.xz
gentoobrowse-55054f30f6ea7d70354d10288be8b347e63aaed8.zip
Implement login and logout and generic forms
-rw-r--r--gentoobrowse/base.xslt16
-rw-r--r--gentoobrowse/login.xslt50
-rw-r--r--gentoobrowse/present/accountHome.xml6
-rw-r--r--gentoobrowse/present/login.xml12
-rw-r--r--gentoobrowse/present/signup.xml13
-rw-r--r--gentoobrowse/request/dologin.xml14
-rw-r--r--gentoobrowse/request/dologout.xml6
-rw-r--r--gentoobrowse/style.css13
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']) &gt; 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%;
+}