summaryrefslogtreecommitdiff
path: root/.c9revisions/view/poc/js/chat.js.c9save
blob: 46a1e46708df60f7a0f4b3841488e75d4218b90a (plain)
1
2
3
4
5
{"ts":1377122027957,"silentsave":true,"restoring":false,"patch":[[]],"length":0}
{"contributors":[],"silentsave":false,"ts":1377122042341,"patch":[[{"diffs":[[1,"//Chat Class\nvar Chat=function(){\n    function joinRoom(){\n        var room=document.getElementById(\n            'room-name'\n        ).value;\n        \n        if(socket.room)\n            leaveRoom();\n        \n        socket.room=room;\n        socket.emit(\n            'room.join',\n            {\n                room:socket.room\n            }\n        );\n        \n        document.getElementById('user-current-room').innerHTML=socket.room;\n        var join=document.getElementById('modal-join');\n        join.style.opacity=0;\n        join.style.zIndex=0;\n        document.getElementById('chat-primary').style.opacity=1;\n        document.getElementById('playlist-area').style.opacity=1;\n        document.querySelector('main').style.zIndex=5\n    }\n    \n    function leaveRoom(){\n        socket.emit(\n            'room.leave',\n            {\n                room:socket.room\n            }\n        );\n        \n        document.getElementById('user-current-room').innerHTML='nowhere';\n    }\n    \n    function setHandle(e){\n        if (webkitNotifications.checkPermission() != 0) {\n            webkitNotifications.requestPermission();\n        }\n        \n        socket.handle=document.getElementById(\n            'user-handle'\n        ).value\n        \n        socket.emit(\n            'set.handle',\n            {\n                handle:socket.handle\n            }\n        )\n        \n        document.getElementById('user-current-handle').innerHTML=socket.handle;\n        var handle=document.getElementById('modal-handle');\n        handle.style.opacity=0;\n        handle.style.zIndex=0;\n        var join=document.getElementById('modal-join');\n        join.style.opacity=1;\n        join.style.zIndex=5;\n    }\n    \n    function fromRoom(data){\n        var box=document.getElementById(\n            'chat-primary-window'\n        );\n        box.innerHTML+='<li><p>'+\n            data.handle+':<pre>'+\n            data.msg+\n        '</pre></p></li>';\n        \n        box.scrollTop=box.scrollHeight;\n        //should not scroll down if user is not at the bottom.\n    }\n    \n    function toRoom(){\n        if(!socket.room)\n            return;\n            \n        var input=document.getElementById(\n            'chat-primary-input'\n        );\n        var data={\n            msg:input.value\n        }\n        input.value='';\n        socket.emit(\n            'room.chat',\n            data\n        );\n        \n        data.handle=socket.handle;\n        fromRoom(data);\n    }\n    \n    function fromUser(data){\n        //show private message\n    }\n    \n    function toUser(){\n        //send private message\n    }\n    \n    function userOnline(data){\n        var notification=webkitNotifications.createNotification(\n            '', \n            data.handle+' is Online', \n            data.handle+' has just come online on the server'\n        );\n        notification.show();\n        (\n            function(){\n                setTimeout(\n                    function() {\n                        notification.close();\n                    }, \n                    1000\n                );\n            }\n        )(notification)\n    }\n    \n    return {\n        room    : {\n            join    : joinRoom,\n            leave   : leaveRoom,\n            chat    : toRoom\n        },\n        user    : {\n            chat:toUser\n        },\n        set     : {\n            handle:setHandle\n        },\n        on      : {\n            room: {\n                chat:fromRoom\n            },\n            user: {\n                chat    : fromUser,\n                online  : userOnline\n            }\n        }\n    };\n}\n\n\n//config\nvar conf={\n    remote:{\n        base    : 'http://chaos-audio-platform.riaevangelist.c9.io',\n        socket  : '',\n        port    : ':80'\n    }\n};\n\n\n\n//begin chat app code\n\nvar socket = io.connect(\n    [\n        conf.remote.base,\n        conf.remote.socket,\n        conf.remote.port\n    ].join('')\n);\n\n\nvar chat=new Chat();\n\nfunction init(){\n    var setHandle   = document.getElementById('set-handle'),\n        roomJoin    = document.getElementById('room-join'),\n        chatPost    = document.getElementById('chat-primary-post');\n        \n    setHandle.addEventListener(\n        'click',\n        chat.set.handle\n    );\n    \n    roomJoin.addEventListener(\n        'click',\n        chat.room.join\n    );\n    \n    chatPost.addEventListener(\n        'click',\n        chat.room.chat\n    );\n    \n    socket.on(\n        'room.chat',\n        chat.on.room.chat\n    )\n    \n    socket.on(\n        'online',\n        chat.on.user.online\n    )\n    \n    //NEED to add private chatting functionality and UI\n}\n\nwindow.addEventListener(\n    'load',\n    init\n);"]],"start1":0,"start2":0,"length1":0,"length2":4627}]],"length":4627,"saved":false}
{"contributors":[],"silentsave":false,"ts":1377123653990,"patch":[[{"diffs":[[0,"\n    )\n    \n"],[1,"    socket.on(\n        'connect',\n        chat.on.connect\n    )\n    \n"],[0,"    //NEED t"]],"start1":4508,"start2":4508,"length1":24,"length2":93}]],"length":4696,"saved":false}
{"ts":1377123704978,"patch":[[{"diffs":[[0,"    room"],[1,"    "],[0,": {\n"],[-1,""],[0,"        "]],"start1":3389,"start2":3389,"length1":20,"length2":24},{"diffs":[[0,"    user"],[1,"    "],[0,": {\n    "]],"start1":3458,"start2":3458,"length1":16,"length2":20},{"diffs":[[0," userOnline\n"],[-1,""],[0,"            "]],"start1":3535,"start2":3535,"length1":24,"length2":24},{"diffs":[[0,"ne\n            }"],[1,",\n            connect : reConnect"],[0,"\n        }\n    }"]],"start1":3544,"start2":3544,"length1":32,"length2":65}]],"length":4737,"saved":false}
{"ts":1377123825814,"patch":[[{"diffs":[[0,"\n    }\n    \n"],[1,"    function reConnect(){\n        if(socket.handle)\n            socket.emit(\n                'set.handle',\n                {\n                    handle:socket.handle\n                }\n            );\n        \n        if(socket.room)\n            socket.emit(\n                'room.join',\n                {\n                    room:socket.room\n                }\n            );\n    }\n    \n"],[0,"    return {"]],"start1":3096,"start2":3096,"length1":24,"length2":409}]],"length":5122,"saved":false}