实训首页的热度排序与时间排序

This commit is contained in:
daiao 2017-04-26 11:10:01 +08:00
parent 94b7a89e7b
commit fe9ebbb6d6
5 changed files with 111 additions and 81 deletions

View File

@ -21,7 +21,7 @@ class ShixunsController < ApplicationController
end
def index
@shixuns = Shixun.where(:status => 2)
@shixuns = Shixun.where(:authentication => 1).order('updated_at desc')
@shixun_my_score = Game.sum(:final_score)
@current_user_had_passed = Myshixun.where(:status => 1).count
@shixuns_count = @shixuns.count
@ -30,7 +30,16 @@ class ShixunsController < ApplicationController
def shixun_search
# 确定 sort 1升序 2 降序
@order, @sort, @type = params[:order] || 1, params[:sort] || 1, params[:type] || 1
if params[:time_reorder]
order = "#{Shixun.table_name}.updated_at #{params[:time_reorder]}"
elsif params[:hot_reorder]
order = "shixun_count #{params[:hot_reorder]}, #{Shixun.table_name}.updated_at #{params[:hot_reorder]}"
else
order = "#{Shixun.table_name}.updated_at desc"
end
# @order, @sort, @type = params[:order] || 1, params[:sort] || 1, params[:type] || 1
=begin
if @order.to_i == @type.to_i
@sort = (@sort.to_i == 1 ? 2 : 1)
else
@ -38,9 +47,15 @@ class ShixunsController < ApplicationController
end
sort_name = "updated_on"
sort_type = @sort == 1 ? "asc" : "desc"
@shixuns = Shixun.where(:status => 2).reorder()
=end
@shixuns = Shixun.where(:authentication => 1).reorder(order)
=begin
order = params[:sort]
@shixuns = Shixun.where(:status => 2).order("#{order.nil? ? 'created_at' : order} desc")
=end
respond_to do |format|
format.js
end
end
# jenkins回调脚本

View File

@ -1,6 +1,6 @@
# status 控制实训的状态0未开启1: 已开启TPM; 2已认证
class Shixun < ActiveRecord::Base
attr_accessible :description, :is_public, :name, :changeset_num, :status, :user_id, :gpid, :language, :identifier
attr_accessible :description, :is_public, :name, :changeset_num, :status, :user_id, :gpid, :language, :identifier, :authentication, :hixun_count
has_many :users, :through => :shixun_members
has_many :shixun_members

View File

@ -1,4 +1,4 @@
<div class="task-index " >
<div class="task-index" >
<div class="task-index-head mt20 mb20">
<div class="task-index-head-top">
<h2 class="fl task-inde-head-title">游戏实训</h2>
@ -27,16 +27,7 @@
<!--&lt;!&ndash;<li class="animate">审 核 中</li>&ndash;&gt;-->
<!--&lt;!&ndash;</ul>&ndash;&gt;-->
<!--&lt;!&ndash;</dropdown>&ndash;&gt;-->
</li>
<li class="dropdown fl ml15 mr5">
<select class="fl header-search-select">
<option>所有进展</option>
<option>我已创建</option>
<option>我未开启挑战</option>
<option>我还未通关</option>
<option>我已通关</option>
</select>
<%#= %>
<!--<dropdown class="fl">
<input id="toggle4" type="checkbox">
<label for="toggle4" class="animate">所有进展<i class="fa fa-sort-down fr mt3"></i></label>
@ -44,47 +35,31 @@
<li class="animate">所有进展</li>
<li class="animate">我已创建</li>
<li class="animate">未开启挑战</li>
<li class="animate">我还未通关</li>
<!-- <li class="animate">我还未通关</li>
<li class="animate">我已通关</li>
</ul>
</dropdown>-->
</li>
<form onsubmit="submitFn(this, event);" class="fl ml15">
<div class="search-wrapper">
<div class="input-holder">
<input type="text" class="search-input" placeholder="搜索" />
<button class="search-icon" onclick="searchToggle(this, event);"><i class="fa fa-search font-16 mt5"></i></button>
</div>
<span class="close" onclick="searchToggle(this, event);"><i class="fa fa-times font-16 mt5"></i></span>
</dropdown>&ndash;&gt;
</li>-->
<!-- <form onsubmit="submitFn(this, event);" class="fl ml15">
<div class="search-wrapper">
<div class="input-holder">
<input type="text" class="search-input" placeholder="搜索" />
<button class="search-icon" onclick="searchToggle(this, event);"><i class="fa fa-search font-16 mt5"></i></button>
</div>
<span class="close" onclick="searchToggle(this, event);"><i class="fa fa-times font-16 mt5"></i></span>
</div>
</form>-->
<p class="color-grey fr">
<div class="postSort fr" id="shixun_hot">
<a href="javascript:void(0);" class="linkGrey2 fl">热度排序</a>
<a href="javascript:void(0);" id="hot_reorder" class="fl"></a>
</div>
<div class="postSort fr" id="shixun_time">
<a href="javascript:void(0);" class="linkGrey2 fl">时间排序</a>
<a href="javascript:void(0);" id="time_reorder" class="sortArrowActiveD fl"></a>
</div>
</form>
<p class=" color-grey fr">
<div class="postSort fr" id="shixun_time">
<a href="javascript:void(0);" class="linkGrey2 fl">时间排序</a>
<a href="javascript:void(0);" id="time_reorder" class="fl"></a>
</div>
<div class="postSort fr" id="shixun_hot">
<a href="javascript:void(0);" class="linkGrey2 fl">热度排序</a>
<a href="javascript:void(0);" id="hot_reorder" class="sortArrowActiveD fl"></a>
</div>
<!--
<a href="#" class="link-color-grey fr mr15">热度排序 </a>
<span class=" mr5 ml5 fr">|</span>
<a href="#" class="link-color-green fr">时间排序</a>-->
<span class="fr">排序方式:</span>
<span class="fr mr30">共 <span class="color-light-green">102</span> 个搜索结果</span>
</p>
</div>
<p class=" color-grey fr">
<a href="#" class="link-color-grey fr mr15">热度排序 </a>
<span class=" mr5 ml5 fr">|</span>
<%#= link_to "时间排序", shixun_search_shixuns_path(:type => @type, :sort => @b_sort, :order => 1), :class => "sortTxt", :remote => true %>
<a href="#" class="link-color-green fr">时间排序</a>
<span class="fr">排序方式:</span>
<!--<span class="fr mr30">共 <span class="color-light-green">102</span> 个搜索结果</span>-->
</p>
</div>
@ -92,34 +67,69 @@
<%= render "shixun_list" %>
</div>
</div>
</div>
<script>
$(function(){
var nTime = $("#time_reorder");
var nHot = $("#hot_reorder");
$("#shixun_time").click(function(){
nHot.removeClass("sortArrowActiveD sortArrowActiveU");
if(nTime.hasClass("sortArrowActiveD")){
nTime.removeClass("sortArrowActiveD");
nTime.addClass("sortArrowActiveU");
}else if(nTime.hasClass("sortArrowActiveU")){
nTime.removeClass("sortArrowActiveU");
nTime.addClass("sortArrowActiveD");
}else{
nTime.addClass("sortArrowActiveD");
}
});
$("#shixun_hot").click(function(){
nTime.removeClass("sortArrowActiveD sortArrowActiveU");
if(nHot.hasClass("sortArrowActiveD")){
nHot.removeClass("sortArrowActiveD");
nHot.addClass("sortArrowActiveU");
}else if(nHot.hasClass("sortArrowActiveU")){
nHot.removeClass("sortArrowActiveU");
nHot.addClass("sortArrowActiveD");
}else{
nHot.addClass("sortArrowActiveD");
}
});
});
$(function(){
var nTime = $("#time_reorder");
var nHot = $("#hot_reorder");
$("#shixun_time").click(function(){
nHot.removeClass("sortArrowActiveD sortArrowActiveU");
if(nTime.hasClass("sortArrowActiveD")){
$.ajax({
url: '<%= shixun_search_shixuns_path() %>' + '.js',
data: { time_reorder: 'asc' },
success: function(){
nTime.removeClass("sortArrowActiveD");
nTime.addClass("sortArrowActiveU");
}
})
}else if(nTime.hasClass("sortArrowActiveU")){
$.ajax({
url: '<%=shixun_search_shixuns_path() %>' + '.js',
data: { time_reorder: 'desc'},
success: function(){
nTime.removeClass("sortArrowActiveU");
nTime.addClass("sortArrowActiveD");
}
})
}else{
$.ajax({
url: '<%= shixun_search_shixuns_path() %>' + '.js',
data: { time_reorder: 'desc'},
success: function(){
nTime.addClass("sortArrowActiveD");
}
})
}
});
$("#shixun_hot").click(function(){
nTime.removeClass("sortArrowActiveD sortArrowActiveU");
if(nHot.hasClass("sortArrowActiveD")){
$.ajax({
url: '<%= shixun_search_shixuns_path() %>' + '.js',
data: { hot_reorder: 'asc'},
success: function(){
nHot.removeClass("sortArrowActiveD");
nHot.addClass("sortArrowActiveU");
}
})
}else if(nHot.hasClass("sortArrowActiveU")){
$.ajax({
url: '<%= shixun_search_shixuns_path() %>' + '.js',
data: { hot_reorder: 'desc'},
success: function(){
nHot.removeClass("sortArrowActiveU");
nHot.addClass("sortArrowActiveD");
}
})
}else{
$.ajax({
url: '<%= shixun_search_shixuns_path() %>' + '.js',
data: { hot_reorder: 'desc'},
success: function(){
nHot.addClass("sortArrowActiveD");
}
})
}
});
});
</script>

View File

@ -1 +1 @@
$("#shixun_list_content").replaceWith('<%= escape_javascript( render :partial => 'shixuns/shixun_list') %>');
$("#shixun_list_content").html('<%= escape_javascript( render :partial => 'shixuns/shixun_list') %>');

View File

@ -0,0 +1,5 @@
class AddShixunCountToShixuns < ActiveRecord::Migration
def change
add_column :shixuns, :shixun_count, :integer, default: 0
end
end