/**
* message 核心类
* 封装message界面渲染与交互行为
*/
;
var Message = Message || {
cache : {
messageType : "message-all",
commentUser : "",
noticeRead : "no",
iReplyType : "mycomment",
Uedit : null,
visibleId : "",
uploader: null
},
/**
* 首页
*/
main : {
init : function(active) {
Message.remind.renderNum();
this.bindEven();
if(messageId && messageId != "null"){
Message.showMessage.init();
}else{
var typeName = Common.Util.getQueryVariable("remind");
if(typeName == "remind"){
$(".list").find(".active").removeClass("active");
$(".list").find("a[data-type='remind']").parent().addClass("active");
$("#remind-panel").show();
var params = {
"readStatus":"0",
"type" : "0"
}
Message.remind.init(params);
if(Message.cache.noticeRead == "no"){
$(".remind-tabs").find("li:eq(0)").trigger("click");
}else if(Message.cache.noticeRead == "all"){
$(".remind-tabs").find("li:eq(1)").trigger("click");
}
}else{
$("#message-center-panel").show();
if(active && active == "null" || active==null){
$("#msg-content-panel").find('.nav a:first').tab('show');
}else if(active && active == "announcement"){
$("#msg-content-panel").find('.nav a:eq(1)').tab('show');
}else if(active && active == "notice"){
$(".message-menu").find("a[data-type='remind']").trigger("click");
}else if(active && active == "comment"){
$(".message-menu").find("a[data-type='comment']").trigger("click");
$("#comment-panel").find('.nav a:eq(1)').trigger("click");
}
}
}
Message.uploadInit("write");
Message.cache.Uedit = UE.getEditor('notice-container', {
toolbars: [[
'source', '|', 'undo', 'redo', '|',
'bold', 'italic', 'underline', '|', 'forecolor', 'backcolor', '|',
'fontfamily', 'fontsize', '|',
'justifyleft', 'justifycenter', 'justifyright', 'justifyjustify', '|',
'link', 'unlink', '|',
'inserttable', 'deletetable', 'insertparagraphbeforetable', 'insertrow', 'deleterow', 'insertcol', 'deletecol', 'mergecells', 'mergeright', 'mergedown', 'splittocells', 'splittorows', 'splittocols',
]],
autoHeight: false,
initialFrameHeight: 250,
initialFrameWidth: "100%"
});
Message.messageTitle = ($.cookie('USERLANGUAGE') && $.cookie('USERLANGUAGE') == "EN") ? 'Are you sure to delete?' : (($.cookie('USERLANGUAGE') && $.cookie('USERLANGUAGE') == "TW") ? '確認刪除嗎?' : '确认删除吗?');
Message.messageIn = ($.cookie('USERLANGUAGE') && $.cookie('USERLANGUAGE') == "EN") ? 'Delete will not be able to recover' : (($.cookie('USERLANGUAGE') && $.cookie('USERLANGUAGE') == "TW") ? '刪除後將無法恢復' : '删除后将无法恢复');
},
renderFace : function($obj,top,left){
var data = {
top : top+"px",
left : left+"px",
face : []
}
$.each(Message.Util.cache.mapping,function(key,val){
var title = key.substr(key.indexOf("[")+1,key.length-7);
data.face.push({
"file":val,
"title":title
})
})
var html = template('facelist-panel-tpl', data);
$obj.after(html);
},
bindEven : function(){
var $message = $("#message-content");
var $messagePanel = $("#message-center-panel");
var $noticePanel = $('#new-notice');
var $messageContent = $("#msg-content-panel");
var $remindPanel = $("#remind-panel");
//发布消息面板
var $writePanel = $("#msg-write-panel");
//左侧菜单
$(".message-menu").on("click",".msg-menu-item",function(){
var $this = $(this);
var type = $this.find("a").data("type");
$this.siblings().removeClass("active");
$("#notice-show-panel").hide();
$this.addClass("active");
$message.find("div[data-contype]").hide();
$message.find("div[data-contype='"+type+"']").show();
if(type == "list"){
$("#msg-content-panel").find(".nav-tabs a[href='#"+Message.cache.messageType+"']").tab("show");
var params = {}
if(Message.cache.messageType == "message-all"){
Message.Service.getMessageList(params,function(data){
Message.list.init(Message.cache.messageType, data);
})
}else if(Message.cache.messageType == "message-notice"){
Message.Service.getAnnouncementList(params,function(data){
Message.list.init(Message.cache.messageType, data);
})
}
}else if(type == "remind"){
params = {
"readStatus":"0",
"type" : "0"
}
Message.remind.init(params);
if(Message.cache.noticeRead == "no"){
$(".remind-tabs").find("li:eq(0)").trigger("click");
}else if(Message.cache.noticeRead == "all"){
$(".remind-tabs").find("li:eq(1)").trigger("click");
}
}else if(type == "comment"){
Message.iReply.init(Message.cache.iReplyType);
}else if(type == "at"){
//Message.iReceive.init();
}
})
//左侧菜单
$(".message-menu").on("click",".input-group-addon",function(){
var $this = $(this);
alert(1);
})
//普通消息文本框字数限制
$("#msg-write-content").on("keyup keydown",function(){
var $this = $(this);
var $num = $writePanel.find(".num").find("span");
var maxlimit = 140;
if ($this.val().length > maxlimit){
$this.val($this.val().substring(0, maxlimit));
}
$num.text(maxlimit - $this.val().length);
})
//发布消息按钮事件
$writePanel.on("click","#write-submit",function(){
var _content = $writePanel.find("#msg-write-content").val();
if($.trim(_content) == ""){
OBPM.message.showError("内容不能为空!");
return false;
}
var _deptId = $("#deptHidden").val();
var _deptName = $("#deptInput").val();
if(_deptId == "" || _deptName == ""){
OBPM.message.showError("发送范围不能为空!");
return false;
}
var _dept = [];
var _deptIdArr = _deptId.split(";");
var _deptNameArr = _deptName.split(";");
for(var i = 0; i < _deptIdArr.length; i++){
_dept[i] = {"deptId":_deptIdArr[i],"deptName":_deptNameArr[i]};
}
var _receiverInfoStr = JSON.stringify({"user":[],"dept":_dept});
var _scopeValue;
_dept.length > 0 ? _scopeValue = "2" : _scopeValue = ""
var params = {
"content.content" : _content,
"content.attachment" : "["+$("#msg-write-upload").val()+"]",
"content.scope" : _scopeValue,
"receiverInfo" : _receiverInfoStr,
"content.type" : 0
}
Message.Service.saveMessage(params,function(){
OBPM.message.showSuccess("发布成功!");
Message.Service.getMessageList({},function(data){
Message.list.init(Message.cache.messageType,data);
$writePanel.find("#msg-write-content").val("");
$writePanel.find(".pic-item").remove();
$writePanel.find(".file-item").remove();
$("#deptHidden").val("");
$("#deptInput").val("");
$("#msg-write-upload").val("");
$writePanel.find(".num").find("span").text("140");
Message.cache.uploader.reset();
});
})
});
//表情按钮
$writePanel.on("click","#msg-write-face",function(){
$("#facebox").remove();
var $this = $(this);
var top = $this.position().top + 30;
var left = $this.position().left;
Message.main.renderFace($this,top,left);
});
//文本框中插入表情
$("body").on("click","#facebox .faces_list_box li", function(){
var $this = $(this);
var $assign = $("#msg-write-content");
var title = $this.attr("title");
var $num = $writePanel.find(".num").find("span");
var maxlimit = 140;
if (($assign.val()+"["+title+"]").length <= maxlimit){
$assign.val($assign.val()+"["+title+"]");
}
$num.text(maxlimit - $assign.val().length);
});
//关闭表情面板
$("body").on("click","#facebox .facelist-ficon_close", function(){
$(this).parents("#facebox").remove();
});
//显示公告填写
$writePanel.on("click","#new-notice-btn",function(){
$noticePanel.modal('show');
});
//显示图片附件删除按钮
$writePanel.on("mouseenter",".pic-item",function(){
$(this).find(".icon-delete").fadeIn("fast");
});
//隐藏图片附件删除按钮
$writePanel.on("mouseleave",".pic-item",function(){
$(this).find(".icon-delete").fadeOut("slow");
});
//附件预览
$writePanel.off("click",".filename").on("click",".filename",function(){
var $this = $(this).parent();
var id = $this.data("id")
var title = $this.data("name");
var fileType = title.substring(title.lastIndexOf("."))
.toLowerCase();
var url = $this.data("url");
var fileName = $this.find(".filename").text();
if(fileName==""){
fileName = id;
}
var params = {
"id": id,
"extName": fileType,
"url": url
}
Message.Service.getAttachementUrl(params,function(data){
Message.Util.previewFile(encodeURI(fileName), id, fileType, url);
})
return false;
})
//附件删除
$writePanel.off("click",".icon-delete").on("click",".icon-delete",function(){
var $this = $(this);
var name = $this.parents("[data-name]").data("name");
var inputStr = $("#msg-write-upload").val();
var inputJson = JSON.parse("["+inputStr+"]");
var uploaderFiles = Message.cache.uploader.getFiles();
OBPM.message.showConfirm(Message.messageTitle,Message.messageIn,function(){
for(var i = 0; i < inputJson.length; i++){
if(inputJson[i].name == name){
inputJson.splice(i, 1);
}
}
for(var r = 0; r < uploaderFiles.length; r++){
if(uploaderFiles[r].name == name){
Message.cache.uploader.removeFile( uploaderFiles[r] )
}
}
var responseStr = JSON.stringify(inputJson);
var newInputStr = responseStr.substr(responseStr.indexOf("[")+1, responseStr.lastIndexOf("]")-1);
$("#msg-write-upload").val(newInputStr);
$this.parents("[data-name]").remove();
OBPM.message.showSuccess("删除成功!");
})
});
//发布公告按钮事件
$noticePanel.on("click","#notice-submit",function(){
var _title = $noticePanel.find("#notice-title").val();
if(_title == ""){
OBPM.message.showError("标题不能为空!");
return false;
}
if(_title.length > 200){
OBPM.message.showError("标题不允许超过200个字符!");
return false;
}
var _content = Message.cache.Uedit.getContent();
if(_content == ""){
OBPM.message.showError("内容不能为空!");
return false;
}
var _deptId = $("#deptHidden2").val();
var _deptName = $("#deptInput2").val();
if(_deptId == "" || _deptName == ""){
OBPM.message.showError("发送范围不能为空!");
return false;
}
var _dept = [];
var _deptIdArr = _deptId.split(";");
var _deptNameArr = _deptName.split(";");
for(var i = 0; i < _deptIdArr.length; i++){
_dept[i] = {"deptId":_deptIdArr[i],"deptName":_deptNameArr[i]};
}
var _receiverInfoStr = JSON.stringify({"user":[],"dept":_dept});
var _scopeValue;
_dept.length > 0 ? _scopeValue = "2" : _scopeValue = "";
var _comment = $noticePanel.find("#notice-comment").prop("checked");
var _sticky = $noticePanel.find("#notice-sticky").prop("checked");
var params = {
"content.title" : _title,
"content.content" : _content,
"content.attachment" : "",
"content.scope" : _scopeValue,
"receiverInfo" : _receiverInfoStr,
"content.type" : 1,
"content.comment" : _comment,
"content.sticky" : _sticky
}
Message.Service.saveAnnouncement(params,function(){
$noticePanel.modal('hide');
OBPM.message.showSuccess("发布成功!");
Message.Service.getAnnouncementList({},function(data){
Message.list.init(Message.cache.messageType, data);
});
})
$noticePanel.find("#notice-title").val("");
Message.cache.Uedit.setContent("");
$("#deptHidden2").val("");
$("#deptInput2").val("");
$noticePanel.find("#notice-comment").prop("checked",false);
$noticePanel.find("#notice-sticky").prop("checked",false);
});
//消息tab显示前处理
$messageContent.find('.nav a[data-toggle="tab"]').on('show.bs.tab', function (e) {
var $this = $(this);
Message.cache.messageType = $this.attr("href").substr(1);
var params = {}
if(Message.cache.messageType == "message-all"){
Message.Service.getMessageList(params,function(data){
Message.list.init(Message.cache.messageType, data);
})
}else if(Message.cache.messageType == "message-notice"){
Message.Service.getAnnouncementList(params,function(data){
Message.list.init(Message.cache.messageType, data);
})
}
})
//预览
$messageContent.on('click',".msg-attachment-file-item,.msg-attachment-pic-item", function(){
var $this = $(this);
var id = $this.data("id")
var extName = $this.data("extname");
var url = $this.data("url");
var fileName = $this.text();
if(fileName==""){
fileName = id;
}
var params = {
"id": id,
"extName": extName,
"url": url
}
Message.Service.getAttachementUrl(params,function(data){
Message.Util.previewFile(encodeURI(fileName), id, extName, url);
})
})
//消息评论栏点击事件
$messageContent.on('click',".msg-handle", function(){
var $this = $(this);
var $commentPanel = $(this).next();
$commentPanel.toggle();
if($commentPanel.is(":visible")){
var messageId = $commentPanel.data("id");
var params = {"messageId":messageId};
Message.Service.getCommentList(params,function(data){
Message.comment.init($commentPanel,data);
});
}
$("#message-center-panel").getNiceScroll().resize();
})
//消息评论栏文本框字数限制
$messageContent.on("keyup keydown",".msg-comment-textarea textarea",function(){
var $this = $(this);
var $num = $this.parents(".msg-comment-write").find(".num").find("span");
var maxlimit = 140;
//由回复某评论改为回复消息时
if (Message.cache.commentUser != "" && $this.val().indexOf(Message.cache.commentUser) < 0){
$this.siblings("[name='toCommentUser']").val("");
$this.siblings("[name='commentId']").val("");
$this.siblings("[name='tocontent']").val($this.parents(".msg-content-item").find(".msg-txt").text());
}
if ($this.val().length > maxlimit){
$this.val($this.val().substring(0, maxlimit));
}else{
$num.text(maxlimit - $this.val().length);
}
})
//消息删除
$messageContent.on("click",".msg-btn-delete",function(){
var $this = $(this);
var _messageId = $this.parent().data("id");
var params = {
"messageId" : _messageId
}
OBPM.message.showConfirm(Message.messageTitle,Message.messageIn,function(){
Message.Service.delectMessage(params,function(){
OBPM.message.showSuccess("删除成功!");
Message.Service.getMessageList({},function(data){
Message.list.init(Message.cache.messageType, data);
});
})
})
})
//查看公告详情
$messageContent.on("click",".notice-show",function(){
var $contentItem = $(this).parents(".msg-content-item");
var params = {
"messageId" : $contentItem.data("id")
}
Message.Service.getMessage(params,function(data){
var _title = data.message.title;
var _sender = data.message.sender;
var _createTime = new Date(data.message.createTime.time)
var _time = _createTime.getFullYear()+"-"+(_createTime.getMonth()+1)+"-"+_createTime.getDate()+" "+_createTime.getHours()+":"+_createTime.getMinutes()+":"+_createTime.getSeconds();
var _dept = data.message.senderDept;
var _content = data.message.content;
var _data = {
"title": _title,
"sender": _sender,
"time": _time,
"dept": _dept,
"content": _content
};
var html = template('notice-show', _data);
Message.cache.visibleId = $("#notice-show-panel").siblings(":visible").not(".message-menu").attr("id");
$("#notice-show-panel").siblings().not(".message-menu").hide();
$("#notice-show-panel").html(html).show();
})
});
//公告详情返回按钮
$message.on("click",".notice-show-close",function(){
$("#notice-show-panel").hide();
$("#"+Message.cache.visibleId).show();
});
//消息评论按钮事件
$messageContent.on("click",".msg-comment-submit",function(){
var $this = $(this);
var $commentPanel = $this.parents(".msg-comment-panel");
var _touser = $commentPanel.find("input[name='touser']").val();
var _touserId = $commentPanel.find("input[name='touserid']").val();
var _commentId = $commentPanel.find("input[name='commentId']").val();
var _messageId = $commentPanel.data("id");
var _content = $commentPanel.find(".msg-comment-textarea textarea").val();
var _tocontent = $commentPanel.find("input[name='tocontent']").val();
if(_content == ""){
OBPM.message.showError("内容不能为空!");
return false;
}
var params = {
"content.toUser" : _touser,
"content.toUserId" : _touserId,
"content.messageId" : _messageId,
"content.commentId" : _commentId,
"toContent" : _tocontent,
"content.content" : _content,
"content.attachment" : ""
}
Message.Service.saveComment(params,function(){
OBPM.message.showSuccess("评论成功!");
$commentPanel.find(".msg-comment-textarea textarea").val("");
Message.Service.getCommentList({"messageId":_messageId},function(data){
Message.comment.init($commentPanel,data);
});
})
});
//显示评论操作栏
$messageContent.on("mouseenter",".comment-item",function(){
var $this = $(this);
$this.find(".comment-edit").show();
})
//隐藏评论操作栏
$messageContent.on("mouseleave",".comment-item",function(){
var $this = $(this);
$this.find(".comment-edit").hide();
})
//评论栏回复
$messageContent.on("click",".comment-reply",function(){
var $this = $(this);
var $commentPanel = $this.parents(".msg-comment-panel");
var $commentItem = $this.parents(".comment-item");
var _sender = $commentItem.data("sender");
var _senderId = $commentItem.data("senderid");
var _commentId = $commentItem.data("id");
var _commentText = $commentItem.find(".comment-text").text();
$commentPanel.find("input[name='touser']").val(_sender);
$commentPanel.find("input[name='tocontent']").val(_commentText);
$commentPanel.find("input[name='toCommentUser']").val("回复 @"+_sender+" ");
$commentPanel.find("input[name='touserid']").val(_senderId);
$commentPanel.find("input[name='commentId']").val(_commentId);
$commentPanel.find(".msg-comment-textarea textarea").val("回复 @"+_sender+" ");
Message.cache.commentUser = "回复 @"+_sender+" ";
})
//评论栏删除
$messageContent.on("click",".comment-delete",function(){
var $this = $(this);
var $commentPanel = $this.parents(".msg-comment-panel");
var $commentItem = $this.parents(".comment-item");
var _commentId = $commentItem.data("id");
var _messageId = $commentPanel.data("id");
var params = {
"commentId" : _commentId,
"messageId" : _messageId
};
OBPM.message.showConfirm(Message.messageTitle,Message.messageIn,function(){
Message.Service.delectComment(params,function(){
OBPM.message.showSuccess("删除成功!");
$commentPanel.find(".msg-comment-textarea textarea").val("");
Message.Service.getCommentList({"messageId":_messageId},function(data){
Message.comment.init($commentPanel,data);
});
})
});
});
//“我回复的”tab切换
$("#comment-panel").on("click",".ireply-tabs a",function(){
var $this = $(this);
var type = $this.attr("type");
Message.cache.iReplyType = type;
Message.iReply.init(Message.cache.iReplyType);
});
//“我回复的”删除
$("#comment-panel").on("click",".comment-delete",function(){
var $this = $(this);
var _id = $this.parent().data("id");
var _commentId = $this.parent().data("commentid");
var _messageId = $this.parent().data("messageid");
var params = {
"commentId" : _id,
"messageId" : _messageId
};
OBPM.message.showConfirm(Message.messageTitle,Message.messageIn,function(){
Message.Service.delectComment(params,function(){
OBPM.message.showSuccess("删除成功!");
Message.iReply.init(Message.cache.iReplyType);
})
});
});
//查看事项详情
$remindPanel.on("click",".remind-list-content",function(){
var $this = $(this);
var url = $this.find("a").data("url");
var id = $this.parent().data("id");
Message.Service.setRead({"ids":id},function(){
$(".remind-tabs").find("li.active").trigger("click");
});
if (parent && parent.addTab) {
parent.addTab(id,$this.text(),url);
}else{
window.open(url, $this.text());
}
});
//事项已读未读切换
$remindPanel.on("click",".remind-tabs li",function(){
var $this = $(this);
var read = $this.data("read");
var type = $(".notice-select-type").find("a.dropdown-toggle span").attr("type") == undefined ? 0 : $(".notice-select-type").find("a.dropdown-toggle span").attr("type");
var params;
$this.siblings("li").removeClass("active");
$this.addClass("active");
Message.cache.noticeRead = read;
if(read == "all"){
params = {
"readStatus":"" ,
"type" : type
}
}else if(read == "no"){
params = {
"readStatus":"0",
"type" : type
}
}
Message.remind.init(params);
});
//事项类型选择
$remindPanel.on("click",".notice-select-type ul a",function(){
var $this = $(this);
var type = $this.attr("_value");
var text = $this.text();
if(type != "0"){
$this.parents(".notice-select-type").find("a.dropdown-toggle").html(text + " ");
}else{
if($.cookie('USERLANGUAGE') && $.cookie('USERLANGUAGE') == "EN"){
$this.parents(".notice-select-type").find("a.dropdown-toggle").html("Type ");
}else{
$this.parents(".notice-select-type").find("a.dropdown-toggle").html("类型 ");
}
}
var params = {
"readStatus": Message.cache.noticeRead == "all" ? "" : "0",
"type": type
}
Message.remind.init(params);
});
//事项当页已读-全部标记已读
$remindPanel.on("click",".btn-read",function(){
Message.Service.markAllAsRead(function(){
$(".remind-tabs").find("li.active").trigger("click");
});
});
//删除事项
$remindPanel.on("click",".remind-item-delete",function(){
var $this = $(this);
var $remindItem = $this.parents(".remind-list-item");
var _noticeId = $remindItem.data("id");
var readStatus = $(".remind-tabs li.active").attr("data-read") == "no" ? "0" : "";
var type = $(".notice-select-type").find("a.dropdown-toggle span").attr("type");
var params = {
"noticeId" : _noticeId
};
OBPM.message.showConfirm(Message.messageTitle,Message.messageIn,function(){
Message.Service.deleteRemindItem(params,function(){
OBPM.message.showSuccess("删除成功!");
var params = {
"readStatus": readStatus,
"type":type
}
Message.remind.init(params);
})
});
});
$(document).on("click",function(e){
var $this = $(e.target);
if($this.closest("#facebox").size()<=0){
if(!$this.hasClass("func-face")){
if($this.parent(".func-face").size() <= 0){
$("#facebox").remove();
}
}
}
})
}
},
/**
* 公司动态
*/
list : {
init : function(messageType,data) {
this.renderPage(messageType,data);
//this.renderList(messageType,data);
},
/**
* 渲染动态列表
*/
renderList : function(messageType,data){
if(data && data.datas){
data.contextPath = contextPath;
data.user = USER.name;
data.userid = USER.id;
for(var i = 0;i < data.datas.length;i++){
var senderId = data.datas[i].senderId;
var createTime = data.datas[i].createTime;
var attachment = data.datas[i].attachment;
var content = data.datas[i].content;
//if(data.datas[i].type == 1){
// content = data.datas[i].content = $(content).text().length > 200 ? $(content).text().substr(0,200) + "..." : $(content).text();
//}
//Limiting length will filter tags which makes the style disabled
var avatar = Common.Util.getAvatar(senderId);
data.datas[i].avatar = avatar ? avatar : "";
data.datas[i].contentReplace = Message.Util.replaceFace(content);
data.datas[i].createTimeChange = Common.Util.calculateTime(createTime.replace("T"," "),"Y-m-d H:i");
if(attachment && attachment != ""){
var attachmentObj = JSON.parse(attachment)
for(var j = 0;j < attachmentObj.length;j++){
var extName = attachmentObj[j].extName;
attachmentObj[j].extName = Message.Util.checkExtendName(extName);
}
data.datas[i].attachmentObj = attachmentObj;
}
}
var html = template('message-item', data);
if(messageType == "message-all"){
$("#message-all .message-list-box").html(html);
}else if(messageType == "message-notice"){
$("#message-notice .message-list-box").html(html);
}
if(data.rowCount <= 0){
$("#"+messageType).find("#pagination-panel").hide();
}else{
$("#"+messageType).find("#pagination-panel .totalRowPanel").text("总条数:"+data.rowCount);
}
}
},
renderPage : function(messageType,data){
var $message = $("#"+messageType);
Message.paginationInit($message,data,function(no){
var params = {
"_currpage":no + 1,
"_rowcount":30
}
if(data.rowCount <= 0){
$message.find("#pagination-panel").hide();
}else{
$message.find("#pagination-panel .totalRowPanel").text("总条数:"+data.rowCount);
}
if(Message.cache.messageType == "message-all"){
Message.Service.getMessageList(params,function(data){
Message.list.renderList(Message.cache.messageType, data);
})
}else if(Message.cache.messageType == "message-notice"){
Message.Service.getAnnouncementList(params,function(data){
Message.list.renderList(Message.cache.messageType, data);
})
}
$("#message-center-panel").getNiceScroll().resize();
})
}
},
/**
* 消息详情
*/
showMessage : {
init : function() {
this.renderMessage();
},
/**
* 渲染详细页面
*/
renderMessage: function(){
var params = {
"messageId" : messageId
}
Message.Service.getMessage(params,function(data){
var _title = data.message.title;
var _sender = data.message.sender;
var _createTime = new Date(data.message.createTime.time)
var _time = Common.Util.calculateTime(_createTime.getFullYear()+"-"+(_createTime.getMonth()+1)+"-"+_createTime.getDate()+" "+_createTime.getHours()+":"+_createTime.getMinutes()+":"+_createTime.getSeconds());
var _dept = data.message.senderDept;
var _content = data.message.content;
var _data = {
"title": _title,
"sender": _sender,
"time": _time,
"dept": _dept,
"content": _content
};
var html = template('notice-show', _data);
Message.cache.visibleId = "message-center-panel";
$("#msg-content-panel").find('.nav a:first').tab('show')
$("#notice-show-panel").siblings().not(".message-menu").hide();
$("#notice-show-panel").html(html).show();
})
}
},
/**
* 事项提醒
*/
remind : {
init : function(params) {
Message.Service.getRemindList(params,function(data){
Message.remind.renderPage(params,data);
})
this.renderNum();
},
renderNum: function(){
Message.Service.getNotificationCount(function(data){
var num = parseInt(data.notice) > 99 ? "99+" : data.notice;
var $topBadge = top.$(".user-box .badge");
if(data.notice > 0){
$(".message-menu").find("a[data-type='remind']>.badge").text(num).show();
if($topBadge.size()>0){
$topBadge.text(num).show();
}
}else{
$(".message-menu").find("a[data-type='remind']>.badge").hide();
if($topBadge.size()>0){
$topBadge.hide();
}
}
})
},
/**
* 渲染详细页面
*/
renderList: function(params){
Message.Service.getRemindList(params,function(data){
data.contextPath = contextPath;
data.staticContextPath = staticContextPath;
data.skin = USER.skin ;
for(var i = 0;i < data.datas.length;i++){
var createTime = data.datas[i].createTime;
data.datas[i].createTimeChange = Common.Util.calculateTime(createTime.replace("T"," "));
var linkParams = data.datas[i].linkParams;
if (linkParams.indexOf("http") >= 0) {//兼容旧数据
var _docid = Common.Util.getQueryString(linkParams,"_docid");
var _formid = Common.Util.getQueryString(linkParams,"_formid");
var application = Common.Util.getQueryString(linkParams,"application");
var mode = Common.Util.getQueryString(linkParams,"mode");
data.datas[i].linkParams = {
"_docid" : _docid,
"_formid" : _formid,
"application" : application,
"mode" : mode
}
}else{
data.datas[i].linkParams = JSON.parse(linkParams);
data.datas[i].linkParams.backurl = "../../../portal/H5/closeTab.jsp";
}
}
var html = template('remind-list-item', data);
$(".remind-list-panel").find("ul").html(html);
Message.remind.renderNum();
});
},
renderPage : function(params,data){
var $remind = $(".remind-list-panel");
$remind.find("#pagination-panel").remove();
Message.paginationInit($remind,data,function(no){
params._currpage = no + 1;
params._rowcount = 30;
if(data.rowCount <= 0){
$remind.find("#pagination-panel").hide();
}else{
$remind.find("#pagination-panel .totalRowPanel").text("总条数:"+data.rowCount);
}
Message.Service.getRemindList(params,function(data){
Message.remind.renderList(params);
})
$("#remind-panel").getNiceScroll().resize();
})
}
},
/**
* 我回复的
*/
iReply : {
init : function() {
if(Message.cache.iReplyType == "mycomment"){
Message.Service.getIReplyList({},function(data){
Message.iReply.renderPage(data);
})
}else{
Message.Service.getIReceiveList({},function(data){
Message.iReply.renderPage(data);
})
}
},
/**
* 渲染详细页面
*/
renderMyList: function(data){
data.contextPath = contextPath;
for(var i = 0;i < data.datas.length;i++){
var sender = data.datas[i].sender;
var senderId = data.datas[i].senderId;
var createTime = data.datas[i].createTime;
var toContent = data.datas[i].toContent;
var toUser = data.datas[i].toUser;
var toUserId = data.datas[i].toUserId;
if(toUserId == USER.id && toUser == USER.name){
data.datas[i].toUser = "我";
}
data.datas[i].toContentReplace = Message.Util.replaceFace(toContent);
data.datas[i].avatar = Common.Util.getAvatar(senderId);
data.datas[i].createTimeChange = createTime.replace("T"," ");
}
var html = template('ireply-panel-tpl', data);
$(".ireply-content .ireply-content-list").html(html);
},
renderToMeList: function(data){
data.contextPath = contextPath;
for(var i = 0;i < data.datas.length;i++){
var sender = data.datas[i].sender;
var senderId = data.datas[i].senderId;
var createTime = data.datas[i].createTime;
var toContent = data.datas[i].toContent;
var toUser = data.datas[i].toUser;
var toUserId = data.datas[i].toUserId;
if(toUserId == USER.id && toUser == USER.name){
data.datas[i].toUser = "我";
}
data.datas[i].toContentReplace = Message.Util.replaceFace(toContent);
data.datas[i].avatar = Common.Util.getAvatar(senderId);
data.datas[i].createTimeChange = createTime.replace("T"," ");
}
var html = template('ireply-panel-tpl', data);
$(".ireply-me-content .ireply-me-content-list").html(html);
},
renderPage : function(data){
var $reply;
if(Message.cache.iReplyType == "mycomment"){
$reply = $(".ireply-content");
}else{
$reply = $(".ireply-me-content");
}
Message.paginationInit($reply,data,function(no){
var params = {
"_currpage" : no + 1,
"_rowcount" : 30
}
if(data.rowCount <= 0){
$reply.find("#pagination-panel").hide();
}else{
$reply.find("#pagination-panel .totalRowPanel").text("总条数:"+data.rowCount);
}
if(Message.cache.iReplyType == "mycomment"){
Message.Service.getIReplyList(params,function(data){
Message.iReply.renderMyList(data);
})
}else{
Message.Service.getIReceiveList(params,function(data){
Message.iReply.renderToMeList(data);
})
}
$("#comment-panel").getNiceScroll().resize();
})
}
},
/**
* 提到我的
*/
iReceive : {
init : function() {
this.renderList();
},
/**
* 渲染详细页面
*/
renderList: function(){
var params = {};
Message.Service.getIReceiveList(params,function(data){
/*data.contextPath = contextPath;
for(var i = 0;i < data.datas.length;i++){
var sender = data.datas[i].sender;
var senderId = data.datas[i].senderId;
var createTime = data.datas[i].createTime;
var toContent = data.datas[i].toContent;
var toUser = data.datas[i].toUser;
var toUserId = data.datas[i].toUserId;
if(toUserId == USER.id && toUser == USER.name){
data.datas[i].toUser = "我";
}
data.datas[i].toContentReplace = Message.Util.replaceFace(toContent);
data.datas[i].avatar = Common.Util.getAvatar(senderId);
data.datas[i].createTimeChange = createTime.replace("T"," ");
}*/
var html = template('ireply-panel-tpl', data);
$(".ireply-content").html(html);
})
},
/**
* 渲染详细页面
*/
renderAtCommentList: function(){
var params = {};
Message.Service.getIReplyList(params,function(data){
data.contextPath = contextPath;
for(var i = 0;i < data.datas.length;i++){
var sender = data.datas[i].sender;
var senderId = data.datas[i].senderId;
var createTime = data.datas[i].createTime;
var toContent = data.datas[i].toContent;
var toUser = data.datas[i].toUser;
var toUserId = data.datas[i].toUserId;
if(toUserId == USER.id && toUser == USER.name){
data.datas[i].toUser = "我";
}
data.datas[i].toContentReplace = Message.Util.replaceFace(toContent);
data.datas[i].avatar = Common.Util.getAvatar(senderId);
data.datas[i].createTimeChange = createTime.replace("T"," ");
}
var html = template('ireply-panel-tpl', data);
$(".ireply-content").html(html);
})
}
},
/**
* 评论
*/
comment : {
init : function($obj,data) {
this.renderList($obj,data)
},
/**
* 渲染评论列表
*/
renderList : function($obj,data){
data.contextPath = contextPath;
if($obj.parent().data("admin")){
data.owner = true;
}else{
data.owner = false;
}
for(var i = 0;i < data.datas.length;i++){
var sender = data.datas[i].sender;
var senderId = data.datas[i].senderId;
var createTime = data.datas[i].createTime;
if(senderId == USER.id && sender == USER.name){
data.datas[i].owner = true;
}else{
data.datas[i].owner = false;
}
//var attachment = data.datas[i].attachment;
data.datas[i].avatar = Common.Util.getAvatar(senderId);
data.datas[i].createTimeChange = Common.Util.calculateTime(createTime.replace("T"," "));
/*if(attachment && attachment != ""){
var attachmentObj = JSON.parse(attachment)
data.datas[i].attachmentObj = attachmentObj;
}*/
}
if(data.datas.length > 0){
$obj.siblings(".msg-handle").html(' 评论 '+data.datas.length);
}
var html = template('message-comment-item', data);
$obj.find(".msg-comment-list ul").html(html);
}
},
//初始化上传控件
uploadInit : function(key,option) {
Message.cache.uploader = WebUploader.create({
auto: true,
swf: '../js/webuploader/Uploader.swf',
server: messageContextPath+'/api/message/servlet/upload',
pick: '#filePicker-'+key
/*accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}*/
});
Message.cache.uploader.onUploadSuccess = function(file,response){
var inputStr = $("#msg-write-upload").val();
delete response._raw;
var responseStr = JSON.stringify(response);
var newInputStr = inputStr == "" ? responseStr : inputStr + "," + responseStr;
$("#msg-write-upload").val(newInputStr);
if(key == "write"){
Message.uploadListInit(key,"["+responseStr+"]");
}else{
Message.uploadListInit(key,"["+newInputStr+"]");
}
};
Message.cache.uploader.onStartUpload = function(file){
$("#loadingDivBack").show();
};
Message.cache.uploader.onUploadFinished = function(file){
$("#loadingDivBack").hide();
};
Message.cache.uploader.onUploadError = function(file){
OBPM.message.showError("上传失败!");
};
},
//初始化图片
uploadListInit : function(key,str){
var uplistJson = JSON.parse(str);
for(var i = 0;i < uplistJson.length;i++){
var extName = uplistJson[i].extName.substr(1);
uplistJson[i].extName = Message.Util.checkExtendName(extName);
}
var data = {
contextPath : contextPath,
datas : uplistJson
}
if(key == "write"){
var uploadHtml = template('message-up-item', data);
for(var i = 0; i < uplistJson.length; i++){
var upType = uplistJson[i].type;
if(upType == "image"){
$("#"+key+"-uploader-list .uploadlist-pic ul").append(uploadHtml);
}else if(upType == "file"){
$("#"+key+"-uploader-list .uploadlist-file").append(uploadHtml);
}
}
}else{
var picHtml = template('message-up-item', data);
$("#"+key+"-uploader-list").html(picHtml);
}
},
//初始化翻页组件
paginationInit : function($obj,data,callback){
if(data && data.datas){
var rowCount = data.rowCount;
var pageNo = data.pageNo;
var linesPerPage = data.linesPerPage;
var pageCount = data.pageCount;
}else{
var rowCount = 0;
var pageNo = 1;
var linesPerPage = 30;
var pageCount = 1;
}
var page = template('pagination-panel-tpl', data);
$obj.find("#pagination-panel").remove();
$obj.append(page);
$obj.find("#pagination-panel .pagination-body").pagination(rowCount, {
current_page: (pageNo - 1),
items_per_page: linesPerPage,
prev_text: "",
next_text: "",
num_edge_entries: 1,
num_display_entries: 5,
callback:function(data){
if(callback && typeof callback == "function"){
callback(data);
}
}
});
}
}