OSDN Git Service

発言の行頭をそろえるようした
[webchat/WebChat.git] / public / scripts / chatclient.js
index be409a4..774d68c 100644 (file)
@@ -14,7 +14,9 @@ $invaild_name_message = "名前を空欄にすることはできません";
 $free_password1 = "最初に入室する人が自由にパスワードを設定できます";  //自由パスワードメッセージ1\r
 $free_password2 = "この部屋は使用されています。パスワードを入力してください";      //自由パスワードメッセージ2\r
 $fixed_password = "この部屋にはパスワードが設定されています";      //固定パスワードルーム\r
-$hidden_log_to_rom = "この部屋ではROMできないようになっています";\r
+$hidden_log_to_rom = "この部屋ではROMできないようになっています";   //ROM禁止ルーム\r
+$adminmsg = "(管理モード)";       //管理モード\r
+$romcount_msg = "ROM(%d人)"   //ROMカウント\r
 \r
 //ここから先は変更しないでください\r
 $prefix_filelist = "!";\r
@@ -22,6 +24,7 @@ $socket = new Object();
 $names = {};\r
 $roominfo = {};\r
 $dateFormat = new DateFormat("yyyy/MM/dd HH:mm:ss");\r
+$romcount = 0;\r
 //ここまで\r
 \r
 $(document).ready(function(){\r
@@ -49,6 +52,7 @@ $(document).ready(function(){
        $socket = io.connect(location.hostname  + "/" + document.chat_form.rno.value + "?token="+ encodeURIComponent(document.chat_form.token.value));\r
        $socket.on("error",getErrorMessage);\r
        $socket.on("send roominfo",sendRoomInfoListerner);\r
+       $socket.on("send romcount",sendRomCountListerner);\r
        $socket.on("connect",function(){\r
                $socket.on("req pastlog",pastLogEventListerner);\r
                $socket.on("req msg",getMessageEventListerner);\r
@@ -56,24 +60,41 @@ $(document).ready(function(){
        });\r
 });\r
 \r
+function sendRomCountListerner(count)\r
+{\r
+       $romcount = count;\r
+       createNameList();\r
+}\r
+\r
 function sendRoomInfoListerner(info)\r
 {\r
        $roominfo = info;\r
-       if(info.type == 0)\r
-       {\r
-               $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value});\r
-               getCurretLog();\r
-       }else if(info.type == 1){\r
+       var logflag = true;\r
+       var msg = "";\r
+       if(info.type == 1){\r
                if(info.IsOwned)\r
-               {\r
-                       $("#enter_message").append($free_password2);\r
-               }else{\r
-                       $("#enter_message").append($free_password1);\r
-               }\r
+                       msg = $free_password2;\r
+               else\r
+                       msg = $free_password1;\r
+               logflag = false;\r
        }else if(info.type == 2){\r
-               $("#enter_message").append($fixed_password);\r
+               msg = $fixed_password;\r
+               logflag = false;\r
        }else if(info.type == 3){\r
-               $("#enter_message").append($hidden_log_to_rom);\r
+               msg = $hidden_log_to_rom;\r
+               logflag = false;\r
+       }\r
+       if(info.admin)\r
+       {\r
+               logflag = true;\r
+               msg += $adminmsg;\r
+       }\r
+       if(msg != "")\r
+               $("#enter_message").append(msg);\r
+       if(logflag)\r
+       {\r
+               $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value});\r
+               getCurretLog();\r
        }\r
 }\r
 \r
@@ -128,7 +149,7 @@ function openPastlogEventListener()
 \r
 function pastLogEventListerner(msg)\r
 {\r
-       if(IsRomMode() && $roominfo.type != 0)\r
+       if(IsRomMode() && $roominfo.type != 0 && $roominfo.admin == false)\r
                return;\r
        for(var i = 0; i < msg.length; i++)\r
                ParseMessage(msg[i]);\r
@@ -137,7 +158,7 @@ function pastLogEventListerner(msg)
 \r
 function getMessageEventListerner(msg)\r
 {\r
-       if(IsRomMode() && $roominfo.type != 0)\r
+       if(IsRomMode() && $roominfo.type != 0 && $roominfo.admin == false)\r
                return;\r
        ParseMessage(msg);\r
        createNameList();\r
@@ -155,34 +176,40 @@ function ParseMessage(msg)
 \r
        if(childtag == null)\r
                return;\r
+       if(typeof(childtag) == "string")\r
+               childtag = $("<span/>").append(childtag);\r
 \r
-       var ptag = $("<p/>");\r
+       var trtag = $("<tr/>");\r
+       var namepart,msgpart;\r
 \r
        var color = $system_msg_color;\r
+\r
        var mailto = "";\r
        var date = new Date(Date.parse(msg.date));\r
        if(msg.name != $system_name)\r
        {\r
                color = $names[msg.name].color;\r
                $names[msg.name].time = date.getTime();\r
-               var atag = $("<a/>")\r
+               namepart = $("<a/>")\r
                        .attr("href",GetNameLink(msg.name))\r
                        .css("color",color)\r
                        .text(util.htmlspecialchars(msg.name));\r
-               ptag.append(atag);\r
        }else{\r
-               ptag.append(msg.name);\r
+               namepart = $("<span/>").append(msg.name);\r
        }\r
-       ptag.append(":");\r
-       ptag.append(childtag);\r
-       ptag.append("(" + $dateFormat.format(date) +")");\r
+       if(msg.ip != "")\r
+               namepart.append("@" + msg.ip);\r
+       trtag.append($("<td/>").append(namepart));\r
 \r
-       ptag.css("color",color);\r
+       msgpart = childtag\r
+               .append("(" + $dateFormat.format(date) +")")\r
+               .css("color",color);\r
+       trtag.append($("<td/>").append(msgpart));\r
 \r
        if($messageTag == null)\r
                $messageTag = $("#message");\r
 \r
-       $messageTag.prepend(ptag);\r
+       $messageTag.prepend(trtag);\r
 }\r
 \r
 function GetNameLink(name)\r
@@ -198,6 +225,7 @@ function createNameList()
        var date = new Date();\r
        $("#namelist").empty();\r
        $("#namelist").append("<ul></ul>");\r
+       $("#namelist > ul").append($("<li/>").append(sprintf($romcount_msg,$romcount)));\r
        for(var name in $names)\r
        {\r
                var diff = date.getTime() - $names[name].time;\r
@@ -239,10 +267,12 @@ function quitEventListener(){
        $("#enter_frame").css("display","block");\r
        $("#chat_frame").css("display","none");\r
 \r
-       if($roominfo.type != 0)\r
+       if($roominfo.type != 0 && $roominfo.admin == false)\r
        {\r
                $("#message").empty();\r
                $("#namelist").empty();\r
+               $names = {};\r
+               createNameList();\r
        }\r
        else\r
                $socket.json.emit("get pastLogList",{rno:document.chat_form.rno.value});\r
@@ -256,7 +286,7 @@ function sidEventListener(){
        };      \r
        msg.message = cmd.parse(msg);\r
 \r
-       if(msg.message != null)\r
+       if(msg.message != null && msg.message != "")\r
                $socket.json.emit("send msg",msg);\r
 \r
        document.chat_form.message.value ="";\r