Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kazuhiko Shiozaki
gitlab-ce
Commits
6171a4d8
Commit
6171a4d8
authored
Aug 03, 2012
by
randx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed dashboard broken messages cause of glm
parent
34ba4e13
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
104 additions
and
99 deletions
+104
-99
app/assets/stylesheets/sections/notes.scss
app/assets/stylesheets/sections/notes.scss
+8
-1
app/helpers/application_helper.rb
app/helpers/application_helper.rb
+0
-80
app/helpers/gitlab_markdown_helper.rb
app/helpers/gitlab_markdown_helper.rb
+81
-0
app/views/notes/_form.html.haml
app/views/notes/_form.html.haml
+15
-18
No files found.
app/assets/stylesheets/sections/notes.scss
View file @
6171a4d8
...
...
@@ -175,10 +175,17 @@ td .line_note_link {
top
:
7px
;
}
.note_advanced_opts
{
h6
{
line-height
:
32px
;
margin-right
:
12px
;
}
}
div
.attachments
{
position
:relative
;
width
:
350px
;
height
:
36
px
;
height
:
50
px
;
overflow
:hidden
;
margin
:
0
0
5px
!
important
;
}
...
...
app/helpers/application_helper.rb
View file @
6171a4d8
...
...
@@ -42,86 +42,6 @@ module ApplicationHelper
grouped_options_for_select
(
options
,
@ref
||
@project
.
default_branch
)
end
def
gfm
(
text
,
html_options
=
{})
return
text
if
text
.
nil?
raise
"@project is not set"
if
@project
.
nil?
# Extract pre blocks
# from http://github.github.com/github-flavored-markdown/
extractions
=
{}
text
.
gsub!
(
%r{<pre>.*?</pre>|<code>.*?</code>}m
)
do
|
match
|
md5
=
Digest
::
MD5
.
hexdigest
(
match
)
extractions
[
md5
]
=
match
"{gfm-extraction-
#{
md5
}
}"
end
# match 1 2 3 4 5 6
text
.
gsub!
(
/(\W)?(@([\w\._]+)|[#!$](\d+)|([\h]{6,40}))(\W)?/
)
do
|
match
|
prefix
=
$1
reference
=
$2
user_name
=
$3
issue_id
=
$4
merge_request_id
=
$4
snippet_id
=
$4
commit_id
=
$5
suffix
=
$6
# TODO: add popups with additional information
ref_link
=
case
reference
# team member: @foo
when
/^@/
user
=
@project
.
users
.
where
(
:name
=>
user_name
).
first
member
=
@project
.
users_projects
.
where
(
:user_id
=>
user
).
first
if
user
link_to
(
"@
#{
user_name
}
"
,
project_team_member_path
(
@project
,
member
),
html_options
.
merge
(
:class
=>
"gfm gfm-team_member
#{
html_options
[
:class
]
}
"
))
if
member
# issue: #123
when
/^#/
# avoid HTML entities
unless
prefix
.
try
(
:end_with?
,
"&"
)
&&
suffix
.
try
(
:start_with?
,
";"
)
issue
=
@project
.
issues
.
where
(
:id
=>
issue_id
).
first
link_to
(
"#
#{
issue_id
}
"
,
project_issue_path
(
@project
,
issue
),
html_options
.
merge
(
:title
=>
"Issue:
#{
issue
.
title
}
"
,
:class
=>
"gfm gfm-issue
#{
html_options
[
:class
]
}
"
))
if
issue
end
# merge request: !123
when
/^!/
merge_request
=
@project
.
merge_requests
.
where
(
:id
=>
merge_request_id
).
first
link_to
(
"!
#{
merge_request_id
}
"
,
project_merge_request_path
(
@project
,
merge_request
),
html_options
.
merge
(
:title
=>
"Merge Request:
#{
merge_request
.
title
}
"
,
:class
=>
"gfm gfm-merge_request
#{
html_options
[
:class
]
}
"
))
if
merge_request
# snippet: $123
when
/^\$/
snippet
=
@project
.
snippets
.
where
(
:id
=>
snippet_id
).
first
link_to
(
"$
#{
snippet_id
}
"
,
project_snippet_path
(
@project
,
snippet
),
html_options
.
merge
(
:title
=>
"Snippet:
#{
snippet
.
title
}
"
,
:class
=>
"gfm gfm-snippet
#{
html_options
[
:class
]
}
"
))
if
snippet
# commit: 123456...
when
/^\h/
commit
=
@project
.
commit
(
commit_id
)
link_to
(
commit_id
,
project_commit_path
(
@project
,
:id
=>
commit
.
id
),
html_options
.
merge
(
:title
=>
"Commit:
#{
commit
.
author_name
}
-
#{
CommitDecorator
.
new
(
commit
).
title
}
"
,
:class
=>
"gfm gfm-commit
#{
html_options
[
:class
]
}
"
))
if
commit
end
# case
ref_link
.
nil?
?
match
:
"
#{
prefix
}#{
ref_link
}#{
suffix
}
"
end
# gsub
# Insert pre block extractions
text
.
gsub!
(
/\{gfm-extraction-(\h{32})\}/
)
do
extractions
[
$1
]
end
text
.
html_safe
end
# circumvents nesting links, which will behave bad in browsers
def
link_to_gfm
(
body
,
url
,
html_options
=
{})
gfm_body
=
gfm
(
body
,
html_options
)
gfm_body
.
gsub!
(
%r{<a.*?>.*?</a>}m
)
do
|
match
|
"</a>
#{
match
}#{
link_to
(
""
,
url
,
html_options
)[
0
..-
5
]
}
"
# "</a>".length +1
end
link_to
(
gfm_body
.
html_safe
,
url
,
html_options
)
end
def
markdown
(
text
)
@__renderer
||=
Redcarpet
::
Markdown
.
new
(
Redcarpet
::
Render
::
GitlabHTML
.
new
(
self
,
filter_html:
true
,
with_toc_data:
true
),
{
no_intra_emphasis:
true
,
...
...
app/helpers/gitlab_markdown_helper.rb
0 → 100644
View file @
6171a4d8
module
GitlabMarkdownHelper
def
gfm
(
text
,
html_options
=
{})
return
text
if
text
.
nil?
return
text
if
@project
.
nil?
# Extract pre blocks
# from http://github.github.com/github-flavored-markdown/
extractions
=
{}
text
.
gsub!
(
%r{<pre>.*?</pre>|<code>.*?</code>}m
)
do
|
match
|
md5
=
Digest
::
MD5
.
hexdigest
(
match
)
extractions
[
md5
]
=
match
"{gfm-extraction-
#{
md5
}
}"
end
# match 1 2 3 4 5 6
text
.
gsub!
(
/(\W)?(@([\w\._]+)|[#!$](\d+)|([\h]{6,40}))(\W)?/
)
do
|
match
|
prefix
=
$1
reference
=
$2
user_name
=
$3
issue_id
=
$4
merge_request_id
=
$4
snippet_id
=
$4
commit_id
=
$5
suffix
=
$6
# TODO: add popups with additional information
ref_link
=
case
reference
# team member: @foo
when
/^@/
user
=
@project
.
users
.
where
(
:name
=>
user_name
).
first
member
=
@project
.
users_projects
.
where
(
:user_id
=>
user
).
first
if
user
link_to
(
"@
#{
user_name
}
"
,
project_team_member_path
(
@project
,
member
),
html_options
.
merge
(
:class
=>
"gfm gfm-team_member
#{
html_options
[
:class
]
}
"
))
if
member
# issue: #123
when
/^#/
# avoid HTML entities
unless
prefix
.
try
(
:end_with?
,
"&"
)
&&
suffix
.
try
(
:start_with?
,
";"
)
issue
=
@project
.
issues
.
where
(
:id
=>
issue_id
).
first
link_to
(
"#
#{
issue_id
}
"
,
project_issue_path
(
@project
,
issue
),
html_options
.
merge
(
:title
=>
"Issue:
#{
issue
.
title
}
"
,
:class
=>
"gfm gfm-issue
#{
html_options
[
:class
]
}
"
))
if
issue
end
# merge request: !123
when
/^!/
merge_request
=
@project
.
merge_requests
.
where
(
:id
=>
merge_request_id
).
first
link_to
(
"!
#{
merge_request_id
}
"
,
project_merge_request_path
(
@project
,
merge_request
),
html_options
.
merge
(
:title
=>
"Merge Request:
#{
merge_request
.
title
}
"
,
:class
=>
"gfm gfm-merge_request
#{
html_options
[
:class
]
}
"
))
if
merge_request
# snippet: $123
when
/^\$/
snippet
=
@project
.
snippets
.
where
(
:id
=>
snippet_id
).
first
link_to
(
"$
#{
snippet_id
}
"
,
project_snippet_path
(
@project
,
snippet
),
html_options
.
merge
(
:title
=>
"Snippet:
#{
snippet
.
title
}
"
,
:class
=>
"gfm gfm-snippet
#{
html_options
[
:class
]
}
"
))
if
snippet
# commit: 123456...
when
/^\h/
commit
=
@project
.
commit
(
commit_id
)
link_to
(
commit_id
,
project_commit_path
(
@project
,
:id
=>
commit
.
id
),
html_options
.
merge
(
:title
=>
"Commit:
#{
commit
.
author_name
}
-
#{
CommitDecorator
.
new
(
commit
).
title
}
"
,
:class
=>
"gfm gfm-commit
#{
html_options
[
:class
]
}
"
))
if
commit
end
# case
ref_link
.
nil?
?
match
:
"
#{
prefix
}#{
ref_link
}#{
suffix
}
"
end
# gsub
# Insert pre block extractions
text
.
gsub!
(
/\{gfm-extraction-(\h{32})\}/
)
do
extractions
[
$1
]
end
text
.
html_safe
end
# circumvents nesting links, which will behave bad in browsers
def
link_to_gfm
(
body
,
url
,
html_options
=
{})
gfm_body
=
gfm
(
body
,
html_options
)
gfm_body
.
gsub!
(
%r{<a.*?>.*?</a>}m
)
do
|
match
|
"</a>
#{
match
}#{
link_to
(
""
,
url
,
html_options
)[
0
..-
5
]
}
"
# "</a>".length +1
end
link_to
(
gfm_body
.
html_safe
,
url
,
html_options
)
end
end
app/views/notes/_form.html.haml
View file @
6171a4d8
...
...
@@ -13,24 +13,21 @@
is enabled.
.row.note_advanced_opts.hide
.span4
%h5
Notify via email:
.clearfix
=
label_tag
:notify
do
=
check_box_tag
:notify
,
1
,
@note
.
noteable_type
!=
"Commit"
%span
Project team
.span4.notify_opts
%h6
.left
Notify via email:
=
label_tag
:notify
do
=
check_box_tag
:notify
,
1
,
@note
.
noteable_type
!=
"Commit"
%span
Project team
-
if
@note
.
notify_only_author?
(
current_user
)
=
label_tag
:notify_author
do
=
check_box_tag
:notify_author
,
1
,
@note
.
noteable_type
==
"Commit"
%span
Commit author
.span8
%h5
Attachment:
.clearfix
.attachments
%div
.file_name
File name...
%button
.file_upload.btn.small
Upload File
.input
=
f
.
file_field
:attachment
,
:class
=>
"input-file"
%span
Any file less than 10 MB
-
if
@note
.
notify_only_author?
(
current_user
)
=
label_tag
:notify_author
do
=
check_box_tag
:notify_author
,
1
,
@note
.
noteable_type
==
"Commit"
%span
Commit author
.span8.attachments
%h6
.left
Attachment:
%span
.file_name
File name...
%button
.file_upload.btn.small
Upload File
.input
=
f
.
file_field
:attachment
,
:class
=>
"input-file"
%span
.hint
Any file less than 10 MB
=
f
.
submit
'Add Comment'
,
:class
=>
"btn primary submit_note"
,
:id
=>
"submit_note"
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