From 3a65f599e61f6d3623fa6b708128b4a087b4ea12 Mon Sep 17 00:00:00 2001 From: "Matthew K. Fu JuYuan" Date: Mon, 24 Sep 2012 11:43:48 +0800 Subject: [PATCH] first version app config for Spen durning Chris's leave. --- .../admin/users_new_interface_controller.rb | 8 +++ .../plugin_dashbroad.html.erb | 6 ++ .../admin/users_new_interface/show.html.erb | 23 ++++---- lib/orbit_app.rb | 8 ++- lib/orbit_app/backend_side_bar.rb | 15 ----- lib/orbit_app/dsl.rb | 26 ++++++--- lib/orbit_app/module/backend_side_bar.rb | 17 ++++++ lib/orbit_app/module/registration.rb | 54 +++++++++++++++++ .../module/{module_summary.rb => summary.rb} | 4 +- lib/orbit_app/plugin/registration.rb | 58 +++++++++++++++++++ .../plugin/{plugin_summary.rb => summary.rb} | 3 +- .../announcement/plugin/_profile.html.erb | 1 + vendor/built_in_modules/announcement/init.rb | 12 +++- .../announcement/lib/announcement.rb | 4 -- .../announcement/lib/announcement/engine.rb | 4 -- .../announcement/lib/announcement/version.rb | 3 - 16 files changed, 191 insertions(+), 55 deletions(-) create mode 100644 app/views/admin/users_new_interface/plugin_dashbroad.html.erb delete mode 100644 lib/orbit_app/backend_side_bar.rb create mode 100644 lib/orbit_app/module/backend_side_bar.rb create mode 100644 lib/orbit_app/module/registration.rb rename lib/orbit_app/module/{module_summary.rb => summary.rb} (83%) create mode 100644 lib/orbit_app/plugin/registration.rb rename lib/orbit_app/plugin/{plugin_summary.rb => summary.rb} (65%) create mode 100644 vendor/built_in_modules/announcement/app/views/panel/announcement/plugin/_profile.html.erb delete mode 100644 vendor/built_in_modules/announcement/lib/announcement.rb delete mode 100644 vendor/built_in_modules/announcement/lib/announcement/engine.rb delete mode 100644 vendor/built_in_modules/announcement/lib/announcement/version.rb diff --git a/app/controllers/admin/users_new_interface_controller.rb b/app/controllers/admin/users_new_interface_controller.rb index f0aaef73..4c258087 100644 --- a/app/controllers/admin/users_new_interface_controller.rb +++ b/app/controllers/admin/users_new_interface_controller.rb @@ -26,6 +26,8 @@ class Admin::UsersNewInterfaceController < ApplicationController def show @user = User.find(params[:id]) + @plugins = OrbitApp::Module::Registration.all + @profile_data = [] @teacher_data = [] @student_data = [] @@ -47,6 +49,12 @@ class Admin::UsersNewInterfaceController < ApplicationController @staff_data.push({:name => att_val.attribute_field.title,:value =>eval("att_val.#{att_val.key}")}) if att_val.attribute_field.role.key=="staff_data"rescue false } + if(!params[:show_plugin_profile].nil?) + @right_partial = OrbitApp::Plugin::Registration.find_by_key(params[:show_plugin_profile]).profile_partial_path rescue 'plugin_summary' + else + @right_partial = "plugin_summary" + end + # binding.pry # @user.attribute_values.each{|att_val| # @teacher_data.push({:name => att_val.attribute_field.title,:value =>att_val[I18n.locale]}) diff --git a/app/views/admin/users_new_interface/plugin_dashbroad.html.erb b/app/views/admin/users_new_interface/plugin_dashbroad.html.erb new file mode 100644 index 00000000..7cd090b5 --- /dev/null +++ b/app/views/admin/users_new_interface/plugin_dashbroad.html.erb @@ -0,0 +1,6 @@ +
+ <% #binding.pry%> + <%= render :partial=> 'plugin_summary'%> + <%= render :partial=> 'plugin_summary'%> + <%= render :partial=> 'plugin_summary'%> +
\ No newline at end of file diff --git a/app/views/admin/users_new_interface/show.html.erb b/app/views/admin/users_new_interface/show.html.erb index c70a1d98..262b2db9 100644 --- a/app/views/admin/users_new_interface/show.html.erb +++ b/app/views/admin/users_new_interface/show.html.erb @@ -6,23 +6,20 @@
-
- <% #binding.pry%> - <%= render :partial=> 'plugin_summary'%> - <%= render :partial=> 'plugin_summary'%> - <%= render :partial=> 'plugin_summary'%> -
+ <%=render :partial=> @right_partial%>
diff --git a/lib/orbit_app.rb b/lib/orbit_app.rb index d171a5a6..b0e5a735 100644 --- a/lib/orbit_app.rb +++ b/lib/orbit_app.rb @@ -1,8 +1,10 @@ require "orbit_app/summary" require "orbit_app/dsl" -require "orbit_app/backend_side_bar" -require "orbit_app/plugin/plugin_summary" -require "orbit_app/module/module_summary" +require "orbit_app/module/backend_side_bar" +require "orbit_app/plugin/summary" +require "orbit_app/plugin/registration" +require "orbit_app/module/summary" +require "orbit_app/module/registration" module OrbitApp extend DSL diff --git a/lib/orbit_app/backend_side_bar.rb b/lib/orbit_app/backend_side_bar.rb deleted file mode 100644 index a4f3728e..00000000 --- a/lib/orbit_app/backend_side_bar.rb +++ /dev/null @@ -1,15 +0,0 @@ -module OrbitApp - class BackendSideBar - attr_reader :name - - def initialize(name, &block) - @name = name - block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? - end - - def item(*args) - - end - - end -end \ No newline at end of file diff --git a/lib/orbit_app/dsl.rb b/lib/orbit_app/dsl.rb index c414d663..95bc7cce 100644 --- a/lib/orbit_app/dsl.rb +++ b/lib/orbit_app/dsl.rb @@ -1,16 +1,26 @@ module OrbitApp module DSL - def backend_side_bar(name,&block) - BackendSideBar.new(name,&block) + def registration(name,type ={:type=> "ModuleApp"} ,&block) + if type[:type] == "ModuleApp" + Module::Registration.new(name,&block) + elsif type[:type] == "PersonalPlugin" + Plugin::Registration.new(name,&block) + end + end - def plugin_summary(name,&block) - # Plugin::PluginSummary.new(name,&block) - end - def module_summary(name,&block) - Module::ModuleSummary.new(name,&block) - end + # def backend_side_bar(name,&block) + # Module::BackendSideBar.new(name,&block) + # end + + # def plugin_summary(name,&block) + # # Plugin::PluginSummary.new(name,&block) + # end + + # def module_summary(name,&block) + # Module::Summary.new(name,&block) + # end end end \ No newline at end of file diff --git a/lib/orbit_app/module/backend_side_bar.rb b/lib/orbit_app/module/backend_side_bar.rb new file mode 100644 index 00000000..de0ef750 --- /dev/null +++ b/lib/orbit_app/module/backend_side_bar.rb @@ -0,0 +1,17 @@ +module OrbitApp + module Module + class BackendSideBar + attr_reader :name + + def initialize(name, &block) + @name = name + block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? + end + + # def personal_plugin(*args) + # binding.pry + # end + + end + end +end \ No newline at end of file diff --git a/lib/orbit_app/module/registration.rb b/lib/orbit_app/module/registration.rb new file mode 100644 index 00000000..2f98592d --- /dev/null +++ b/lib/orbit_app/module/registration.rb @@ -0,0 +1,54 @@ +module OrbitApp + module Module + module Registration + Version = "0.1" + + module ClassMethods + @@registrations = [] + + def new( name ,&block) + @@registrations << DataSheet.new(name,&block) + end + + def find_by_key(key) + @@registrations.each{|t| + return t if t.name == key + } + return nil + end + + def all + return @@registrations + end + end + + extend ClassMethods + def self.included( other ) + other.extend( ClassMethods ) + end + + class DataSheet + attr_reader :name + attr_reader :base_path + + def initialize(name, &block) + @name = name + block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? + end + + def plugin + + end + + def personal_plugin(params) + # TODO 這裡要看是一些檔案是不是都有 + Plugin::Registration.new_from_module_app(@name,@base_path,params) + end + + def base_url(var) + @base_path = var + end + end + end + end +end \ No newline at end of file diff --git a/lib/orbit_app/module/module_summary.rb b/lib/orbit_app/module/summary.rb similarity index 83% rename from lib/orbit_app/module/module_summary.rb rename to lib/orbit_app/module/summary.rb index 746e1205..c3098cb1 100644 --- a/lib/orbit_app/module/module_summary.rb +++ b/lib/orbit_app/module/summary.rb @@ -3,8 +3,8 @@ require "orbit_app/summary" module OrbitApp module Module - module ModuleSummary - include Summary + module Summary + include OrbitApp::Summary class Item def initialize() diff --git a/lib/orbit_app/plugin/registration.rb b/lib/orbit_app/plugin/registration.rb new file mode 100644 index 00000000..f996fc6d --- /dev/null +++ b/lib/orbit_app/plugin/registration.rb @@ -0,0 +1,58 @@ +module OrbitApp + module Plugin + module Registration + Version = "0.1" + + module ClassMethods + @@registrations = [] + + def new( name ,&block) + @@registrations << DataSheet.new(name,&block) + end + + def new_from_module_app(name,base_path,arg) + @@registrations << DataSheet.new(name,arg,:base_path=>base_path) + end + + def find_by_key(key) + @@registrations.each{|t| + return t if t.name == key + } + return nil + end + + def all + return @@registrations + end + end + + extend ClassMethods + def self.included( other ) + other.extend( ClassMethods ) + end + + class DataSheet + attr_reader :name + attr_reader :base_path + + + def initialize(name,partial=nil,*args ,&block) + @base_path = args[0][:base_path] + @name = name + @partial_path = '' + + unless partial.nil? + @partial_path = partial[:path] + end + + block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given? + end + + def profile_partial_path + return @partial_path + end + + end + end + end +end \ No newline at end of file diff --git a/lib/orbit_app/plugin/plugin_summary.rb b/lib/orbit_app/plugin/summary.rb similarity index 65% rename from lib/orbit_app/plugin/plugin_summary.rb rename to lib/orbit_app/plugin/summary.rb index 55e05120..ee0c6982 100644 --- a/lib/orbit_app/plugin/plugin_summary.rb +++ b/lib/orbit_app/plugin/summary.rb @@ -2,7 +2,8 @@ require "orbit_app/summary" module OrbitApp module Plugin - module PluginSummary + module Summary + # include OrbitApp::Summary include OrbitApp::Summary end diff --git a/vendor/built_in_modules/announcement/app/views/panel/announcement/plugin/_profile.html.erb b/vendor/built_in_modules/announcement/app/views/panel/announcement/plugin/_profile.html.erb new file mode 100644 index 00000000..54b2428e --- /dev/null +++ b/vendor/built_in_modules/announcement/app/views/panel/announcement/plugin/_profile.html.erb @@ -0,0 +1 @@ +Hello~ I am your plugin profile \ No newline at end of file diff --git a/vendor/built_in_modules/announcement/init.rb b/vendor/built_in_modules/announcement/init.rb index a9a24c5f..9a2c0d43 100644 --- a/vendor/built_in_modules/announcement/init.rb +++ b/vendor/built_in_modules/announcement/init.rb @@ -1,7 +1,15 @@ -OrbitApp.module_summary "Announcement" do - +module Announcement + OrbitApp.registration "Announcement",:type=> 'ModuleApp' do + + base_url File.expand_path File.dirname(__FILE__) + personal_plugin :enable => true,:path=>"panel/announcement/plugin/profile" + + + end + end + # OrbitApp.backend_side_bar 'News' do # block :available_for => [:admin,:guest,:manager,:sub_manager], diff --git a/vendor/built_in_modules/announcement/lib/announcement.rb b/vendor/built_in_modules/announcement/lib/announcement.rb deleted file mode 100644 index 1feec47d..00000000 --- a/vendor/built_in_modules/announcement/lib/announcement.rb +++ /dev/null @@ -1,4 +0,0 @@ -require "announcement/engine" - -module Announcement -end diff --git a/vendor/built_in_modules/announcement/lib/announcement/engine.rb b/vendor/built_in_modules/announcement/lib/announcement/engine.rb deleted file mode 100644 index 6b87cf08..00000000 --- a/vendor/built_in_modules/announcement/lib/announcement/engine.rb +++ /dev/null @@ -1,4 +0,0 @@ -module Announcement - class Engine < Rails::Engine - end -end diff --git a/vendor/built_in_modules/announcement/lib/announcement/version.rb b/vendor/built_in_modules/announcement/lib/announcement/version.rb deleted file mode 100644 index 1b522752..00000000 --- a/vendor/built_in_modules/announcement/lib/announcement/version.rb +++ /dev/null @@ -1,3 +0,0 @@ -module Announcement - VERSION = "0.0.1" -end