Commit 1b5510a85e9dc59b6a8f1ad8e19539c563cfcb0a
1 parent
a11d25b1
Exists in
spb-stable
and in
3 other branches
New project page with bootstrap3
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
4 changed files
with
89 additions
and
85 deletions
Show diff stats
app/views/dashboard/projects.html.haml
| ... | ... | @@ -25,28 +25,29 @@ |
| 25 | 25 | All projects you have access to are listed here. Public projects are not included here unless you are a member |
| 26 | 26 | %hr |
| 27 | 27 | .row |
| 28 | - .col-md-3.hidden-sm.hidden-xs | |
| 29 | - %ul.nav.nav-pills.nav-stacked | |
| 30 | - = nav_tab :scope, nil do | |
| 31 | - = link_to projects_dashboard_filter_path(scope: nil) do | |
| 32 | - All | |
| 33 | - %span.pull-right | |
| 34 | - = current_user.authorized_projects.count | |
| 35 | - = nav_tab :scope, 'personal' do | |
| 36 | - = link_to projects_dashboard_filter_path(scope: 'personal') do | |
| 37 | - Personal | |
| 38 | - %span.pull-right | |
| 39 | - = current_user.personal_projects.count | |
| 40 | - = nav_tab :scope, 'joined' do | |
| 41 | - = link_to projects_dashboard_filter_path(scope: 'joined') do | |
| 42 | - Joined | |
| 43 | - %span.pull-right | |
| 44 | - = current_user.authorized_projects.joined(current_user).count | |
| 45 | - = nav_tab :scope, 'owned' do | |
| 46 | - = link_to projects_dashboard_filter_path(scope: 'owned') do | |
| 47 | - Owned | |
| 48 | - %span.pull-right | |
| 49 | - = current_user.owned_projects.count | |
| 28 | + .col-md-3.hidden-sm.hidden-xs.side-filters | |
| 29 | + %fieldset | |
| 30 | + %ul.nav.nav-pills.nav-stacked | |
| 31 | + = nav_tab :scope, nil do | |
| 32 | + = link_to projects_dashboard_filter_path(scope: nil) do | |
| 33 | + All | |
| 34 | + %span.pull-right | |
| 35 | + = current_user.authorized_projects.count | |
| 36 | + = nav_tab :scope, 'personal' do | |
| 37 | + = link_to projects_dashboard_filter_path(scope: 'personal') do | |
| 38 | + Personal | |
| 39 | + %span.pull-right | |
| 40 | + = current_user.personal_projects.count | |
| 41 | + = nav_tab :scope, 'joined' do | |
| 42 | + = link_to projects_dashboard_filter_path(scope: 'joined') do | |
| 43 | + Joined | |
| 44 | + %span.pull-right | |
| 45 | + = current_user.authorized_projects.joined(current_user).count | |
| 46 | + = nav_tab :scope, 'owned' do | |
| 47 | + = link_to projects_dashboard_filter_path(scope: 'owned') do | |
| 48 | + Owned | |
| 49 | + %span.pull-right | |
| 50 | + = current_user.owned_projects.count | |
| 50 | 51 | |
| 51 | 52 | %fieldset |
| 52 | 53 | %legend Visibility | ... | ... |
app/views/layouts/_head_panel.html.haml
| ... | ... | @@ -8,34 +8,35 @@ |
| 8 | 8 | %span.separator |
| 9 | 9 | %h1.project_name= title |
| 10 | 10 | |
| 11 | - %ul.nav.navbar-nav | |
| 12 | - %li | |
| 13 | - %a | |
| 14 | - %div.gl-hide.turbolink-spinner | |
| 15 | - %i.icon-refresh.icon-spin | |
| 16 | - Loading... | |
| 17 | - %li.hidden-sm | |
| 18 | - = render "layouts/search" | |
| 19 | - %li | |
| 20 | - = link_to public_root_path, title: "Public area", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do | |
| 21 | - %i.icon-globe | |
| 22 | - %li | |
| 23 | - = link_to user_snippets_path(current_user), title: "My snippets", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do | |
| 24 | - %i.icon-paste | |
| 25 | - - if current_user.is_admin? | |
| 11 | + .navbar-collapse.collapse | |
| 12 | + %ul.nav.navbar-nav | |
| 26 | 13 | %li |
| 27 | - = link_to admin_root_path, title: "Admin area", class: 'has_bottom_tooltip', 'data-original-title' => 'Admin area' do | |
| 28 | - %i.icon-cogs | |
| 29 | - - if current_user.can_create_project? | |
| 14 | + %a | |
| 15 | + %div.gl-hide.turbolink-spinner | |
| 16 | + %i.icon-refresh.icon-spin | |
| 17 | + Loading... | |
| 18 | + %li.hidden-sm | |
| 19 | + = render "layouts/search" | |
| 30 | 20 | %li |
| 31 | - = link_to new_project_path, title: "New project", class: 'has_bottom_tooltip', 'data-original-title' => 'New project' do | |
| 32 | - %i.icon-plus | |
| 33 | - %li | |
| 34 | - = link_to profile_path, title: "Profile settings", class: 'has_bottom_tooltip', 'data-original-title' => 'Profile settings"' do | |
| 35 | - %i.icon-user | |
| 36 | - %li | |
| 37 | - = link_to destroy_user_session_path, class: "logout", method: :delete, title: "Logout", class: 'has_bottom_tooltip', 'data-original-title' => 'Logout' do | |
| 38 | - %i.icon-signout | |
| 39 | - %li | |
| 40 | - = link_to current_user, class: "profile-pic", id: 'profile-pic' do | |
| 41 | - = image_tag avatar_icon(current_user.email, 26), alt: 'User activity' | |
| 21 | + = link_to public_root_path, title: "Public area", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do | |
| 22 | + %i.icon-globe | |
| 23 | + %li | |
| 24 | + = link_to user_snippets_path(current_user), title: "My snippets", class: 'has_bottom_tooltip', 'data-original-title' => 'Public area' do | |
| 25 | + %i.icon-paste | |
| 26 | + - if current_user.is_admin? | |
| 27 | + %li | |
| 28 | + = link_to admin_root_path, title: "Admin area", class: 'has_bottom_tooltip', 'data-original-title' => 'Admin area' do | |
| 29 | + %i.icon-cogs | |
| 30 | + - if current_user.can_create_project? | |
| 31 | + %li | |
| 32 | + = link_to new_project_path, title: "New project", class: 'has_bottom_tooltip', 'data-original-title' => 'New project' do | |
| 33 | + %i.icon-plus | |
| 34 | + %li | |
| 35 | + = link_to profile_path, title: "Profile settings", class: 'has_bottom_tooltip', 'data-original-title' => 'Profile settings"' do | |
| 36 | + %i.icon-user | |
| 37 | + %li | |
| 38 | + = link_to destroy_user_session_path, class: "logout", method: :delete, title: "Logout", class: 'has_bottom_tooltip', 'data-original-title' => 'Logout' do | |
| 39 | + %i.icon-signout | |
| 40 | + %li | |
| 41 | + = link_to current_user, class: "profile-pic", id: 'profile-pic' do | |
| 42 | + = image_tag avatar_icon(current_user.email, 26), alt: 'User activity' | ... | ... |
app/views/projects/_visibility_level.html.haml
| 1 | 1 | .form-group.project-visibility-level-holder |
| 2 | - = f.label :visibility_level do | |
| 2 | + = f.label :visibility_level, class: 'control-label' do | |
| 3 | 3 | Visibility Level |
| 4 | 4 | = link_to "(?)", help_public_access_path |
| 5 | - - if can_change_visibility_level | |
| 6 | - - Gitlab::VisibilityLevel.values.each do |level| | |
| 7 | - - restricted = restricted_visibility_levels.include?(level) | |
| 8 | - .col-sm-10 | |
| 9 | - = f.radio_button :visibility_level, level, checked: (visibility_level == level), disabled: restricted | |
| 10 | - %span.descr{:class => ("restricted" if restricted)} | |
| 11 | - = label :project_visibility_level, level do | |
| 12 | - = visibility_level_icon(level) | |
| 13 | - %strong | |
| 14 | - = visibility_level_label(level) | |
| 15 | - .light= visibility_level_description(level) | |
| 16 | - - unless restricted_visibility_levels.empty? | |
| 5 | + .col-sm-10 | |
| 6 | + - if can_change_visibility_level | |
| 7 | + - Gitlab::VisibilityLevel.values.each do |level| | |
| 8 | + .append-bottom-10 | |
| 9 | + - restricted = restricted_visibility_levels.include?(level) | |
| 10 | + = f.radio_button :visibility_level, level, checked: (visibility_level == level), disabled: restricted | |
| 11 | + %span.descr{:class => ("restricted" if restricted)} | |
| 12 | + = label :project_visibility_level, level do | |
| 13 | + = visibility_level_icon(level) | |
| 14 | + %strong | |
| 15 | + = visibility_level_label(level) | |
| 16 | + .light.prepend-left-20= visibility_level_description(level) | |
| 17 | + - unless restricted_visibility_levels.empty? | |
| 18 | + .col-sm-10 | |
| 19 | + %span.info | |
| 20 | + Some visibility level settings have been restricted by the administrator. | |
| 21 | + - else | |
| 17 | 22 | .col-sm-10 |
| 18 | 23 | %span.info |
| 19 | - Some visibility level settings have been restricted by the administrator. | |
| 20 | - - else | |
| 21 | - .col-sm-10 | |
| 22 | - %span.info | |
| 23 | - = visibility_level_icon(visibility_level) | |
| 24 | - %strong | |
| 25 | - = visibility_level_label(visibility_level) | |
| 26 | - .light= visibility_level_description(visibility_level) | |
| 24 | + = visibility_level_icon(visibility_level) | |
| 25 | + %strong | |
| 26 | + = visibility_level_label(visibility_level) | |
| 27 | + .light= visibility_level_description(visibility_level) | ... | ... |
app/views/projects/new.html.haml
| ... | ... | @@ -3,50 +3,51 @@ |
| 3 | 3 | = render 'projects/errors' |
| 4 | 4 | .project-edit-content |
| 5 | 5 | |
| 6 | - = form_for @project, remote: true do |f| | |
| 6 | + = form_for @project, remote: true, html: { class: 'new_project form-horizontal' } do |f| | |
| 7 | 7 | .form-group.project-name-holder |
| 8 | - = f.label :name do | |
| 8 | + = f.label :name, class: 'control-label' do | |
| 9 | 9 | %strong Project name |
| 10 | 10 | .col-sm-10 |
| 11 | - = f.text_field :name, placeholder: "Example Project", class: "input-lg", tabindex: 1, autofocus: true | |
| 11 | + = f.text_field :name, placeholder: "Example Project", class: "form-control", tabindex: 1, autofocus: true | |
| 12 | 12 | %span.help-inline |
| 13 | 13 | = link_to "#", class: 'js-toggle-visibility-link' do |
| 14 | 14 | %span Customize repository name? |
| 15 | 15 | |
| 16 | 16 | .form-group.js-toggle-visibility-container.gl-hide |
| 17 | - = f.label :path do | |
| 17 | + = f.label :path, class: 'control-label' do | |
| 18 | 18 | %span Repository name |
| 19 | 19 | .col-sm-10 |
| 20 | - .input-append | |
| 21 | - = f.text_field :path | |
| 22 | - %span.add-on .git | |
| 20 | + .input-group | |
| 21 | + = f.text_field :path, class: 'form-control' | |
| 22 | + %span.input-group-addon .git | |
| 23 | 23 | |
| 24 | 24 | |
| 25 | 25 | - if current_user.can_select_namespace? |
| 26 | 26 | .form-group |
| 27 | - = f.label :namespace_id do | |
| 27 | + = f.label :namespace_id, class: 'control-label' do | |
| 28 | 28 | %span Namespace |
| 29 | 29 | .col-sm-10 |
| 30 | 30 | = f.select :namespace_id, namespaces_options(params[:namespace_id] || :current_user), {}, {class: 'chosen', tabindex: 2} |
| 31 | 31 | |
| 32 | 32 | .form-group |
| 33 | + .col-sm-2 | |
| 33 | 34 | .col-sm-10 |
| 34 | 35 | = link_to "#", class: 'appear-link' do |
| 35 | 36 | %i.icon-upload-alt |
| 36 | 37 | %span Import existing repository? |
| 37 | 38 | .form-group.appear-data.import-url-data |
| 38 | - = f.label :import_url do | |
| 39 | + = f.label :import_url, class: 'control-label' do | |
| 39 | 40 | %span Import existing repo |
| 40 | 41 | .col-sm-10 |
| 41 | - = f.text_field :import_url, class: 'input-lg', placeholder: 'https://github.com/randx/six.git' | |
| 42 | + = f.text_field :import_url, class: 'form-control', placeholder: 'https://github.com/randx/six.git' | |
| 42 | 43 | .light |
| 43 | 44 | URL must be cloneable |
| 44 | 45 | .form-group |
| 45 | - = f.label :description do | |
| 46 | + = f.label :description, class: 'control-label' do | |
| 46 | 47 | Description |
| 47 | 48 | %span.light (optional) |
| 48 | 49 | .col-sm-10 |
| 49 | - = f.text_area :description, placeholder: "Awesome project", class: "input-lg", rows: 3, maxlength: 250, tabindex: 3 | |
| 50 | + = f.text_area :description, placeholder: "Awesome project", class: "form-control", rows: 3, maxlength: 250, tabindex: 3 | |
| 50 | 51 | = render "visibility_level", f: f, visibility_level: gitlab_config.default_projects_features.visibility_level, can_change_visibility_level: true |
| 51 | 52 | |
| 52 | 53 | .form-actions |
| ... | ... | @@ -54,7 +55,7 @@ |
| 54 | 55 | |
| 55 | 56 | - if current_user.can_create_group? |
| 56 | 57 | .pull-right |
| 57 | - .col-sm-10.light | |
| 58 | + .light | |
| 58 | 59 | Need a group for several dependent projects? |
| 59 | 60 | = link_to new_group_path, class: "btn btn-tiny" do |
| 60 | 61 | Create a group | ... | ... |