Author: spadkins
Date: Thu May 24 14:25:48 2007
New Revision: 9609

Added:
   p5ee/trunk/app-user/
   p5ee/trunk/app-user/CHANGES
   p5ee/trunk/app-user/MANIFEST
   p5ee/trunk/app-user/Makefile.PL
   p5ee/trunk/app-user/README   (contents, props changed)
   p5ee/trunk/app-user/TODO
   p5ee/trunk/app-user/cgi-bin/
   p5ee/trunk/app-user/cgi-bin/user   (contents, props changed)
   p5ee/trunk/app-user/cgi-bin/user.conf.sample
   p5ee/trunk/app-user/db/
   p5ee/trunk/app-user/db/mysql/
   p5ee/trunk/app-user/etc/
   p5ee/trunk/app-user/etc/app/
   p5ee/trunk/app-user/etc/app/user.pl
   p5ee/trunk/app-user/htdocs/
   p5ee/trunk/app-user/htdocs/theme/
   p5ee/trunk/app-user/htdocs/theme/default/
   p5ee/trunk/app-user/htdocs/theme/default/user/
   p5ee/trunk/app-user/htdocs/theme/default/user/rubicon_logo_155x57.png   
(contents, props changed)
   p5ee/trunk/app-user/htdocs/theme/default/user/theme.css   (contents, props 
changed)
   p5ee/trunk/app-user/lib/
   p5ee/trunk/app-user/lib/App/
   p5ee/trunk/app-user/lib/App/Widget/
   p5ee/trunk/app-user/lib/App/Widget/CreateAccountPane.pm
   p5ee/trunk/app-user/lib/App/Widget/LoginPane.pm
   p5ee/trunk/app-user/lib/App/Widget/UpdateAccountPane.pm
   p5ee/trunk/app-user/t/
   p5ee/trunk/app-user/templates/
   p5ee/trunk/app-user/templates/user-create.html   (contents, props changed)
   p5ee/trunk/app-user/templates/user-login.html   (contents, props changed)
   p5ee/trunk/app-user/templates/user-top.html   (contents, props changed)
   p5ee/trunk/app-user/templates/user-update.html   (contents, props changed)

Log:
new

Added: p5ee/trunk/app-user/CHANGES
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/CHANGES Thu May 24 14:25:48 2007
@@ -0,0 +1,4 @@
+######################################################################
+## File: $Id: CHANGES,v 1.1.1.1 2002/12/30 14:51:40 spadkins Exp $
+######################################################################
+

Added: p5ee/trunk/app-user/MANIFEST
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/MANIFEST        Thu May 24 14:25:48 2007
@@ -0,0 +1,17 @@
+cgi-bin/user
+cgi-bin/user.conf.sample
+CHANGES
+etc/app/user.pl
+htdocs/theme/default/user/rubicon_logo_155x57.png
+htdocs/theme/default/user/theme.css
+lib/App/Widget/CreateAccountPane.pm
+lib/App/Widget/LoginPane.pm
+lib/App/Widget/UpdateAccountPane.pm
+Makefile.PL
+MANIFEST
+README
+templates/user-create.html
+templates/user-login.html
+templates/user-top.html
+templates/user-update.html
+TODO

Added: p5ee/trunk/app-user/Makefile.PL
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/Makefile.PL     Thu May 24 14:25:48 2007
@@ -0,0 +1,36 @@
+
+######################################################################
+## File: $Id: Makefile.PL,v 1.54 2007/04/23 17:29:59 smacke Exp $
+######################################################################
+
+use ExtUtils::MakeMaker;
+# See lib/ExtUtils/MakeMaker.pm for details of how to influence
+# the contents of the Makefile that is written.
+
+my @programs = ();
+
+%opts = (
+    'NAME'        => 'app-user',
+    'DISTNAME'    => 'app-user',
+    'VERSION'     => '0.50',
+    'EXE_FILES'   => [ @programs ],
+);
+
+######################################################################
+# MAKE THE MAKEFILE
+######################################################################
+
+WriteMakefile(%opts);
+
+sub MY::postamble {
+    return <<EOF;
+
+install ::
+       @\$(MOD_INSTALL) etc       \$(PREFIX)/etc
+       @\$(MOD_INSTALL) htdocs    \$(PREFIX)/htdocs
+       @\$(MOD_INSTALL) cgi-bin   \$(PREFIX)/cgi-bin
+       @\$(MOD_INSTALL) templates \$(PREFIX)/templates
+
+EOF
+}
+

Added: p5ee/trunk/app-user/README
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/README  Thu May 24 14:25:48 2007
@@ -0,0 +1,20 @@
+######################################################################
+## File: $Id: README,v 1.1.1.1 2002/12/30 14:51:40 spadkins Exp $
+######################################################################
+
+WHAT IS THIS?
+
+This is the apache-auth distribution.
+It is a web application for allowing user self-maintenance of their username
+and password.  This is compatible for use with mod_auth_mysql.
+
+HOW DO I INSTALL IT?
+
+To install this module, cd to the directory that contains this README
+file and type the following:
+
+   perl Makefile.PL
+   make
+   make test
+   make install
+

Added: p5ee/trunk/app-user/TODO
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/TODO    Thu May 24 14:25:48 2007
@@ -0,0 +1,9 @@
+
+######################################################################
+## File: $Id: TODO,v 1.14 2003/04/29 19:46:41 spadkins Exp $
+######################################################################
+
+To Get to Release 1.0
+
+Future (Someday)
+

Added: p5ee/trunk/app-user/cgi-bin/user
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/cgi-bin/user    Thu May 24 14:25:48 2007
@@ -0,0 +1,13 @@
+#!/usr/bin/perl -w
+
+# NOTE: -T option would ignore PERL5LIB
+
+#############################################################################
+# $Id: app 3337 2004-02-27 14:06:50Z spadkins $
+#############################################################################
+
+use App::Options;
+use App;
+my $context = App->context(\%App::options);
+$context->dispatch_events();
+

Added: p5ee/trunk/app-user/cgi-bin/user.conf.sample
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/cgi-bin/user.conf.sample        Thu May 24 14:25:48 2007
@@ -0,0 +1,29 @@
+
+#############################################################################
+# $Id: $
+#############################################################################
+
+theme     = default
+prefix    = /usr/mycompany/prod
+conf_file = ${prefix}/etc/app/user.pl
+
+dbhost    = localhost
+dbname    = auth
+dbuser    = webapp
+dbpass    = [EMAIL PROTECTED]
+
+html_url_dir   = http://localhost/prod
+script_url_dir = http://localhost/cgi-bin/prod
+template_dir   = ${prefix}/templates
+
+#open_widget_urls = 1
+
+#debug_request  = record
+#show_session   = 0
+#gzip           = 0
+
+context_class  = App::Context::HTTP
+request_class  = App::Request::CGI
+#session_class  = App::Session::Cookie
+#authorization_class = App::Authorization::Cookie
+

Added: p5ee/trunk/app-user/etc/app/user.pl
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/etc/app/user.pl Thu May 24 14:25:48 2007
@@ -0,0 +1,110 @@
+$conf = {
+  SessionObject => {
+    user => {
+      class => "App::Widget::TabbedAppFrame",
+      title => "User Access",
+      permissions => {
+        view => 1,    # designates this as a viewable widget from the browser 
(without open_widget_urls turned on)
+      },
+    },
+    "user-selector" => {
+      class => "App::Widget::TabbedSelector",
+      node => {
+        1     => { open => 1, value => "Login",          wname => 
"user-login", },
+        2     => { open => 0, value => "Create Account", wname => 
"user-create", },
+        3     => { open => 0, value => "Update Account", wname => 
"user-update", },
+      },
+    },
+    "user-login" => {
+      class => "App::Widget::LoginPane",
+    },
+    "user-login-create" => {
+      class => "App::Widget::Button",
+      label => "Create an Account",
+    },
+    "user-login-username" => {
+      class => "App::Widget::TextField",
+      size => 20,
+    },
+    "user-login-password" => {
+      class => "App::Widget::Password",
+      size => 20,
+    },
+    "user-login-remember" => {
+      class => "App::Widget::Checkbox",
+    },
+    "user-login-login" => {
+      class => "App::Widget::Button",
+      label => "Log in",
+    },
+    "user-login-email" => {
+      class => "App::Widget::Button",
+      label => "E-mail Password",
+    },
+    "user-create" => {
+      class => "App::Widget::CreateAccountPane",
+    },
+    "user-create-create" => {
+      class => "App::Widget::Button",
+      label => "Create Account",
+    },
+    "user-create-username" => {
+      class => "App::Widget::TextField",
+      size => 20,
+    },
+    "user-create-password" => {
+      class => "App::Widget::Password",
+      size => 20,
+    },
+    "user-create-password2" => {
+      class => "App::Widget::Password",
+      size => 20,
+    },
+    "user-create-remember" => {
+      class => "App::Widget::Checkbox",
+    },
+    "user-create-login" => {
+      class => "App::Widget::Button",
+      label => "Log in",
+    },
+    "user-create-email" => {
+      class => "App::Widget::TextField",
+      label => "E-mail",
+    },
+    "user-create-real_name" => {
+      class => "App::Widget::TextField",
+      label => "E-mail",
+    },
+    "user-update" => {
+      class => "App::Widget::UpdateAccountPane",
+    },
+    "user-update-update" => {
+      class => "App::Widget::Button",
+      label => "Update Account",
+    },
+    "user-update-password" => {
+      class => "App::Widget::Password",
+      size => 20,
+    },
+    "user-update-password2" => {
+      class => "App::Widget::Password",
+      size => 20,
+    },
+    "user-update-email" => {
+      class => "App::Widget::TextField",
+      label => "E-mail",
+    },
+    "user-update-real_name" => {
+      class => "App::Widget::TextField",
+      label => "E-mail",
+    },
+  },
+  Repository => {
+    default => {
+      alias => "db",
+    },
+    db => {
+      class => "App::Repository::MySQL",
+    },
+  },
+};

Added: p5ee/trunk/app-user/htdocs/theme/default/user/rubicon_logo_155x57.png
==============================================================================
Binary file. No diff available.

Added: p5ee/trunk/app-user/htdocs/theme/default/user/theme.css
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/htdocs/theme/default/user/theme.css     Thu May 24 
14:25:48 2007
@@ -0,0 +1,1617 @@
+/*
+** MediaWiki 'monobook' style sheet for CSS2-capable browsers.
+** Copyright Gabriel Wicke - http://wikidev.net/
+** License: GPL (http://www.gnu.org/copyleft/gpl.html)
+**
+** Loosely based on http://www.positioniseverything.net/ordered-floats.html by 
Big John
+** and the Plone 2.0 styles, see http://plone.org/ (Alexander Limi,Joe Geldart 
& Tom Croucher,
+** Michael Zeltner and Geir Bækholt)
+** All you guys rock :)
+*/
+
+/**
+ * Stylesheet for screen/projection.  All rules not marked media-specific are
+ * shared with handheld.css and should be updated in tandem.  The rules can't
+ * be in the same file because old browsers like IE5 won't obey @media rules.
+ *
+ * Rules that are screen/projection-specific are marked with commented-out
+ * @media rules and indentation.
+ */
+
+/* @media screen, projection { */
+    #column-content {
+        width: 100%;
+        float: right;
+        margin: 0 0 .6em -12.2em;
+        padding: 0;
+    }
+    #content {
+        margin: 2.8em 0 0 12.2em;
+        padding: 0 1em 1.5em 1em;
+        position: relative;
+        z-index: 2;
+    }
+    #column-one {
+        padding-top: 160px;
+    }
+/* } */
+#content {
+    background: white;
+    color: black;
+    border: 1px solid #aaa;
+    border-right: none;
+    line-height: 1.5em;
+}
+/* the left column width is specified in class .portlet */
+
+/* Font size:
+** We take advantage of keyword scaling- browsers won't go below 9px
+** More at http://www.w3.org/2003/07/30-font-size
+** http://style.cleverchimp.com/font_size_intervals/altintervals.html
+*/
+
+body {
+    font: x-small sans-serif;
+    background: #f9f9f9 url(headbg.jpg) 0 0 no-repeat;
+    color: black;
+    margin: 0;
+    padding: 0;
+}
+
+/* scale back up to a sane default */
+#globalWrapper {
+    font-size: 127%;
+    width: 100%;
+    margin: 0;
+    padding: 0;
+}
+.visualClear {
+    clear: both;
+}
+
+/* general styles */
+
+table {
+    font-size: 100%;
+    color: black;
+    /* we don't want the bottom borders of <h2>s to be visible through
+       floated tables */
+    background-color: white;
+}
+a {
+    text-decoration: none;
+    color: #002bb8;
+    background: none;
+}
+a:visited {
+    color: #5a3696;
+}
+a:active {
+    color: #faa700;
+}
+a:hover {
+    text-decoration: underline;
+}
+a.stub {
+    color: #772233;
+}
+a.new, #p-personal a.new {
+    color: #ba0000;
+}
+a.new:visited, #p-personal a.new:visited {
+    color: #a55858;
+}
+
+img {
+    border: none;
+    vertical-align: middle;
+}
+/* @media screen, projection { */
+    p {
+        margin: .4em 0 .5em 0;
+        line-height: 1.5em;
+    }
+/* } */
+p img {
+    margin: 0;
+}
+
+hr {
+    height: 1px;
+    color: #aaa;
+    background-color: #aaa;
+    border: 0;
+    margin: .2em 0 .2em 0;
+}
+
+h1, h2, h3, h4, h5, h6 {
+    color: black;
+    background: none;
+    font-weight: normal;
+    margin: 0;
+    padding-top: .5em;
+    padding-bottom: .17em;
+    border-bottom: 1px solid #aaa;
+}
+h1 { font-size: 188%; }
+h1 .editsection { font-size: 53%; }
+h2 { font-size: 150%; }
+h2 .editsection { font-size: 67%; }
+h3, h4, h5, h6 {
+    border-bottom: none;
+    font-weight: bold;
+}
+h3 { font-size: 132%; }
+h3 .editsection { font-size: 76%; font-weight: normal; }
+h4 { font-size: 116%; }
+h4 .editsection { font-size: 86%; font-weight: normal; }
+h5 { font-size: 100%; }
+h5 .editsection { font-weight: normal; }
+h6 { font-size: 80%;  }
+h6 .editsection { font-size: 125%; font-weight: normal; }
+
+.editsection {
+    float: right;
+    margin-left: 5px;
+}
+
+ul {
+    line-height: 1.5em;
+    list-style-type: square;
+    margin: .3em 0 0 1.5em;
+    padding: 0;
+    list-style-image: url(bullet.gif);
+}
+ol {
+    line-height: 1.5em;
+    margin: .3em 0 0 3.2em;
+    padding: 0;
+    list-style-image: none;
+}
+li {
+    margin-bottom: .1em;
+}
+dt {
+    font-weight: bold;
+    margin-bottom: .1em;
+}
+dl {
+    margin-top: .2em;
+    margin-bottom: .5em;
+}
+dd {
+    line-height: 1.5em;
+    margin-left: 2em;
+    margin-bottom: .1em;
+}
+
+fieldset {
+    border: 1px solid #2f6fab;
+    margin: 1em 0 1em 0;
+    padding: 0 1em 1em;
+    line-height: 1.5em;
+}
+legend {
+    padding: .5em;
+    font-size: 95%;
+}
+form {
+    border: none;
+    margin: 0;
+}
+
+textarea {
+    width: 100%;
+    padding: .1em;
+}
+
+input.historysubmit {
+    padding: 0 .3em .3em .3em !important;
+    font-size: 94%;
+    cursor: pointer;
+    height: 1.7em !important;
+    margin-left: 1.6em;
+}
+select {
+    vertical-align: top;
+}
+abbr, acronym, .explain {
+    border-bottom: 1px dotted black;
+    color: black;
+    background: none;
+    cursor: help;
+}
+q {
+    font-family: Times, "Times New Roman", serif;
+    font-style: italic;
+}
+/* disabled for now
+blockquote {
+    font-family: Times, "Times New Roman", serif;
+    font-style: italic;
+}*/
+code {
+    background-color: #f9f9f9;
+}
+pre {
+    padding: 1em;
+    border: 1px dashed #2f6fab;
+    color: black;
+    background-color: #f9f9f9;
+    line-height: 1.1em;
+}
+
+/*
+** the main content area
+*/
+
+/* @media screen, projection { */
+    #siteSub {
+        display: none;
+    }
+    #jump-to-nav {
+        display: none;
+    }
+/* } */
+
+#contentSub, #contentSub2 {
+    font-size: 84%;
+    line-height: 1.2em;
+    margin: 0 0 1.4em 1em;
+    color: #7d7d7d;
+    width: auto;
+}
+span.subpages {
+    display: block;
+}
+
+/* Some space under the headers in the content area */
+#bodyContent h1, #bodyContent h2 {
+    margin-bottom: .6em;
+}
+#bodyContent h3, #bodyContent h4, #bodyContent h5 {
+    margin-bottom: .3em;
+}
+.firstHeading {
+    margin-bottom: .1em;
+}
+
+/* user notification thing */
+.usermessage {
+    background-color: #ffce7b;
+    border: 1px solid #ffa500;
+    color: black;
+    font-weight: bold;
+    margin: 2em 0 1em;
+    padding: .5em 1em;
+    vertical-align: middle;
+}
+#siteNotice {
+    text-align: center;
+    font-size: 95%;
+    padding: 0 .9em;
+}
+#siteNotice p {
+    margin: 0;
+    padding: 0;
+}
+.error {
+    color: red;
+    font-size: larger;
+}
+.errorbox, .successbox {
+    font-size: larger;
+    border: 2px solid;
+    padding: .5em 1em;
+    float: left;
+    margin-bottom: 2em;
+    color: #000;
+}
+.errorbox {
+    border-color: red;
+    background-color: #fff2f2;
+}
+.successbox {
+    border-color: green;
+    background-color: #dfd;
+}
+.errorbox h2, .successbox h2 {
+    font-size: 1em;
+    font-weight: bold;
+    display: inline;
+    margin: 0 .5em 0 0;
+    border: none;
+}
+
+#catlinks {
+    border: 1px solid #aaa;
+    background-color: #f9f9f9;
+    padding: 5px;
+    margin-top: 1em;
+    clear: both;
+}
+/* currently unused, intended to be used by a metadata box
+in the bottom-right corner of the content area */
+.documentDescription {
+    /* The summary text describing the document */
+    font-weight: bold;
+    display: block;
+    margin: 1em 0;
+    line-height: 1.5em;
+}
+.documentByLine {
+    text-align: right;
+    font-size: 90%;
+    clear: both;
+    font-weight: normal;
+    color: #76797c;
+}
+
+/* emulate center */
+.center {
+    width: 100%;
+    text-align: center;
+}
+*.center * {
+    margin-left: auto;
+    margin-right: auto;
+}
+/* small for tables and similar */
+.small, .small * {
+    font-size: 94%;
+}
+table.small {
+    font-size: 100%;
+}
+
+/*
+** content styles
+*/
+
+#toc,
+.toc,
+.mw-warning {
+    border: 1px solid #aaa;
+    background-color: #f9f9f9;
+    padding: 5px;
+    font-size: 95%;
+}
+#toc h2,
+.toc h2 {
+    display: inline;
+    border: none;
+    padding: 0;
+    font-size: 100%;
+    font-weight: bold;
+}
+#toc #toctitle,
+.toc #toctitle,
+#toc .toctitle,
+.toc .toctitle {
+    text-align: center;
+}
+#toc ul,
+.toc ul {
+    list-style-type: none;
+    list-style-image: none;
+    margin-left: 0;
+    padding-left: 0;
+    text-align: left;
+}
+#toc ul ul,
+.toc ul ul {
+    margin: 0 0 0 2em;
+}
+#toc .toctoggle,
+.toc .toctoggle {
+    font-size: 94%;
+}
+
+.mw-warning {
+    margin-left: 50px;
+    margin-right: 50px;
+    text-align: center;
+}
+
+/* images */
+div.floatright, table.floatright {
+    clear: right;
+    float: right;
+    position: relative;
+    margin: 0 0 .5em .5em;
+    border: 0;
+/*
+    border: .5em solid white;
+    border-width: .5em 0 .8em 1.4em;
+*/
+}
+div.floatright p { font-style: italic; }
+div.floatleft, table.floatleft {
+    float: left;
+    clear: left;
+    position: relative;
+    margin: 0 .5em .5em 0;
+    border: 0;
+/*
+    margin: .3em .5em .5em 0;
+    border: .5em solid white;
+    border-width: .5em 1.4em .8em 0;
+*/
+}
+div.floatleft p { font-style: italic; }
+/* thumbnails */
+div.thumb {
+    margin-bottom: .5em;
+    border-style: solid;
+    border-color: white;
+    width: auto;
+}
+div.thumbinner {
+    border: 1px solid #ccc;
+    padding: 3px !important;
+    background-color: #f9f9f9;
+    font-size: 94%;
+    text-align: center;
+    overflow: hidden;
+}
+html .thumbimage {
+    border: 1px solid #ccc;
+}
+html .thumbcaption {
+    border: none;
+    text-align: left;
+    line-height: 1.4em;
+    padding: 3px !important;
+    font-size: 94%;
+}
+div.magnify {
+    float: right;
+    border: none !important;
+    background: none !important;
+}
+div.magnify a, div.magnify img {
+    display: block;
+    border: none !important;
+    background: none !important;
+}
+div.tright {
+    clear: right;
+    float: right;
+    border-width: .5em 0 .8em 1.4em;
+}
+div.tleft {
+    float: left;
+    clear: left;
+    margin-right: .5em;
+    border-width: .5em 1.4em .8em 0;
+}
+
+.hiddenStructure {
+    display: none;
+    speak: none;
+}
+img.tex {
+    vertical-align: middle;
+}
+span.texhtml {
+    font-family: serif;
+}
+
+/*
+** classes for special content elements like town boxes
+** intended to be referenced directly from the wiki src
+*/
+
+/*
+** User styles
+*/
+/* table standards */
+table.rimage {
+    float: right;
+    position: relative;
+    margin-left: 1em;
+    margin-bottom: 1em;
+    text-align: center;
+}
+.toccolours {
+    border: 1px solid #aaa;
+    background-color: #f9f9f9;
+    padding: 5px;
+    font-size: 95%;
+}
+div.townBox {
+    position: relative;
+    float: right;
+    background: white;
+    margin-left: 1em;
+    border: 1px solid gray;
+    padding: .3em;
+    width: 200px;
+    overflow: hidden;
+    clear: right;
+}
+div.townBox dl {
+    padding: 0;
+    margin: 0 0 .3em;
+    font-size: 96%;
+}
+div.townBox dl dt {
+    background: none;
+    margin: .4em 0 0;
+}
+div.townBox dl dd {
+    margin: .1em 0 0 1.1em;
+    background-color: #f3f3f3;
+}
+
+/*
+** edit views etc
+*/
+.special li {
+    line-height: 1.4em;
+    margin: 0;
+    padding: 0;
+}
+
+/* Page history styling */
+/* the auto-generated edit comments */
+.autocomment {
+    color: gray;
+}
+#pagehistory span.user {
+    margin-left: 1.4em;
+    margin-right: .4em;
+}
+#pagehistory span.minor {
+    font-weight: bold;
+}
+#pagehistory li {
+    border: 1px solid white;
+}
+#pagehistory li.selected {
+    background-color: #f9f9f9;
+    border: 1px dashed #aaa;
+}
+
+/*
+** Diff rendering
+*/
+table.diff, td.diff-otitle, td.diff-ntitle {
+    background-color: white;
+}
+td.diff-addedline {
+    background: #cfc;
+    font-size: smaller;
+}
+td.diff-deletedline {
+    background: #ffa;
+    font-size: smaller;
+}
+td.diff-context {
+    background: #eee;
+    font-size: smaller;
+}
+span.diffchange {
+    color: red;
+    font-weight: bold;
+}
+
+/*
+** keep the whitespace in front of the ^=, hides rule from konqueror
+** this is css3, the validator doesn't like it when validating as css2
+*/
+#bodyContent a.external,
+#bodyContent a[href ^="gopher://";] {
+    background: url(external.png) center right no-repeat;
+    padding-right: 13px;
+}
+#bodyContent a[href ^="https://";],
+.link-https {
+    background: url(lock_icon.gif) center right no-repeat;
+    padding-right: 16px;
+}
+#bodyContent a[href ^="mailto:";],
+.link-mailto {
+    background: url(mail_icon.gif) center right no-repeat;
+    padding-right: 18px;
+}
+#bodyContent a[href ^="news://";] {
+    background: url(news_icon.png) center right no-repeat;
+    padding-right: 18px;
+}
+#bodyContent a[href ^="ftp://";],
+.link-ftp {
+    background: url(file_icon.gif) center right no-repeat;
+    padding-right: 18px;
+}
+#bodyContent a[href ^="irc://"],
+.link-irc {
+    background: url(discussionitem_icon.gif) center right no-repeat;
+    padding-right: 18px;
+}
+#bodyContent a.external[href $=".ogg"], #bodyContent a.external[href $=".OGG"],
+#bodyContent a.external[href $=".mid"], #bodyContent a.external[href $=".MID"],
+#bodyContent a.external[href $=".midi"], #bodyContent a.external[href 
$=".MIDI"],
+#bodyContent a.external[href $=".mp3"], #bodyContent a.external[href $=".MP3"],
+#bodyContent a.external[href $=".wav"], #bodyContent a.external[href $=".WAV"],
+#bodyContent a.external[href $=".wma"], #bodyContent a.external[href $=".WMA"],
+.link-audio {
+    background: url("audio.png") center right no-repeat;
+    padding-right: 13px;
+}
+#bodyContent a.external[href $=".ogm"], #bodyContent a.external[href $=".OGM"],
+#bodyContent a.external[href $=".avi"], #bodyContent a.external[href $=".AVI"],
+#bodyContent a.external[href $=".mpeg"], #bodyContent a.external[href 
$=".MPEG"],
+#bodyContent a.external[href $=".mpg"], #bodyContent a.external[href $=".MPG"],
+.link-video {
+    background: url("video.png") center right no-repeat;
+    padding-right: 13px;
+}
+#bodyContent a.external[href $=".pdf"], #bodyContent a.external[href $=".PDF"],
+#bodyContent a.external[href *=".pdf#"], #bodyContent a.external[href 
*=".PDF#"],
+#bodyContent a.external[href *=".pdf?"], #bodyContent a.external[href 
*=".PDF?"],
+.link-document {
+    background: url("document.png") center right no-repeat;
+    padding-right: 12px;
+}
+
+/* disable interwiki styling */
+#bodyContent a.extiw,
+#bodyContent a.extiw:active {
+    color: #36b;
+    background: none;
+    padding: 0;
+}
+#bodyContent a.external {
+    color: #36b;
+}
+/* this can be used in the content area to switch off
+special external link styling */
+#bodyContent .plainlinks a {
+    background: none !important;
+    padding: 0 !important;
+}
+/*
+** Structural Elements
+*/
+
+/*
+** general portlet styles (elements in the quickbar)
+*/
+.portlet {
+    border: none;
+    margin: 0 0 .5em;
+    padding: 0;
+    float: none;
+    width: 11.6em;
+    overflow: hidden;
+}
+.portlet h4 {
+    font-size: 95%;
+    font-weight: normal;
+    white-space: nowrap;
+}
+.portlet h5 {
+    background: transparent;
+    padding: 0 1em 0 .5em;
+    display: inline;
+    height: 1em;
+    text-transform: lowercase;
+    font-size: 91%;
+    font-weight: normal;
+    white-space: nowrap;
+}
+.portlet h6 {
+    background: #ffae2e;
+    border: 1px solid #2f6fab;
+    border-style: solid solid none solid;
+    padding: 0 1em 0 1em;
+    text-transform: lowercase;
+    display: block;
+    font-size: 1em;
+    height: 1.2em;
+    font-weight: normal;
+    white-space: nowrap;
+}
+.pBody {
+    font-size: 95%;
+    background-color: white;
+    color: black;
+    border-collapse: collapse;
+    border: 1px solid #aaa;
+    padding: 0 .8em .3em .5em;
+}
+.portlet h1,
+.portlet h2,
+.portlet h3,
+.portlet h4 {
+    margin: 0;
+    padding: 0;
+}
+.portlet ul {
+    line-height: 1.5em;
+    list-style-type: square;
+    list-style-image: url(bullet.gif);
+    font-size: 95%;
+}
+.portlet li {
+    padding: 0;
+    margin: 0;
+}
+
+/*
+** Logo properties
+*/
+
+/* @media screen, projection { */
+    #p-logo {
+        top: 0;
+        left: 0;
+        position: absolute; /*needed to use z-index */
+        z-index: 3;
+        height: 155px;
+        width: 12em;
+        overflow: visible;
+    }
+    #p-logo h5 {
+        display: none;
+    }
+    #p-logo a,
+    #p-logo a:hover {
+        display: block;
+        height: 155px;
+        width: 12.2em;
+        background-repeat: no-repeat;
+        background-position: 35% 50% !important;
+        text-decoration: none;
+    }
+/* } */
+/*
+** the navigation portlet
+*/
+
+/* @media screen, projection { */
+    #p-navigation {
+        position: relative;
+        z-index: 3;
+    }
+    #p-navigation a {
+        display: block;
+    }
+    #p-navigation li.active a, #p-navigation li.active a:hover {
+        display: inline;
+    }
+/* } */
+
+#p-navigation .pBody {
+    padding-right: 0;
+}
+
+#p-navigation li.active a, #p-navigation li.active a:hover {
+    text-decoration: none;
+    font-weight: bold;
+}
+
+
+/*
+** Search portlet
+*/
+/* @media screen, projection { */
+    #p-search {
+        position: relative;
+        z-index: 3;
+    }
+/* } */
+input.searchButton {
+    margin-top: 1px;
+    font-size: 95%;
+}
+#searchGoButton {
+    padding-left: .5em;
+    padding-right: .5em;
+    font-weight: bold;
+}
+#searchInput {
+    width: 10.9em;
+    margin: 0;
+    font-size: 95%;
+}
+#p-search .pBody {
+    padding: .5em .4em .4em .4em;
+    text-align: center;
+}
+
+/*
+** the personal toolbar
+*/
+/* @media screen, projection { */
+    #p-personal {
+        position: absolute;
+        left: 0;
+        top: 0;
+        z-index: 0;
+    }
+    #p-personal {
+        width: 100%;
+        white-space: nowrap;
+        padding: 0;
+        margin: 0;
+        border: none;
+        background: none;
+        overflow: visible;
+        line-height: 1.2em;
+    }
+    #p-personal h5 {
+        display: none;
+    }
+    #p-personal .portlet,
+    #p-personal .pBody {
+        z-index: 0;
+        padding: 0;
+        margin: 0;
+        border: none;
+        overflow: visible;
+        background: none;
+    }
+/* this is the ul contained in the portlet */
+    #p-personal ul {
+        border: none;
+        line-height: 1.4em;
+        color: #2f6fab;
+        padding: 0 2em 0 3em;
+        margin: 0;
+        text-align: right;
+        list-style: none;
+        z-index: 0;
+        background: none;
+        cursor: default;
+    }
+    #p-personal li {
+        z-index: 0;
+        border: none;
+        padding: 0;
+        display: inline;
+        color: #2f6fab;
+        margin-left: 1em;
+        line-height: 1.2em;
+        background: none;
+    }
+    #p-personal li a {
+        text-decoration: none;
+        color: #005896;
+        padding-bottom: .2em;
+        background: none;
+    }
+    #p-personal li a:hover {
+        background-color: white;
+        padding-bottom: .2em;
+        text-decoration: none;
+    }
+    #p-personal li.active a:hover {
+        background-color: transparent;
+    }
+    /* the icon in front of the user name, single quotes
+    in bg url to hide it from iemac */
+    li#pt-userpage,
+    li#pt-anonuserpage,
+    li#pt-login {
+        background: url(user.gif) top left no-repeat;
+        padding-left: 20px;
+        text-transform: none;
+    }
+/* } */
+#p-personal ul {
+    text-transform: lowercase;
+}
+#p-personal li.active {
+    font-weight: bold;
+}
+/*
+** the page-related actions- page/talk, edit etc
+*/
+/* @media screen, projection { */
+    #p-cactions {
+        position: absolute;
+        top: 1.3em;
+        left: 11.5em;
+        margin: 0;
+        white-space: nowrap;
+        width: 76%;
+        line-height: 1.1em;
+        overflow: visible;
+        background: none;
+        border-collapse: collapse;
+        padding-left: 1em;
+        list-style: none;
+        font-size: 95%;
+    }
+    #p-cactions ul {
+        list-style: none;
+    }
+    #p-cactions li {
+        display: inline;
+        border: 1px solid #aaa;
+        border-bottom: none;
+        padding: 0 0 .1em 0;
+        margin: 0 .3em 0 0;
+        overflow: visible;
+        background: white;
+    }
+    #p-cactions li.selected {
+        border-color: #fabd23;
+        padding: 0 0 .2em 0;
+        font-weight: bold;
+    }
+    #p-cactions li a {
+        background-color: #fbfbfb;
+        color: #002bb8;
+        border: none;
+        padding: 0 .8em .3em;
+        position: relative;
+        z-index: 0;
+        margin: 0;
+        text-decoration: none;
+    }
+    #p-cactions li.selected a {
+        z-index: 3;
+        padding: 0 1em .2em!important;
+        background-color: white;
+    }
+    #p-cactions .new a {
+        color: #ba0000;
+    }
+    #p-cactions li a:hover {
+        z-index: 3;
+        text-decoration: none;
+        background-color: white;
+    }
+    #p-cactions h5 {
+        display: none;
+    }
+    #p-cactions li.istalk {
+        margin-right: 0;
+    }
+    #p-cactions li.istalk a {
+        padding-right: .5em;
+    }
+    #p-cactions #ca-addsection a {
+        padding-left: .4em;
+        padding-right: .4em;
+    }
+    /* offsets to distinguish the tab groups */
+    li#ca-talk {
+        margin-right: 1.6em;
+    }
+    li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print {
+        margin-left: 1.6em;
+    }
+    #p-cactions .pBody {
+        font-size: 1em;
+        background-color: transparent;
+        color: inherit;
+        border-collapse: inherit;
+        border: 0;
+        padding: 0;
+    }
+/* } */
+#p-cactions .hiddenStructure {
+    display: none;
+}
+#p-cactions li a {
+    text-transform: lowercase;
+}
+
+/*
+** the remaining portlets
+*/
+/* @media screen, projection { */
+    #p-tbx,
+    #p-lang {
+        position: relative;
+        z-index: 3;
+    }
+/* } */
+
+/* TODO: #t-iscite is only used by the Cite extension, come up with some
+ * system which allows extensions to add to this file on the fly
+ */
+#t-ispermalink, #t-iscite {
+    color: #999;
+}
+/*
+** footer
+*/
+#footer {
+    background-color: white;
+    border-top: 1px solid #fabd23;
+    border-bottom: 1px solid #fabd23;
+    margin: .6em 0 1em 0;
+    padding: .4em 0 1.2em 0;
+    text-align: center;
+    font-size: 90%;
+}
+#footer li {
+    display: inline;
+    margin: 0 1.3em;
+}
+/* hide from incapable browsers */
+head:first-child+body #footer li { white-space: nowrap; }
+#f-poweredbyico, #f-copyrightico {
+    margin: 0 8px;
+    position: relative;
+    top: -2px; /* Bump it up just a tad */
+}
+#f-poweredbyico {
+    float: right;
+    height: 1%;
+}
+#f-copyrightico {
+    float: left;
+    height: 1%;
+}
+
+/* js pref toc */
+#preftoc {
+    margin: 0;
+    padding: 0;
+    width: 100%;
+    clear: both;
+}
+#preftoc li {
+    background-color: #f0f0f0;
+    color: #000;
+}
+/* @media screen, projection { */
+    #preftoc li {
+        margin: 1px -2px 1px 2px;
+        float: left;
+        padding: 2px 0 3px 0;
+        border: 1px solid #fff;
+        border-right-color: #716f64;
+        border-bottom: 0;
+        position: relative;
+        white-space: nowrap;
+        list-style-type: none;
+        list-style-image: none;
+        z-index: 3;
+    }
+/* } */
+#preftoc li.selected {
+    font-weight: bold;
+    background-color: #f9f9f9;
+    border: 1px solid #aaa;
+    border-bottom: none;
+    cursor: default;
+    top: 1px;
+    padding-top: 2px;
+    margin-right: -3px;
+}
+#preftoc > li.selected {
+    top: 2px;
+}
+#preftoc a,
+#preftoc a:active {
+    display: block;
+    color: #000;
+    padding: 0 .7em;
+    position: relative;
+    text-decoration: none;
+}
+#preftoc li.selected a {
+    cursor: default;
+    text-decoration: none;
+}
+#prefcontrol {
+    padding-top: 2em;
+    clear: both;
+}
+#preferences {
+    margin: 0;
+    border: 1px solid #aaa;
+    clear: both;
+    padding: 1.5em;
+    background-color: #F9F9F9;
+}
+.prefsection {
+    border: none;
+    padding: 0;
+    margin: 0;
+}
+.prefsection fieldset {
+    border: 1px solid #aaa;
+    float: left;
+    margin-right: 2em;
+}
+.prefsection legend {
+    font-weight: bold;   
+}
+.prefsection table, .prefsection legend {
+    background-color: #F9F9F9;
+}
+/* @media screen, projection { */
+    .mainLegend {
+        display: none;
+    }
+/* } */
+div.prefsectiontip {
+    font-size: 95%;
+    margin-top: 0;
+    background-color: #FFC1C1;
+    padding: .2em .7em;
+    clear: both;
+}
+.btnSavePrefs {
+    font-weight: bold;
+    padding-left: .3em;
+    padding-right: .3em;
+}
+
+.preferences-login {
+    clear: both;
+    margin-bottom: 1.5em;
+}
+
+.prefcache {
+    font-size: 90%;
+    margin-top: 2em;
+}
+
+div#userloginForm form,
+div#userlogin form#userlogin2 {
+    margin: 0 3em 1em 0;
+    border: 1px solid #aaa;
+    clear: both;
+    padding: 1.5em 2em;
+    background-color: #f9f9f9;
+    float: left;
+}
+
+div#userloginForm table,
+div#userlogin form#userlogin2 table {
+    background-color: #f9f9f9;
+}
+
+div#userloginForm h2,
+div#userlogin form#userlogin2 h2 {
+    padding-top: 0;
+}
+
+div#userlogin .captcha {
+    border: 1px solid #bbb;
+    padding: 1.5em 2em;
+    width: 400px;
+    background-color: white;
+}
+
+
+#userloginprompt, #languagelinks {
+    font-size: 85%;
+}
+
+#login-sectiontip {
+    font-size: 85%;
+    line-height: 1.2;
+    padding-top: 2em;
+}
+
+#userlogin .loginText, #userlogin .loginPassword {
+    width: 12em;
+}
+
+#userloginlink a, #wpLoginattempt, #wpCreateaccount {
+    font-weight: bold;
+}
+
+/* @media screen, projection { */
+    /*
+    ** IE/Mac fixes, hope to find a validating way to move this
+    ** to a separate stylesheet. This would work but doesn't validate:
+    ** @import("IEMacFixes.css");
+    */
+    /* tabs: border on the a, not the div */
+    * > html #p-cactions li { border: none; }
+    * > html #p-cactions li a {
+        border: 1px solid #aaa;
+        border-bottom: none;
+    }
+    * > html #p-cactions li.selected a { border-color: #fabd23; }
+    /* footer icons need a fixed width */
+    * > html #f-poweredbyico,
+    * > html #f-copyrightico { width: 88px; }
+    * > html #bodyContent,
+    * > html #bodyContent pre {
+        overflow-x: auto;
+        width: 100%;
+        padding-bottom: 25px;
+    }
+/* } */
+
+/* more IE fixes */
+/* float/negative margin brokenness */
+* html #footer {margin-top: 0;}
+* html #column-content {
+    display: inline;
+    margin-bottom: 0;
+}
+* html div.editsection { font-size: smaller; }
+#pagehistory li.selected { position: relative; }
+
+/* Mac IE 5.0 fix; floated content turns invisible */
+* > html #column-content {
+    float: none;
+}
+* > html #column-one {
+    position: absolute;
+    left: 0;
+    top: 0;
+}
+* > html #footer {
+    margin-left: 13.2em;
+}
+.redirectText {
+    font-size: 150%;
+    margin: 5px;
+}
+
+.printfooter {
+    display: none;
+}
+
+.not-patrolled {
+    background-color: #ffa;
+}
+div.patrollink {
+    font-size: 75%;
+    text-align: right;
+}
+span.newpage, span.minor, span.searchmatch, span.bot {
+    font-weight: bold;
+}
+span.unpatrolled {
+    font-weight: bold;
+    color: red;
+}
+
+span.searchmatch {
+    color: red;
+}
+.sharedUploadNotice {
+    font-style: italic;
+}
+
+span.updatedmarker {
+    color: black;
+    background-color: #0f0;
+}
+span.newpageletter {
+    font-weight: bold;
+    color: black;
+    background-color: yellow;
+}
+span.minoreditletter {
+    color: black;
+    background-color: #c5ffe6;
+}
+
+table.gallery {
+    border: 1px solid #ccc;
+    margin: 2px;
+    padding: 2px;
+    background-color: white;
+}
+
+table.gallery tr {
+    vertical-align: top;
+}
+
+table.gallery td {
+    vertical-align: top;
+    background-color: #f9f9f9;
+    border: solid 2px white;
+}
+
+table.gallery td.galleryheader {
+    text-align: center;
+    font-weight: bold;
+}
+
+div.gallerybox {
+    margin: 2px;
+    width:  150px;
+}
+
+div.gallerybox div.thumb {
+    text-align: center;
+    border: 1px solid #ccc;
+    margin: 2px;
+}
+
+div.gallerytext {
+    font-size: 94%;
+    padding: 2px 4px;
+}
+
+span.comment {
+    font-style: italic;
+}
+
+span.changedby {
+    font-size: 95%;
+}
+
+.previewnote {
+    text-indent: 3em;
+    color: #c00;
+    border-bottom: 1px solid #aaa;
+    padding-bottom: 1em;
+    margin-bottom: 1em;
+}
+
+.previewnote p {
+    margin: 0;
+    padding: 0;
+}
+
+.editExternally {
+    border: 1px solid gray;
+    background-color: #ffffff;
+    padding: 3px;
+    margin-top: 0.5em;
+    float: left;
+    font-size: small;
+    text-align: center;
+}
+.editExternallyHelp {
+    font-style: italic;
+    color: gray;
+}
+
+li span.deleted, span.history-deleted {
+    text-decoration: line-through;
+    color: #888;
+    font-style: italic;
+}
+
+.toggle {
+    margin-left: 2em;
+    text-indent: -2em;
+}
+
+/* Classes for EXIF data display */
+table.mw_metadata {
+    font-size: 0.8em;
+    margin-left: 0.5em;
+    margin-bottom: 0.5em;
+    width: 300px;
+}
+
+table.mw_metadata caption {
+    font-weight: bold;
+}
+
+table.mw_metadata th {
+    font-weight: normal;
+}
+
+table.mw_metadata td {
+    padding: 0.1em;
+}
+
+table.mw_metadata {
+    border: none;
+    border-collapse: collapse;
+}
+
+table.mw_metadata td, table.mw_metadata th {
+    text-align: center;
+    border: 1px solid #aaaaaa;
+    padding-left: 0.1em;
+    padding-right: 0.1em;
+}
+
+table.mw_metadata th {
+    background-color: #f9f9f9;
+}
+
+table.mw_metadata td {
+    background-color: #fcfcfc;
+}
+
+table.collapsed tr.collapsable {
+    display: none;
+}
+
+
+/* filetoc */
+ul#filetoc {
+    text-align: center;
+    border: 1px solid #aaaaaa;
+    background-color: #f9f9f9;
+    padding: 5px;
+    font-size: 95%;
+    margin-bottom: 0.5em;
+    margin-left: 0;
+    margin-right: 0;
+}
+
+#filetoc li {
+    display: inline;
+    list-style-type: none;
+    padding-right: 2em;
+}
+
+input#wpSummary {
+    width: 80%;
+}
+
+/* @bug 1714 */
+input#wpSave, input#wpDiff {
+    margin-right: 0.33em;
+}
+
+#editform .editOptions {
+    display: inline;
+}
+
+#wpSave {
+    font-weight: bold;
+}
+
+/* Classes for article validation */
+
+table.revisionform_default {
+    border: 1px solid #000000;
+}
+
+table.revisionform_focus {
+    border: 1px solid #000000;
+    background-color:#00BBFF;
+}
+
+tr.revision_tr_default {
+    background-color:#EEEEEE;
+}
+
+tr.revision_tr_first {
+    background-color:#DDDDDD;
+}
+
+p.revision_saved {
+    color: green;
+    font-weight:bold;
+}
+
+#mw_trackbacks {
+    border: solid 1px #bbbbff;
+    background-color: #eeeeff;
+    padding: 0.2em;
+}
+
+
+/* Allmessages table */
+
+#allmessagestable th {
+    background-color: #b2b2ff;
+}
+
+#allmessagestable tr.orig {
+    background-color: #ffe2e2;
+}
+
+#allmessagestable tr.new {
+    background-color: #e2ffe2;
+}
+
+#allmessagestable tr.def {
+    background-color: #f0f0ff;
+}
+
+
+/* noarticletext */
+div.noarticletext {
+    border: 1px solid #ccc;
+    background: #fff;
+    padding: .2em 1em;
+    color: #000;
+}
+
+div#searchTargetContainer {
+    left:       10px;
+    top:        10px;
+    width:      90%;
+    background: white;
+}
+
+div#searchTarget {
+    padding:    3px;
+    margin:     5px;
+    background: #F0F0F0;
+    border:     solid 1px blue;
+}
+
+div#searchTarget ul li {
+    list-style: none;
+}
+
+div#searchTarget ul li:before {
+    color: orange;
+    content: "\00BB \0020";
+}
+
+div.multipageimagenavbox {
+   border: solid 1px silver;
+   padding: 4px;
+   margin: 1em;
+   -moz-border-radius: 6px;
+   background: #f0f0f0;
+}
+
+div.multipageimagenavbox div.thumb {
+   border: none;
+   margin-left: 2em;
+   margin-right: 2em;
+}
+
+div.multipageimagenavbox hr {
+   margin: 6px;
+}
+
+table.multipageimage td {
+   text-align: center;
+}
+
+/** Special:Version */
+
+table#sv-ext, table#sv-hooks {
+    margin: 1em;
+    padding:0em;
+}
+
+#sv-ext td, #sv-hooks td,
+#sv-ext th, #sv-hooks th {
+    border: 1px solid #A0A0A0;
+    padding: 0 0.15em 0 0.15em;
+}
+#sv-ext th, #sv-hooks th {
+    background-color: #F0F0F0;
+    color: black;
+    padding: 0 0.15em 0 0.15em;
+}
+tr.sv-space{
+    height: 0.8em;
+    border:none;
+}
+tr.sv-space td { display: none; }
+
+/*
+  Table pager (e.g. Special:Imagelist)
+  - remove underlines from the navigation link
+  - collapse borders
+  - set the borders to outsets (similar to Special:Allmessages)
+  - remove line wrapping for all td and th, set background color
+  - restore line wrapping for the last two table cells (description and size)
+*/
+.TablePager_nav a { text-decoration: none; }
+.TablePager { border-collapse: collapse; }
+.TablePager, .TablePager td, .TablePager th { 
+    border: 0.15em solid #777777;
+    padding: 0 0.15em 0 0.15em;
+}
+.TablePager th { background-color: #eeeeff }
+.TablePager td { background-color: #ffffff }
+.TablePager tr:hover td { background-color: #eeeeff }
+
+.imagelist td, .imagelist th { white-space: nowrap }
+.imagelist .TablePager_col_links { background-color: #eeeeff }
+.imagelist .TablePager_col_img_description { white-space: normal }
+.imagelist th.TablePager_sort { background-color: #ccccff }
+
+.templatesUsed { margin-top: 1.5em; }
+
+.mw-summary-preview {
+    margin: 0.1em 0;
+}
+#toolbar { clear: both; }
+
+.mw-plusminus-null { color: #aaa; }
+

Added: p5ee/trunk/app-user/lib/App/Widget/CreateAccountPane.pm
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/lib/App/Widget/CreateAccountPane.pm     Thu May 24 
14:25:48 2007
@@ -0,0 +1,67 @@
+######################################################################
+# $Id: CreateAccountPane.pm,v 1.3 2007/05/15 20:42:57 sbobal Exp $
+######################################################################
+
+package App::Widget::CreateAccountPane;
+$VERSION = do { my @r=(q$Revision: 1.3 $=~/\d+/g); sprintf 
"%d."."%02d"x$#r,@r};
+
+use App;
+use App::Widget::Template;
+
[EMAIL PROTECTED] = ( "App::Widget::Template" );
+
+use strict;
+
+=head1 NAME
+
+App::Widget::CreateAccountPane - the create account pane
+
+=head1 SYNOPSIS
+
+   use App::Widget::CreateAccountPane;
+
+   ...
+
+=cut
+
+#sub _init {
+#    &App::sub_entry if ($App::trace);
+#    my ($self) = @_;
+#    my $context = $self->{context};
+#    # do something
+#    &App::sub_exit() if ($App::trace);
+#}
+
+sub handle_event {
+    &App::sub_entry if ($App::trace);
+    my ($self, $wname, $event, @args) = @_;
+
+    my $name = $self->{name};
+    my $handled = 0;
+
+    if ($wname eq "${name}-login") {
+        # do something
+        $handled = 1;
+    }
+    elsif ($wname eq "${name}-create") {
+        # do something
+        $handled = 1;
+    }
+    if (!$handled) {
+        $handled = $self->SUPER::handle_event($wname, $event, @args);
+    }
+    &App::sub_exit($handled) if ($App::trace);
+    return($handled);
+}
+
+#sub html {
+#    &App::sub_entry if ($App::trace);
+#    my ($self) = @_;
+#    my $context = $self->{context};
+#    my $options = $context->options();
+#    my $html = "...";
+#    &App::sub_exit("<html...>") if ($App::trace);
+#    return($html);
+#}
+
+1;

Added: p5ee/trunk/app-user/lib/App/Widget/LoginPane.pm
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/lib/App/Widget/LoginPane.pm     Thu May 24 14:25:48 2007
@@ -0,0 +1,67 @@
+######################################################################
+# $Id: LoginPane.pm,v 1.3 2007/05/15 20:42:57 sbobal Exp $
+######################################################################
+
+package App::Widget::LoginPane;
+$VERSION = do { my @r=(q$Revision: 1.3 $=~/\d+/g); sprintf 
"%d."."%02d"x$#r,@r};
+
+use App;
+use App::Widget::Template;
+
[EMAIL PROTECTED] = ( "App::Widget::Template" );
+
+use strict;
+
+=head1 NAME
+
+App::Widget::LoginPane - the login pane
+
+=head1 SYNOPSIS
+
+   use App::Widget::LoginPane;
+
+   ...
+
+=cut
+
+#sub _init {
+#    &App::sub_entry if ($App::trace);
+#    my ($self) = @_;
+#    my $context = $self->{context};
+#    # do something
+#    &App::sub_exit() if ($App::trace);
+#}
+
+sub handle_event {
+    &App::sub_entry if ($App::trace);
+    my ($self, $wname, $event, @args) = @_;
+
+    my $name = $self->{name};
+    my $handled = 0;
+
+    if ($wname eq "${name}-login") {
+        # do something
+        $handled = 1;
+    }
+    elsif ($wname eq "${name}-create") {
+        # do something
+        $handled = 1;
+    }
+    if (!$handled) {
+        $handled = $self->SUPER::handle_event($wname, $event, @args);
+    }
+    &App::sub_exit($handled) if ($App::trace);
+    return($handled);
+}
+
+#sub html {
+#    &App::sub_entry if ($App::trace);
+#    my ($self) = @_;
+#    my $context = $self->{context};
+#    my $options = $context->options();
+#    my $html = "...";
+#    &App::sub_exit("<html...>") if ($App::trace);
+#    return($html);
+#}
+
+1;

Added: p5ee/trunk/app-user/lib/App/Widget/UpdateAccountPane.pm
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/lib/App/Widget/UpdateAccountPane.pm     Thu May 24 
14:25:48 2007
@@ -0,0 +1,63 @@
+######################################################################
+# $Id: UpdateAccountPane.pm,v 1.3 2007/05/15 20:42:57 sbobal Exp $
+######################################################################
+
+package App::Widget::UpdateAccountPane;
+$VERSION = do { my @r=(q$Revision: 1.3 $=~/\d+/g); sprintf 
"%d."."%02d"x$#r,@r};
+
+use App;
+use App::Widget::Template;
+
[EMAIL PROTECTED] = ( "App::Widget::Template" );
+
+use strict;
+
+=head1 NAME
+
+App::Widget::UpdateAccountPane - the update account pane
+
+=head1 SYNOPSIS
+
+   use App::Widget::UpdateAccountPane;
+
+   ...
+
+=cut
+
+#sub _init {
+#    &App::sub_entry if ($App::trace);
+#    my ($self) = @_;
+#    my $context = $self->{context};
+#    # do something
+#    &App::sub_exit() if ($App::trace);
+#}
+
+sub handle_event {
+    &App::sub_entry if ($App::trace);
+    my ($self, $wname, $event, @args) = @_;
+
+    my $name = $self->{name};
+    my $handled = 0;
+
+    if ($wname eq "${name}-update") {
+        # do something
+        $handled = 1;
+    }
+    if (!$handled) {
+        $handled = $self->SUPER::handle_event($wname, $event, @args);
+    }
+    &App::sub_exit($handled) if ($App::trace);
+    return($handled);
+}
+
+#sub html {
+#    &App::sub_entry if ($App::trace);
+#    my ($self) = @_;
+#    my $context = $self->{context};
+#    my $options = $context->options();
+#    my $html = "...";
+#    &App::sub_exit("<html...>") if ($App::trace);
+#    return($html);
+#}
+
+1;

Added: p5ee/trunk/app-user/templates/user-create.html
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/templates/user-create.html      Thu May 24 14:25:48 2007
@@ -0,0 +1,59 @@
+  <div id="globalWrapper">
+      <div id="content">
+        <a name="top" id="top"></a>
+        <div id="bodyContent">
+          <div id="userloginForm">
+            <h2>Create account</h2>
+            <p id="userloginlink">
+              Already have an account? [%+user-create-login%]
+            </p>
+            <table>
+              <tr>
+                <td align='right'><label>Username:</label></td>
+                <td align='left'>
+                  [%+user-create-username%]
+                </td>
+              </tr>
+              <tr>
+                <td align='right'><label>Password:</label></td>
+                <td align='left'>
+                  [%+user-create-password%]
+                </td>
+              </tr>
+              <tr>
+                <td align='right'><label>Retype password:</label></td>
+                <td align='left'>
+                  [%+user-create-password2%]
+                </td>
+              </tr>
+              <tr>
+                <td align='right'><label>E-mail:</label></td>
+                <td align='left'>
+                  [%+user-create-email%]
+                </td>
+              </tr>
+              <tr>
+                <td align='right'><label>Real Name:</label></td>
+                <td align='left'>
+                  [%+user-create-real_name%]
+                </td>
+              </tr>
+              <tr>
+                <td></td>
+                <td align='left'>
+                  [%+user-create-remember%] <label>Remember my login on this 
computer</label>
+                </td>
+  
+              </tr>
+              <tr>
+                <td></td>
+                <td align='left' style="white-space:nowrap">
+                  [%+user-create-create%]
+                </td>
+              </tr>
+            </table>
+          </div>
+          <div id="loginend"></div>
+        </div>
+      </div>
+  </div>

Added: p5ee/trunk/app-user/templates/user-login.html
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/templates/user-login.html       Thu May 24 14:25:48 2007
@@ -0,0 +1,42 @@
+  <div id="globalWrapper">
+      <div id="content">
+        <a name="top" id="top"></a>
+        <div id="bodyContent">
+          <div id="userloginForm">
+            <h2>Log in</h2>
+            <p id="userloginlink">
+              Don't have a login? [%+user-login-create%]
+            </p>
+            <div id="userloginprompt"><p>You must have cookies enabled to log 
in.</p></div>
+            <table>
+              <tr>
+                <td align='right'><label>Username:</label></td>
+                <td align='left'>
+                  [%+user-login-username%]
+                </td>
+              </tr>
+              <tr>
+                <td align='right'><label>Password:</label></td>
+                <td align='left'>
+                  [%+user-login-password%]
+                </td>
+              </tr>
+              <tr>
+                <td></td>
+                <td align='left'>
+                  [%+user-login-remember%] <label>Remember my login on this 
computer</label>
+                </td>
+  
+              </tr>
+              <tr>
+                <td></td>
+                <td align='left' style="white-space:nowrap">
+                  [%+user-login-login%]&nbsp;[%+user-login-email%]
+                </td>
+              </tr>
+            </table>
+          </div>
+          <div id="loginend"></div>
+        </div>
+      </div>
+  </div>

Added: p5ee/trunk/app-user/templates/user-top.html
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/templates/user-top.html Thu May 24 14:25:48 2007
@@ -0,0 +1,2 @@
+<link type="text/css" href="{html_url_dir}/theme/{theme}/{app}/theme.css" 
rel="stylesheet">
+<img src="{html_url_dir}/theme/{theme}/{app}/rubicon_logo_155x57.png">

Added: p5ee/trunk/app-user/templates/user-update.html
==============================================================================
--- (empty file)
+++ p5ee/trunk/app-user/templates/user-update.html      Thu May 24 14:25:48 2007
@@ -0,0 +1,43 @@
+  <div id="globalWrapper">
+      <div id="content">
+        <a name="top" id="top"></a>
+        <div id="bodyContent">
+          <div id="userloginForm">
+            <h2>Update account</h2>
+            <table>
+              <tr>
+                <td align='right'><label>Password:</label></td>
+                <td align='left'>
+                  [%+user-update-password%]
+                </td>
+              </tr>
+              <tr>
+                <td align='right'><label>Retype password:</label></td>
+                <td align='left'>
+                  [%+user-update-password2%]
+                </td>
+              </tr>
+              <tr>
+                <td align='right'><label>E-mail:</label></td>
+                <td align='left'>
+                  [%+user-update-email%]
+                </td>
+              </tr>
+              <tr>
+                <td align='right'><label>Real Name:</label></td>
+                <td align='left'>
+                  [%+user-update-real_name%]
+                </td>
+              </tr>
+              <tr>
+                <td></td>
+                <td align='left' style="white-space:nowrap">
+                  [%+user-update-update%]
+                </td>
+              </tr>
+            </table>
+          </div>
+          <div id="loginend"></div>
+        </div>
+      </div>
+  </div>

Reply via email to