diff --git a/CHANGELOG.md b/CHANGELOG.md index 685ebca74..3e69b75b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,39 @@ +## Release Muc-20 (14.02.2025) + +

Bug +

+ + +

Aufgabe +

+ + +

Story +

+ + + + + ## Release Muc-19 (17.01.2025)

Bug diff --git a/zmsadmin/js/block/scope/emergencyend.js b/zmsadmin/js/block/scope/emergencyend.js new file mode 100644 index 000000000..0667cd603 --- /dev/null +++ b/zmsadmin/js/block/scope/emergencyend.js @@ -0,0 +1,40 @@ +import $ from 'jquery' + +class EndEmergencyView { + + constructor(element, options) { + this.includeUrl = options.includeurl + this.scope = options.scope + this.workstationName = "" + options.workstationname + this.data = {} + this.$ = $(element) + + this.$.find('.emergency__button-end').on('click', this.endEmergency.bind(this)) + } + + endEmergency() { + this.update({ activated: "0", calledByWorkstation: "-1", acceptedByWorkstation: "-1" }) + this.sendEmergencyCancel() + } + + update(newData) { + this.data = Object.assign({}, this.data, newData) + } + + sendEmergencyCancel() { + const url = `${this.includeUrl}/scope/${this.scope.id}/emergency/` + + return new Promise((resolve, reject) => { + $.ajax(url, { + method: 'GET' + }).done(() => { + resolve() + }).fail(err => { + console.log('XHR error', url, err) + reject(err) + }) + }) + } +} + +export default EndEmergencyView; \ No newline at end of file diff --git a/zmsadmin/js/index.js b/zmsadmin/js/index.js index 6b1ec817f..2a85edea2 100644 --- a/zmsadmin/js/index.js +++ b/zmsadmin/js/index.js @@ -26,6 +26,7 @@ import PickupKeyboardHandheldView from "./page/pickup/keyboard-handheld" import StatisticView from './page/statistic' import LoginScopeSelectView from './block/scope/loginselectform' +import EmergencyEnd from './block/scope/emergencyend' //import AvailabilityDayPage from './page/availabilityDay' import WeekCalendarPage from './page/weekCalendar' import printScopeAppointmentsByDay from './page/scopeAppointmentsByDay/print' @@ -108,6 +109,10 @@ $('[data-scope-select-form]').each(function () { new LoginScopeSelectView(this, getDataAttributes(this)); }) +$('.emergency-end').each(function () { + new EmergencyEnd(this, getDataAttributes(this)); +}) + $('.pickup-view').each(function () { new PickupView(this, getDataAttributes(this)); }) diff --git a/zmsadmin/js/page/counter/index.js b/zmsadmin/js/page/counter/index.js index 63321a7a4..c61bb79c9 100644 --- a/zmsadmin/js/page/counter/index.js +++ b/zmsadmin/js/page/counter/index.js @@ -19,18 +19,6 @@ class View extends Workstation { } this.setReloadTimer(); } - window.onblur = () => { - //console.log("lost Focus"); - clearTimeout(this.reloadTimer); - } - this.$main.find('[data-queue-table], [data-queue-info]').on("mouseenter", () => { - //console.log("stop Reload on mouse enter"); - clearTimeout(this.reloadTimer); - }); - this.$main.find('[data-queue-table], [data-queue-info]').on("mouseleave", () => { - //console.log("start reload on mouse leave"); - this.setReloadTimer(); - }); } loadAllPartials() { diff --git a/zmsadmin/js/page/workstation/index.js b/zmsadmin/js/page/workstation/index.js index c7467f551..368b4bf11 100644 --- a/zmsadmin/js/page/workstation/index.js +++ b/zmsadmin/js/page/workstation/index.js @@ -83,18 +83,6 @@ class View extends BaseView { } this.setReloadTimer(); } - window.onblur = () => { - //console.log("lost Focus"); - clearTimeout(this.reloadTimer); - } - this.$main.find('[data-queue-table]').on("mouseenter", () => { - //console.log("stop Reload on mouse enter"); - clearTimeout(this.reloadTimer); - }); - this.$main.find('[data-queue-table]').on("mouseleave", () => { - //console.log("start reload on mouse leave"); - this.setReloadTimer(); - }); } setReloadTimer() { diff --git a/zmsadmin/package-lock.json b/zmsadmin/package-lock.json index 4f081e326..fafdb39ed 100644 --- a/zmsadmin/package-lock.json +++ b/zmsadmin/package-lock.json @@ -2892,108 +2892,6 @@ "node": ">= 8" } }, - "node_modules/css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domutils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/css-select/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "optional": true, - "peer": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/css-tree": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", - "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "mdn-data": "2.0.30", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" - } - }, "node_modules/css-what": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", @@ -3007,48 +2905,6 @@ "url": "https://github.com/sponsors/fb55" } }, - "node_modules/csso": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", - "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "css-tree": "~2.2.0" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", - "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "mdn-data": "2.0.28", - "source-map-js": "^1.0.1" - }, - "engines": { - "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", - "npm": ">=7.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.28", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", - "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", - "dev": true, - "license": "CC0-1.0", - "optional": true, - "peer": true - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -4846,7 +4702,8 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true }, "node_modules/js-yaml": { "version": "3.14.1", @@ -5267,6 +5124,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, @@ -5282,15 +5140,6 @@ "node": ">= 0.8.0" } }, - "node_modules/mdn-data": { - "version": "2.0.30", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", - "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", - "dev": true, - "license": "CC0-1.0", - "optional": true, - "peer": true - }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -5845,6 +5694,7 @@ "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dev": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -6339,21 +6189,6 @@ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true }, - "node_modules/srcset": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz", - "integrity": "sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/ssr-window": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", @@ -6544,34 +6379,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svgo": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", - "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", - "dev": true, - "license": "MIT", - "optional": true, - "peer": true, - "dependencies": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^5.1.0", - "css-tree": "^2.3.1", - "css-what": "^6.1.0", - "csso": "^5.0.5", - "picocolors": "^1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/svgo" - } - }, "node_modules/swiper": { "version": "6.8.4", "resolved": "https://registry.npmjs.org/swiper/-/swiper-6.8.4.tgz", diff --git a/zmsadmin/src/Zmsadmin/QueueTable.php b/zmsadmin/src/Zmsadmin/QueueTable.php index 8167a89e8..9a452e606 100644 --- a/zmsadmin/src/Zmsadmin/QueueTable.php +++ b/zmsadmin/src/Zmsadmin/QueueTable.php @@ -50,6 +50,9 @@ public function readResponse( // data refinement $queueList = $processList->toQueueList(\App::$now); + $queueList->uasort(function ($queueA, $queueB) { + return $queueA->arrivalTime - $queueB->arrivalTime; + }); $queueListVisible = $queueList->withStatus(['preconfirmed', 'confirmed', 'queued', 'reserved', 'deleted']); $queueListMissed = $queueList->withStatus(['missed']); $queueListParked = $queueList->withStatus(['parked']); diff --git a/zmsadmin/templates/block/emergency/emergency.twig b/zmsadmin/templates/block/emergency/emergency.twig index 59fc3d3eb..ac2ba3f62 100644 --- a/zmsadmin/templates/block/emergency/emergency.twig +++ b/zmsadmin/templates/block/emergency/emergency.twig @@ -7,10 +7,11 @@ data-state="clear" data-source="">

Notruf

+ {% if workstation.name %} - + {% endif %}