From 0bdd38d264ab3a130a76149e8d4b0fa0180b349d Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 4 Jul 2017 09:51:51 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=91=98=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/managements_controller.rb | 44 +++++----- app/controllers/users_controller.rb | 2 +- app/helpers/application_helper.rb | 13 +++ app/helpers/users_helper.rb | 4 +- app/views/games/_code_actions.html.erb | 2 +- app/views/layouts/base_management.html.erb | 2 +- app/views/managements/_user_list.html.erb | 47 +++++++++++ app/views/managements/users.html.erb | 81 +++++++------------ app/views/managements/users.js.erb | 1 + .../users/_my_homepage_course_show.html.erb | 2 +- app/views/users/show.html.erb | 2 +- config/routes.rb | 3 +- public/javascripts/edu/management.js | 2 + 13 files changed, 123 insertions(+), 82 deletions(-) create mode 100644 app/views/managements/_user_list.html.erb create mode 100644 app/views/managements/users.js.erb diff --git a/app/controllers/managements_controller.rb b/app/controllers/managements_controller.rb index 4bf483441..fbc2336a0 100644 --- a/app/controllers/managements_controller.rb +++ b/app/controllers/managements_controller.rb @@ -7,32 +7,32 @@ class ManagementsController < ApplicationController include UsersHelper include ApplicationHelper + # 0 全部;1 活动的; 2 已注册; 3 锁定 def users - @menu_type = 6 - sort_init 'login', 'asc' - sort_update %w(login firstname lastname mail admin created_on last_login_on) - - case params[:format] - when 'xml', 'json' - @offset, @limit = api_offset_and_limit({:limit => 50}) - else - @limit = 50 #per_page_option + status = params[:user_status].nil? ? 0 : params[:user_status].to_i + condition = (params[:research_condition].nil? || params[:research_condition] == "name") ? "concat(lastname, firstname)" : params[:research_condition] + if 0 == status + @users = User.where("#{condition} like '%#{params[:research_contents]}%'").order("created_on desc").all + else + @users = User.where("status = #{status} and #{condition} like '%#{params[:research_contents]}%'").order("created_on desc").all end + @users_count = @users.count + @limit = 20 + @is_remote = true + @users_pages = Paginator.new @users_count, @limit, params['page'] || 1 + @offset ||= @users_pages.offset + @users = paginateHelper @users, @limit - @status = params[:status] || 1 - scope = User.logged.status(@status) - scope = User.like(params[:name]) if params[:name].present? - scope = scope.in_group(params[:group_id]) if params[:group_id].present? - - @user_count = scope.count - @user_pages = Paginator.new @user_count, @limit, params['page'] - @offset ||= @user_pages.offset - @users = scope.order(sort_clause).limit(@limit).offset(@offset).all respond_to do |format| - format.html { - @groups = Group.all.sort - } - format.api + format.html + format.js + end + end + + def update_user_status + + respond_to do |format| + format.js end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 2a0d870e5..a4d0088dc 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -3632,7 +3632,7 @@ class UsersController < ApplicationController def destroy @user.destroy respond_to do |format| - format.html { redirect_back_or_default(admin_users_path) } + format.html { redirect_back_or_default(params[:back_url]) } format.api { render_api_ok } end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 39e2cdf51..b3e27cb12 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2559,6 +2559,19 @@ module ApplicationHelper link_to l(:button_delete), url, options end + def update_status_link(user) + url = {:controller => 'users', :action => 'update', :id => user, :page => params[:page], :status => params[:status], :tab => nil} + + if user.locked? + link_to "解锁", url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'mr10 link-color-blue' + elsif user.registered? + link_to "激活", url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'mr10 link-color-blue' + elsif user != User.current + link_to "加锁", url.merge(:user => {:status => User::STATUS_LOCKED}), :method => :put, :class => 'mr10 link-color-blue' + end + end + + def delete_version_link(url, options={}) options = { :method => :delete, diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 5de7316a5..c4d46a09d 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -325,11 +325,11 @@ module UsersHelper url = {:controller => 'users', :action => 'update', :id => user, :page => params[:page], :status => params[:status], :tab => nil} if user.locked? - link_to l(:button_unlock), url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'icon icon-unlock' + link_to "解锁", url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'mr10 link-color-blue' elsif user.registered? link_to l(:button_activate), url.merge(:user => {:status => User::STATUS_ACTIVE}), :method => :put, :class => 'icon icon-unlock' elsif user != User.current - link_to l(:button_lock), url.merge(:user => {:status => User::STATUS_LOCKED}), :method => :put, :class => 'icon icon-lock' + link_to "加锁", url.merge(:user => {:status => User::STATUS_LOCKED}), :method => :put, :class => 'mr10 link-color-blue' end end diff --git a/app/views/games/_code_actions.html.erb b/app/views/games/_code_actions.html.erb index e45ee671a..9b2dd486e 100644 --- a/app/views/games/_code_actions.html.erb +++ b/app/views/games/_code_actions.html.erb @@ -133,7 +133,7 @@ $("#code_estimate").html("下一关"); var htmlvalue = "<%= j (render :partial => 'games/pass_game_show', :locals => { :game=> @game, :myshixun => @myshixun, :had_done => 0}) %>"; }else{ - $("#code_estimate").html("退出实训"); + $("#code_estimate").html("退出实训"); var htmlvalue = "<%= j (render :partial => 'games/pass_game_show', :locals => { :game=> @game, :myshixun => @myshixun, :had_done => 1}) %>"; } // 传递具体屏幕的宽高,实现不同浏览器与不同分辨率都能撑满屏幕 diff --git a/app/views/layouts/base_management.html.erb b/app/views/layouts/base_management.html.erb index 0aa9c2c5f..3aae83823 100644 --- a/app/views/layouts/base_management.html.erb +++ b/app/views/layouts/base_management.html.erb @@ -29,7 +29,7 @@
  • 单位
  • 用户
  • diff --git a/app/views/managements/_user_list.html.erb b/app/views/managements/_user_list.html.erb new file mode 100644 index 000000000..441dc6170 --- /dev/null +++ b/app/views/managements/_user_list.html.erb @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + <% @users.each do |user| %> + + + + + + + + + + + <% end %> + +
    ID真实姓名邮件地址手机号码单位创建于最后登录操作
    <%= user.login %><%= user.try(:show_name) %>"><%= user.mail.blank? ? "--" : user.mail %>"><%= user.phone.blank? ? "--" : user.phone %> + "> + <%= user.try(:user_extensions).try(:school).try(:name).blank? ? "--" : user.try(:user_extensions).try(:school) %> + + <%= format_time user.created_on %>"><%= user.last_login_on.blank? ? "--" : (format_time user.last_login_on) %> + + <%= update_status_link(user) %> + + <%= link_to "删除", user_path(user, :back_url => users_managements_path), :method => "delete", :class => "link-color-blue", :confirm => l(:text_are_you_sure) %> +
    +<% if @users_count > 20 %> +
    +
    + +
    +
    +
    +<% end %> \ No newline at end of file diff --git a/app/views/managements/users.html.erb b/app/views/managements/users.html.erb index b60bfc386..65c4d2f05 100644 --- a/app/views/managements/users.html.erb +++ b/app/views/managements/users.html.erb @@ -1,55 +1,32 @@
    -
    -

    全部状态

    - - -
    -
    -

    真实姓名搜索

    - - -
    -
    - - 搜索 - 清除 -
    - 新建用户 + <%= form_tag(url_for(users_managements_path), :id => "managements_users_search", :method => "post", :remote => true) do %> +
    +

    全部状态

    + + +
    +
    +

    真实姓名搜索

    + + +
    +
    + + 搜索 + 清除 +
    + + <% end %>
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    ID真实姓名邮件地址手机号码单位创建于最后登录操作
    m12345678欧阳莎1234567810@test.com12345678901国防科学技术大学国防科学技术大学国防科学技术大学2017-05-01 10:062017-05-01 10:06锁定删除
    +
    + <%= render :partial => "managements/user_list" %>
    \ No newline at end of file diff --git a/app/views/managements/users.js.erb b/app/views/managements/users.js.erb new file mode 100644 index 000000000..9ca398ce2 --- /dev/null +++ b/app/views/managements/users.js.erb @@ -0,0 +1 @@ +$("#managements_user_list").html("<%= j( render :partial => "managements/user_list" ) %>"); \ No newline at end of file diff --git a/app/views/users/_my_homepage_course_show.html.erb b/app/views/users/_my_homepage_course_show.html.erb index 7a6e85114..7fc2dce21 100644 --- a/app/views/users/_my_homepage_course_show.html.erb +++ b/app/views/users/_my_homepage_course_show.html.erb @@ -1,7 +1,7 @@
    <% str = current_user ? '' : 'TA的' %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index ac5c003ec..10428456c 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -182,7 +182,7 @@
    <% str = current_user ? '' : 'TA的' %> diff --git a/config/routes.rb b/config/routes.rb index fde690704..d52dbff4e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -116,10 +116,11 @@ RedmineApp::Application.routes.draw do match 'trial_authorization_operation', :as => 'trial_authorization_operation' get 'reject_authentication' get 'agree_authentication' - get 'users' + match 'users', :via => [:get, :post] get 'users_trial' match 'users_authorization_agree' match 'users_authorization_cancel' + get 'update_user_status' end end # Enable Grack support diff --git a/public/javascripts/edu/management.js b/public/javascripts/edu/management.js index 4ea7ea9fb..9f18c935b 100644 --- a/public/javascripts/edu/management.js +++ b/public/javascripts/edu/management.js @@ -45,3 +45,5 @@ $(".edu-position").live("mouseout", function(){ $("#clear_contents").live("click", function(){ $("input[name='research_contents']").val(""); }); + +/*------------------- 锁定/删除 用户----------------------*/