Fix a bunch of smaller glitches.

This commit is contained in:
Riyad Preukschas 2012-12-03 21:43:17 +01:00
parent 7978f8dd2b
commit 4ed8278870
4 changed files with 85 additions and 114 deletions

View file

@ -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"));
// setup preview buttons
$(".js-note-edit-button, .js-note-preview-button").tooltip({ placement: 'left' });
form.removeClass("js-new-note-form");
previewButton = $(".js-note-preview-button");
previewButton.hide();
// setup preview buttons
form.find(".js-note-edit-button, .js-note-preview-button")
.tooltip({ placement: 'left' });
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"
});
},

View file

@ -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,6 +241,46 @@ p.notify_controls span{
line-height: 32px;
padding-right: 15px;
}
// TODO: start cleanup
.attachments {
position: relative;
width: 350px;
height: 50px;
overflow: hidden;
margin:0 0 5px !important;
.input_file {
.file_name {
line-height: 30px;
width: 240px;
height: 28px;
overflow: hidden;
}
.file_upload {
position: absolute;
right:14px;
top:7px;
}
.input-file {
width: 260px;
height: 41px;
float: right;
}
}
}
.input-file {
font: 500px monospace;
opacity:0;
filter: alpha(opacity=0);
position: absolute;
z-index: 1;
top:0;
right:0;
padding:0;
margin: 0;
}
// TODO: end cleanup
}
.note_text_and_preview {
// makes the "absolute" position for links relative to this
@ -282,44 +306,9 @@ p.notify_controls span{
width: 98.6%;
}
}
// TODO: start cleanup
.attachments {
position: relative;
width: 350px;
height: 50px;
overflow: hidden;
margin:0 0 5px !important;
.input_file {
.file_name {
line-height: 30px;
width: 240px;
height: 28px;
overflow: hidden;
}
.file_upload {
position: absolute;
right:14px;
top:7px;
}
.input-file {
width: 260px;
height: 41px;
float: right;
}
}
}
.input-file {
font: 500px monospace;
opacity:0;
filter: alpha(opacity=0);
position: absolute;
z-index: 1;
top:0;
right:0;
padding:0;
margin: 0;
}
// TODO: end cleanup
}
/* loading indicator */
.notes-busy {
margin: 18px;
}

View file

@ -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"

View file

@ -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