Commit 94c38fe1 authored by 神楽坂玲奈's avatar 神楽坂玲奈

login

parent d01d0db1
login = (username, password)->
$('#username').html username
$('#login').hide()
$('#userinfo').show()
$('#need_login').hide()
$('#join').show()
$('#logout').click ->
$.cookie('username', '')
$.cookie('password', '')
window.location.reload()
$('#login').submit ->
$.cookie('username', @username.value)
$.cookie('password', @password.value)
login($.cookie('username'), $.cookie('password'))
false
matched = window.location.href.match /\/(?:(.*?)(?::(.*?))?@)?([\d\.]+)\:(\d+)(?:\/(.*))?/ matched = window.location.href.match /\/(?:(.*?)(?::(.*?))?@)?([\d\.]+)\:(\d+)(?:\/(.*))?/
if matched == null if matched == null
alert "解析房间信息失败" alert "解析房间信息失败"
...@@ -31,5 +48,12 @@ $('#server_ip').html room.server.ip ...@@ -31,5 +48,12 @@ $('#server_ip').html room.server.ip
$('#server_port').html room.server.port $('#server_port').html room.server.port
$('#server_auth').html room.server.auth $('#server_auth').html room.server.auth
if room.server.auth and !($.cookie('username') && $.cookie('password'))
$('#join').hide()
$('#need_login').show()
if $.cookie('username') && $.cookie('password')
login($.cookie('username'), $.cookie('password'))
$('#join').click -> $('#join').click ->
mycard.join room.server.ip,room.server.port,mycard.room_name(room.name, room.password) mycard.join room.server.ip,room.server.port,mycard.room_name(room.name, room.password), $.cookie('username'), ($.cookie('password') if room.server.auth)
\ No newline at end of file \ No newline at end of file
// Generated by CoffeeScript 1.4.0 // Generated by CoffeeScript 1.4.0
(function() { (function() {
var matched, room, url; var login, matched, room, url;
login = function(username, password) {
$('#username').html(username);
$('#login').hide();
$('#userinfo').show();
$('#need_login').hide();
return $('#join').show();
};
$('#logout').click(function() {
$.cookie('username', '');
$.cookie('password', '');
return window.location.reload();
});
$('#login').submit(function() {
$.cookie('username', this.username.value);
$.cookie('password', this.password.value);
login($.cookie('username'), $.cookie('password'));
return false;
});
matched = window.location.href.match(/\/(?:(.*?)(?::(.*?))?@)?([\d\.]+)\:(\d+)(?:\/(.*))?/); matched = window.location.href.match(/\/(?:(.*?)(?::(.*?))?@)?([\d\.]+)\:(\d+)(?:\/(.*))?/);
...@@ -42,8 +63,17 @@ ...@@ -42,8 +63,17 @@
$('#server_auth').html(room.server.auth); $('#server_auth').html(room.server.auth);
if (room.server.auth && !($.cookie('username') && $.cookie('password'))) {
$('#join').hide();
$('#need_login').show();
}
if ($.cookie('username') && $.cookie('password')) {
login($.cookie('username'), $.cookie('password'));
}
$('#join').click(function() { $('#join').click(function() {
return mycard.join(room.server.ip, room.server.port, mycard.room_name(room.name, room.password)); return mycard.join(room.server.ip, room.server.port, mycard.room_name(room.name, room.password), $.cookie('username'), (room.server.auth ? $.cookie('password') : void 0));
}); });
}).call(this); }).call(this);
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh_cn"> <html lang="zh_cn">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>Mycard - 加入房间</title> <title>Mycard - 加入房间</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
...@@ -24,11 +24,11 @@ ...@@ -24,11 +24,11 @@
<!--[if IE 6]> <!--[if IE 6]>
<link href="/vendor/stylesheets/bootstrap/ie6.min.css" rel="stylesheet"> <link href="/vendor/stylesheets/bootstrap/ie6.min.css" rel="stylesheet">
<![endif]--> <![endif]-->
</head> </head>
<body> <body>
<div class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar navbar-inverse navbar-fixed-top">
<div class="navbar-inner"> <div class="navbar-inner">
<div class="container"> <div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
...@@ -37,6 +37,7 @@ ...@@ -37,6 +37,7 @@
<span class="icon-bar"></span> <span class="icon-bar"></span>
</a> </a>
<a class="brand" href="#">Mycard 在线大厅</a> <a class="brand" href="#">Mycard 在线大厅</a>
<div class="nav-collapse collapse"> <div class="nav-collapse collapse">
<!--<ul class="nav"> <!--<ul class="nav">
<li class="active"><a href="#">Home</a></li> <li class="active"><a href="#">Home</a></li>
...@@ -55,50 +56,71 @@ ...@@ -55,50 +56,71 @@
</ul> </ul>
</li> </li>
</ul>--> </ul>-->
<form class="navbar-form pull-right"> <form id="login" class="navbar-form pull-right">
<input class="span2" type="text" placeholder="用户名"> <input class="span2" type="text" name="username" placeholder="用户名">
<input class="span2" type="password" placeholder="密码"> <input class="span2" type="password" name="password" placeholder="密码">
<button type="submit" class="btn">登录</button> <button type="submit" class="btn">登录</button>
</form> </form>
</div><!--/.nav-collapse --> <form id="userinfo" class="navbar-form pull-right" style="display: none">
<span id="username"></span>
<a id="logout">退出</a>
</form>
</div> </div>
<!--/.nav-collapse -->
</div> </div>
</div> </div>
</div>
<div class="container"> <div class="container">
<!-- Main hero unit for a primary marketing message or call to action --> <!-- Main hero unit for a primary marketing message or call to action -->
<div class="hero-unit"> <div class="hero-unit">
<h1>加入房间</h1> <h1>加入房间</h1>
<dl id="room"> <dl id="room">
<h2>房间信息</h2> <h2>房间信息</h2>
<dt>房间名称</dt><dd id="name"></dd> <dt>房间名称</dt>
<div id="show_password_wrapper" style="display: none;"><dt>房间密码</dt><dd id="show_password"></dd></div> <dd id="name"></dd>
<div id="input_password_wrapper" style="display: none;"><dt>房间密码</dt><input id="input_password" placeholder="如果加入后只有自己,是密码错误"/></div> <div id="show_password_wrapper" style="display: none;">
<dt>房间密码</dt>
<dd id="show_password"></dd>
</div>
<div id="input_password_wrapper" style="display: none;">
<dt>房间密码</dt>
<input id="input_password" placeholder="如果加入后只有自己,是密码错误"/></div>
<h2>服务器信息</h2> <h2>服务器信息</h2>
<dt>服务器IP</dt><dd id="server_ip"></dd> <dt>服务器IP</dt>
<dt>服务器端口</dt><dd id="server_port"></dd> <dd id="server_ip"></dd>
<dt>服务器认证</dt><dd id="server_auth"></dd> <dt>服务器端口</dt>
<dd id="server_port"></dd>
<dt>服务器认证</dt>
<dd id="server_auth"></dd>
</dl> </dl>
<p><a id="join" class="btn btn-primary btn-large">加入房间</a></p> <p><h2 id="need_login" style="display:none">请戳页面右上角登录</h2><a id="join" class="btn btn-primary btn-large">加入房间</a></p>
</div> </div>
<!-- Example row of columns --> <!-- Example row of columns -->
<div class="row"> <div class="row">
<div class="span4"> <div class="span4">
<h2>注意</h2> <h2>注意</h2>
<p>需要本地安装了mycard才能自动加入房间,如果没有安装,请手动打开ygopro点联机模式填写上面的资料。</p> <p>需要本地安装了mycard才能自动加入房间,如果没有安装,请手动打开ygopro点联机模式填写上面的资料。</p>
<p><a class="btn" href="https://github.com/zh99998/mycard/wiki/%E5%AF%B9%E6%88%98:%E7%9B%B4%E6%8E%A5%E8%BF%9E%E6%8E%A5#wiki-wrapper">手动直连教程 &raquo;</a></p>
<p><a class="btn"
href="https://github.com/zh99998/mycard/wiki/%E5%AF%B9%E6%88%98:%E7%9B%B4%E6%8E%A5%E8%BF%9E%E6%8E%A5#wiki-wrapper">手动直连教程 &raquo;</a>
</p>
</div> </div>
<div class="span4"> <div class="span4">
<h2>浏览器支持</h2> <h2>浏览器支持</h2>
<p>我们推荐使用<a href="http://www.google.com/chrome">chrome浏览器</a>访问本站以达到最佳体验,如果您不方便更换浏览器,建议安装<a href="http://www.google.com/chromeframe">谷歌浏览器内嵌框架</a>
<p>我们推荐使用<a href="http://www.google.com/chrome">chrome浏览器</a>访问本站以达到最佳体验,如果您不方便更换浏览器,建议安装<a
href="http://www.google.com/chromeframe">谷歌浏览器内嵌框架</a>
在开发阶段,我们将优先支持chrome,正式版本将会支持IE8或更高,以及chrome, firefox, opera的较新版本。 在开发阶段,我们将优先支持chrome,正式版本将会支持IE8或更高,以及chrome, firefox, opera的较新版本。
</p> </p>
<!--<p><a class="btn" href="#">View details &raquo;</a></p>--> <!--<p><a class="btn" href="#">View details &raquo;</a></p>-->
</div> </div>
<div class="span4"> <div class="span4">
<h2>联系我们</h2> <h2>联系我们</h2>
<p>如果使用这个系统出现了什么问题,或者想帮助我们进行开发,请联系: <a href="mailto:zh99998@gmail.com">zh99998@gmail.com</a></p> <p>如果使用这个系统出现了什么问题,或者想帮助我们进行开发,请联系: <a href="mailto:zh99998@gmail.com">zh99998@gmail.com</a></p>
<!--<p><a class="btn" href="#">View details &raquo;</a></p>--> <!--<p><a class="btn" href="#">View details &raquo;</a></p>-->
</div> </div>
...@@ -110,35 +132,37 @@ ...@@ -110,35 +132,37 @@
<p>&copy; Mycard 2013</p> <p>&copy; Mycard 2013</p>
</footer> </footer>
</div> <!-- /container --> </div>
<!-- /container -->
<!-- Le javascript
================================================== --> <!-- Le javascript
<!-- Placed at the end of the document so the pages load faster --> ================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<!--<script src="../assets/js/jquery.js"></script>
<script src="../assets/js/bootstrap-transition.js"></script> <!--<script src="../assets/js/jquery.js"></script>
<script src="../assets/js/bootstrap-alert.js"></script> <script src="../assets/js/bootstrap-transition.js"></script>
<script src="../assets/js/bootstrap-modal.js"></script> <script src="../assets/js/bootstrap-alert.js"></script>
<script src="../assets/js/bootstrap-dropdown.js"></script> <script src="../assets/js/bootstrap-modal.js"></script>
<script src="../assets/js/bootstrap-scrollspy.js"></script> <script src="../assets/js/bootstrap-dropdown.js"></script>
<script src="../assets/js/bootstrap-tab.js"></script> <script src="../assets/js/bootstrap-scrollspy.js"></script>
<script src="../assets/js/bootstrap-tooltip.js"></script> <script src="../assets/js/bootstrap-tab.js"></script>
<script src="../assets/js/bootstrap-popover.js"></script> <script src="../assets/js/bootstrap-tooltip.js"></script>
<script src="../assets/js/bootstrap-button.js"></script> <script src="../assets/js/bootstrap-popover.js"></script>
<script src="../assets/js/bootstrap-collapse.js"></script> <script src="../assets/js/bootstrap-button.js"></script>
<script src="../assets/js/bootstrap-carousel.js"></script> <script src="../assets/js/bootstrap-collapse.js"></script>
<script src="../assets/js/bootstrap-typeahead.js"></script>--> <script src="../assets/js/bootstrap-carousel.js"></script>
<script src="/vendor/javascripts/jquery-1.8.2.min.js"></script> <script src="../assets/js/bootstrap-typeahead.js"></script>-->
<script src="/vendor/javascripts/bootstrap.min.js"></script> <script src="/vendor/javascripts/jquery-1.8.2.min.js"></script>
<script src="/vendor/javascripts/bootstrap.min.js"></script>
<script src="/vendor/javascripts/jQuery-URL-Parser.js"></script>
<script src="/vendor/javascripts/underscore-min.js"></script> <script src="/vendor/javascripts/jQuery-URL-Parser.js"></script>
<script src="/vendor/javascripts/underscore.string.min.js"></script> <script src="/vendor/javascripts/jquery.cookie.js"></script>
<script src="/vendor/javascripts/underscore-min.js"></script>
<script src="/vendor/javascripts/mycard.js"></script> <script src="/vendor/javascripts/underscore.string.min.js"></script>
<script src="/assets/javascripts/room_show.js"></script> <script src="/vendor/javascripts/mycard.js"></script>
</body> <script src="/assets/javascripts/room_show.js"></script>
</body>
</html> </html>
/*! /*!
* jQuery Cookie Plugin v1.3.0 * jQuery Cookie Plugin v1.3.1
* https://github.com/carhartl/jquery-cookie * https://github.com/carhartl/jquery-cookie
* *
* Copyright 2013 Klaus Hartl * Copyright 2013 Klaus Hartl
* Released under the MIT license * Released under the MIT license
*/ */
(function ($, document, undefined) { (function (factory) {
if (typeof define === 'function' && define.amd && define.amd.jQuery) {
// AMD. Register as anonymous module.
define(['jquery'], factory);
} else {
// Browser globals.
factory(jQuery);
}
}(function ($) {
var pluses = /\+/g; var pluses = /\+/g;
...@@ -14,15 +22,17 @@ ...@@ -14,15 +22,17 @@
} }
function decoded(s) { function decoded(s) {
return unRfc2068(decodeURIComponent(s.replace(pluses, ' '))); return decodeURIComponent(s.replace(pluses, ' '));
} }
function unRfc2068(value) { function converted(s) {
if (value.indexOf('"') === 0) { if (s.indexOf('"') === 0) {
// This is a quoted cookie as according to RFC2068, unescape // This is a quoted cookie as according to RFC2068, unescape
value = value.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
} }
return value; try {
return config.json ? JSON.parse(s) : s;
} catch(er) {}
} }
var config = $.cookie = function (key, value, options) { var config = $.cookie = function (key, value, options) {
...@@ -31,10 +41,6 @@ ...@@ -31,10 +41,6 @@
if (value !== undefined) { if (value !== undefined) {
options = $.extend({}, config.defaults, options); options = $.extend({}, config.defaults, options);
if (value === null) {
options.expires = -1;
}
if (typeof options.expires === 'number') { if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date(); var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days); t.setDate(t.getDate() + days);
...@@ -54,23 +60,19 @@ ...@@ -54,23 +60,19 @@
// read // read
var decode = config.raw ? raw : decoded; var decode = config.raw ? raw : decoded;
var cookies = document.cookie.split('; '); var cookies = document.cookie.split('; ');
var result = key ? null : {}; var result = key ? undefined : {};
for (var i = 0, l = cookies.length; i < l; i++) { for (var i = 0, l = cookies.length; i < l; i++) {
var parts = cookies[i].split('='); var parts = cookies[i].split('=');
var name = decode(parts.shift()); var name = decode(parts.shift());
var cookie = decode(parts.join('=')); var cookie = decode(parts.join('='));
if (config.json) {
cookie = JSON.parse(cookie);
}
if (key && key === name) { if (key && key === name) {
result = cookie; result = converted(cookie);
break; break;
} }
if (!key) { if (!key) {
result[name] = cookie; result[name] = converted(cookie);
} }
} }
...@@ -80,11 +82,11 @@ ...@@ -80,11 +82,11 @@
config.defaults = {}; config.defaults = {};
$.removeCookie = function (key, options) { $.removeCookie = function (key, options) {
if ($.cookie(key) !== null) { if ($.cookie(key) !== undefined) {
$.cookie(key, null, options); $.cookie(key, '', $.extend(options, { expires: -1 }));
return true; return true;
} }
return false; return false;
}; };
})(jQuery, document); }));
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment