summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2008-11-14 18:16:13 +0000
committerTim Almdal <tnalmdal@shaw.ca>2008-11-14 18:16:13 +0000
commitbd1ec2df1fbd0a642b7f981742558b2ee4f8b5ff (patch)
tree437882c2bb3c64b7bd303e3487aff855d239f7be
parentd7745f2ad871b8e5ac29428f74344dcb41f93b6d (diff)
The state of of the user registration functionality
-rw-r--r--modules/user/controllers/user.php23
-rw-r--r--modules/user/views/user.html.php34
-rw-r--r--themes/default/js/user.js28
-rw-r--r--themes/default/views/header.html.php21
4 files changed, 77 insertions, 29 deletions
diff --git a/modules/user/controllers/user.php b/modules/user/controllers/user.php
index b2160cda..41cb9da5 100644
--- a/modules/user/controllers/user.php
+++ b/modules/user/controllers/user.php
@@ -24,14 +24,21 @@ class User_Controller extends REST_Controller {
* @see Rest_Controller::_get($resource)
*/
public function _get($user) {
- $template = new View("user_registration.html");
-
- // @todo: this needs to be data-driven
- $theme = new Theme("default", $template);
-
- $template->set_global('user', Session::instance()->get('user', null));
-
- print $template->render();
+ $userView = new View("user.html");
+ if (empty($user)) {
+ // @todo remove this when rest_controller is changed to handle a post with no id
+ $user = ORM::factory("user");
+ $user->save();
+ // @todo remove this when rest_controller is changed to handle a post with no id ^
+ $userView->user_id = $user->id;
+ $userView->action = _("User Registration");
+ $userView->button_text = _("Register");
+ } else {
+ $userView->user_id = $user->id;
+ $userView->action = _("User Modify");
+ $userView->button_text = _("Modify");
+ }
+ print $userView;
}
/**
diff --git a/modules/user/views/user.html.php b/modules/user/views/user.html.php
new file mode 100644
index 00000000..614645e5
--- /dev/null
+++ b/modules/user/views/user.html.php
@@ -0,0 +1,34 @@
+<? defined("SYSPATH") or die("No direct script access."); ?>
+<form id="gUser" action="<?= url::site("user/dispatch/$user_id") ?>">
+ <fieldset>
+ <legend><?= $action ?></legend>
+ <ul>
+ <li>
+ <label for="gUsername"><?= _("Username") ?></label>
+ <input type="text" id="gUsername" />
+ <span id="gUsername_error" class="gStatus gError gDisplayNone"></span>
+ </li>
+ <li>
+ <label for="gPassword"><?= _("Password") ?></label>
+ <input type="password" id="gPassword" />
+ <span id="gPassword_error" class="gStatus gError gDisplayNone"></span>
+ </li>
+ <li>
+ <label for="gPassword_confirm"><?= _("Confirm Password") ?></label>
+ <input type="password" id="gPassword_confirm" />
+ </li>
+ <li>
+ <label for="gEmail"><?= _("Password") ?></label>
+ <input type="password" id="gEmail" />
+ <span id="gEmail_error" class="gStatus gError gDisplayNone"></span>
+ </li>
+ <li>
+ <label for="gEmail_confirm"><?= _("Confirm Email") ?></label>
+ <input type="password" id="gEmaild_confirm" />
+ </li>
+ <li>
+ <input type="submit" value="<?=$button_text?>" />
+ </li>
+ </ul>
+ </fieldset>
+</form>
diff --git a/themes/default/js/user.js b/themes/default/js/user.js
index 427523ee..b389a67e 100644
--- a/themes/default/js/user.js
+++ b/themes/default/js/user.js
@@ -9,25 +9,23 @@ $(document).ready(function() {
});
});
-function show_login() {
- $("#gLoginLink").css({display: "none"});
- $("#gLoginText").css({display: "inline"});
- $("#gLoginClose").css({display: "inline"});
- var url = $("#gLoginForm").attr("formSrc");
+function show_form(formName) {
+ $(formName + "Link").css({display: "none"});
+ $(formName + "Text").css({display: "inline"});
+ $(formName + "Close").css({display: "inline"});
+ var url = $(formName + "Form").attr("formSrc");
$.get(url, null, function(data, textStatus) {
- $("#gLoginForm").html(data);
- $("#gLoginForm").css({display: "block"});
+ $(formName + "Form").html(data);
+ $(formName + "Form").css({display: "block"});
});
}
-function close_login() {
- $("#gLoginLink").css({display: "inline"});
- $("#gLoginForm").css({display: "none"});
- $("#gLoginForm").html("");
- $("#gLoginText").css({display: "none"});
- $("#gLoginClose").css({display: "none"});
- $("input#gUsername").val("");
- $("input#gPassword").val("");
+function hide_form(formName) {
+ $(formName + "Link").css({display: "inline"});
+ $(formName + "Form").css({display: "none"});
+ $(formName + "Form").html("");
+ $(formName + "Text").css({display: "none"});
+ $(formName + "Close").css({display: "none"});
}
function process_login() {
diff --git a/themes/default/views/header.html.php b/themes/default/views/header.html.php
index 07b446e8..24dd9331 100644
--- a/themes/default/views/header.html.php
+++ b/themes/default/views/header.html.php
@@ -4,18 +4,27 @@
<div id="gLoginMenu">
<? if ($user): ?>
- <a href="<?= url::site("user/update")?>"><?= _("Modify Profile") ?></a> |
- <a href="<?= url::site("logout")?>" id="gLogoutLink"><?= _("Logout") ?></a>
+ <a href="<?= url::site("user/update")?>"><?= _("Modify Profile") ?></a>
+ | <a href="<?= url::site("logout")?>" id="gLogoutLink"><?= _("Logout") ?></a>
<? else: ?>
- <a href="#"><?=_("Recover password") ?></a> |
- <a href="<?= url::site("user/register")?>"><?= _("Register") ?></a> |
+ <a href="#"><?=_("Recover password") ?></a>
+ <span id="gUserLink" >
+ | <a href="javascript:show_form('#gUser')"><?= _("Register") ?></a>
+ </span>
+ <span id="gUserLinkText" class="gDisplayNone">
+ | <?= _("Register") ?>
+ </span>
<span id="gLoginLink">
- <a href="javascript:show_login()"><?= _("Login") ?></a>
+ | <a href="javascript:show_form('#gLogin')"><?= _("Login") ?></a>
+ </span>
+ <span id="gLoginText" class="gDisplayNone">
+ | <?= _("Login") ?>
</span>
<span id="gLoginClose" class="gDisplayNone">
- <?= _("Login") ?> | <a href="javascript:close_login()">X</a>
+ | <a href="javascript:hide_form('#gLogin')">X</a>
</span>
<? endif; ?>
+ <span id="gUserForm" class="gDisplayNone" formSrc="<?= url::site("user/dispatch/") ?>"></span>
<span id="gLoginForm" class="gDisplayNone" formSrc="<?= url::site("login") ?>"></span>
</div>
<ul id="gSiteMenu">