diff options
author | Riyad Preukschas <riyad@informatik.uni-bremen.de> | 2012-12-02 20:43:39 +0100 |
---|---|---|
committer | Riyad Preukschas <riyad@informatik.uni-bremen.de> | 2012-12-03 22:51:56 +0100 |
commit | 494ae87840bf719e5fb4094781cc1dfc179af463 (patch) | |
tree | 1006864b4695c0810f7005e742eed4f52b922abc /app/assets/javascripts/notes.js | |
parent | 1319373d58c49eb96c1ec176f3057c2c31750b0e (diff) | |
download | gitlab-ce-494ae87840bf719e5fb4094781cc1dfc179af463.tar.gz |
Refactor discussion reply
Diffstat (limited to 'app/assets/javascripts/notes.js')
-rw-r--r-- | app/assets/javascripts/notes.js | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/app/assets/javascripts/notes.js b/app/assets/javascripts/notes.js index e5c233ef4fc..5c33a6609d6 100644 --- a/app/assets/javascripts/notes.js +++ b/app/assets/javascripts/notes.js @@ -63,18 +63,19 @@ var NoteList = { // reply to diff notes $(document).on("click", - ".js-diff-note-reply-button", - NoteList.replyToDiffNote); + ".js-discussion-reply-button", + NoteList.replyToDiscussionNote); // hide diff note form $(document).on("click", - ".js-hide-diff-note-form", - NoteList.removeDiffNoteForm); + ".js-close-discussion-note-form", + NoteList.removeDiscussionNoteForm); - // do some diff note specific housekeeping when removing a diff note + // do some specific housekeeping when removing a diff or discussion note $(document).on("click", - ".diff_file .js-note-delete", - NoteList.removeDiffNote); + ".diff_file .js-note-delete," + + ".discussion .js-note-delete", + NoteList.removeDiscussionNote); // remove a note (in general) $(document).on("click", @@ -102,14 +103,14 @@ var NoteList = { */ addDiffNote: function(e) { // find the form - var form = $(".js-note-forms .js-diff-note-form"); + var form = $(".js-note-forms .js-discussion-note-form"); var row = $(this).closest("tr"); var nextRow = row.next(); // does it already have notes? if (nextRow.is(".notes_holder")) { - $.proxy(NoteList.replyToDiffNote, - nextRow.find(".js-diff-note-reply-button") + $.proxy(NoteList.replyToDiscussionNote, + nextRow.find(".js-discussion-reply-button") ).call(); } else { // add a notes row and insert the form @@ -117,7 +118,7 @@ var NoteList = { form.clone().appendTo(row.next().find(".notes_content")); // show the form - NoteList.setupDiffNoteForm($(this), row.next().find("form")); + NoteList.setupDiscussionNoteForm($(this), row.next().find("form")); } e.preventDefault(); @@ -131,11 +132,15 @@ var NoteList = { * * Note: must be called before removeNote() */ - removeDiffNote: function() { + removeDiscussionNote: function() { var notes = $(this).closest(".notes"); // check if this is the last note for this line if (notes.find(".note").length === 1) { + // for discussions + notes.closest(".discussion").remove(); + + // for diff lines notes.closest("tr").remove(); } }, @@ -146,15 +151,15 @@ var NoteList = { * Shows the reply button again. * Removes the form and if necessary it's temporary row. */ - removeDiffNoteForm: function(e) { + removeDiscussionNoteForm: function(e) { var form = $(this).closest("form"); var row = form.closest("tr"); // show the reply button (will only work for replys) - form.prev(".js-diff-note-reply-button").show(); + form.prev(".js-discussion-reply-button").show(); if (row.is(".js-temp-notes-holder")) { - // remove temporary row + // remove temporary row for diff lines row.remove(); } else { // only remove the form @@ -179,10 +184,9 @@ var NoteList = { * * Shows the note form below the notes. */ - replyToDiffNote: function() { + replyToDiscussionNote: function() { // find the form - var form = $(".js-note-forms .js-diff-note-form"); - + var form = $(".js-note-forms .js-discussion-note-form"); // hide reply button $(this).hide(); @@ -190,7 +194,7 @@ var NoteList = { form.clone().insertAfter($(this)); // show the form - NoteList.setupDiffNoteForm($(this), $(this).next("form")); + NoteList.setupDiscussionNoteForm($(this), $(this).next("form")); }, /** @@ -201,7 +205,7 @@ var NoteList = { * Note: "this" must have the "discussionId", "lineCode", "noteableType" and * "noteableId" data attributes set. */ - setupDiffNoteForm: function(data_holder, form) { + setupDiscussionNoteForm: function(data_holder, form) { // setup note target form.attr("rel", data_holder.data("discussionId")); form.find("#note_line_code").val(data_holder.data("lineCode")); @@ -210,10 +214,10 @@ var NoteList = { // setup interaction disableButtonIfEmptyField(form.find(".js-note-text"), form.find(".js-comment-button")); - setupGfmAutoComplete(); + GitLab.GfmAutoComplete.setup(); // cleanup after successfully creating a diff note - form.on("ajax:success", NoteList.removeDiffNoteForm); + form.on("ajax:success", NoteList.removeDiscussionNoteForm); form.show(); }, @@ -249,11 +253,11 @@ var NoteList = { this.bottom_id = newNoteIds.last(); $("#notes-list").html(html); - // init infinite scrolling - this.initLoadMore(); - - // init getting new notes if (this.reversed) { + // init infinite scrolling + this.initLoadMore(); + + // init getting new notes this.initRefreshNew(); } }, @@ -377,9 +381,9 @@ var NoteList = { appendNewNote: function(id, html) { if (this.reversed) { - $("#new-notes-list").prepend(html); + $("#notes-list").prepend(html); } else { - $("#new-notes-list").append(html); + $("#notes-list").append(html); } this.updateVotes(); }, |