parent
7a488c02c6
commit
dce4cac9bc
|
@ -129,7 +129,7 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
"accepts_nested_attributes_for :#{field_name.pluralize}, :allow_destroy => true"
|
"accepts_nested_attributes_for :#{field_name.pluralize}, :allow_destroy => true"
|
||||||
}.join("\r\n")
|
}.join("\r\n")
|
||||||
plugin_template = @personal_plugin_field.primary_modal_name
|
plugin_template = @personal_plugin_field.primary_modal_name
|
||||||
backend_index_fields = @personal_plugin_field.backend_fields["index"] rescue []
|
backend_index_fields = @personal_plugin_field.backend_fields["index"].to_a rescue []
|
||||||
backend_index_fields_contents = backend_index_fields.map do |field_name|
|
backend_index_fields_contents = backend_index_fields.map do |field_name|
|
||||||
if field_name == slug_title
|
if field_name == slug_title
|
||||||
"\r\n <%= link_to #{plugin_template}.#{field_name}, page_for_#{plugin_template}(#{plugin_template}), target: \"blank\" %>\r\n" +
|
"\r\n <%= link_to #{plugin_template}.#{field_name}, page_for_#{plugin_template}(#{plugin_template}), target: \"blank\" %>\r\n" +
|
||||||
|
@ -147,7 +147,7 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
"<%= #{plugin_template}.#{field_name} %>"
|
"<%= #{plugin_template}.#{field_name} %>"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
backend_profile_fields = @personal_plugin_field.backend_fields["profile"] rescue []
|
backend_profile_fields = @personal_plugin_field.backend_fields["profile"].to_a rescue []
|
||||||
backend_profile_fields_contents = backend_profile_fields.map do |field_name|
|
backend_profile_fields_contents = backend_profile_fields.map do |field_name|
|
||||||
if field_name == slug_title
|
if field_name == slug_title
|
||||||
"\r\n <%= link_to #{plugin_template}.#{field_name}, page_for_#{plugin_template}(#{plugin_template}), target: \"blank\" %>\r\n" +
|
"\r\n <%= link_to #{plugin_template}.#{field_name}, page_for_#{plugin_template}(#{plugin_template}), target: \"blank\" %>\r\n" +
|
||||||
|
@ -165,9 +165,9 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
"<%= #{plugin_template}.#{field_name} %>"
|
"<%= #{plugin_template}.#{field_name} %>"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
col_name_to_show = @personal_plugin_field.frontend_fields["member_show"] rescue []
|
col_name_to_show = @personal_plugin_field.frontend_fields["member_show"].to_a rescue []
|
||||||
col_name_to_show_in_show_page = @personal_plugin_field.frontend_fields["show"] rescue []
|
col_name_to_show_in_show_page = @personal_plugin_field.frontend_fields["show"].to_a rescue []
|
||||||
col_name_to_show_in_index_page = @personal_plugin_field.frontend_fields["index"] rescue []
|
col_name_to_show_in_index_page = @personal_plugin_field.frontend_fields["index"].to_a rescue []
|
||||||
extra_translate_title = col_name_to_show_in_index_page.map{|field_name| #在個人外掛前台index頁面的欄位翻譯名稱hash
|
extra_translate_title = col_name_to_show_in_index_page.map{|field_name| #在個人外掛前台index頁面的欄位翻譯名稱hash
|
||||||
["th-#{field_name}","I18n.t(\"#{@personal_plugin_field.module_name}.#{field_name}\")"]
|
["th-#{field_name}","I18n.t(\"#{@personal_plugin_field.module_name}.#{field_name}\")"]
|
||||||
}
|
}
|
||||||
|
@ -250,11 +250,32 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
related_modal_name = @personal_plugin_field.related_modal_name[i]
|
related_modal_name = @personal_plugin_field.related_modal_name[i]
|
||||||
field_names.map{|field_name| "<%= #{related_modal_name}.#{field_name} %>"}
|
field_names.map{|field_name| "<%= #{related_modal_name}.#{field_name} %>"}
|
||||||
}
|
}
|
||||||
member_methods_define = primary_modal_fields.select{|f| f[:field_type] == "member"}.map{|field_value|
|
member_methods_define = primary_modal_fields.select{|f| (f[:field_type] == "member" rescue false)}.map{|field_value|
|
||||||
["def #{field_value[:field_name].pluralize}",
|
["def #{field_value[:field_name].pluralize}",
|
||||||
" MemberProfile.find(self.#{field_value[:field_name].singularize}_ids) rescue []",
|
" MemberProfile.find(self.#{field_value[:field_name].singularize}_ids) rescue []",
|
||||||
"end"]
|
"end"]
|
||||||
}.flatten
|
}.flatten
|
||||||
|
date_time_strftime = {"date"=>"%Y/%m/%d","date_time"=>"%Y/%m/%d %H:%M","year_month"=>"%Y/%m"}
|
||||||
|
periodic_methods_define = primary_modal_fields.select{|f| (f[:periodic_time] == "1" rescue false)}.map{|field_value|
|
||||||
|
strftime_string = ""
|
||||||
|
if date_time_strftime.keys.include?(field_value[:field_type])
|
||||||
|
strftime_string = ".strftime(\"#{date_time_strftime[field_value[:field_type]]}\")"
|
||||||
|
end
|
||||||
|
["def #{field_value[:field_name]}",
|
||||||
|
" \"\#{self.#{field_value[:field_name]}_start#{strftime_string}} ~ \#{self.#{field_value[:field_name]}_end#{strftime_string}}\"",
|
||||||
|
"end"]
|
||||||
|
}.flatten
|
||||||
|
related_periodic_methods_define = @personal_plugin_field.related_modal_fields.map{|field_values|
|
||||||
|
field_values.select{|f| (f[:periodic_time] == "1" rescue false)}.map{|field_value|
|
||||||
|
strftime_string = ""
|
||||||
|
if date_time_strftime.keys.include? field_value[:field_type]
|
||||||
|
strftime_string = ".strftime(\"#{date_time_strftime[field_value[:field_type]]}\")"
|
||||||
|
end
|
||||||
|
["def #{field_value[:field_name]}",
|
||||||
|
" \"\#{self.#{field_value[:field_name]}_start#{strftime_string}} ~ \#{self.#{field_value[:field_name]}_end#{strftime_string}}\"",
|
||||||
|
"end"]
|
||||||
|
}.flatten
|
||||||
|
}
|
||||||
analysis_field_name = @personal_plugin_field.backend_fields[:analysis][0] rescue ""
|
analysis_field_name = @personal_plugin_field.backend_fields[:analysis][0] rescue ""
|
||||||
analysis_field_name = "year" if analysis_field_name.blank?
|
analysis_field_name = "year" if analysis_field_name.blank?
|
||||||
analysis_field_input_fields = ""
|
analysis_field_input_fields = ""
|
||||||
|
@ -314,7 +335,9 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
"before_save_codes" => before_save_codes,
|
"before_save_codes" => before_save_codes,
|
||||||
"time_fields_text" => time_fields.to_s,
|
"time_fields_text" => time_fields.to_s,
|
||||||
"iterate_step_text" => iterate_step_text,
|
"iterate_step_text" => iterate_step_text,
|
||||||
"plugin_template_related_members" => plugin_template_related_members.to_s
|
"plugin_template_related_members" => plugin_template_related_members.to_s,
|
||||||
|
"periodic_methods_define" => periodic_methods_define,
|
||||||
|
"related_periodic_methods_define" => related_periodic_methods_define
|
||||||
}
|
}
|
||||||
max_length = @match_pattern.keys.map{|k| k.length}.max
|
max_length = @match_pattern.keys.map{|k| k.length}.max
|
||||||
@match_pattern = @match_pattern.sort_by{|k,v| (v.class != Array) ? (max_length - k.length) : -k.length}
|
@match_pattern = @match_pattern.sort_by{|k,v| (v.class != Array) ? (max_length - k.length) : -k.length}
|
||||||
|
@ -355,26 +378,35 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
field_type = field_value[:field_type]
|
field_type = field_value[:field_type]
|
||||||
next if field_name.blank?
|
next if field_name.blank?
|
||||||
next if field_type == "file" || field_type == "link"
|
next if field_type == "file" || field_type == "link"
|
||||||
if (field_value[:localize] == "1" rescue false)
|
localize = (field_value[:localize] == "1" rescue false)
|
||||||
|
periodic = (field_value[:periodic_time] == "1" rescue false)
|
||||||
|
input_field = generate_input_field(field_type,field_name,localize,extra_field_name,plugin_template,periodic)
|
||||||
|
if localize
|
||||||
locale_fields << field_name
|
locale_fields << field_name
|
||||||
input_field = generate_input_field(field_type,field_name,true,extra_field_name,plugin_template)
|
|
||||||
locale_fields_input_fields << input_field
|
locale_fields_input_fields << input_field
|
||||||
else
|
else
|
||||||
none_locale_fields << field_name
|
none_locale_fields << field_name
|
||||||
input_field = generate_input_field(field_type,field_name,false,extra_field_name,plugin_template)
|
|
||||||
none_locale_fields_input_fields << input_field
|
none_locale_fields_input_fields << input_field
|
||||||
end
|
end
|
||||||
@index += 1
|
@index += 1
|
||||||
end
|
end
|
||||||
return locale_fields , none_locale_fields , locale_fields_input_fields,none_locale_fields_input_fields
|
return locale_fields , none_locale_fields , locale_fields_input_fields,none_locale_fields_input_fields
|
||||||
end
|
end
|
||||||
def generate_input_field(field_type,field_name,localize = false,extra_field_name = nil, plugin_template = nil)
|
def generate_input_field(field_type,field_name,localize = false,extra_field_name = nil, plugin_template = nil,periodic = false)
|
||||||
personal_plugin_template = @personal_plugin_field.module_name
|
personal_plugin_template = @personal_plugin_field.module_name
|
||||||
plugin_template = @personal_plugin_field.primary_modal_name if plugin_template.nil?
|
plugin_template = @personal_plugin_field.primary_modal_name if plugin_template.nil?
|
||||||
input_field = ""
|
input_field = ""
|
||||||
field_value_text = "@#{plugin_template}.#{field_name}"
|
field_value_text = "@#{plugin_template}.#{field_name}"
|
||||||
field_name_text = "\"#{field_name}\""
|
field_name_text = "\"#{field_name}\""
|
||||||
field_name_text = "locale" if localize
|
field_name_text = "locale" if localize
|
||||||
|
org_field_name = field_name
|
||||||
|
if periodic
|
||||||
|
if localize
|
||||||
|
field_name = "periodic_time_field"
|
||||||
|
else
|
||||||
|
field_name_text = "\"periodic_time_field\""
|
||||||
|
end
|
||||||
|
end
|
||||||
placeholder = "#{personal_plugin_template}.#{field_name}"
|
placeholder = "#{personal_plugin_template}.#{field_name}"
|
||||||
placeholder = "#{personal_plugin_template}.#{extra_field_name}.#{field_name}" if extra_field_name
|
placeholder = "#{personal_plugin_template}.#{extra_field_name}.#{field_name}" if extra_field_name
|
||||||
if localize
|
if localize
|
||||||
|
@ -401,6 +433,15 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
if localize
|
if localize
|
||||||
input_field.prepend("<%= f.fields_for :#{field_name}_translations do |f| %>\r\n ").concat("\r\n<% end %>")
|
input_field.prepend("<%= f.fields_for :#{field_name}_translations do |f| %>\r\n ").concat("\r\n<% end %>")
|
||||||
end
|
end
|
||||||
|
if periodic
|
||||||
|
input_fields = []
|
||||||
|
input_fields[0] = input_field.gsub("periodic_time_field","#{org_field_name}_start")
|
||||||
|
input_fields[1] = input_field.gsub("periodic_time_field","#{org_field_name}_end")
|
||||||
|
input_field = ["start","end"].map.with_index{|f,i|
|
||||||
|
"<span><%=t(\"#{personal_plugin_template}.extend_translate.#{f}_#{field_type}\")%></span>" +
|
||||||
|
input_fields[i]
|
||||||
|
}.join("")
|
||||||
|
end
|
||||||
input_field
|
input_field
|
||||||
end
|
end
|
||||||
def datetime_picker_text(plugin_template,field_name_text,format = "yyyy/MM/dd hh:mm",timepicker = false)
|
def datetime_picker_text(plugin_template,field_name_text,format = "yyyy/MM/dd hh:mm",timepicker = false)
|
||||||
|
@ -420,7 +461,7 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
default = "DateTime.now.year"
|
default = "DateTime.now.year"
|
||||||
when "date"
|
when "date"
|
||||||
type = "Date"
|
type = "Date"
|
||||||
default = "Date.parse(DateTime.now.to_s)"
|
default = "Date.today"
|
||||||
when "time"
|
when "time"
|
||||||
type = "String"
|
type = "String"
|
||||||
default = "\"\""
|
default = "\"\""
|
||||||
|
@ -436,11 +477,23 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
|
||||||
field_name = "#{field_name.singularize}_ids"
|
field_name = "#{field_name.singularize}_ids"
|
||||||
end
|
end
|
||||||
no_localize_types = ["date","time","date_time","year_month"]
|
no_localize_types = ["date","time","date_time","year_month"]
|
||||||
field_text = "field :#{field_name}, :type => #{type}, :default => #{default}"
|
field_text = ""
|
||||||
field_text += ", :localize => true" if field_value[:localize] == "1" && !no_localize_types.include?(field_value[:field_type])
|
if field_value[:periodic_time] == "1" && no_localize_types.include?(field_value[:field_type])
|
||||||
field_text += ", as: :slug_title" if field_value[:slug_title] == "1"
|
field_text = []
|
||||||
|
field_text[0] = "field :#{field_name}_start, :type => #{type}, :default => #{default}"
|
||||||
|
field_text[0] += ", :localize => true" if field_value[:localize] == "1" && !no_localize_types.include?(field_value[:field_type])
|
||||||
|
field_text[0] += ", as: :slug_title" if field_value[:slug_title] == "1"
|
||||||
|
field_text[1] = "field :#{field_name}_end, :type => #{type}, :default => #{default}"
|
||||||
|
field_text[1] += ", :localize => true" if field_value[:localize] == "1" && !no_localize_types.include?(field_value[:field_type])
|
||||||
|
field_text[1] += ", as: :slug_title" if field_value[:slug_title] == "1"
|
||||||
|
else
|
||||||
|
field_text = "field :#{field_name}, :type => #{type}, :default => #{default}"
|
||||||
|
field_text += ", :localize => true" if field_value[:localize] == "1" && !no_localize_types.include?(field_value[:field_type])
|
||||||
|
field_text += ", as: :slug_title" if field_value[:slug_title] == "1"
|
||||||
|
end
|
||||||
field_text
|
field_text
|
||||||
end
|
end
|
||||||
|
fields_text = fields_text.flatten
|
||||||
fields_text.select{|t| t.present?}.join("\r\n")
|
fields_text.select{|t| t.present?}.join("\r\n")
|
||||||
end
|
end
|
||||||
def replace_dirs(dirs,is_array = true)
|
def replace_dirs(dirs,is_array = true)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
module Admin::PersonalPluginFieldsHelper
|
module Admin::PersonalPluginFieldsHelper
|
||||||
|
include OrbitBackendHelper
|
||||||
def thead_field(field)
|
def thead_field(field)
|
||||||
return I18n.t("personal_plugin_generator.#{field}")
|
return I18n.t("personal_plugin_generator.#{field}")
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,7 +15,7 @@ class PersonalPluginField
|
||||||
field :log_text, :type => String, :default => ""
|
field :log_text, :type => String, :default => ""
|
||||||
field :fields_order, :type => Hash, :default => {}
|
field :fields_order, :type => Hash, :default => {}
|
||||||
field :copy_id
|
field :copy_id
|
||||||
before_save :change_extensions,:check_modal_name
|
before_save :change_extensions,:check_modal_name,:auto_add_display_fields
|
||||||
after_destroy do
|
after_destroy do
|
||||||
delete_plugin("downloaded_extensions.rb",self.module_name)
|
delete_plugin("downloaded_extensions.rb",self.module_name)
|
||||||
restart_server
|
restart_server
|
||||||
|
@ -80,6 +80,25 @@ class PersonalPluginField
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
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_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}"}
|
||||||
|
end
|
||||||
|
change_fields = change_primary_fields + change_related_fields
|
||||||
|
change_fields = change_fields.select{|f| f.present?}
|
||||||
|
if change_fields.count > 0
|
||||||
|
["index","profile"].each do |f|
|
||||||
|
self.backend_fields[f] = self.backend_fields[f].to_a + change_fields
|
||||||
|
end
|
||||||
|
["index","show","member_show"].each do |f|
|
||||||
|
self.frontend_fields[f] = self.frontend_fields[f].to_a + change_fields
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
def self.get_modal_names
|
def self.get_modal_names
|
||||||
name_routes = Rails.application.routes.named_routes.map{|k,v| k}.select{|s| s.to_s[0..4] == "admin"}.map{|s| s.to_s.split('admin_').last}
|
name_routes = Rails.application.routes.named_routes.map{|k,v| k}.select{|s| s.to_s[0..4] == "admin"}.map{|s| s.to_s.split('admin_').last}
|
||||||
modal_names = name_routes.map{|n| n.classify}.select{|n| (n.constantize rescue nil)}
|
modal_names = name_routes.map{|n| n.classify}.select{|n| (n.constantize rescue nil)}
|
||||||
|
|
|
@ -172,9 +172,9 @@
|
||||||
})
|
})
|
||||||
<%
|
<%
|
||||||
related_modal_fields_html = "<div index=\"new_index\"><h4>#{thead_field("related_modal_name")} : <span class=\"related_modal_name\"></span></h4>"
|
related_modal_fields_html = "<div index=\"new_index\"><h4>#{thead_field("related_modal_name")} : <span class=\"related_modal_name\"></span></h4>"
|
||||||
related_modal_fields_html += render(:partial => 'render_table',locals: {:f => f,:root_name => "related_modal_fields][new_index",:field_values => [nil],:field_types => field_types1})
|
related_modal_fields_html += render(:partial => 'render_table',locals: {:f => f,:root_name => "related_modal_fields][new_index",:field_values => [nil],:field_types => field_types1,:@include_blank=>false})
|
||||||
related_modal_fields_html += "</div>"
|
related_modal_fields_html += "</div>"
|
||||||
primary_modal_field_html = render(:partial => 'render_table',locals: {:f => f,:root_name => "primary_modal_fields",:field_values => [nil],:field_types => field_types})
|
primary_modal_field_html = render(:partial => 'render_table',locals: {:f => f,:root_name => "primary_modal_fields",:field_values => [nil],:field_types => field_types,:@include_blank=>false})
|
||||||
%>
|
%>
|
||||||
var related_modal_fields_html = "<%= escape_javascript(related_modal_fields_html.html_safe) %>";
|
var related_modal_fields_html = "<%= escape_javascript(related_modal_fields_html.html_safe) %>";
|
||||||
var primary_modal_field_html = $("<%= escape_javascript(primary_modal_field_html.html_safe) %>").find("tbody tr")[0].outerHTML;
|
var primary_modal_field_html = $("<%= escape_javascript(primary_modal_field_html.html_safe) %>").find("tbody tr")[0].outerHTML;
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
<th><%= thead_field("field_type") %></th>
|
<th><%= thead_field("field_type") %></th>
|
||||||
<th><%= thead_field("localize") %></th>
|
<th><%= thead_field("localize") %></th>
|
||||||
<th><%= thead_field("slug_title") %></th>
|
<th><%= thead_field("slug_title") %></th>
|
||||||
|
<th><%= thead_field("periodic_time") %></th>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<%= f.fields_for root_name do |f| %>
|
<%= f.fields_for root_name do |f| %>
|
||||||
|
@ -32,6 +33,10 @@
|
||||||
<%= hidden_field_tag "#{f.object_name}[#{i}][slug_title]", "0",:id=>nil %>
|
<%= hidden_field_tag "#{f.object_name}[#{i}][slug_title]", "0",:id=>nil %>
|
||||||
<%= check_box_tag "#{f.object_name}[#{i}][slug_title]", "1" , (field_value["slug_title"] == "1" rescue false),:id=>nil,:class=>"slug_title" %>
|
<%= check_box_tag "#{f.object_name}[#{i}][slug_title]", "1" , (field_value["slug_title"] == "1" rescue false),:id=>nil,:class=>"slug_title" %>
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<%= hidden_field_tag "#{f.object_name}[#{i}][periodic_time]", "0",:id=>nil %>
|
||||||
|
<%= check_box_tag "#{f.object_name}[#{i}][periodic_time]", "1" , (field_value["periodic_time"] == "1" rescue false),:id=>nil,:class=>"periodic_time" %>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
|
@ -46,4 +46,5 @@ en:
|
||||||
goto: "Go to "
|
goto: "Go to "
|
||||||
generating_plugin: Generating plugin
|
generating_plugin: Generating plugin
|
||||||
please_change_module_name: "Please change module name(This name already exist)."
|
please_change_module_name: "Please change module name(This name already exist)."
|
||||||
copy: Copy
|
copy: Copy
|
||||||
|
periodic_time: Periodic time
|
|
@ -46,4 +46,5 @@ zh_tw:
|
||||||
goto: "前往 "
|
goto: "前往 "
|
||||||
generating_plugin: 正在生成個人外掛中...
|
generating_plugin: 正在生成個人外掛中...
|
||||||
please_change_module_name: "請更改模組名稱(此名稱已存在)"
|
please_change_module_name: "請更改模組名稱(此名稱已存在)"
|
||||||
copy: 複製
|
copy: 複製
|
||||||
|
periodic_time: 週期性時間
|
|
@ -27,12 +27,24 @@ module Admin::PluginTemplatesHelper
|
||||||
d = {}
|
d = {}
|
||||||
d["name"] = role.title
|
d["name"] = role.title
|
||||||
mps = role.member_profile_ids
|
mps = role.member_profile_ids
|
||||||
d["data"] = PluginTemplate.where(:analysis_field_name.gte => analysis_field_name_start, :analysis_field_name.lte => analysis_field_name_end, :member_profile_id.in => mps) rescue []
|
d["data"] = filter_data(PluginTemplate, analysis_field_name_start, analysis_field_name_end, mps)
|
||||||
data << d
|
data << d
|
||||||
end
|
end
|
||||||
return data
|
return data
|
||||||
end
|
end
|
||||||
|
def filter_data(data,analysis_field_name_start,analysis_field_name_end,mps = nil)
|
||||||
|
result = []
|
||||||
|
if @periodic
|
||||||
|
all_ids = data.all.pluck(:id) rescue []
|
||||||
|
out_of_range_ids1 = data.where(:analysis_field_name_start.gt => analysis_field_name_end).pluck(:id) rescue []
|
||||||
|
out_of_range_ids2 = data.where(:analysis_field_name_end.lt => analysis_field_name_start).pluck(:id) rescue []
|
||||||
|
result = data.where(:id.in=>(all_ids - out_of_range_ids1 - out_of_range_ids2)) rescue []
|
||||||
|
else
|
||||||
|
result = data.where(:analysis_field_name.gte => analysis_field_name_start, :analysis_field_name.lte => analysis_field_name_end) rescue []
|
||||||
|
end
|
||||||
|
result = result.where(:member_profile_id.in => mps) rescue [] unless mps.nil?
|
||||||
|
return result
|
||||||
|
end
|
||||||
def get_chart_data(analysis_field_name_start,analysis_field_name_end,role,type,timezone)
|
def get_chart_data(analysis_field_name_start,analysis_field_name_end,role,type,timezone)
|
||||||
analysis_field_name_start = parse_date_time_field("analysis_field_name",analysis_field_name_start,timezone)
|
analysis_field_name_start = parse_date_time_field("analysis_field_name",analysis_field_name_start,timezone)
|
||||||
analysis_field_name_end = parse_date_time_field("analysis_field_name",analysis_field_name_end,timezone)
|
analysis_field_name_end = parse_date_time_field("analysis_field_name",analysis_field_name_end,timezone)
|
||||||
|
@ -71,7 +83,8 @@ parse_again_end
|
||||||
current_analysis_field_name = analysis_field_name
|
current_analysis_field_name = analysis_field_name
|
||||||
current_analysis_field_name = analysis_field_name.strftime("%H:%M") if time_fields.include?("analysis_field_name")
|
current_analysis_field_name = analysis_field_name.strftime("%H:%M") if time_fields.include?("analysis_field_name")
|
||||||
next_analysis_field_name = next_analysis_field_name.strftime("%H:%M") if time_fields.include?("analysis_field_name")
|
next_analysis_field_name = next_analysis_field_name.strftime("%H:%M") if time_fields.include?("analysis_field_name")
|
||||||
t = jl.plugin_templates.where(:analysis_field_name.gte => current_analysis_field_name, :analysis_field_name.lt => next_analysis_field_name, :member_profile_id.in => mps).count rescue 0
|
t = filter_data(jl.plugin_templates, current_analysis_field_name, next_analysis_field_name, mps)
|
||||||
|
|
||||||
if current_analysis_field_name.class == DateTime
|
if current_analysis_field_name.class == DateTime
|
||||||
current_analysis_field_name = display_date_time(current_analysis_field_name,timezone,iterate_step)
|
current_analysis_field_name = display_date_time(current_analysis_field_name,timezone,iterate_step)
|
||||||
end
|
end
|
||||||
|
@ -87,13 +100,13 @@ parse_again_end
|
||||||
next_analysis_field_name = next_analysis_field_name.strftime("%H:%M") if time_fields.include?("analysis_field_name")
|
next_analysis_field_name = next_analysis_field_name.strftime("%H:%M") if time_fields.include?("analysis_field_name")
|
||||||
case type
|
case type
|
||||||
when "default"
|
when "default"
|
||||||
t = PluginTemplate.where(:analysis_field_name.gte => current_analysis_field_name, :analysis_field_name.lt => next_analysis_field_name, :member_profile_id.in => mps).count rescue 0
|
t = filter_data(PluginTemplate, current_analysis_field_name, next_analysis_field_name, mps).count rescue 0
|
||||||
parse_again_start
|
parse_again_start
|
||||||
when "plugin_template_related"
|
when "plugin_template_related"
|
||||||
t = PluginTemplate.where(:analysis_field_name.gte => current_analysis_field_name, :analysis_field_name.lt => next_analysis_field_name, :member_profile_id.in => mps, :plugin_template_related_id => nil).count rescue 0
|
t = filter_data(PluginTemplate, current_analysis_field_name, next_analysis_field_name, mps).where(:plugin_template_related_id => nil).count rescue 0
|
||||||
parse_again_end
|
parse_again_end
|
||||||
else
|
else
|
||||||
t = PluginTemplate.where(:analysis_field_name.gte => current_analysis_field_name, :analysis_field_name.lt => next_analysis_field_name, :member_profile_id.in => mps).count rescue 0
|
t = filter_data(PluginTemplate, current_analysis_field_name, next_analysis_field_name, mps).count rescue 0
|
||||||
end
|
end
|
||||||
current_analysis_field_name = current_analysis_field_name.new_offset(timezone) if current_analysis_field_name.class == DateTime
|
current_analysis_field_name = current_analysis_field_name.new_offset(timezone) if current_analysis_field_name.class == DateTime
|
||||||
if current_analysis_field_name.class == DateTime
|
if current_analysis_field_name.class == DateTime
|
||||||
|
@ -106,11 +119,16 @@ parse_again_end
|
||||||
end
|
end
|
||||||
def parse_date_time_field(field,value,timezone="+08:00")
|
def parse_date_time_field(field,value,timezone="+08:00")
|
||||||
time_fields = time_fields_text
|
time_fields = time_fields_text
|
||||||
|
type = PluginTemplate.fields[field].type rescue nil
|
||||||
|
if type.nil?
|
||||||
|
@periodic = true
|
||||||
|
type = PluginTemplate.fields[field + "_start"].type
|
||||||
|
end
|
||||||
if time_fields.include?(field)
|
if time_fields.include?(field)
|
||||||
parse_time(value,timezone)
|
parse_time(value,timezone)
|
||||||
elsif PluginTemplate.fields[field].type == Integer
|
elsif type == Integer
|
||||||
value.to_i
|
value.to_i
|
||||||
elsif PluginTemplate.fields[field].type == Date
|
elsif type == Date
|
||||||
Date.parse(value)
|
Date.parse(value)
|
||||||
else
|
else
|
||||||
DateTime.parse(value+timezone).utc
|
DateTime.parse(value+timezone).utc
|
||||||
|
|
|
@ -21,6 +21,9 @@ parse_again_end
|
||||||
|
|
||||||
parse_again_start
|
parse_again_start
|
||||||
member_methods_define
|
member_methods_define
|
||||||
|
parse_again_end
|
||||||
|
parse_again_start
|
||||||
|
periodic_methods_define
|
||||||
parse_again_end
|
parse_again_end
|
||||||
before_save do
|
before_save do
|
||||||
before_save_codes
|
before_save_codes
|
||||||
|
|
|
@ -5,4 +5,7 @@ class PluginTemplateRelated
|
||||||
col_related_fields
|
col_related_fields
|
||||||
|
|
||||||
has_many :plugin_templates
|
has_many :plugin_templates
|
||||||
|
parse_again_start
|
||||||
|
related_periodic_methods_define
|
||||||
|
parse_again_end
|
||||||
end
|
end
|
|
@ -7,7 +7,7 @@ wb = xlsx_package.workbook
|
||||||
|
|
||||||
heading = sheet.styles.add_style(:b => true, :locked => true)
|
heading = sheet.styles.add_style(:b => true, :locked => true)
|
||||||
|
|
||||||
row = [t("personal_plugin_template.author_name_translation")]
|
row = [t("personal_plugin_template.member_profile")]
|
||||||
parse_again_start
|
parse_again_start
|
||||||
@site_in_use_locales.each do |locale|
|
@site_in_use_locales.each do |locale|
|
||||||
row << t("personal_plugin_template.locale_fields") + " - " + t(locale.to_s)
|
row << t("personal_plugin_template.locale_fields") + " - " + t(locale.to_s)
|
||||||
|
|
Loading…
Reference in New Issue