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
dde28795
Commit
dde28795
authored
Oct 21, 2011
by
Aleksei Kvitinskii
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of dev.gitlabhq.com:gitlabhq
parents
cee93250
1477a6c8
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
147 additions
and
80 deletions
+147
-80
CHANGELOG
CHANGELOG
+2
-0
Gemfile
Gemfile
+1
-1
Gemfile.lock
Gemfile.lock
+7
-8
VERSION
VERSION
+1
-1
app/controllers/projects_controller.rb
app/controllers/projects_controller.rb
+21
-24
app/helpers/application_helper.rb
app/helpers/application_helper.rb
+0
-21
app/models/note.rb
app/models/note.rb
+1
-0
app/models/project.rb
app/models/project.rb
+28
-0
app/models/snippet.rb
app/models/snippet.rb
+6
-0
app/views/commits/_diff.html.haml
app/views/commits/_diff.html.haml
+3
-4
app/views/projects/_tree_file.html.haml
app/views/projects/_tree_file.html.haml
+5
-6
app/views/projects/empty.html.erb
app/views/projects/empty.html.erb
+4
-3
app/views/projects/show.html.haml
app/views/projects/show.html.haml
+5
-2
app/views/projects/wall.html.haml
app/views/projects/wall.html.haml
+4
-1
app/views/snippets/show.html.haml
app/views/snippets/show.html.haml
+1
-2
config/initializers/grit_ext.rb
config/initializers/grit_ext.rb
+8
-0
lib/utils.rb
lib/utils.rb
+47
-4
spec/requests/projects_spec.rb
spec/requests/projects_spec.rb
+1
-1
update.rb
update.rb
+2
-2
No files found.
CHANGELOG
View file @
dde28795
v 1.1.0
- project dashboard
- wall redesigned
- feature: code snippets
- fixed horizontal scroll on file preview
- fixed app crash if commit message has invalid chars
...
...
Gemfile
View file @
dde28795
...
...
@@ -15,7 +15,7 @@ gem 'therubyracer'
gem
'
faker
'
gem
'
seed-fu
'
,
:git
=>
'git://github.com/mbleigh/seed-fu.git'
gem
"
inifile
"
gem
"
albino
"
,
:git
=>
"git://github.com/gitlabhq/albino.git
"
gem
"
pygments.rb
"
,
"0.2.3
"
gem
"
kaminari
"
gem
"
thin
"
gem
"
git
"
...
...
Gemfile.lock
View file @
dde28795
...
...
@@ -4,13 +4,6 @@ GIT
specs:
annotate (2.4.1.beta1)
GIT
remote: git://github.com/gitlabhq/albino.git
revision: 118380924969f3a856659f86ea1f40c1ba7bfcb1
specs:
albino (1.3.3)
posix-spawn (>= 0.3.6)
GIT
remote: git://github.com/gitlabhq/grit.git
revision: ff015074ef35bd94cba943f9c0f98e161ab5851c
...
...
@@ -72,6 +65,7 @@ GEM
ZenTest (= 4.5)
awesome_print (0.4.0)
bcrypt-ruby (3.0.1)
blankslate (2.1.2.4)
builder (3.0.0)
capybara (1.0.1)
mime-types (>= 1.16)
...
...
@@ -138,6 +132,8 @@ GEM
orm_adapter (0.0.5)
polyglot (0.3.2)
posix-spawn (0.3.6)
pygments.rb (0.2.3)
rubypython (>= 0.5.1)
rack (1.3.2)
rack-cache (1.0.3)
rack (>= 0.4)
...
...
@@ -189,6 +185,9 @@ GEM
ruby-debug-base19 (>= 0.11.19)
ruby_core_source (0.1.5)
archive-tar-minitar (>= 0.5.2)
rubypython (0.5.1)
blankslate (>= 2.1.2.3)
ffi (~> 1.0.7)
rubyzip (0.9.4)
sass (3.1.7)
sass-rails (3.1.1)
...
...
@@ -242,7 +241,6 @@ PLATFORMS
DEPENDENCIES
acts_as_list
albino!
annotate!
autotest
autotest-rails
...
...
@@ -260,6 +258,7 @@ DEPENDENCIES
jquery-rails
kaminari
launchy
pygments.rb (= 0.2.3)
rails (= 3.1.0)
rails-footnotes (>= 3.7.5.rc4)
rspec-rails
...
...
VERSION
View file @
dde28795
1.
0.2
1.
1.0
app/controllers/projects_controller.rb
View file @
dde28795
...
...
@@ -60,24 +60,21 @@ class ProjectsController < ApplicationController
end
def
show
if
@project
.
repo_exists?
@date
=
case
params
[
:view
]
when
"week"
then
Date
.
today
-
7
.
days
else
Date
.
today
end
.
at_beginning_of_day
@heads
=
@project
.
repo
.
heads
@commits
=
@heads
.
map
do
|
h
|
@project
.
repo
.
log
(
h
.
name
,
nil
,
:since
=>
@date
)
end
.
flatten
.
uniq
{
|
c
|
c
.
id
}
@commits
.
sort!
do
|
x
,
y
|
y
.
committed_date
<=>
x
.
committed_date
end
return
render
"projects/empty"
unless
@project
.
repo_exists?
@date
=
case
params
[
:view
]
when
"week"
then
Date
.
today
-
7
.
days
when
"day"
then
Date
.
today
else
nil
end
if
@date
@date
=
@date
.
at_beginning_of_day
@commits
=
@project
.
commits_since
(
@date
)
@messages
=
project
.
notes
.
since
(
@date
).
order
(
"created_at DESC"
)
else
return
render
"projects/empty"
else
@commits
=
@project
.
fresh_commits
@messages
=
project
.
notes
.
fresh
.
limit
(
10
)
end
end
...
...
@@ -86,15 +83,15 @@ class ProjectsController < ApplicationController
#
def
wall
@date
=
case
params
[
:view
]
when
"week"
then
Date
.
today
-
7
.
days
when
"all"
then
nil
else
Date
.
today
end
@notes
=
@project
.
common_notes
.
order
(
"created_at DESC"
)
@notes
=
@notes
.
since
(
@date
.
at_beginning_of_day
)
if
@date
@note
=
Note
.
new
@notes
=
@project
.
common_notes
.
order
(
"created_at DESC"
)
@notes
=
case
params
[
:view
]
when
"week"
then
@notes
.
since
((
Date
.
today
-
7
.
days
).
at_beginning_of_day
)
when
"all"
then
@notes
.
all
when
"day"
then
@notes
.
since
(
Date
.
today
.
at_beginning_of_day
)
else
@notes
.
fresh
.
limit
(
10
)
end
end
#
...
...
app/helpers/application_helper.rb
View file @
dde28795
...
...
@@ -53,25 +53,4 @@ module ApplicationHelper
[
projects
,
default_nav
,
project_nav
].
flatten
.
to_json
end
def
handle_file_type
(
file_name
,
mime_type
=
nil
)
if
file_name
=~
/(\.rb|\.ru|\.rake|Rakefile|\.gemspec|\.rbx|Gemfile)$/
:ruby
elsif
file_name
=~
/\.py$/
:python
elsif
file_name
=~
/(\.pl|\.scala|\.c|\.cpp|\.java|\.haml|\.html|\.sass|\.scss|\.xml|\.php|\.erb)$/
$1
[
1
..-
1
].
to_sym
elsif
file_name
=~
/\.js$/
:javascript
elsif
file_name
=~
/\.sh$/
:bash
elsif
file_name
=~
/\.coffee$/
:coffeescript
elsif
file_name
=~
/\.yml$/
:yaml
elsif
file_name
=~
/\.md$/
:minid
else
:text
end
end
end
app/models/note.rb
View file @
dde28795
...
...
@@ -24,6 +24,7 @@ class Note < ActiveRecord::Base
scope
:last_week
,
where
(
"created_at >= :date"
,
:date
=>
(
Date
.
today
-
7
.
days
))
scope
:since
,
lambda
{
|
day
|
where
(
"created_at >= :date"
,
:date
=>
(
day
))
}
scope
:fresh
,
order
(
"created_at DESC"
)
mount_uploader
:attachment
,
AttachmentUploader
end
...
...
app/models/project.rb
View file @
dde28795
...
...
@@ -126,6 +126,34 @@ class Project < ActiveRecord::Base
end
end
def
heads
@heads
||=
repo
.
heads
end
def
fresh_commits
commits
=
heads
.
map
do
|
h
|
repo
.
commits
(
h
.
name
,
10
)
end
.
flatten
.
uniq
{
|
c
|
c
.
id
}
commits
.
sort!
do
|
x
,
y
|
y
.
committed_date
<=>
x
.
committed_date
end
commits
[
0
..
10
]
end
def
commits_since
(
date
)
commits
=
heads
.
map
do
|
h
|
repo
.
log
(
h
.
name
,
nil
,
:since
=>
date
)
end
.
flatten
.
uniq
{
|
c
|
c
.
id
}
commits
.
sort!
do
|
x
,
y
|
y
.
committed_date
<=>
x
.
committed_date
end
commits
end
def
tree
(
fcommit
,
path
=
nil
)
fcommit
=
commit
if
fcommit
==
:head
tree
=
fcommit
.
tree
...
...
app/models/snippet.rb
View file @
dde28795
class
Snippet
<
ActiveRecord
::
Base
include
Utils
::
Colorize
belongs_to
:project
belongs_to
:author
,
:class_name
=>
"User"
has_many
:notes
,
:as
=>
:noteable
...
...
@@ -28,6 +30,10 @@ class Snippet < ActiveRecord::Base
".js"
,
".sh"
,
".coffee"
,
".yml"
,
".md"
]
end
def
colorize
system_colorize
(
content
,
file_name
)
end
end
# == Schema Information
#
...
...
app/views/commits/_diff.html.haml
View file @
dde28795
-
require
"utils"
.file_stats
-
@commit
.
diffs
.
each
do
|
diff
|
-
if
diff
.
deleted_file
...
...
@@ -35,7 +34,7 @@
%strong
{
:id
=>
"#{diff.b_path}"
}=
diff
.
b_path
%br
/
.diff_file_content
-
if
file
.
mime_type
=~
/application|text/
&&
!
Utils
.
binary?
(
file
.
data
)
-
if
file
.
text?
-
lines_arr
=
diff
.
diff
.
lines
.
to_a
-
line_old
=
lines_arr
[
2
].
match
(
/-(\d)/
)[
0
].
to_i
.
abs
rescue
0
-
line_new
=
lines_arr
[
2
].
match
(
/\+(\d)/
)[
0
].
to_i
.
abs
rescue
0
...
...
@@ -50,9 +49,9 @@
-
else
-
line_new
+=
1
-
line_old
+=
1
-
elsif
file
.
mime_type
=~
/image/
-
elsif
file
.
image?
.diff_file_content_image
%img
{
:src
=>
"data:
image/jpeg
;base64,#{Base64.encode64(file.data)}"
}
%img
{
:src
=>
"data:
#{file.mime_type}
;base64,#{Base64.encode64(file.data)}"
}
-
else
%p
%center
No preview for this file type
app/views/projects/_tree_file.html.haml
View file @
dde28795
-
require
"utils"
:css
.view_file
.view_file_header
%strong
...
...
@@ -6,14 +6,13 @@
=
link_to
"raw"
,
blob_project_path
(
@project
,
:commit_id
=>
@commit
.
id
,
:path
=>
params
[
:path
]
),
:class
=>
"right"
,
:target
=>
"_blank"
=
link_to
"history"
,
project_commits_path
(
@project
,
:path
=>
params
[
:path
]),
:class
=>
"right"
,
:style
=>
"margin-right:10px;"
%br
/
-
if
file
.
mime_type
=~
/application|text/
&&
!
Utils
.
binary?
(
file
.
data
)
-
if
file
.
text?
.view_file_content
-
ft
=
handle_file_type
(
file
.
name
,
file
.
mime_type
)
:erb
<%=
raw
Albino
.
colorize
(
content
,
ft
,
:html
,
'utf-8'
,
"linenos=True"
)
%>
-
elsif
file
.
mime_type
=~
/image/
<%=
raw
file
.
colorize
%>
-
elsif
file
.
image?
.view_file_content_image
%img
{
:src
=>
"data:
image/jpeg
;base64,#{Base64.encode64(file.data)}"
}
%img
{
:src
=>
"data:
#{file.mime_type}
;base64,#{Base64.encode64(file.data)}"
}
-
else
%p
%center
No preview for this file type
...
...
app/views/projects/empty.html.erb
View file @
dde28795
<%
bash_lexer
=
Pygments
::
Lexer
[
:bash
]
%>
<div
class=
""
>
<div
class=
"git-empty"
>
<h2>
Git global setup:
</h2>
...
...
@@ -6,7 +7,7 @@ git config --global user.name "#{current_user.name}"
git config --global user.email "
#{
current_user
.
email
}
"
eos
%>
<%=
raw
Albino
.
colorize
(
setup_str
,
:bash
)
%>
<%=
raw
bash_lexer
.
highlight
(
setup_str
)
%>
<br
/>
<br
/>
<h2>
Next steps:
</h2>
...
...
@@ -21,7 +22,7 @@ git remote add origin #{@project.url_to_repo}
git push -u origin master
eos
%>
<%=
raw
Albino
.
colorize
(
repo_setup_str
,
:bash
)
%>
<%=
raw
bash_lexer
.
highlight
(
repo_setup_str
)
%>
<br
/><br
/>
<h2>
Existing Git Repo?
</h2>
...
...
@@ -31,7 +32,7 @@ git remote add origin #{@project.url_to_repo}
git push -u origin master
eos
%>
<%=
raw
Albino
.
colorize
(
exist_repo_setup_str
,
:bash
)
%>
<%=
raw
bash_lexer
.
highlight
(
exist_repo_setup_str
)
%>
<br
/><br
/>
<h2>
Remove this project?
</h2>
...
...
app/views/projects/show.html.haml
View file @
dde28795
%div
%h2
.left
Recent h
istory
%h2
.left
H
istory
.right
=
form_tag
project_path
(
@project
),
:method
=>
:get
do
.span-2
=
radio_button_tag
:view
,
"day"
,
(
params
[
:view
]
||
"day"
)
==
"day"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"day_view"
=
radio_button_tag
:view
,
"recent"
,
(
params
[
:view
]
||
"recent"
)
==
"recent"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"recent_view"
=
label_tag
"recent_view"
,
"Recent"
.span-2
=
radio_button_tag
:view
,
"day"
,
params
[
:view
]
==
"day"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"day_view"
=
label_tag
"day_view"
,
"Today"
.span-2
=
radio_button_tag
:view
,
"week"
,
params
[
:view
]
==
"week"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"week_view"
...
...
app/views/projects/wall.html.haml
View file @
dde28795
...
...
@@ -4,7 +4,10 @@
.right
=
form_tag
wall_project_path
(
@project
),
:method
=>
:get
do
.span-2
=
radio_button_tag
:view
,
"day"
,
(
params
[
:view
]
||
"day"
)
==
"day"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"day_view"
=
radio_button_tag
:view
,
"recent"
,
(
params
[
:view
]
||
"recent"
)
==
"recent"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"recent_view"
=
label_tag
"recent_view"
,
"Recent"
.span-2
=
radio_button_tag
:view
,
"day"
,
params
[
:view
]
==
"day"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"day_view"
=
label_tag
"day_view"
,
"Today"
.span-2
=
radio_button_tag
:view
,
"week"
,
params
[
:view
]
==
"week"
,
:onclick
=>
"this.form.submit()"
,
:id
=>
"week_view"
...
...
app/views/snippets/show.html.haml
View file @
dde28795
...
...
@@ -7,9 +7,8 @@
=
@snippet
.
file_name
%br
/
.view_file_content
-
ft
=
handle_file_type
(
@snippet
.
file_name
)
:erb
<%=
raw
Albino
.
colorize
(
@snippet
.
content
,
ft
,
:html
,
'utf-8'
,
"linenos=True"
)
%>
<%=
raw
@snippet
.
colorize
%>
-
if
can?
(
current_user
,
:admin_snippet
,
@project
)
||
@snippet
.
author
==
current_user
=
link_to
'Edit'
,
edit_project_snippet_path
(
@project
,
@snippet
),
:class
=>
"lbutton positive"
...
...
config/initializers/grit_ext.rb
0 → 100644
View file @
dde28795
require
'grit'
require
'pygments'
require
"utils"
Grit
::
Blob
.
class_eval
do
include
Utils
::
FileHelper
include
Utils
::
Colorize
end
lib/utils.rb
View file @
dde28795
module
Utils
def
self
.
binary?
(
string
)
string
.
each_byte
do
|
x
|
x
.
nonzero?
or
return
true
module
FileHelper
def
binary?
(
string
)
string
.
each_byte
do
|
x
|
x
.
nonzero?
or
return
true
end
false
end
def
image?
mime_type
=~
/image/
end
def
text?
mime_type
=~
/application|text/
&&
!
binary?
(
data
)
end
end
module
Colorize
def
colorize
system_colorize
(
data
,
name
)
end
def
system_colorize
(
data
,
file_name
)
ft
=
handle_file_type
(
file_name
)
Pygments
.
highlight
(
data
,
:lexer
=>
ft
,
:options
=>
{
:encoding
=>
'utf-8'
,
:linenos
=>
'True'
})
end
def
handle_file_type
(
file_name
,
mime_type
=
nil
)
if
file_name
=~
/(\.rb|\.ru|\.rake|Rakefile|\.gemspec|\.rbx|Gemfile)$/
:ruby
elsif
file_name
=~
/\.py$/
:python
elsif
file_name
=~
/(\.pl|\.scala|\.c|\.cpp|\.java|\.haml|\.html|\.sass|\.scss|\.xml|\.php|\.erb)$/
$1
[
1
..-
1
].
to_sym
elsif
file_name
=~
/\.js$/
:javascript
elsif
file_name
=~
/\.sh$/
:bash
elsif
file_name
=~
/\.coffee$/
:coffeescript
elsif
file_name
=~
/\.yml$/
:yaml
elsif
file_name
=~
/\.md$/
:minid
else
:text
end
end
false
end
end
spec/requests/projects_spec.rb
View file @
dde28795
...
...
@@ -73,7 +73,7 @@ describe "Projects" do
end
it
"should beahave like dashboard"
do
page
.
should
have_content
(
"
Recent h
istory"
)
page
.
should
have_content
(
"
H
istory"
)
end
end
...
...
update.rb
View file @
dde28795
...
...
@@ -19,8 +19,8 @@ env = if envs.include?(ARGV[0])
puts
yellow
"== RAILS ENV |
#{
env
}
"
current_version
=
version
puts
yellow
"Your version is
#{
current_version
}
"
puts
yellow
"Check for new version: $ git pull origin"
`git pull origin`
# pull from origin
puts
yellow
"Check for new version: $ git pull origin
1x
"
`git pull origin
1x
`
# pull from origin
# latest version
if
version
==
current_version
...
...
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