klick on selectes dates unselects it

.dockerignore added
mongo adapted to newest version
package.json: all debedencies updated
This commit is contained in:
rxf
2026-01-18 10:19:10 +01:00
parent a24e491257
commit b0ee6043fa
10 changed files with 835 additions and 1071 deletions

8
.dockerignore Normal file
View File

@@ -0,0 +1,8 @@
node_modules
npm-debug.log
.git
.gitignore
.env
.DS_Store
log
*.log

2
.gitignore vendored
View File

@@ -1,4 +1,4 @@
node_modules node_modules
*.tgz
.DS_* .DS_*
log log
.env

90
bin/www
View File

@@ -1,90 +0,0 @@
#!/usr/bin/env node
/**
* Module dependencies.
*/
var app = require('../app');
var debug = require('debug')('Spritzschema:server');
var http = require('http');
/**
* Get port from environment and store in Express.
*/
var port = normalizePort(process.env.PORT || '3200');
app.set('port', port);
/**
* Create HTTP server.
*/
var server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
/**
* Normalize a port into a number, string, or false.
*/
function normalizePort(val) {
var port = parseInt(val, 10);
if (isNaN(port)) {
// named pipe
return val;
}
if (port >= 0) {
// port number
return port;
}
return false;
}
/**
* Event listener for HTTP server "error" event.
*/
function onError(error) {
if (error.syscall !== 'listen') {
throw error;
}
var bind = typeof port === 'string'
? 'Pipe ' + port
: 'Port ' + port;
// handle specific listen errors with friendly messages
switch (error.code) {
case 'EACCES':
console.error(bind + ' requires elevated privileges');
process.exit(1);
break;
case 'EADDRINUSE':
console.error(bind + ' is already in use');
process.exit(1);
break;
default:
throw error;
}
}
/**
* Event listener for HTTP server "listening" event.
*/
function onListening() {
var addr = server.address();
var bind = typeof addr === 'string'
? 'pipe ' + addr
: 'port ' + addr.port;
debug('Listening on ' + bind);
}

View File

@@ -21,8 +21,8 @@ services:
dockerfile: Dockerfile_spritzschema dockerfile: Dockerfile_spritzschema
volumes: volumes:
- ${PWD}/log:/var/log - ${PWD}/log:/var/log
#ports: ports:
# - '3100:3014' - '3200:3200'
container_name: spritzschema container_name: spritzschema
environment: environment:
- MONGOHOST=mongodb - MONGOHOST=mongodb

View File

@@ -1,216 +0,0 @@
internal/modules/cjs/loader.js:550
throw err;
^
Error: Cannot find module '/opt/app/bin/www.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
at Function.Module._load (internal/modules/cjs/loader.js:475:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3)
internal/modules/cjs/loader.js:550
throw err;
^
Error: Cannot find module '/opt/app/bin/www.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
at Function.Module._load (internal/modules/cjs/loader.js:475:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3)
internal/modules/cjs/loader.js:550
throw err;
^
Error: Cannot find module '/opt/app/bin/www.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
at Function.Module._load (internal/modules/cjs/loader.js:475:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3)
internal/modules/cjs/loader.js:550
throw err;
^
Error: Cannot find module '/opt/app/bin/www.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
at Function.Module._load (internal/modules/cjs/loader.js:475:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3)
internal/modules/cjs/loader.js:550
throw err;
^
Error: Cannot find module '/opt/app/bin/www.js'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:548:15)
at Function.Module._load (internal/modules/cjs/loader.js:475:25)
at Function.Module.runMain (internal/modules/cjs/loader.js:695:10)
at startup (internal/bootstrap/node.js:201:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:516:3)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
/opt/app/node_modules/mongodb/lib/operations/add_user.js:16
this.options = options ?? {};
^
SyntaxError: Unexpected token ?
at new Script (vm.js:51:7)
at createScript (vm.js:136:10)
at Object.runInThisContext (vm.js:197:10)
at Module._compile (internal/modules/cjs/loader.js:618:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:665:10)
at Module.load (internal/modules/cjs/loader.js:566:32)
at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
at Function.Module._load (internal/modules/cjs/loader.js:498:3)
at Module.require (internal/modules/cjs/loader.js:598:17)
at require (internal/modules/cjs/helpers.js:11:18)
GET / 200 129.693 ms - 1506
GET /stylesheets/style.css 200 2.144 ms - 1401
GET /javascripts/script.js 200 1.857 ms - 3544
POST /data 200 36.148 ms - 112
GET /data 200 8.668 ms - 1344
GET /favicon.ico 404 18.839 ms - 1191
GET /apple-touch-icon-precomposed.png 404 10.870 ms - 1191
GET /apple-touch-icon.png 404 6.037 ms - 1191
POST /data 200 16.301 ms - 112
POST /data 200 19.368 ms - 112
POST /data 200 27.182 ms - 112
POST /data 200 21.520 ms - 112
POST /data 200 19.805 ms - 112
GET / 304 30.570 ms - -
GET /stylesheets/style.css 304 0.815 ms - -
GET /javascripts/script.js 304 0.457 ms - -
POST /data 200 6.669 ms - 112
GET /data 200 6.880 ms - 1344
GET / 304 36.222 ms - -
GET /javascripts/script.js 304 0.884 ms - -
GET /stylesheets/style.css 304 1.445 ms - -
POST /data 200 6.596 ms - 112
GET /data 200 5.509 ms - 1344
POST /data 200 24.185 ms - 112
POST /data 200 16.616 ms - 112
POST /data 200 18.812 ms - 112
GET / 200 44.980 ms - 1506
GET /javascripts/script.js 304 0.314 ms - -
GET /stylesheets/style.css 304 0.354 ms - -
POST /data 200 7.021 ms - 112
GET /data 200 5.864 ms - 1344

View File

@@ -16,7 +16,7 @@ let COLLECTION = 'spritzschema'
if (options.testing) { if (options.testing) {
COLLECTION = 'spritzschema_test' COLLECTION = 'spritzschema_test'
} }
const client = new MongoClient(MONGO_URL, { useUnifiedTopology: true }) const client = new MongoClient(MONGO_URL)
try { try {
await client.connect() await client.connect()
if (cmd === 'getdata') { if (cmd === 'getdata') {

1552
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,20 @@
{ {
"name": "spritzschema", "name": "spritzschema",
"version": "1.2.2", "version": "1.3.0",
"date": "2023-07-06", "date": "2026-01-18",
"type": "module", "type": "module",
"private": true, "private": true,
"scripts": { "scripts": {
"start": "node ./bin/www.js >>/var/log/spritzschema.log 2>&1" "start": "node ./bin/www.js >>/var/log/spritzschema.log 2>&1"
}, },
"dependencies": { "dependencies": {
"cookie-parser": "~1.4.4", "cookie-parser": "~1.4.7",
"debug": "~2.6.9", "debug": "~4.4.3",
"express": "^4.18.2", "express": "^5.2.1",
"http-errors": "~1.6.3", "http-errors": "~2.0.1",
"mongodb": "^5.4.0", "mongodb": "^7.0.0",
"morgan": "~1.9.1", "morgan": "^1.10.1",
"pug": "^3.0.2" "pug": "^3.0.3"
} }
} }

View File

@@ -22,8 +22,10 @@ document.addEventListener('DOMContentLoaded', async function () {
let field = e.target; let field = e.target;
let d = schema.data[34].day let d = schema.data[34].day
field.setAttribute('aria-label','x'); field.setAttribute('aria-label','x');
field.setAttribute('disabled','disabled'); // field.setAttribute('disabled','disabled');
schema.data[parseInt(field.id.slice(2))-1].status = true let status = schema.data[parseInt(field.id.slice(2))-1].status
status = !status
schema.data[parseInt(field.id.slice(2))-1].status = status
schema.data[parseInt(field.id.slice(2))-1].einheit = curEinheit schema.data[parseInt(field.id.slice(2))-1].einheit = curEinheit
await storeData(schema) await storeData(schema)
fillSchema(schema) fillSchema(schema)
@@ -69,10 +71,10 @@ document.addEventListener('DOMContentLoaded', async function () {
document.querySelector(sel).innerHTML = buildCellHtml(day, setArray[i].einheit) document.querySelector(sel).innerHTML = buildCellHtml(day, setArray[i].einheit)
if (setArray[i].status) { if (setArray[i].status) {
document.querySelector(sel).setAttribute('aria-label', 'x') document.querySelector(sel).setAttribute('aria-label', 'x')
document.querySelector(sel).setAttribute('disabled', 'disabled') // document.querySelector(sel).setAttribute('disabled', 'disabled')
} else { } else {
document.querySelector(sel).setAttribute('aria-label', '') document.querySelector(sel).setAttribute('aria-label', '')
document.querySelector(sel).removeAttribute('disabled') // document.querySelector(sel).removeAttribute('disabled')
} }
} else { } else {
document.querySelector(sel).setAttribute('disabled', 'disabled') document.querySelector(sel).setAttribute('disabled', 'disabled')

View File

@@ -87,5 +87,4 @@ footer {
} }
#wtg { #wtg {
float: left; float: left;
margin-left: -20px;
} }