Light12306/Web12306/js/ui/chat/chatframe.js

89 lines
2.2 KiB
JavaScript
Raw Normal View History

2014-08-13 00:14:00 +08:00
define(function (require, exports, module) {
var ep = require("../../platform/extensionPort.js");
var port = ep.port;
2014-08-08 20:46:37 +08:00
var data = require("../../data.js");
var sessMgr = require("../../account/sessionMgr.js");
var ev = require("../../platform/EventObject.js");
2014-08-14 21:33:47 +08:00
var mp = require("../widget_message_popup.js");
2014-08-08 20:46:37 +08:00
2014-08-13 00:14:00 +08:00
//frames
var servernode = require("./servernode.js");
//服务器
var servers;
var showChatFloatTip = function () {
if ($("#chat_frame.open").length)
return;
var totalcount = _.reduce(_.pluck(servers, "onlinecount"), function (i, m) { return i + m; }, 0);
2014-08-30 01:32:27 +08:00
$("#chat_float_tip").find("span").html(totalcount + '').end().show();
2014-08-13 00:14:00 +08:00
};
var showChatFrameUI = function () {
$("#chat_frame").height();
$("#chat_frame").addClass("open");
$("div.wrap").addClass("chat-on");
$("#chat_float_tip").hide();
};
var hideChatFrameUI = function () {
$("div.wrap").removeClass("chat-on");
$("#chat_frame").removeClass("open");
};
var showServerList = function () {
showChatFrameUI();
servernode.showRoomSelect();
};
//进入房间
var roomSession = require("./roomsession.js");
var enterroom = function () {
showChatFrameUI();
roomSession.enterRoom(this);
};
2014-08-30 01:32:27 +08:00
roomSession.session.on("exitRoom", function () {
2014-08-14 21:33:47 +08:00
showServerList();
});
2014-08-13 00:14:00 +08:00
2014-08-14 21:33:47 +08:00
//扩展状态异常
port.on("disconnect", function () {
if (roomSession.session.room)
mp.alert("提示", "连接已丢失,请刷新界面重新进入聊天室。");
$("#chat").hide();
});
port.on("responseCurrentRoomInfo", function (e, r) {
if (r) {
if (r !== roomSession.session.room)
sessMgr.ensureLogined(enterroom.bind(r));
2014-08-30 01:32:27 +08:00
} else if (roomSession.session.room) {
2014-08-14 21:33:47 +08:00
roomSession.session.exitRoom();
}
});
2014-08-13 00:14:00 +08:00
2015-05-11 19:27:05 +08:00
$("#chat_float_tip").click(showServerList);
//加载服务器节点列表
2014-09-05 18:51:21 +08:00
servernode.loadServers();
2014-09-05 18:34:16 +08:00
setTimeout(function() {
servernode.loadServers();
}, 1000 * 60 * 11);
2014-08-08 20:46:37 +08:00
2015-05-11 19:27:05 +08:00
servernode.on("roomSelectHide", function () {
hideChatFrameUI();
showChatFloatTip();
});
servernode.on("chatServerLoaded", function (e, serverList) {
servers = serverList;
if (servers)
showChatFloatTip();
port.postMessage("getCurrentRoomInfo");
});
servernode.on("enterRoot", function (e, room) {
//进入房间
sessMgr.ensureLogined(enterroom.bind(room));
});
2014-08-08 20:46:37 +08:00
return {
};
});