Restyle project home
* more focus for description and stars/forks * rename activity -> to project tab * put activity under tab: prepare place for README tab Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
db88190636
commit
8289308933
8 changed files with 104 additions and 110 deletions
|
@ -47,7 +47,7 @@ $ ->
|
||||||
$(@).parents('.no-ssh-key-message').hide()
|
$(@).parents('.no-ssh-key-message').hide()
|
||||||
e.preventDefault()
|
e.preventDefault()
|
||||||
|
|
||||||
$('.project-side .star').on 'ajax:success', (e, data, status, xhr) ->
|
$('.project-home-panel .star').on 'ajax:success', (e, data, status, xhr) ->
|
||||||
$(@).toggleClass('on').find('.count').html(data.star_count)
|
$(@).toggleClass('on').find('.count').html(data.star_count)
|
||||||
.on 'ajax:error', (e, xhr, status, error) ->
|
.on 'ajax:error', (e, xhr, status, error) ->
|
||||||
new Flash('Star toggle failed. Try again later.', 'alert')
|
new Flash('Star toggle failed. Try again later.', 'alert')
|
||||||
|
|
|
@ -35,39 +35,31 @@
|
||||||
width: 1%;
|
width: 1%;
|
||||||
&.active {
|
&.active {
|
||||||
a {
|
a {
|
||||||
color: #333;
|
color: $link_color;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
&:after {
|
&:after {
|
||||||
content: '';
|
content: '';
|
||||||
display: block;
|
display: block;
|
||||||
position: relative;
|
position: relative;
|
||||||
bottom: 8px;
|
bottom: -1px;
|
||||||
left: 50%;
|
border-color: $link_color;
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
border-color: transparent transparent #333 transparent;
|
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 6px;
|
border-width: 2px;
|
||||||
margin-left: -6px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
a {
|
a {
|
||||||
color: $link_color;
|
color: $link_hover_color;
|
||||||
&:after {
|
&:after {
|
||||||
content: '';
|
content: '';
|
||||||
display: block;
|
display: block;
|
||||||
position: relative;
|
position: relative;
|
||||||
bottom: 8px;
|
bottom: -1px;
|
||||||
left: 50%;
|
border-color: $link_hover_color;
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
border-color: transparent transparent $link_color transparent;
|
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 6px;
|
border-width: 2px;
|
||||||
margin-left: -6px;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -90,7 +82,6 @@
|
||||||
line-height: 34px;
|
line-height: 34px;
|
||||||
color: #777;
|
color: #777;
|
||||||
text-shadow: 0 1px 1px white;
|
text-shadow: 0 1px 1px white;
|
||||||
padding: 0 10px;
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
padding-top: 2px;
|
padding-top: 2px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,62 +15,64 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-home-panel {
|
.project-home-panel {
|
||||||
border-bottom: 1px solid #DDD;
|
margin-bottom: 15px;
|
||||||
padding-bottom: 15px;
|
|
||||||
margin-bottom: 30px;
|
|
||||||
|
|
||||||
&.empty-project {
|
&.empty-project {
|
||||||
border-bottom: 0px;
|
border-bottom: 0px;
|
||||||
padding-bottom: 15px;
|
padding-bottom: 15px;
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-home-title {
|
|
||||||
font-size: 18px;
|
|
||||||
color: #444;
|
|
||||||
margin: 0;
|
|
||||||
line-height: 32px;
|
|
||||||
}
|
|
||||||
.project-home-dropdown {
|
.project-home-dropdown {
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
.project-home-extra {
|
|
||||||
margin-top: 15px;
|
.project-home-row {
|
||||||
|
@extend .clearfix;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
|
||||||
.project-home-desc {
|
.project-home-desc {
|
||||||
float: left;
|
float: left;
|
||||||
color: #777;
|
color: #666;
|
||||||
margin-bottom: 10px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.project-home-links {
|
.star-fork-buttons {
|
||||||
float: right;
|
float: right;
|
||||||
a {
|
width: 200px;
|
||||||
margin-left: 10px;
|
font-size: 14px;
|
||||||
font-weight: 500;
|
font-weight: bold;
|
||||||
|
|
||||||
|
.star-buttons, .fork-buttons {
|
||||||
|
float: right;
|
||||||
|
margin-left: 20px;
|
||||||
|
|
||||||
|
.count {
|
||||||
|
margin-left: 5px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.visibility-level-label {
|
.visibility-level-label {
|
||||||
font-size: 17px;
|
color: #555;
|
||||||
background: #f1f1f1;
|
font-weight: bold;
|
||||||
border-radius: 4px;
|
|
||||||
color: #444;
|
|
||||||
position: absolute;
|
|
||||||
margin-left: -55px;
|
|
||||||
text-shadow: 0 1px 1px #FFF;
|
|
||||||
width: 40px;
|
|
||||||
text-align: center;
|
|
||||||
padding: 6px;
|
|
||||||
|
|
||||||
i {
|
i {
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.project-home-links {
|
||||||
|
padding: 10px 0px;
|
||||||
|
float: right;
|
||||||
|
a {
|
||||||
|
margin-left: 10px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.git-clone-holder {
|
.git-clone-holder {
|
||||||
.project-home-dropdown + & {
|
.project-home-dropdown + & {
|
||||||
margin-right: 45px;
|
margin-right: 45px;
|
||||||
|
|
|
@ -123,7 +123,7 @@ module ProjectsHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def link_to_toggle_star(title, starred, signed_in)
|
def link_to_toggle_star(title, starred, signed_in)
|
||||||
cls = 'btn btn-block'
|
cls = 'star-btn'
|
||||||
cls += ' disabled' unless signed_in
|
cls += ' disabled' unless signed_in
|
||||||
|
|
||||||
toggle_html = content_tag('span', class: 'toggle') do
|
toggle_html = content_tag('span', class: 'toggle') do
|
||||||
|
@ -151,7 +151,7 @@ module ProjectsHelper
|
||||||
|
|
||||||
content_tag 'span', class: starred ? 'turn-on' : 'turn-off' do
|
content_tag 'span', class: starred ? 'turn-on' : 'turn-off' do
|
||||||
link_to toggle_star_project_path(@project), link_opts do
|
link_to toggle_star_project_path(@project), link_opts do
|
||||||
toggle_html + count_html
|
toggle_html + ' ' + count_html
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
%ul
|
%ul
|
||||||
= nav_link(path: 'projects#show', html_options: {class: "home"}) do
|
= nav_link(path: 'projects#show', html_options: {class: "home"}) do
|
||||||
= link_to project_path(@project), title: "Project" do
|
= link_to project_path(@project), title: "Project" do
|
||||||
Activity
|
Project
|
||||||
|
|
||||||
- if project_nav_tab? :files
|
- if project_nav_tab? :files
|
||||||
= nav_link(controller: %w(tree blob blame edit_tree new_tree)) do
|
= nav_link(controller: %w(tree blob blame edit_tree new_tree)) do
|
||||||
|
|
|
@ -1,36 +1,48 @@
|
||||||
- empty_repo = @project.empty_repo?
|
- empty_repo = @project.empty_repo?
|
||||||
.project-home-panel{:class => ("empty-project" if empty_repo)}
|
.project-home-panel{:class => ("empty-project" if empty_repo)}
|
||||||
.visibility-level-label.has_tooltip{'data-title' => "#{visibility_level_label(@project.visibility_level)} project" }
|
.project-home-row
|
||||||
= visibility_level_icon(@project.visibility_level)
|
.project-home-desc
|
||||||
.row
|
- if @project.description.present?
|
||||||
.col-sm-6
|
= auto_link ERB::Util.html_escape(@project.description), link: :urls
|
||||||
%h4.project-home-title
|
- if can?(current_user, :admin_project, @project)
|
||||||
= @project.name_with_namespace
|
–
|
||||||
|
= link_to 'Edit', edit_project_path
|
||||||
|
- elsif !@project.empty_repo? && @repository.readme
|
||||||
|
- readme = @repository.readme
|
||||||
|
–
|
||||||
|
= link_to project_blob_path(@project, tree_join(@repository.root_ref, readme.name)) do
|
||||||
|
= readme.name
|
||||||
|
.star-fork-buttons
|
||||||
|
- unless @project.empty_repo?
|
||||||
|
.fork-buttons
|
||||||
|
- if current_user && can?(current_user, :fork_project, @project) && @project.namespace != current_user.namespace
|
||||||
|
- if current_user.already_forked?(@project)
|
||||||
|
= link_to project_path(current_user.fork_of(@project)) do
|
||||||
|
%i.icon-code-fork
|
||||||
|
Fork
|
||||||
|
%span.count
|
||||||
|
= @project.forks_count
|
||||||
|
- else
|
||||||
|
= link_to fork_project_path(@project), title: "Fork", class: "btn btn-block", method: "POST" do
|
||||||
|
%i.icon-code-fork
|
||||||
|
Fork
|
||||||
|
%span.count
|
||||||
|
= @project.forks_count
|
||||||
|
|
||||||
.col-sm-6
|
.star-buttons
|
||||||
- if current_user && !empty_repo
|
%span.star.js-toggler-container{class: @show_star ? 'on' : ''}
|
||||||
.project-home-dropdown
|
- if current_user
|
||||||
= render "dropdown"
|
= link_to_toggle_star('Star this project.', false, true)
|
||||||
= render "shared/clone_panel"
|
= link_to_toggle_star('Unstar this project.', true, true)
|
||||||
|
- else
|
||||||
|
= link_to_toggle_star('You must sign in to star a project.', false, false)
|
||||||
|
|
||||||
.project-home-extra.row
|
.project-home-row
|
||||||
.col-md-7
|
- if current_user && !empty_repo
|
||||||
.project-home-desc
|
.project-home-dropdown
|
||||||
- if @project.description.present?
|
= render "dropdown"
|
||||||
= auto_link ERB::Util.html_escape(@project.description), link: :urls
|
- unless @project.empty_repo?
|
||||||
- if can?(current_user, :admin_project, @project)
|
- if can? current_user, :download_code, @project
|
||||||
–
|
.pull-right.prepend-left-10
|
||||||
%strong= link_to 'Edit', edit_project_path
|
= render 'projects/repositories/download_archive', split_button: true
|
||||||
- elsif !@project.empty_repo? && @repository.readme
|
= render "shared/clone_panel"
|
||||||
- readme = @repository.readme
|
|
||||||
–
|
|
||||||
= link_to project_blob_path(@project, tree_join(@repository.root_ref, readme.name)) do
|
|
||||||
= readme.name
|
|
||||||
|
|
||||||
.col-md-5
|
|
||||||
.project-home-links
|
|
||||||
- unless empty_repo
|
|
||||||
= link_to pluralize(number_with_delimiter(@repository.commit_count), 'commit'), project_commits_path(@project, @ref || @repository.root_ref)
|
|
||||||
= link_to pluralize(number_with_delimiter(@repository.branch_names.count), 'branch'), project_branches_path(@project)
|
|
||||||
= link_to pluralize(number_with_delimiter(@repository.tag_names.count), 'tag'), project_tags_path(@project)
|
|
||||||
%span.light.prepend-left-20= repository_size
|
|
||||||
|
|
|
@ -1,5 +1,16 @@
|
||||||
= render "home_panel"
|
= render "home_panel"
|
||||||
|
|
||||||
|
%ul.nav.nav-tabs
|
||||||
|
%li.active
|
||||||
|
= link_to project_path(@project) do
|
||||||
|
Activity
|
||||||
|
.project-home-links
|
||||||
|
- unless @project.empty_repo?
|
||||||
|
= link_to pluralize(number_with_delimiter(@repository.commit_count), 'commit'), project_commits_path(@project, @ref || @repository.root_ref)
|
||||||
|
= link_to pluralize(number_with_delimiter(@repository.branch_names.count), 'branch'), project_branches_path(@project)
|
||||||
|
= link_to pluralize(number_with_delimiter(@repository.tag_names.count), 'tag'), project_tags_path(@project)
|
||||||
|
%span.light.prepend-left-20= repository_size
|
||||||
|
|
||||||
.row
|
.row
|
||||||
%section.col-md-9
|
%section.col-md-9
|
||||||
= render "events/event_last_push", event: @last_push
|
= render "events/event_last_push", event: @last_push
|
||||||
|
@ -22,33 +33,7 @@
|
||||||
%br
|
%br
|
||||||
= link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)
|
= link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)
|
||||||
|
|
||||||
.star-buttons
|
|
||||||
%span.star.js-toggler-container{class: @show_star ? 'on' : ''}
|
|
||||||
- if current_user
|
|
||||||
= link_to_toggle_star('Star this project.', false, true)
|
|
||||||
= link_to_toggle_star('Unstar this project.', true, true)
|
|
||||||
- else
|
|
||||||
= link_to_toggle_star('You must sign in to star a project.', false, false)
|
|
||||||
|
|
||||||
- unless @project.empty_repo?
|
- unless @project.empty_repo?
|
||||||
.fork-buttons
|
|
||||||
- if current_user && can?(current_user, :fork_project, @project) && @project.namespace != current_user.namespace
|
|
||||||
- if current_user.already_forked?(@project)
|
|
||||||
= link_to project_path(current_user.fork_of(@project)), class: 'btn btn-block' do
|
|
||||||
%i.icon-compass
|
|
||||||
Go to fork
|
|
||||||
%span.count
|
|
||||||
= @project.forks_count
|
|
||||||
- else
|
|
||||||
= link_to fork_project_path(@project), title: "Fork", class: "btn btn-block", method: "POST" do
|
|
||||||
%i.icon-code-fork
|
|
||||||
Fork repository
|
|
||||||
%span.count
|
|
||||||
= @project.forks_count
|
|
||||||
- unless @project.empty_repo?
|
|
||||||
- if can? current_user, :download_code, @project
|
|
||||||
= render 'projects/repositories/download_archive', btn_class: 'btn-block btn-group-justified', split_button: true
|
|
||||||
|
|
||||||
= link_to project_compare_index_path(@project, from: @repository.root_ref, to: @ref || @repository.root_ref), class: 'btn btn-block' do
|
= link_to project_compare_index_path(@project, from: @repository.root_ref, to: @ref || @repository.root_ref), class: 'btn btn-block' do
|
||||||
Compare code
|
Compare code
|
||||||
|
|
||||||
|
|
|
@ -4,3 +4,7 @@
|
||||||
%button{class: "btn #{ 'active' if default_clone_protocol == 'ssh' }", :"data-clone" => project.ssh_url_to_repo} SSH
|
%button{class: "btn #{ 'active' if default_clone_protocol == 'ssh' }", :"data-clone" => project.ssh_url_to_repo} SSH
|
||||||
%button{class: "btn #{ 'active' if default_clone_protocol == 'http' }", :"data-clone" => project.http_url_to_repo}= gitlab_config.protocol.upcase
|
%button{class: "btn #{ 'active' if default_clone_protocol == 'http' }", :"data-clone" => project.http_url_to_repo}= gitlab_config.protocol.upcase
|
||||||
= text_field_tag :project_clone, default_url_to_repo(project), class: "one_click_select form-control", readonly: true
|
= text_field_tag :project_clone, default_url_to_repo(project), class: "one_click_select form-control", readonly: true
|
||||||
|
.input-group-addon
|
||||||
|
.visibility-level-label.has_tooltip{'data-title' => "#{visibility_level_label(project.visibility_level)} project" }
|
||||||
|
= visibility_level_icon(project.visibility_level)
|
||||||
|
= visibility_level_label(project.visibility_level).downcase
|
||||||
|
|
Loading…
Reference in a new issue