Force full URL for libraries and allow custom base URL
- `baseURL` can now be used in conf.json to specify a custom origin.merge-requests/63/head
parent
235c6760a5
commit
911966ac17
35
camera.js
35
camera.js
|
|
@ -117,6 +117,7 @@ if(config.databaseType===undefined){config.databaseType='mysql'}
|
|||
if(config.pluginKeys===undefined)config.pluginKeys={};
|
||||
if(config.databaseLogs===undefined){config.databaseLogs=false}
|
||||
if(config.useUTC===undefined){config.useUTC=false}
|
||||
if(config.baseURL && config.baseURL !== ''){config.baseURL = s.checkCorrectPathEnding(config.baseURL)}
|
||||
if(config.pipeAddition===undefined){config.pipeAddition=7}else{config.pipeAddition=parseInt(config.pipeAddition)}
|
||||
//Web Paths
|
||||
if(config.webPaths===undefined){config.webPaths={}}
|
||||
|
|
@ -208,6 +209,7 @@ s.getDefinitonFile=function(rule){
|
|||
}
|
||||
return file
|
||||
}
|
||||
//sql/database connection with knex
|
||||
var databaseOptions = {
|
||||
client: config.databaseType,
|
||||
connection: config.db,
|
||||
|
|
@ -5136,6 +5138,16 @@ s.superAuth=function(x,callback){
|
|||
return true;
|
||||
}
|
||||
}
|
||||
//get page URL
|
||||
s.getOriginalUrl = function(req){
|
||||
var url
|
||||
if(config.baseURL){
|
||||
url = config.baseURL
|
||||
}else{
|
||||
url = req.protocol + '://' + req.get('host') + '/'
|
||||
}
|
||||
return url
|
||||
}
|
||||
////Pages
|
||||
app.enable('trust proxy');
|
||||
app.use('/libs',express.static(__dirname + '/web/libs'));
|
||||
|
|
@ -5146,7 +5158,7 @@ app.set('view engine','ejs');
|
|||
//add template handler
|
||||
if(config.renderPaths.handler!==undefined){require(__dirname+'/web/'+config.renderPaths.handler+'.js').addHandlers(s,app,io)}
|
||||
|
||||
//readme
|
||||
//logout
|
||||
app.get('/:auth/logout/:ke/:id', function (req,res){
|
||||
if(s.group[req.params.ke]&&s.group[req.params.ke].users[req.params.auth]){
|
||||
delete(s.api[req.params.auth]);
|
||||
|
|
@ -5159,7 +5171,7 @@ app.get('/:auth/logout/:ke/:id', function (req,res){
|
|||
});
|
||||
//main page
|
||||
app.get(config.webPaths.index, function (req,res){
|
||||
res.render(config.renderPaths.index,{lang:lang,config:config,screen:'dashboard'},function(err,html){
|
||||
res.render(config.renderPaths.index,{lang:lang,config:config,screen:'dashboard',originalURL:s.getOriginalUrl(req)},function(err,html){
|
||||
if(err){
|
||||
s.systemLog(err)
|
||||
}
|
||||
|
|
@ -5168,7 +5180,7 @@ app.get(config.webPaths.index, function (req,res){
|
|||
});
|
||||
//admin page
|
||||
app.get(config.webPaths.admin, function (req,res){
|
||||
res.render(config.renderPaths.index,{lang:lang,config:config,screen:'admin'},function(err,html){
|
||||
res.render(config.renderPaths.index,{lang:lang,config:config,screen:'admin',originalURL:s.getOriginalUrl(req)},function(err,html){
|
||||
if(err){
|
||||
s.systemLog(err)
|
||||
}
|
||||
|
|
@ -5177,7 +5189,8 @@ app.get(config.webPaths.admin, function (req,res){
|
|||
});
|
||||
//super page
|
||||
app.get(config.webPaths.super, function (req,res){
|
||||
res.render(config.renderPaths.index,{lang:lang,config:config,screen:'super'},function(err,html){
|
||||
|
||||
res.render(config.renderPaths.index,{lang:lang,config:config,screen:'super',originalURL:s.getOriginalUrl(req)},function(err,html){
|
||||
if(err){
|
||||
s.systemLog(err)
|
||||
}
|
||||
|
|
@ -5219,6 +5232,10 @@ app.post('/:auth/register/:ke/:uid',function (req,res){
|
|||
req.resp={ok:false};
|
||||
res.setHeader('Content-Type', 'application/json');
|
||||
s.auth(req.params,function(user){
|
||||
if(user.details.sub){
|
||||
res.end(user.lang['Not Permitted'])
|
||||
return
|
||||
}
|
||||
s.sqlQuery('SELECT * FROM Users WHERE uid=? AND ke=? AND details NOT LIKE ? LIMIT 1',[req.params.uid,req.params.ke,'%"sub"%'],function(err,u) {
|
||||
if(u&&u[0]){
|
||||
if(req.body.mail!==''&&req.body.pass!==''){
|
||||
|
|
@ -5269,6 +5286,7 @@ app.post(['/','/:screen'],function (req,res){
|
|||
res.setHeader('Content-Type', 'application/json');
|
||||
res.end(s.s(data, null, 3))
|
||||
}else{
|
||||
data.originalURL = s.getOriginalUrl(req)
|
||||
data.screen=req.params.screen
|
||||
res.render(focus,data,function(err,html){
|
||||
if(err){
|
||||
|
|
@ -5283,7 +5301,7 @@ app.post(['/','/:screen'],function (req,res){
|
|||
res.setHeader('Content-Type', 'application/json');
|
||||
res.end(s.s({ok:false}, null, 3))
|
||||
}else{
|
||||
res.render(config.renderPaths.index,{failedLogin:true,lang:lang,config:config,screen:req.params.screen},function(err,html){
|
||||
res.render(config.renderPaths.index,{failedLogin:true,lang:lang,config:config,screen:req.params.screen,originalURL:s.getOriginalUrl(req)},function(err,html){
|
||||
if(err){
|
||||
s.systemLog(err)
|
||||
}
|
||||
|
|
@ -5741,7 +5759,8 @@ app.get(['/:auth/grid/:ke','/:auth/grid/:ke/:group'], function(req,res) {
|
|||
config:config,
|
||||
lang:user.lang,
|
||||
$user:user,
|
||||
monitors:r
|
||||
monitors:r,
|
||||
originalURL:s.getOriginalUrl(req)
|
||||
});
|
||||
})
|
||||
},res,req)
|
||||
|
|
@ -5751,7 +5770,7 @@ app.get(['/:auth/grid/:ke','/:auth/grid/:ke/:group'], function(req,res) {
|
|||
app.get(['/:auth/mjpeg/:ke/:id','/:auth/mjpeg/:ke/:id/:channel'], function(req,res) {
|
||||
res.header("Access-Control-Allow-Origin",req.headers.origin);
|
||||
if(req.query.full=='true'){
|
||||
res.render(config.renderPaths.mjpeg,{url:'/'+req.params.auth+'/mjpeg/'+req.params.ke+'/'+req.params.id});
|
||||
res.render(config.renderPaths.mjpeg,{url:'/'+req.params.auth+'/mjpeg/'+req.params.ke+'/'+req.params.id,originalURL:s.getOriginalUrl(req)});
|
||||
res.end()
|
||||
}else{
|
||||
s.auth(req.params,function(user){
|
||||
|
|
@ -5807,7 +5826,7 @@ app.get(['/:auth/embed/:ke/:id','/:auth/embed/:ke/:id/:addon'], function (req,re
|
|||
if(s.group[req.params.ke]&&s.group[req.params.ke].mon[req.params.id]){
|
||||
if(s.group[req.params.ke].mon[req.params.id].started===1){
|
||||
req.params.uid=user.uid;
|
||||
res.render(config.renderPaths.embed,{data:req.params,baseUrl:req.protocol+'://'+req.hostname,config:config,lang:user.lang,mon:CircularJSON.parse(CircularJSON.stringify(s.group[req.params.ke].mon_conf[req.params.id]))});
|
||||
res.render(config.renderPaths.embed,{data:req.params,baseUrl:req.protocol+'://'+req.hostname,config:config,lang:user.lang,mon:CircularJSON.parse(CircularJSON.stringify(s.group[req.params.ke].mon_conf[req.params.id])),originalURL:s.getOriginalUrl(req)});
|
||||
res.end()
|
||||
}else{
|
||||
res.end(user.lang['Cannot watch a monitor that isn\'t running.'])
|
||||
|
|
|
|||
|
|
@ -14,14 +14,14 @@
|
|||
}
|
||||
nav{margin-top:20px}
|
||||
</style>
|
||||
<link rel="stylesheet" href="libs/css/pnotify.custom.min.css">
|
||||
<link rel="stylesheet" href="libs/css/vbox.css">
|
||||
<link rel="stylesheet" href="libs/css/circles.css">
|
||||
<link rel="stylesheet" href="libs/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="libs/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="libs/css/fullcalendar.min.css">
|
||||
<link rel="stylesheet" href="libs/css/bootstrap-table.min.css">
|
||||
<link rel="stylesheet" href="libs/css/main.dash2.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/pnotify.custom.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/vbox.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/circles.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/fullcalendar.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/bootstrap-table.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/main.dash2.css">
|
||||
<body class="shinobi-bg">
|
||||
<div class="shinobi-bg-shade">
|
||||
<div class="container-fluid">
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-title" content="Shinobi">
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="libs/img/icon/apple-touch-icon-57x57.png" />
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="libs/img/icon/apple-touch-icon-72x72.png" />
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="libs/img/icon/apple-touch-icon-76x76.png" />
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="libs/img/icon/apple-touch-icon-114x114.png" />
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="libs/img/icon/apple-touch-icon-120x120.png" />
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="libs/img/icon/apple-touch-icon-144x144.png" />
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="libs/img/icon/apple-touch-icon-152x152.png" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="libs/img/icon/apple-touch-icon-180x180.png" />
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="<%-originalURL%>libs/img/icon/apple-touch-icon-57x57.png" />
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="<%-originalURL%>libs/img/icon/apple-touch-icon-72x72.png" />
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="<%-originalURL%>libs/img/icon/apple-touch-icon-76x76.png" />
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="<%-originalURL%>libs/img/icon/apple-touch-icon-114x114.png" />
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="<%-originalURL%>libs/img/icon/apple-touch-icon-120x120.png" />
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="<%-originalURL%>libs/img/icon/apple-touch-icon-144x144.png" />
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="<%-originalURL%>libs/img/icon/apple-touch-icon-152x152.png" />
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="<%-originalURL%>libs/img/icon/apple-touch-icon-180x180.png" />
|
||||
|
|
@ -3,17 +3,17 @@
|
|||
<% include header-meta.ejs %>
|
||||
<meta http-equiv="content-type" content="text/html;charset=UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<link rel="stylesheet" href="libs/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="libs/css/login.css">
|
||||
<link rel="stylesheet" href="libs/css/material.min.css">
|
||||
<link rel="stylesheet" href="libs/css/material.style.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/login.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/material.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/material.style.css">
|
||||
<meta name="mobile-web-app-capable" content="yes">
|
||||
<link rel="icon" href="libs/img/icon/favicon.ico" type="image/x-icon" />
|
||||
<link rel="shortcut icon" href="libs/img/icon/favicon.ico" type="image/x-icon" />
|
||||
<link rel="icon" href="<%-originalURL%>libs/img/icon/favicon.ico" type="image/x-icon" />
|
||||
<link rel="shortcut icon" href="<%-originalURL%>libs/img/icon/favicon.ico" type="image/x-icon" />
|
||||
<% include header-favicon.ejs %>
|
||||
<script src="libs/js/jquery.min.js"></script>
|
||||
<script src="libs/js/jquery-ui.min.js"></script>
|
||||
<script src="libs/js/jquery.serialize.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/jquery.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/jquery-ui.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/jquery.serialize.js"></script>
|
||||
</head>
|
||||
<% cleanLang = function(string){
|
||||
if(!string){string=''}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<h4 class="modal-title" id="help_windowLabel"><i class="fa fa-question-circle"></i> <span><%-lang.Help%></span></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<a href="http://shinobi.video/docs/donate"><img src="libs/img/icon/apple-touch-icon-152x152.png" class="pull-right" style="border-radius:50%;margin-left:20px;border: 1px solid #c3996b;"></a>
|
||||
<a href="http://shinobi.video/docs/donate"><img src="<%-originalURL%>libs/img/icon/apple-touch-icon-152x152.png" class="pull-right" style="border-radius:50%;margin-left:20px;border: 1px solid #c3996b;"></a>
|
||||
<p>For information about how to use Shinobi you can check out the <a target="_blank" href="http://shinobi.video/docs">Docs</a>.</p>
|
||||
<p>If you would like to get professional support please consider ordering a <a href="http://shinobi.video/support">support package</a>. You can find <b>Moe Alam, The Author</b>, on the <a target="_blank" href="https://discord.gg/ehRd8Zz">Discord</a> Community Chat. For general questions and community support you can also try <a href="https://www.reddit.com/r/ShinobiCCTV">Reddit</a>.</p>
|
||||
<p><strong>Support </strong> <a href="http://shinobi.video/support">from @moeiscool</a></p>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<% include blocks/header %>
|
||||
<script>var $user=<%- JSON.stringify($user) %>;</script>
|
||||
<link rel="stylesheet" href="libs/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/bootstrap.min.css">
|
||||
<div id="main" class="container">
|
||||
<a class="btn btn-danger btn-lg" record>Stream</a>
|
||||
<div>
|
||||
|
|
@ -19,9 +19,9 @@ requires https or firefox
|
|||
</div>
|
||||
<video id="video"><source></video>
|
||||
<canvas id="canvas"></canvas>
|
||||
<script src="libs/js/jquery.min.js"></script>
|
||||
<script src="libs/js/socket.io.js"></script>
|
||||
<script src="libs/js/menu.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/jquery.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/socket.io.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/menu.js"></script>
|
||||
<script>
|
||||
$.ccio = {}
|
||||
$.ls = localStorage
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ if(config.ssl&&config.ssl.port&&data.protocol==='https'){
|
|||
}
|
||||
if(!data.port||data.port===''||data.port==80||data.port==443){data.url=baseUrl}else{data.url=baseUrl+':'+data.port}
|
||||
if(data.addon || data.addon.indexOf('relative')>-1){
|
||||
data.url=''
|
||||
data.url = ''
|
||||
}else if(config.baseURL){
|
||||
data.url = config.baseURL
|
||||
}
|
||||
if(data.url.charAt(data.url.length - 1) !== '/'){
|
||||
data.url += '/'
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<a href="http://shinobi.video" target="_blank">
|
||||
<img src="libs/img/icon/apple-touch-icon-76x76.png" style="border-radius:50%">
|
||||
<img src="<%-originalURL%>libs/img/icon/apple-touch-icon-76x76.png" style="border-radius:50%">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="libs/js/material.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/material.min.js"></script>
|
||||
<script>
|
||||
$.ccio={f:$('#auth-form'),ls:localStorage.getItem('ShinobiAuth_'+location.host)}
|
||||
$.ccio.gid=function(x){
|
||||
|
|
|
|||
|
|
@ -1,17 +1,17 @@
|
|||
<% var details=JSON.parse($user.details) %>
|
||||
<% include blocks/header %>
|
||||
<script>var $user=<%- JSON.stringify($user) %>;</script>
|
||||
<link rel="stylesheet" href="libs/css/pnotify.custom.min.css">
|
||||
<link rel="stylesheet" href="libs/css/vbox.css">
|
||||
<link rel="stylesheet" href="libs/css/daterangepicker.css">
|
||||
<link rel="stylesheet" href="libs/css/circles.css">
|
||||
<link rel="stylesheet" href="libs/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="libs/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="libs/css/fullcalendar.min.css">
|
||||
<link rel="stylesheet" href="libs/css/gridstack.min.css">
|
||||
<link rel="stylesheet" href="libs/css/gridstack-extra.min.css">
|
||||
<link rel="stylesheet" href="libs/css/bootstrap-table.min.css">
|
||||
<link rel="stylesheet" href="libs/css/main.dash2.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/pnotify.custom.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/vbox.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/daterangepicker.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/circles.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/font-awesome.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/fullcalendar.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/gridstack.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/gridstack-extra.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/bootstrap-table.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/main.dash2.css">
|
||||
<style id="theme">
|
||||
<% if(details.theme&&details.theme!==''){ %><%- include(__dirname+'/web/libs/themes/'+details.theme+'/style.css'); %><% } %>
|
||||
</style>
|
||||
|
|
@ -169,27 +169,28 @@
|
|||
<script type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="<%= config.DropboxAppKey %>"></script>
|
||||
<!--Dropbox End-->
|
||||
<% } %>
|
||||
<script src="libs/js/material.min.js"></script>
|
||||
<script src="libs/js/pnotify.custom.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/material.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/pnotify.custom.min.js"></script>
|
||||
<script><% include ../libs/js/moment.js %></script>
|
||||
<script><% include ../libs/js/livestamp.min.js %></script>
|
||||
<script src="libs/js/placeholder.js"></script>
|
||||
<script src="libs/js/bootstrap.min.js"></script>
|
||||
<script src="libs/js/bootstrap-table.min.js"></script>
|
||||
<script src="libs/js/socket.io.js"></script>
|
||||
<script src="libs/js/fullcalendar.min.js"></script>
|
||||
<script src="libs/js/hls.min.js"></script>
|
||||
<script type="text/javascript" src="libs/js/flv.shinobi.js">;</script>
|
||||
<script src="libs/js/menu.js"></script>
|
||||
<script src="libs/js/clock.js"></script>
|
||||
<script src="libs/js/poseidon.js"></script>
|
||||
<script src="libs/js/Chart.js"></script>
|
||||
<script src="libs/js/clusterPoints.js"></script>
|
||||
<script src="libs/js/daterangepicker.js"></script>
|
||||
<script src="libs/js/jquery.canvasAreaDraw.js"></script>
|
||||
<script src="libs/js/jquery-ui.min.js"></script>
|
||||
<script src="libs/js/lodash.min.js"></script>
|
||||
<script src="libs/js/gridstack.min.js"></script>
|
||||
<script src="libs/js/gridstack.jQueryUI.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/placeholder.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/bootstrap.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/bootstrap-table.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/socket.io.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/fullcalendar.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/hls.min.js"></script>
|
||||
<script type="text/javascript" src="<%-originalURL%>libs/js/flv.shinobi.js">;</script>
|
||||
<script src="<%-originalURL%>libs/js/menu.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/clock.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/poseidon.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/Chart.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/clusterPoints.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/daterangepicker.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/jquery.canvasAreaDraw.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/jquery-ui.min.js"></script>
|
||||
<!--<script src="<%-originalURL%>libs/js/jquery.ui.touch.js"></script>-->
|
||||
<script src="<%-originalURL%>libs/js/lodash.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/gridstack.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/gridstack.jQueryUI.min.js"></script>
|
||||
<script><% include ../libs/js/main.dash2.js %></script>
|
||||
<% include blocks/help.ejs %>
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<a href="http://shinobi.video" target="_blank">
|
||||
<img src="libs/img/icon/apple-touch-icon-76x76.png" style="border-radius:50%">
|
||||
<img src="<%-originalURL%>libs/img/icon/apple-touch-icon-76x76.png" style="border-radius:50%">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -75,7 +75,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="libs/js/material.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/material.min.js"></script>
|
||||
<script>
|
||||
<% var failedLogin;if(failedLogin===true){ %>
|
||||
localStorage.removeItem('ShinobiLogin_'+location.host)
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<% include blocks/header %>
|
||||
<script>var $user=<%- JSON.stringify($user) %>;</script>
|
||||
<link rel="stylesheet" href="libs/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/bootstrap.min.css">
|
||||
<div id="main" class="container">
|
||||
<a class="btn btn-danger btn-lg" record>Stream</a>
|
||||
<div>
|
||||
|
|
@ -17,8 +17,8 @@ requires https or firefox
|
|||
</div>
|
||||
<video id="video"><source></video>
|
||||
<canvas id="canvas"></canvas>
|
||||
<script src="libs/js/socket.io.js"></script>
|
||||
<script src="libs/js/menu.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/socket.io.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/menu.js"></script>
|
||||
<script>
|
||||
$.ccio={};$.ls=localStorage;
|
||||
$.ccio.ws=io(location.origin);
|
||||
|
|
|
|||
|
|
@ -10,15 +10,15 @@
|
|||
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700,200" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" />
|
||||
<!-- CSS Files -->
|
||||
<link href="libs/css/bootstrap4.min.css" rel="stylesheet" />
|
||||
<link href="libs/css/main.dash2.css" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="libs/css/pnotify.custom.min.css">
|
||||
<link href="libs/css/now-ui-kit.css?v=1.1.0" rel="stylesheet" />
|
||||
<script src="libs/js/jquery.min.js"></script>
|
||||
<script src="libs/js/jquery.serialize.js"></script>
|
||||
<script src="libs/js/pnotify.custom.min.js"></script>
|
||||
<script src="libs/js/popper.min.js" type="text/javascript"></script>
|
||||
<script src="libs/js/bootstrap4.min.js" type="text/javascript"></script>
|
||||
<link href="<%-originalURL%>libs/css/bootstrap4.min.css" rel="stylesheet" />
|
||||
<link href="<%-originalURL%>libs/css/main.dash2.css" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="<%-originalURL%>libs/css/pnotify.custom.min.css">
|
||||
<link href="<%-originalURL%>libs/css/now-ui-kit.css?v=1.1.0" rel="stylesheet" />
|
||||
<script src="<%-originalURL%>libs/js/jquery.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/jquery.serialize.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/pnotify.custom.min.js"></script>
|
||||
<script src="<%-originalURL%>libs/js/popper.min.js" type="text/javascript"></script>
|
||||
<script src="<%-originalURL%>libs/js/bootstrap4.min.js" type="text/javascript"></script>
|
||||
<style>
|
||||
.form-group label>div:first-child{width:40%}
|
||||
.list-group li .form-group {margin:0}
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
<span class="navbar-toggler-bar bar3"></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse justify-content-end" id="navigation" data-nav-image="libs/img/blurred-image-1.jpg">
|
||||
<div class="collapse navbar-collapse justify-content-end" id="navigation" data-nav-image="<%-originalURL%>libs/img/blurred-image-1.jpg">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="nav-item">
|
||||
<a href="javascript:location.href=location.pathname" class="nav-link" class="logout">
|
||||
|
|
@ -167,12 +167,12 @@
|
|||
</div>
|
||||
</body>
|
||||
<% include blocks/confirm.ejs %>
|
||||
<script src="libs/js/pnotify.custom.min.js" type="text/javascript"></script>
|
||||
<script src="<%-originalURL%>libs/js/pnotify.custom.min.js" type="text/javascript"></script>
|
||||
<script><% include ../libs/js/moment.js %></script>
|
||||
<script src="libs/js/livestamp.min.js" type="text/javascript"></script>
|
||||
<script src="libs/js/socket.io.js" type="text/javascript"></script>
|
||||
<script src="libs/js/placeholder.js" type="text/javascript"></script>
|
||||
<script src="libs/js/now-ui-kit.js?v=1.1.0" type="text/javascript"></script>
|
||||
<script src="<%-originalURL%>libs/js/livestamp.min.js" type="text/javascript"></script>
|
||||
<script src="<%-originalURL%>libs/js/socket.io.js" type="text/javascript"></script>
|
||||
<script src="<%-originalURL%>libs/js/placeholder.js" type="text/javascript"></script>
|
||||
<script src="<%-originalURL%>libs/js/now-ui-kit.js?v=1.1.0" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
PNotify.prototype.options.styling = "fontawesome";
|
||||
$(document).ready(function() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue