Skip to content
Snippets Groups Projects
Commit e2c5d08e authored by Peter Göbel's avatar Peter Göbel
Browse files

added user preference to change layout width

parent 144eef38
No related branches found
No related tags found
No related merge requests found
Loading
@@ -31,6 +31,7 @@ v 8.1.0 (unreleased)
Loading
@@ -31,6 +31,7 @@ v 8.1.0 (unreleased)
- Hide password in the service settings form - Hide password in the service settings form
- Fix anchors to comments in diffs - Fix anchors to comments in diffs
- Move CI web hooks page to project settings area - Move CI web hooks page to project settings area
- Add user preference to change layout width (Peter Göbel)
   
v 8.0.3 v 8.0.3
- Fix URL shown in Slack notifications - Fix URL shown in Slack notifications
Loading
Loading
Loading
@@ -31,6 +31,7 @@ class Profiles::PreferencesController < Profiles::ApplicationController
Loading
@@ -31,6 +31,7 @@ class Profiles::PreferencesController < Profiles::ApplicationController
def preferences_params def preferences_params
params.require(:user).permit( params.require(:user).permit(
:color_scheme_id, :color_scheme_id,
:layout,
:dashboard, :dashboard,
:project_view, :project_view,
:theme_id :theme_id
Loading
Loading
Loading
@@ -26,7 +26,7 @@ module PageLayoutHelper
Loading
@@ -26,7 +26,7 @@ module PageLayoutHelper
   
def fluid_layout(enabled = false) def fluid_layout(enabled = false)
if @fluid_layout.nil? if @fluid_layout.nil?
@fluid_layout = enabled @fluid_layout = (current_user && current_user.layout == "wide") || enabled
else else
@fluid_layout @fluid_layout
end end
Loading
Loading
# Helper methods for per-User preferences # Helper methods for per-User preferences
module PreferencesHelper module PreferencesHelper
def layout_choices
[
['Small', :small],
['Wide', :wide]
]
end
# Maps `dashboard` values to more user-friendly option text # Maps `dashboard` values to more user-friendly option text
DASHBOARD_CHOICES = { DASHBOARD_CHOICES = {
projects: 'Your Projects (default)', projects: 'Your Projects (default)',
Loading
Loading
Loading
@@ -54,6 +54,7 @@
Loading
@@ -54,6 +54,7 @@
# public_email :string(255) default(""), not null # public_email :string(255) default(""), not null
# dashboard :integer default(0) # dashboard :integer default(0)
# project_view :integer default(0) # project_view :integer default(0)
# layout :integer default(0)
# #
   
require 'carrierwave/orm/activerecord' require 'carrierwave/orm/activerecord'
Loading
@@ -171,6 +172,9 @@ class User < ActiveRecord::Base
Loading
@@ -171,6 +172,9 @@ class User < ActiveRecord::Base
after_create :post_create_hook after_create :post_create_hook
after_destroy :post_destroy_hook after_destroy :post_destroy_hook
   
# User's Layout preference
enum layout: [:small, :wide]
# User's Dashboard preference # User's Dashboard preference
# Note: When adding an option, it MUST go on the end of the array. # Note: When adding an option, it MUST go on the end of the array.
enum dashboard: [:projects, :stars, :project_activity, :starred_project_activity] enum dashboard: [:projects, :stars, :project_activity, :starred_project_activity]
Loading
Loading
Loading
@@ -32,6 +32,13 @@
Loading
@@ -32,6 +32,13 @@
.panel-heading .panel-heading
Behavior Behavior
.panel-body .panel-body
.form-group
= f.label :layout, class: 'control-label' do
Layout width
.col-sm-10
= f.select :layout, layout_choices, {}, class: 'form-control'
.help-block
Choose between small (max. 1200px) and wide (100%) application layout
.form-group .form-group
= f.label :dashboard, class: 'control-label' do = f.label :dashboard, class: 'control-label' do
Default Dashboard Default Dashboard
Loading
Loading
Loading
@@ -2,6 +2,13 @@
Loading
@@ -2,6 +2,13 @@
$('body').removeClass('<%= Gitlab::Themes.body_classes %>') $('body').removeClass('<%= Gitlab::Themes.body_classes %>')
$('body').addClass('<%= user_application_theme %>') $('body').addClass('<%= user_application_theme %>')
   
// Toggle container-fluid class
if ('<%= current_user.layout %>' === 'wide') {
$('.content-wrapper').find('.container-fluid').removeClass('container-limited')
} else {
$('.content-wrapper').find('.container-fluid').addClass('container-limited')
}
// Re-enable the "Save" button // Re-enable the "Save" button
$('input[type=submit]').enable() $('input[type=submit]').enable()
   
Loading
Loading
class AddLayoutOptionForUsers < ActiveRecord::Migration
def change
add_column :users, :layout, :integer, :default => 0
end
end
\ No newline at end of file
Loading
@@ -11,7 +11,7 @@
Loading
@@ -11,7 +11,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
   
ActiveRecord::Schema.define(version: 20150930095736) do ActiveRecord::Schema.define(version: 20151005150751) do
   
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
Loading
@@ -753,6 +753,7 @@ ActiveRecord::Schema.define(version: 20150930095736) do
Loading
@@ -753,6 +753,7 @@ ActiveRecord::Schema.define(version: 20150930095736) do
t.integer "dashboard", default: 0 t.integer "dashboard", default: 0
t.integer "project_view", default: 0 t.integer "project_view", default: 0
t.integer "consumed_timestep" t.integer "consumed_timestep"
t.integer "layout", default: 0
end end
   
add_index "users", ["admin"], name: "index_users_on_admin", using: :btree add_index "users", ["admin"], name: "index_users_on_admin", using: :btree
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment