diff --git a/app/controllers/admin/import_controller.rb b/app/controllers/admin/import_controller.rb index d0c15a6..dd5a91d 100644 --- a/app/controllers/admin/import_controller.rb +++ b/app/controllers/admin/import_controller.rb @@ -287,15 +287,14 @@ class Admin::ImportController < OrbitAdminController end end when "gallery" - if @@thread.alive? - render :json => {"success" => true, "total_images" => @@import_stats["total_images"], "current_status" => @@import_stats["current_status"], "current_album_id" => @@import_stats["current_album_id"], "current_album_name" => @@import_stats["current_album_name"]} - else - if @@import_stats["current_status"] == @@import_stats["total_images"] - render :json => {"success" => true, "total_images" => @@import_stats["total_images"], "current_status" => @@import_stats["current_status"], "current_album_id" => @@import_stats["current_album_id"], "current_album_name" => @@import_stats["current_album_name"]} - else - render :json => {"success" => false, "current_album_id" => @@import_stats["current_album_id"], "current_album_name" => @@import_stats["current_album_name"]} - end - end + # if @@import_stats["current_status"] <= (@@import_stats["total_images"] + 1) + # render :json => {"success" => true, "total_images" => @@import_stats["total_images"], "current_status" => @@import_stats["current_status"], "current_album_id" => @@import_stats["current_album_id"], "current_album_name" => @@import_stats["current_album_name"]} + # elsif @@import_stats["current_status"] == @@import_stats["total_images"] + # render :json => {"success" => true, "total_images" => @@import_stats["total_images"], "current_status" => @@import_stats["current_status"], "current_album_id" => @@import_stats["current_album_id"], "current_album_name" => @@import_stats["current_album_name"]} + # else + # render :json => {"success" => false, "current_album_id" => @@import_stats["current_album_id"], "current_album_name" => @@import_stats["current_album_name"]} + # end + render :json => @@import_stats.to_json when "links" if @@thread.alive? render :json => {"success" => true, "current_import" => @@import_stats["current_import"], "total_links" => @@import_stats["total_links"], "current_status" => @@import_stats["current_status"], "current_link_id" => @@import_stats["current_link_id"], "current_link_name" => @@import_stats["current_album_name"]} @@ -311,7 +310,7 @@ class Admin::ImportController < OrbitAdminController def rss2_galleries uri = URI.parse(params['url']) - @@thread = Thread.new do + # @@thread = Thread.new do http = Net::HTTP.new(uri.host, uri.port) request = Net::HTTP::Get.new(uri.request_uri) response = http.request(request) @@ -352,9 +351,9 @@ class Admin::ImportController < OrbitAdminController end end end - end - @@thread.join - @@thread.abort_on_exception = true + # end + # @@thread.join + # @@thread.abort_on_exception = true render :json => {"success" => true}.to_json end diff --git a/app/controllers/page_parts_controller.rb b/app/controllers/page_parts_controller.rb index 0270ca6..5c8df93 100644 --- a/app/controllers/page_parts_controller.rb +++ b/app/controllers/page_parts_controller.rb @@ -6,6 +6,7 @@ class PagePartsController < ApplicationController @part_number = params[:part] @page_id = params[:page_id] @modules = ModuleApp.widget_enabled + @modules = @modules.concat(OrbitWidget.all) @no_orbit_bar = @no_side_bar = true @select_number = 0 @html_class = "page-parts" @@ -21,6 +22,7 @@ class PagePartsController < ApplicationController @part_number = params[:id] @select_number = @part.sub_parts.count @modules = ModuleApp.widget_enabled + @modules = @modules.concat(OrbitWidget.all) @no_orbit_bar = @no_side_bar = true @html_class = "page-parts" render :layout => "structure" @@ -32,6 +34,7 @@ class PagePartsController < ApplicationController @select_number = @part.sub_parts.index(@subpart) @kind = @subpart.kind @modules = ModuleApp.widget_enabled + @modules = @modules.concat(OrbitWidget.all) if @kind == "module_widget" @widget_types = [] module_name = @subpart.module @@ -41,9 +44,15 @@ class PagePartsController < ApplicationController w = File.basename(w, ".*") @widget_types << w.gsub("_","") if w != "index" && w != "show" end - - app = ModuleApp.find_by_key(module_name) - @categories = app.categories + Dir.glob("#{Rails.root}/app/templates/#{@key}/widgets/#{module_name.downcase}/*").each do |w| + next if File.ftype(w).eql?("directory") + w = File.basename(w, ".*") + w = File.basename(w, ".*") + @widget_types << w.gsub("_","") if w != "index" && w != "show" + end + app = ModuleApp.find_by_key(module_name) rescue nil + app = OrbitWidget.find_by_key(module_name) if app.nil? + @categories = app.categories rescue [] @widget_methods = app.get_registration.get_widget_methods @widget_settings = app.get_registration.get_widget_settings @data_count = nil @@ -100,9 +109,16 @@ class PagePartsController < ApplicationController w = File.basename(w, ".*") @widget_types << w.gsub("_","") if w != "index" && w != "show" end - module_name = module_name.downcase.singularize - app = ModuleApp.find_by_key(module_name) - @categories = app.categories + Dir.glob("#{Rails.root}/app/templates/#{@key}/widgets/#{module_name.downcase}/*").each do |w| + next if File.ftype(w).eql?("directory") + w = File.basename(w, ".*") + w = File.basename(w, ".*") + @widget_types << w.gsub("_","") if w != "index" && w != "show" + end + 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 [] @widget_methods = app.get_registration.get_widget_methods @widget_settings = app.get_registration.get_widget_settings @data_count = nil diff --git a/app/helpers/pages_helper.rb b/app/helpers/pages_helper.rb index 87457a1..b40044e 100644 --- a/app/helpers/pages_helper.rb +++ b/app/helpers/pages_helper.rb @@ -48,7 +48,12 @@ module PagesHelper controller_name = controller_name.downcase.singularize f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'modules', "#{controller_name}", "_#{widget_file}.html.erb"); if !File.exists?f - f = File.join('../templates', "#{@key}", 'modules', "#{controller_name}", "_widget.html.erb"); + f = File.join(Rails.root, 'app', 'templates', "#{@key}", 'widgets', "#{controller_name}", "_#{widget_file}.html.erb"); + if !File.exists?f + f = File.join('../templates', "#{@key}", 'modules', "#{controller_name}", "_widget.html.erb"); + else + f = File.join('../templates', "#{@key}", 'widgets', "#{controller_name}", "_#{widget_file}.html.erb"); + end else f = File.join('../templates', "#{@key}", 'modules', "#{controller_name}", "_#{widget_file}.html.erb"); end diff --git a/app/models/orbit_widget.rb b/app/models/orbit_widget.rb new file mode 100644 index 0000000..ba61c7e --- /dev/null +++ b/app/models/orbit_widget.rb @@ -0,0 +1,15 @@ +class OrbitWidget + include Mongoid::Document + include Mongoid::Timestamps + + field :title, type: String + field :key, type: String + + def get_registration + OrbitApp::Widget::Registration.find_by_key(key) + end + + def self.find_by_key(key) + self.find_by(:key => key) + end +end \ No newline at end of file diff --git a/app/templates/orbit_bootstrap/widgets/site_menu_widget/_widget.html.erb b/app/templates/orbit_bootstrap/widgets/site_menu_widget/_widget.html.erb new file mode 100644 index 0000000..e1853b7 --- /dev/null +++ b/app/templates/orbit_bootstrap/widgets/site_menu_widget/_widget.html.erb @@ -0,0 +1,18 @@ +