Commit 4ed82788 authored by Riyad Preukschas's avatar Riyad Preukschas

Fix a bunch of smaller glitches.

parent 7978f8dd
......@@ -58,12 +58,6 @@ var NoteList = {
".js-close-discussion-note-form",
NoteList.removeDiscussionNoteForm);
// do some specific housekeeping when removing a diff or discussion note
$(document).on("click",
".diff_file .js-note-delete," +
".discussion .js-note-delete",
NoteList.removeDiscussionNote);
// remove a note (in general)
$(document).on("click",
".js-note-delete",
......@@ -96,9 +90,6 @@ var NoteList = {
previewContainer.removeClass("on");
}
form.find(".js-note-text").val("").trigger("input");
// re-enable submit button
form.find(".js-comment-button").enable();
},
/**
......@@ -144,8 +135,6 @@ var NoteList = {
var preview = form.find('.js-note-preview');
var noteText = form.find('.js-note-text').val();
console.log("preview", noteText);
if(noteText.trim().length === 0) {
preview.text('Nothing to preview.');
} else {
......@@ -157,36 +146,13 @@ var NoteList = {
}
},
/**
* Called in response to deleting a note on a diff line.
*
* Removes the actual note from view.
* Removes the whole notes row if the last note for that line is being removed.
*
* Note: must be called before removeNote()
*/
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();
}
},
/**
* Called in response to "cancel" on a diff note form.
*
* Shows the reply button again.
* Removes the form and if necessary it's temporary row.
*/
removeDiscussionNoteForm: function(e) {
e.preventDefault();
removeDiscussionNoteForm: function() {
var form = $(this).closest("form");
var row = form.closest("tr");
......@@ -206,9 +172,22 @@ var NoteList = {
* Called in response to deleting a note of any kind.
*
* Removes the actual note from view.
* Removes the whole discussion if the last note is being removed.
*/
removeNote: function() {
$(this).closest(".note").remove();
var note = $(this).closest(".note");
var notes = note.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();
}
note.remove();
NoteList.updateVotes();
},
......@@ -274,6 +253,7 @@ var NoteList = {
NoteList.setupNoteForm(form);
form.find(".js-note-text").focus();
},
/**
......@@ -312,16 +292,18 @@ var NoteList = {
setupNoteForm: function(form) {
disableButtonIfEmptyField(form.find(".js-note-text"), form.find(".js-comment-button"));
form.removeClass("js-new-note-form");
// setup preview buttons
$(".js-note-edit-button, .js-note-preview-button").tooltip({ placement: 'left' });
form.find(".js-note-edit-button, .js-note-preview-button")
.tooltip({ placement: 'left' });
previewButton = $(".js-note-preview-button");
previewButton.hide();
previewButton = form.find(".js-note-preview-button");
form.find(".js-note-text").on("input", function() {
if ($(this).val().trim() !== "") {
previewButton.fadeIn();
previewButton.removeClass("turn-off").addClass("turn-on");
} else {
previewButton.fadeOut();
previewButton.removeClass("turn-on").addClass("turn-off");
}
});
......@@ -344,8 +326,8 @@ var NoteList = {
$.ajax({
url: NoteList.notes_path,
data: NoteList.target_params,
complete: function(){ $('.notes-status').removeClass("loading")},
beforeSend: function() { $('.notes-status').addClass("loading") },
complete: function(){ $('.js-notes-busy').removeClass("loading")},
beforeSend: function() { $('.js-notes-busy').addClass("loading") },
dataType: "script"
});
},
......@@ -404,8 +386,8 @@ var NoteList = {
$.ajax({
url: NoteList.notes_path,
data: NoteList.target_params + "&loading_more=1&" + (NoteList.reversed ? "before_id" : "after_id") + "=" + NoteList.bottom_id,
complete: function(){ $('.notes-status').removeClass("loading")},
beforeSend: function() { $('.notes-status').addClass("loading") },
complete: function(){ $('.js-notes-busy').removeClass("loading")},
beforeSend: function() { $('.js-notes-busy').addClass("loading") },
dataType: "script"
});
},
......
......@@ -135,9 +135,12 @@ ul.notes {
}
}
/**
* Discussion/Note Actions
* Actions for Discussions/Notes
*/
.discussion,
.note {
&.note:hover {
......@@ -174,33 +177,12 @@ ul.notes {
top: 0;
}
// TODO: start cleaup
.issue_notes,
.wiki_notes {
.note_content {
float: left;
width: 400px;
}
}
/* for loading indicator */
.notes-status {
margin: 18px;
}
p.notify_controls input{
margin: 5px;
}
p.notify_controls span{
font-weight: 700;
}
// TODO: end cleaup
/**
* line note button on the side of diffs
* Line note button on the side of diffs
*/
.diff_file tr.line_holder {
.add-diff-note {
background: url("diff_note_add.png") no-repeat left 0;
......@@ -231,8 +213,10 @@ p.notify_controls span{
}
}
/**
* Note Forms
* Note Form
*/
.comment-btn,
......@@ -257,31 +241,6 @@ p.notify_controls span{
line-height: 32px;
padding-right: 15px;
}
}
.note_text_and_preview {
// makes the "absolute" position for links relative to this
position: relative;
// preview/edit buttons
> a {
font-size: 24px;
padding: 4px;
position: absolute;
right: 0;
}
.note_preview {
background: #f5f5f5;
border: 1px solid #ddd;
@include border-radius(4px);
min-height: 80px;
padding: 4px 6px;
}
.note_text {
font-size: 14px;
height: 80px;
width: 98.6%;
}
}
// TODO: start cleanup
.attachments {
......@@ -322,4 +281,34 @@ p.notify_controls span{
margin: 0;
}
// TODO: end cleanup
}
.note_text_and_preview {
// makes the "absolute" position for links relative to this
position: relative;
// preview/edit buttons
> a {
font-size: 24px;
padding: 4px;
position: absolute;
right: 0;
}
.note_preview {
background: #f5f5f5;
border: 1px solid #ddd;
@include border-radius(4px);
min-height: 80px;
padding: 4px 6px;
}
.note_text {
font-size: 14px;
height: 80px;
width: 98.6%;
}
}
}
/* loading indicator */
.notes-busy {
margin: 18px;
}
......@@ -61,4 +61,4 @@
= markdown @issue.description
.issue_notes.voting_notes#notes= render "notes/notes_with_form"
.voting_notes#notes= render "notes/notes_with_form"
......@@ -6,7 +6,7 @@
= f.hidden_field :noteable_type
.note_text_and_preview.js-toggler-container
%a.js-note-preview-button.js-toggler-target.turn-on{ href: "javascript:;", data: {title: "Preview", url: preview_project_notes_path(@project)} }
%a.js-note-preview-button.js-toggler-target.turn-off{ href: "javascript:;", data: {title: "Preview", url: preview_project_notes_path(@project)} }
%i.icon-eye-open
%a.js-note-edit-button.js-toggler-target.turn-off{ href: "javascript:;", data: {title: "Edit"} }
%i.icon-edit
......@@ -37,7 +37,7 @@
= check_box_tag :notify, 1, !@note.for_commit?
%span Project team
- if @note.notify_only_author?(current_user)
- if @note.notify_only_author?(current_user) # FIXME: put in JS
= label_tag :notify_author do
= check_box_tag :notify_author, 1 , !@note.for_commit?
%span Commit author
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment