90 lines
2.7 KiB
JavaScript
90 lines
2.7 KiB
JavaScript
define(function (require, exports, module) {
|
|
var EventObject = require("../../platform/EventObject.js");
|
|
var servers = null;
|
|
var container = $("#chat_server_select");
|
|
var template = container.find(">script").doT();
|
|
var serverNodeContainer = container.find(">article");
|
|
var ep = require("../../platform/extensionPort.js");
|
|
var port = ep.port;
|
|
var mp = require("../widget_message_popup.js");
|
|
|
|
var renderServerNodeList = function () {
|
|
_.each(servers, function (s) {
|
|
s.statusName = "ok";
|
|
|
|
if (s.room_people_num <= s.onlinecount)
|
|
s.statusName = "full";
|
|
else if (!s.status)
|
|
s.statusName = "closed";
|
|
});
|
|
//推荐房间
|
|
serverNodeContainer.empty();
|
|
var roomRecommand = _.where(servers, { recommand: true });
|
|
if (roomRecommand && roomRecommand.length)
|
|
serverNodeContainer.append(template({ category: "推荐房间", list: roomRecommand }));
|
|
var roomGlobal = _.where(servers, { category: 0 });
|
|
if (roomGlobal && roomGlobal.length)
|
|
serverNodeContainer.append(template({ category: "全国房间", list: roomGlobal }));
|
|
var roomPrivate = _.where(servers, { category: 1 });
|
|
if (roomPrivate && roomPrivate.length)
|
|
serverNodeContainer.append(template({ category: "地区/专线房间", list: roomPrivate }));
|
|
};
|
|
|
|
var ServerNodeSelect = function () {
|
|
EventObject.apply(this);
|
|
var that = this;
|
|
|
|
this.showRoomSelect = function () {
|
|
$("#chat_frame>section").removeClass("chat-page-current");
|
|
$("#chat_server_select").addClass("chat-page-current");
|
|
|
|
that.fireEvent("roomSelectShown");
|
|
};
|
|
|
|
this.exitRoomSelect = function () {
|
|
$("#chat_frame").removeClass("open");
|
|
|
|
that.fireEvent("roomSelectHide");
|
|
};
|
|
|
|
port.on("responseServer", function (e, serverList) {
|
|
servers = serverList;
|
|
if (!servers) {
|
|
//TODO 无法加载服务器列表
|
|
} else {
|
|
that.fireEvent("chatServerLoaded", servers);
|
|
|
|
//渲染列表
|
|
renderServerNodeList();
|
|
}
|
|
});
|
|
this.loadServers = function () {
|
|
port.postMessage("getChatServerStatus");
|
|
};
|
|
|
|
return this;
|
|
};
|
|
ServerNodeSelect.prototype = Object.create(EventObject);
|
|
ServerNodeSelect.constructor = ServerNodeSelect;
|
|
|
|
var instance = new ServerNodeSelect();
|
|
(function ui() {
|
|
$("#chat_server_select > footer >button").click(instance.exitRoomSelect);
|
|
$(document).on("click", "#chat_server_select article li", function () {
|
|
var id = this.dataset.id;
|
|
var server = _.findWhere(servers, { id: id });
|
|
if (!server)
|
|
return;
|
|
|
|
if (server.statusName === "full") {
|
|
mp.showMessagePopup("error", "亲,房间已满,换个房间呗~");
|
|
} else if (server.statusName == "closed") {
|
|
mp.showMessagePopup("error", "亲,这个房间暂时关闭了,换个房间呗~~");
|
|
} else
|
|
instance.fireEvent("enterRoot", server);
|
|
});
|
|
})();
|
|
|
|
return instance;
|
|
});
|