X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=public%2Fscripts%2Fchatclient.js;h=774d68cd6a5523658218da2374fd2797efc09892;hb=115ec9aa5ded95a53badd32e2036fdedb9179572;hp=be409a4334724b92b1ba0b67e909fca6b521d4b4;hpb=a0eb0a45aca984f7fbfe5e2e0459b801bfdd7009;p=webchat%2FWebChat.git diff --git a/public/scripts/chatclient.js b/public/scripts/chatclient.js index be409a4..774d68c 100644 --- a/public/scripts/chatclient.js +++ b/public/scripts/chatclient.js @@ -14,7 +14,9 @@ $invaild_name_message = "名前を空欄にすることはできません"; $free_password1 = "最初に入室する人が自由にパスワードを設定できます"; //自由パスワードメッセージ1 $free_password2 = "この部屋は使用されています。パスワードを入力してください"; //自由パスワードメッセージ2 $fixed_password = "この部屋にはパスワードが設定されています"; //固定パスワードルーム -$hidden_log_to_rom = "この部屋ではROMできないようになっています"; +$hidden_log_to_rom = "この部屋ではROMできないようになっています"; //ROM禁止ルーム +$adminmsg = "(管理モード)"; //管理モード +$romcount_msg = "ROM(%d人)" //ROMカウント //ここから先は変更しないでください $prefix_filelist = "!"; @@ -22,6 +24,7 @@ $socket = new Object(); $names = {}; $roominfo = {}; $dateFormat = new DateFormat("yyyy/MM/dd HH:mm:ss"); +$romcount = 0; //ここまで $(document).ready(function(){ @@ -49,6 +52,7 @@ $(document).ready(function(){ $socket = io.connect(location.hostname + "/" + document.chat_form.rno.value + "?token="+ encodeURIComponent(document.chat_form.token.value)); $socket.on("error",getErrorMessage); $socket.on("send roominfo",sendRoomInfoListerner); + $socket.on("send romcount",sendRomCountListerner); $socket.on("connect",function(){ $socket.on("req pastlog",pastLogEventListerner); $socket.on("req msg",getMessageEventListerner); @@ -56,24 +60,41 @@ $(document).ready(function(){ }); }); +function sendRomCountListerner(count) +{ + $romcount = count; + createNameList(); +} + function sendRoomInfoListerner(info) { $roominfo = info; - if(info.type == 0) - { - $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value}); - getCurretLog(); - }else if(info.type == 1){ + var logflag = true; + var msg = ""; + if(info.type == 1){ if(info.IsOwned) - { - $("#enter_message").append($free_password2); - }else{ - $("#enter_message").append($free_password1); - } + msg = $free_password2; + else + msg = $free_password1; + logflag = false; }else if(info.type == 2){ - $("#enter_message").append($fixed_password); + msg = $fixed_password; + logflag = false; }else if(info.type == 3){ - $("#enter_message").append($hidden_log_to_rom); + msg = $hidden_log_to_rom; + logflag = false; + } + if(info.admin) + { + logflag = true; + msg += $adminmsg; + } + if(msg != "") + $("#enter_message").append(msg); + if(logflag) + { + $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value}); + getCurretLog(); } } @@ -128,7 +149,7 @@ function openPastlogEventListener() function pastLogEventListerner(msg) { - if(IsRomMode() && $roominfo.type != 0) + if(IsRomMode() && $roominfo.type != 0 && $roominfo.admin == false) return; for(var i = 0; i < msg.length; i++) ParseMessage(msg[i]); @@ -137,7 +158,7 @@ function pastLogEventListerner(msg) function getMessageEventListerner(msg) { - if(IsRomMode() && $roominfo.type != 0) + if(IsRomMode() && $roominfo.type != 0 && $roominfo.admin == false) return; ParseMessage(msg); createNameList(); @@ -155,34 +176,40 @@ function ParseMessage(msg) if(childtag == null) return; + if(typeof(childtag) == "string") + childtag = $("").append(childtag); - var ptag = $("

"); + var trtag = $(""); + var namepart,msgpart; var color = $system_msg_color; + var mailto = ""; var date = new Date(Date.parse(msg.date)); if(msg.name != $system_name) { color = $names[msg.name].color; $names[msg.name].time = date.getTime(); - var atag = $("") + namepart = $("") .attr("href",GetNameLink(msg.name)) .css("color",color) .text(util.htmlspecialchars(msg.name)); - ptag.append(atag); }else{ - ptag.append(msg.name); + namepart = $("").append(msg.name); } - ptag.append(":"); - ptag.append(childtag); - ptag.append("(" + $dateFormat.format(date) +")"); + if(msg.ip != "") + namepart.append("@" + msg.ip); + trtag.append($("").append(namepart)); - ptag.css("color",color); + msgpart = childtag + .append("(" + $dateFormat.format(date) +")") + .css("color",color); + trtag.append($("").append(msgpart)); if($messageTag == null) $messageTag = $("#message"); - $messageTag.prepend(ptag); + $messageTag.prepend(trtag); } function GetNameLink(name) @@ -198,6 +225,7 @@ function createNameList() var date = new Date(); $("#namelist").empty(); $("#namelist").append("

"); + $("#namelist > ul").append($("
  • ").append(sprintf($romcount_msg,$romcount))); for(var name in $names) { var diff = date.getTime() - $names[name].time; @@ -239,10 +267,12 @@ function quitEventListener(){ $("#enter_frame").css("display","block"); $("#chat_frame").css("display","none"); - if($roominfo.type != 0) + if($roominfo.type != 0 && $roominfo.admin == false) { $("#message").empty(); $("#namelist").empty(); + $names = {}; + createNameList(); } else $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value}); @@ -256,7 +286,7 @@ function sidEventListener(){ }; msg.message = cmd.parse(msg); - if(msg.message != null) + if(msg.message != null && msg.message != "") $socket.json.emit("send msg",msg); document.chat_form.message.value ="";