Converted sample project into an almost working Svelte / Meteor project. Needs to fix the login/logout code, the camera code, and add Chromebook history when the QR Code is scanned.
This commit is contained in:
25
.idea/watcherTasks.xml
generated
Normal file
25
.idea/watcherTasks.xml
generated
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectTasksOptions">
|
||||||
|
<TaskOptions isEnabled="true">
|
||||||
|
<option name="arguments" value="$FileName$:$FileNameWithoutExtension$.css" />
|
||||||
|
<option name="checkSyntaxErrors" value="true" />
|
||||||
|
<option name="description" />
|
||||||
|
<option name="exitCodeBehavior" value="ERROR" />
|
||||||
|
<option name="fileExtension" value="sass" />
|
||||||
|
<option name="immediateSync" value="true" />
|
||||||
|
<option name="name" value="Sass" />
|
||||||
|
<option name="output" value="$FileNameWithoutExtension$.css:$FileNameWithoutExtension$.css.map" />
|
||||||
|
<option name="outputFilters">
|
||||||
|
<array />
|
||||||
|
</option>
|
||||||
|
<option name="outputFromStdout" value="false" />
|
||||||
|
<option name="program" value="sass" />
|
||||||
|
<option name="runOnExternalChanges" value="true" />
|
||||||
|
<option name="scopeName" value="Project Files" />
|
||||||
|
<option name="trackOnlyRoot" value="true" />
|
||||||
|
<option name="workingDir" value="$FileDir$" />
|
||||||
|
<envs />
|
||||||
|
</TaskOptions>
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
@@ -11,20 +11,22 @@ jquery # Wrapper package for npm-installed jquery
|
|||||||
reactive-var@1.0.11 # Reactive variable for tracker
|
reactive-var@1.0.11 # Reactive variable for tracker
|
||||||
tracker@1.2.0 # Meteor's client-side reactive programming library
|
tracker@1.2.0 # Meteor's client-side reactive programming library
|
||||||
|
|
||||||
standard-minifier-css@1.7.4 # CSS minifier run for production mode
|
standard-minifier-css@1.8.0 # CSS minifier run for production mode
|
||||||
standard-minifier-js@2.8.0 # JS minifier run for production mode
|
standard-minifier-js@2.8.0 # JS minifier run for production mode
|
||||||
es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers
|
es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers
|
||||||
ecmascript@0.16.1 # Enable ECMAScript2015+ syntax in app code
|
ecmascript@0.16.2 # Enable ECMAScript2015+ syntax in app code
|
||||||
typescript@4.4.1 # Enable TypeScript syntax in .ts and .tsx modules
|
typescript@4.5.4 # Enable TypeScript syntax in .ts and .tsx modules
|
||||||
shell-server@0.5.0 # Server-side component of the `meteor shell` command
|
shell-server@0.5.0 # Server-side component of the `meteor shell` command
|
||||||
|
|
||||||
svelte:compiler
|
svelte:compiler
|
||||||
|
#static-html@1.3.2
|
||||||
rdb:svelte-meteor-data
|
rdb:svelte-meteor-data
|
||||||
static-html@1.3.2
|
|
||||||
accounts-ui@1.4.2
|
accounts-ui@1.4.2
|
||||||
accounts-password@2.2.0
|
accounts-password@2.3.0
|
||||||
svelte:blaze-integration
|
svelte:blaze-integration
|
||||||
meteortesting:mocha
|
meteortesting:mocha
|
||||||
accounts-google@1.4.0
|
accounts-google@1.4.0
|
||||||
service-configuration@1.3.0
|
service-configuration@1.3.0
|
||||||
google-config-ui
|
google-config-ui@1.0.3 # Adds the UI for logging in via Google
|
||||||
|
alanning:roles # Adds roles to the user
|
||||||
|
#zodern:melte
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
METEOR@2.6.1
|
METEOR@2.7
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
accounts-base@2.2.1
|
accounts-base@2.2.2
|
||||||
accounts-google@1.4.0
|
accounts-google@1.4.0
|
||||||
accounts-oauth@1.4.0
|
accounts-oauth@1.4.1
|
||||||
accounts-password@2.2.0
|
accounts-password@2.3.1
|
||||||
accounts-ui@1.4.2
|
accounts-ui@1.4.2
|
||||||
accounts-ui-unstyled@1.6.0
|
accounts-ui-unstyled@1.7.0
|
||||||
|
alanning:roles@3.4.0
|
||||||
allow-deny@1.1.1
|
allow-deny@1.1.1
|
||||||
autoupdate@1.8.0
|
autoupdate@1.8.0
|
||||||
babel-compiler@7.8.1
|
babel-compiler@7.9.0
|
||||||
babel-runtime@1.5.0
|
babel-runtime@1.5.0
|
||||||
base64@1.0.12
|
base64@1.0.12
|
||||||
binary-heap@1.0.11
|
binary-heap@1.0.11
|
||||||
@@ -24,17 +25,17 @@ ddp-rate-limiter@1.1.0
|
|||||||
ddp-server@2.5.0
|
ddp-server@2.5.0
|
||||||
diff-sequence@1.1.1
|
diff-sequence@1.1.1
|
||||||
dynamic-import@0.7.2
|
dynamic-import@0.7.2
|
||||||
ecmascript@0.16.1
|
ecmascript@0.16.2
|
||||||
ecmascript-runtime@0.8.0
|
ecmascript-runtime@0.8.0
|
||||||
ecmascript-runtime-client@0.12.1
|
ecmascript-runtime-client@0.12.1
|
||||||
ecmascript-runtime-server@0.11.0
|
ecmascript-runtime-server@0.11.0
|
||||||
ejson@1.1.1
|
ejson@1.1.2
|
||||||
email@2.2.0
|
email@2.2.1
|
||||||
es5-shim@4.8.0
|
es5-shim@4.8.0
|
||||||
fetch@0.1.1
|
fetch@0.1.1
|
||||||
geojson-utils@1.0.10
|
geojson-utils@1.0.10
|
||||||
google-config-ui@1.0.3
|
google-config-ui@1.0.3
|
||||||
google-oauth@1.4.1
|
google-oauth@1.4.2
|
||||||
hot-code-push@1.0.4
|
hot-code-push@1.0.4
|
||||||
html-tools@1.1.2
|
html-tools@1.1.2
|
||||||
htmljs@1.1.1
|
htmljs@1.1.1
|
||||||
@@ -52,19 +53,19 @@ meteortesting:browser-tests@1.3.5
|
|||||||
meteortesting:mocha@2.0.3
|
meteortesting:mocha@2.0.3
|
||||||
meteortesting:mocha-core@8.1.2
|
meteortesting:mocha-core@8.1.2
|
||||||
minifier-css@1.6.0
|
minifier-css@1.6.0
|
||||||
minifier-js@2.7.3
|
minifier-js@2.7.4
|
||||||
minimongo@1.8.0
|
minimongo@1.8.0
|
||||||
mobile-experience@1.1.0
|
mobile-experience@1.1.0
|
||||||
mobile-status-bar@1.1.0
|
mobile-status-bar@1.1.0
|
||||||
modern-browsers@0.1.7
|
modern-browsers@0.1.7
|
||||||
modules@0.18.0
|
modules@0.18.0
|
||||||
modules-runtime@0.12.0
|
modules-runtime@0.13.0
|
||||||
mongo@1.14.6
|
mongo@1.14.6
|
||||||
mongo-decimal@0.1.2
|
mongo-decimal@0.1.2
|
||||||
mongo-dev-server@1.1.0
|
mongo-dev-server@1.1.0
|
||||||
mongo-id@1.0.8
|
mongo-id@1.0.8
|
||||||
npm-mongo@4.3.1
|
npm-mongo@4.3.1
|
||||||
oauth@2.1.1
|
oauth@2.1.2
|
||||||
oauth2@1.3.1
|
oauth2@1.3.1
|
||||||
observe-sequence@1.0.19
|
observe-sequence@1.0.19
|
||||||
ordered-dict@1.1.0
|
ordered-dict@1.1.0
|
||||||
@@ -72,7 +73,7 @@ promise@0.12.0
|
|||||||
random@1.2.0
|
random@1.2.0
|
||||||
rate-limit@1.0.9
|
rate-limit@1.0.9
|
||||||
rdb:svelte-meteor-data@0.3.1
|
rdb:svelte-meteor-data@0.3.1
|
||||||
react-fast-refresh@0.2.2
|
react-fast-refresh@0.2.3
|
||||||
reactive-dict@1.3.0
|
reactive-dict@1.3.0
|
||||||
reactive-var@1.0.11
|
reactive-var@1.0.11
|
||||||
reload@1.3.1
|
reload@1.3.1
|
||||||
@@ -85,9 +86,8 @@ shell-server@0.5.0
|
|||||||
socket-stream-client@0.4.0
|
socket-stream-client@0.4.0
|
||||||
spacebars@1.2.0
|
spacebars@1.2.0
|
||||||
spacebars-compiler@1.3.0
|
spacebars-compiler@1.3.0
|
||||||
standard-minifier-css@1.7.4
|
standard-minifier-css@1.8.1
|
||||||
standard-minifier-js@2.8.0
|
standard-minifier-js@2.8.0
|
||||||
static-html@1.3.2
|
|
||||||
svelte:blaze-integration@0.4.0
|
svelte:blaze-integration@0.4.0
|
||||||
svelte:compiler@3.46.4
|
svelte:compiler@3.46.4
|
||||||
templating@1.4.1
|
templating@1.4.1
|
||||||
@@ -95,7 +95,7 @@ templating-compiler@1.4.1
|
|||||||
templating-runtime@1.5.0
|
templating-runtime@1.5.0
|
||||||
templating-tools@1.2.1
|
templating-tools@1.2.1
|
||||||
tracker@1.2.0
|
tracker@1.2.0
|
||||||
typescript@4.4.1
|
typescript@4.5.4
|
||||||
underscore@1.0.10
|
underscore@1.0.10
|
||||||
url@1.3.2
|
url@1.3.2
|
||||||
webapp@1.13.1
|
webapp@1.13.1
|
||||||
|
|||||||
239
client/main.css
239
client/main.css
@@ -1,9 +1,8 @@
|
|||||||
/* CSS declarations go here */
|
/* CSS declarations go here */
|
||||||
|
@import url(https://fonts.googleapis.com/css?family=Lato:400,300,300italic,400italic,700,700italic);
|
||||||
body {
|
body {
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
font-family: sans-serif;
|
font-family: sans-serif;
|
||||||
background-color: #315481;
|
|
||||||
background-image: linear-gradient(to bottom, #315481, #918e82 100%);
|
|
||||||
background-attachment: fixed;
|
background-attachment: fixed;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -15,13 +14,6 @@ body {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.container {
|
|
||||||
max-width: 600px;
|
|
||||||
margin: 0 auto;
|
|
||||||
min-height: 100%;
|
|
||||||
background: white;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
header {
|
||||||
background: #d2edf4;
|
background: #d2edf4;
|
||||||
background-image: linear-gradient(to bottom, #d0edf5, #e1e5f0 100%);
|
background-image: linear-gradient(to bottom, #d0edf5, #e1e5f0 100%);
|
||||||
@@ -35,10 +27,8 @@ header {
|
|||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
font-size: 1.5em;
|
font-size: 1.5em;
|
||||||
margin: 0;
|
margin: 0 0 1rem 0;
|
||||||
margin-bottom: 10px;
|
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-right: 1em;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
form {
|
form {
|
||||||
@@ -122,5 +112,230 @@ header .hide-completed {
|
|||||||
padding-bottom: 5px;
|
padding-bottom: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ROOT FONT STYLES */
|
||||||
|
* {
|
||||||
|
font-family: "Lato", Helvetica, sans-serif;
|
||||||
|
color: #333447;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TYPOGRAPHY */
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 1.125rem;
|
||||||
|
font-weight: 200;
|
||||||
|
line-height: 1.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-light {
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-regular {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-heavy {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* POSITIONING */
|
||||||
|
.left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
text-align: center;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==== GRID SYSTEM ==== */
|
||||||
|
.container {
|
||||||
|
width: 90%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.row [class^=col] {
|
||||||
|
float: left;
|
||||||
|
margin: 0.5rem 2%;
|
||||||
|
min-height: 0.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
|
||||||
|
width: 96%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-1-sm {
|
||||||
|
width: 4.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-2-sm {
|
||||||
|
width: 12.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-3-sm {
|
||||||
|
width: 21%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-4-sm {
|
||||||
|
width: 29.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-5-sm {
|
||||||
|
width: 37.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-6-sm {
|
||||||
|
width: 46%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-7-sm {
|
||||||
|
width: 54.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-8-sm {
|
||||||
|
width: 62.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-9-sm {
|
||||||
|
width: 71%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-10-sm {
|
||||||
|
width: 79.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-11-sm {
|
||||||
|
width: 87.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-12-sm {
|
||||||
|
width: 96%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row::after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-sm {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 33.75em) {
|
||||||
|
/* 540px */
|
||||||
|
.container {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 45em) {
|
||||||
|
/* 720px */
|
||||||
|
.col-1 {
|
||||||
|
width: 4.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-2 {
|
||||||
|
width: 12.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-3 {
|
||||||
|
width: 21%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-4 {
|
||||||
|
width: 29.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-5 {
|
||||||
|
width: 37.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-6 {
|
||||||
|
width: 46%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-7 {
|
||||||
|
width: 54.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-8 {
|
||||||
|
width: 62.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-9 {
|
||||||
|
width: 71%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-10 {
|
||||||
|
width: 79.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-11 {
|
||||||
|
width: 87.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-12 {
|
||||||
|
width: 96%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-sm {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 60em) {
|
||||||
|
/* 960px */
|
||||||
|
.container {
|
||||||
|
width: 75%;
|
||||||
|
max-width: 60rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*# sourceMappingURL=main.css.map */
|
/*# sourceMappingURL=main.css.map */
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"version":3,"sourceRoot":"","sources":["main.sass"],"names":[],"mappings":"AAAA;AACA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;IACC;;;EAED;IACC;IACA;;;EAED;IACC","file":"main.css"}
|
{"version":3,"sourceRoot":"","sources":["main.sass","simple-grid.sass"],"names":[],"mappings":"AAAA;ACAQ;ADCR;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAQD;EACC;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;EACA;EACA;;;AAED;EACC;EACA;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;IACC;;;EAED;IACC;IACA;;;EAED;IACC;;;AChGF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;AAEA;EACC;EACA;EACA;;;AAED;AAEA;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;AAEA;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAED;AAEA;EACC;EACA;EACA;;;AAED;EACC;EACA;;AAEA;EACC;EACA;EACA;;;AAEF;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAED;AACC;EAEA;IACC;;;AAEF;AACC;EAEA;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;AAEF;AACC;EAEA;IACC;IACA","file":"main.css"}
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>District Central</title>
|
<title>District Central</title>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,6 @@
|
|||||||
body
|
body
|
||||||
padding: 10px
|
padding: 10px
|
||||||
font-family: sans-serif
|
font-family: sans-serif
|
||||||
background-color: #315481
|
|
||||||
background-image: linear-gradient(to bottom, #315481, #918e82 100%)
|
|
||||||
background-attachment: fixed
|
background-attachment: fixed
|
||||||
position: absolute
|
position: absolute
|
||||||
top: 0
|
top: 0
|
||||||
@@ -14,11 +12,11 @@ body
|
|||||||
margin: 0
|
margin: 0
|
||||||
font-size: 14px
|
font-size: 14px
|
||||||
|
|
||||||
.container
|
//.container
|
||||||
max-width: 600px
|
// max-width: 600px
|
||||||
margin: 0 auto
|
// margin: 0 auto
|
||||||
min-height: 100%
|
// min-height: 100%
|
||||||
background: white
|
// background: white
|
||||||
|
|
||||||
header
|
header
|
||||||
background: #d2edf4
|
background: #d2edf4
|
||||||
@@ -31,10 +29,8 @@ header
|
|||||||
|
|
||||||
h1
|
h1
|
||||||
font-size: 1.5em
|
font-size: 1.5em
|
||||||
margin: 0
|
margin: 0 0 1rem 0
|
||||||
margin-bottom: 10px
|
|
||||||
display: inline-block
|
display: inline-block
|
||||||
margin-right: 1em
|
|
||||||
|
|
||||||
form
|
form
|
||||||
margin-top: 10px
|
margin-top: 10px
|
||||||
@@ -100,4 +96,6 @@ header .hide-completed
|
|||||||
clear: both
|
clear: both
|
||||||
|
|
||||||
.new-task input
|
.new-task input
|
||||||
padding-bottom: 5px
|
padding-bottom: 5px
|
||||||
|
|
||||||
|
@import "./simple-grid.sass"
|
||||||
|
|||||||
228
client/simple-grid.css
Normal file
228
client/simple-grid.css
Normal file
@@ -0,0 +1,228 @@
|
|||||||
|
@import url(https://fonts.googleapis.com/css?family=Lato:400,300,300italic,400italic,700,700italic);
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
font-size: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ROOT FONT STYLES */
|
||||||
|
* {
|
||||||
|
font-family: "Lato", Helvetica, sans-serif;
|
||||||
|
color: #333447;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* TYPOGRAPHY */
|
||||||
|
h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.375rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 0.875rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 1.125rem;
|
||||||
|
font-weight: 200;
|
||||||
|
line-height: 1.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-light {
|
||||||
|
font-weight: 300;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-regular {
|
||||||
|
font-weight: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.font-heavy {
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* POSITIONING */
|
||||||
|
.left {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
.center {
|
||||||
|
text-align: center;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.justify {
|
||||||
|
text-align: justify;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==== GRID SYSTEM ==== */
|
||||||
|
.container {
|
||||||
|
width: 90%;
|
||||||
|
margin-left: auto;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.row [class^=col] {
|
||||||
|
float: left;
|
||||||
|
margin: 0.5rem 2%;
|
||||||
|
min-height: 0.125rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
|
||||||
|
width: 96%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-1-sm {
|
||||||
|
width: 4.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-2-sm {
|
||||||
|
width: 12.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-3-sm {
|
||||||
|
width: 21%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-4-sm {
|
||||||
|
width: 29.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-5-sm {
|
||||||
|
width: 37.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-6-sm {
|
||||||
|
width: 46%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-7-sm {
|
||||||
|
width: 54.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-8-sm {
|
||||||
|
width: 62.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-9-sm {
|
||||||
|
width: 71%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-10-sm {
|
||||||
|
width: 79.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-11-sm {
|
||||||
|
width: 87.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-12-sm {
|
||||||
|
width: 96%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row::after {
|
||||||
|
content: "";
|
||||||
|
display: table;
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-sm {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media only screen and (min-width: 33.75em) {
|
||||||
|
/* 540px */
|
||||||
|
.container {
|
||||||
|
width: 80%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 45em) {
|
||||||
|
/* 720px */
|
||||||
|
.col-1 {
|
||||||
|
width: 4.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-2 {
|
||||||
|
width: 12.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-3 {
|
||||||
|
width: 21%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-4 {
|
||||||
|
width: 29.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-5 {
|
||||||
|
width: 37.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-6 {
|
||||||
|
width: 46%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-7 {
|
||||||
|
width: 54.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-8 {
|
||||||
|
width: 62.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-9 {
|
||||||
|
width: 71%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-10 {
|
||||||
|
width: 79.33%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-11 {
|
||||||
|
width: 87.66%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-12 {
|
||||||
|
width: 96%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hidden-sm {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media only screen and (min-width: 60em) {
|
||||||
|
/* 960px */
|
||||||
|
.container {
|
||||||
|
width: 75%;
|
||||||
|
max-width: 60rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=simple-grid.css.map */
|
||||||
1
client/simple-grid.css.map
Normal file
1
client/simple-grid.css.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"sourceRoot":"","sources":["simple-grid.sass"],"names":[],"mappings":"AAAQ;AAER;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;;AAED;AAEA;EACC;EACA;EACA;;;AAED;AAEA;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;AAEA;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAED;AAEA;EACC;EACA;EACA;;;AAED;EACC;EACA;;AAEA;EACC;EACA;EACA;;;AAEF;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;;;AAED;EACC;EACA;EACA;;;AAED;EACC;;;AAED;AACC;EAEA;IACC;;;AAEF;AACC;EAEA;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;EAED;IACC;;;AAEF;AACC;EAEA;IACC;IACA","file":"simple-grid.css"}
|
||||||
185
client/simple-grid.sass
Normal file
185
client/simple-grid.sass
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
@import url(https://fonts.googleapis.com/css?family=Lato:400,300,300italic,400italic,700,700italic)
|
||||||
|
|
||||||
|
html, body
|
||||||
|
height: 100%
|
||||||
|
width: 100%
|
||||||
|
margin: 0
|
||||||
|
padding: 0
|
||||||
|
left: 0
|
||||||
|
top: 0
|
||||||
|
font-size: 100%
|
||||||
|
|
||||||
|
/* ROOT FONT STYLES
|
||||||
|
|
||||||
|
*
|
||||||
|
font-family: 'Lato', Helvetica, sans-serif
|
||||||
|
color: #333447
|
||||||
|
line-height: 1.5
|
||||||
|
|
||||||
|
/* TYPOGRAPHY
|
||||||
|
|
||||||
|
h1
|
||||||
|
font-size: 2.5rem
|
||||||
|
|
||||||
|
h2
|
||||||
|
font-size: 2rem
|
||||||
|
|
||||||
|
h3
|
||||||
|
font-size: 1.375rem
|
||||||
|
|
||||||
|
h4
|
||||||
|
font-size: 1.125rem
|
||||||
|
|
||||||
|
h5
|
||||||
|
font-size: 1rem
|
||||||
|
|
||||||
|
h6
|
||||||
|
font-size: 0.875rem
|
||||||
|
|
||||||
|
p
|
||||||
|
font-size: 1.125rem
|
||||||
|
font-weight: 200
|
||||||
|
line-height: 1.8
|
||||||
|
|
||||||
|
.font-light
|
||||||
|
font-weight: 300
|
||||||
|
|
||||||
|
.font-regular
|
||||||
|
font-weight: 400
|
||||||
|
|
||||||
|
.font-heavy
|
||||||
|
font-weight: 700
|
||||||
|
|
||||||
|
/* POSITIONING
|
||||||
|
|
||||||
|
.left
|
||||||
|
text-align: left
|
||||||
|
|
||||||
|
.right
|
||||||
|
text-align: right
|
||||||
|
|
||||||
|
.center
|
||||||
|
text-align: center
|
||||||
|
margin-left: auto
|
||||||
|
margin-right: auto
|
||||||
|
|
||||||
|
.justify
|
||||||
|
text-align: justify
|
||||||
|
|
||||||
|
/* ==== GRID SYSTEM ====
|
||||||
|
|
||||||
|
.container
|
||||||
|
width: 90%
|
||||||
|
margin-left: auto
|
||||||
|
margin-right: auto
|
||||||
|
|
||||||
|
.row
|
||||||
|
position: relative
|
||||||
|
width: 100%
|
||||||
|
|
||||||
|
[class^="col"]
|
||||||
|
float: left
|
||||||
|
margin: 0.5rem 2%
|
||||||
|
min-height: 0.125rem
|
||||||
|
|
||||||
|
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12
|
||||||
|
width: 96%
|
||||||
|
|
||||||
|
.col-1-sm
|
||||||
|
width: 4.33%
|
||||||
|
|
||||||
|
.col-2-sm
|
||||||
|
width: 12.66%
|
||||||
|
|
||||||
|
.col-3-sm
|
||||||
|
width: 21%
|
||||||
|
|
||||||
|
.col-4-sm
|
||||||
|
width: 29.33%
|
||||||
|
|
||||||
|
.col-5-sm
|
||||||
|
width: 37.66%
|
||||||
|
|
||||||
|
.col-6-sm
|
||||||
|
width: 46%
|
||||||
|
|
||||||
|
.col-7-sm
|
||||||
|
width: 54.33%
|
||||||
|
|
||||||
|
.col-8-sm
|
||||||
|
width: 62.66%
|
||||||
|
|
||||||
|
.col-9-sm
|
||||||
|
width: 71%
|
||||||
|
|
||||||
|
.col-10-sm
|
||||||
|
width: 79.33%
|
||||||
|
|
||||||
|
.col-11-sm
|
||||||
|
width: 87.66%
|
||||||
|
|
||||||
|
.col-12-sm
|
||||||
|
width: 96%
|
||||||
|
|
||||||
|
.row::after
|
||||||
|
content: ""
|
||||||
|
display: table
|
||||||
|
clear: both
|
||||||
|
|
||||||
|
.hidden-sm
|
||||||
|
display: none
|
||||||
|
|
||||||
|
@media only screen and (min-width: 33.75em)
|
||||||
|
/* 540px
|
||||||
|
|
||||||
|
.container
|
||||||
|
width: 80%
|
||||||
|
|
||||||
|
@media only screen and (min-width: 45em)
|
||||||
|
/* 720px
|
||||||
|
|
||||||
|
.col-1
|
||||||
|
width: 4.33%
|
||||||
|
|
||||||
|
.col-2
|
||||||
|
width: 12.66%
|
||||||
|
|
||||||
|
.col-3
|
||||||
|
width: 21%
|
||||||
|
|
||||||
|
.col-4
|
||||||
|
width: 29.33%
|
||||||
|
|
||||||
|
.col-5
|
||||||
|
width: 37.66%
|
||||||
|
|
||||||
|
.col-6
|
||||||
|
width: 46%
|
||||||
|
|
||||||
|
.col-7
|
||||||
|
width: 54.33%
|
||||||
|
|
||||||
|
.col-8
|
||||||
|
width: 62.66%
|
||||||
|
|
||||||
|
.col-9
|
||||||
|
width: 71%
|
||||||
|
|
||||||
|
.col-10
|
||||||
|
width: 79.33%
|
||||||
|
|
||||||
|
.col-11
|
||||||
|
width: 87.66%
|
||||||
|
|
||||||
|
.col-12
|
||||||
|
width: 96%
|
||||||
|
|
||||||
|
.hidden-sm
|
||||||
|
display: block
|
||||||
|
|
||||||
|
@media only screen and (min-width: 60em)
|
||||||
|
/* 960px
|
||||||
|
|
||||||
|
.container
|
||||||
|
width: 75%
|
||||||
|
max-width: 60rem
|
||||||
52
imports/api/data-collection.js
Normal file
52
imports/api/data-collection.js
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import { Meteor } from 'meteor/meteor';
|
||||||
|
import { Mongo } from 'meteor/mongo';
|
||||||
|
import { check } from 'meteor/check';
|
||||||
|
import { MongoClient } from 'mongodb';
|
||||||
|
|
||||||
|
//export const Records = new Mongo.Collection('records');
|
||||||
|
let client;
|
||||||
|
let database;
|
||||||
|
let dataCollection;
|
||||||
|
|
||||||
|
if (Meteor.isServer) {
|
||||||
|
let uri = process.env.MONGO_URL2;
|
||||||
|
|
||||||
|
client = new MongoClient(uri);
|
||||||
|
database = client.db("avusd-data-collection");
|
||||||
|
dataCollection = database.collection("records");
|
||||||
|
|
||||||
|
// This code only runs on the server
|
||||||
|
Meteor.publish('chromebookData', function(deviceId) {
|
||||||
|
check(deviceId, String);
|
||||||
|
|
||||||
|
return dataCollection.find({deviceId});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
Meteor.methods({
|
||||||
|
// 'tasks.setChecked'(taskId, setChecked) {
|
||||||
|
// check(taskId, String);
|
||||||
|
// check(setChecked, Boolean);
|
||||||
|
//
|
||||||
|
// const task = Tasks.findOne(taskId);
|
||||||
|
// if (task.private && task.owner !== this.userId) {
|
||||||
|
// // If the task is private, make sure only the owner can check it off
|
||||||
|
// throw new Meteor.Error('not-authorized');
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Tasks.update(taskId, { $set: { checked: setChecked } });
|
||||||
|
// },
|
||||||
|
// 'tasks.setPrivate'(taskId, setToPrivate) {
|
||||||
|
// check(taskId, String);
|
||||||
|
// check(setToPrivate, Boolean);
|
||||||
|
//
|
||||||
|
// const task = Tasks.findOne(taskId);
|
||||||
|
//
|
||||||
|
// // Make sure only the task owner can make a task private
|
||||||
|
// if (task.owner !== this.userId) {
|
||||||
|
// throw new Meteor.Error('not-authorized');
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// Tasks.update(taskId, { $set: { private: setToPrivate } });
|
||||||
|
// },
|
||||||
|
});
|
||||||
@@ -2,9 +2,21 @@ import { Meteor } from 'meteor/meteor';
|
|||||||
|
|
||||||
|
|
||||||
if (Meteor.isServer) {
|
if (Meteor.isServer) {
|
||||||
Meteor.methods({
|
Meteor.publish(null, function() {
|
||||||
'users.login'() {
|
if(this.userId) {
|
||||||
console.log("Login Called.");
|
return Meteor.roleAssignment.find({'user._id': this.userId});
|
||||||
}
|
}
|
||||||
});
|
else {
|
||||||
}
|
this.ready();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Meteor.methods({
|
||||||
|
// 'users.setupInitialRoles'() {
|
||||||
|
// Roles.createRole('admin');
|
||||||
|
// Roles.createRole('laptop-management');
|
||||||
|
// Roles.addRolesToParent('laptop-management', 'admin');
|
||||||
|
// Roles.addUsersToRoles("zwbMiaSKHix4bWQ8d", 'admin', 'global');
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import { Accounts } from 'meteor/accounts-base'
|
import { Accounts } from 'meteor/accounts-base'
|
||||||
|
|
||||||
Accounts.ui.config({
|
if(Meteor.isCLient) {
|
||||||
passwordSignupFields: 'USERNAME_ONLY'
|
Accounts.ui.config({
|
||||||
});
|
passwordSignupFields: 'USERNAME_ONLY'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
Accounts.config({
|
Accounts.config({
|
||||||
restrictCreationByEmailDomain: function(address) {
|
restrictCreationByEmailDomain: function(address) {
|
||||||
|
|||||||
5
imports/ui/App.css
Normal file
5
imports/ui/App.css
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
nav {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*# sourceMappingURL=App.css.map */
|
||||||
1
imports/ui/App.css.map
Normal file
1
imports/ui/App.css.map
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"version":3,"sourceRoot":"","sources":["App.sass"],"names":[],"mappings":"AAAA;EACC","file":"App.css"}
|
||||||
2
imports/ui/App.sass
Normal file
2
imports/ui/App.sass
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
nav
|
||||||
|
font-size: 1.4rem
|
||||||
@@ -1,12 +1,159 @@
|
|||||||
|
|
||||||
|
<style>
|
||||||
|
nav {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
display: block;
|
||||||
|
color: green;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
background-color: #000121;
|
||||||
|
font-family: 'Roboto', sans-serif;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Forbidden CSS */
|
||||||
|
.maincontainer {
|
||||||
|
position: relative;
|
||||||
|
top: -50px;
|
||||||
|
transform: scale(0.8);
|
||||||
|
background: url("/public/images/forbidden/HauntedHouseBackground.png");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 700px 600px;
|
||||||
|
width: 800px;
|
||||||
|
height: 600px;
|
||||||
|
margin: 0px auto;
|
||||||
|
display: grid;
|
||||||
|
}
|
||||||
|
.foregroundimg {
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
top: -230px;
|
||||||
|
z-index: 5;
|
||||||
|
}
|
||||||
|
.errorcode {
|
||||||
|
position: relative;
|
||||||
|
top: -200px;
|
||||||
|
font-family: 'Creepster', cursive;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 6em;
|
||||||
|
letter-spacing: 0.1em;
|
||||||
|
}
|
||||||
|
.errortext {
|
||||||
|
position: relative;
|
||||||
|
top: -260px;
|
||||||
|
color: #FBD130;
|
||||||
|
text-align: center;
|
||||||
|
text-transform: uppercase;
|
||||||
|
font-size: 1.8em;
|
||||||
|
}
|
||||||
|
.bat {
|
||||||
|
opacity: 0;
|
||||||
|
position: relative;
|
||||||
|
transform-origin: center;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.bat:nth-child(1) {
|
||||||
|
top: 380px;
|
||||||
|
left: 120px;
|
||||||
|
transform: scale(0.5);
|
||||||
|
animation: 13s 1s flyBat1 infinite linear;
|
||||||
|
}
|
||||||
|
.bat:nth-child(2) {
|
||||||
|
top: 280px;
|
||||||
|
left: 80px;
|
||||||
|
transform: scale(0.3);
|
||||||
|
animation: 8s 4s flyBat2 infinite linear;
|
||||||
|
}
|
||||||
|
.bat:nth-child(3) {
|
||||||
|
top: 200px;
|
||||||
|
left: 150px;
|
||||||
|
transform: scale(0.4);
|
||||||
|
animation: 12s 2s flyBat3 infinite linear;
|
||||||
|
}
|
||||||
|
.body {
|
||||||
|
position: relative;
|
||||||
|
width: 50px;
|
||||||
|
top: 12px;
|
||||||
|
}
|
||||||
|
.wing {
|
||||||
|
width: 150px;
|
||||||
|
position: relative;
|
||||||
|
transform-origin: right center;
|
||||||
|
}
|
||||||
|
.leftwing {
|
||||||
|
left: 30px;
|
||||||
|
animation: 0.8s flapLeft infinite ease-in-out;
|
||||||
|
}
|
||||||
|
.rightwing {
|
||||||
|
left: -180px;
|
||||||
|
transform: scaleX(-1);
|
||||||
|
animation: 0.8s flapRight infinite ease-in-out;
|
||||||
|
}
|
||||||
|
@keyframes flapLeft {
|
||||||
|
0% { transform: rotateZ(0); }
|
||||||
|
50% { transform: rotateZ(10deg) rotateY(40deg); }
|
||||||
|
100% { transform: rotateZ(0); }
|
||||||
|
}
|
||||||
|
@keyframes flapRight {
|
||||||
|
0% { transform: scaleX(-1) rotateZ(0); }
|
||||||
|
50% { transform: scaleX(-1) rotateZ(10deg) rotateY(40deg); }
|
||||||
|
100% { transform: scaleX(-1) rotateZ(0); }
|
||||||
|
}
|
||||||
|
@keyframes flyBat1 {
|
||||||
|
0% { opacity: 1; transform: scale(0.5)}
|
||||||
|
25% { opacity: 1; transform: scale(0.5) translate(-400px, -330px) }
|
||||||
|
50% { opacity: 1; transform: scale(0.5) translate(400px, -800px) }
|
||||||
|
75% { opacity: 1; transform: scale(0.5) translate(600px, 100px) }
|
||||||
|
100% { opacity: 1; transform: scale(0.5) translate(100px, 300px) }
|
||||||
|
}
|
||||||
|
@keyframes flyBat2 {
|
||||||
|
0% { opacity: 1; transform: scale(0.3)}
|
||||||
|
25% { opacity: 1; transform: scale(0.3) translate(200px, -330px) }
|
||||||
|
50% { opacity: 1; transform: scale(0.3) translate(-300px, -800px) }
|
||||||
|
75% { opacity: 1; transform: scale(0.3) translate(-400px, 100px) }
|
||||||
|
100% { opacity: 1; transform: scale(0.3) translate(100px, 300px) }
|
||||||
|
}
|
||||||
|
@keyframes flyBat3 {
|
||||||
|
0% { opacity: 1; transform: scale(0.4)}
|
||||||
|
25% { opacity: 1; transform: scale(0.4) translate(-350px, -330px) }
|
||||||
|
50% { opacity: 1; transform: scale(0.4) translate(400px, -800px) }
|
||||||
|
75% { opacity: 1; transform: scale(0.4) translate(-600px, 100px) }
|
||||||
|
100% { opacity: 1; transform: scale(0.4) translate(100px, 300px) }
|
||||||
|
}
|
||||||
|
/*@media only screen and (max-width: 850px) {
|
||||||
|
.maincontainer {
|
||||||
|
transform: scale(0.6);
|
||||||
|
width: 600px;
|
||||||
|
height: 400px;
|
||||||
|
background-size: 600px 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.errortext {
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {Meteor} from "meteor/meteor";
|
import {Meteor} from "meteor/meteor";
|
||||||
|
import {Route} from 'tinro';
|
||||||
import {onMount} from 'svelte';
|
import {onMount} from 'svelte';
|
||||||
import {useTracker} from 'meteor/rdb:svelte-meteor-data';
|
import {useTracker} from 'meteor/rdb:svelte-meteor-data';
|
||||||
|
import {Roles} from 'meteor/alanning:roles';
|
||||||
|
import Chromebooks from './Chromebooks.svelte';
|
||||||
import {BlazeTemplate} from 'meteor/svelte:blaze-integration';
|
import {BlazeTemplate} from 'meteor/svelte:blaze-integration';
|
||||||
import {Records} from '../api/records.js'
|
import {Records} from '../api/records.js'
|
||||||
import ServiceConfiguration from "meteor/service-configuration";
|
import ServiceConfiguration from "meteor/service-configuration";
|
||||||
|
|
||||||
let currentUser;
|
//import './imports/ui/App.css';
|
||||||
|
|
||||||
|
//let currentUser;
|
||||||
|
|
||||||
onMount(async () => {
|
onMount(async () => {
|
||||||
// Meteor.subscribe('records');
|
// Meteor.subscribe('records');
|
||||||
@@ -15,6 +162,18 @@
|
|||||||
// $: incompleteCount = useTracker(() => Tasks.find({checked: {$ne: true}}).count());
|
// $: incompleteCount = useTracker(() => Tasks.find({checked: {$ne: true}}).count());
|
||||||
|
|
||||||
$: currentUser = useTracker(() => Meteor.user());
|
$: currentUser = useTracker(() => Meteor.user());
|
||||||
|
$: isAdmin = useTracker(() => Roles.userIsInRole(currentUser._id, 'laptop-management', 'global'));
|
||||||
|
|
||||||
|
// Tracker.autorun(() => {
|
||||||
|
// let user = Meteor.user();
|
||||||
|
// let isManagement = user ? Roles.userIsInRole(user._id, 'laptop-management', 'global') : 0;
|
||||||
|
//
|
||||||
|
// if(user && isManagement) {
|
||||||
|
// new ProcessLaptops({
|
||||||
|
// target: document.getElementById('appView')
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
// const taskStore = Tasks.find({}, {sort: {createdAt: -1}});
|
// const taskStore = Tasks.find({}, {sort: {createdAt: -1}});
|
||||||
// $: {
|
// $: {
|
||||||
@@ -45,43 +204,66 @@
|
|||||||
function performLogout() {
|
function performLogout() {
|
||||||
Meteor.logout();
|
Meteor.logout();
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="container">
|
<Route path="/">
|
||||||
<header>
|
<div class="container">
|
||||||
<!-- <h1>Todo List ({ $incompleteCount })</h1>-->
|
<header class="row">
|
||||||
<!-- <label className="hide-completed">-->
|
<nav class="col-12 center">
|
||||||
<!-- <input-->
|
<h1>AVUSD District Central</h1>
|
||||||
<!-- type="checkbox"-->
|
<a href="/">Home</a>
|
||||||
<!-- bind:checked={hideCompleted}-->
|
{#if isAdmin}
|
||||||
<!-- />-->
|
<a href="/chromebooks">Chromebooks</a>
|
||||||
<!-- Hide Completed Tasks-->
|
{/if}
|
||||||
<!-- </label>-->
|
</nav>
|
||||||
|
{#if !$currentUser}
|
||||||
<!-- <BlazeTemplate template="loginButtons"/>-->
|
<button type="button" on:click={performLogin}>Login</button>
|
||||||
{#if !$currentUser}
|
{:else}
|
||||||
<button type="button" on:click={performLogin}>Login</button>
|
<button type="button" on:click={performLogout}>Logout</button>
|
||||||
{:else}
|
{/if}
|
||||||
<button type="button" on:click={performLogout}>Logout</button>
|
</header>
|
||||||
{/if}
|
</div>
|
||||||
|
</Route>
|
||||||
<!--{#if $currentUser}-->
|
{#if $currentUser}
|
||||||
<!-- <form class="new-task" on:submit|preventDefault={handleSubmit}>-->
|
{#if isAdmin}
|
||||||
<!-- <input-->
|
<Route path="/chromebooks/*">
|
||||||
<!-- type="text"-->
|
<Chromebooks/>
|
||||||
<!-- placeholder="Type to add new tasks"-->
|
</Route>
|
||||||
<!-- bind:value={newTask}-->
|
{:else}
|
||||||
<!-- />-->
|
<Route fallback redirect="/"/>
|
||||||
<!-- </form>-->
|
{/if}
|
||||||
<!--{/if}-->
|
{:else}
|
||||||
</header>
|
<div className="container" style="background-color: #4d4242">
|
||||||
<ul>
|
<div class="maincontainer row">
|
||||||
<!--{#each tasks as task}-->
|
<div class="bat">
|
||||||
<!-- <Task-->
|
<img class="wing leftwing"
|
||||||
<!-- key={task._id}-->
|
src="/images/forbidden/bat-wing.png">
|
||||||
<!-- task={task}-->
|
<img class="body"
|
||||||
<!-- />-->
|
src="/images/forbidden/bat-body.png" alt="bat">
|
||||||
<!--{/each}-->
|
<img class="wing rightwing"
|
||||||
</ul>
|
src="/images/forbidden/bat-wing.png">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="bat">
|
||||||
|
<img class="wing leftwing"
|
||||||
|
src="/images/forbidden/bat-wing.png">
|
||||||
|
<img class="body"
|
||||||
|
src="/images/forbidden/bat-body.png" alt="bat">
|
||||||
|
<img class="wing rightwing"
|
||||||
|
src="/images/forbidden/bat-wing.png">
|
||||||
|
</div>
|
||||||
|
<div class="bat">
|
||||||
|
<img class="wing leftwing"
|
||||||
|
src="/images/forbidden/bat-wing.png">
|
||||||
|
<img class="body"
|
||||||
|
src="/images/forbidden/bat-body.png" alt="bat">
|
||||||
|
<img class="wing rightwing"
|
||||||
|
src="/images/forbidden/bat-wing.png">
|
||||||
|
</div>
|
||||||
|
<img class="foregroundimg" src="/images/forbidden/HauntedHouseForeground.png" alt="haunted house">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<h1 class="errorcode">ERROR 403</h1>
|
||||||
|
<div class="errortext">This area is forbidden. Turn back now!</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|||||||
41
imports/ui/ChromebookScan.svelte
Normal file
41
imports/ui/ChromebookScan.svelte
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<style>
|
||||||
|
.error {
|
||||||
|
color: darkred;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<script>
|
||||||
|
import {Html5QrcodeScanner} from "html5-qrcode";
|
||||||
|
|
||||||
|
function onScanSuccess(decodedText, decodedResult) {
|
||||||
|
console.log('Code matched ' + decodedResult);
|
||||||
|
document.getElementById("log").prepend(decodedText);
|
||||||
|
}
|
||||||
|
|
||||||
|
function onScanFailure(error) {
|
||||||
|
}
|
||||||
|
|
||||||
|
function scanner() {
|
||||||
|
let html5QrcodeScanner = new Html5QrcodeScanner("reader", {
|
||||||
|
fps: 10,
|
||||||
|
qrbox: {width: 250, height: 250}
|
||||||
|
}, /* verbose */ false);
|
||||||
|
|
||||||
|
html5QrcodeScanner.render(onScanSuccess, onScanFailure);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<div className="container">
|
||||||
|
<div class="row">
|
||||||
|
Hello World!
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div use:scanner id="reader" width="300px"></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div id="log" class="col-12">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
34
imports/ui/Chromebooks.svelte
Normal file
34
imports/ui/Chromebooks.svelte
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
|
||||||
|
<style>
|
||||||
|
nav {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
a {
|
||||||
|
display: block;
|
||||||
|
color: green;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {Route} from 'tinro';
|
||||||
|
import ChromebookScan from './ChromebookScan.svelte';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<Route path="/">
|
||||||
|
<div className="container">
|
||||||
|
<div class="row">
|
||||||
|
<nav class="col-12 center">
|
||||||
|
<h1>Chromebook Management</h1>
|
||||||
|
<a href="chromebooks/scan">Scan A Chromebook</a>
|
||||||
|
<a href="chromebooks/byStudent">Chromebook History By Student</a>
|
||||||
|
<a href="chromebooks/byChromebook">Chromebook History By Chromebook</a>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</Route>
|
||||||
|
<Route path="/scan">
|
||||||
|
<ChromebookScan/>
|
||||||
|
</Route>
|
||||||
|
<Route path="/byStudent">TODO: Use student email to look up Chromebook history</Route>
|
||||||
|
<Route path="/byChromebook">TODO: Use chromebook ID (or picture of ID) to look up Chromebook history</Route>
|
||||||
12
imports/ui/ProcessLaptops.svelte
Normal file
12
imports/ui/ProcessLaptops.svelte
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<script>
|
||||||
|
import {Meteor} from "meteor/meteor";
|
||||||
|
import {onMount} from 'svelte';
|
||||||
|
|
||||||
|
onMount(async () => {
|
||||||
|
// Meteor.subscribe('records');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
<h1>Process Laptops</h1>
|
||||||
|
</div>
|
||||||
2
imports/util/JsBarcode.min.js
vendored
Normal file
2
imports/util/JsBarcode.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2363
imports/util/qrious.js
Normal file
2363
imports/util/qrious.js
Normal file
File diff suppressed because it is too large
Load Diff
1
imports/util/qrious.js.map
Normal file
1
imports/util/qrious.js.map
Normal file
File diff suppressed because one or more lines are too long
6
imports/util/qrious.min.js
vendored
Normal file
6
imports/util/qrious.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
imports/util/qrious.min.js.map
Normal file
1
imports/util/qrious.min.js.map
Normal file
File diff suppressed because one or more lines are too long
463
package-lock.json
generated
463
package-lock.json
generated
@@ -8,13 +8,17 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.16.7",
|
"@babel/runtime": "^7.16.7",
|
||||||
"connect-route": "^0.1.5",
|
"connect-route": "^0.1.5",
|
||||||
|
"html5-qrcode": "^2.2.0",
|
||||||
"jquery": "^3.6.0",
|
"jquery": "^3.6.0",
|
||||||
"meteor-node-stubs": "^1.0.0",
|
"meteor-node-stubs": "^1.0.0",
|
||||||
|
"mongodb": "^4.4.1",
|
||||||
"svelte": "^3.46.4",
|
"svelte": "^3.46.4",
|
||||||
|
"tinro": "^0.6.12",
|
||||||
"ws": "^8.4.2"
|
"ws": "^8.4.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "^4.2.0"
|
"chai": "^4.2.0",
|
||||||
|
"rollup-plugin-css-only": "^3.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
@@ -28,6 +32,38 @@
|
|||||||
"node": ">=6.9.0"
|
"node": ">=6.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@rollup/pluginutils": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"estree-walker": "^2.0.1",
|
||||||
|
"picomatch": "^2.2.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/node": {
|
||||||
|
"version": "17.0.23",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz",
|
||||||
|
"integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw=="
|
||||||
|
},
|
||||||
|
"node_modules/@types/webidl-conversions": {
|
||||||
|
"version": "6.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
|
||||||
|
"integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
|
||||||
|
},
|
||||||
|
"node_modules/@types/whatwg-url": {
|
||||||
|
"version": "8.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
|
||||||
|
"integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": "*",
|
||||||
|
"@types/webidl-conversions": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/assertion-error": {
|
"node_modules/assertion-error": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
|
||||||
@@ -37,6 +73,59 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/base64-js": {
|
||||||
|
"version": "1.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
|
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/bson": {
|
||||||
|
"version": "4.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz",
|
||||||
|
"integrity": "sha512-VeJKHShcu1b/ugl0QiujlVuBepab714X9nNyBdA1kfekuDGecxgpTA2Z6nYbagrWFeiIyzSWIOzju3lhj+RNyQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"buffer": "^5.6.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.9.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/buffer": {
|
||||||
|
"version": "5.7.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||||
|
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dependencies": {
|
||||||
|
"base64-js": "^1.3.1",
|
||||||
|
"ieee754": "^1.1.13"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/chai": {
|
"node_modules/chai": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
|
||||||
@@ -83,6 +172,20 @@
|
|||||||
"node": ">=0.12"
|
"node": ">=0.12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/denque": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/estree-walker": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"node_modules/get-func-name": {
|
"node_modules/get-func-name": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
|
||||||
@@ -92,11 +195,46 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/html5-qrcode": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-8fkxks2N0NEfHnhxmq7AQnDTvx3IWp0VD2h5yhHufDTflWhC1dXPy/Xvdl+tA9nOsPCRqirOOZpl/OQbTYhnSw=="
|
||||||
|
},
|
||||||
|
"node_modules/ieee754": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
||||||
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "github",
|
||||||
|
"url": "https://github.com/sponsors/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "patreon",
|
||||||
|
"url": "https://www.patreon.com/feross"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "consulting",
|
||||||
|
"url": "https://feross.org/support"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"node_modules/ip": {
|
||||||
|
"version": "1.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
||||||
|
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
|
||||||
|
},
|
||||||
"node_modules/jquery": {
|
"node_modules/jquery": {
|
||||||
"version": "3.6.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
||||||
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
|
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/memory-pager": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"node_modules/meteor-node-stubs": {
|
"node_modules/meteor-node-stubs": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.0.tgz",
|
||||||
@@ -781,6 +919,32 @@
|
|||||||
"node": ">=0.4"
|
"node": ">=0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/mongodb": {
|
||||||
|
"version": "4.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.4.1.tgz",
|
||||||
|
"integrity": "sha512-IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"bson": "^4.6.1",
|
||||||
|
"denque": "^2.0.1",
|
||||||
|
"mongodb-connection-string-url": "^2.5.2",
|
||||||
|
"socks": "^2.6.2"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.9.0"
|
||||||
|
},
|
||||||
|
"optionalDependencies": {
|
||||||
|
"saslprep": "^1.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/mongodb-connection-string-url": {
|
||||||
|
"version": "2.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz",
|
||||||
|
"integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/whatwg-url": "^8.2.1",
|
||||||
|
"whatwg-url": "^11.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/pathval": {
|
"node_modules/pathval": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
|
||||||
@@ -790,11 +954,89 @@
|
|||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/picomatch": {
|
||||||
|
"version": "2.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||||
|
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=8.6"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/jonschlinkert"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/punycode": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/regenerator-runtime": {
|
"node_modules/regenerator-runtime": {
|
||||||
"version": "0.13.9",
|
"version": "0.13.9",
|
||||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
|
||||||
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
|
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/rollup-plugin-css-only": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==",
|
||||||
|
"dev": true,
|
||||||
|
"dependencies": {
|
||||||
|
"@rollup/pluginutils": "4"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10.12.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"rollup": "1 || 2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/saslprep": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"sparse-bitfield": "^3.0.3"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/smart-buffer": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6.0.0",
|
||||||
|
"npm": ">= 3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/socks": {
|
||||||
|
"version": "2.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
|
||||||
|
"integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
|
||||||
|
"dependencies": {
|
||||||
|
"ip": "^1.1.5",
|
||||||
|
"smart-buffer": "^4.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 10.13.0",
|
||||||
|
"npm": ">= 3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/sparse-bitfield": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
|
||||||
|
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"memory-pager": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/svelte": {
|
"node_modules/svelte": {
|
||||||
"version": "3.46.4",
|
"version": "3.46.4",
|
||||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.46.4.tgz",
|
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.46.4.tgz",
|
||||||
@@ -803,6 +1045,22 @@
|
|||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tinro": {
|
||||||
|
"version": "0.6.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/tinro/-/tinro-0.6.12.tgz",
|
||||||
|
"integrity": "sha512-YYLh0a21GXXpS66ilZbywfXcPTKQQ+bv3tihoqKqSFQP6/F11N7ZmtRbFWcyZXXPFRSzNxmPJBB8ZhP0GkoS0Q=="
|
||||||
|
},
|
||||||
|
"node_modules/tr46": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
|
||||||
|
"dependencies": {
|
||||||
|
"punycode": "^2.1.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/type-detect": {
|
"node_modules/type-detect": {
|
||||||
"version": "4.0.8",
|
"version": "4.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
||||||
@@ -812,6 +1070,26 @@
|
|||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/webidl-conversions": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/whatwg-url": {
|
||||||
|
"version": "11.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
|
||||||
|
"integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"tr46": "^3.0.0",
|
||||||
|
"webidl-conversions": "^7.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ws": {
|
"node_modules/ws": {
|
||||||
"version": "8.4.2",
|
"version": "8.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz",
|
||||||
@@ -842,12 +1120,63 @@
|
|||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@rollup/pluginutils": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"estree-walker": "^2.0.1",
|
||||||
|
"picomatch": "^2.2.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/node": {
|
||||||
|
"version": "17.0.23",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz",
|
||||||
|
"integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw=="
|
||||||
|
},
|
||||||
|
"@types/webidl-conversions": {
|
||||||
|
"version": "6.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz",
|
||||||
|
"integrity": "sha512-XAahCdThVuCFDQLT7R7Pk/vqeObFNL3YqRyFZg+AqAP/W1/w3xHaIxuW7WszQqTbIBOPRcItYJIou3i/mppu3Q=="
|
||||||
|
},
|
||||||
|
"@types/whatwg-url": {
|
||||||
|
"version": "8.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.1.tgz",
|
||||||
|
"integrity": "sha512-2YubE1sjj5ifxievI5Ge1sckb9k/Er66HyR2c+3+I6VDUUg1TLPdYYTEbQ+DjRkS4nTxMJhgWfSfMRD2sl2EYQ==",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "*",
|
||||||
|
"@types/webidl-conversions": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"assertion-error": {
|
"assertion-error": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
|
||||||
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
|
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"base64-js": {
|
||||||
|
"version": "1.5.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||||
|
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
|
||||||
|
},
|
||||||
|
"bson": {
|
||||||
|
"version": "4.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/bson/-/bson-4.6.2.tgz",
|
||||||
|
"integrity": "sha512-VeJKHShcu1b/ugl0QiujlVuBepab714X9nNyBdA1kfekuDGecxgpTA2Z6nYbagrWFeiIyzSWIOzju3lhj+RNyQ==",
|
||||||
|
"requires": {
|
||||||
|
"buffer": "^5.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"buffer": {
|
||||||
|
"version": "5.7.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||||
|
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||||
|
"requires": {
|
||||||
|
"base64-js": "^1.3.1",
|
||||||
|
"ieee754": "^1.1.13"
|
||||||
|
}
|
||||||
|
},
|
||||||
"chai": {
|
"chai": {
|
||||||
"version": "4.2.0",
|
"version": "4.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz",
|
||||||
@@ -882,17 +1211,49 @@
|
|||||||
"type-detect": "^4.0.0"
|
"type-detect": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"denque": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
|
||||||
|
"integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ=="
|
||||||
|
},
|
||||||
|
"estree-walker": {
|
||||||
|
"version": "2.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||||
|
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"get-func-name": {
|
"get-func-name": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
|
||||||
"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
|
"integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"html5-qrcode": {
|
||||||
|
"version": "2.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/html5-qrcode/-/html5-qrcode-2.2.0.tgz",
|
||||||
|
"integrity": "sha512-8fkxks2N0NEfHnhxmq7AQnDTvx3IWp0VD2h5yhHufDTflWhC1dXPy/Xvdl+tA9nOsPCRqirOOZpl/OQbTYhnSw=="
|
||||||
|
},
|
||||||
|
"ieee754": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
|
||||||
|
},
|
||||||
|
"ip": {
|
||||||
|
"version": "1.1.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
||||||
|
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
|
||||||
|
},
|
||||||
"jquery": {
|
"jquery": {
|
||||||
"version": "3.6.0",
|
"version": "3.6.0",
|
||||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
||||||
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
|
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
|
||||||
},
|
},
|
||||||
|
"memory-pager": {
|
||||||
|
"version": "1.5.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
|
||||||
|
"integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
"meteor-node-stubs": {
|
"meteor-node-stubs": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/meteor-node-stubs/-/meteor-node-stubs-1.0.0.tgz",
|
||||||
@@ -1454,28 +1815,128 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"mongodb": {
|
||||||
|
"version": "4.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-4.4.1.tgz",
|
||||||
|
"integrity": "sha512-IAD3nFtCR4s22vi5qjqkCBnuyDDrOW8WVSSmgHquOvGaP1iTD+XpC5tr8wAUbZ2EeZkaswwBKQFHDvl4qYcKqQ==",
|
||||||
|
"requires": {
|
||||||
|
"bson": "^4.6.1",
|
||||||
|
"denque": "^2.0.1",
|
||||||
|
"mongodb-connection-string-url": "^2.5.2",
|
||||||
|
"saslprep": "^1.0.3",
|
||||||
|
"socks": "^2.6.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mongodb-connection-string-url": {
|
||||||
|
"version": "2.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.2.tgz",
|
||||||
|
"integrity": "sha512-tWDyIG8cQlI5k3skB6ywaEA5F9f5OntrKKsT/Lteub2zgwSUlhqEN2inGgBTm8bpYJf8QYBdA/5naz65XDpczA==",
|
||||||
|
"requires": {
|
||||||
|
"@types/whatwg-url": "^8.2.1",
|
||||||
|
"whatwg-url": "^11.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"pathval": {
|
"pathval": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
|
||||||
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
|
"integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"picomatch": {
|
||||||
|
"version": "2.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
||||||
|
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"punycode": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||||
|
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||||
|
},
|
||||||
"regenerator-runtime": {
|
"regenerator-runtime": {
|
||||||
"version": "0.13.9",
|
"version": "0.13.9",
|
||||||
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
|
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
|
||||||
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
|
"integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
|
||||||
},
|
},
|
||||||
|
"rollup-plugin-css-only": {
|
||||||
|
"version": "3.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/rollup-plugin-css-only/-/rollup-plugin-css-only-3.1.0.tgz",
|
||||||
|
"integrity": "sha512-TYMOE5uoD76vpj+RTkQLzC9cQtbnJNktHPB507FzRWBVaofg7KhIqq1kGbcVOadARSozWF883Ho9KpSPKH8gqA==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"@rollup/pluginutils": "4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"saslprep": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
|
||||||
|
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"sparse-bitfield": "^3.0.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"smart-buffer": {
|
||||||
|
"version": "4.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
|
||||||
|
"integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg=="
|
||||||
|
},
|
||||||
|
"socks": {
|
||||||
|
"version": "2.6.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
|
||||||
|
"integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
|
||||||
|
"requires": {
|
||||||
|
"ip": "^1.1.5",
|
||||||
|
"smart-buffer": "^4.2.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sparse-bitfield": {
|
||||||
|
"version": "3.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
|
||||||
|
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"memory-pager": "^1.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"svelte": {
|
"svelte": {
|
||||||
"version": "3.46.4",
|
"version": "3.46.4",
|
||||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.46.4.tgz",
|
"resolved": "https://registry.npmjs.org/svelte/-/svelte-3.46.4.tgz",
|
||||||
"integrity": "sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg=="
|
"integrity": "sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg=="
|
||||||
},
|
},
|
||||||
|
"tinro": {
|
||||||
|
"version": "0.6.12",
|
||||||
|
"resolved": "https://registry.npmjs.org/tinro/-/tinro-0.6.12.tgz",
|
||||||
|
"integrity": "sha512-YYLh0a21GXXpS66ilZbywfXcPTKQQ+bv3tihoqKqSFQP6/F11N7ZmtRbFWcyZXXPFRSzNxmPJBB8ZhP0GkoS0Q=="
|
||||||
|
},
|
||||||
|
"tr46": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==",
|
||||||
|
"requires": {
|
||||||
|
"punycode": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"type-detect": {
|
"type-detect": {
|
||||||
"version": "4.0.8",
|
"version": "4.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
|
||||||
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
|
"integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"webidl-conversions": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
|
||||||
|
},
|
||||||
|
"whatwg-url": {
|
||||||
|
"version": "11.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
|
||||||
|
"integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
|
||||||
|
"requires": {
|
||||||
|
"tr46": "^3.0.0",
|
||||||
|
"webidl-conversions": "^7.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ws": {
|
"ws": {
|
||||||
"version": "8.4.2",
|
"version": "8.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz",
|
||||||
|
|||||||
23
package.json
23
package.json
@@ -11,9 +11,12 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.16.7",
|
"@babel/runtime": "^7.16.7",
|
||||||
"connect-route": "^0.1.5",
|
"connect-route": "^0.1.5",
|
||||||
|
"html5-qrcode": "^2.2.0",
|
||||||
"jquery": "^3.6.0",
|
"jquery": "^3.6.0",
|
||||||
"meteor-node-stubs": "^1.0.0",
|
"meteor-node-stubs": "^1.0.0",
|
||||||
|
"mongodb": "^4.4.1",
|
||||||
"svelte": "^3.46.4",
|
"svelte": "^3.46.4",
|
||||||
|
"tinro": "^0.6.12",
|
||||||
"ws": "^8.4.2"
|
"ws": "^8.4.2"
|
||||||
},
|
},
|
||||||
"meteor": {
|
"meteor": {
|
||||||
@@ -21,9 +24,25 @@
|
|||||||
"client": "client/main.js",
|
"client": "client/main.js",
|
||||||
"server": "server/main.js"
|
"server": "server/main.js"
|
||||||
},
|
},
|
||||||
"testModule": "tests/main.js"
|
"testModule": "tests/main.js",
|
||||||
|
"nodeModules": {
|
||||||
|
"recompile": {
|
||||||
|
"svelte": [
|
||||||
|
"legacy"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"svelte:compiler": {
|
||||||
|
"extensions": [
|
||||||
|
"svelte",
|
||||||
|
"html"
|
||||||
|
],
|
||||||
|
"hydratable": true,
|
||||||
|
"css": true
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"chai": "^4.2.0"
|
"chai": "^4.2.0",
|
||||||
|
"rollup-plugin-css-only": "^3.1.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
public/favicon.png
Normal file
BIN
public/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
BIN
public/images/forbidden/HauntedHouseForeground.png
Normal file
BIN
public/images/forbidden/HauntedHouseForeground.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 144 KiB |
BIN
public/images/forbidden/bat-body.png
Normal file
BIN
public/images/forbidden/bat-body.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
public/images/forbidden/bat-wing.png
Normal file
BIN
public/images/forbidden/bat-wing.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
49
readme.md
49
readme.md
@@ -1,6 +1,9 @@
|
|||||||
#Login
|
# Login
|
||||||
##Google
|
|
||||||
|
## Google
|
||||||
|
|
||||||
This app is using the Google (oauth2) API to manage logins. To do that you have to have a service configuration in the database. Place the following in the XXX collection:
|
This app is using the Google (oauth2) API to manage logins. To do that you have to have a service configuration in the database. Place the following in the XXX collection:
|
||||||
|
|
||||||
```
|
```
|
||||||
{
|
{
|
||||||
service: 'google',
|
service: 'google',
|
||||||
@@ -8,3 +11,45 @@ This app is using the Google (oauth2) API to manage logins. To do that you have
|
|||||||
secret: 'xxx'
|
secret: 'xxx'
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
# Roles
|
||||||
|
|
||||||
|
We are using the alanning:roles package to manage roles and attach them to users. Currently the project has no way to bootstrap the roles and assignment of an initial admin role. To work around this first log in with a user you want to be admin (so a user record exists), then get the _id of the user you created, and then use the following MongoDB queries to set things up:
|
||||||
|
|
||||||
|
```json
|
||||||
|
use DistrictCentral
|
||||||
|
db.createCollection("roles")
|
||||||
|
db.roles.insertMany([
|
||||||
|
{
|
||||||
|
"_id": "laptop-management",
|
||||||
|
"children": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "admin",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"_id": "laptop-management"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
])
|
||||||
|
db.createCollection('role-assignment')
|
||||||
|
db.role-assignment.insert({
|
||||||
|
"role": {
|
||||||
|
"_id": "admin"
|
||||||
|
},
|
||||||
|
"scope": "global",
|
||||||
|
"user": {
|
||||||
|
"_id": "zwbMiaSKHix4bWQ8d"
|
||||||
|
},
|
||||||
|
"inheritedRoles": [
|
||||||
|
{
|
||||||
|
"_id": "admin"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"_id": "laptop-management"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import '../imports/api/';
|
import '../imports/api/';
|
||||||
import './google-oauth.js';
|
import './google-oauth.js';
|
||||||
|
import '/imports/startup/accounts-config.js';
|
||||||
|
|
||||||
import url from 'url';
|
import url from 'url';
|
||||||
//import './google-oauth.js';
|
//import './google-oauth.js';
|
||||||
|
|||||||
Reference in New Issue
Block a user