提交 9a2a8612 编写于 作者: D Dmitriy Zaporozhets

Design tab for profile. Colorscheme as db value

上级 2f7b6716
...@@ -654,3 +654,15 @@ body.project-page h2.icon.loading { ...@@ -654,3 +654,15 @@ body.project-page h2.icon.loading {
background: url("ajax-loader-tree.gif") no-repeat; 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 ...@@ -4,10 +4,14 @@ class ProfileController < ApplicationController
@user = current_user @user = current_user
end end
def social_update def design
@user = current_user
end
def update
@user = current_user @user = current_user
@user.update_attributes(params[:user]) @user.update_attributes(params[:user])
redirect_to [:profile] redirect_to :back
end end
def password def password
......
...@@ -2,9 +2,9 @@ require 'digest/md5' ...@@ -2,9 +2,9 @@ require 'digest/md5'
module ApplicationHelper module ApplicationHelper
include Utils::CharEncode 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 = 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 end
def fixed_mode? def fixed_mode?
......
...@@ -7,6 +7,8 @@ class Tree ...@@ -7,6 +7,8 @@ class Tree
:name, :name,
:data, :data,
:mime_type, :mime_type,
:mode,
:size,
:text?, :text?,
:colorize, :colorize,
:to => :tree :to => :tree
......
...@@ -6,7 +6,7 @@ class User < ActiveRecord::Base ...@@ -6,7 +6,7 @@ class User < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model # Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, 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 :users_projects, :dependent => :destroy
has_many :projects, :through => :users_projects has_many :projects, :through => :users_projects
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
%aside %aside
= link_to "Profile", profile_path, :class => current_page?(:controller => "profile", :action => :show) ? "current" : nil = 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 "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 = link_to keys_path, :class => controller.controller_name == "keys" ? "current" : nil do
Keys Keys
- unless current_user.keys.empty? - unless current_user.keys.empty?
......
!!!
%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
.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"
.ui-box.width-100p .ui-box.width-100p
%h3= @user.name %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 .data
-if @user.errors.any? .left
#error_explanation -if @user.errors.any?
%ul #error_explanation
- @user.errors.full_messages.each do |msg| %ul
%li= msg - @user.errors.full_messages.each do |msg|
%li= msg
.form-row .form-row
= f.label :name = f.label :name
%br %br
= f.text_field :name = f.text_field :name
.form-row .form-row
= f.label :email = f.label :email
%br %br
= f.text_field :email = f.text_field :email
.form-row .form-row
= f.label :skype = f.label :skype
%br %br
= f.text_field :skype = f.text_field :skype
.form-row .form-row
= f.label :linkedin = f.label :linkedin
%br %br
= f.text_field :linkedin = f.text_field :linkedin
.form-row .form-row
= f.label :twitter = f.label :twitter
%br %br
= f.text_field :twitter = f.text_field :twitter
.right
= image_tag gravatar_icon(current_user.email,64), :width => 64, :style => "margin:5px; border:5px solid #eee;"
.clear
.buttons .buttons
= f.submit 'Save', :class => "grey-button" = f.submit 'Save', :class => "grey-button"
...@@ -5,12 +5,12 @@ ...@@ -5,12 +5,12 @@
= name = name
= link_to "raw", blob_project_ref_path(@project, @ref, :path => params[:path] ), :class => "right", :target => "_blank" = 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;" = 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/ %br/
- if file.text? - if file.text?
.view_file_content .view_file_content
- unless file.empty? - unless file.empty?
%div{:class => cookies[:colorschema]} %div{:class => current_user.dark_scheme ? "black" : ""}
:erb :erb
<%= raw file.colorize %> <%= raw file.colorize %>
- else - else
......
...@@ -19,8 +19,9 @@ Gitlab::Application.routes.draw do ...@@ -19,8 +19,9 @@ Gitlab::Application.routes.draw do
get "profile/password", :to => "profile#password" get "profile/password", :to => "profile#password"
put "profile/password", :to => "profile#password_update" put "profile/password", :to => "profile#password_update"
put "profile/reset_private_token", :to => "profile#reset_private_token" put "profile/reset_private_token", :to => "profile#reset_private_token"
put "profile/edit", :to => "profile#social_update"
get "profile", :to => "profile#show" get "profile", :to => "profile#show"
get "profile/design", :to => "profile#design"
put "profile/update", :to => "profile#update"
get "dashboard", :to => "dashboard#index" get "dashboard", :to => "dashboard#index"
get "dashboard/issues", :to => "dashboard#issues" get "dashboard/issues", :to => "dashboard#issues"
......
class AddColoschemeOptionToUser < ActiveRecord::Migration
def change
add_column :users, :dark_scheme, :boolean, :default => false, :null => false
end
end
...@@ -11,7 +11,19 @@ ...@@ -11,7 +11,19 @@
# #
# It's strongly recommended to check this file into your version control system. # 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| create_table "issues", :force => true do |t|
t.string "title" t.string "title"
...@@ -118,6 +130,7 @@ ActiveRecord::Schema.define(:version => 20111207211728) do ...@@ -118,6 +130,7 @@ ActiveRecord::Schema.define(:version => 20111207211728) do
t.string "linkedin", :default => "", :null => false t.string "linkedin", :default => "", :null => false
t.string "twitter", :default => "", :null => false t.string "twitter", :default => "", :null => false
t.string "authentication_token" t.string "authentication_token"
t.boolean "dark_scheme", :default => false, :null => false
end end
add_index "users", ["email"], :name => "index_users_on_email", :unique => true add_index "users", ["email"], :name => "index_users_on_email", :unique => true
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册