some category disable improvements

This commit is contained in:
Harry Bomrah 2014-12-09 21:25:51 +08:00
parent aac6b97d2d
commit 4b86270725
7 changed files with 55 additions and 6 deletions

View File

@ -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){

View File

@ -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

View File

@ -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

View File

@ -75,11 +75,17 @@ class PagesController < ApplicationController
end
params[:url] = page.url
categories = page.categories.collect do |c|
if !c.disable
return 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 +170,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 +209,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

View File

@ -87,7 +87,8 @@ module OrbitBackendHelper
def select_category(f, module_app)
render :partial => '/admin/categories/select_form', :locals => {:f=> f, :module_app=>module_app, :categories=>module_app.categories.enabled.authorized(current_user) }
@user_authorized_categories = module_app.categories.enabled.authorized(current_user) if @user_authorized_categories.nil?
render :partial => '/admin/categories/select_form', :locals => {:f=> f, :module_app=>module_app, :categories=> @user_authorized_categories }
end
def select_tags(f, module_app)
@ -193,6 +194,10 @@ module OrbitBackendHelper
render "public/401"
end
def render_403
render "public/403"
end
def need_access_right
render_401 if !has_access?
end

View File

@ -51,6 +51,7 @@
<label>Categories :
<%= select_tag "anything", options_from_collection_for_select(@objects, "id", "title"), :prompt => "Select Category" if !@objects.nil? %>
</label>
<span id="disabled_message_span" class="alert alert-error pull-right hide">This category is disabled.</span>
</div>
</div>
<ul id="card-list-submanagers" class="checkbox-card clearfix">
@ -87,6 +88,7 @@
<script type="text/javascript">
var lis = $("ul#card-list-submanagers li");
var app_categories = <%= @objects.collect{|c| {"id" => c.id.to_s, "disable" => c.disable}}.to_json.html_safe %>;
</script>

18
public/403.html Normal file
View File

@ -0,0 +1,18 @@
<style type="text/css">
body {
margin: 0;
padding: 40px 0 0 0;
background-color: #F3F3F3;
}
</style>
<!-- Error Pages Start Here -->
<div id="error-page">
<div class="card">
<div class="figure code-401"></div>
<div class="message">
<h2>Categories not present.</h2>
<p>You dont have any categories assigned or your assigned categories are disabled. Contact manager or admin.</p>
</div>
</div>
</div>
<!-- Error Pages End Here -->