tl;dr Schule setzt für Kopiergeld-Erhebung bei Eltern auf deren Geräten auf Software mit nicht unbedingt aktueller Umgebung.Aus privaten Gründen muss ich mich gerade damit beschäftigen, dass das Gymnasium von K2 (11. Klasse) mit sehr dürftigen Informationen eine App zur "Klassenkasse" oder Kopiergeld (ja, gibt es noch) einführen will.
Das Ding heißt
http://klassengeld.app und stamm von infin und untis.
Mal abgesehen davon, dass mir die Schule keine Rechtgrundlage für die Einführung nennt, auch keine Alternative bereitstellen will, mir das Hoheitsrecht über das als Vorschuss zu zahlende Geld komplett abgeht, ist mir diese App sehr suspekt.
Deswegen hab ich aus Neugier mal ein wenig unter die Code-Haube geschaut.
Das Ergebnis von 10 Minuten war eher nicht zufriedenstellend, mehr will ich momentan gar nicht wissen.
Mal sehen, was mir morgen das Schulamt in Ingolstadt erzählen kann.
Codebeispiele
Login:
<!-- Documentation extras -->
<!-- CSS Just for demo purpose, don't include it in your project -->
<link href="/assets/assets-for-demo/demo.css" rel="stylesheet" />
<link href="/assets/assets-for-demo/vertical-nav.css" rel="stylesheet" />
<!-- Fixed Sidebar Nav - js [b]With initialisations For Demo Purpose, Don't Include it in your project[/b] -->
<script src="/assets/assets-for-demo/js/material-kit-demo.js"></script>
material-kit-demo.js
/*! =========================================================
*
* Material Kit PRO Plugins Initialisation Examples - [b]v2.0.2[/b]
*
* =========================================================
*
* Product Page: https://www.creative-tim.com/product/material-kit-pro
* Available with purchase of license from http://www.creative-tim.com/product/material-kit-pro
* Copyright 2017 Creative Tim (https://www.creative-tim.com)
* License Creative Tim (https://www.creative-tim.com/license)
*
* ========================================================= */
materialKitDemo = {
initContactUsMap: function(){
var myLatlng = new google.maps.LatLng(44.433530, 26.093928);
var mapOptions = {
zoom: 14,
center: myLatlng,
styles:
[{"featureType":"water","stylers":[{"saturation":43},{"lightness":-11},{"hue":"#0088ff"}]},{"featureType":"road","elementType":"geometry.fill","stylers":[{"hue":"#ff0000"},{"saturation":-100},{"lightness":99}]},{"featureType":"road","elementType":"geometry.stroke","stylers":[{"color":"#808080"},{"lightness":54}]},{"featureType":"landscape.man_made","elementType":"geometry.fill","stylers":[{"color":"#ece2d9"}]},{"featureType":"poi.park","elementType":"geometry.fill","stylers":[{"color":"#ccdca1"}]},{"featureType":"road","elementType":"labels.text.fill","stylers":[{"color":"#767676"}]},{"featureType":"road","elementType":"labels.text.stroke","stylers":[{"color":"#ffffff"}]},{"featureType":"poi","stylers":[{"visibility":"off"}]},{"featureType":"landscape.natural","elementType":"geometry.fill","stylers":[{"visibility":"on"},{"color":"#b8cb93"}]},{"featureType":"poi.park","stylers":[{"visibility":"on"}]},{"featureType":"poi.sports_complex","stylers":[{"visibility":"on"}]},{"featureType":"poi.medical","stylers":[{"visibility":"on"}]},{"featureType":"poi.business","stylers":[{"visibility":"simplified"}]}],
scrollwheel: false, //we disable de scroll over the map, it is a really annoing when you scroll through page
};
var map = new google.maps.Map(document.getElementById("contactUsMap"), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
title:"Hello World!"
});
"Hello World" und alte Version... Modernizr.js
// <style> elements in IE6-9 are considered 'NoScope' elements and therefore will be removed
// when injected with innerHTML. To get around this you need to prepend the 'NoScope' element
// with a 'scoped' element, in our case the soft-hyphen entity as it won't mess with our measurements.
// msdn.microsoft.com/en-us/library/ms533897%28VS.85%29.aspx
// Documents served as xml will throw if using so use xml friendly encoded version. See issue #277
style = ['','<style id="s', mod, '">', rule, '</style>'].join('');
div.id = mod;
// IE6 will false positive on some tests due to the style element inside the test div somehow interfering offsetHeight, so insert it into body or fakebody.
// Opera will act all quirky when injecting elements in documentElement when page is served as xml, needs fakebody too. #270
(body ? div : fakeBody).innerHTML += style;
fakeBody.appendChild(div);
if ( !body ) {
//avoid crashing IE8, if background image is used
fakeBody.style.background = '';
//Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible
fakeBody.style.overflow = 'hidden';
docOverflow = docElement.style.overflow;
docElement.style.overflow = 'hidden';
docElement.appendChild(fakeBody);
IE8 !? Really?? // Adapted from ES5-shim https://github.com/kriskowal/es5-shim/blob/master/es5-shim.js
// es5.github.com/#x15.3.4.5
// [b]FF3.6 [/b]was EOL'ed on 4/24/12, but the ESR version of FF10
// will be supported until FF19 (2/12/13), at which time, ESR becomes FF17.
// [b]FF10[/b] still uses prefixes, so check for it until then.
// for more ESR info, see: mozilla.org/en-US/firefox/organizations/faq/
tests['websockets'] = function() {
Alte Firefox-Versionen... moment-with-locales.js
// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
function unescapeFormat(s) {
return regexEscape(s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
return p1 || p2 || p3 || p4;
Ok, Code aus einer Antwort in Stackoverflow reinkopiert... //
https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
var localWeekday = (7 + weekday - dow) % 7,
weekOffset = firstWeekOffset(year, dow, doy),
dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
resYear, resDayOfYear;
notify.js
/* Notify.js - http://notifyjs.com/ Copyright (c) [b]2015 [/b]MIT */
(function (factory) {
// UMD start
// https://github.com/umdjs/umd/blob/master/jqueryPluginCommonjs.js
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
Eigentlich ist aktuell 2022. Bootstrap-datetimepicker.min.js
/*! version : [b]4.17.47[/b]
=========================================================
bootstrap-datetimejs
https://github.com/Eonasdan/bootstrap-datetimepicker
Copyright (c) [b]2015[/b] Jonathan Peterson
=========================================================
*/
/*
Aktuell ist 2021 & 6.9.4 Bootstrap-select-picker.js/*/*!
* Bootstrap-select v1.12.2 (http://silviomoreto.github.io/bootstrap-select)
*
* Copyright 2013-2017 bootstrap-select
* Licensed under MIT (https://github.com/silviomoreto/bootstrap-select/blob/master/LICENSE)
*/
Aktuell lt. Homepage 1.13.14@
Lilith Wittmann @
Martin Seeger wer weiß, wer diesen gesetzlichen Anker wohl noch nutzt, veraltete SW gewinnbringend zu verhökern.