forked from saurabh/personal-project
sorting and dates fixed
This commit is contained in:
parent
45cf5ab9e4
commit
1ccd146915
|
@ -14,6 +14,15 @@ class Admin::ProjectTypesController < OrbitMemberController
|
||||||
render :partial=>'list', :layout=>false
|
render :partial=>'list', :layout=>false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def update_order
|
||||||
|
orders = params["order"]
|
||||||
|
ProjectType.each do |pt|
|
||||||
|
pt.sort_position = orders["#{pt.id}"]
|
||||||
|
pt.save
|
||||||
|
end
|
||||||
|
render :json => {"success" => true}.to_json
|
||||||
|
end
|
||||||
|
|
||||||
def edit
|
def edit
|
||||||
@project_type = ProjectType.find(params[:id])
|
@project_type = ProjectType.find(params[:id])
|
||||||
@url = admin_project_type_path(@project_type)
|
@url = admin_project_type_path(@project_type)
|
||||||
|
|
|
@ -34,6 +34,8 @@ class Project
|
||||||
|
|
||||||
before_validation :add_http
|
before_validation :add_http
|
||||||
|
|
||||||
|
scope :sort_for_frontend, ->{ where(:is_hidden=>false).order_by(:year=>'desc', :period_start_date=>'desc') }
|
||||||
|
|
||||||
def duration
|
def duration
|
||||||
"#{self.period_start_date.strftime("%Y.%m") rescue ""} ~ #{self.period_end_date.strftime("%Y.%m") rescue ""}"
|
"#{self.period_start_date.strftime("%Y.%m") rescue ""} ~ #{self.period_end_date.strftime("%Y.%m") rescue ""}"
|
||||||
end
|
end
|
||||||
|
@ -41,6 +43,7 @@ class Project
|
||||||
def self.get_plugin_datas_to_member(datas)
|
def self.get_plugin_datas_to_member(datas)
|
||||||
|
|
||||||
fields_to_show = [
|
fields_to_show = [
|
||||||
|
"project_type",
|
||||||
"year",
|
"year",
|
||||||
"project_title",
|
"project_title",
|
||||||
"participator",
|
"participator",
|
||||||
|
@ -55,7 +58,7 @@ class Project
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
plugin_datas = datas.where(:is_hidden=>false).order_by(:period_start_date=>'desc',: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|
|
||||||
|
@ -70,17 +73,20 @@ class Project
|
||||||
end
|
end
|
||||||
|
|
||||||
pd_data << { "data_title" => date }
|
pd_data << { "data_title" => date }
|
||||||
|
elsif t == "project_type"
|
||||||
|
pd_data << {"data_title" => (p.project_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.project_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
|
||||||
|
|
|
@ -3,6 +3,7 @@ class ProjectType
|
||||||
include Mongoid::Timestamps
|
include Mongoid::Timestamps
|
||||||
|
|
||||||
field :title, localize: true
|
field :title, localize: true
|
||||||
|
field :sort_position, type: Integer, default: 0
|
||||||
|
|
||||||
has_many :projects
|
has_many :projects
|
||||||
|
|
||||||
|
|
|
@ -181,7 +181,7 @@
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label muted"><%= t("personal_project.start_date") %></label>
|
<label class="control-label muted"><%= t("personal_project.start_date") %></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<%= f.datetime_picker :period_start_date, :no_label => true, :format=>"yyyy/MM" %>
|
<%= f.datetime_picker :period_start_date, :format=>"yyyy/MM", :value=> @project.period_start_date, :new_record => @project.new_record? %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label muted"><%= t("personal_project.end_date") %></label>
|
<label class="control-label muted"><%= t("personal_project.end_date") %></label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
<%= f.datetime_picker :period_end_date, :no_label => true, :format=>"yyyy/MM" %>
|
<%= f.datetime_picker :period_end_date, :no_label => true, :format=>"yyyy/MM", :value=> @project.period_end_date, :new_record => @project.new_record? %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<tr id="<%= dom_id list_project_type %>">
|
<tr id="<%= dom_id list_project_type %>" data-type-id="<%= list_project_type.id.to_s %>">
|
||||||
<td><%= list_project_type.title %></td>
|
<td><%= list_project_type.title %></td>
|
||||||
<td class="span2">
|
<td class="span2">
|
||||||
|
|
||||||
|
|
|
@ -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="project_types" class="table table-striped">
|
<table id="project_types" class="table table-striped">
|
||||||
<tbody>
|
<tbody>
|
||||||
<%= render :partial => 'list_project_type', :collection => @project_types %>
|
<%= render :partial => 'list_project_type', :collection => @project_types.asc(:sort_position) %>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
@ -49,4 +52,20 @@
|
||||||
<div id="project_type_qe">
|
<div id="project_type_qe">
|
||||||
<div style="display:none;" class="modal" id="project_type_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
<div style="display:none;" class="modal" id="project_type_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$("#project_types tbody").sortable({
|
||||||
|
update : function(){
|
||||||
|
var data = {};
|
||||||
|
$("#project_types tbody tr").each(function(i){
|
||||||
|
data[$(this).data("type-id")] = i;
|
||||||
|
})
|
||||||
|
$.ajax({
|
||||||
|
url : "/admin/project_types/update_order",
|
||||||
|
type : "post",
|
||||||
|
data : {"order" : data}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -24,6 +24,7 @@ Rails.application.routes.draw do
|
||||||
end
|
end
|
||||||
|
|
||||||
resources :project_types
|
resources :project_types
|
||||||
|
post "project_types/update_order" => "project_types#update_order"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue