Skip to content
Snippets Groups Projects
Commit 9f8b18d2 authored by Lukas Ruge's avatar Lukas Ruge
Browse files

ausleihen besser machen

parent 2a395769
No related branches found
No related tags found
No related merge requests found
...@@ -9,9 +9,9 @@ ...@@ -9,9 +9,9 @@
<li><a href="{{site.baseurl}}/nobreakspace">Nobreakspace</a> <li><a href="{{site.baseurl}}/nobreakspace">Nobreakspace</a>
<ul> <ul>
<li><a href="{{site.baseurl}}/nobreakspace/werkstatt">Werkstatt</a></li> <li><a href="{{site.baseurl}}/nobreakspace/werkstatt">Werkstatt</a></li>
<li><a href="{{site.baseurl}}/loancal/">Geräte Ausleihen</a> <li><a href="{{site.baseurl}}/nobreakspace/ausleihen/">Geräte Ausleihen</a>
<ul> <ul>
<li><a href="{{site.baseurl}}/nobreakspace/ausleihen/">Formular</a></li> <li><a href="{{site.baseurl}}/loancal/">Reservierungskalender</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
......
...@@ -12,6 +12,7 @@ contact: ...@@ -12,6 +12,7 @@ contact:
sets: sets:
- fahrrad - fahrrad
- werkstatt - werkstatt
- tools
- leihbar - leihbar
hints: hints:
- "Nach Nutzung bitte den Akku aufladen!" - "Nach Nutzung bitte den Akku aufladen!"
......
...@@ -7,6 +7,7 @@ wikilink: https://wiki.chaotikum.org/hackspace:infrastruktur:dremel ...@@ -7,6 +7,7 @@ wikilink: https://wiki.chaotikum.org/hackspace:infrastruktur:dremel
sets: sets:
- werkstatt - werkstatt
- holzundmetal - holzundmetal
- tools
- leihbar - leihbar
hints: hints:
- "Bitte vorsichtig und umsichtig bei der Nutzung des Geräts!" - "Bitte vorsichtig und umsichtig bei der Nutzung des Geräts!"
......
---
layout: device
name: "Festplattenlöscher SDOCK1EU3P2"
#https://www.uuidgenerator.net/
uid: 64ebd2f2-1b8a-4e00-8c1c-dc9d52fd4543
safetybriefing: false
manual: "bla"
calcolor: "#a3b4ff"
out_of_service: true
imagetag: hdddelete
contact:
- T
sets:
- office
- dataprotection
- leihbar
hints:
- "Gebrauchsanweisung beachten"
commandsigns:
- M002
---
Text folgt. Gerät existiert noch nicht.
...@@ -14,6 +14,7 @@ contact: ...@@ -14,6 +14,7 @@ contact:
sets: sets:
- werkstatt - werkstatt
- holzundmetal - holzundmetal
- tools
- leihbar - leihbar
hints: hints:
- "Bitte vorsichtig und umsichtig bei der Nutzung des Geräts!" - "Bitte vorsichtig und umsichtig bei der Nutzung des Geräts!"
......
...@@ -13,7 +13,6 @@ contact: ...@@ -13,7 +13,6 @@ contact:
sets: sets:
- office - office
- dataprotection - dataprotection
- leihbar
hints: hints:
- "Niemals mehr als 3 Blatt gleichzeitig schreddern!" - "Niemals mehr als 3 Blatt gleichzeitig schreddern!"
- "Heft und Büroklammern müssen vor dem Schreddern entfernt werden." - "Heft und Büroklammern müssen vor dem Schreddern entfernt werden."
......
---
tag: "tools"
name: Werkzeug
loanable: true
---
\ No newline at end of file
--- ---
layout: verein layout: verein
title: Geräte ausleihen title: Geräte ausleihen
permalink: /nobreakspace/ausleihen/ permalink: /nobreakspace/ausleihen
aside: false aside: false
image: "https://wiki.chaotikum.org/_media/hackerspace:nbsp:ima_9982022.jpeg" image: "https://wiki.chaotikum.org/_media/hackerspace:nbsp:ima_9982022.jpeg"
--- ---
Inhalt folgt bald. # Ausleihen
Dieses Formular ist bisher lediglich ein Platzhalter und hat keine Funktionalität. Anfragen bitte per Mail an verleih@chaotikum.org Gerne verleihen wir Geräte an Persomnen, Vereine oder Organisationen für <a href="https://wiki.chaotikum.org/hackspace:kommerzielle_interessen">nicht kommerzieller Zwecke</a>. Anfragen bitte per Mail an verleih@chaotikum.org .
<form method="POST" action="{{site.formbot_service}}/loan"> ## Was möchtest du ausleihen?
<div class="form-group">
<label for="name">Name</label> Wir haben einige Objekte in Sets zusammengestellt, die zusammen Sinn ergeben, oder oft zusammen benötigt werden, aber natürlich können auch einzelne Geräte geliehen werden.
<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> ### Sets
<label for="organisation">Organisation</label> {% assign set_array = "" | split: ',' -%}
<input type="text" placeholder="Chaotikum e.V." name="organisation" id="organisation" maxlength="300"> {% for set in site.sets %}
<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> {% if set.loanable -%}
<label for="email">E-Mail</label> {% assign set_array = set_array | push: set.tag -%}
<input required type="text" placeholder="balblub@chaotikum.org" name="email" id="email" maxlength="3000"> {% endif -%}
<small class="form-text text-muted">Um dich erreichen zu können benötigen wir deine E-Mail-Adresse.</small> <br><br> {%- endfor-%}
<label for="address">Adresse</label> {% assign set_array = set_array | uniq | sort -%}
<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> <ul>
<label for="timeframe_from">Zeitraum (Von)</label> {% for set_tag in set_array -%}
<input required type="date" name="timeframe_from" id="timeframe_from" onchange="fromDateChange()"><br> {% for set in site.sets -%}
<label for="timeframe_too">Zeitraum (Bis)</label> {% if set.tag == set_tag -%}
<input required type="date" name="timeframe_too" id="timeframe_too" onchange="tooDateChange()"><br><br> <li>{{set.name}}<br> {% assign relevant_tools = site.inventory | where_exp: "rtools", "rtools.sets contains set_tag" -%}
<br> <small class="form-text text-muted" style="padding-left: 10px">{% for tool in relevant_tools -%}{%if tool.sets contains 'leihbar'%}{{tool.name}}{% unless forloop.last %}, {% endunless %}{% endif %}{% endfor-%}</small></li>
<br> {% endif-%}
<fieldset><br> {% endfor -%}
<legend>Was möchtest du ausleihen</legend> {% endfor -%}
{% assign set_array = "" | split: ',' %} </ul>
{% for set in site.sets %}
{% if set.loanable -%} ### Geräte
{% assign set_array = set_array | push: set.tag -%} <ul>
{% endif -%} {% for tool in site.inventory -%}
{%- endfor-%} {%- if tool.sets contains 'leihbar' -%}
{% assign set_array = set_array | uniq | sort -%} <li><a href="{{ site.url }}{{device.url}}">{{tool.name}}</a></li>
<legend>Sets</legend> {%- endif -%}
{% for set_tag in set_array -%} {%- endfor-%}
{% for set in site.sets %} </ul>
{% if set.tag == set_tag -%}
<div> Wenn du etwas ausleihen möchtest, werden wir von dir einen Unterschriebenen Vertrag brauchen, darauf u.a. deine Kontaktdaten (Name, Adresse...) sowie zusicherung, dass du, oder die Gruppe für die du ausleihst, über eine Haftpflicht verfügst. Den Vertrag unterschreibst du beim erhalten der Objekte.
<input type="checkbox" id="{{set_tag}}" name="set_interest" value="{{set_tag}}" onclick="calc(this.id);" />
<label for="{{set_tag}}">{{set.name}}</label><br> 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>.
{% assign relevant_tools = site.inventory | where_exp: "rtools", "rtools.sets contains set_tag" -%} \ No newline at end of file
<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>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment