diff --git a/app/assets/javascripts/member-selection.js b/app/assets/javascripts/member-selection.js index 237c338..1efa044 100644 --- a/app/assets/javascripts/member-selection.js +++ b/app/assets/javascripts/member-selection.js @@ -5,20 +5,52 @@ $(document).ready(function() { switch(authorization_type){ case "managers": $("ul#card-list-submanagers li.check-item").removeClass("active"); - $("ul#card-list-submanagers li.check-item input[type=checkbox]").removeAttr("checked") + $("ul#card-list-submanagers li.check-item input[type=checkbox]").removeAttr("checked"); break; case "sub_managers": $("ul#card-list-managers li.check-item").removeClass("active"); - $("ul#card-list-managers li.check-item input[type=checkbox]").removeAttr("checked") + $("ul#card-list-managers li.check-item input[type=checkbox]").removeAttr("checked"); break; } hide_or_show_button(); }) - $('.selected_user input[type="checkbox"], .selected_role input[type="checkbox"]').on("change",function(){ + $(document).on("change",".selected_user input[type=checkbox], .selected_role input[type=checkbox]",function(){ hide_or_show_button(); }) + $("#select_all").on("click",function(){ + switch(authorization_type){ + case "managers": + $("ul#card-list-managers li.check-item").addClass("active"); + $("ul#card-list-managers li.check-item input[type=checkbox]").prop("checked","checked"); + break; + case "sub_managers": + $("ul#card-list-submanagers li.check-item").addClass("active"); + $("ul#card-list-submanagers li.check-item input[type=checkbox]").prop("checked","checked"); + break; + } + $(".dropup").removeClass("open"); + hide_or_show_button(); + return false; + }) + + $("#deselect_all").on("click",function(){ + switch(authorization_type){ + case "managers": + $("ul#card-list-managers li.check-item").removeClass("active"); + $("ul#card-list-managers li.check-item input[type=checkbox]").removeAttr("checked"); + break; + case "sub_managers": + $("ul#card-list-submanagers li.check-item").removeClass("active"); + $("ul#card-list-submanagers li.check-item input[type=checkbox]").removeAttr("checked"); + break; + } + $(".dropup").removeClass("open"); + hide_or_show_button(); + return false; + }) + var hide_or_show_button = function(){ if($('.selected_role input[type="checkbox"]:checked').length == 0 && $('.selected_user input[type="checkbox"]:checked').length == 0){ $("#remove_users").addClass("hide"); @@ -64,6 +96,18 @@ $(document).ready(function() { $(".modal").on("hidden", function () { $("#select_user_modal").empty(); }); + var current_role = $("#select_user_modal .current_role a").eq(0).attr("href"); + $("#select_user_modal .current_role a").on("click",function(){ + current_role = $(this).attr("href"); + }) + $("#select_all_modal").on("click",function(){ + $(current_role).find(".check-item").addClass("active"); + $(current_role).find(".check-item input[type=checkbox]").prop("checked","checked"); + }) + $("#deselect_all_modal").on("click",function(){ + $(current_role).find(".check-item").removeClass("active"); + $(current_role).find(".check-item input[type=checkbox]").removeAttr("checked"); + }) }, }); return false; @@ -101,6 +145,9 @@ $(document).ready(function() { data: data_to_send, error: function(){ alert("ERROR"); + }, + success : function(){ + hide_or_show_button(); } }); } diff --git a/app/controllers/admin/authorizations_controller.rb b/app/controllers/admin/authorizations_controller.rb index 72e9b3e..e5736a0 100644 --- a/app/controllers/admin/authorizations_controller.rb +++ b/app/controllers/admin/authorizations_controller.rb @@ -56,7 +56,7 @@ class Admin::AuthorizationsController < OrbitAdminController end def remove_users - @users = User.find(params[:ids]) rescue [] + @users = User.find(params[:user_ids]) rescue [] unless @users.blank? authorization = @users.map {|u| remove_authorizations(u)}.first end @@ -147,7 +147,7 @@ class Admin::AuthorizationsController < OrbitAdminController def reload_users - @managers = @module_app.module_managers rescue [] + @managers = @module_app.managers rescue [] @sub_managers = @module_app.sub_managers rescue [] manager_roles = @module_app.role_managers.collect{|r| Role.find(r)} rescue [] sub_manager_roles = @module_app.role_sub_managers rescue [] diff --git a/app/models/module_app.rb b/app/models/module_app.rb index e269893..fcc475c 100644 --- a/app/models/module_app.rb +++ b/app/models/module_app.rb @@ -115,6 +115,12 @@ class ModuleApp authorized_users.inject(users_authorized_by_role, :<<) rescue [] end + + def managers + Authorization.module_authorized_users(self).map{|a| a.user} + end + + def data_count get_registration.get_data_count end diff --git a/app/views/admin/authorizations/index.html.erb b/app/views/admin/authorizations/index.html.erb index 91e44d1..b2f76ce 100644 --- a/app/views/admin/authorizations/index.html.erb +++ b/app/views/admin/authorizations/index.html.erb @@ -69,6 +69,16 @@
+ <%= link_to content_tag(:i, nil, class: "icons-plus") + ' ' + t(:add), '#', class: 'btn btn-primary select_user_modal', rel: modal_select_authorizations_path(@module_app.key, @type, @object) %> <%= link_to content_tag(:i, nil, class: "icon-trash") + ' ' + t(:delete_), '#', id: 'remove_users', class: 'btn btn-danger hide', rel: remove_users_authorizations_path(@module_app.key, @type, @object) %>
diff --git a/app/views/admin/member_selects/_modal_select.html.erb b/app/views/admin/member_selects/_modal_select.html.erb index f1621f4..f31e12a 100644 --- a/app/views/admin/member_selects/_modal_select.html.erb +++ b/app/views/admin/member_selects/_modal_select.html.erb @@ -37,7 +37,7 @@ @@ -72,6 +72,16 @@ <% end %>
+
+ + Select + + + +
<%= submit_tag t(:submit), class: "btn btn-primary" %>