From b0dfe985f2cc54d0388296e988e2a2c058ab87f7 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Sun, 15 Apr 2012 23:54:34 +0200 Subject: [PATCH] added accounts and simple stats tracking --- README.md | 8 +- config.js | 4 +- package.json | 6 +- public/static/css/bootstrap.min.css | 161 ++++++++ public/static/css/style.css | 145 ++++++-- public/static/images/sprites.png | Bin 6037 -> 10180 bytes public/static/images/wheel.png | Bin 1017 -> 0 bytes public/static/js/bootstrap.min.js | 4 +- public/static/js/home.js | 3 - public/static/js/room.js | 82 +++-- server.js | 551 +++++++++++++++++++++++----- views/header.jade | 43 ++- views/index.jade | 44 ++- views/login.jade | 78 ++++ views/room.jade | 64 ++-- views/signup.jade | 117 ++++++ views/user.jade | 89 +++++ views/uv.jade | 11 + 18 files changed, 1188 insertions(+), 222 deletions(-) delete mode 100644 public/static/images/wheel.png create mode 100644 views/login.jade create mode 100644 views/signup.jade create mode 100644 views/user.jade create mode 100644 views/uv.jade diff --git a/README.md b/README.md index 709377f..11a9e71 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Binb # +# binb # -Binb is a simple, realtime, multiplayer, competitive music listening game. +binb is a simple, realtime, multiplayer, competitive music listening game. To play the game: [http://binb.nodejitsu.com](http://binb.nodejitsu.com) @@ -8,7 +8,7 @@ To play the game: [http://binb.nodejitsu.com](http://binb.nodejitsu.com) Ideal setup is a browser with websocket support and able to decode .m4a format natively. -For this reason Binb is optimized for Google Chrome but also works in all major browsers (if version is recently enough). +For this reason binb is optimized for Google Chrome but also works in all major browsers (if version is recently enough). ## Shout-Outs ## @@ -21,4 +21,4 @@ Have a bug? Please create an [issue](https://github.com/lpinca/binb/issues) here ## Copyright and license ## -Binb is released under the MIT license. See LICENSE for details. +binb is released under the MIT license. See LICENSE for details. diff --git a/config.js b/config.js index f967a48..07c720b 100644 --- a/config.js +++ b/config.js @@ -2,7 +2,9 @@ exports.configure = function() { this.port = 80; - this.redisurl = ''; + this.songsdburl = ''; + this.usersdburl = ''; + this.sessionsecret = ''; this.songsinarun = 15; this.threshold = 2; // Edit distance threshold this.rooms = ["pop", "rock", "mixed"]; diff --git a/package.json b/package.json index 11125da..fc21ecd 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,11 @@ "name": "binb", "dependencies": { "async": "latest", + "canvas": "latest", + "connect": "latest", + "connect-redis": "latest", "express": "latest", + "express-form": "latest", "jade": "latest", "redis-url": "latest", "socket.io": "latest" @@ -14,5 +18,5 @@ "engines": { "node": "0.6.x" }, - "version": "0.2.0-14" + "version": "0.3.0-1" } \ No newline at end of file diff --git a/public/static/css/bootstrap.min.css b/public/static/css/bootstrap.min.css index ea97c00..7429196 100644 --- a/public/static/css/bootstrap.min.css +++ b/public/static/css/bootstrap.min.css @@ -140,6 +140,45 @@ cite{font-style:normal;} .label-info:hover{background-color:#2d6987;} .label-inverse{background-color:#333333;} .label-inverse:hover{background-color:#1a1a1a;} +table{max-width:100%;border-collapse:collapse;border-spacing:0;background-color:transparent;} +.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;vertical-align:top;border-top:1px solid #dddddd;} +.table th{font-weight:bold;} +.table thead th{vertical-align:bottom;} +.table colgroup+thead tr:first-child th,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child th,.table thead:first-child tr:first-child td{border-top:0;} +.table tbody+tbody{border-top:2px solid #dddddd;} +.table-condensed th,.table-condensed td{padding:4px 5px;} +.table-bordered{border:1px solid #dddddd;border-left:0;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th,.table-bordered td{border-left:1px solid #dddddd;} +.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;} +.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;} +.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;} +.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;} +.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;} +.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} +.table tbody tr:hover td,.table tbody tr:hover th{background-color:#f5f5f5;} +table .span1{float:none;width:24px;margin-left:0;} +table .span2{float:none;width:84px;margin-left:0;} +table .span3{float:none;width:144px;margin-left:0;} +table .span4{float:none;width:204px;margin-left:0;} +table .span5{float:none;width:264px;margin-left:0;} +table .span6{float:none;width:324px;margin-left:0;} +table .span7{float:none;width:384px;margin-left:0;} +table .span8{float:none;width:444px;margin-left:0;} +table .span9{float:none;width:504px;margin-left:0;} +table .span10{float:none;width:564px;margin-left:0;} +table .span11{float:none;width:624px;margin-left:0;} +table .span12{float:none;width:684px;margin-left:0;} +table .span13{float:none;width:744px;margin-left:0;} +table .span14{float:none;width:804px;margin-left:0;} +table .span15{float:none;width:864px;margin-left:0;} +table .span16{float:none;width:924px;margin-left:0;} +table .span17{float:none;width:984px;margin-left:0;} +table .span18{float:none;width:1044px;margin-left:0;} +table .span19{float:none;width:1104px;margin-left:0;} +table .span20{float:none;width:1164px;margin-left:0;} +table .span21{float:none;width:1224px;margin-left:0;} +table .span22{float:none;width:1284px;margin-left:0;} +table .span23{float:none;width:1344px;margin-left:0;} +table .span24{float:none;width:1404px;margin-left:0;} form{margin:0 0 18px;} fieldset{padding:0;margin:0;border:0;} legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;}legend small{font-size:13.5px;color:#999999;} @@ -414,6 +453,110 @@ button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding- .btn-small .caret{margin-top:6px;} .btn-large .caret{margin-top:6px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} .btn-primary .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret,.btn-inverse .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:0.75;filter:alpha(opacity=75);} +.nav{margin-left:0;margin-bottom:18px;list-style:none;} +.nav>li>a{display:block;} +.nav>li>a:hover{text-decoration:none;background-color:#eeeeee;} +.nav .nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:18px;color:#999999;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);text-transform:uppercase;} +.nav li+.nav-header{margin-top:9px;} +.nav-list{padding-left:15px;padding-right:15px;margin-bottom:0;} +.nav-list>li>a,.nav-list .nav-header{margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.nav-list>li>a{padding:3px 15px;} +.nav-list>.active>a,.nav-list>.active>a:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#0088cc;} +.nav-list [class^="icon-"]{margin-right:2px;} +.nav-list .divider{height:1px;margin:8px 1px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #ffffff;*width:100%;*margin:-5px 0 5px;} +.nav-tabs,.nav-pills{*zoom:1;}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;content:"";} +.nav-tabs:after,.nav-pills:after{clear:both;} +.nav-tabs>li,.nav-pills>li{float:left;} +.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px;} +.nav-tabs{border-bottom:1px solid #ddd;} +.nav-tabs>li{margin-bottom:-1px;} +.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:18px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;} +.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#555555;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.nav-pills>li>a{padding-top:8px;padding-bottom:8px;margin-top:2px;margin-bottom:2px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;} +.nav-pills>.active>a,.nav-pills>.active>a:hover{color:#ffffff;background-color:#0088cc;} +.nav-stacked>li{float:none;} +.nav-stacked>li>a{margin-right:0;} +.nav-tabs.nav-stacked{border-bottom:0;} +.nav-tabs.nav-stacked>li>a{border:1px solid #ddd;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.nav-tabs.nav-stacked>li:first-child>a{-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;} +.nav-tabs.nav-stacked>li:last-child>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;} +.nav-tabs.nav-stacked>li>a:hover{border-color:#ddd;z-index:2;} +.nav-pills.nav-stacked>li>a{margin-bottom:3px;} +.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;} +.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;} +.nav-pills .dropdown-menu{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.nav-tabs .dropdown-toggle .caret,.nav-pills .dropdown-toggle .caret{border-top-color:#0088cc;border-bottom-color:#0088cc;margin-top:6px;} +.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#005580;border-bottom-color:#005580;} +.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#333333;border-bottom-color:#333333;} +.nav>.dropdown.active>a:hover{color:#000000;cursor:pointer;} +.nav-tabs .open .dropdown-toggle,.nav-pills .open .dropdown-toggle,.nav>.open.active>a:hover{color:#ffffff;background-color:#999999;border-color:#999999;} +.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;opacity:1;filter:alpha(opacity=100);} +.tabs-stacked .open>a:hover{border-color:#999999;} +.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";} +.tabbable:after{clear:both;} +.tab-content{display:table;width:100%;} +.tabs-below .nav-tabs,.tabs-right .nav-tabs,.tabs-left .nav-tabs{border-bottom:0;} +.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.tabs-below .nav-tabs{border-top:1px solid #ddd;} +.tabs-below .nav-tabs>li{margin-top:-1px;margin-bottom:0;} +.tabs-below .nav-tabs>li>a{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}.tabs-below .nav-tabs>li>a:hover{border-bottom-color:transparent;border-top-color:#ddd;} +.tabs-below .nav-tabs .active>a,.tabs-below .nav-tabs .active>a:hover{border-color:transparent #ddd #ddd #ddd;} +.tabs-left .nav-tabs>li,.tabs-right .nav-tabs>li{float:none;} +.tabs-left .nav-tabs>li>a,.tabs-right .nav-tabs>li>a{min-width:74px;margin-right:0;margin-bottom:3px;} +.tabs-left .nav-tabs{float:left;margin-right:19px;border-right:1px solid #ddd;} +.tabs-left .nav-tabs>li>a{margin-right:-1px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;} +.tabs-left .nav-tabs>li>a:hover{border-color:#eeeeee #dddddd #eeeeee #eeeeee;} +.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffffff;} +.tabs-right .nav-tabs{float:right;margin-left:19px;border-left:1px solid #ddd;} +.tabs-right .nav-tabs>li>a{margin-left:-1px;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;} +.tabs-right .nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #eeeeee #dddddd;} +.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffffff;} +.navbar{*position:relative;*z-index:2;overflow:visible;margin-bottom:18px;} +.navbar-inner{padding-left:20px;padding-right:20px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} +.navbar .container{width:auto;} +.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#2c2c2c;background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);filter:progid:dximagetransform.microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.075);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#222222;} +.btn-navbar:active,.btn-navbar.active{background-color:#080808 \9;} +.btn-navbar .icon-bar{display:block;width:18px;height:2px;background-color:#f5f5f5;-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);-moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);box-shadow:0 1px 0 rgba(0, 0, 0, 0.25);} +.btn-navbar .icon-bar+.icon-bar{margin-top:3px;} +.nav-collapse.collapse{height:auto;} +.navbar{color:#999999;}.navbar .brand:hover{text-decoration:none;} +.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#ffffff;} +.navbar .navbar-text{margin-bottom:0;line-height:40px;} +.navbar .btn,.navbar .btn-group{margin-top:5px;} +.navbar .btn-group .btn{margin-top:0;} +.navbar-form{margin-bottom:0;*zoom:1;}.navbar-form:before,.navbar-form:after{display:table;content:"";} +.navbar-form:after{clear:both;} +.navbar-form input,.navbar-form select,.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;} +.navbar-form input,.navbar-form select{display:inline-block;margin-bottom:0;} +.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;} +.navbar-form .input-append,.navbar-form .input-prepend{margin-top:6px;white-space:nowrap;}.navbar-form .input-append input,.navbar-form .input-prepend input{margin-top:0;} +.navbar-search{position:relative;float:left;margin-top:6px;margin-bottom:0;}.navbar-search .search-query{padding:4px 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:1;color:#ffffff;background-color:#626262;border:1px solid #151515;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.15);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.navbar-search .search-query:-moz-placeholder{color:#cccccc;} +.navbar-search .search-query::-webkit-input-placeholder{color:#cccccc;} +.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#333333;text-shadow:0 1px 0 #ffffff;background-color:#ffffff;border:0;-webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);-moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15);box-shadow:0 0 3px rgba(0, 0, 0, 0.15);outline:0;} +.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030;margin-bottom:0;} +.navbar-fixed-top .navbar-inner,.navbar-fixed-bottom .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;} +.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:940px;} +.navbar-fixed-top{top:0;} +.navbar-fixed-bottom{bottom:0;} +.navbar .nav{position:relative;left:0;display:block;float:left;margin:0 10px 0 0;} +.navbar .nav.pull-right{float:right;} +.navbar .nav>li{display:block;float:left;} +.navbar .nav>li>a{float:none;padding:10px 10px 11px;line-height:19px;color:#999999;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} +.navbar .nav>li>a:hover{background-color:transparent;color:#ffffff;text-decoration:none;} +.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#ffffff;text-decoration:none;background-color:#222222;} +.navbar .divider-vertical{height:40px;width:1px;margin:0 9px;overflow:hidden;background-color:#222222;border-right:1px solid #333333;} +.navbar .nav.pull-right{margin-left:10px;margin-right:0;} +.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;} +.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffffff;position:absolute;top:-6px;left:10px;} +.navbar-fixed-bottom .dropdown-menu:before{border-top:7px solid #ccc;border-top-color:rgba(0, 0, 0, 0.2);border-bottom:0;bottom:-7px;top:auto;} +.navbar-fixed-bottom .dropdown-menu:after{border-top:6px solid #ffffff;border-bottom:0;bottom:-6px;top:auto;} +.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;} +.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);} +.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;} +.navbar .nav .active>.dropdown-toggle:hover{color:#ffffff;} +.navbar .nav.pull-right .dropdown-menu,.navbar .nav .dropdown-menu.pull-right{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before,.navbar .nav .dropdown-menu.pull-right:before{left:auto;right:12px;} +.navbar .nav.pull-right .dropdown-menu:after,.navbar .nav .dropdown-menu.pull-right:after{left:auto;right:13px;} .thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";} .thumbnails:after{clear:both;} .thumbnails>li{float:left;margin:0 0 18px 20px;} @@ -421,6 +564,15 @@ button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding- a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);-moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);box-shadow:0 1px 4px rgba(0, 105, 214, 0.25);} .thumbnail>img{display:block;max-width:100%;margin-left:auto;margin-right:auto;} .thumbnail .caption{padding:9px;} +.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#fcf8e3;border:1px solid #fbeed5;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;color:#c09853;} +.alert-heading{color:inherit;} +.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;} +.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;} +.alert-danger,.alert-error{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;} +.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;} +.alert-block{padding-top:14px;padding-bottom:14px;} +.alert-block>p,.alert-block>ul{margin-bottom:0;} +.alert-block p+p{margin-top:5px;} .modal-open .dropdown-menu{z-index:2050;} .modal-open .dropdown.open{*z-index:2050;} .modal-open .popover{z-index:2060;} @@ -452,5 +604,14 @@ a.thumbnail:hover{border-color:#0088cc;-webkit-box-shadow:0 1px 4px rgba(0, 105, .dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px solid #000000;content:"\2191";} .dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;} .typeahead{margin-top:2px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.well-large{padding:24px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.well-small{padding:9px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#000000;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.invisible{visibility:hidden;} .fade{-webkit-transition:opacity 0.15s linear;-moz-transition:opacity 0.15s linear;-ms-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear;opacity:0;}.fade.in{opacity:1;} .collapse{-webkit-transition:height 0.35s ease;-moz-transition:height 0.35s ease;-ms-transition:height 0.35s ease;-o-transition:height 0.35s ease;transition:height 0.35s ease;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;} diff --git a/public/static/css/style.css b/public/static/css/style.css index 435573f..e95c08f 100644 --- a/public/static/css/style.css +++ b/public/static/css/style.css @@ -1,9 +1,48 @@ body { background: url('/static/images/bg.jpg') repeat-x scroll 0 0 #F5F6F7; + padding-top:45px; } section { margin-top:30px; } +.motto { + color: #999999; + font-size:13px; + text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); +} +.navbar .navbar-text { + line-height:19px; + padding: 10px 10px 11px; +} +.form-horizontal .control-group { + margin-bottom: 10px; +} +.form-horizontal .control-label { + width: 100px; +} +.form-horizontal .controls { + margin-left: 120px; +} +form .clearfix { + margin-bottom: 10px; +} +.well { + background-color: #DDDDDD; + margin-bottom: 18px; +} +.alert { + margin-bottom: 9px; +} +#signup-button { + margin-left: 120px; + margin-top: 9px; +} +#captcha-input { + width: 126px; +} +#captcha { + margin-right:20px; +} .page-header { padding: 0; margin: 0 0 17px 0; @@ -26,7 +65,7 @@ input { .modal-footer { text-align: left; } -#join { +.modal-footer .btn { float: right; } .thumbnails { @@ -48,6 +87,34 @@ input { width: 70px; height: 70px; } +.profile { + font-size: 24px; + font-weight: bold; + line-height: 32px; +} +.profile .img { + width: 32px; + height: 32px; + float: left; + margin-right: 5px; + background: url('/static/images/sprites.png') no-repeat 0px -56px; +} +.stats { + border: 1px solid #ccc; + border-left: 0; + margin-top:8px; +} +.stats td { + border-left: 1px solid #ccc; + border-top: 1px solid #ccc; + vertical-align: middle; +} +.stats tbody tr:nth-child(odd) td { + background-color: #ddd; +} +.stats tbody tr:hover td { + background-color: #dadada; +} .room { height: 25px; line-height: 25px; @@ -61,10 +128,6 @@ input { text-align: center; text-transform: capitalize; } -.btn-group { - float: right; - margin: 21px 10px 0 0; -} .dropdown-menu { min-width: 140px; } @@ -77,12 +140,32 @@ input { .matched { color: #f3a22f; } -.gameover { - padding-left:32px; - height:32px; - line-height:32px; +.cups, .medals { + margin-left: auto; + margin-right: auto; } -.gameover .name { +.cups { + width: 16px; + height: 16px; +} +.medals { + width: 32px; + height: 32px; +} +.rank1 { + background: url('/static/images/sprites.png') no-repeat -32px -16px; +} +.rank2 { + background: url('/static/images/sprites.png') no-repeat -32px -48px; +} +.rank3 { + background: url('/static/images/sprites.png') no-repeat -32px -80px; +} +.scoreboard th, .scoreboard td { + vertical-align: middle; + text-align: center; +} +.scoreboard .name { font-weight:bold; } .relative { @@ -113,7 +196,7 @@ input { width: 24px; height:24px; top: 49px; - background: url('/static/images/wheel.png') no-repeat 0 0; + background: url('/static/images/sprites.png') no-repeat 0px -32px; } #wheel-left { left:51px; @@ -282,7 +365,12 @@ input { text-align: center; margin-bottom:18px; } +#users-wrapper { + margin-left: 120px; + width: 300px; +} #users { + padding-left:20px; margin-bottom: 90px; max-height: 380px; overflow: auto; @@ -298,17 +386,30 @@ input { } #users .private { display: none; + font-size: 9.75px; + padding: 2px 4px; + position: absolute; + left: -19px; } #users .private, #users .name, .gameover .name { margin-right: 4px; } -#users .label { - font-size:9.75px; - padding: 2px 4px; - line-height: 18px; - vertical-align: top; +.registered, #users .round-rank { + display: inline-block; + vertical-align: middle; +} +.registered, .round-rank { + height: 16px; + width: 16px; + margin-right:2px; } -#users .name { +.registered { + background: url('/static/images/sprites.png') no-repeat 0px -16px; +} +.registered:hover { + background: url('/static/images/sprites.png') no-repeat -16px -16px; +} +#users .name, .registered { cursor: pointer; } #users .you { @@ -317,11 +418,6 @@ input { #users .points, #users .round-points { margin-right: 10px; } -.round-rank { - height:16px; - width:16px; - margin-right:2px; -} .stand1 { background: url('/static/images/sprites.png') no-repeat 0 0; } @@ -331,12 +427,9 @@ input { .stand3 { background: url('/static/images/sprites.png') no-repeat -32px 0; } -#users .round-rank { - display:inline-block; - vertical-align: middle; -} #users .guess-time { font-size: 11px; + line-height: 1px; } #toggle-chat { position: absolute; diff --git a/public/static/images/sprites.png b/public/static/images/sprites.png index e8b8b2df73bc2ceebbf61b3bc1de0949af7d8d39..45b1465515dabe2064dd748389b7d081ef5df509 100644 GIT binary patch delta 10171 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 WV0;`O_J@Iifx*+&&t;ucLK6TU+8!kU delta 5995 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 diff --git a/public/static/images/wheel.png b/public/static/images/wheel.png deleted file mode 100644 index 50d4cb7993d32eb5e1ae0319ba3c9ffafdbf8654..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1017 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo7>k44ofy`glX=O&z`&N| z?e4FMGa;&FWKG=HDuP>G}Gt8*7G>M1qSgvCprwW z-sb<*J?HtZy!f2@L(PJ7t6K%)JST-POlOE;aA3H^ki;OS>KXOr_urG7O>&m=hKBCF za^uDi$%g3A(9m^_jg2wY)xZ5TM5<&Dd=?fKzJLAdRm(>oE0$-@nr~)m8k>`w``1#a z^T`MQf^+v1duA?PytwYL0h7xVb){SP@9#e@p?pjta@tqrzl~G!>?n_d8?O`^j$9u zTTYR54LrxVLx;KI=F5_K`r8{XzpN2+*vjL;G(mqmqhROa{9W0z(l*{<+ZnTtLqX4b z(h_&2i6J|A7hQaj%&`9y1Jl8T3%m^M?CjYLoBltJloRPbTFSt|!eq+8wC&fgUw8NJ z-McbGt28|=ZQ0qkW%aMicF*=QjEIQXVQgntchsO~z4O8gx2L7@-d=PuW82Q1KSN`$ z-)BuY{j_N2xpU`c34Qq-930$NV;3*m>lWRSQI?r`Qk}U$;88MzrE6fGzn@=~SIxro zXV0F+EU%G0QqVMIrtXXBDfm0mH%fC13oc3f0 zXGo~7{#~aw*)wC-w>!6P-I~qd#MgfK@#mjH_1p*k7i`*W XI8XXg^|7-I3=9mOu6{1-oD!M<4TH^K diff --git a/public/static/js/bootstrap.min.js b/public/static/js/bootstrap.min.js index ca2c250..a2849c4 100644 --- a/public/static/js/bootstrap.min.js +++ b/public/static/js/bootstrap.min.js @@ -1,7 +1,7 @@ /** * Bootstrap.js by @fat & @mdo -* plugins: bootstrap-transition.js, bootstrap-modal.js, bootstrap-dropdown.js +* plugins: bootstrap-transition.js, bootstrap-modal.js, bootstrap-dropdown.js, bootstrap-alert.js * Copyright 2012 Twitter, Inc. * http://www.apache.org/licenses/LICENSE-2.0.txt */ -!function(a){a(function(){a.support.transition=function(){var b=document.body||document.documentElement,c=b.style,d=c.transition!==undefined||c.WebkitTransition!==undefined||c.MozTransition!==undefined||c.MsTransition!==undefined||c.OTransition!==undefined;return d&&{end:function(){var b="TransitionEnd";return a.browser.webkit?b="webkitTransitionEnd":a.browser.mozilla?b="transitionend":a.browser.opera&&(b="oTransitionEnd"),b}()}}()})}(window.jQuery),!function(a){function c(){var b=this,c=setTimeout(function(){b.$element.off(a.support.transition.end),d.call(b)},500);this.$element.one(a.support.transition.end,function(){clearTimeout(c),d.call(b)})}function d(a){this.$element.hide().trigger("hidden"),e.call(this)}function e(b){var c=this,d=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var e=a.support.transition&&d;this.$backdrop=a('