summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorTim Almdal <tnalmdal@shaw.ca>2008-11-27 06:14:32 +0000
committerTim Almdal <tnalmdal@shaw.ca>2008-11-27 06:14:32 +0000
commit27e64f1dc6cc43b40592337eed360bdf7e3d7a59 (patch)
treef127c76bff448c546a30753b466cf909bb42ca7d /modules
parent7e5f59bcb7682896657dd11a530dc25412ef3cdc (diff)
Move javascript from default theme to appropriate modules
Diffstat (limited to 'modules')
-rw-r--r--modules/comment/helpers/comment_block.php5
-rw-r--r--modules/comment/js/comment.js19
-rw-r--r--modules/user/helpers/user_block.php5
-rw-r--r--modules/user/js/user.js38
4 files changed, 66 insertions, 1 deletions
diff --git a/modules/comment/helpers/comment_block.php b/modules/comment/helpers/comment_block.php
index 58a1a416..ee05a383 100644
--- a/modules/comment/helpers/comment_block.php
+++ b/modules/comment/helpers/comment_block.php
@@ -19,6 +19,11 @@
*/
class comment_block_Core {
+ public static function head($theme) {
+ $url = url::file("modules/comment/js/comment.js");
+ return "<script src=\"$url\" type=\"text/javascript\"></script>\n";
+ }
+
public static function photo_bottom($theme) {
return comment::block($theme, true);
}
diff --git a/modules/comment/js/comment.js b/modules/comment/js/comment.js
new file mode 100644
index 00000000..259b4826
--- /dev/null
+++ b/modules/comment/js/comment.js
@@ -0,0 +1,19 @@
+$("document").ready(function() {
+ ajaxify_comment_form();
+});
+
+function ajaxify_comment_form() {
+ $("#gComments form").ajaxForm({
+ complete: function(xhr, statusText) {
+ $("#gComments form").replaceWith(xhr.responseText);
+ if (xhr.status == 201) {
+ $.get(xhr.getResponseHeader("Location"), function(data, textStatus) {
+ $("#gComments .gBlockContent ul:first").append("<li>"+data+"</li>");
+ $("#gComments .gBlockContent ul:first li:last").hide().slideDown();
+ });
+ $("#gComments form").clearForm();
+ }
+ ajaxify_comment_form();
+ }
+ });
+}
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();
+ }
+ }
+ });
+}