summaryrefslogtreecommitdiff
path: root/modules/user
diff options
context:
space:
mode:
Diffstat (limited to 'modules/user')
-rw-r--r--modules/user/helpers/user_block.php5
-rw-r--r--modules/user/js/user.js38
2 files changed, 42 insertions, 1 deletions
diff --git a/modules/user/helpers/user_block.php b/modules/user/helpers/user_block.php
index 225ff82e..5146cc9f 100644
--- a/modules/user/helpers/user_block.php
+++ b/modules/user/helpers/user_block.php
@@ -19,9 +19,12 @@
*/
class user_block_Core {
public static function head($theme) {
+ $url = url::file("modules/user/js/user.js");
+ $script[] = "<script src=\"$url\" type=\"text/javascript\"></script>";
$user = Session::instance()->get('user', null);
$url = url::file("lib/jquery.jeditable.js");
- return empty($user) ? "" : "<script src=\"$url\" type=\"text/javascript\"></script>";
+ $script[] = empty($user) ? "" : "<script src=\"$url\" type=\"text/javascript\"></script>";
+ return implode("\n", $script);
}
public static function header_top($theme) {
diff --git a/modules/user/js/user.js b/modules/user/js/user.js
new file mode 100644
index 00000000..8ee543bf
--- /dev/null
+++ b/modules/user/js/user.js
@@ -0,0 +1,38 @@
+/**
+ * @todo preventDefault() not working in IE 6 and 7
+ * @todo Close link should be reusable
+ */
+
+$("document").ready(function() {
+ $("#gLoginLink").click(function(event){
+ event.preventDefault();
+ var url = $("#gLoginLink a").attr("href");
+ $.get(url, function(data) {
+ $('#gLoginLink').hide();
+ $("#gLoginMenu").append('<li><a href="#">X</a></li>');
+ $("#gLoginMenu li:last").addClass("gClose").show();
+ $("#gLoginMenu .gClose a").click(function(){
+ $("#gLoginForm").remove();
+ $("#gLoginMenu .gClose").remove();
+ $("#gLoginLink").show();
+ $("input#gUsername").val("");
+ $("input#gPassword").val("");
+ });
+ $("#gLoginFormContainer").html(data).hide().fadeIn();
+ ajaxify_login_form();
+ });
+ });
+});
+
+function ajaxify_login_form() {
+ $("form#gLoginForm").ajaxForm({
+ target: "#gLoginFormContainer",
+ success: function(responseText, statusText) {
+ if (!responseText) {
+ window.location.reload();
+ } else {
+ ajaxify_login_form();
+ }
+ }
+ });
+}