Commit 11ea009ec7bf993ab45f24f6079abfc48ac3e5b2

Authored by Dmitriy Zaporozhets
2 parents 7986b806 8b3b6f10

Merge pull request #6159 from dblessing/fix/mobile_ui_dashboard

Mobile UI improvements
app/assets/stylesheets/generic/common.scss
... ... @@ -327,6 +327,12 @@ li.note {
327 327 color: #fff;
328 328 text-decoration: underline;
329 329 }
  330 +
  331 + .links-xs {
  332 + text-align: center;
  333 + font-size: 16px;
  334 + padding: 5px;
  335 + }
330 336 }
331 337  
332 338 .warning_message {
... ... @@ -485,3 +491,7 @@ table {
485 491 margin-bottom: 15px;
486 492 }
487 493 }
  494 +
  495 +@media (max-width: $screen-xs-max) {
  496 + .container .content { margin-top: 20px; }
  497 +}
... ...
app/assets/stylesheets/main/layout.scss
1 1 html {
2 2 overflow-y: scroll;
  3 +
  4 + &.touch .tooltip { display: none !important; }
3 5 }
4 6  
5 7 body {
... ...
app/assets/stylesheets/sections/header.scss
... ... @@ -29,6 +29,59 @@ header {
29 29 float: right;
30 30 margin-right: 0;
31 31 }
  32 +
  33 + .navbar-toggle {
  34 + color: $style_color;
  35 + margin: 0 -15px 0 0;
  36 + padding: 10px;
  37 + border-radius: 0;
  38 +
  39 + button i { font-size: 22px; }
  40 +
  41 + &.collapsed { background-color: transparent !important;}
  42 +
  43 + &:hover {
  44 + background-color: #EEE;
  45 + }
  46 + }
  47 + }
  48 +
  49 + @media (max-width: $screen-xs-max) {
  50 + border-width: 0;
  51 + font-size: 18px;
  52 +
  53 + .app_logo { margin-left: -15px; }
  54 + .project_name {
  55 + display: inline-block;
  56 + overflow: hidden;
  57 + text-overflow: ellipsis;
  58 + vertical-align: top;
  59 + white-space: nowrap;
  60 + max-width: 70%;
  61 + }
  62 +
  63 + .navbar-collapse {
  64 + padding-right: 0;
  65 + padding-left: 0;
  66 + }
  67 +
  68 + .navbar-nav {
  69 + margin: 5px 0;
  70 +
  71 + .visible-xs, .visable-sm {
  72 + display: table-cell !important;
  73 + }
  74 + }
  75 +
  76 + li {
  77 + display: table-cell;
  78 + width: 1%;
  79 +
  80 + a {
  81 + text-align: center;
  82 + font-size: 18px !important;
  83 + }
  84 + }
32 85 }
33 86 }
34 87  
... ... @@ -128,6 +181,8 @@ header {
128 181 background: #708090;
129 182 border-bottom: 1px solid #AAA;
130 183  
  184 + .navbar-toggle { color: #fff; }
  185 +
131 186 .nav > li > a {
132 187 color: #AAA;
133 188 text-shadow: 0 1px 0 #444;
... ...
app/assets/stylesheets/sections/nav.scss
... ... @@ -83,4 +83,38 @@
83 83 padding-top: 2px;
84 84 }
85 85 }
  86 +
  87 + @media (max-width: $screen-xs-max) {
  88 + font-size: 18px;
  89 + margin: 0;
  90 +
  91 + max-height: none;
  92 +
  93 + &, .container {
  94 + padding: 0;
  95 + border-top: 0;
  96 + }
  97 +
  98 + ul {
  99 + height: auto;
  100 +
  101 + li {
  102 + display: list-item;
  103 + width: auto;
  104 + padding: 5px 0;
  105 +
  106 + &.active {
  107 + background-color: $primary_color;
  108 +
  109 + a {
  110 + color: #fff;
  111 + font-weight: normal;
  112 + text-shadow: none;
  113 +
  114 + &:after { display: none; }
  115 + }
  116 + }
  117 + }
  118 + }
  119 + }
86 120 }
... ...
app/assets/stylesheets/themes/ui_color.scss
... ... @@ -18,7 +18,7 @@
18 18 .navbar-inner {
19 19 background: #547;
20 20 border-bottom: 1px solid #435;
21   - .app_logo {
  21 + .app_logo, .navbar-toggle {
22 22 &:hover {
23 23 background-color: #435;
24 24 }
... ...
app/assets/stylesheets/themes/ui_gray.scss
... ... @@ -18,7 +18,7 @@
18 18 .navbar-inner {
19 19 background: #373737;
20 20 border-bottom: 1px solid #272727;
21   - .app_logo {
  21 + .app_logo, .navbar-toggle {
22 22 &:hover {
23 23 background-color: #272727;
24 24 }
... ...
app/assets/stylesheets/themes/ui_mars.scss
... ... @@ -18,7 +18,7 @@
18 18 .navbar-inner {
19 19 background: #474D57;
20 20 border-bottom: 1px solid #373D47;
21   - .app_logo {
  21 + .app_logo, .navbar-toggle {
22 22 &:hover {
23 23 background-color: #373D47;
24 24 }
... ...
app/assets/stylesheets/themes/ui_modern.scss
... ... @@ -18,7 +18,7 @@
18 18 .navbar-inner {
19 19 background: #345;
20 20 border-bottom: 1px solid #234;
21   - .app_logo {
  21 + .app_logo, .navbar-toggle {
22 22 &:hover {
23 23 background-color: #234;
24 24 }
... ...
app/views/dashboard/show.html.haml
... ... @@ -2,7 +2,7 @@
2 2 .dashboard.row
3 3 .activities.col-md-8
4 4 = render 'activities'
5   - .side.col-md-4.hidden-sm
  5 + .side.col-md-4.hidden-sm.hidden-xs
6 6 = render 'sidebar'
7 7  
8 8 - else
... ...
app/views/layouts/_head_panel.html.haml
... ... @@ -14,14 +14,14 @@
14 14  
15 15 .navbar-collapse.collapse
16 16 %ul.nav.navbar-nav
17   - %li
  17 + %li.hidden-sm.hidden-xs
18 18 %a
19 19 %div.hide.turbolink-spinner
20 20 %i.icon-refresh.icon-spin
21 21 Loading...
22   - %li.hidden-sm
  22 + %li.hidden-sm.hidden-xs
23 23 = render "layouts/search"
24   - %li.visible-sm
  24 + %li.visible-sm.visible-xs
25 25 = link_to search_path, title: "Search", class: 'has_bottom_tooltip', 'data-original-title' => 'Search area' do
26 26 %i.icon-search
27 27 %li
... ...
app/views/layouts/admin.html.haml
... ... @@ -4,7 +4,7 @@
4 4 %body{class: "#{app_theme} admin", :'data-page' => body_data_page}
5 5 = render "layouts/head_panel", title: "Admin area"
6 6 = render "layouts/flash"
7   - %nav.main-nav
  7 + %nav.main-nav.navbar-collapse.collapse
8 8 .container= render 'layouts/nav/admin'
9 9  
10 10 .container
... ...
app/views/layouts/application.html.haml
... ... @@ -5,7 +5,7 @@
5 5 = render "layouts/broadcast"
6 6 = render "layouts/head_panel", title: "Dashboard"
7 7 = render "layouts/flash"
8   - %nav.main-nav
  8 + %nav.main-nav.navbar-collapse.collapse
9 9 .container= render 'layouts/nav/dashboard'
10 10  
11 11 .container
... ...
app/views/layouts/group.html.haml
... ... @@ -5,7 +5,7 @@
5 5 = render "layouts/broadcast"
6 6 = render "layouts/head_panel", title: "group: #{@group.name}"
7 7 = render "layouts/flash"
8   - %nav.main-nav
  8 + %nav.main-nav.navbar-collapse.collapse
9 9 .container= render 'layouts/nav/group'
10 10  
11 11 .container
... ...
app/views/layouts/profile.html.haml
... ... @@ -5,7 +5,7 @@
5 5 = render "layouts/broadcast"
6 6 = render "layouts/head_panel", title: "Profile"
7 7 = render "layouts/flash"
8   - %nav.main-nav
  8 + %nav.main-nav.navbar-collapse.collapse
9 9 .container= render 'layouts/nav/profile'
10 10  
11 11 .container
... ...
app/views/layouts/project_settings.html.haml
... ... @@ -9,7 +9,7 @@
9 9 - if can?(current_user, :download_code, @project)
10 10 = render 'shared/no_ssh'
11 11  
12   - %nav.main-nav
  12 + %nav.main-nav.navbar-collapse.collapse
13 13 .container= render 'layouts/nav/project'
14 14  
15 15 .container
... ...
app/views/layouts/projects.html.haml
... ... @@ -9,7 +9,7 @@
9 9 - if can?(current_user, :download_code, @project)
10 10 = render 'shared/no_ssh'
11 11  
12   - %nav.main-nav
  12 + %nav.main-nav.navbar-collapse.collapse
13 13 .container= render 'layouts/nav/project'
14 14  
15 15 .container
... ...
app/views/layouts/public_projects.html.haml
... ... @@ -3,7 +3,7 @@
3 3 = render "layouts/head", title: @project.name_with_namespace
4 4 %body{class: "#{app_theme} application", :'data-page' => body_data_page}
5 5 = render "layouts/public_head_panel"
6   - %nav.main-nav
  6 + %nav.main-nav.navbar-collapse.collapse
7 7 .container= render 'layouts/nav/project'
8 8 .container
9 9 .content= yield
... ...
app/views/layouts/user_team.html.haml
... ... @@ -4,7 +4,7 @@
4 4 %body{class: "#{app_theme} application", :'data-page' => body_data_page}
5 5 = render "layouts/head_panel", title: "team: #{@team.name}"
6 6 = render "layouts/flash"
7   - %nav.main-nav
  7 + %nav.main-nav.navbar-collapse.collapse
8 8 .container= render 'layouts/nav/team'
9 9  
10 10 .container
... ...
app/views/shared/_no_ssh.html.haml
... ... @@ -2,7 +2,13 @@
2 2 .no-ssh-key-message
3 3 .container
4 4 You won't be able to pull or push project code via SSH until you #{link_to 'add an SSH key', new_profile_key_path} to your profile
5   - %div.pull-right
  5 + .pull-right.hidden-xs
6 6 = link_to "Don't show again", profile_path(user: {hide_no_ssh_key: true}), method: :put, class: 'hide-no-ssh-message', remote: true
7 7 |
8 8 = link_to 'Remind later', '#', class: 'hide-no-ssh-message'
  9 + .links-xs.visible-xs
  10 + = link_to "Add key", new_profile_key_path
  11 + |
  12 + = link_to "Don't show again", profile_path(user: {hide_no_ssh_key: true}), method: :put, class: 'hide-no-ssh-message', remote: true
  13 + |
  14 + = link_to 'Later', '#', class: 'hide-no-ssh-message'
... ...