Commit ece563296bcac93ce5918a050a70a95ceba0d7f9

Authored by Riyad Preukschas
1 parent 433d2278

Fix Notes JS

Also fixes #1983
app/assets/javascripts/main.js.coffee
@@ -58,25 +58,6 @@ $ -> @@ -58,25 +58,6 @@ $ ->
58 $(@).next('table').show() 58 $(@).next('table').show()
59 $(@).remove() 59 $(@).remove()
60 60
61 - # Note markdown preview  
62 - $(document).on 'click', '#preview-link', (e) ->  
63 - $('#preview-note').text 'Loading...'  
64 -  
65 - previewLinkText = if $(@).text() is 'Preview' then 'Edit' else 'Preview'  
66 - $(@).text previewLinkText  
67 -  
68 - note = $('#note_note').val()  
69 -  
70 - if note.trim().length is 0  
71 - $('#preview-note').text 'Nothing to preview.'  
72 - else  
73 - $.post $(@).attr('href'), {note: note}, (data) ->  
74 - $('#preview-note').html(data)  
75 -  
76 - $('#preview-note, #note_note').toggle()  
77 - e.preventDefault()  
78 - false  
79 -  
80 (($) -> 61 (($) ->
81 _chosen = $.fn.chosen 62 _chosen = $.fn.chosen
82 $.fn.extend chosen: (options) -> 63 $.fn.extend chosen: (options) ->
app/assets/javascripts/notes.js
@@ -14,8 +14,8 @@ var NoteList = { @@ -14,8 +14,8 @@ var NoteList = {
14 this.notes_path = path + ".js"; 14 this.notes_path = path + ".js";
15 this.target_id = tid; 15 this.target_id = tid;
16 this.target_type = tt; 16 this.target_type = tt;
17 - this.reversed = $("#notes-list").hasClass("reversed");  
18 - this.target_params = "&target_type=" + this.target_type + "&target_id=" + this.target_id; 17 + this.reversed = $("#notes-list").is(".reversed");
  18 + this.target_params = "target_type=" + this.target_type + "&target_id=" + this.target_id;
19 19
20 // get initial set of notes 20 // get initial set of notes
21 this.getContent(); 21 this.getContent();
@@ -33,6 +33,8 @@ var NoteList = { @@ -33,6 +33,8 @@ var NoteList = {
33 33
34 $(".note-form-holder").on("ajax:complete", function(){ 34 $(".note-form-holder").on("ajax:complete", function(){
35 $(".submit_note").enable(); 35 $(".submit_note").enable();
  36 + $('#preview-note').hide();
  37 + $('#note_note').show();
36 }) 38 })
37 39
38 disableButtonIfEmptyField(".note-text", ".submit_note"); 40 disableButtonIfEmptyField(".note-text", ".submit_note");
@@ -52,6 +54,26 @@ var NoteList = { @@ -52,6 +54,26 @@ var NoteList = {
52 $('.note_advanced_opts').show(); 54 $('.note_advanced_opts').show();
53 }); 55 });
54 } 56 }
  57 +
  58 + // Setup note preview
  59 + $(document).on('click', '#preview-link', function(e) {
  60 + $('#preview-note').text('Loading...');
  61 +
  62 + $(this).text($(this).text() === "Edit" ? "Preview" : "Edit");
  63 +
  64 + var note_text = $('#note_note').val();
  65 +
  66 + if(note_text.trim().length === 0) {
  67 + $('#preview-note').text('Nothing to preview.');
  68 + } else {
  69 + $.post($(this).attr('href'), {note: note_text}).success(function(data) {
  70 + $('#preview-note').html(data);
  71 + });
  72 + }
  73 +
  74 + $('#preview-note, #note_note').toggle();
  75 + e.preventDefault();
  76 + });
55 }, 77 },
56 78
57 79
@@ -69,7 +91,7 @@ var NoteList = { @@ -69,7 +91,7 @@ var NoteList = {
69 $.ajax({ 91 $.ajax({
70 type: "GET", 92 type: "GET",
71 url: this.notes_path, 93 url: this.notes_path,
72 - data: "?" + this.target_params, 94 + data: this.target_params,
73 complete: function(){ $('.notes-status').removeClass("loading")}, 95 complete: function(){ $('.notes-status').removeClass("loading")},
74 beforeSend: function() { $('.notes-status').addClass("loading") }, 96 beforeSend: function() { $('.notes-status').addClass("loading") },
75 dataType: "script"}); 97 dataType: "script"});
@@ -131,7 +153,7 @@ var NoteList = { @@ -131,7 +153,7 @@ var NoteList = {
131 $.ajax({ 153 $.ajax({
132 type: "GET", 154 type: "GET",
133 url: this.notes_path, 155 url: this.notes_path,
134 - data: "loading_more=1&" + (this.reversed ? "before_id" : "after_id") + "=" + this.bottom_id + this.target_params, 156 + data: this.target_params + "&loading_more=1&" + (this.reversed ? "before_id" : "after_id") + "=" + this.bottom_id,
135 complete: function(){ $('.notes-status').removeClass("loading")}, 157 complete: function(){ $('.notes-status').removeClass("loading")},
136 beforeSend: function() { $('.notes-status').addClass("loading") }, 158 beforeSend: function() { $('.notes-status').addClass("loading") },
137 dataType: "script"}); 159 dataType: "script"});
@@ -192,7 +214,7 @@ var NoteList = { @@ -192,7 +214,7 @@ var NoteList = {
192 $.ajax({ 214 $.ajax({
193 type: "GET", 215 type: "GET",
194 url: this.notes_path, 216 url: this.notes_path,
195 - data: "loading_new=1&after_id=" + (this.reversed ? this.top_id : this.bottom_id) + this.target_params, 217 + data: this.target_params + "&loading_new=1&after_id=" + (this.reversed ? this.top_id : this.bottom_id),
196 dataType: "script"}); 218 dataType: "script"});
197 }, 219 },
198 220
@@ -264,7 +286,7 @@ var PerLineNotes = { @@ -264,7 +286,7 @@ var PerLineNotes = {
264 $(this).closest("tr").after(form); 286 $(this).closest("tr").after(form);
265 form.find("#note_line_code").val($(this).data("lineCode")); 287 form.find("#note_line_code").val($(this).data("lineCode"));
266 form.show(); 288 form.show();
267 - return false; 289 + e.preventDefault();
268 }); 290 });
269 291
270 disableButtonIfEmptyField(".line-note-text", ".submit_inline_note"); 292 disableButtonIfEmptyField(".line-note-text", ".submit_inline_note");
@@ -285,7 +307,7 @@ var PerLineNotes = { @@ -285,7 +307,7 @@ var PerLineNotes = {
285 // elements must really be removed for this to work reliably 307 // elements must really be removed for this to work reliably
286 var trLine = trNote.prev(); 308 var trLine = trNote.prev();
287 var trRpl = trNote.next(); 309 var trRpl = trNote.next();
288 - if (trLine.hasClass("line_holder") && trRpl.hasClass("reply")) { 310 + if (trLine.is(".line_holder") && trRpl.is(".reply")) {
289 trRpl.fadeOut(function() { $(this).remove(); }); 311 trRpl.fadeOut(function() { $(this).remove(); });
290 } 312 }
291 }); 313 });