动态点击更多

This commit is contained in:
cxt 2016-04-01 20:46:38 +08:00
parent 66e80d034f
commit b3b0488bf5
7 changed files with 81 additions and 66 deletions

View File

@ -6,12 +6,16 @@ module Mobile
resources :activities do resources :activities do
desc "get user activities" desc "get user activities"
params do
requires :page, type: Integer
end
get ':id' do get ':id' do
#uw = UserWechat.find params[:openid] #uw = UserWechat.find params[:openid]
user = User.find params[:id] user = User.find params[:id]
shield_project_ids = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Project'").map(&:shield_id) shield_project_ids = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Project'").map(&:shield_id)
shield_course_ids = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Course'").map(&:shield_id) shield_course_ids = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Course'").map(&:shield_id)
page = params[:page] ? params[:page].to_i + 1 : 0 page = params[:page] ? params[:page] : 0
user_project_ids = (user.projects.visible.map{|project| project.id}-shield_project_ids).empty? ? "(-1)" : "(" + (user.projects.visible.map{|project| project.id}-shield_project_ids).join(",") + ")" user_project_ids = (user.projects.visible.map{|project| project.id}-shield_project_ids).empty? ? "(-1)" : "(" + (user.projects.visible.map{|project| project.id}-shield_project_ids).join(",") + ")"
user_course_ids = (user.courses.visible.map{|course| course.id}-shield_course_ids).empty? ? "(-1)" : "(" + (user.courses.visible.map{|course| course.id}-shield_course_ids).join(",") + ")" user_course_ids = (user.courses.visible.map{|course| course.id}-shield_course_ids).empty? ? "(-1)" : "(" + (user.courses.visible.map{|course| course.id}-shield_course_ids).join(",") + ")"
course_types = "('Message','News','HomeworkCommon','Poll','Course')" course_types = "('Message','News','HomeworkCommon','Poll','Course')"
@ -22,8 +26,14 @@ module Mobile
activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" + activities = UserActivity.where("(container_type = 'Project' and container_id in #{user_project_ids} and act_type in #{project_types})" +
"or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+ "or (container_type = 'Course' and container_id in #{user_course_ids} and act_type in #{course_types}) "+
"or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{user.id}) " + "or (container_type = 'Principal' and act_type= '#{principal_types}' and container_id = #{user.id}) " +
"or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc').limit(50).offset(page * 10) "or (container_type = 'Blog' and act_type= 'BlogComment' and container_id in #{blog_ids})").order('updated_at desc')
all_count = activities.count
activities = activities.limit(10).offset(page * 10)
count = activities.count
present :data, activities, with: Mobile::Entities::Activity present :data, activities, with: Mobile::Entities::Activity
present :all_count, all_count
present :count, count
present :page, page
present :status, 0 present :status, 0
end end
end end

View File

@ -12,7 +12,7 @@ module Mobile
requires :type, type: String requires :type, type: String
requires :content, type: String requires :content, type: String
end end
get ':id' do post ':id' do
type = params[:type] type = params[:type]
result = 1 result = 1
current_user = User.find 8686 current_user = User.find 8686

View File

@ -24,6 +24,8 @@ module Mobile
end end
when :lasted_comment when :lasted_comment
time_from_now u.created_on time_from_now u.created_on
when :message_praise_count
get_activity_praise_num(u)
end end
end end
end end
@ -41,6 +43,7 @@ module Mobile
message_expose :subject message_expose :subject
message_expose :content message_expose :content
message_expose :replies_count message_expose :replies_count
message_expose :message_praise_count
message_expose :created_on message_expose :created_on
message_expose :id message_expose :id
message_expose :lasted_comment message_expose :lasted_comment

View File

@ -2,6 +2,7 @@ module Mobile
module Entities module Entities
class News < Grape::Entity class News < Grape::Entity
include Redmine::I18n include Redmine::I18n
include ApiHelper
def self.news_expose(field) def self.news_expose(field)
expose field do |f,opt| expose field do |f,opt|
if f.is_a?(Hash) && f.key?(field) if f.is_a?(Hash) && f.key?(field)
@ -16,7 +17,9 @@ module Mobile
else else
case field case field
when :course_name when :course_name
Course.find(f.course_id).name unless f.course_id == nil get_course(f.course_id).name unless f.course_id == nil
when :news_praise_count
get_activity_praise_num(f)
end end
end end
elsif f.is_a?(Hash) && !f.key?(field) elsif f.is_a?(Hash) && !f.key?(field)
@ -59,6 +62,7 @@ module Mobile
news_expose :created_on news_expose :created_on
#评论数量 #评论数量
news_expose :comments_count news_expose :comments_count
news_expose :news_praise_count
#课程名字 #课程名字
news_expose :course_name news_expose :course_name
#评论 #评论

View File

@ -211,13 +211,65 @@
</div> </div>
<! } !> <! } !>
<! } !> <! } !>
<div class="more-events mt10">更多</div> <! if ((count + page * 10) < all_count) {!>
<div id="more_activities" class="more-events mt10" onclick="loadDataFromServer(8686, <!= page+1 !>);">更多</div>
<! } !>
</script> </script>
<script src="/javascripts/jquery-1.3.2.js"></script> <script src="/javascripts/jquery-1.3.2.js"></script>
<script src="/javascripts/baiduTemplate.js"></script> <script src="/javascripts/baiduTemplate.js"></script>
<script src="/javascripts/wechat/wechat-dev.js"></script> <script src="/javascripts/wechat/wechat-dev.js"></script>
<script src="/javascripts/wechat/homework-detail.js"></script>
<script src="/javascripts/wechat/auth.js"></script> <script src="/javascripts/wechat/auth.js"></script>
<script type="text/javascript">
var bt=baidu.template;
bt.LEFT_DELIMITER='<!';
bt.RIGHT_DELIMITER='!>';
var apiUrl = '/api/v1/';
var loadDataFromServer = function(id, page){
//getOpenId(function(openid){
$.ajax({
url: apiUrl + 'activities/' + id +"?page=" + parseInt(page),
dataType: 'json',
success: function(data){
setTemplate(data.data, data.all_count, data.count, data.page);
},
error: function(xhr,status,err){
console.log(err);
}
});
//})
};
var setTemplate = function(data, all_count, count, page){
console.log(data);
var html=bt('t:result-list',{activities: data, all_count: all_count, count: count, page: page});
if (page == 0) {
$('#container').prepend(html);
} else {
$("#more_activities").remove();
$('#container').append(html);
}
descToggle();
};
//内容全部显示与部分隐藏
var descToggle = function(){
$(".post-all-content").each(function(){
var postHeight = $(this).height();
if (postHeight > 90){
$(this).parent().next().css("display","block");
$(this).parent().next().toggle(function(){
$(this).text("点击隐藏");
$(this).prev().css("height",postHeight);
},function(){
$(this).text("点击展开");
$(this).prev().css("height",90);
});
}
});
}
</script>
</body> </body>
</html> </html>

View File

@ -64,14 +64,14 @@ $(document).ready(function(){
//获取并传送回复用户数据 //获取并传送回复用户数据
var userInfo = { var userInfo = {
"replyType" : "homework_assignment", "type" : "HomeworkCommon",
"replyContent" : postInput "content" : postInput
}; };
$.ajax({ $.ajax({
type: "POST", //提交方式 type: "POST", //提交方式
dataType: "json", //类型 dataType: "json", //类型
url: "前台地址/后台方法", //提交的页面,方法名 url: apiUrl + 'new_comment/' + homeworkID, //提交的页面,方法名
data: userInfo, //参数如果没有可以为null data: userInfo, //参数如果没有可以为null
success: function (data) { //如果执行成功,那么执行此方法 success: function (data) { //如果执行成功,那么执行此方法
alert(data.d); //用data.d来获取后台传过来的json语句或者是单纯的语句 alert(data.d); //用data.d来获取后台传过来的json语句或者是单纯的语句
@ -82,14 +82,14 @@ $(document).ready(function(){
}); });
} }
} };
//点赞效果 //点赞效果
var praiseClick = function(){ var praiseClick = function(){
var praiseNum = $(".post-interactive-praise").text().match(/\d+/g); var praiseNum = $(".post-interactive-praise").text().match(/\d+/g);
praiseNum++; praiseNum++;
$(".praise-num").text("(" + praiseNum + ")"); $(".praise-num").text("(" + praiseNum + ")");
} };
}); });

View File

@ -2,59 +2,5 @@
* Created by root on 3/25/16. * Created by root on 3/25/16.
*/ */
$(document).ready(function(){ $(document).ready(function(){
loadDataFromServer(8686, 0);
var bt=baidu.template;
bt.LEFT_DELIMITER='<!';
bt.RIGHT_DELIMITER='!>';
var apiUrl = '/api/v1/';
var setTemplate = function(data){
console.log(data);
var html=bt('t:result-list',{activities: data});
$('#container').prepend(html);
descToggle();
$('.post-reply-submit').click(function(){
replyInsert();
});
};
var loadDataFromServer = function(id){
//getOpenId(function(openid){
$.ajax({
url: apiUrl + 'activities/' + id,
dataType: 'json',
success: function(data){
setTemplate(data.data);
},
error: function(xhr,status,err){
console.log(err);
}
});
//})
};
loadDataFromServer(1);
//内容全部显示与部分隐藏
var descToggle = function(){
$(".post-all-content").each(function(){
var postHeight = $(this).height();
if (postHeight > 90){
$(this).parent().next().css("display","block");
$(this).parent().next().toggle(function(){
$(this).text("点击隐藏");
$(this).prev().css("height",postHeight);
},function(){
$(this).text("点击展开");
$(this).prev().css("height",90);
});
}
});
}
}); });