Commit fac4e3f2e5ea62ed4b92722f5eb1a650ccccf4b1

Authored by Riyad Preukschas
1 parent d9b15fc1

Reformat notes JS

Showing 1 changed file with 177 additions and 189 deletions   Show diff stats
app/assets/javascripts/notes.js
... ... @@ -9,85 +9,84 @@ var NoteList = {
9 9 loading_more_disabled: false,
10 10 reversed: false,
11 11  
12   - init:
13   - function(tid, tt, path) {
14   - this.notes_path = path + ".js";
15   - this.target_id = tid;
16   - this.target_type = tt;
17   - this.reversed = $("#notes-list").is(".reversed");
18   - this.target_params = "target_type=" + this.target_type + "&target_id=" + this.target_id;
19   -
20   - if(this.reversed) {
21   - var textarea = $(".note-text");
22   - $('.note_advanced_opts').hide();
23   - textarea.css("height", "40px");
24   - textarea.on("focus", function(){
25   - $(this).css("height", "80px");
26   - $('.note_advanced_opts').show();
27   - });
28   - }
  12 + init: function(tid, tt, path) {
  13 + this.notes_path = path + ".js";
  14 + this.target_id = tid;
  15 + this.target_type = tt;
  16 + this.reversed = $("#notes-list").is(".reversed");
  17 + this.target_params = "target_type=" + this.target_type + "&target_id=" + this.target_id;
  18 +
  19 + if(this.reversed) {
  20 + var textarea = $(".note-text");
  21 + $('.note_advanced_opts').hide();
  22 + textarea.css("height", "40px");
  23 + textarea.on("focus", function(){
  24 + $(this).css("height", "80px");
  25 + $('.note_advanced_opts').show();
  26 + });
  27 + }
29 28  
30   - // get initial set of notes
31   - this.getContent();
  29 + // get initial set of notes
  30 + this.getContent();
32 31  
33   - disableButtonIfEmptyField(".js-note-text", ".js-comment-button");
  32 + disableButtonIfEmptyField(".js-note-text", ".js-comment-button");
34 33  
35   - $("#note_attachment").change(function(e){
36   - var val = $('.input-file').val();
37   - var filename = val.replace(/^.*[\\\/]/, '');
38   - $(".file_name").text(filename);
39   - });
  34 + $("#note_attachment").change(function(e){
  35 + var val = $('.input-file').val();
  36 + var filename = val.replace(/^.*[\\\/]/, '');
  37 + $(".file_name").text(filename);
  38 + });
40 39  
41   - // Setup note preview
42   - $(document).on('click', '#preview-link', function(e) {
43   - $('#preview-note').text('Loading...');
44   -
45   - $(this).text($(this).text() === "Edit" ? "Preview" : "Edit");
46   -
47   - var note_text = $('#note_note').val();
48   -
49   - if(note_text.trim().length === 0) {
50   - $('#preview-note').text('Nothing to preview.');
51   - } else {
52   - $.post($(this).attr('href'), {note: note_text}).success(function(data) {
53   - $('#preview-note').html(data);
54   - });
55   - }
56   -
57   - $('#preview-note, #note_note').toggle();
58   - });+
59   -
60   - $(document).on("click",
61   - ".js-add-diff-note-button",
62   - NoteList.addDiffNote);
63   -
64   - // reply to diff notes
65   - $(document).on("click",
66   - ".js-discussion-reply-button",
67   - NoteList.replyToDiscussionNote);
68   -
69   - // hide diff note form
70   - $(document).on("click",
71   - ".js-close-discussion-note-form",
72   - NoteList.removeDiscussionNoteForm);
73   -
74   - // do some specific housekeeping when removing a diff or discussion note
75   - $(document).on("click",
76   - ".diff_file .js-note-delete," +
77   - ".discussion .js-note-delete",
78   - NoteList.removeDiscussionNote);
79   -
80   - // remove a note (in general)
81   - $(document).on("click",
82   - ".js-note-delete",
83   - NoteList.removeNote);
84   -
85   - // clean up previews for forms
86   - $(document).on("ajax:complete", ".note-form-holder", function(){
87   - $(this).find('#preview-note').hide();
88   - $(this).find('#note_note').show();
89   - });
90   - },
  40 + // Setup note preview
  41 + $(document).on('click', '#preview-link', function(e) {
  42 + $('#preview-note').text('Loading...');
  43 +
  44 + $(this).text($(this).text() === "Edit" ? "Preview" : "Edit");
  45 +
  46 + var note_text = $('#note_note').val();
  47 +
  48 + if(note_text.trim().length === 0) {
  49 + $('#preview-note').text('Nothing to preview.');
  50 + } else {
  51 + $.post($(this).attr('href'), {note: note_text}).success(function(data) {
  52 + $('#preview-note').html(data);
  53 + });
  54 + }
  55 +
  56 + $('#preview-note, #note_note').toggle();
  57 + });+
  58 +
  59 + $(document).on("click",
  60 + ".js-add-diff-note-button",
  61 + NoteList.addDiffNote);
  62 +
  63 + // reply to diff notes
  64 + $(document).on("click",
  65 + ".js-discussion-reply-button",
  66 + NoteList.replyToDiscussionNote);
  67 +
  68 + // hide diff note form
  69 + $(document).on("click",
  70 + ".js-close-discussion-note-form",
  71 + NoteList.removeDiscussionNoteForm);
  72 +
  73 + // do some specific housekeeping when removing a diff or discussion note
  74 + $(document).on("click",
  75 + ".diff_file .js-note-delete," +
  76 + ".discussion .js-note-delete",
  77 + NoteList.removeDiscussionNote);
  78 +
  79 + // remove a note (in general)
  80 + $(document).on("click",
  81 + ".js-note-delete",
  82 + NoteList.removeNote);
  83 +
  84 + // clean up previews for forms
  85 + $(document).on("ajax:complete", ".note-form-holder", function(){
  86 + $(this).find('#preview-note').hide();
  87 + $(this).find('#note_note').show();
  88 + });
  89 + },
91 90  
92 91  
93 92 /**
... ... @@ -232,35 +231,33 @@ var NoteList = {
232 231 /**
233 232 * Gets an inital set of notes.
234 233 */
235   - getContent:
236   - function() {
237   - $.ajax({
238   - url: this.notes_path,
239   - data: this.target_params,
240   - complete: function(){ $('.notes-status').removeClass("loading")},
241   - beforeSend: function() { $('.notes-status').addClass("loading") },
242   - dataType: "script"
243   - });
244   - },
  234 + getContent: function() {
  235 + $.ajax({
  236 + url: this.notes_path,
  237 + data: this.target_params,
  238 + complete: function(){ $('.notes-status').removeClass("loading")},
  239 + beforeSend: function() { $('.notes-status').addClass("loading") },
  240 + dataType: "script"
  241 + });
  242 + },
245 243  
246 244 /**
247 245 * Called in response to getContent().
248 246 * Replaces the content of #notes-list with the given html.
249 247 */
250   - setContent:
251   - function(newNoteIds, html) {
252   - this.top_id = newNoteIds.first();
253   - this.bottom_id = newNoteIds.last();
254   - $("#notes-list").html(html);
255   -
256   - if (this.reversed) {
257   - // init infinite scrolling
258   - this.initLoadMore();
259   -
260   - // init getting new notes
261   - this.initRefreshNew();
262   - }
263   - },
  248 + setContent: function(newNoteIds, html) {
  249 + this.top_id = newNoteIds.first();
  250 + this.bottom_id = newNoteIds.last();
  251 + $("#notes-list").html(html);
  252 +
  253 + if (this.reversed) {
  254 + // init infinite scrolling
  255 + this.initLoadMore();
  256 +
  257 + // init getting new notes
  258 + this.initRefreshNew();
  259 + }
  260 + },
264 261  
265 262  
266 263 /**
... ... @@ -274,66 +271,62 @@ var NoteList = {
274 271 /**
275 272 * Initializes loading more notes when scrolling to the bottom of the page.
276 273 */
277   - initLoadMore:
278   - function() {
279   - $(document).endlessScroll({
280   - bottomPixels: 400,
281   - fireDelay: 1000,
282   - fireOnce:true,
283   - ceaseFire: function() {
284   - return NoteList.loading_more_disabled;
285   - },
286   - callback: function(i) {
287   - NoteList.getMore();
288   - }
289   - });
290   - },
  274 + initLoadMore: function() {
  275 + $(document).endlessScroll({
  276 + bottomPixels: 400,
  277 + fireDelay: 1000,
  278 + fireOnce:true,
  279 + ceaseFire: function() {
  280 + return NoteList.loading_more_disabled;
  281 + },
  282 + callback: function(i) {
  283 + NoteList.getMore();
  284 + }
  285 + });
  286 + },
291 287  
292 288 /**
293 289 * Gets an additional set of notes.
294 290 */
295   - getMore:
296   - function() {
297   - // only load more notes if there are no "new" notes
298   - $('.loading').show();
299   - $.ajax({
300   - url: this.notes_path,
301   - data: this.target_params + "&loading_more=1&" + (this.reversed ? "before_id" : "after_id") + "=" + this.bottom_id,
302   - complete: function(){ $('.notes-status').removeClass("loading")},
303   - beforeSend: function() { $('.notes-status').addClass("loading") },
304   - dataType: "script"
305   - });
306   - },
  291 + getMore: function() {
  292 + // only load more notes if there are no "new" notes
  293 + $('.loading').show();
  294 + $.ajax({
  295 + url: this.notes_path,
  296 + data: this.target_params + "&loading_more=1&" + (this.reversed ? "before_id" : "after_id") + "=" + this.bottom_id,
  297 + complete: function(){ $('.notes-status').removeClass("loading")},
  298 + beforeSend: function() { $('.notes-status').addClass("loading") },
  299 + dataType: "script"
  300 + });
  301 + },
307 302  
308 303 /**
309 304 * Called in response to getMore().
310 305 * Append notes to #notes-list.
311 306 */
312   - appendMoreNotes:
313   - function(newNoteIds, html) {
314   - var lastNewNoteId = newNoteIds.last();
315   - if(lastNewNoteId != this.bottom_id) {
316   - this.bottom_id = lastNewNoteId;
317   - $("#notes-list").append(html);
318   - }
319   - },
  307 + appendMoreNotes: function(newNoteIds, html) {
  308 + var lastNewNoteId = newNoteIds.last();
  309 + if(lastNewNoteId != this.bottom_id) {
  310 + this.bottom_id = lastNewNoteId;
  311 + $("#notes-list").append(html);
  312 + }
  313 + },
320 314  
321 315 /**
322 316 * Called in response to getMore().
323 317 * Disables loading more notes when scrolling to the bottom of the page.
324 318 * Initalizes refreshing new notes.
325 319 */
326   - finishedLoadingMore:
327   - function() {
328   - this.loading_more_disabled = true;
  320 + finishedLoadingMore: function() {
  321 + this.loading_more_disabled = true;
329 322  
330   - // from now on only get new notes
331   - if (!this.reversed) {
332   - this.initRefreshNew();
333   - }
334   - // make sure we are up to date
335   - this.updateVotes();
336   - },
  323 + // from now on only get new notes
  324 + if (!this.reversed) {
  325 + this.initRefreshNew();
  326 + }
  327 + // make sure we are up to date
  328 + this.updateVotes();
  329 + },
337 330  
338 331  
339 332 /**
... ... @@ -348,45 +341,41 @@ var NoteList = {
348 341 /**
349 342 * Initializes getting new notes every n seconds.
350 343 */
351   - initRefreshNew:
352   - function() {
353   - setInterval("NoteList.getNew()", 10000);
354   - },
  344 + initRefreshNew: function() {
  345 + setInterval("NoteList.getNew()", 10000);
  346 + },
355 347  
356 348 /**
357 349 * Gets the new set of notes.
358 350 */
359   - getNew:
360   - function() {
361   - $.ajax({
362   - url: this.notes_path,
363   - data: this.target_params + "&loading_new=1&after_id=" + (this.reversed ? this.top_id : this.bottom_id),
364   - dataType: "script"
365   - });
366   - },
  351 + getNew: function() {
  352 + $.ajax({
  353 + url: this.notes_path,
  354 + data: this.target_params + "&loading_new=1&after_id=" + (this.reversed ? this.top_id : this.bottom_id),
  355 + dataType: "script"
  356 + });
  357 + },
367 358  
368 359 /**
369 360 * Called in response to getNew().
370 361 * Replaces the content of #new-notes-list with the given html.
371 362 */
372   - replaceNewNotes:
373   - function(newNoteIds, html) {
374   - $("#new-notes-list").html(html);
375   - this.updateVotes();
376   - },
  363 + replaceNewNotes: function(newNoteIds, html) {
  364 + $("#new-notes-list").html(html);
  365 + this.updateVotes();
  366 + },
377 367  
378 368 /**
379 369 * Adds a single note to #new-notes-list.
380 370 */
381   - appendNewNote:
382   - function(id, html) {
383   - if (this.reversed) {
384   - $("#notes-list").prepend(html);
385   - } else {
386   - $("#notes-list").append(html);
387   - }
388   - this.updateVotes();
389   - },
  371 + appendNewNote: function(id, html) {
  372 + if (this.reversed) {
  373 + $("#notes-list").prepend(html);
  374 + } else {
  375 + $("#notes-list").append(html);
  376 + }
  377 + this.updateVotes();
  378 + },
390 379  
391 380 /**
392 381 * Recalculates the votes and updates them (if they are displayed at all).
... ... @@ -396,25 +385,24 @@ var NoteList = {
396 385 * Might produce inaccurate results when not all notes have been loaded and a
397 386 * recalculation is triggered (e.g. when deleting a note).
398 387 */
399   - updateVotes:
400   - function() {
401   - var votes = $("#votes .votes");
402   - var notes = $("#notes-list, #new-notes-list").find(".note .vote");
403   -
404   - // only update if there is a vote display
405   - if (votes.size()) {
406   - var upvotes = notes.filter(".upvote").size();
407   - var downvotes = notes.filter(".downvote").size();
408   - var votesCount = upvotes + downvotes;
409   - var upvotesPercent = votesCount ? (100.0 / votesCount * upvotes) : 0;
410   - var downvotesPercent = votesCount ? (100.0 - upvotesPercent) : 0;
411   -
412   - // change vote bar lengths
413   - votes.find(".bar-success").css("width", upvotesPercent+"%");
414   - votes.find(".bar-danger").css("width", downvotesPercent+"%");
415   - // replace vote numbers
416   - votes.find(".upvotes").text(votes.find(".upvotes").text().replace(/\d+/, upvotes));
417   - votes.find(".downvotes").text(votes.find(".downvotes").text().replace(/\d+/, downvotes));
418   - }
  388 + updateVotes: function() {
  389 + var votes = $("#votes .votes");
  390 + var notes = $("#notes-list").find(".note .vote");
  391 +
  392 + // only update if there is a vote display
  393 + if (votes.size()) {
  394 + var upvotes = notes.filter(".upvote").size();
  395 + var downvotes = notes.filter(".downvote").size();
  396 + var votesCount = upvotes + downvotes;
  397 + var upvotesPercent = votesCount ? (100.0 / votesCount * upvotes) : 0;
  398 + var downvotesPercent = votesCount ? (100.0 - upvotesPercent) : 0;
  399 +
  400 + // change vote bar lengths
  401 + votes.find(".bar-success").css("width", upvotesPercent+"%");
  402 + votes.find(".bar-danger").css("width", downvotesPercent+"%");
  403 + // replace vote numbers
  404 + votes.find(".upvotes").text(votes.find(".upvotes").text().replace(/\d+/, upvotes));
  405 + votes.find(".downvotes").text(votes.find(".downvotes").text().replace(/\d+/, downvotes));
419 406 }
  407 + }
420 408 };
... ...