OpenWrt_Luci_Lua/Mi_Lua/luci/view/web/inc/g.js.base.htm

232 lines
8.4 KiB
HTML
Raw Normal View History

2015-05-09 10:48:46 +00:00
<%
local XQVersion = require("xiaoqiang.XQVersion")
local XQSysUtil = require ("xiaoqiang.util.XQSysUtil")
local XQLanWanUtil = require("xiaoqiang.util.XQLanWanUtil")
local ver = XQVersion.webVersion
local monitor = XQLanWanUtil.getWanMonitorStat()
local pcClient = XQVersion.pcClientServer
local macClient = XQVersion.macClientServer
local androidClient = XQVersion.androidClientServer
if monitor.WANLINKSTAT ~= "UP" then
pcClient = XQVersion.pcClientRouter
macClient = XQVersion.macClientRouter
androidClient = XQVersion.androidClientRouter
end
local remote_addr = luci.http.getenv("REMOTE_ADDR")
local mac = luci.sys.net.ip4mac(remote_addr)
-- URL ENV SWTICH
local XQConfigs = require "xiaoqiang.common.XQConfigs"
local pspBaseUrl
local xmServerUrl
if XQConfigs.SERVER_CONFIG == 0 then
pspBaseUrl = XQConfigs.PASSPORT_CONFIG_ONLINE_URL
xmServerUrl = XQConfigs.XQ_SERVER_ONLINE_API_URL
elseif XQConfigs.SERVER_CONFIG == 1 then
pspBaseUrl = XQConfigs.PASSPORT_CONFIG_PREVIEW_URL
xmServerUrl = XQConfigs.XQ_SERVER_STAGING_API_URL
end
%>
<!--[if lt IE 7]>
<script>
try{ document.execCommand("BackgroundImageCache",false,true);} catch(e){}
</script>
<![endif]-->
<link rel="stylesheet" href="<%=resource%>/web/css/dialog.css?v=<%=ver%>">
<div id="panelClientdld" class="panel-client-dld" style="display:none; z-index:101;">
<ul class="clearfix">
<li class="first">
<a href="<%=pcClient%>">
<img src="<%=resource%>/web/img/v2/pic_client_pc.png" alt="">
<span>PC版</span>
</a>
</li>
<li>
<a href="<%=macClient%>">
<img src="<%=resource%>/web/img/v2/pic_client_mac.png" alt="">
<span>Mac版</span>
</a>
</li>
<li>
<a href="<%=androidClient%>">
<img src="<%=resource%>/web/img/v2/pic_client_ad.png" alt="">
<span>Android</span>
</a>
</li>
</ul>
<div class="dur"></div>
</div>
<div id="downloadMask" style="display:none; position:absolute; left:0; top:0; z-index:100;"></div>
<script type="tmpl/html" id="xiaomibind">
<div class="mod-panel-bind">
<form action="/" class="form form-horizontal from-xiaomibind" method="post" name="xiaomipsp" id="xiaomipsp">
<div class="item">
<label class="k">小米账号:</label>
<span class="v"><input type="text" name="uuid" id="xmuuid" class="text input-large" placeholder="请输入手机号码/邮箱/小米ID"></span>
<em class="t"></em>
</div>
<div class="item">
<label class="k">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;码:</label>
<span class="v"><input type="password" name="password" id="xmpassword" class="text input-large" placeholder="请输入密码"></span>
<em class="t"></em>
</div>
<div class="item item-control item-rsp-err" style="display:none;"><em class="t"></em></div>
<div class="item item-control">
<button type="submit" id="btnBindXiaomi" class="btn btn-primary l"><span>登录并绑定</span></button>
<a target="_blank" href="https://account.xiaomi.com/pass/forgetPassword" class="r">忘记密码?</a>
</div>
</form>
<div class="reg">
<h3>为什么要绑定小米账号?</h3>
<ul>
<li>可以随时远程查看、管理路由器</li>
<li>不开电脑也能下载电影</li>
<li>支持更多插件的安装</li>
</ul>
<p>没有小米账号?<a href="https://account.xiaomi.com/pass/register" target="_blank">立即创建一个</a></p>
</div>
</div>
</script>
<script>
var global_static_url = '<%=resource%>';
</script>
<script src="<%=resource%>/web/js/common.js?v=<%=ver%>"></script>
<script src="<%=resource%>/web/js/md5.js?v=<%=ver%>"></script>
<script src="<%=resource%>/web/js/base64.js?v=<%=ver%>"></script>
<script src="/js/crypto-js/rollups/sha1.js?v=<%=ver%>"></script>
<script src="/js/crypto-js/rollups/aes.js?v=<%=ver%>"></script>
<script>
//检测ajax登录是否失效
$(global_event).trigger('needLogin');
global_event.pspBaseUrl = '<%=pspBaseUrl%>';
global_event.xmServerUrl = '<%=xmServerUrl%>';
global_event.crypto = {
key: 'a2ffa5c9be07488bbb04a3a47d3c5f6a',
iv: '64175472480004614961023454661220',
nonce: null,
init: function(){
var nonce = this.nonceCreat();
this.nonce = nonce;
},
nonceCreat: function(){
var type = 0;
var deviceId = '<%=mac%>';
var time = Math.floor(new Date().getTime() / 1000);
var random = Math.floor(Math.random() * 10000);
return [type, deviceId, time, random].join('_');
},
oldPwd : function(pwd){
return CryptoJS.SHA1(this.nonce + CryptoJS.SHA1(pwd + this.key).toString()).toString();
},
newPwd: function(pwd, newpwd){
var key = CryptoJS.SHA1(pwd + this.key).toString();
key = CryptoJS.enc.Hex.parse(key).toString();
key = key.substr(0, 32);
key = CryptoJS.enc.Hex.parse(key);
var password = CryptoJS.SHA1(newpwd + this.key).toString();
var iv = CryptoJS.enc.Hex.parse(this.iv);
var aes = CryptoJS.AES.encrypt(
password,
key,
{iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }
).toString();
return aes;
}
};
$(global_event).on('downloadclient', function(evt, data){
var ModelClientDownload = (function(){
var base,
baseWidth,
basePos,
target = $('#panelClientdld'),
targetDur = target.find('.dur'),
targetWidth,
targetDurWidth,
docWidth,
targetLeft,
targetDurLeft,
timer;
if (target.length == 0) {
return;
}
var position = function(){
baseWidth = base.outerWidth();
basePos = base.offset();
targetWidth = target.outerWidth();
targetDurWidth = targetDur.outerWidth();
docWidth = $(window).width();
targetLeft = basePos.left + baseWidth/2 - targetWidth/2;
if (targetLeft + targetWidth > docWidth) {
targetLeft = docWidth - targetWidth - 10;
}
target.css({left: targetLeft});
targetDurLeft = basePos.left + baseWidth/2 - targetDurWidth/2 - targetLeft;
targetDur.css({left: targetDurLeft});
},
init = function(el){
base = el || $('#downloadclient');
position();
$(window).resize(function(){
window.clearTimeout(timer);
timer = window.setTimeout(function(){
position();
}, 400);
});
$('#downloadMask').on('click', function(e){
e.preventDefault();
$(this).hide();
target.hide();
});
},
show = function(){
maskShow();
target.show();
},
maskShow = function(){
$('#downloadMask').css({
width: '100%',
height: $(window).height()
}).show();
},
hide = function(){
target.hide();
window.clearTimeout(timer);
},
isopen = function(){
return target[0].style.display != 'none';
};
return {
init: init,
update: position,
show: show,
hide: hide,
isopen: isopen
}
})();
$('body').delegate('#downloadclient', 'click', function(e){
e.preventDefault();
if (navigator.userAgent.match(/Android/i)) {
location.href = '<%=androidClient%>';
return;
}
var $this = $(this),
panel = ModelClientDownload;
panel.init($this);
if (panel.isopen()) {
panel.hide();
}else{
panel.show();
}
});
});
$(global_event).trigger('downloadclient');
</script>