From 19ddb38e1b030a6e8575255091b7fc2275f7b0f3 Mon Sep 17 00:00:00 2001 From: yanxd Date: Sat, 10 May 2014 09:22:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E6=AD=A5=E9=AA=8C=E8=AF=81=E6=B3=A8?= =?UTF-8?q?=E5=86=8C=E5=AD=97=E6=AE=B5=E5=90=88=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/account_controller.rb | 27 ++++ app/views/account/register.html.erb | 39 +++++- config/locales/en.yml | 2 + config/locales/zh.yml | 3 + config/routes.rb | 181 +++++++++++++------------- public/stylesheets/nyan.css | 9 ++ 6 files changed, 168 insertions(+), 93 deletions(-) diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index d3d42685..cf39898f 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -172,6 +172,33 @@ class AccountController < ApplicationController redirect_to signin_path end + def valid_ajax + req = Hash.new(false) + req[:message] = '' + + valid_attr = params[:valid] + valid_value = params[:value] + + faker = User.new + + if valid_attr.eql?('login') + faker.login = valid_value + faker.valid? + req[:valid] = faker.errors[:login].blank? + req[:message] = faker.errors[:login] + end + + if valid_attr.eql?('mail') + faker.mail = valid_value + faker.valid? + req[:valid] = faker.errors[:mail].blank? + req[:message] = faker.errors[:mail] + end + + req[:message] = l(:modal_valid_passing) if req[:message].blank? + render :json => req + end + private def authenticate_user diff --git a/app/views/account/register.html.erb b/app/views/account/register.html.erb index 7f729552..f24f7d05 100644 --- a/app/views/account/register.html.erb +++ b/app/views/account/register.html.erb @@ -278,8 +278,8 @@ <% if @user.auth_source_id.nil? %> -

<%= f.text_field :login, :size => 25, :required => true %> - <%= l(:label_max_number) %>

+

<%= f.text_field :login, :size => 25, :required => true %> + <%= l(:label_max_number) %>

<%= f.password_field :password, :size => 25, :required => true %> <%= l(:text_caracters_minimum, :count => Setting.password_min_length) %>

@@ -294,7 +294,7 @@ <%= text_field_tag :enterprise_name %>

-

<%= f.text_field :mail, :required => true %>

+

<%= f.text_field :mail, :required => true %>

<%="#{l(:label_mail_attention)} "%>

<%= f.select :language, lang_options_for_select , :required => true %>

@@ -368,3 +368,36 @@ + \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 08255e98..1d2e9b6c 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1603,3 +1603,5 @@ en: label_activity_time: publish date + # ajax异步验证 + modal_valid_passing: can be used. \ No newline at end of file diff --git a/config/locales/zh.yml b/config/locales/zh.yml index b8378c0d..1fac59dd 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1885,4 +1885,7 @@ zh: label_relation_files: 关联已有资源 label_contest_settings: 配置竞赛 label_contest_delete: 删除竞赛 + + # ajax异步验证 + modal_valid_passing: 可以使用 \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index be0d11ce..e0d1f6fb 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -16,73 +16,73 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. RedmineApp::Application.routes.draw do - resources :no_uses - delete 'no_uses', :to => 'no_uses#delete' - - resources :apply_project_masters - delete 'apply_project_masters', :to => 'apply_project_masters#delete' - - - resources :open_source_projects do - collection do - match 'search', via: [:get, :post] - match 'remove_condition', via: [:get, :post] - end - resources :relative_memos - member do - match 'master_apply', via: [:get, :post] - match 'accept_master_apply', via: [:get, :post] - match 'refuse_master_apply', via: [:get, :post] - end - end - mount SeemsRateable::Engine => '/rateable', :as => :rateable - - namespace :zipdown do - match 'assort' - end - namespace :test do - match 'courselist' - match 'zip' - end - ##new added by linchun #以发布应用的形式参与竞赛 - resources :softapplications do - - collection do - match 'new_message', via: :get - end - member do - match 'create_message' , via: :post - end - end - - ## new added by linchun #新竞赛相关 - resources :contests, only: [:index] do - collection do - match 'new_contest' , via: :get - match 'join_in_contest' , via: :post - match 'unjoin_in_contest' , via: :delete - match 'create_contest' , via: :post - match 'new_join' , via: :post - match 'new' , via: :post - end - member do - match 'add_softapplication' - match 'update_contest' , via: [:put] - match 'show_contest' , via: :get - match 'show_project' , via: :get - match 'show_softapplication', via: :get - match 'show_participator' , via: :get - match 'add' , via: [:get, :post] - match 'add_softapplication' , via: [:get, :post] - match 'create' , via: :post - match 'settings' , via: [:get, :post] - end - end - + resources :no_uses + delete 'no_uses', :to => 'no_uses#delete' + + resources :apply_project_masters + delete 'apply_project_masters', :to => 'apply_project_masters#delete' + + + resources :open_source_projects do + collection do + match 'search', via: [:get, :post] + match 'remove_condition', via: [:get, :post] + end + resources :relative_memos + member do + match 'master_apply', via: [:get, :post] + match 'accept_master_apply', via: [:get, :post] + match 'refuse_master_apply', via: [:get, :post] + end + end + mount SeemsRateable::Engine => '/rateable', :as => :rateable + + namespace :zipdown do + match 'assort' + end + namespace :test do + match 'courselist' + match 'zip' + end + ##new added by linchun #以发布应用的形式参与竞赛 + resources :softapplications do + + collection do + match 'new_message', via: :get + end + member do + match 'create_message' , via: :post + end + end + + ## new added by linchun #新竞赛相关 + resources :contests, only: [:index] do + collection do + match 'new_contest' , via: :get + match 'join_in_contest' , via: :post + match 'unjoin_in_contest' , via: :delete + match 'create_contest' , via: :post + match 'new_join' , via: :post + match 'new' , via: :post + end + member do + match 'add_softapplication' + match 'update_contest' , via: [:put] + match 'show_contest' , via: :get + match 'show_project' , via: :get + match 'show_softapplication', via: :get + match 'show_participator' , via: :get + match 'add' , via: [:get, :post] + match 'add_softapplication' , via: [:get, :post] + match 'create' , via: :post + match 'settings' , via: [:get, :post] + end + end + resources :stores do collection do match 'search', via: [:get, :post] - end + end end resources :forums do @@ -100,20 +100,20 @@ RedmineApp::Application.routes.draw do end end - resources :shares + resources :shares #added by william get "tags/index" - + get "tags/show" - + get "praise_tread/praise_plus" get "praise_tread/tread_plus" #end root :to => 'welcome#index', :as => 'home' - + #added by baiyu match 'git_usage/ch_usage', :controller => 'git_usage', :action => 'ch_usage', :via => :get, :as => 'ch_usage' match 'git_usage/en_usage', :controller => 'git_usage', :action => 'en_usage', :via => :get, :as => 'en_usage' @@ -126,6 +126,7 @@ RedmineApp::Application.routes.draw do match 'account/register', :to => 'account#register', :via => [:get, :post], :as => 'register' match 'account/lost_password', :to => 'account#lost_password', :via => [:get, :post], :as => 'lost_password' match 'account/activate', :to => 'account#activate', :via => :get + match 'account/valid_ajax', :to => 'account#valid_ajax', :via => :get match '/news/preview', :controller => 'previews', :action => 'news', :as => 'preview_news', :via => [:get, :post, :put] match '/issues/preview/new/:project_id', :to => 'previews#issue', :as => 'preview_new_issue', :via => [:get, :post, :put] @@ -167,21 +168,21 @@ RedmineApp::Application.routes.draw do get 'projects/:id/issues/report', :to => 'reports#issue_report', :as => 'project_issues_report' get 'projects/:id/issues/report/:detail', :to => 'reports#issue_report_details', :as => 'project_issues_report_details' post '/users/:id/user_activities', :to => 'users#show', :as => "user_activities" - + #added by young - resources :users do + resources :users do member do match 'user_projects', :to => 'users#user_projects', :via => :get match 'user_activities', :to => 'users#show', :via => :get, :as => "user_activities" - match 'user_newfeedback', :to => 'users#user_newfeedback', :via => :get, :as => "user_newfeedback" - match 'watch_calls', :controller => 'users', :action => 'watch_bids', :via => [:get , :post] + match 'user_newfeedback', :to => 'users#user_newfeedback', :via => :get, :as => "user_newfeedback" + match 'watch_calls', :controller => 'users', :action => 'watch_bids', :via => [:get , :post] match 'info', :to => 'users#info', :via => [:get , :post], :as => 'user_info' match 'user_watchlist', :to => 'users#user_watchlist', :via => :get, :as => "user_watchlist" #add by huang match 'user_fanslist', :to => 'users#user_fanslist', :via => :get, :as => "user_fanslist" #add by huang match 'user_courses', :to => 'users#user_courses', :via => :get match 'user_homeworks', :to => 'users#user_homeworks', :via => :get - match 'watch_projects', :to => 'users#watch_projects', :via => :get - # added by bai + match 'watch_projects', :to => 'users#watch_projects', :via => :get + # added by bai match 'show_score', :to => 'users#show_score', :via => :get match 'topic_score_index', :controller => 'users', :action => 'topic_score_index', :via => [:get, :post] match 'project_score_index', :to => 'users#project_score_index', :via => :get @@ -195,13 +196,13 @@ RedmineApp::Application.routes.draw do match 'file_score_index', :to => 'projects#file_score_index', :via => [:get, :post] match 'code_submit_score_index', :to => 'projects#code_submit_score_index', :via => [:get, :post] match 'projects_topic_score_index', :to => 'projects#projects_topic_score_index', :via => [:get, :post] - # end + # end end end match 'users/:id/user_newfeedback', :to => 'users#user_newfeedback', :via => :get, :as => "feedback" match 'users/:id/user_projects', :controller => 'users', :action => 'user_projects', :via => :get - #match 'user/:id/watch_calls', :controller => 'users', :action => 'watch_bids', :via => [:get , :post] - + #match 'user/:id/watch_calls', :controller => 'users', :action => 'watch_bids', :via => [:get , :post] + #end match 'my/account', :controller => 'my', :action => 'account', :via => [:get, :post] match 'my/account/destroy', :controller => 'my', :action => 'destroy', :via => [:get, :post] @@ -276,7 +277,7 @@ RedmineApp::Application.routes.draw do # get 'projects/:project_id/repository', :to => 'repositories#show', :as => 'project_repository' # match '/show', :controller => 'projects', :action => 'show', :as => 'project_show', :via => :get - match '/watcherlist', :controller=>'projects', :action=> 'watcherlist', :as => 'watcherlist', :via => :get #add by huang + match '/watcherlist', :controller=>'projects', :action=> 'watcherlist', :as => 'watcherlist', :via => :get #add by huang # matche '/news', :controller => 'news', :action => 'index', :as => 'news', :via => :get #end @@ -326,7 +327,7 @@ RedmineApp::Application.routes.draw do resources :repositories, :except => [:index, :show] do member do get 'newrepo', :via => [:get, :post] - # get 'create', :via=>[:get, :post] + # get 'create', :via=>[:get, :post] end end match 'wiki/index', :controller => 'wiki', :action => 'index', :via => :get @@ -518,10 +519,10 @@ RedmineApp::Application.routes.draw do match 'uploads', :to => 'attachments#upload', :via => :post # Added by Tao - match 'upload_avatar', :to => 'avatar#upload', :via => :post + match 'upload_avatar', :to => 'avatar#upload', :via => :post # Endof Tao's code get 'robots.txt', :to => 'welcome#robots' - + ##############测试留言功能 fq post 'words/new', :to => 'words#new' post 'words/create', :to => 'words#create' @@ -545,7 +546,7 @@ RedmineApp::Application.routes.draw do match 'calls/:id/new_submit_homework', to: 'bids#new_submit_homework', via: :get, as: 'new_submit_homework' match 'words/add_project_respond', :controller => 'words', :action => 'add_project_respond' match 'words/:id/leave_project_message', :controller => 'words', :action => 'leave_project_message' - + match 'projects/:id/feedback', :to => 'projects#feedback', :via => :get, :as => 'project_feedback' match 'calls/create_bid', :to => 'bids#create_bid' match 'contest/create_contest', :to => 'bids#create_contest' #huang @@ -559,24 +560,24 @@ RedmineApp::Application.routes.draw do match 'calls/:id/show_course', :to => 'bids#show_course', :as => 'show_course' match 'calls/:id/show_bid_project', :to => 'bids#show_bid_project', :as => 'show_bid_project' match 'calls/:id/show_bid_user', :to => 'bids#show_bid_user', :as => 'show_bid_user' - + match 'project/:id/share', :to => 'projects#share', :as => 'share_show' #share - - post 'join_in/join', :to => 'courses#join', :as => 'join' + + post 'join_in/join', :to => 'courses#join', :as => 'join' delete 'join_in/join', :to => 'courses#unjoin' post 'calls/:id/join_in_contest', :to => 'bids#join_in_contest', :as => 'join_in_contest' delete 'calls/:id/join_in_contest', :to => 'bids#unjoin_in_contest' match 'calls/:id/show_participator', :to => 'bids#show_participator' #bai match 'calls/:id/update_contest', :to => 'bids#update_contest' #bai match 'calls/:id/settings', :to => 'bids#settings' #bai - + delete 'attachment/:id', :to => 'attachments#delete_homework' match 'new_join', :to => 'projects#new_join', :as => 'try_join' match 'new_join_in_contest', :to => 'bids#new_join', :as => 'try_join_in_contest' match 'projects/:id/respond', :to => 'projects#project_respond', :via => :post match 'calls/:id/manage',:to => 'bids#manage',:via => [:get,:post] match 'project/course', :to => 'projects#course', :as => 'course' - + #added by william # match 'calls/:id/set_results',:controller => 'bids', :action => 'set_results',:via => [:get,:post],:as => 'set_results' # match 'calls/:id/set_prizes',:controller => 'bids',:action => 'set_prizes',:as => 'set_prizes' @@ -584,10 +585,10 @@ RedmineApp::Application.routes.draw do # added by young match 'calls', :controller => 'bids', :action => 'index' - + match 'calls/:id', :controller => 'bids', :action => 'show', :as => 'respond' match 'contest', :controller => 'bids', :action => 'contests', :as => 'contest' #modified @20140403 - + ######################## ##added by wen########## @@ -616,7 +617,7 @@ RedmineApp::Application.routes.draw do match 'parise_tread/tread_plus',:to => 'parise_tread#tread_plus',:as=>"tread" match 'tags/delete',:to=>'tags#delete' match 'tags/remove_tag',:to=>'tags#remove_tag',:as=>"remove_tag" - + match 'words/add_brief_introdution', :controller => 'words', :action => 'add_brief_introdution' Dir.glob File.expand_path("plugins/*", Rails.root) do |plugin_dir| diff --git a/public/stylesheets/nyan.css b/public/stylesheets/nyan.css index 85751a08..5645e375 100644 --- a/public/stylesheets/nyan.css +++ b/public/stylesheets/nyan.css @@ -1,5 +1,14 @@ /* TODO: base/common/page 准备封装一些基本样式组合调用 参考YUI *******************************************************************************/ +span[id^=valid_user]{ + padding-left: 10px; +} +.red{ + color: red; +} +.green{ + color: green; +} .border_box { -webkit-box-sizing: border-box; -moz-box-sizing: border-box;