Skip to content
Snippets Groups Projects
Commit b47173da authored by Riyad Preukschas's avatar Riyad Preukschas
Browse files

Revamped note form options.

parent 4ed82788
No related branches found
No related tags found
1 merge request!1878Discussions (a.k.a. Grouped Comments)
Loading
Loading
@@ -32,12 +32,6 @@ var NoteList = {
// get initial set of notes
NoteList.getContent();
 
$("#note_attachment").change(function(e){
var val = $('.input-file').val();
var filename = val.replace(/^.*[\\\/]/, '');
$(".file_name").text(filename);
});
// add a new diff note
$(document).on("click",
".js-add-diff-note-button",
Loading
Loading
@@ -53,6 +47,11 @@ var NoteList = {
".js-note-preview-button",
NoteList.previewNote);
 
// update the file name when an attachment is selected
$(document).on("change",
".js-note-attachment-input",
NoteList.updateFormAttachment);
// hide diff note form
$(document).on("click",
".js-close-discussion-note-form",
Loading
Loading
@@ -63,34 +62,21 @@ var NoteList = {
".js-note-delete",
NoteList.removeNote);
 
// clean up previews for main target form
// reset main target form after submit
$(document).on("ajax:complete",
".js-main-target-form",
NoteList.cleanupMainTargetForm);
},
NoteList.resetMainTargetForm);
 
 
/**
* Event handlers
*/
$(document).on("click",
".js-choose-note-attachment-button",
NoteList.chooseNoteAttachment);
},
 
 
/**
*
* When clicking on buttons
*/
cleanupMainTargetForm: function(){
var form = $(this);
// remove validation errors
form.find(".js-errors").remove();
// reset text and preview
var previewContainer = form.find(".js-toggler-container.note_text_and_preview");
if (previewContainer.is(".on")) {
previewContainer.removeClass("on");
}
form.find(".js-note-text").val("").trigger("input");
},
 
/**
* Called when clicking on the "add a comment" button on the side of a diff line.
Loading
Loading
@@ -121,6 +107,17 @@ var NoteList = {
}
},
 
/**
* Called when clicking the "Choose File" button.
*
* Opesn the file selection dialog.
*/
chooseNoteAttachment: function() {
var form = $(this).closest("form");
form.find(".js-note-attachment-input").click();
},
/**
* Shows the note preview.
*
Loading
Loading
@@ -307,6 +304,11 @@ var NoteList = {
}
});
 
// remove notify commit author checkbox for non-commit notes
if (form.find("#note_noteable_type").val() !== "Commit") {
form.find(".js-notify-commit-author").remove();
}
GitLab.GfmAutoComplete.setup();
 
form.show();
Loading
Loading
@@ -499,6 +501,41 @@ var NoteList = {
$("#new-notes-list").prepend(html);
},
 
/**
* Called in response the main target form has been successfully submitted.
*
* Removes any errors.
* Resets text and preview.
* Resets buttons.
*/
resetMainTargetForm: function(){
var form = $(this);
// remove validation errors
form.find(".js-errors").remove();
// reset text and preview
var previewContainer = form.find(".js-toggler-container.note_text_and_preview");
if (previewContainer.is(".on")) {
previewContainer.removeClass("on");
}
form.find(".js-note-text").val("").trigger("input");
},
/**
* Called after an attachment file has been selected.
*
* Updates the file name for the selected attachment.
*/
updateFormAttachment: function() {
var form = $(this).closest("form");
// get only the basename
var filename = $(this).val().replace(/^.*[\\\/]/, '');
form.find(".js-attachment-filename").text(filename);
},
/**
* Recalculates the votes and updates them (if they are displayed at all).
*
Loading
Loading
Loading
Loading
@@ -227,6 +227,11 @@ ul.notes {
.discussion {
.new_note {
margin: 8px 5px 8px 0;
.note_options {
// because of the smaller width and the extra "cancel" button
margin-top: 8px;
}
}
}
.new_note {
Loading
Loading
@@ -236,51 +241,39 @@ ul.notes {
float: left;
margin-top: 8px;
}
.clearfix {
margin-bottom: 0;
}
.note_options {
h6 {
line-height: 32px;
padding-right: 15px;
@extend .left;
line-height: 20px;
padding-right: 16px;
padding-bottom: 16px;
}
label {
padding: 0;
}
 
// TODO: start cleanup
.attachments {
.attachment {
@extend .right;
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;
}
// hide the actual file field
input {
display: none;
}
.choose-btn {
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;
.notify_options {
@extend .right;
}
// TODO: end cleanup
}
.note_text_and_preview {
// makes the "absolute" position for links relative to this
Loading
Loading
Loading
Loading
@@ -140,24 +140,6 @@ class Note < ActiveRecord::Base
@notify_author ||= false
end
 
# Check if we can notify commit author
# with email about our comment
#
# If commit author email exist in project
# and commit author is not passed user we can
# send email to him
#
# params:
# user - current user
#
# return:
# Boolean
#
def notify_only_author?(user)
for_commit? && commit_author &&
commit_author.email != user.email
end
# Returns true if this is an upvote note,
# otherwise false is returned
def upvote?
Loading
Loading
Loading
Loading
@@ -22,23 +22,22 @@
.clearfix
 
.note_options
.attachments.right
%h6.left Attachment:
%span.file_name File name...
.attachment
%h6 Attachment:
.file_name.js-attachment-filename File name...
%a.choose-btn.btn.small.js-choose-note-attachment-button Choose File ...
.hint Any file up to 10 MB
 
.input.input_file
%a.file_upload.btn.small Upload File
= f.file_field :attachment, class: "input-file"
%span.hint Any file less than 10 MB
= f.file_field :attachment, class: "js-note-attachment-input"
 
.notify_opts.right
%h6.left Notify via email:
.notify_options
%h6 Notify via email:
= label_tag :notify do
= check_box_tag :notify, 1, !@note.for_commit?
%span Project team
Project team
 
- if @note.notify_only_author?(current_user) # FIXME: put in JS
.js-notify-commit-author
= label_tag :notify_author do
= check_box_tag :notify_author, 1 , !@note.for_commit?
%span Commit author
Commit author
.clearfix
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment