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
Boxiang Sun
gitlab-ce
Commits
072b2d5d
Commit
072b2d5d
authored
Nov 05, 2011
by
Aleksei Kvitinskii
Browse files
Options
Browse Files
Download
Plain Diff
Implement tags cloud support for projects
parents
62112dc0
04997592
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
162 additions
and
109 deletions
+162
-109
app/assets/javascripts/commits.js
app/assets/javascripts/commits.js
+48
-0
app/assets/javascripts/note.js
app/assets/javascripts/note.js
+23
-1
app/assets/stylesheets/projects.css.scss
app/assets/stylesheets/projects.css.scss
+13
-36
app/controllers/application_controller.rb
app/controllers/application_controller.rb
+18
-0
app/controllers/commits_controller.rb
app/controllers/commits_controller.rb
+4
-6
app/controllers/issues_controller.rb
app/controllers/issues_controller.rb
+1
-4
app/controllers/projects_controller.rb
app/controllers/projects_controller.rb
+1
-4
app/views/commits/_commits.html.haml
app/views/commits/_commits.html.haml
+0
-1
app/views/commits/index.html.haml
app/views/commits/index.html.haml
+11
-1
app/views/commits/index.js.erb
app/views/commits/index.js.erb
+0
-2
app/views/commits/index.js.haml
app/views/commits/index.js.haml
+3
-0
app/views/commits/show.html.haml
app/views/commits/show.html.haml
+5
-19
app/views/issues/_show.html.haml
app/views/issues/_show.html.haml
+8
-6
app/views/issues/index.html.haml
app/views/issues/index.html.haml
+5
-5
app/views/issues/show.html.haml
app/views/issues/show.html.haml
+10
-13
app/views/layouts/application.html.haml
app/views/layouts/application.html.haml
+3
-8
app/views/notes/_load.js.haml
app/views/notes/_load.js.haml
+9
-2
spec/requests/commits_notes_spec.rb
spec/requests/commits_notes_spec.rb
+0
-1
No files found.
app/assets/javascripts/commits.js
View file @
072b2d5d
...
...
@@ -7,3 +7,51 @@ $(document).ready(function(){
}
});
});
var
CommitsList
=
{
ref
:
null
,
limit
:
0
,
offset
:
0
,
init
:
function
(
ref
,
limit
)
{
this
.
ref
=
ref
;
this
.
limit
=
limit
;
this
.
offset
=
limit
;
this
.
initLoadMore
();
$
(
'
.loading
'
).
show
();
},
getOld
:
function
()
{
$
(
'
.loading
'
).
show
();
$
.
ajax
({
type
:
"
GET
"
,
url
:
location
.
href
,
data
:
"
limit=
"
+
this
.
limit
+
"
&offset=
"
+
this
.
offset
+
"
&ref=
"
+
this
.
ref
,
complete
:
function
(){
$
(
'
.loading
'
).
hide
()},
dataType
:
"
script
"
});
},
append
:
function
(
count
,
html
)
{
$
(
"
#commits_list
"
).
append
(
html
);
if
(
count
>
0
)
{
this
.
offset
+=
count
;
this
.
initLoadMore
();
}
},
initLoadMore
:
function
()
{
$
(
window
).
bind
(
'
scroll
'
,
function
(){
if
(
$
(
window
).
scrollTop
()
==
$
(
document
).
height
()
-
$
(
window
).
height
()){
$
(
window
).
unbind
(
'
scroll
'
);
CommitsList
.
getOld
();
}
});
}
}
app/assets/javascripts/note.js
View file @
072b2d5d
...
...
@@ -31,6 +31,15 @@ append:
this
.
initLoadMore
();
},
replace
:
function
(
fid
,
lid
,
html
)
{
this
.
first_id
=
fid
;
this
.
last_id
=
lid
;
$
(
"
#notes-list
"
).
html
(
html
);
this
.
initLoadMore
();
},
prepend
:
function
(
id
,
html
)
{
this
.
last_id
=
id
;
...
...
@@ -47,10 +56,23 @@ getNew:
dataType
:
"
script
"
});
},
refresh
:
function
()
{
// refersh notes list
$
.
ajax
({
type
:
"
GET
"
,
url
:
location
.
href
,
data
:
"
first_id=
"
+
this
.
first_id
+
"
&last_id=
"
+
this
.
last_id
,
dataType
:
"
script
"
});
},
initRefresh
:
function
()
{
// init timer
var
int
=
setInterval
(
"
NoteList.getNew()
"
,
20000
);
var
intNew
=
setInterval
(
"
NoteList.getNew()
"
,
15000
);
var
intRefresh
=
setInterval
(
"
NoteList.refresh()
"
,
90000
);
},
initLoadMore
:
...
...
app/assets/stylesheets/projects.css.scss
View file @
072b2d5d
...
...
@@ -52,7 +52,8 @@
background
:
#eee
;
}
.diff_file_content
{
overflow-x
:
scroll
;
overflow
:auto
;
overflow-y
:hidden
;
background
:
#fff
;
color
:
#333
;
font-size
:
12px
;
...
...
@@ -162,10 +163,6 @@ table.round-borders {
padding
:
20px
;
}
//body {
//background: #eaeaea;
//}
a
{
color
:
#111
;
}
...
...
@@ -174,9 +171,9 @@ a {
.old_line
,
.new_line
{
background
:
#ECECEC
;
color
:
#777
;
width
:
15
px
;
width
:
30
px
;
float
:left
;
padding
:
0px
10
px
;
padding
:
0px
5
px
;
border-right
:
1px
solid
#ccc
;
}
}
...
...
@@ -231,43 +228,15 @@ input.ssh_project_url {
text-align
:center
;
}
.day-commits-table
li
.commit
{
cursor
:pointer
;
&
:hover
{
@include
hover-color
;
}
}
/*
#FFF6BF
#FFD324
*/
#tree-slider
tr
.tree-item
{
cursor
:pointer
;
&
:hover
{
@include
hover-color
;
td
{
@include
hover-color
;
}
}
}
#projects-list
.project
{
height
:
50px
;
}
#tree-slider
.tree-item
,
#projects-list
.project
,
#snippets-table
.snippet
,
#issues-table
.issue
{
cursor
:pointer
;
&
:hover
{
@include
hover-color
;
td
{
@include
hover-color
;
}
}
}
.clear
{
...
...
@@ -562,6 +531,7 @@ input.ssh_project_url {
@include
round-borders-all
(
4px
);
padding
:
2px
4px
;
border
:none
;
text-shadow
:none
;
&
.high
{
background
:
#D12F19
;
...
...
@@ -686,6 +656,13 @@ table.highlighttable pre{
width
:
200px
;
}
.issues_filter
{
margin-top
:
10px
;
.left
{
margin-right
:
15px
;
}
}
body
.project-page
#notes-list
.note
{
padding
:
10px
;
border-bottom
:
1px
solid
#eee
;
overflow
:
hidden
;
display
:
block
;}
body
.project-page
#notes-list
.note
{
padding
:
10px
;
border-bottom
:
1px
solid
#eee
;
overflow
:
hidden
;
display
:
block
;}
body
.project-page
#notes-list
.note
img
{
float
:
left
;
margin-right
:
10px
;}
...
...
app/controllers/application_controller.rb
View file @
072b2d5d
...
...
@@ -82,5 +82,23 @@ class ApplicationController < ActionController::Base
elsif
params
[
:view_style
]
==
"fluid"
cookies
[
:view_style
]
=
""
end
@view_mode
=
if
cookies
[
:view_style
]
==
"collapsed"
:fixed
else
:fluid
end
end
def
respond_with_notes
if
params
[
:last_id
]
&&
params
[
:first_id
]
@notes
=
@notes
.
where
(
"id >= ?"
,
params
[
:first_id
])
elsif
params
[
:last_id
]
@notes
=
@notes
.
where
(
"id > ?"
,
params
[
:last_id
])
elsif
params
[
:first_id
]
@notes
=
@notes
.
where
(
"id < ?"
,
params
[
:first_id
])
else
nil
end
end
end
app/controllers/commits_controller.rb
View file @
072b2d5d
...
...
@@ -13,11 +13,12 @@ class CommitsController < ApplicationController
load_refs
# load @branch, @tag & @ref
@repo
=
project
.
repo
limit
,
offset
=
(
params
[
:limit
]
||
20
),
(
params
[
:offset
]
||
0
)
if
params
[
:path
]
@commits
=
@repo
.
log
(
@ref
,
params
[
:path
],
:max_count
=>
params
[
:limit
]
||
100
,
:skip
=>
params
[
:offset
]
||
0
)
@commits
=
@repo
.
log
(
@ref
,
params
[
:path
],
:max_count
=>
limit
,
:skip
=>
offset
)
else
@commits
=
@repo
.
commits
(
@ref
,
params
[
:limit
]
||
100
,
params
[
:offset
]
||
0
)
@commits
=
@repo
.
commits
(
@ref
,
limit
,
offset
)
end
respond_to
do
|
format
|
...
...
@@ -33,10 +34,7 @@ class CommitsController < ApplicationController
respond_to
do
|
format
|
format
.
html
format
.
js
do
@notes
=
@notes
.
where
(
"id > ?"
,
params
[
:last_id
])
if
params
[
:last_id
]
@notes
=
@notes
.
where
(
"id < ?"
,
params
[
:first_id
])
if
params
[
:first_id
]
end
format
.
js
{
respond_with_notes
}
end
end
end
app/controllers/issues_controller.rb
View file @
072b2d5d
...
...
@@ -40,10 +40,7 @@ class IssuesController < ApplicationController
respond_to
do
|
format
|
format
.
html
format
.
js
do
@notes
=
@notes
.
where
(
"id > ?"
,
params
[
:last_id
])
if
params
[
:last_id
]
@notes
=
@notes
.
where
(
"id < ?"
,
params
[
:first_id
])
if
params
[
:first_id
]
end
format
.
js
{
respond_with_notes
}
end
end
...
...
app/controllers/projects_controller.rb
View file @
072b2d5d
...
...
@@ -92,10 +92,7 @@ class ProjectsController < ApplicationController
respond_to
do
|
format
|
format
.
html
format
.
js
do
@notes
=
@notes
.
where
(
"id > ?"
,
params
[
:last_id
])
if
params
[
:last_id
]
@notes
=
@notes
.
where
(
"id < ?"
,
params
[
:first_id
])
if
params
[
:first_id
]
end
format
.
js
{
respond_with_notes
}
end
end
...
...
app/views/commits/_commits.html.haml
View file @
072b2d5d
...
...
@@ -22,4 +22,3 @@
%strong
=
commit
.
author_name
=
time_ago_in_words
(
commit
.
committed_date
)
ago
=
more_commits_link
if
@commits
.
size
>
99
app/views/commits/index.html.haml
View file @
072b2d5d
...
...
@@ -15,4 +15,14 @@
.right
=
render
:partial
=>
"projects/refs"
,
:locals
=>
{
:destination
=>
project_commits_path
(
@project
)
}
%div
{
:id
=>
dom_id
(
@project
)}
=
render
"commits"
#commits_list
=
render
"commits"
.clear
.loading
{
:style
=>
"display:none;"
}
%center
=
image_tag
"ajax-loader.gif"
:javascript
$
(
function
(){
CommitsList
.
init
(
"
#{
@ref
}
"
,
20
);
});
app/views/commits/index.js.erb
deleted
100644 → 0
View file @
62112dc0
$("#more-commits-link").remove();
$('#
<%=
dom_id
(
@project
)
%>
').append('
<%=
escape_javascript
(
render
(
"commits"
))
%>
');
app/views/commits/index.js.haml
0 → 100644
View file @
072b2d5d
:plain
CommitsList.append(
#{
@commits
.
count
}
, "
#{
escape_javascript
(
render
(
:partial
=>
'commits/commits'
))
}
");
app/views/commits/show.html.haml
View file @
072b2d5d
%h3
=
"[
#{
@commit
.
committer
}
]
#{
truncate
(
@commit
.
safe_message
)
}
"
=
"[
#{
@commit
.
author_name
}
]
#{
truncate
(
@commit
.
safe_message
,
:length
=>
70
)
}
"
-#= link_to 'Back', project_commits_path(@project), :class => "button"
%table
.round-borders
%tr
...
...
@@ -8,12 +8,9 @@
%tr
%td
Author
%td
=
@commit
.
author_name
%tr
%td
Commiter
%td
=
@commit
.
committer
%tr
%td
Commited Date
%td
=
@commit
.
committed_date
%td
=
@commit
.
committed_date
.
stamp
(
"21 Aug 2011, 11:15pm"
)
%tr
%td
Message
%td
...
...
@@ -24,18 +21,7 @@
%td
=
link_to
'Browse Code'
,
tree_project_path
(
@project
,
:commit_id
=>
@commit
.
id
)
.clear
#tabs
%ul
%li
%a
{
:href
=>
"#tabs-1"
}
Diff
%li
%a
{
:href
=>
"#tabs-2"
}
Comments
%span
{
:class
=>
"notes_count"
}=
@notes
.
count
%hr
#tabs-1
=
render
"commits/diff"
#tabs-2
=
render
"notes/notes"
%br
:javascript
$
(
function
()
{
$
(
"
#tabs
"
).
tabs
();
});
=
render
"commits/diff"
=
render
"notes/notes"
app/views/issues/_show.html.haml
View file @
072b2d5d
...
...
@@ -4,10 +4,11 @@
=
image_tag
"move.png"
,
:class
=>
[
:handle
,
:left
]
%td
=
image_tag
gravatar_icon
(
issue
.
assignee
.
email
),
:class
=>
"left"
,
:width
=>
40
,
:style
=>
"padding:0 5px;"
=
truncate
issue
.
assignee
.
name
,
:lenght
=>
20
=
issue
.
assignee
.
name
%td
##{issue.id}
%td
=
truncate
(
html_escape
(
issue
.
title
),
:length
=>
60
)
=
truncate
(
html_escape
(
issue
.
title
),
:length
=>
200
)
%br
%br
-
if
issue
.
critical
%span
.tag.high
critical
...
...
@@ -27,6 +28,7 @@
-
else
=
check_box_tag
"closed"
,
1
,
issue
.
closed
,
:disabled
=>
true
%td
-
if
@view_mode
==
:fluid
-
if
can?
(
current_user
,
:admin_issue
,
@project
)
||
issue
.
author
==
current_user
=
link_to
'Edit'
,
edit_project_issue_path
(
@project
,
issue
),
:class
=>
"lbutton positive"
,
:remote
=>
true
-
if
can?
(
current_user
,
:admin_issue
,
@project
)
||
issue
.
author
==
current_user
...
...
app/views/issues/index.html.haml
View file @
072b2d5d
...
...
@@ -7,18 +7,18 @@
=
hidden_field_tag
:project_id
,
@project
.
id
,
{
:id
=>
'project_id'
}
=
search_field_tag
:issue_search
,
nil
,
{
:placeholder
=>
'Search'
,
:class
=>
'issue_search'
}
.right
.right
.issues_filter
=
form_tag
project_issues_path
(
@project
),
:method
=>
:get
do
.
span-2
.
left
=
radio_button_tag
:f
,
0
,
(
params
[
:f
]
||
"0"
)
==
"0"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"open_issues"
,
:class
=>
"status"
=
label_tag
"open_issues"
,
"Open"
.
span-2
.
left
=
radio_button_tag
:f
,
2
,
params
[
:f
]
==
"2"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"closed_issues"
,
:class
=>
"status"
=
label_tag
"closed_issues"
,
"Closed"
.
span-2
.
left
=
radio_button_tag
:f
,
3
,
params
[
:f
]
==
"3"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"my_issues"
,
:class
=>
"status"
=
label_tag
"my_issues"
,
"To Me"
.
span-2
.
left
=
radio_button_tag
:f
,
1
,
params
[
:f
]
==
"1"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"all_issues"
,
:class
=>
"status"
=
label_tag
"all_issues"
,
"All"
...
...
app/views/issues/show.html.haml
View file @
072b2d5d
%h2
=
"Issue #
#{
@issue
.
id
}
-
#{
html_escape
(
@issue
.
title
)
}
"
%strong
Issue
=
"#
#{
@issue
.
id
}
"
–
=
html_escape
(
@issue
.
title
)
.left.width-65p
.issue_notes
=
render
"notes/notes"
...
...
@@ -8,14 +12,6 @@
.right.width-30p
.span-8
%table
.round-borders
%tr
%td
Title:
%td
=
truncate
html_escape
(
@issue
.
title
)
%tr
%td
Project
%td
%strong
=
@issue
.
project
.
name
%tr
%td
Author:
%td
...
...
@@ -39,7 +35,7 @@
%tr
%td
Closed?
%td
-
if
can?
current_user
,
:write_issue
,
@
project
-
if
can?
current_user
,
:write_issue
,
@
issue
=
form_for
([
@project
,
@issue
])
do
|
f
|
=
f
.
check_box
:closed
,
:onclick
=>
"$(this).parent().submit();"
=
hidden_field_tag
:status_only
,
true
...
...
@@ -47,8 +43,9 @@
=
check_box_tag
"closed"
,
1
,
@issue
.
closed
,
:disabled
=>
true
-
if
can?
(
current_user
,
:
admin
_issue
,
@issue
)
-
if
can?
(
current_user
,
:
write
_issue
,
@issue
)
.clear
%br
=
link_to
'Edit'
,
edit_project_issue_path
(
@project
,
@issue
),
:class
=>
"lbutton positive"
,
:remote
=>
true
.right
=
link_to
'Destroy'
,
[
@project
,
@issue
],
:confirm
=>
'Are you sure?'
,
:method
=>
:delete
,
:class
=>
"lbutton delete-issue negative"
,
:id
=>
"destroy_issue_
#{
@issue
.
id
}
"
.clear
app/views/layouts/application.html.haml
View file @
072b2d5d
...
...
@@ -2,11 +2,7 @@
%html
%head
%title
GitLab
#{
" - #{@project.name}"
if
@project
&&
!
@project
.
new_record?
}
-#= stylesheet_link_tag 'blueprint/screen', :media => "screen, projection"
-#= stylesheet_link_tag 'blueprint/print', :media => "print"
-#= stylesheet_link_tag 'blueprint/plugins/buttons/screen', :media => "screen, projection"
-#= stylesheet_link_tag 'blueprint/plugins/link-icons/screen', :media => "screen, projection"
GitLab
=
stylesheet_link_tag
"application"
=
javascript_include_tag
"application"
=
csrf_meta_tags
...
...
@@ -17,6 +13,5 @@
#container
=
render
:partial
=>
"layouts/flash"
=
render
:partial
=>
"layouts/head_panel"
%div
{
:id
=>
"main"
,
:role
=>
"main"
,
:class
=>
"container_4"
}
=
render
:partial
=>
"layouts/page_title"
=
yield
app/views/notes/_load.js.haml
View file @
072b2d5d
-
unless
@notes
.
blank?
-
if
params
[
:last_id
]
-
if
params
[
:last_id
]
&&
params
[
:first_id
]
:plain
NoteList.replace(
#{
@notes
.
last
.
id
}
,
#{
@notes
.
first
.
id
}
, "
#{
escape_javascript
(
render
(
:partial
=>
'notes/notes_list'
))
}
");
-
elsif
params
[
:last_id
]
:plain
NoteList.prepend(
#{
@notes
.
first
.
id
}
, "
#{
escape_javascript
(
render
(
:partial
=>
'notes/notes_list'
))
}
");
-
if
params
[
:first_id
]
-
els
if
params
[
:first_id
]
:plain
NoteList.append(
#{
@notes
.
last
.
id
}
, "
#{
escape_javascript
(
render
(
:partial
=>
'notes/notes_list'
))
}
");
-
else
:plain
spec/requests/commits_notes_spec.rb
View file @
072b2d5d
...
...
@@ -12,7 +12,6 @@ describe "Issues" do
describe
"add new note"
,
:js
=>
true
do
before
do
visit
project_commit_path
(
project
,
commit
)
click_link
"Comments"
# notes tab
fill_in
"note_note"
,
:with
=>
"I commented this commit"
click_button
"Add note"
end
...
...
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