diff --git a/app/controllers/admin/personal_plugin_fields_controller.rb b/app/controllers/admin/personal_plugin_fields_controller.rb
index 4a9571c..91483ff 100644
--- a/app/controllers/admin/personal_plugin_fields_controller.rb
+++ b/app/controllers/admin/personal_plugin_fields_controller.rb
@@ -301,11 +301,14 @@ class Admin::PersonalPluginFieldsController < OrbitMemberController
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
+ plugin_template_sort_hash[f.to_sym] = 1
end rescue nil
@personal_plugin_field.backend_fields[:sort_desc].to_a.each do |f|
- plugin_template_sort_hash[f] = -1
+ plugin_template_sort_hash[f.to_sym] = -1
end rescue nil
+ if @personal_plugin_field.backend_fields[:sort_desc].to_a.count != 0
+ plugin_template_sort_hash[:id] = -1
+ end
@match_pattern = {"personal_plugin_template" => personal_plugin_template,
"plugin_template" => plugin_template,
"plugin_template_related" => plugin_template_related,
diff --git a/app/views/admin/personal_plugin_fields/_render_fields_check_table.html.erb b/app/views/admin/personal_plugin_fields/_render_fields_check_table.html.erb
index 414052d..861e27a 100644
--- a/app/views/admin/personal_plugin_fields/_render_fields_check_table.html.erb
+++ b/app/views/admin/personal_plugin_fields/_render_fields_check_table.html.erb
@@ -5,66 +5,38 @@
">
-
+
- <% ths = [] %>
+ <% tds = [] %>
<% ii = -1 %>
<% object.primary_modal_fields.each do |field_value| %>
<% next if (!access_field_types.include?(field_value[:field_type]) rescue false) %>
- <% ths << "#{field_value[:translation_name][I18n.locale] rescue ""}-#{field_value[:field_name]} | " %>
+ <% content = check_box_tag("#{f.object_name}[]", field_value[:field_name] , (object.send(root_name)[page_name].include?(field_value[:field_name]) rescue false),:id=>nil,:class=>"#{page_name}_fields") %>
+ <% tds << "#{field_value[:translation_name][I18n.locale] rescue ""}-#{field_value[:field_name]} #{content} | " %>
<% end %>
<% if !defined?(access_field_types) %>
<% f.object.related_modal_name.each_with_index do |related_modal_name,i| %>
<% field_values = f.object.related_modal_fields[i].to_a %>
<% field_values.each do |field_value| %>
- <% ths << "#{related_modal_name}-#{field_value[:translation_name][I18n.locale] rescue ""}-#{field_value[:field_name]} | " %>
+ <% content = check_box_tag("#{f.object_name}[]", "#{related_modal_name+'.'+field_value[:field_name]}" , (object.send(root_name)[page_name].include?(related_modal_name+'.'+field_value[:field_name]) rescue false),:id=>nil,:class=>"#{page_name}_fields") %>
+ <% tds << "#{related_modal_name}-#{field_value[:translation_name][I18n.locale] rescue ""}-#{field_value[:field_name]} #{content} | " %>
<% end %>
<% end %>
<% author_name_translation = @personal_plugin_field.author_name_translations[locale] rescue ""
author_name_translation = I18n.t("personal_plugins.author") if author_name_translation.blank? %>
- <% ths << "#{author_name_translation} | " %>
+ <% content = check_box_tag("#{f.object_name}[]", "member_profile" , (object.send(root_name)[page_name].include?("member_profile") rescue false),:id=>nil) %>
+ <% tds << "#{author_name_translation} #{content} | " %>
<% end %>
- <% fields_order = (0...ths.count).to_a
+ <% fields_order = (0...tds.count).to_a
if (object.fields_order["#{root_name}_#{page_name}"].present? rescue false)
object.fields_order["#{root_name}_#{page_name}"].to_a.each_with_index do |order,i|
fields_order[i] = order.to_i
end
end
%>
- <% ths = ths.sort_by.with_index{|th,i| fields_order[i]}%>
- <% ths.each do |th| %>
- <%= th.html_safe %>
- <% end %>
-
-
-
-
- <% tds = [] %>
- <%= f.fields_for root_name do |f| %>
- <%= f.fields_for page_name do |f| %>
- <% object.primary_modal_fields.each do |field_value| %>
- <% next if (!access_field_types.include?(field_value[:field_type]) rescue false) %>
- <% tds << check_box_tag("#{f.object_name}[]", field_value[:field_name] , (object.send(root_name)[page_name].include?(field_value[:field_name]) rescue false),:id=>nil) %>
- <% end %>
- <% if !defined?(access_field_types) %>
- <% object.related_modal_name.each_with_index do |related_modal_name,i| %>
- <% field_values = object.related_modal_fields[i].to_a %>
- <% field_values.each do |field_value| %>
- <% tds << check_box_tag("#{f.object_name}[]", "#{related_modal_name+'.'+field_value[:field_name]}" , (object.send(root_name)[page_name].include?(related_modal_name+'.'+field_value[:field_name]) rescue false),:id=>nil) %>
- <% end %>
- <% end %>
- <% tds << check_box_tag("#{f.object_name}[]", "member_profile" , (object.send(root_name)[page_name].include?("member_profile") rescue false),:id=>nil) %>
- <% end %>
- <% end %>
- <% end %>
<% tds = tds.sort_by.with_index{|td,i| fields_order[i]}%>
<% tds.each do |td| %>
- <%= td.html_safe %> |
- <% end %>
-
-
- <% fields_order.each do |order| %>
- <%= hidden_field_tag "#{f.object_name}[fields_order][#{root_name}_#{page_name}][]",order,:id=>nil %>
+ <%= td.html_safe %>
<% end %>
diff --git a/app/views/admin/personal_plugin_fields/fields_setting.html.erb b/app/views/admin/personal_plugin_fields/fields_setting.html.erb
index 8b3a66e..825169f 100644
--- a/app/views/admin/personal_plugin_fields/fields_setting.html.erb
+++ b/app/views/admin/personal_plugin_fields/fields_setting.html.erb
@@ -50,6 +50,17 @@
.icons-list-2{
cursor: all-scroll;
}
+ hr.border-hr{
+ border-top: 1px solid #dddddd;
+ margin-top: 8px;
+ padding-bottom: 8px;
+ margin-left: -8px;
+ margin-right: -8px;
+ margin-bottom: 0;
+ }
+ .table tbody td {
+ font-weight: bold;
+ }
\ No newline at end of file
diff --git a/config/locales/zh_tw.yml b/config/locales/zh_tw.yml
index 6cf5239..3f570ec 100644
--- a/config/locales/zh_tw.yml
+++ b/config/locales/zh_tw.yml
@@ -34,8 +34,8 @@ zh_tw:
index: Index 頁面
show: Show 頁面
member_show: 會員show頁面
- slug_title: 頭銜標題
- please_choose_one_slug_title: 請至少選擇一個頭銜標題!
+ slug_title: "頭銜標題(show頁面會顯示於網址)"
+ please_choose_one_slug_title: 請選擇一個頭銜標題!
slug_title_can_only_choose_one: 頭銜標題只能選擇一個!
please_choose_one_analysis_field: 請至少選擇一個分析欄位!
analysis_field_can_only_choose_one: 分析欄位只能選擇一個!
diff --git a/template_generator/app/controllers/admin/plugin_templates_controller.rb b/template_generator/app/controllers/admin/plugin_templates_controller.rb
index 2a60e9f..8090352 100644
--- a/template_generator/app/controllers/admin/plugin_templates_controller.rb
+++ b/template_generator/app/controllers/admin/plugin_templates_controller.rb
@@ -9,24 +9,30 @@ class Admin::PluginTemplatesController < OrbitMemberController
before_action :allow_admin_only, :only => [:index, :setting]
def index
- @plugin_templates = PluginTemplate.order_by(sort).page(params[:page]).per(10)
+ if params[:sort].present?
+ @plugin_templates = PluginTemplate.order_by(sort).page(params[:page]).per(10)
+ else
+ @plugin_templates = PluginTemplate.sort_hash.page(params[:page]).per(10)
+ end
end
def sort
- unless params[:sort].blank?
- case params[:sort]
- when "status"
- @sort = [[:is_top, params[:order]],
- [:is_hot, params[:order]],
- [:is_hidden,params[:order]]]
- when "category"
- @sort = {:category_id=>params[:order]}
- else
- s = Sanitize.clean(params[:sort]).to_sym
- @sort = {s=>params[:order]}
- end
- else
- @sort = {:created_at=>'desc'}
+ case params[:sort]
+ when "status"
+ @sort = [[:is_top, params[:order]],
+ [:is_hot, params[:order]],
+ [:is_hidden,params[:order]],
+ [:id,params[:order]]]
+ when "category"
+ @sort = {:category_id=>params[:order]}.merge({:id=>params[:order]})
+ else
+ if params[:sort].present?
+ s = Sanitize.clean(params[:sort]).to_sym
+ @sort = {s=>params[:order]}.merge({:id=>params[:order]})
+ else
+ @sort = {}
+ end
end
+ @sort
end
def new
@member = MemberProfile.find_by(:uid=>params['uid']) rescue nil
diff --git a/template_generator/app/controllers/personal_plugin_templates_controller.rb b/template_generator/app/controllers/personal_plugin_templates_controller.rb
index b631c0c..1b44285 100644
--- a/template_generator/app/controllers/personal_plugin_templates_controller.rb
+++ b/template_generator/app/controllers/personal_plugin_templates_controller.rb
@@ -1,7 +1,7 @@
class PersonalPluginTemplatesController < ApplicationController
def index
params = OrbitHelper.params
- plugin_templates = PluginTemplate.where(:is_hidden=>false).order_by(plugin_template_sort_hash)
+ plugin_templates = PluginTemplate.sort_for_frontend
fields_to_show = col_name_to_show_in_index_page
if params[:keywords].present?
plugin_templates = filter_keywords(plugin_templates,params[:selectbox],params[:keywords])
diff --git a/template_generator/app/models/plugin_template.rb b/template_generator/app/models/plugin_template.rb
index 1be5caf..da84f78 100644
--- a/template_generator/app/models/plugin_template.rb
+++ b/template_generator/app/models/plugin_template.rb
@@ -17,6 +17,7 @@ parse_again_end
field :rss2_id
belongs_to :member_profile
+ scope :sort_hash, ->{ order_by(plugin_template_sort_hash) }
scope :sort_for_frontend, ->{ where(:is_hidden=>false).order_by(plugin_template_sort_hash) }
parse_again_start
diff --git a/template_generator/app/views/plugin/personal_plugin_template/_profile.html.erb b/template_generator/app/views/plugin/personal_plugin_template/_profile.html.erb
index 5e2da04..2204ed9 100644
--- a/template_generator/app/views/plugin/personal_plugin_template/_profile.html.erb
+++ b/template_generator/app/views/plugin/personal_plugin_template/_profile.html.erb
@@ -7,9 +7,9 @@
<%
if has_access?
- @plugin_templates = PluginTemplate.where(member_profile_id: @member.id).order_by(plugin_template_sort_hash).page(params[:page]).per(10)
+ @plugin_templates = PluginTemplate.where(member_profile_id: @member.id).sort_hash.page(params[:page]).per(10)
else
- @plugin_templates = PluginTemplate.where(is_hidden: false, member_profile_id: @member.id).order_by(plugin_template_sort_hash).page(params[:page]).per(10)
+ @plugin_templates = PluginTemplate.where(is_hidden: false, member_profile_id: @member.id).sort_hash.page(params[:page]).per(10)
end
%>