BigW Consortium Gitlab
Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
gitlab-ce
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Forest Godfrey
gitlab-ce
Commits
b47173da
Commit
b47173da
authored
Dec 03, 2012
by
Riyad Preukschas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Revamped note form options.
parent
4ed82788
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
100 additions
and
89 deletions
+100
-89
notes.js
app/assets/javascripts/notes.js
+63
-26
notes.scss
app/assets/stylesheets/sections/notes.scss
+26
-33
note.rb
app/models/note.rb
+0
-18
_form.html.haml
app/views/notes/_form.html.haml
+11
-12
No files found.
app/assets/javascripts/notes.js
View file @
b47173da
...
@@ -32,12 +32,6 @@ var NoteList = {
...
@@ -32,12 +32,6 @@ var NoteList = {
// get initial set of notes
// get initial set of notes
NoteList
.
getContent
();
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
// add a new diff note
$
(
document
).
on
(
"click"
,
$
(
document
).
on
(
"click"
,
".js-add-diff-note-button"
,
".js-add-diff-note-button"
,
...
@@ -53,6 +47,11 @@ var NoteList = {
...
@@ -53,6 +47,11 @@ var NoteList = {
".js-note-preview-button"
,
".js-note-preview-button"
,
NoteList
.
previewNote
);
NoteList
.
previewNote
);
// update the file name when an attachment is selected
$
(
document
).
on
(
"change"
,
".js-note-attachment-input"
,
NoteList
.
updateFormAttachment
);
// hide diff note form
// hide diff note form
$
(
document
).
on
(
"click"
,
$
(
document
).
on
(
"click"
,
".js-close-discussion-note-form"
,
".js-close-discussion-note-form"
,
...
@@ -63,34 +62,21 @@ var NoteList = {
...
@@ -63,34 +62,21 @@ var NoteList = {
".js-note-delete"
,
".js-note-delete"
,
NoteList
.
removeNote
);
NoteList
.
removeNote
);
//
clean up previews for main target form
//
reset main target form after submit
$
(
document
).
on
(
"ajax:complete"
,
$
(
document
).
on
(
"ajax:complete"
,
".js-main-target-form"
,
".js-main-target-form"
,
NoteList
.
cleanupMainTargetForm
);
NoteList
.
resetMainTargetForm
);
},
/**
$
(
document
).
on
(
"click"
,
* Event handlers
".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.
* Called when clicking on the "add a comment" button on the side of a diff line.
...
@@ -122,6 +108,17 @@ var NoteList = {
...
@@ -122,6 +108,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.
* Shows the note preview.
*
*
* Lets the server render GFM into Html and displays it.
* Lets the server render GFM into Html and displays it.
...
@@ -307,6 +304,11 @@ var NoteList = {
...
@@ -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
();
GitLab
.
GfmAutoComplete
.
setup
();
form
.
show
();
form
.
show
();
...
@@ -500,6 +502,41 @@ var NoteList = {
...
@@ -500,6 +502,41 @@ var NoteList = {
},
},
/**
/**
* 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).
* Recalculates the votes and updates them (if they are displayed at all).
*
*
* Assumes all relevant notes are displayed (i.e. there are no more notes to
* Assumes all relevant notes are displayed (i.e. there are no more notes to
...
...
app/assets/stylesheets/sections/notes.scss
View file @
b47173da
...
@@ -227,6 +227,11 @@ ul.notes {
...
@@ -227,6 +227,11 @@ ul.notes {
.discussion
{
.discussion
{
.new_note
{
.new_note
{
margin
:
8px
5px
8px
0
;
margin
:
8px
5px
8px
0
;
.note_options
{
// because of the smaller width and the extra "cancel" button
margin-top
:
8px
;
}
}
}
}
}
.new_note
{
.new_note
{
...
@@ -236,51 +241,39 @@ ul.notes {
...
@@ -236,51 +241,39 @@ ul.notes {
float
:
left
;
float
:
left
;
margin-top
:
8px
;
margin-top
:
8px
;
}
}
.clearfix
{
margin-bottom
:
0
;
}
.note_options
{
.note_options
{
h6
{
h6
{
line-height
:
32px
;
@extend
.left
;
padding-right
:
15px
;
line-height
:
20px
;
padding-right
:
16px
;
padding-bottom
:
16px
;
}
label
{
padding
:
0
;
}
}
// TODO: start cleanup
.attachment
{
.attachments
{
@extend
.right
;
position
:
relative
;
position
:
relative
;
width
:
350px
;
width
:
350px
;
height
:
50px
;
height
:
50px
;
overflow
:
hidden
;
margin
:
0
0
5px
!
important
;
margin
:
0
0
5px
!
important
;
.input_file
{
// hide the actual file field
.file_name
{
input
{
line-height
:
30px
;
display
:
none
;
width
:
240px
;
}
height
:
28px
;
overflow
:
hidden
;
.choose-btn
{
}
float
:
right
;
.file_upload
{
position
:
absolute
;
right
:
14px
;
top
:
7px
;
}
.input-file
{
width
:
260px
;
height
:
41px
;
float
:
right
;
}
}
}
}
}
.input-file
{
.notify_options
{
font
:
500px
monospace
;
@extend
.right
;
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
{
.note_text_and_preview
{
// makes the "absolute" position for links relative to this
// makes the "absolute" position for links relative to this
...
...
app/models/note.rb
View file @
b47173da
...
@@ -140,24 +140,6 @@ class Note < ActiveRecord::Base
...
@@ -140,24 +140,6 @@ class Note < ActiveRecord::Base
@notify_author
||=
false
@notify_author
||=
false
end
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,
# Returns true if this is an upvote note,
# otherwise false is returned
# otherwise false is returned
def
upvote?
def
upvote?
...
...
app/views/notes/_form.html.haml
View file @
b47173da
...
@@ -22,23 +22,22 @@
...
@@ -22,23 +22,22 @@
.clearfix
.clearfix
.note_options
.note_options
.attachments.right
.attachment
%h6
.left
Attachment:
%h6
Attachment:
%span
.file_name
File name...
.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
=
f
.
file_field
:attachment
,
class:
"js-note-attachment-input"
%a
.file_upload.btn.small
Upload File
=
f
.
file_field
:attachment
,
class:
"input-file"
%span
.hint
Any file less than 10 MB
.notify_opt
s.right
.notify_opt
ions
%h6
.left
Notify via email:
%h6
Notify via email:
=
label_tag
:notify
do
=
label_tag
:notify
do
=
check_box_tag
:notify
,
1
,
!
@note
.
for_commit?
=
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
=
label_tag
:notify_author
do
=
check_box_tag
:notify_author
,
1
,
!
@note
.
for_commit?
=
check_box_tag
:notify_author
,
1
,
!
@note
.
for_commit?
%span
Commit author
Commit author
.clearfix
.clearfix
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment