Commit 201f867e authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

Merge branch 'ce-to-ee' into 'master'

CE to EE

See merge request !387
parents 548b41bf 23b4cc06
......@@ -14,7 +14,7 @@ v 7.11.0 (unreleased)
- Redirect to sign in page after signing out.
- Fix "Hello @username." references not working by no longer allowing usernames to end in period.
- Fix "Revspec not found" errors when viewing diffs in a forked project with submodules (Stan Hu)
-
- Improve project page UI
- Fix broken file browsing with relative submodule in personal projects (Stan Hu)
- Fix DB error when trying to tag a repository (Stan Hu)
- Add "Reply quoting selected text" shortcut key (`r`)
......@@ -45,6 +45,9 @@ v 7.11.0 (unreleased)
- Add footnotes support to Markdown (Guillaume Delbergue)
- Add current_sign_in_at to UserFull REST api.
v 7.10.2
- Fix CI links on MR page
v 7.10.0
- Ignore submodules that are defined in .gitmodules but are checked in as directories.
- Allow projects to be imported from Google Code.
......
......@@ -17,37 +17,26 @@
.project-home-panel {
margin-bottom: 20px;
position: relative;
padding-left: 85px;
&.empty-project {
border-bottom: 0px;
padding-bottom: 15px;
margin-bottom: 0px;
}
padding-left: 65px;
border-bottom: 1px solid #DDD;
padding-bottom: 10px;
padding-top: 5px;
min-height: 50px;
.project-identicon-holder {
position: absolute;
left: 0;
top: -10px;
.avatar {
width: 70px;
height: 70px;
width: 50px;
height: 50px;
}
.identicon {
font-size: 45px;
line-height: 1.6;
}
.avatar, .identicon {
@include border-radius(4px);
box-shadow: 0 1px 2px #ddd;
}
font-size: 26px;
line-height: 50px;
}
.project-home-dropdown {
margin-left: 10px;
float: right;
}
.project-home-row {
......@@ -61,7 +50,7 @@
.project-home-desc {
font-size: 16px;
line-height: 1.3;
margin-right: 215px;
margin-right: 250px;
}
.project-home-desc {
......@@ -81,7 +70,7 @@
margin-top: -3px;
position: absolute;
right: 0;
width: 260px;
width: 265px;
text-align: right;
.btn {
......@@ -99,15 +88,6 @@
}
}
.project-home-links {
padding: 10px 0px;
float: right;
a {
margin-left: 10px;
font-weight: 500;
}
}
.git-clone-holder {
.project-home-dropdown + & {
margin-right: 45px;
......@@ -213,49 +193,26 @@ ul.nav.nav-projects-tabs {
}
.project-side {
.btn-block {
background-image: none;
.btn, &.btn {
white-space: normal;
text-align: left;
padding: 10px 15px;
&.dropdown-toggle {
text-align: center;
}
&:hover {
background-color: #eee;
border-color: #DDD;
}
.project-fork-icon {
float: left;
font-size: 26px;
margin-right: 10px;
line-height: 1.5;
}
.count {
float: right;
font-weight: 500;
text-shadow: 0 1px #FFF;
.well {
h4 {
font-weight: normal;
margin: 0;
}
&.btn-group-justified {
.btn {
width: 100%;
}
.dropdown-toggle {
width: 30px;
.nav-pills a {
padding: 10px;
}
ul {
width: 100%;
}
}
}
.project-fork-icon {
float: left;
font-size: 26px;
margin-right: 10px;
line-height: 1.5;
.nav {
margin: 10px 0;
}
}
}
......
class DeviseMailer < Devise::Mailer
default from: "GitLab <#{Gitlab.config.gitlab.email_from}>"
default from: "#{Gitlab.config.gitlab.email_display_name} <#{Gitlab.config.gitlab.email_from}>"
default reply_to: Gitlab.config.gitlab.email_reply_to
end
......@@ -44,7 +44,7 @@ class GitlabCiService < CiService
end
def commit_status_path(sha, ref)
project_url + "/refs/#{ref}/commits/#{sha}/status.json?token=#{token}"
URI::encode(project_url + "/refs/#{ref}/commits/#{sha}/status.json?token=#{token}")
end
def get_ci_build(sha, ref)
......@@ -91,7 +91,7 @@ class GitlabCiService < CiService
end
def build_page(sha, ref)
project_url + "/refs/#{ref}/commits/#{sha}"
URI::encode(project_url + "/refs/#{ref}/commits/#{sha}")
end
def builds_path
......
......@@ -81,7 +81,7 @@
= f.label :restricted_signup_domains, 'Restricted domains for sign-ups', class: 'control-label col-sm-2'
.col-sm-10
= f.text_area :restricted_signup_domains_raw, placeholder: 'domain.com', class: 'form-control'
.help-block Ex: domain.com, *.domain.com. Wildcards allowed. Use separate lines for multiple entries.
.help-block Only users with e-mail addresses that match these domain(s) will be able to sign-up. Wildcards allowed. Use separate lines for multiple entries. Ex: domain.com, *.domain.com
.form-actions
= f.submit 'Save', class: 'btn btn-primary'
......@@ -4,7 +4,8 @@
= link_to root_path, class: 'home', title: 'Dashboard', id: 'js-shortcuts-home', data: {toggle: 'tooltip', placement: 'bottom'} do
= brand_header_logo
%h3 GitLab
%h1.title= title
%h1.title
= title
%button.navbar-toggle{type: 'button', data: {target: '.navbar-collapse', toggle: 'collapse'}}
%span.sr-only Toggle navigation
......
.clearfix
.append-bottom-20
= render "shared/clone_panel"
- unless @project.empty_repo?
.well
%h4 Repository
%ul.nav.nav-pills
%li= link_to pluralize(number_with_delimiter(@repository.commit_count), 'commit'), namespace_project_commits_path(@project.namespace, @project, @ref || @repository.root_ref)
%li= link_to pluralize(number_with_delimiter(@repository.branch_names.count), 'branch'), namespace_project_branches_path(@project.namespace, @project)
%li= link_to pluralize(number_with_delimiter(@repository.tag_names.count), 'tag'), namespace_project_tags_path(@project.namespace, @project)
.actions
= link_to namespace_project_compare_index_path(@project.namespace, @project, from: @repository.root_ref, to: @ref || @repository.root_ref), class: 'btn btn-sm' do
%i.fa.fa-exchange
Compare code
- if can?(current_user, :download_code, @project)
&nbsp;
= render 'projects/repositories/download_archive', split_button: true, btn_class: 'btn-group-sm'
- unless @project.empty_repo?
.well
%h4 Contribute
%ul.nav.nav-pills
- if @repository.changelog
%li.hidden-xs
= link_to changelog_url(@project) do
Changelog
- if @repository.contribution_guide
%li.hidden-xs
= link_to contribution_guide_url(@project) do
Contribution guide
- if @repository.license
%li
= link_to license_url(@project) do
License
.actions
= link_to url_for_new_issue(@project, only_path: true), title: "New Issue", class: 'btn btn-sm' do
%i.fa.fa-fw.fa-exclamation-circle
New issue
- if @project.archived?
.alert.alert-warning
%h4
%i.fa.fa-exclamation-triangle
Archived project!
%p Repository is read-only
- if @project.forked_from_project
.well
%i.fa.fa-code-fork.project-fork-icon
Forked from:
%br
= link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)
- if version = @repository.version
.well
%h4
Version
.pull-right
= link_to version_url(@project) do
= @repository.blob_by_oid(version.id).data
- @project.ci_services.each do |ci_service|
- if ci_service.active? && ci_service.respond_to?(:builds_path)
.well
%h4
= ci_service.title
.pull-right
- if ci_service.respond_to?(:status_img_path)
= link_to ci_service.builds_path, :'data-no-turbolink' => 'data-no-turbolink' do
= image_tag ci_service.status_img_path, alt: "build status"
- else
= link_to 'view builds', ci_service.builds_path, :'data-no-turbolink' => 'data-no-turbolink'
- if current_user
.dropdown.pull-right
%a.dropdown-toggle.btn.btn-new{href: '#', "data-toggle" => "dropdown"}
%a.dropdown-toggle.btn.btn-sm{href: '#', "data-toggle" => "dropdown"}
%i.fa.fa-bars
%ul.dropdown-menu
- if @project.issues_enabled && can?(current_user, :write_issue, @project)
......
- empty_repo = @project.empty_repo?
.project-home-panel{:class => ("empty-project" if empty_repo)}
.project-home-panel.clearfix{:class => ("empty-project" if empty_repo)}
.project-identicon-holder
= project_icon(@project, alt: '', class: 'avatar project-avatar')
.project-home-row.project-home-row-top
......@@ -9,7 +9,7 @@
- if can?(current_user, :admin_project, @project)
&ndash;
= link_to 'Edit', edit_namespace_project_path
- elsif !@project.empty_repo? && @repository.readme
- elsif !empty_repo && @repository.readme
- readme = @repository.readme
&ndash;
= link_to namespace_project_blob_path(@project.namespace, @project, tree_join(@repository.root_ref, readme.name)) do
......@@ -26,7 +26,7 @@
Star
%span.count
= @project.star_count
- unless @project.empty_repo?
- unless empty_repo
- if current_user && can?(current_user, :fork_project, @project) && @project.namespace != current_user.namespace
.inline.fork-buttons.prepend-left-10
- if current_user.already_forked?(@project) && current_user.manageable_namespaces.size < 2
......@@ -35,9 +35,3 @@
- else
= link_to new_namespace_project_fork_path(@project.namespace, @project), title: "Fork project", class: 'btn btn-sm btn-default' do
= link_to_toggle_fork
.project-home-row.hidden-xs
- if current_user && !empty_repo
.project-home-dropdown
= render "dropdown"
= render "shared/clone_panel"
%ul.nav.nav-tabs
%li.active
= link_to '#tab-activity', 'data-toggle' => 'tab' do
Activity
- if @repository.readme
%li
= link_to '#tab-readme', 'data-toggle' => 'tab' do
Readme
.tab-content
.tab-pane.active#tab-activity
.hidden-xs
= render "events/event_last_push", event: @last_push
- if current_user
%ul.nav.nav-pills.event_filter.pull-right
%li
= link_to namespace_project_path(@project.namespace, @project, format: :atom, private_token: current_user.private_token), title: "Feed", class: 'rss-btn' do
%i.fa.fa-rss
Activity Feed
= render 'shared/event_filter'
%hr
.content_list
= spinner
- if readme = @repository.readme
.tab-pane#tab-readme
%article.readme-holder#README
= link_to namespace_project_blob_path(@project.namespace, @project, tree_join(@repository.root_ref, readme.name)) do
%h4.readme-file-title
%i.fa.fa-file
= readme.name
.wiki
= render_readme(readme)
......@@ -13,6 +13,8 @@
add a file
&nbsp;or do a push via the command line.
.well
= render "shared/clone_panel"
%h4
%strong Command line instructions
%div.git-empty
......
......@@ -32,7 +32,7 @@
.issuable-context-title
%label
Subscription:
%button.btn.btn-block.subscribe-button
%button.btn.btn-block.subscribe-button{:type => 'button'}
%i.fa.fa-eye
%span= @issue.subscribed?(current_user) ? "Unsubscribe" : "Subscribe"
- subscribtion_status = @issue.subscribed?(current_user) ? "subscribed" : "unsubscribed"
......
......@@ -34,7 +34,7 @@
.issuable-context-title
%label
Subscription:
%button.btn.btn-block.subscribe-button
%button.btn.btn-block.subscribe-button{:type => 'button'}
%i.fa.fa-eye
%span= @merge_request.subscribed?(current_user) ? "Unsubscribe" : "Subscribe"
- subscribtion_status = @merge_request.subscribed?(current_user) ? "subscribed" : "unsubscribed"
......
......@@ -40,7 +40,6 @@
git merge --no-ff #{@merge_request.source_branch}
git push origin #{@merge_request.target_branch}
:javascript
$(function(){
var modal = $('#modal_merge_info').modal({modal: true, show:false});
......
......@@ -58,7 +58,7 @@
command line
%p
%button.btn.disabled
%button.btn.disabled{:type => 'button'}
%i.fa.fa-warning
Accept Merge Request
&nbsp;
......@@ -69,7 +69,7 @@
This request can't be merged because it is marked a <strong>Work In Progress</strong>.
%p
%button.btn.disabled
%button.btn.disabled{:type => 'button'}
%i.fa.fa-warning
Accept Merge Request
&nbsp;
......
......@@ -7,115 +7,10 @@
= render 'shared/no_password'
= render "home_panel"
%ul.nav.nav-tabs
%li.active
= link_to '#tab-activity', 'data-toggle' => 'tab' do
Activity
- if @repository.readme
%li
= link_to '#tab-readme', 'data-toggle' => 'tab' do
Readme
- if @repository.changelog
%li.hidden-xs
= link_to changelog_url(@project) do
Changelog
- if @repository.contribution_guide
%li.hidden-xs
= link_to contribution_guide_url(@project) do
Contribution guide
- if @repository.license
%li
= link_to license_url(@project) do
License
= render 'shared/show_aside'
.project-home-links
- unless @project.empty_repo?
= link_to pluralize(number_with_delimiter(@repository.commit_count), 'commit'), namespace_project_commits_path(@project.namespace, @project, @ref || @repository.root_ref)
= link_to pluralize(number_with_delimiter(@repository.branch_names.count), 'branch'), namespace_project_branches_path(@project.namespace, @project)
= link_to pluralize(number_with_delimiter(@repository.tag_names.count), 'tag'), namespace_project_tags_path(@project.namespace, @project)
%span.light.prepend-left-20= repository_size
.tab-content
.tab-pane.active#tab-activity
= render 'shared/show_aside'
.row
%section.col-md-9
.hidden-xs
= render "events/event_last_push", event: @last_push
- if current_user
%ul.nav.nav-pills.event_filter.pull-right
%li
= link_to namespace_project_path(@project.namespace, @project, format: :atom, private_token: current_user.private_token), title: "Feed", class: 'rss-btn' do
%i.fa.fa-rss
Activity Feed
= render 'shared/event_filter'
%hr
.content_list
= spinner
%aside.col-md-3.project-side
.clearfix
- if @project.archived?
.alert.alert-warning
%h4
%i.fa.fa-exclamation-triangle
Archived project!
%p Repository is read-only
- if @project.forked_from_project
.well
%i.fa.fa-code-fork.project-fork-icon
Forked from:
%br
= link_to @project.forked_from_project.name_with_namespace, project_path(@project.forked_from_project)
- unless @project.empty_repo?
= link_to namespace_project_compare_index_path(@project.namespace, @project, from: @repository.root_ref, to: @ref || @repository.root_ref), class: 'btn btn-block' do
%i.fa.fa-exchange
Compare code
- if can?(current_user, :download_code, @project)
= render 'projects/repositories/download_archive', split_button: true, btn_class: 'btn-block'
- if version = @repository.version
- detail_url = changelog_url(@project) || version_url(@project)
= link_to detail_url, class: 'btn btn-block' do
%i.fa.fa-file-text-o
Version:
%span.count
= @repository.blob_by_oid(version.id).data
.prepend-top-10.append-bottom-10
%p
%span.light Created on
#{@project.created_at.stamp('Aug 22, 2013')}
%p
%span.light Owned by #{@project.group ? "the" : nil}
- if @project.group
#{link_to @project.group.name, @project.group} group
- else
#{link_to @project.owner_name, @project.owner}
.prepend-top-10
- @project.ci_services.each do |ci_service|
- if ci_service.active? && ci_service.respond_to?(:builds_path)
%hr
- if ci_service.respond_to?(:status_img_path)
= link_to ci_service.builds_path, :'data-no-turbolink' => 'data-no-turbolink' do
= image_tag ci_service.status_img_path, alt: "build status"
- else
%span.light CI provided by
= link_to ci_service.title, ci_service.builds_path, :'data-no-turbolink' => 'data-no-turbolink'
- if readme = @repository.readme
.tab-pane#tab-readme
%article.readme-holder#README
= link_to namespace_project_blob_path(@project.namespace, @project, tree_join(@repository.root_ref, readme.name)) do
%h4.readme-file-title
%i.fa.fa-file
= readme.name
.wiki
= render_readme(readme)
.row
%section.col-md-8
= render 'section'
%aside.col-md-4.project-side
= render 'aside'
......@@ -2,6 +2,7 @@
.git-clone-holder.input-group
.input-group-btn
%button{ |
:type => 'button', |
class: "btn #{ 'active' if default_clone_protocol == 'ssh' }#{ ' has_tooltip' if current_user && current_user.require_ssh_key? }", |
:"data-clone" => project.ssh_url_to_repo, |
:"data-title" => "Add an SSH key to your profile<br> to pull or push via SSH",
......@@ -9,6 +10,7 @@
:"data-container" => "body"}
SSH
%button{ |
:type => 'button', |
class: "btn #{ 'active' if default_clone_protocol == 'http' }#{ ' has_tooltip' if current_user && current_user.require_password? }", |
:"data-clone" => project.http_url_to_repo, |
:"data-title" => "Set a password on your account<br> to pull or push via #{gitlab_config.protocol.upcase}",
......
......@@ -12,7 +12,7 @@ A protected branch does three simple things:
You can make any branch a protected branch. GitLab makes the master branch a protected branch by default.
To protect a branch, user needs to have at least a Master permission level, see [permissions document](permissions/permissions.md).
To protect a branch, user needs to have at least a Master permission level, see [permissions document](doc/permissions/permissions.md).
![protected branches page](protected_branches/protected_branches1.png)
......@@ -29,5 +29,3 @@ For those workflows, you can allow everyone with write access to push to a prote
On already protected branches you can also allow developers to push to the repository by selecting the `Developers can push` check box.
![Developers can push](protected_branches/protected_branches2.png)
\ No newline at end of file
......@@ -85,7 +85,7 @@ class Spinach::Features::Project < Spinach::FeatureSteps
step 'I should see project "Shop" version' do
within '.project-side' do
page.should have_content 'Version: 6.7.0.pre'
page.should have_content '6.7.0.pre'
end
end
......
......@@ -41,10 +41,12 @@ describe GitlabCiService do
describe :commit_status_path do
it { expect(@service.commit_status_path("2ab7834c", 'master')).to eq("http://ci.gitlab.org/projects/2/refs/master/commits/2ab7834c/status.json?token=verySecret")}
it { expect(@service.commit_status_path("issue#2", 'master')).to eq("http://ci.gitlab.org/projects/2/refs/master/commits/issue%232/status.json?token=verySecret")}
end
describe :build_page do
it { expect(@service.build_page("2ab7834c", 'master')).to eq("http://ci.gitlab.org/projects/2/refs/master/commits/2ab7834c")}
it { expect(@service.build_page("issue#2", 'master')).to eq("http://ci.gitlab.org/projects/2/refs/master/commits/issue%232")}
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment