Design tab for profile. Colorscheme as db value
This commit is contained in:
parent
2f7b671619
commit
9a2a861276
15 changed files with 100 additions and 66 deletions
BIN
app/assets/images/dark.png
Normal file
BIN
app/assets/images/dark.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
BIN
app/assets/images/white.png
Normal file
BIN
app/assets/images/white.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
|
@ -654,3 +654,15 @@ body.project-page h2.icon.loading {
|
|||
background: url("ajax-loader-tree.gif") no-repeat;
|
||||
}
|
||||
}
|
||||
|
||||
.dark_scheme_box {
|
||||
padding:20px 0;
|
||||
|
||||
label {
|
||||
float:left;
|
||||
box-shadow: 0 0px 5px rgba(0,0,0,.3);
|
||||
|
||||
img {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,10 +4,14 @@ class ProfileController < ApplicationController
|
|||
@user = current_user
|
||||
end
|
||||
|
||||
def social_update
|
||||
def design
|
||||
@user = current_user
|
||||
end
|
||||
|
||||
def update
|
||||
@user = current_user
|
||||
@user.update_attributes(params[:user])
|
||||
redirect_to [:profile]
|
||||
redirect_to :back
|
||||
end
|
||||
|
||||
def password
|
||||
|
|
|
@ -2,9 +2,9 @@ require 'digest/md5'
|
|||
module ApplicationHelper
|
||||
include Utils::CharEncode
|
||||
|
||||
def gravatar_icon(user_email)
|
||||
def gravatar_icon(user_email, size = 40)
|
||||
gravatar_host = request.ssl? ? "https://secure.gravatar.com" : "http://www.gravatar.com"
|
||||
"#{gravatar_host}/avatar/#{Digest::MD5.hexdigest(user_email)}?s=40&d=identicon"
|
||||
"#{gravatar_host}/avatar/#{Digest::MD5.hexdigest(user_email)}?s=#{size}&d=identicon"
|
||||
end
|
||||
|
||||
def fixed_mode?
|
||||
|
|
|
@ -7,6 +7,8 @@ class Tree
|
|||
:name,
|
||||
:data,
|
||||
:mime_type,
|
||||
:mode,
|
||||
:size,
|
||||
:text?,
|
||||
:colorize,
|
||||
:to => :tree
|
||||
|
|
|
@ -6,7 +6,7 @@ class User < ActiveRecord::Base
|
|||
|
||||
# Setup accessible (or protected) attributes for your model
|
||||
attr_accessible :email, :password, :password_confirmation, :remember_me,
|
||||
:name, :projects_limit, :skype, :linkedin, :twitter
|
||||
:name, :projects_limit, :skype, :linkedin, :twitter, :dark_scheme
|
||||
|
||||
has_many :users_projects, :dependent => :destroy
|
||||
has_many :projects, :through => :users_projects
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
%aside
|
||||
= link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil
|
||||
= link_to "Password & token", profile_password_path, :class => current_page?(:controller => "profile", :action => :password) ? "current" : nil
|
||||
= link_to "Design", profile_design_path, :class => current_page?(:controller => "profile", :action => :design) ? "current" : nil
|
||||
= link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do
|
||||
Keys
|
||||
- unless current_user.keys.empty?
|
||||
|
|
|
@ -1,31 +0,0 @@
|
|||
!!!
|
||||
%html
|
||||
%head
|
||||
%title
|
||||
GitLab #{" - #{current_user.name}"}
|
||||
= stylesheet_link_tag "application"
|
||||
= javascript_include_tag "application"
|
||||
= csrf_meta_tags
|
||||
= javascript_tag do
|
||||
REQ_URI = "#{request.env["REQUEST_URI"]}";
|
||||
REQ_REFFER = "#{request.env["HTTP_REFERER"]}";
|
||||
%body{ :class => body_class('project-page'), :id => yield(:boyd_id)}
|
||||
= render :partial => "layouts/flash"
|
||||
#container
|
||||
= render :partial => "layouts/head_panel"
|
||||
.project-container
|
||||
.project-sidebar
|
||||
.fixed
|
||||
%aside
|
||||
= link_to issues_path, :class => current_page?(issues_path) ? "current" : nil do
|
||||
Issues
|
||||
- unless current_user.assigned_issues.empty?
|
||||
%span{ :class => "number" }= current_user.assigned_issues.count
|
||||
= link_to merge_requests_path, :class => current_page?(merge_requests_path) ? "current" : nil do
|
||||
Merge Requests
|
||||
- unless current_user.assigned_merge_requests.empty?
|
||||
%span{ :class => "number" }= current_user.assigned_merge_requests.count
|
||||
|
||||
.project-content
|
||||
= yield
|
||||
|
22
app/views/profile/design.html.haml
Normal file
22
app/views/profile/design.html.haml
Normal file
|
@ -0,0 +1,22 @@
|
|||
.ui-box.width-100p
|
||||
%h3 Design
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
.data
|
||||
.left.dark_scheme_box
|
||||
%label{:for => "user_dark_scheme_false"}
|
||||
= image_tag "white.png", :width => 310, :height => 212
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, false
|
||||
White code preview
|
||||
.right.dark_scheme_box
|
||||
%label{:for => "user_dark_scheme_true"}
|
||||
= image_tag "dark.png", :width => 310, :height => 212
|
||||
%center
|
||||
%h4
|
||||
= f.radio_button :dark_scheme, true
|
||||
Dark code preview
|
||||
.clear
|
||||
.buttons
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
|
|
@ -1,33 +1,38 @@
|
|||
.ui-box.width-100p
|
||||
%h3= @user.name
|
||||
= form_for @user, :url => profile_edit_path, :method => :put do |f|
|
||||
= form_for @user, :url => profile_update_path, :method => :put do |f|
|
||||
.data
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
.left
|
||||
-if @user.errors.any?
|
||||
#error_explanation
|
||||
%ul
|
||||
- @user.errors.full_messages.each do |msg|
|
||||
%li= msg
|
||||
|
||||
.form-row
|
||||
= f.label :name
|
||||
%br
|
||||
= f.text_field :name
|
||||
.form-row
|
||||
= f.label :email
|
||||
%br
|
||||
= f.text_field :email
|
||||
.form-row
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.form-row
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.form-row
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
.form-row
|
||||
= f.label :name
|
||||
%br
|
||||
= f.text_field :name
|
||||
.form-row
|
||||
= f.label :email
|
||||
%br
|
||||
= f.text_field :email
|
||||
.form-row
|
||||
= f.label :skype
|
||||
%br
|
||||
= f.text_field :skype
|
||||
.form-row
|
||||
= f.label :linkedin
|
||||
%br
|
||||
= f.text_field :linkedin
|
||||
.form-row
|
||||
= f.label :twitter
|
||||
%br
|
||||
= f.text_field :twitter
|
||||
|
||||
.right
|
||||
= image_tag gravatar_icon(current_user.email,64), :width => 64, :style => "margin:5px; border:5px solid #eee;"
|
||||
.clear
|
||||
.buttons
|
||||
= f.submit 'Save', :class => "grey-button"
|
||||
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
= name
|
||||
= link_to "raw", blob_project_ref_path(@project, @ref, :path => params[:path] ), :class => "right", :target => "_blank"
|
||||
= link_to "history", project_commits_path(@project, :path => params[:path], :ref => @ref ), :class => "right", :style => "margin-right:10px;"
|
||||
= switch_colorscheme_link(:class => "right", :style => "margin-right:10px;color:orange")
|
||||
-#= switch_colorscheme_link(:class => "right", :style => "margin-right:10px;color:orange")
|
||||
%br/
|
||||
- if file.text?
|
||||
.view_file_content
|
||||
- unless file.empty?
|
||||
%div{:class => cookies[:colorschema]}
|
||||
%div{:class => current_user.dark_scheme ? "black" : ""}
|
||||
:erb
|
||||
<%= raw file.colorize %>
|
||||
- else
|
||||
|
|
|
@ -19,8 +19,9 @@ Gitlab::Application.routes.draw do
|
|||
get "profile/password", :to => "profile#password"
|
||||
put "profile/password", :to => "profile#password_update"
|
||||
put "profile/reset_private_token", :to => "profile#reset_private_token"
|
||||
put "profile/edit", :to => "profile#social_update"
|
||||
get "profile", :to => "profile#show"
|
||||
get "profile/design", :to => "profile#design"
|
||||
put "profile/update", :to => "profile#update"
|
||||
|
||||
get "dashboard", :to => "dashboard#index"
|
||||
get "dashboard/issues", :to => "dashboard#issues"
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
class AddColoschemeOptionToUser < ActiveRecord::Migration
|
||||
def change
|
||||
add_column :users, :dark_scheme, :boolean, :default => false, :null => false
|
||||
end
|
||||
end
|
15
db/schema.rb
15
db/schema.rb
|
@ -11,7 +11,19 @@
|
|||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20111207211728) do
|
||||
ActiveRecord::Schema.define(:version => 20111220190817) do
|
||||
|
||||
create_table "features", :force => true do |t|
|
||||
t.string "name"
|
||||
t.string "branch_name"
|
||||
t.integer "assignee_id"
|
||||
t.integer "author_id"
|
||||
t.integer "project_id"
|
||||
t.datetime "created_at"
|
||||
t.datetime "updated_at"
|
||||
t.string "version"
|
||||
t.integer "status", :default => 0, :null => false
|
||||
end
|
||||
|
||||
create_table "issues", :force => true do |t|
|
||||
t.string "title"
|
||||
|
@ -118,6 +130,7 @@ ActiveRecord::Schema.define(:version => 20111207211728) do
|
|||
t.string "linkedin", :default => "", :null => false
|
||||
t.string "twitter", :default => "", :null => false
|
||||
t.string "authentication_token"
|
||||
t.boolean "dark_scheme", :default => false, :null => false
|
||||
end
|
||||
|
||||
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
|
||||
|
|
Loading…
Reference in a new issue