lib/engine2/meta/infra_meta.rb in engine2-1.0.3 vs lib/engine2/meta/infra_meta.rb in engine2-1.0.4

- old
+ new

@@ -16,11 +16,11 @@ option :login_form, icon: :"log-in", disabled: 'action.action_pending()' # , show: "!action.logged_on" end @meta_type = :infra - def invoke handler + define_invoke do |handler| user = handler.user {user: user ? user.to_hash : nil} end end @@ -39,44 +39,39 @@ # access!{|h|h.user[:name] == 'admin'} self.* do extend MetaPanelSupport, MetaMenuSupport modal_action panel_template 'infra/inspect' - panel_title "Inspect" + panel_title "#{:wrench.icon} Inspect" panel_class "modal-huge" + panel[:backdrop] = true menu(:panel_menu).option :cancel, icon: "remove" - - # def invoke handler;{};end end define_action :inspect do self.* do @meta_type = :inspect end - define_action :models do - def (self.*).invoke handler - {models: Sequel::DATABASES.map{|db| {name: db.uri, models: db.models.keys} }} - end + define_action_invoke :models do |handler| + {models: Sequel::DATABASES.map{|db| {name: db.uri, models: db.models.keys} }} end - define_action :model_info do - def (self.*).invoke handler - db_name = handler.params[:db] - handler.permit db = Sequel::DATABASES.find{|d|d.uri == db_name || (d.uri && d.uri.start_with?(db_name))} - handler.permit model = db.models[handler.params[:model].to_sym] - { - model!: { - info: { - name: model.to_s, - table: model.table_name - }, - assoc: model.association_reflections, - schema: model.db_schema, - type_info: model.type_info - } + define_action_invoke :model_info do |handler| + db_name = handler.params[:db] + handler.permit db = Sequel::DATABASES.find{|d|d.uri == db_name || (d.uri && d.uri.start_with?(db_name))} + handler.permit model = db.models[handler.params[:model].to_sym] + { + model!: { + info: { + name: model.to_s, + table: model.table_name + }, + assoc: model.association_reflections, + schema: model.db_schema, + type_info: model.type_info } - end + } end end end end end @@ -187,11 +182,11 @@ def invoke handler handler.permit id = handler.params[:owner] inf = model.type_info[field] assoc = model.association_reflections[inf[:assoc_name]] - blob_model = Object.const_get(assoc[:class_name]) + blob_model = assoc.associated_class rec = model.naked.select(assoc[:key]).where(model.primary_keys_hash(split_keys(id))).first handler.permit rec result = blob_model.naked.select(inf[:name_field], Sequel.char_length(inf[:bytes_field]).as(:length)).where(blob_model.primary_key => rec[assoc[:key]]).first @@ -206,10 +201,10 @@ def invoke handler model = action.parent.*.model inf = model.type_info[action.parent.*.field] assoc = model.association_reflections[inf[:assoc_name]] - blob_model = Object.const_get(assoc[:class_name]) + blob_model = assoc.associated_class handler.permit id = handler.params[:id] rec = model.naked.select(assoc[:key]).where(model.primary_keys_hash(split_keys(id))).first handler.permit rec entry = blob_model.naked.select(inf[:bytes_field], inf[:name_field], inf[:mime_field]).where(blob_model.primary_key => rec[assoc[:key]]).first