--- layout: verein title: Geräte ausleihen permalink: /nobreakspace/ausleihen/ aside: false image: "https://wiki.chaotikum.org/_media/hackerspace:nbsp:ima_9982022.jpeg" --- Inhalt folgt bald. Dieses Formular ist bisher lediglich ein Platzhalter und hat keine Funktionalität. Anfragen bitte per Mail an verleih@chaotikum.org <form method="POST" action="{{site.formbot_service}}/loan"> <div class="form-group"> <label for="name">Name</label> <input required type="text" placeholder="M. Muster" name="name" id="name" maxlength="300"> <small class="form-text text-muted">Wir werden beim Abholen deinen Personalausweis mit diesem Namen abgleichen. Bringe also bitte den Perso oder ein ähnliches Dokument mit.</small> <br><br> <label for="organisation">Organisation</label> <input type="text" placeholder="Chaotikum e.V." name="organisation" id="organisation" maxlength="300"> <small class="form-text text-muted">Wenn du für eine Orgnisation den Antrag stellst, schreibe diese hier rein. Sonst frei lassen.</small> <br><br> <label for="email">E-Mail</label> <input required type="text" placeholder="balblub@chaotikum.org" name="email" id="email" maxlength="3000"> <small class="form-text text-muted">Um dich erreichen zu können benötigen wir deine E-Mail-Adresse.</small> <br><br> <label for="address">Adresse</label> <input required type="text" placeholder="Fackenburger Allee 11" name="address" id="address" maxlength="3000"> <small class="form-text text-muted">Um dich erreichen zu können benötigen wir deine postalische Adresse. Auch diese werden wir (bei entleihen von Privatpersonen) mit deinem Personalausweis abgleichen. Im Falle des Entleihens für eine Organisation muss deren Adresse hier rein.</small> <br><br> <label for="timeframe_from">Zeitraum (Von)</label> <input required type="date" name="timeframe_from" id="timeframe_from" onchange="fromDateChange()"><br> <label for="timeframe_too">Zeitraum (Bis)</label> <input required type="date" name="timeframe_too" id="timeframe_too" onchange="tooDateChange()"><br><br> <br> <br> <fieldset><br> <legend>Was möchtest du ausleihen</legend> {% assign set_array = "" | split: ',' %} {% for set in site.sets %} {% if set.loanable -%} {% assign set_array = set_array | push: set.tag -%} {% endif -%} {%- endfor-%} {% assign set_array = set_array | uniq | sort -%} <legend>Sets</legend> {% for set_tag in set_array -%} {% for set in site.sets %} {% if set.tag == set_tag -%} <div> <input type="checkbox" id="{{set_tag}}" name="set_interest" value="{{set_tag}}" onclick="calc(this.id);" /> <label for="{{set_tag}}">{{set.name}}</label><br> {% assign relevant_tools = site.inventory | where_exp: "rtools", "rtools.sets contains set_tag" -%} <small class="form-text text-muted" style="padding-left: 10px">{% for tool in relevant_tools -%}{{tool.name}}{% unless forloop.last %}, {% endunless %}{% endfor-%}</small> </div> {% endif-%} {% endfor -%} {% endfor -%} <br> <legend>Geräte (einzeln)</legend> {% for tool in site.inventory -%} {%- if tool.sets contains 'leihbar' -%} <div> <input type="checkbox" id="{{tool.uid}}" name="device_interest" value="{{tool.uid}}" /> <label for="{{tool.uid}}"><a href="{{tool.wikilink}}">{{tool.name}}</a></label> </div> {%- endif -%} {%- endfor-%} </fieldset> <label for="more">Außerdem ausleihen...</label> <textarea class="form-control" name="more" rows="5"></textarea> <small class="form-text text-muted">Was nicht ausgewählt werden kann (wie z.B. Zubehör und Kabel die du brauchst) bitte hier eintragen</small> <br><br> <small class="form-text text-muted">Ein Verleih ist lediglich an Personen oder Organisationen möglich, die die ausgeliehenen Objekte nicht <a href="https://wiki.chaotikum.org/hackspace:kommerzielle_interessen">primär zur Umsetzung kommerzieller Interessen</a> nutzen. Sollte dies nicht klar abgrenzbar sein, kontaktiere uns bite.</small> <br><br> <fieldset> <legend>Einverständnis</legend> <div> <input required type="checkbox" id="nocommerce" name="nocommerce" value="nocommerce" /> <label for="nocommerce">Ich nutze die ausgeliehenen Objekte nicht <a href="https://wiki.chaotikum.org/hackspace:kommerzielle_interessen">primär zur Umsetzung kommerzieller Interessen</a>.</label> </div> <div> <input required type="checkbox" id="replace" name="replace" value="replace" /> <label for="nocommerce">Ich gerantiere, beschädigte oder verlorene Objekte zu ersetzen.</label> </div> <div> <input required type="checkbox" id="insurance" name="insurance" value="insurance" /> <label for="nocommerce">Ich, oder die Organisation für die ich entleihe, verfügen über eine Haftpflichtversicherung.</label> </div> </fieldset><br> <label for="comment">Anmerkungen</label> <textarea class="form-control" name="comment" rows="5"></textarea> <small class="form-text text-muted"></small> </div> <button type="submit" class="btn btn-primary">Entleihantrag Abschicken</button> </form> <div style="width: 80% border-color: #888888; border: 1px solid; padding: 10px; box-shadow: 5px 10px 8px #888888; margin: 20px;"> <p>Der Verleih für nichtkommerzielle Zwecke ist grundsätzlich kostenlos, aber wir freuen uns natürlich immer über eine <a href="https://chaotikum.org/verein/spenden/">Spende</a>.</p> </div> <script> var request_from = new Date(); var request_to = new Date(); var devices; window.onload = function() { let xhttp = new XMLHttpRequest(); xhttp.open("GET", "{{ site.baseurl }}/nobreakspace/inventory.xml", false); xhttp.send(); let xmlDoc = xhttp.responseXML; devices = xmlDoc.getElementsByTagName("device") resetLoanableObjects(); }; function brokendevices() { for (let i = 0; i < devices.length; i++) { devi = devices[i] if(devi.getElementsByTagName("outofservice")[0].textContent == "true") { deviId= devi.getElementsByTagName("uid")[0].textContent cb = document.getElementById(deviId); if(cb) { cb.disabled = true; } } } }; function fromDateChange() { picker = document.getElementById("timeframe_from"); console.log(picker.value) console.log(new Date(Date.parse(picker.value))) request_from = new Date(Date.parse(picker.value)) request_from.setHours(0,0,0,0); resetLoanableObjects() }; function tooDateChange() { picker = document.getElementById("timeframe_too"); console.log(picker.value) console.log(new Date(Date.parse(picker.value))) request_to = new Date(Date.parse(picker.value)) request_to.setHours(23,59,59,999); resetLoanableObjects() }; function resetLoanableObjects() { for (let i = 0; i < devices.length; i++) { console.log("==========") let crossbooking = false; let devi = devices[i] let deviId= devi.getElementsByTagName("uid")[0].textContent let deviceName = devi.getElementsByTagName("name")[0].textContent console.log(deviceName) console.log(crossbooking) let cbx = document.getElementById(deviId); if(cbx) { cbx.disabled = false; } let setsx = devi.getElementsByTagName("set") for (let m = 0; m < setsx.length; m++) { let setx = setsx[m] let setelementx = document.getElementById(setx.textContent) if(setelementx) { setelementx.disabled = false; } } let bookings = devi.getElementsByTagName("booking") for (let j = 0; j < bookings.length; j++) { let booking = bookings[j]; let start = new Date(parseInt(booking.getElementsByTagName("start")[0].textContent, 10) * 1000); let end = new Date(parseInt(booking.getElementsByTagName("end")[0].textContent, 10) * 1000); console.log("start " + start); console.log("end "+ end); console.log("request_from " + request_from); console.log("request_to " + request_to); if((start / 1000) < (request_to / 1000) && (end / 1000) > (request_from / 1000) ) { crossbooking = true; } console.log(crossbooking) } if(crossbooking) { console.log(deviId) console.log("C2 "+ crossbooking) let cb = document.getElementById(deviId); if(cb) { console.log(cb) console.log("disable true") cb.disabled = true; } let sets = devi.getElementsByTagName("set") for (let k = 0; k < sets.length; k++) { let set = sets[k] let setelement = document.getElementById(set.textContent) if(setelement) { setelement.disabled = true; } } } console.log("==========") } } function calc(id) { if (id === null) { return; } if(id === undefined) { return; } settag = document.getElementById(id) if(settag === null) { return } if(settag.checked) { for (let i = 0; i < devices.length; i++) { let devi = devices[i] let deviId= devi.getElementsByTagName("uid")[0].textContent let sets = devi.getElementsByTagName("set") for (let j = 0; j < sets.length; j++) { let set = sets[j]; if(set.textContent == id) { let cb = document.getElementById(deviId); cb.disabled = true; } } } } else { for (let i = 0; i < devices.length; i++) { let devi = devices[i] let deviId= devi.getElementsByTagName("uid")[0].textContent let sets = devi.getElementsByTagName("set") for (let j = 0; j < sets.length; j++) { let set = sets[j]; if(set.textContent == id) { let cb = document.getElementById(deviId); cb.disabled = false; } } } } } </script>