Commit fac4e3f2e5ea62ed4b92722f5eb1a650ccccf4b1
1 parent
d9b15fc1
Exists in
master
and in
4 other branches
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 | }; | ... | ... |