mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-13 14:46:05 +10:00
Allow users to select the Files view as default project view
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
.alert_holder {
|
||||
margin: -16px;
|
||||
|
||||
|
||||
.alert-link {
|
||||
font-weight: normal;
|
||||
}
|
||||
@@ -31,20 +31,20 @@
|
||||
margin: -$gl-padding;
|
||||
padding: $gl-padding;
|
||||
padding: 44px 0 17px 0;
|
||||
|
||||
|
||||
.project-identicon-holder {
|
||||
margin-bottom: 16px;
|
||||
|
||||
|
||||
.avatar, .identicon {
|
||||
margin: 0 auto;
|
||||
float: none;
|
||||
}
|
||||
|
||||
|
||||
.identicon {
|
||||
@include border-radius(50%);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.project-home-dropdown {
|
||||
margin: 11px 3px 0;
|
||||
}
|
||||
@@ -86,15 +86,15 @@
|
||||
top: 17px;
|
||||
margin-bottom: 44px;
|
||||
}
|
||||
|
||||
|
||||
.project-repo-buttons {
|
||||
margin-top: 12px;
|
||||
margin-bottom: 0px;
|
||||
|
||||
|
||||
.btn {
|
||||
@include bnt-project;
|
||||
@include btn-info;
|
||||
|
||||
|
||||
.count {
|
||||
display: inline-block;
|
||||
}
|
||||
@@ -105,7 +105,7 @@
|
||||
.split-one {
|
||||
display: inline-table;
|
||||
margin-right: 12px;
|
||||
|
||||
|
||||
a {
|
||||
margin: -1px !important;
|
||||
}
|
||||
@@ -129,10 +129,10 @@
|
||||
&.git-protocols {
|
||||
padding: 0;
|
||||
border: none;
|
||||
|
||||
|
||||
.input-group-btn:last-child > .btn {
|
||||
@include border-radius-right(0);
|
||||
|
||||
|
||||
border-left: 1px solid #c6cacf;
|
||||
margin-left: -2px !important;
|
||||
}
|
||||
@@ -141,55 +141,55 @@
|
||||
}
|
||||
|
||||
.projects-search-form {
|
||||
|
||||
|
||||
.input-group .form-control {
|
||||
height: 42px;
|
||||
}
|
||||
}
|
||||
|
||||
.input-group-btn {
|
||||
.btn {
|
||||
.btn {
|
||||
@include bnt-project;
|
||||
@include btn-middle;
|
||||
|
||||
|
||||
&:hover {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
|
||||
&:active {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.active {
|
||||
@include box-shadow(inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
|
||||
|
||||
border: 1px solid #c6cacf !important;
|
||||
background-color: #e4e7ed !important;
|
||||
}
|
||||
|
||||
|
||||
.btn-green {
|
||||
@include btn-green
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
.split-repo-buttons {
|
||||
display: inline-table;
|
||||
margin: 0 12px 0 12px;
|
||||
|
||||
|
||||
.btn{
|
||||
@include bnt-project;
|
||||
@include btn-info;
|
||||
}
|
||||
|
||||
|
||||
.dropdown-toggle {
|
||||
margin: -5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#notification-form {
|
||||
@@ -202,7 +202,7 @@
|
||||
|
||||
.open > .dropdown-new.btn {
|
||||
@include box-shadow(inset 0 0 4px rgba(0, 0, 0, 0.12));
|
||||
|
||||
|
||||
border: 1px solid #c6cacf !important;
|
||||
background-color: #e4e7ed !important;
|
||||
text-transform: uppercase;
|
||||
@@ -214,21 +214,21 @@
|
||||
.dropdown-menu {
|
||||
@include box-shadow(rgba(76, 86, 103, 0.247059) 0px 0px 1px 0px, rgba(31, 37, 50, 0.317647) 0px 2px 18px 0px);
|
||||
@include border-radius (0px);
|
||||
|
||||
|
||||
border: none;
|
||||
padding: 16px 0;
|
||||
font-size: 14px;
|
||||
font-weight: 100;
|
||||
|
||||
|
||||
li a {
|
||||
color: #5f697a;
|
||||
line-height: 30px;
|
||||
|
||||
|
||||
&:hover {
|
||||
background-color: #3084bb !important;
|
||||
background-color: #3084bb !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.fa-fw {
|
||||
margin-right: 8px;
|
||||
}
|
||||
@@ -370,7 +370,7 @@ table.table.protected-branches-list tr.no-border {
|
||||
ul.nav-pills {
|
||||
display:inline-block;
|
||||
}
|
||||
|
||||
|
||||
.nav-pills li {
|
||||
display:inline;
|
||||
}
|
||||
@@ -378,12 +378,12 @@ table.table.protected-branches-list tr.no-border {
|
||||
.nav > li > a {
|
||||
@include btn-info;
|
||||
@include bnt-project;
|
||||
|
||||
|
||||
background-color: transparent;
|
||||
border: 1px solid #f7f8fa;
|
||||
margin-left: 12px;
|
||||
}
|
||||
|
||||
|
||||
li {
|
||||
display:inline;
|
||||
}
|
||||
@@ -418,27 +418,27 @@ pre.light-well {
|
||||
|
||||
.git-empty {
|
||||
margin: 0 7px 0 7px;
|
||||
|
||||
|
||||
h5 {
|
||||
color: #5c5d5e;
|
||||
}
|
||||
|
||||
|
||||
.light-well {
|
||||
@include border-radius (2px);
|
||||
|
||||
|
||||
color: #5b6169;
|
||||
font-size: 13px;
|
||||
line-height: 1.6em;
|
||||
font-size: 13px;
|
||||
line-height: 1.6em;
|
||||
}
|
||||
}
|
||||
|
||||
.prepend-top-20 {
|
||||
margin-top: 20px;
|
||||
|
||||
|
||||
.btn-remove {
|
||||
@include btn-middle;
|
||||
@include btn-remove;
|
||||
|
||||
|
||||
float: left !important;
|
||||
}
|
||||
}
|
||||
@@ -446,7 +446,7 @@ pre.light-well {
|
||||
/*
|
||||
* Projects list rendered on dashboard and user page
|
||||
*/
|
||||
|
||||
|
||||
.projects-list {
|
||||
@include basic-list;
|
||||
|
||||
@@ -507,6 +507,10 @@ pre.light-well {
|
||||
}
|
||||
}
|
||||
|
||||
.project-show-files {
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.inline-form {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
@@ -89,7 +89,10 @@ class ProjectsController < ApplicationController
|
||||
if current_user
|
||||
@membership = @project.project_member_by_id(current_user.id)
|
||||
end
|
||||
|
||||
@ref = "master"
|
||||
@id = "master"
|
||||
@commit = @project.repository.commit(@ref)
|
||||
@tree = @project.repository.tree(@commit.id)
|
||||
render :show
|
||||
end
|
||||
else
|
||||
|
||||
@@ -27,7 +27,8 @@ module PreferencesHelper
|
||||
def project_view_choices
|
||||
[
|
||||
['Readme (default)', :readme],
|
||||
['Activity view', :activity]
|
||||
['Activity view', :activity],
|
||||
['Files view', :files]
|
||||
]
|
||||
end
|
||||
|
||||
@@ -43,4 +44,9 @@ module PreferencesHelper
|
||||
!current_user ||
|
||||
current_user.project_view == 'readme'
|
||||
end
|
||||
|
||||
def current_user_default_project_view
|
||||
(current_user && current_user.project_view) ||
|
||||
'readme'
|
||||
end
|
||||
end
|
||||
|
||||
+1
-1
@@ -176,7 +176,7 @@ class User < ActiveRecord::Base
|
||||
|
||||
# User's Project preference
|
||||
# Note: When adding an option, it MUST go on the end of the array.
|
||||
enum project_view: [:readme, :activity]
|
||||
enum project_view: [:readme, :activity, :files]
|
||||
|
||||
alias_attribute :private_token, :authentication_token
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
= render 'projects/last_push'
|
||||
|
||||
.tree-ref-holder
|
||||
= render 'shared/ref_switcher', destination: 'tree', path: @path
|
||||
|
||||
- if can? current_user, :download_code, @project
|
||||
.tree-download-holder
|
||||
= render 'projects/repositories/download_archive', ref: @ref, btn_class: 'btn-group pull-right hidden-xs hidden-sm', split_button: true
|
||||
|
||||
#tree-holder.tree-holder.clearfix
|
||||
= render "projects/tree/tree", tree: @tree
|
||||
@@ -64,13 +64,8 @@
|
||||
Archived project! Repository is read-only
|
||||
|
||||
%section
|
||||
- if prefer_readme?
|
||||
.project-show-readme
|
||||
= render 'projects/readme'
|
||||
- else
|
||||
.project-show-activity
|
||||
= render 'projects/activity'
|
||||
|
||||
%div{class: "project-show-#{current_user_default_project_view}"}
|
||||
= render current_user_default_project_view
|
||||
|
||||
- if current_user
|
||||
- access = user_max_access_in_project(current_user, @project)
|
||||
|
||||
@@ -4,5 +4,5 @@
|
||||
%span.str-truncated
|
||||
= link_to blob_item.name, namespace_project_blob_path(@project.namespace, @project, tree_join(@id || @commit.id, blob_item.name))
|
||||
%td.tree_time_ago.cgray
|
||||
= render 'spinner'
|
||||
= render 'projects/tree/spinner'
|
||||
%td.hidden-xs.tree_commit
|
||||
|
||||
@@ -5,5 +5,5 @@
|
||||
- path = flatten_tree(tree_item)
|
||||
= link_to path, namespace_project_tree_path(@project.namespace, @project, tree_join(@id || @commit.id, path))
|
||||
%td.tree_time_ago.cgray
|
||||
= render 'spinner'
|
||||
= render 'projects/tree/spinner'
|
||||
%td.hidden-xs.tree_commit
|
||||
|
||||
@@ -21,6 +21,31 @@ describe ProjectsController do
|
||||
expect(response.body).to include("content='#{content}'")
|
||||
end
|
||||
end
|
||||
|
||||
context "rendering default project view" do
|
||||
render_views
|
||||
|
||||
it "shold render the activity view", focus: true do
|
||||
allow(controller).to receive(:current_user).and_return(user)
|
||||
allow(user).to receive(:project_view).and_return('activity')
|
||||
get :show, namespace_id: public_project.namespace.path, id: public_project.path
|
||||
expect(response).to render_template('_activity')
|
||||
end
|
||||
|
||||
it "shold render the readme view", focus: true do
|
||||
allow(controller).to receive(:current_user).and_return(user)
|
||||
allow(user).to receive(:project_view).and_return('readme')
|
||||
get :show, namespace_id: public_project.namespace.path, id: public_project.path
|
||||
expect(response).to render_template('_readme')
|
||||
end
|
||||
|
||||
it "shold render the files view", focus: true do
|
||||
allow(controller).to receive(:current_user).and_return(user)
|
||||
allow(user).to receive(:project_view).and_return('files')
|
||||
get :show, namespace_id: public_project.namespace.path, id: public_project.path
|
||||
expect(response).to render_template('_files')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "POST #toggle_star" do
|
||||
|
||||
Reference in New Issue
Block a user