aboutsummaryrefslogtreecommitdiff
path: root/mod/thewire/views/default/js
diff options
context:
space:
mode:
Diffstat (limited to 'mod/thewire/views/default/js')
-rw-r--r--mod/thewire/views/default/js/thewire.php86
1 files changed, 86 insertions, 0 deletions
diff --git a/mod/thewire/views/default/js/thewire.php b/mod/thewire/views/default/js/thewire.php
new file mode 100644
index 000000000..1eda90bee
--- /dev/null
+++ b/mod/thewire/views/default/js/thewire.php
@@ -0,0 +1,86 @@
+<?php
+/**
+ * The wire's JavaScript
+ */
+
+$site_url = elgg_get_site_url();
+
+?>
+
+elgg.provide('elgg.thewire');
+
+elgg.thewire.init = function() {
+ $("#thewire-textarea").live('keydown', function() {
+ elgg.thewire.textCounter(this, $("#thewire-characters-remaining span"), 140);
+ });
+ $("#thewire-textarea").live('keyup', function() {
+ elgg.thewire.textCounter(this, $("#thewire-characters-remaining span"), 140);
+ });
+
+ $(".thewire-previous").live('click', elgg.thewire.viewPrevious);
+}
+
+/**
+ * Update the number of characters left with every keystroke
+ *
+ * @param {Object} textarea
+ * @param {Object} status
+ * @param {integer} limit
+ * @return void
+ */
+elgg.thewire.textCounter = function(textarea, status, limit) {
+
+ var remaining_chars = limit - textarea.value.length;
+ status.html(remaining_chars);
+
+ if (remaining_chars < 0) {
+ status.parent().css("color", "#D40D12");
+ $("#thewire-submit-button").attr('disabled', 'disabled');
+ $("#thewire-submit-button").addClass('elgg-state-disabled');
+ } else {
+ status.parent().css("color", "");
+ $("#thewire-submit-button").removeAttr('disabled', 'disabled');
+ $("#thewire-submit-button").removeClass('elgg-state-disabled');
+ }
+}
+
+/**
+ * Display the previous wire post
+ *
+ * Makes Ajax call to load the html and handles changing the previous link
+ *
+ * @param {Object} event
+ * @return void
+ */
+elgg.thewire.viewPrevious = function(event) {
+ var $link = $(this);
+ var postGuid = $link.attr("href").split("/").pop();
+ var $previousDiv = $("#thewire-previous-" + postGuid);
+
+ if ($link.html() == "<?php echo elgg_echo('thewire:hide'); ?>") {
+ $link.html("<?php echo elgg_echo('thewire:previous'); ?>");
+ $link.attr("title", "<?php echo elgg_echo('thewire:previous:help'); ?>");
+ $previousDiv.slideUp(400);
+ } else {
+ $link.html("<?php echo elgg_echo('thewire:hide'); ?>");
+ $link.attr("title", "<?php echo elgg_echo('thewire:hide:help'); ?>");
+
+ $.ajax({type: "GET",
+ url: "<?php echo $site_url . "ajax/view/thewire/previous"; ?>",
+ dataType: "html",
+ cache: false,
+ data: {guid: postGuid},
+ success: function(htmlData) {
+ if (htmlData.length > 0) {
+ $previousDiv.html(htmlData);
+ $previousDiv.slideDown(600);
+ }
+ }
+ });
+
+ }
+
+ event.preventDefault();
+}
+
+elgg.register_hook_handler('init', 'system', elgg.thewire.init); \ No newline at end of file