diff --git a/app/controllers/admin/personal_plugin_fields_controller.rb b/app/controllers/admin/personal_plugin_fields_controller.rb
index c86ff76..4a9571c 100644
--- a/app/controllers/admin/personal_plugin_fields_controller.rb
+++ b/app/controllers/admin/personal_plugin_fields_controller.rb
@@ -299,6 +299,13 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
period_fields = primary_modal_fields.select{|f| (f[:periodic_time] == "1" rescue false)}.map{|f| f[:field_name]}
time_fields = primary_modal_fields.select{|f| f[:field_type] == "time"}.map{|f| f[:field_name]}
before_save_codes = ""#time_fields.map{|f| "self.#{f} = parse_time(self.#{f}.strftime('%H:%M'))"}.join("\r\n")
+ plugin_template_sort_hash = {}
+ @personal_plugin_field.backend_fields[:sort_asc].to_a.each do |f|
+ plugin_template_sort_hash[f] = 1
+ end rescue nil
+ @personal_plugin_field.backend_fields[:sort_desc].to_a.each do |f|
+ plugin_template_sort_hash[f] = -1
+ end rescue nil
@match_pattern = {"personal_plugin_template" => personal_plugin_template,
"plugin_template" => plugin_template,
"plugin_template_related" => plugin_template_related,
@@ -311,7 +318,7 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
"col_related_fields" => col_related_fields,
"plugin_template_file" => plugin_template_related_files,
"plugin_template_link" => plugin_template_related_links,
- "plugin_template_sort_hash" => "nil",
+ "plugin_template_sort_hash" => plugin_template_sort_hash.to_s,
"col_name_to_show_in_index_page_arr" => col_name_to_show_in_index_page,
"related_backend_index_fields" => related_backend_index_fields,
"related_backend_index_fields_contents" => related_backend_index_fields_contents,
@@ -353,6 +360,7 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
copy_templates("#{cp_template_dir_path}modules/#{@personal_plugin_field.module_name}/")
#render :html => @logs#@match_pattern#@logs.join("
").html_safe#@match_pattern
@personal_plugin_field.update(:log_text=>"")
+ @personal_plugin_field.update(:finished=>true)
add_plugin("downloaded_extensions.rb",@personal_plugin_field.module_name)
bundle_install
render :json => {:success=>true,:url=>"/admin/#{plugin_template.pluralize}/",:name=>@personal_plugin_field.title}
@@ -362,6 +370,7 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
replace_dirs(dirs,false)
error = e.backtrace.join("
")
@personal_plugin_field.update(:log_text=>error)
+ @personal_plugin_field.update(:finished=>false)
render :json => {:success=>false,:error=>error}
end
end
diff --git a/app/models/personal_plugin_field.rb b/app/models/personal_plugin_field.rb
index a4a6728..de9cf10 100644
--- a/app/models/personal_plugin_field.rb
+++ b/app/models/personal_plugin_field.rb
@@ -15,6 +15,7 @@ class PersonalPluginField
field :log_text, :type => String, :default => ""
field :fields_order, :type => Hash, :default => {}
field :copy_id
+ field :finished, :type => Boolean, :default => false
before_save :change_extensions,:check_modal_name,:auto_add_display_fields
after_destroy do
delete_plugin("downloaded_extensions.rb",self.module_name)
@@ -81,12 +82,12 @@ class PersonalPluginField
end
end
def auto_add_display_fields
- change_primary_fields = self.primary_modal_fields.map{|f| f["field_name"]} - self.primary_modal_fields_was.map{|f| f["field_name"]}
+ change_primary_fields = self.primary_modal_fields.map{|f| f["field_name"]} - self.primary_modal_fields_was.to_a.map{|f| f["field_name"]}
change_related_fields = []
self.related_modal_fields.each_with_index do |field_values,i|
old_field_values = self.related_modal_fields_was[i].to_a rescue []
related_modal_name = self.related_modal_name[i].to_s
- change_related_fields = change_related_fields + (field_values.map{|f| f["field_name"]} - old_field_values.map{|f| f["field_name"]}).select{|f| f.present?}.map{|f| "#{related_modal_name}.#{f}"}
+ change_related_fields = change_related_fields + (field_values.to_a.map{|f| f["field_name"]} - old_field_values.map{|f| f["field_name"]}).select{|f| f.present?}.map{|f| "#{related_modal_name}.#{f}"}
end
change_fields = change_primary_fields + change_related_fields
change_fields = change_fields.select{|f| f.present?}
diff --git a/app/views/admin/personal_plugin_fields/_personal_plugin_fields.html.erb b/app/views/admin/personal_plugin_fields/_personal_plugin_fields.html.erb
index a017dc8..37fc887 100644
--- a/app/views/admin/personal_plugin_fields/_personal_plugin_fields.html.erb
+++ b/app/views/admin/personal_plugin_fields/_personal_plugin_fields.html.erb
@@ -1,6 +1,13 @@
<% @personal_plugin_fields.each do |personal_plugin_field| %>
<%= t('personal_plugin_template.backend_index_fields') %> | + <%= thead('personal_plugin_template.backend_index_fields') %> parse_again_end
---|