diff --git a/app/assets/javascripts/member-selection.js b/app/assets/javascripts/member-selection.js index 443dbeb..075afc8 100644 --- a/app/assets/javascripts/member-selection.js +++ b/app/assets/javascripts/member-selection.js @@ -58,10 +58,20 @@ $(document).ready(function() { $("#remove_users").removeClass("hide"); } } + var is_category_disabled = function(id){ + var obj = app_categories.filter(function(c){return c.id == id})[0]; + return obj.disable; + } $("select[name=anything]").on("change",function(){ + $(".select_user_modal").removeClass("hide"); + $("#disabled_message_span").addClass("hide"); var value_to_filter = $(this).val(); if(value_to_filter != ""){ + if(is_category_disabled(value_to_filter)){ + $(".select_user_modal").addClass("hide"); + $("#disabled_message_span").removeClass("hide"); + } lis.each(function(){ var categories = $(this).data("categories"); if(categories.indexOf(value_to_filter) == -1){ diff --git a/app/controllers/admin/authorizations_controller.rb b/app/controllers/admin/authorizations_controller.rb index 8d1c82c..3c27621 100644 --- a/app/controllers/admin/authorizations_controller.rb +++ b/app/controllers/admin/authorizations_controller.rb @@ -7,7 +7,7 @@ class Admin::AuthorizationsController < OrbitAdminController if @module_apps && @module_apps.include?(@module_app) reload_users if (@module_app.categorizable || @module_app.categories.present?) - @objects = @module_app.categories rescue nil + @objects = @module_app.categories.order_by(:disable.asc) rescue nil end elsif @module_apps && @module_app.key == "authorization" redirect_to admin_authorizations_path(@module_apps.first.key) diff --git a/app/controllers/admin/import_controller.rb b/app/controllers/admin/import_controller.rb index e65970b..4176946 100644 --- a/app/controllers/admin/import_controller.rb +++ b/app/controllers/admin/import_controller.rb @@ -26,7 +26,7 @@ class Admin::ImportController < OrbitAdminController msg = "Failed to connect to RSS2 (#{uri.to_s})" end - render :json=>{"status"=>msg} + render :json=>{"status"=>msg}.to_json end def clean_old_data diff --git a/app/controllers/orbit_admin_controller.rb b/app/controllers/orbit_admin_controller.rb index 5e9aaac..c7e8636 100644 --- a/app/controllers/orbit_admin_controller.rb +++ b/app/controllers/orbit_admin_controller.rb @@ -4,6 +4,7 @@ class OrbitAdminController < ApplicationController include OrbitBackendHelper before_action :authenticate_user, :log_user_action, :load_authorized_categories + before_action :check_for_nil_categories, :only => [:new, :edit] layout "back_end" def sort @@ -81,4 +82,11 @@ class OrbitAdminController < ApplicationController @current_user_is_sub_manager = current_user.is_sub_manager?(@module_app) rescue false end + def check_for_nil_categories + @user_authorized_categories = @module_app.categories.enabled.authorized(current_user) + if @current_user_is_sub_manager && @user_authorized_categories.blank? + render_403 + end + end + end diff --git a/app/controllers/page_parts_controller.rb b/app/controllers/page_parts_controller.rb index dcfbc4a..d2d5eaf 100644 --- a/app/controllers/page_parts_controller.rb +++ b/app/controllers/page_parts_controller.rb @@ -41,7 +41,7 @@ class PagePartsController < ApplicationController app = ModuleApp.find_by_key(module_name) rescue nil app = OrbitWidget.find_by_key(module_name) if app.nil? - @categories = app.categories rescue [] + @categories = app.categories.enabled rescue [] @tags = app.tags rescue [] @widget_methods = app.widget_methods @widget_settings = app.widget_settings @@ -100,7 +100,7 @@ class PagePartsController < ApplicationController module_name = module_name.downcase.singularize app = ModuleApp.find_by_key(module_name) rescue nil app = OrbitWidget.find_by_key(module_name) if app.nil? - @categories = app.categories rescue [] + @categories = app.categories.enabled rescue [] @tags = app.tags rescue [] @widget_methods = app.widget_methods @widget_settings = app.widget_settings diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index fc39620..dc3e5b4 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -74,12 +74,19 @@ class PagesController < ApplicationController params[:layout_type] = params[:method] || page.layout || "index" end params[:url] = page.url - + categories = [] + page.categories.each do |c| + category = Category.find(c) rescue nil + if !category.nil? && !category.disable + categories << c + end + end + categories = ["all"] if categories.blank? @manifest = @key OrbitHelper.set_params params,current_user OrbitHelper.set_site_locale locale OrbitHelper.set_this_module_app module_app.singularize - OrbitHelper.set_page_categories page.categories || [] + OrbitHelper.set_page_categories categories || ["all"] OrbitHelper.set_page_tags page.tags || [] OrbitHelper.set_page_role_status page.role_status || [] OrbitHelper.set_member_sort_position page.member_sort_position @@ -164,7 +171,7 @@ class PagesController < ApplicationController end else if !module_app.key.eql?("page_content") - categories = module_app.categories.collect do |cat| + categories = module_app.categories.enabled.collect do |cat| { "title" => cat.title, "id" => cat.id.to_s @@ -203,7 +210,7 @@ class PagesController < ApplicationController @pages = Page.where(:page_id.ne => "" , :page_id.exists => true) @modules = ModuleApp.all.frontend_enabled @module_app = ModuleApp.find_by_key(@page.module) rescue nil - @categories = @module_app.categories rescue [] + @categories = @module_app.categories.enabled rescue [] if @module_app.key.eql?("page_content") @categories = [] end @@ -283,13 +290,13 @@ class PagesController < ApplicationController partials = [] subparts.each do |subpart| if subpart.kind == "module_widget" + OrbitHelper.set_current_widget subpart OrbitHelper.set_widget_data_count subpart.data_count - OrbitHelper.set_widget_categories subpart.categories OrbitHelper.set_widget_module_app subpart.module OrbitHelper.set_widget_item_url subpart OrbitHelper.set_widget_title subpart.title - OrbitHelper.set_widget_categories subpart.categories || [] + OrbitHelper.set_widget_categories subpart.categories || ["all"] OrbitHelper.set_widget_tags subpart.tags || [] custom_value = subpart.custom_string_field || subpart.custom_array_field rescue nil if !custom_value.nil? diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 0d37af4..624d2f5 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -246,7 +246,7 @@ module ApplicationHelper end html.html_safe else - return "
<%= mod.title %> <%= categories.count %>
diff --git a/app/views/admin/categories/_select_form.html.erb b/app/views/admin/categories/_select_form.html.erb index af6914a..68f78a1 100644 --- a/app/views/admin/categories/_select_form.html.erb +++ b/app/views/admin/categories/_select_form.html.erb @@ -24,6 +24,7 @@ <% end %> +