mirror of
https://github.com/scottlamb/moonfire-nvr.git
synced 2025-02-23 03:22:30 -05:00
Merge branch 'master' into new-schema
This commit is contained in:
commit
c7c0d5a6c1
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -1340,7 +1340,7 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "mylog"
|
||||
version = "0.1.0"
|
||||
source = "git+https://github.com/scottlamb/mylog#00d39a9ca0c1f399c453360de3f1e7f61db0d50d"
|
||||
source = "git+https://github.com/scottlamb/mylog#bebeacb74efc127f9c16e57e38886c8e6ba8a95c"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"log",
|
||||
|
13
src/main.rs
13
src/main.rs
@ -31,6 +31,7 @@
|
||||
#![cfg_attr(all(feature="nightly", test), feature(test))]
|
||||
|
||||
use log::{error, info};
|
||||
use std::str::FromStr;
|
||||
use structopt::StructOpt;
|
||||
|
||||
#[cfg(feature = "analytics")]
|
||||
@ -124,20 +125,12 @@ impl Args {
|
||||
}
|
||||
}
|
||||
|
||||
fn parse_fmt<S: AsRef<str>>(fmt: S) -> Option<mylog::Format> {
|
||||
match fmt.as_ref() {
|
||||
"google" => Some(mylog::Format::Google),
|
||||
"google-systemd" => Some(mylog::Format::GoogleSystemd),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let args = Args::from_args();
|
||||
let mut h = mylog::Builder::new()
|
||||
.set_format(::std::env::var("MOONFIRE_FORMAT")
|
||||
.ok()
|
||||
.and_then(parse_fmt)
|
||||
.map_err(|_| ())
|
||||
.and_then(|s| mylog::Format::from_str(&s))
|
||||
.unwrap_or(mylog::Format::Google))
|
||||
.set_spec(&::std::env::var("MOONFIRE_LOG").unwrap_or("info".to_owned()))
|
||||
.build();
|
||||
|
@ -227,7 +227,7 @@ function updateSession(session) {
|
||||
return;
|
||||
}
|
||||
sessionBar.append($('<span id="session-username" />').text(session.username));
|
||||
const logout = $('<a>logout</a>');
|
||||
const logout = $('<a id="logout">logout</a>');
|
||||
logout.click(() => {
|
||||
api
|
||||
.logout(session.csrf)
|
||||
@ -384,6 +384,11 @@ export default class NVRApplication {
|
||||
* Start the application.
|
||||
*/
|
||||
start() {
|
||||
let nav = $('#nav');
|
||||
|
||||
$('#toggle-nav').click(() => {
|
||||
nav.toggle('slide');
|
||||
});
|
||||
loginDialog = $('#login').dialog({
|
||||
autoOpen: false,
|
||||
modal: true,
|
||||
|
@ -1,54 +1,72 @@
|
||||
@media only screen and (max-width: 720px) {
|
||||
#nav {
|
||||
float: none;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
#top {
|
||||
width: 100%;
|
||||
padding-bottom: 2ex;
|
||||
}
|
||||
#toggle-nav {
|
||||
font-size: 1.25em;
|
||||
cursor: pointer;
|
||||
}
|
||||
#nav {
|
||||
float: left;
|
||||
float: left;
|
||||
}
|
||||
#session {
|
||||
float: right;
|
||||
float: right;
|
||||
}
|
||||
#logout {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#datetime .ui-datepicker {
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#videos {
|
||||
display: inline-block;
|
||||
padding-top: 0.5em;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
display: inline-block;
|
||||
padding-top: 0.5em;
|
||||
padding-left: 1em;
|
||||
padding-right: 1em;
|
||||
}
|
||||
#videos tbody:after {
|
||||
content: "";
|
||||
display: block;
|
||||
height: 3ex;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 3ex;
|
||||
}
|
||||
table.videos {
|
||||
border-collapse: collapse;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
tbody tr.name {
|
||||
font-size: 110%;
|
||||
background-color: #eee;
|
||||
font-size: 110%;
|
||||
background-color: #eee;
|
||||
}
|
||||
tbody tr.name th {
|
||||
border-bottom: 1px solid #666;
|
||||
}
|
||||
tbody tr.hdr {
|
||||
color: #555;
|
||||
font-size: 90%;
|
||||
font-size: 90%;
|
||||
}
|
||||
tr.r:hover {
|
||||
background-color: #ddd;
|
||||
background-color: #ddd;
|
||||
}
|
||||
tr.r td {
|
||||
font-size: 80%;
|
||||
cursor: pointer;
|
||||
font-size: 80%;
|
||||
cursor: pointer;
|
||||
}
|
||||
tr.r th,
|
||||
tr.r td {
|
||||
border: 0;
|
||||
padding: 0.5ex 1.5em;
|
||||
text-align: right;
|
||||
padding: 0.5ex 1.5em;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
@ -60,21 +78,21 @@ fieldset legend {
|
||||
}
|
||||
|
||||
#from, #to {
|
||||
padding-right: 0.75em;
|
||||
padding-right: 0.75em;
|
||||
}
|
||||
#st {
|
||||
width: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#range {
|
||||
padding: 0.5em 0;
|
||||
padding: 0.5em 0;
|
||||
}
|
||||
.ui-dialog .ui-dialog-content {
|
||||
overflow: visible; /* remove stupid scroll bars when resizing. */
|
||||
padding: 0;
|
||||
overflow: visible; /* remove stupid scroll bars when resizing. */
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
video {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
@ -5,7 +5,9 @@
|
||||
<title>Moonfire NVR</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="session">
|
||||
<div id="top">
|
||||
<a id="toggle-nav">☰</a>
|
||||
<span id="session"></div>
|
||||
</div>
|
||||
<div id="nav">
|
||||
<form action="#">
|
||||
|
Loading…
x
Reference in New Issue
Block a user