sorting and dates fixed

This commit is contained in:
Harry Bomrah 2015-12-02 18:29:00 +08:00
parent f8f80a1373
commit 43a14b5c9e
6 changed files with 41 additions and 6 deletions

View File

@ -14,6 +14,15 @@ class Admin::HonorTypesController < OrbitMemberController
render :partial=>'list', :layout=>false render :partial=>'list', :layout=>false
end end
def update_order
orders = params["order"]
HonorType.each do |ht|
ht.sort_position = orders["#{ht.id}"]
ht.save
end
render :json => {"success" => true}.to_json
end
def edit def edit
@honor_type = HonorType.find(params[:id]) @honor_type = HonorType.find(params[:id])
@url = admin_honor_type_path(@honor_type) @url = admin_honor_type_path(@honor_type)

View File

@ -22,6 +22,8 @@ class Honor
before_validation :add_http before_validation :add_http
scope :sort_for_frontend, ->{ where(:is_hidden=>false).order_by(:year => "desc") }
def slug_title def slug_title
self.award_name+' '+self.awarding_unit rescue "" self.award_name+' '+self.awarding_unit rescue ""
end end
@ -39,6 +41,7 @@ class Honor
def self.get_plugin_datas_to_member(datas) def self.get_plugin_datas_to_member(datas)
fields_to_show = [ fields_to_show = [
"honor_type",
"year", "year",
"award_name", "award_name",
"awarding_unit" "awarding_unit"
@ -50,23 +53,26 @@ class Honor
} }
end end
plugin_datas = datas.where(:is_hidden=>false).order_by(:year=>'desc').collect do |p| plugin_datas = datas.sort_for_frontend.collect do |p|
pd_data = [] pd_data = []
fields_to_show.collect do |t| fields_to_show.collect do |t|
if t == "award_name" if t == "award_name"
pd_data << { "data_title" => "<a href='#{OrbitHelper.url_to_plugin_show(p.to_param,'personal_honor')}' target='_blank'>#{p.send(t)}" } pd_data << { "data_title" => "<a href='#{OrbitHelper.url_to_plugin_show(p.to_param,'personal_honor')}' target='_blank'>#{p.send(t)}" }
elsif t == "honor_type"
pd_data << {"data_title" => (p.honor_type.title rescue "")}
else else
pd_data << { "data_title" => p.send(t) } pd_data << { "data_title" => p.send(t) }
end end
end end
{ {
"pd_datas" => pd_data "pd_datas" => pd_data,
"type-sort" => (p.honor_type.sort_position rescue 1000)
} }
end end
plugin_datas = plugin_datas.sort{|k,v| k["type-sort"] <=> v["type-sort"]}
return [pd_title,plugin_datas] return [pd_title,plugin_datas]
end end

View File

@ -3,6 +3,7 @@ class HonorType
include Mongoid::Timestamps include Mongoid::Timestamps
field :title, localize: true field :title, localize: true
field :sort_position, :type => Integer, :default => 0
has_many :honors has_many :honors
end end

View File

@ -1,4 +1,4 @@
<tr id="<%= dom_id list_honor_type %>"> <tr id="<%= dom_id list_honor_type %>" data-type-id="<%= list_honor_type.id.to_s %>">
<td><%= list_honor_type.title %></td> <td><%= list_honor_type.title %></td>
<td class="span2"> <td class="span2">

View File

@ -1,3 +1,6 @@
<% content_for :page_specific_javascript do %>
<%= javascript_include_tag "lib/jquery-ui-sortable.min" %>
<% end %>
<style type="text/css"> <style type="text/css">
.element{ .element{
background: #FFF; background: #FFF;
@ -36,7 +39,7 @@
<div class="overview"> <div class="overview">
<table id="honor_types" class="table table-striped"> <table id="honor_types" class="table table-striped">
<tbody> <tbody>
<%= render :partial => 'list_honor_type', :collection => @honor_types %> <%= render :partial => 'list_honor_type', :collection => @honor_types.asc(:sort_position) %>
</tbody> </tbody>
</table> </table>
</div> </div>
@ -49,4 +52,19 @@
<div id="honor_type_qe"> <div id="honor_type_qe">
<div style="display:none;" class="modal" id="honor_type_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div style="display:none;" class="modal" id="honor_type_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
</div> </div>
</div> </div>
<script type="text/javascript">
$("#honor_types tbody").sortable({
update : function(){
var data = {};
$("#honor_types tbody tr").each(function(i){
data[$(this).data("type-id")] = i;
})
$.ajax({
url : "/admin/honor_types/update_order",
type : "post",
data : {"order" : data}
})
}
});
</script>

View File

@ -24,6 +24,7 @@ Rails.application.routes.draw do
end end
resources :honor_types resources :honor_types
post "honor_types/update_order" => "honor_types#update_order"
end end
end end
end end