summaryrefslogtreecommitdiffstats
path: root/extensions/EditComments/web/js/editcomments.js
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/EditComments/web/js/editcomments.js')
-rw-r--r--extensions/EditComments/web/js/editcomments.js90
1 files changed, 90 insertions, 0 deletions
diff --git a/extensions/EditComments/web/js/editcomments.js b/extensions/EditComments/web/js/editcomments.js
new file mode 100644
index 000000000..91763fa62
--- /dev/null
+++ b/extensions/EditComments/web/js/editcomments.js
@@ -0,0 +1,90 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this file,
+ * You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This Source Code Form is "Incompatible With Secondary Licenses", as
+ * defined by the Mozilla Public License, v. 2.0.
+ */
+
+function editComment(comment_count, comment_id) {
+ if (!comment_count || !comment_id) return;
+
+ var edit_comment_textarea = YAHOO.util.Dom.get('edit_comment_textarea_' + comment_count);
+ if (!YAHOO.util.Dom.hasClass(edit_comment_textarea, 'bz_default_hidden')) {
+ hideEditCommentField(comment_count);
+ return;
+ }
+
+ // Show the loading indicator
+ toggleCommentLoading(comment_count);
+
+ YAHOO.util.Connect.setDefaultPostHeader('application/json', true);
+ YAHOO.util.Connect.asyncRequest(
+ 'POST',
+ 'jsonrpc.cgi',
+ {
+ success: function(res) {
+ // Hide the loading indicator
+ toggleCommentLoading(comment_count);
+ data = YAHOO.lang.JSON.parse(res.responseText);
+ if (data.error) {
+ alert("Get [% comment failed: " + data.error.message);
+ }
+ else if (data.result.comments[comment_id]) {
+ var comment_text = data.result.comments[comment_id];
+ showEditCommentField(comment_count, comment_text);
+ }
+ },
+ failure: function(res) {
+ // Hide the loading indicator
+ toggleCommentLoading(comment_count);
+ if (res.responseText) {
+ alert("Get comment failed: " + res.responseText);
+ }
+ }
+ },
+ YAHOO.lang.JSON.stringify({
+ version: "1.1",
+ method: "EditComments.comments",
+ id: comment_id,
+ params: { comment_ids: [ comment_id ] }
+ })
+ );
+}
+
+function hideEditCommentField(comment_count) {
+ var comment_text_pre = YAHOO.util.Dom.get('comment_text_' + comment_count);
+ YAHOO.util.Dom.removeClass(comment_text_pre, 'bz_default_hidden');
+
+ var edit_comment_textarea = YAHOO.util.Dom.get('edit_comment_textarea_' + comment_count);
+ YAHOO.util.Dom.addClass(edit_comment_textarea, 'bz_default_hidden');
+ edit_comment_textarea.disabled = true;
+
+ YAHOO.util.Dom.get("edit_comment_edit_link_" + comment_count).innerHTML = "edit";
+}
+
+function showEditCommentField(comment_count, comment_text) {
+ var comment_text_pre = YAHOO.util.Dom.get('comment_text_' + comment_count);
+ YAHOO.util.Dom.addClass(comment_text_pre, 'bz_default_hidden');
+
+ var edit_comment_textarea = YAHOO.util.Dom.get('edit_comment_textarea_' + comment_count);
+ YAHOO.util.Dom.removeClass(edit_comment_textarea, 'bz_default_hidden');
+ edit_comment_textarea.disabled = false;
+ edit_comment_textarea.value = comment_text;
+
+ YAHOO.util.Dom.get("edit_comment_edit_link_" + comment_count).innerHTML = "unedit";
+}
+
+function toggleCommentLoading(comment_count, hide) {
+ var comment_div = 'comment_text_' + comment_count;
+ var loading_div = 'edit_comment_loading_' + comment_count;
+ if (YAHOO.util.Dom.hasClass(loading_div, 'bz_default_hidden')) {
+ YAHOO.util.Dom.addClass(comment_div, 'bz_default_hidden');
+ YAHOO.util.Dom.removeClass(loading_div, 'bz_default_hidden');
+ }
+ else {
+ YAHOO.util.Dom.removeClass(comment_div, 'bz_default_hidden');
+ YAHOO.util.Dom.addClass(loading_div, 'bz_default_hidden');
+ }
+}
+