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 "<div class='well'>It seems we have a problem with the module at this point of time, we will try to fix it as soon as possible. Sorry for the inconvenience!! :( </div>".html_safe
+				return "<div class='well'>No content to show.</div>".html_safe
 			end
 		else
 			f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', params[:target_controller].singularize, "#{params[:target_action]}.html.erb")
@@ -257,7 +257,7 @@ module ApplicationHelper
 				controller = "#{params[:target_controller].capitalize}_controller".classify.constantize.new
 				data = controller.send("#{params[:target_action]}") rescue nil
 				if data.nil?
-					return "<div class='well'>It seems we have a problem with the module at this point of time, we will try to fix it as soon as possible. Sorry for the inconvenience!! :( </div>".html_safe
+					return "<div class='well'> No content to show. </div>".html_safe
 				end
 
 				if data.blank? || data.empty?
diff --git a/app/helpers/orbit_backend_helper.rb b/app/helpers/orbit_backend_helper.rb
index f7bc45c..304fa29 100644
--- a/app/helpers/orbit_backend_helper.rb
+++ b/app/helpers/orbit_backend_helper.rb
@@ -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
diff --git a/app/helpers/orbit_helper.rb b/app/helpers/orbit_helper.rb
index 2b87dfc..cd133a6 100644
--- a/app/helpers/orbit_helper.rb
+++ b/app/helpers/orbit_helper.rb
@@ -280,7 +280,14 @@ module OrbitHelper
   end
 
   def self.set_widget_categories(categories)
-    @widget_categories = categories
+      @widget_categories = []
+      categories.each do |c|
+        category = Category.find(c) rescue nil
+        if !category.nil? && !category.disable
+          @widget_categories << c
+        end
+      end
+      @widget_categories = ["all"] if @widget_categories.blank?
   end
 
   def self.widget_categories
diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb
index 54dd677..4d451ae 100644
--- a/app/helpers/pages_helper.rb
+++ b/app/helpers/pages_helper.rb
@@ -87,7 +87,7 @@ module PagesHelper
       end
       html.html_safe
     else
-      return "<div class='well'>It seems we have a problem with the module at this point of time, we will try to fix it as soon as possible. Sorry for the inconvenience!! :( </div>".html_safe
+      return "<div class='well'>No content to show.</div>".html_safe
     end
   end
 
diff --git a/app/views/admin/authorizations/index.html.erb b/app/views/admin/authorizations/index.html.erb
index b2f76ce..8725323 100644
--- a/app/views/admin/authorizations/index.html.erb
+++ b/app/views/admin/authorizations/index.html.erb
@@ -49,8 +49,17 @@
             <h4 class="pull-left">Sub Managers</h4>
             <div class="pull-right">
               <label>Categories : 
-                <%= select_tag "anything", options_from_collection_for_select(@objects, "id", "title"), :prompt => "Select Category" if !@objects.nil? %>
+                <%#= select_tag "anything", options_from_collection_for_select(@objects, "id", "title"), :prompt => "Select Category" if !@objects.nil? %>
+                <% if !@objects.nil? %>
+                <select id="anything" name="anything">
+                  <option value="">Select Category</option>
+                  <% @objects.each do |obj| %>
+                    <option value="<%= obj.id %>" <%= obj.disable ? "class=alert-error" : "" %>><%= obj.title %></option>
+                  <% end %>
+                </select>
+                <% end %>
               </label>
+              <span id="disabled_message_span" class="alert alert-error pull-right hide"><%= t(:category_disabled) %></span>
             </div>
           </div>
           <ul id="card-list-submanagers" class="checkbox-card clearfix">
@@ -87,6 +96,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>
 
 
diff --git a/app/views/admin/categories/_index.html.erb b/app/views/admin/categories/_index.html.erb
index b3ab042..362065f 100644
--- a/app/views/admin/categories/_index.html.erb
+++ b/app/views/admin/categories/_index.html.erb
@@ -4,7 +4,7 @@
     <% @module_apps.each do |mod| %>
       <% 
         @mod = mod
-        categories = mod.categories 
+        categories = mod.categories.order_by(:disable.asc)
       %>
       <% icon_name = OrbitApp::Module::Registration.find_by_key(mod.key).get_icon_class rescue 'icons-daniel-bruce-2' %>
       <p class="tag-lead lead muted"><i class="<%= icon_name %>"></i> <%= mod.title %> <span class="badge pull-right"><%= categories.count %></span></p>
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 @@
             </div>
           </div>
         <% end %>
+        <div class="text-error text-center"><%= t(:category_notice) %></div>
       </div>
       <div class="modal-footer">
         <button type="button" class="btn btn-default pull-left" data-dismiss="modal"><%= t(:close) %></button>
diff --git a/app/views/admin/categories/index.html.erb b/app/views/admin/categories/index.html.erb
index e47f01e..c5ba1ca 100644
--- a/app/views/admin/categories/index.html.erb
+++ b/app/views/admin/categories/index.html.erb
@@ -25,6 +25,7 @@
                 </div>
               <% end %>
             <% end %>
+            <div class="text-error text-center"><%= t(:category_notice) %></div>
             <%= label_tag "disable" do %>
               <%= f.check_box :disable %>
               <%= t(:disable) %>
diff --git a/app/views/orbit_bar/index.html.erb b/app/views/orbit_bar/index.html.erb
index 9b78ec7..abaccf6 100644
--- a/app/views/orbit_bar/index.html.erb
+++ b/app/views/orbit_bar/index.html.erb
@@ -143,4 +143,11 @@
         <% end %>
       </ul>
     </div>
-  </div>
\ No newline at end of file
+  </div>
+  <script type="text/javascript">
+  $("#open-orbit-login").on("change",function(){
+    if($(this).is(":checked")){
+      $("#user_user_id").focus();
+    }
+  })
+  </script>
\ No newline at end of file
diff --git a/config/locales/en.yml b/config/locales/en.yml
index c45c6e3..659ca3a 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -26,6 +26,8 @@ en:
   zh_tw_: Traditional Chinese
   zh_cn: Simplified Chinese
   _locale: English 
+  category_notice: "Category once created, cannot be deleted."
+  category_disabled: "This category is disabled."
   access:
     denied:
       ajax_401_error: "User session has been expired,please login again."
diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml
index c501af4..9f99e3c 100644
--- a/config/locales/zh_tw.yml
+++ b/config/locales/zh_tw.yml
@@ -5,6 +5,9 @@ zh_tw:
   zh_tw_: 繁體中文
   zh_cn: 简体中文
   en: 英文
+  category_notice: 類別一但被建立,就不能刪除喔!
+  category_disabled:  此類別已被關閉
+
   access:
     denied:
       ajax_401_error: 使用者已逾時或是登出,請重新登入
diff --git a/public/403.html b/public/403.html
new file mode 100644
index 0000000..8e9c880
--- /dev/null
+++ b/public/403.html
@@ -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 -->
\ No newline at end of file
diff --git a/public/version-orbit-4-5 b/public/version-orbit-4-5
new file mode 100644
index 0000000..5a73712
--- /dev/null
+++ b/public/version-orbit-4-5
@@ -0,0 +1 @@
+version  = "4.5"