sphinx_django/static/#comments.js#
author amit
Wed, 27 Oct 2010 13:59:11 +0530
changeset 3 de4a2ed2f34b
permissions -rwxr-xr-x
Adding readme files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     1
/*
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     2
 * Java Script/JQuery glue for server-side Python code and the comments/fixes
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     3
 * stuff which is being served along with the documentation.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     4
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     5
 * :copyright: Copyright 2007-2009 by the Sphinx team, see AUTHORS.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     6
 * :license: BSD, see LICENSE for details.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     7
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     8
 * Below is a short description of the main functions used to make the tool
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
     9
 * work. Internal functions are not listed here.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    10
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    11
 **  
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    12
 *** checking/downloading/printing/adding comments and fixes ****************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    13
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    14
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    15
 * load_comments(id) -> check if database file with comments for paragraph 'id'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    16
 *                      exists on the server; if yes, invoke comments_found()
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    17
 *                      function; if not, invoke no_comments() function.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    18
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    19
 * load_fixes(id) -> check if database file with fixes for paragraph 'id'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    20
 *                   exists on the server; if yes, invoke fixes_found()
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    21
 *                   function; if not, invoke no_fixes() function.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    22
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    23
 * no_comments(id) -> insert a link ('No comments') to the post form after
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    24
 *                    the paragraph 'id'.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    25
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    26
 * no_fixes(id) -> insert a link ('No fixes') to the post form after the
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    27
 *                 'No comments' string.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    28
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    29
 * comments_found(id) -> download the comments database file for paragraph 'id'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    30
 *                       and print it under the paragraph.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    31
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    32
 * fixes_found(id) -> download the fixes database file for paragraph 'id'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    33
 *                    and print it under the paragraph.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    34
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    35
 * print_comments(id, data) -> print comments collected in an array 'data'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    36
 *                             under the paragraph 'id'.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    37
 *                             'data' is an array of objects; every object
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    38
 *                             has properties like 'name', 'score', 'comment'.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    39
 *                             This function also prints a link at the end
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    40
 *                             of paragraph with a number of comments hidden
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    41
 *                             (i.e. "3 Comments").
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    42
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    43
 * print_fixes(id, data) -> print fixes collected in an array 'data' under
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    44
 *                          the paragraph 'id'.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    45
 *                          The description for print_comments() applies.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    46
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    47
 * add_new_comment(id) -> ajaxify a comment post form for paragraph 'id'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    48
 *                        and reload comments (with load_comments() function).
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    49
 *                        This function also validates the form and resets
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    50
 *                        it on successful submit.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    51
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    52
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    53
 *** displaying/hiding areas *************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    54
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    55
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    56
 * show_hide_comments(id) -> hide fixes area, show comments area and make sure
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    57
 *                           that the main comments/fixes area is shown
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    58
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    59
 * show_hide_fixes(id) -> hide comments area, show fixes area and make sure
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    60
 *                        that the main comments/fixes area is shown
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    61
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    62
 * show_hide_submitFixFields(id) -> show/hide additional fields in the post
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    63
 *                                  form for fixes view (when 'I would like
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    64
 *                                  to submit a patch' checkbox is 'true')
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    65
 *                                  and fill them with data if needed
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    66
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    67
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    68
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    69
 *** rating comments/fixes ***************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    70
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    71
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    72
 * comments_up_down(id, comment_no, up_down, db)
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    73
 *                   -> send a GET request to the server with three parameters:
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    74
 *                       - id: paragraph id,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    75
 *                       - comment_no: a number of a comment to score,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    76
 *                       - up_down: two values possible: 'up' or 'down'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    77
 *                                  depending on what kind of action should
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    78
 *                                  be taken ('up' means score+=1, and down
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    79
 *                                  means score-=1).
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    80
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    81
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    82
 *** sorting comments/fixes ************************************************ 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    83
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    84
 * 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    85
 * sort_comments(id, by, db) -> sort comments for paragraph 'id' by 'by' argument
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    86
 *                          (two values for 'by' are possible at the moment:
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    87
 *                          'score' and 'date'). The sorting order changes
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    88
 *                          automatically from increasing to decreasing with
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    89
 *                          every sort.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    90
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    91
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    92
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    93
 *** threading ************************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    94
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    95
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    96
 * new_thread(id) -> make a particular comment a new thread before submitting
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    97
 *                   it
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    98
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
    99
 * reply_to(id, comment_no) -> make a comment a reply to comment 'comment_no'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   100
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   101
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   102
 *** developer's actions ***************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   103
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   104
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   105
 * delete_comment(db, id, comment_no) -> delete entry from database 'db'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   106
 *                                       located in 'id' file under
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   107
 *                                       'comment_no' index
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   108
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   109
 * commit_fix(node, id, fix_no) -> commit a fix located in 'id' file under
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   110
 *                                 'fix_no' index to the repository
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   111
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   112
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   113
 *** general-use functions ************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   114
 **
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   115
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   116
 * empty_comments(id) -> empty the comments area
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   117
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   118
 * empty_fixes(id) -> empty the fixes area
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   119
 *
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   120
 * is_developer() -> returns true when developer rights should be granted
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   121
 *                   and false when the rights should not be granted.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   122
 *                   At jQuery level it's only about displaying some
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   123
 *                   additional/developer-only-options. Real authorization
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   124
 *                   is going on on webapp (appserver.py) level.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   125
 */
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   126
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   127
comments_path = "/comments/";
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   128
fixes_path = "/fixes/";
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   129
_db = undefined;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   130
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   131
// *** checking/downloading/printing/adding comments ************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   132
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   133
function load_generic(what, id, error_func, success_func) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   134
   // if the div was filled with the comments before, empty it before appending
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   135
   if(_db == 'comments') {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   136
      empty_comments(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   137
   } else {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   138
      empty_fixes(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   139
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   140
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   141
   // 'what' -> 'comments_path' or 'fixes_path' variables;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   142
   var c_path = location.protocol + "//" + location.host + what + id;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   143
   $.ajax({ url: c_path,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   144
            type: 'HEAD',
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   145
            error: function() { error_func(id) },
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   146
            success: function() { success_func(id)}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   147
         });
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   148
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   149
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   150
function load_comments(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   151
   return load_generic(comments_path, id, no_comments, comments_found)
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   152
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   153
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   154
function load_fixes(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   155
   return load_generic(fixes_path, id, no_fixes, fixes_found)
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   156
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   157
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   158
function get_load_cf(db) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   159
   if(db == 'comments' || db == comments_path) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   160
      return load_comments;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   161
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   162
   return load_fixes;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   163
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   164
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   165
//////////////////////
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   166
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   167
function not_found_generic(what, id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   168
   // 'what' -> 'comment' or 'fix' strings
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   169
   plural = what=='comment'?'comments':'fixes';
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   170
   $("a[name*=" + what + "_" + id + "]").replaceWith(
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   171
         '<a name="' + what + '_' + id + '" href="#' + id + '" '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   172
          + 'onclick="show_hide_' + plural + '(\'' + id + '\')" '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   173
          + 'id="' + id + '">No ' + plural + '</a>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   174
          + '<a name="' + id + '"></a>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   175
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   176
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   177
function no_comments(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   178
   not_found_generic('comment', id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   179
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   180
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   181
function no_fixes(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   182
   not_found_generic('fix', id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   183
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   184
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   185
//////////////////////////////
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   186
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   187
function found_generic(what, id, print_func) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   188
   var c_path = location.protocol + "//" + location.host + what + id + "?id=" + id;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   189
   $.getJSON(c_path, function(data) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   190
      print_func(id, data);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   191
   });
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   192
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   193
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   194
function comments_found(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   195
   found_generic(comments_path, id, print_comments);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   196
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   197
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   198
function fixes_found(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   199
   found_generic(fixes_path, id, print_fixes);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   200
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   201
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   202
///////////////////////////////
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   203
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   204
function print_generic(what, id, data) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   205
   var c_flag = (what == 'comments') ? true : false;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   206
   var singular = (what == 'comments') ? 'comment' : 'fix';
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   207
   var isdev = is_developer();
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   208
   var node = $('div[class=submitFixFields_' + id + ']').attr('value');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   209
   
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   210
   if(what == 'comments') {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   211
      empty_comments(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   212
   } else {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   213
      empty_fixes(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   214
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   215
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   216
   // A 'factory' function which generates '+' and '-' buttons for every comment.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   217
   //       'what'  is a kind of database (db for comments or for fixes)
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   218
   //         'id'  is a paragraph id.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   219
   // 'comment_no'  is a place of a comment in the list of comments for given
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   220
   //               paragraph.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   221
   //    'up_down'  is passed to POST method. It should be 'up' or 'down'.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   222
   //       'sign'  is what's displayed on the button, by default it's '+' or '-'.
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   223
   function rate_comment_up_down_button(what, id, comment_no, up_down, sign) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   224
      return ' <a href="#' + id + '" onclick="comments_up_down(\'' + id + '\', \'' + comment_no + '\', \'' + up_down + '\', \'' + what + '\')"><b>' + sign + '</b></a> '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   225
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   226
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   227
   // in fixes view - show proposed diff
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   228
   function proposed_fix(c_flag, paragraph) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   229
      if(!c_flag) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   230
         return   '<tr>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   231
                +   '<td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   232
                +     'Fix: ' + paragraph
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   233
                +   '</td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   234
                + '</tr>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   235
                +  "<tr><td>&nbsp;</td></tr>"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   236
      }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   237
      return '';
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   238
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   239
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   240
   // for every comment/fix generate a 'Reply' button
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   241
   function link_reply_to(id, comment_no) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   242
      return 'Comment no.: ' + data[i].comment_no
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   243
             + ' (<a href="#" onclick="reply_to(\'' + id + '\', \'' + comment_no + '\')">reply</a>).'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   244
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   245
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   246
   /* <developer's actions> */
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   247
   function delete_comment_button(db, id, comment_no) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   248
      return '<a href="#" onclick="delete_comment(\'' + db + '\', \'' + id +  '\', \'' + comment_no + '\')">delete</a>' 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   249
   } 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   250
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   251
   function commit_button(node, id, fix_no) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   252
      return '<a href="#" onclick="commit_fix(\'' + node + '\', \'' +  id + '\', \''
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   253
                  + fix_no + '\')">commit</a>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   254
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   255
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   256
   function developers_actions(what, id, data, i) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   257
       return  '<tr>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   258
             +  '<td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   259
             +    'Admin actions: '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   260
             +    delete_comment_button(what, id, data[i].comment_no)
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   261
             +    ', '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   262
             +    commit_button(node, id, data[i].comment_no)
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   263
             +    '.'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   264
             +  '</td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   265
             + '</tr>' 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   266
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   267
   /* </developer's actions> */
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   268
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   269
   // add the comments for paragraph
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   270
   for(i=0; i<data.length; i++) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   271
      // 'data[i]['date'] * 1000' to convert from milliseconds to seconds
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   272
      var commentDate = new Date(data[i]['date']*1000);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   273
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   274
      $('div[class*=' + what + '_for_' + id + ']').append(
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   275
           "<table name='" + id + "' width='" + data[i].width + "%' align=center "
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   276
         +  "style='background-color: #f1ffc5; border: solid 1px lightblue;'>"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   277
         +  "<tr>"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   278
         +    "<td>"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   279
         +     "Name: <a href='" + data[i].url + "'>" + data[i].name + "</a>. "
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   280
         +     "(" + get_date(commentDate) + ")"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   281
         +    '</td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   282
         +  '</tr>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   283
         +  '<tr>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   284
         +    '<td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   285
         +     ' Score: <span class="score"><b>' + data[i].score + '</b></span>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   286
         +     rate_comment_up_down_button(what, id, data[i].comment_no, 'up', '+') 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   287
         +     rate_comment_up_down_button(what, id, data[i].comment_no, 'down', '-')
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   288
         +     '. '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   289
         +     link_reply_to(id, data[i].comment_no)
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   290
         +    '</td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   291
         +  '</tr>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   292
         +  (isdev ? developers_actions(what, id, data, i) : '')
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   293
         +  '<tr><td>&nbsp;</td></tr>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   294
         +  proposed_fix(c_flag, data[i].paragraph_diff)
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   295
         +  "<tr>"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   296
         +    "<td>"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   297
         +      'Comment: ' + data[i].comment
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   298
         +    "</td>"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   299
         +  "</tr>"
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   300
         + "</table><br>");
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   301
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   302
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   303
   // add a button for showing/hiding the comments and post form
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   304
   $("a[name*=" + singular + "_" + id + "]").replaceWith(
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   305
                                   '<a name="' + singular + '_' + id
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   306
                                    + '" href="#' + id + '"' +
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   307
                                    'onclick="show_hide_' + what + '(\'' +
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   308
                                    id + '\')" '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   309
                                    + 'id="' + id + '">'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   310
                                    + data.length + ' ' + what + '</a>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   311
                                    + '<a name="' + id + '"></a>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   312
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   313
   if(what == 'comments') {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   314
      hide_fixes(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   315
      show_comments(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   316
   } else {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   317
      hide_comments(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   318
      show_fixes(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   319
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   320
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   321
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   322
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   323
function print_comments(id, data) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   324
   print_generic('comments', id, data);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   325
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   326
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   327
function print_fixes(id, data) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   328
   print_generic('fixes', id, data);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   329
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   330
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   331
/////////////////////////////
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   332
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   333
function add_new_comment(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   334
   function validate(formData, jqForm, options) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   335
      var form = jqForm[0];
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   336
      if(!form.name.value) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   337
         alert("Please provide your name");
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   338
         return false;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   339
      } else if(!form.comment.value) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   340
         alert("Please provide your comment");
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   341
         return false;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   342
      } else if(form.submitFix.checked && !form.licence.checked) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   343
         alert("You have to agree to publish your fix on our licence!");
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   344
         return false;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   345
      }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   346
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   347
      if(form.submitFix.checked) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   348
         _db = 'fixes';
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   349
      } else {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   350
         _db = 'comments';
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   351
      }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   352
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   353
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   354
   function form_reset() {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   355
      $('#commentForm_' + id).resetForm()
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   356
      new_thread(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   357
      if(_db == 'comments') {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   358
         load_comments(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   359
      } else {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   360
         load_fixes(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   361
      }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   362
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   363
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   364
   // bind 'commentForm' and provide a simple callback function 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   365
   $('#commentForm_' + id).ajaxForm({
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   366
                                       beforeSubmit: validate,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   367
                                       success: form_reset
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   368
                                    }); 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   369
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   370
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   371
//////////////////////////////
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   372
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   373
function hide_main_div(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   374
   $('div.x' + id).css('display', 'none');  
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   375
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   376
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   377
function show_main_div(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   378
   $('div.x' + id).css('display', 'block');  
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   379
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   380
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   381
function hide_submitFixFields(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   382
   $('div.submitFixFields_' + id).css('display', 'none');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   383
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   384
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   385
function show_submitFixFields(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   386
   node = $('div[class=submitFixFields_' + id + ']').attr('value');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   387
   fill_paragraph_from_repo(node, id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   388
   $('input[name=submitFix]').attr('checked', true);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   389
   $('div.submitFixFields_' + id).css('display', 'block'); 
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   390
   _db = 'fixes';
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   391
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   392
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   393
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   394
function hide_comments(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   395
   $('input[name=submitFix]').attr('checked', false);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   396
   $('div.comments_for_' + id).css('display', 'none');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   397
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   398
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   399
function hide_fixes(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   400
   $('div.fixes_for_' + id).css('display', 'none');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   401
   hide_submitFixFields(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   402
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   403
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   404
function show_comments(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   405
   $('input[name=submitFix]').attr('checked', false);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   406
   $('div.comments_for_' + id).css('display', 'block');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   407
   _db = 'comments';
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   408
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   409
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   410
function show_fixes(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   411
   $('div.fixes_for_' + id).css('display', 'block');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   412
   show_submitFixFields(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   413
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   414
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   415
function mainDivIsHidden(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   416
   return $('div.x' + id).is(':hidden');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   417
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   418
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   419
function show_menu_hide(what, id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   420
   function sort_comments_by_button(what, id, by) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   421
      return '<a href="#" onclick="sort_comments(\'' + id + '\', \'' + by + '\', \'' + what + '\')">' + by + '</a>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   422
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   423
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   424
   sort_hide_menu = '<table style="background: #d9fff0; border: #008f57 1px solid;" width="100%"><tr><td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   425
         + '<a name="hide_main_div_'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   426
         + id
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   427
         + '" href="#" onclick="hide_main_div(\''
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   428
         + id
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   429
         +'\')">Hide</a>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   430
         + '</td><td>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   431
         +     ' Sort by: '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   432
         +     sort_comments_by_button(what, id, 'date')
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   433
         +     ', '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   434
         +     sort_comments_by_button(what, id, 'score')
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   435
         +     ', '
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   436
         +     sort_comments_by_button(what, id, 'thread')
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   437
         +   '.'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   438
         + '</td></tr></table><br>'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   439
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   440
   $('div[class=hide_menu_' + id + ']').replaceWith(sort_hide_menu);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   441
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   442
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   443
function show_hide_comments(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   444
   show_menu_hide('comments', id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   445
   hide_fixes(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   446
   show_comments(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   447
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   448
   if(mainDivIsHidden(id)) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   449
      show_main_div(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   450
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   451
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   452
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   453
function show_hide_fixes(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   454
   show_menu_hide('fixes', id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   455
   hide_comments(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   456
   show_fixes(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   457
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   458
   if(mainDivIsHidden(id)) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   459
      show_main_div(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   460
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   461
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   462
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   463
function show_hide_submitFixFields(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   464
   // show or hide more form fields when 'i would like to submit a fix' is true
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   465
   var fixes_area_hidden =  $('div.submitFixFields_'+id).is(':hidden');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   466
   if(fixes_area_hidden) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   467
      show_submitFixFields(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   468
   } else {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   469
      hide_submitFixFields(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   470
   }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   471
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   472
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   473
function fill_paragraph_from_repo(node, id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   474
   var p_path = location.protocol + "//" + location.host
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   475
                + "/get_paragraph?node=" + node + "&id=" + id;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   476
   $.getJSON(p_path, function(data) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   477
        $('textarea[name=paragraph_' + id + ']').replaceWith(
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   478
           '<textarea name="paragraph_' + id + '" rows=10 cols=70>' + data + '</textarea>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   479
        $('textarea[name=paragraph_orig_' + id + ']').replaceWith(
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   480
           '<textarea name="paragraph_orig_' + id + '" style="display: none;">' + data + '</textarea>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   481
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   482
   });
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   483
   
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   484
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   485
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   486
// *** rating comments ******************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   487
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   488
function comments_up_down(id, comment_no, up_down, db) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   489
   // request for a 'score' change
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   490
   load_func = get_load_cf(db);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   491
   var rate_path = location.protocol + "//" + location.host + "/rate_comment";
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   492
   $.ajax({ url: rate_path,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   493
            type: 'GET',
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   494
            data: "id=" + id + "&comment_no=" + comment_no + "&up_down=" + up_down + "&db=" + db,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   495
            success: function() { load_func(id)}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   496
         });
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   497
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   498
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   499
// *** developer actions ****************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   500
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   501
function delete_comment(db, id, comment_no) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   502
   load_func = get_load_cf(db);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   503
   var rate_path = location.protocol + "//" + location.host + "/delete_comment";
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   504
   $.ajax({ url: rate_path,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   505
            type: 'GET',
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   506
            data: "id=" + id + "&cno=" + comment_no + "&db=" + db,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   507
            success: function() { load_func(id)}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   508
         });
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   509
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   510
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   511
function commit_fix(node, id, fix_no) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   512
   var c_path = location.protocol + "//" + location.host + "/commit_fix";
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   513
   $.ajax({ url: c_path,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   514
            type: 'GET',
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   515
            data: "node=" + node + "&id=" + id + "&fix_no=" + fix_no,
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   516
            success: function() { load_func(id)}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   517
         });
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   518
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   519
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   520
// *** sorting comments *****************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   521
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   522
function sort_comments(id, by, db) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   523
   // request for a sort of comments, display json data structure ('data')
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   524
   var c_path = location.protocol + "//" + location.host
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   525
                + "/sort_comments?id=" + id + "&by=" + by + "&db=" + db;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   526
   $.getJSON(c_path, function(data) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   527
         if(db=='comments') {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   528
            print_comments(id, data);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   529
         } else {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   530
            print_fixes(id, data);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   531
         }
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   532
   });
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   533
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   534
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   535
// *** general-use functions ***********************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   536
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   537
function empty_comments(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   538
   $('div[class=comments_for_' + id + ']').replaceWith('<div class="comments_for_' + id + '" style=\"display: none;\"> </div>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   539
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   540
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   541
function empty_fixes(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   542
   $('div[class=fixes_for_' + id + ']').replaceWith('<div class="fixes_for_' + id + '" style=\"display: none;\"> </div>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   543
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   544
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   545
function is_developer() {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   546
   var isdev_path = location.protocol + "//" + location.host + "/isdeveloper";
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   547
   http = new XMLHttpRequest();
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   548
   http.open('HEAD', isdev_path, false);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   549
   http.send(null);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   550
   return http.status!=404;
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   551
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   552
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   553
function get_date(d) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   554
   var month=["January", "February", "March", "April",
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   555
              "May", "June", "July", "August",
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   556
              "September", "October", "November", "December"];
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   557
   var t_date = d.getDate();      // Returns the day of the month
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   558
   var t_mon = d.getMonth();      // Returns the month as a digit
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   559
   var t_year = d.getFullYear();  // Returns 4 digit year
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   560
   var t_hour = d.getHours();     // Returns hours
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   561
   var t_min = d.getMinutes();    // Returns minutes
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   562
   var t_sec = d.getSeconds();    // Returns seocnds
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   563
   return t_hour + ':'
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   564
          + (t_min < 10 ? '0' : '') + t_min
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   565
          + ', ' + month[t_mon] + ' ' + t_date + ' ' + t_year
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   566
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   567
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   568
// *** threading **********************************************************
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   569
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   570
function reply_to(id, comment_no) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   571
   $('span[name=replyto_' + id + ']').replaceWith('<span name="replyto_' + id + '">' + comment_no + '</span>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   572
   $('textarea[name=replyto_' + id + ']').replaceWith('<textarea name="replyto_' + id + '" style="display: none;">' + comment_no + '</textarea>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   573
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   574
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   575
function new_thread(id) {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   576
   $('span[name=replyto_' + id + ']').replaceWith('<span name="replyto_' + id + '">new thread</span>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   577
   $('textarea[name=replyto_' + id + ']').replaceWith('<textarea name="replyto_' + id + '" style="display: none;"></textarea>');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   578
}
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   579
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   580
$(document).ready(function() {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   581
   // load the comments for each paragraph when the DOM is ready
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   582
   $("span[name*=paragraph]").each(function() {
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   583
      var id = $(this).attr('value');
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   584
      load_comments(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   585
      load_fixes(id);
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   586
   });
de4a2ed2f34b Adding readme files
amit
parents:
diff changeset
   587
});