Skip to content
Snippets Groups Projects
ausleihen.md 9.91 KiB
Newer Older
Lukas Ruge's avatar
Lukas Ruge committed
---
layout: verein
title: Geräte ausleihen
permalink: /nobreakspace/ausleihen/
Lukas Ruge's avatar
Lukas Ruge committed
aside: false
Lukas Ruge's avatar
Lukas Ruge committed
image: "https://wiki.chaotikum.org/_media/hackerspace:nbsp:ima_9982022.jpeg"
Lukas Ruge's avatar
Lukas Ruge committed
---

Inhalt folgt bald.
Lukas Ruge's avatar
Lukas Ruge committed

Lukas Ruge's avatar
Lukas Ruge committed
Dieses Formular ist bisher lediglich ein Platzhalter und hat keine Funktionalität. Anfragen bitte per Mail an verleih@chaotikum.org
Lukas Ruge's avatar
Lukas Ruge committed

Lukas Ruge's avatar
Lukas Ruge committed
  <form method="POST" action="{{site.formbot_service}}/loan">
Lukas Ruge's avatar
Lukas Ruge committed
    <div class="form-group">
Lukas Ruge's avatar
Lukas Ruge committed
      <label for="name">Name</label>  
Lukas Ruge's avatar
Lukas Ruge committed
      <input required type="text" placeholder="M. Muster" name="name" id="name" maxlength="300">
Lukas Ruge's avatar
Lukas Ruge committed
      <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>
Lukas Ruge's avatar
Lukas Ruge committed
      <label for="organisation">Organisation</label> 
Lukas Ruge's avatar
Lukas Ruge committed
      <input type="text" placeholder="Chaotikum e.V." name="organisation" id="organisation" maxlength="300">
Lukas Ruge's avatar
Lukas Ruge committed
      <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>
Lukas Ruge's avatar
Lukas Ruge committed
      <label for="email">E-Mail</label>  
      <input required type="text" placeholder="balblub@chaotikum.org" name="email" id="email" maxlength="3000">
Lukas Ruge's avatar
Lukas Ruge committed
      <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>  
Lukas Ruge's avatar
Lukas Ruge committed
      <input required type="text" placeholder="Fackenburger Allee 11" name="address" id="address" maxlength="3000">
Lukas Ruge's avatar
Lukas Ruge committed
      <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>
Lukas Ruge's avatar
Lukas Ruge committed
      <label for="timeframe_from">Zeitraum (Von)</label>  
      <input required type="date" name="timeframe_from" id="timeframe_from" onchange="fromDateChange()"><br>
Lukas Ruge's avatar
Lukas Ruge committed
      <label for="timeframe_too">Zeitraum (Bis)</label> 
      <input required type="date" name="timeframe_too" id="timeframe_too" onchange="tooDateChange()"><br><br>
Lukas Ruge's avatar
Lukas Ruge committed
      <br>
      <br>
Lukas Ruge's avatar
Lukas Ruge committed
      <fieldset><br>
Lukas Ruge's avatar
Lukas Ruge committed
        <legend>Was möchtest du ausleihen</legend>
Lukas Ruge's avatar
Lukas Ruge committed
        {% 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);" />
Lukas Ruge's avatar
Lukas Ruge committed
                <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>
Lukas Ruge's avatar
Lukas Ruge committed
        {% for tool in site.inventory -%}
          {%- if tool.sets contains 'leihbar' -%}
            <div>
Lukas Ruge's avatar
Lukas Ruge committed
              <input type="checkbox" id="{{tool.uid}}" name="device_interest" value="{{tool.uid}}" />
Lukas Ruge's avatar
Lukas Ruge committed
              <label for="{{tool.uid}}"><a href="{{tool.wikilink}}">{{tool.name}}</a></label>
            </div>
          {%- endif -%}
        {%- endfor-%}
Lukas Ruge's avatar
Lukas Ruge committed
      </fieldset>
Lukas Ruge's avatar
Lukas Ruge committed
       <label for="more">Außerdem ausleihen...</label>
Lukas Ruge's avatar
Lukas Ruge committed
      <textarea class="form-control" name="more" rows="5"></textarea>
Lukas Ruge's avatar
Lukas Ruge committed
      <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>
Lukas Ruge's avatar
Lukas Ruge committed
      <br><br>
Lukas Ruge's avatar
Lukas Ruge committed
      <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>
Lukas Ruge's avatar
Lukas Ruge committed
      <br><br>
Lukas Ruge's avatar
Lukas Ruge committed
      <fieldset>
        <legend>Einverständnis</legend>
          <div>
Lukas Ruge's avatar
Lukas Ruge committed
           <input required type="checkbox" id="nocommerce" name="nocommerce" value="nocommerce" />
Lukas Ruge's avatar
Lukas Ruge committed
           <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>
Lukas Ruge's avatar
Lukas Ruge committed
         </div>
         <div>
Lukas Ruge's avatar
Lukas Ruge committed
           <input required type="checkbox" id="replace" name="replace" value="replace" />
Lukas Ruge's avatar
Lukas Ruge committed
           <label for="nocommerce">Ich gerantiere, beschädigte oder verlorene Objekte zu ersetzen.</label>
         </div>
Lukas Ruge's avatar
Lukas Ruge committed
         <div>
Lukas Ruge's avatar
Lukas Ruge committed
           <input required type="checkbox" id="insurance" name="insurance" value="insurance" />
Lukas Ruge's avatar
Lukas Ruge committed
           <label for="nocommerce">Ich, oder die Organisation für die ich entleihe, verfügen über eine Haftpflichtversicherung.</label>
Lukas Ruge's avatar
Lukas Ruge committed
         </div>
Lukas Ruge's avatar
Lukas Ruge committed
      </fieldset><br>
Lukas Ruge's avatar
Lukas Ruge committed
      <label for="comment">Anmerkungen</label>
      <textarea class="form-control" name="comment" rows="5"></textarea>
Lukas Ruge's avatar
Lukas Ruge committed
      <small class="form-text text-muted"></small>
Lukas Ruge's avatar
Lukas Ruge committed
    </div>
Lukas Ruge's avatar
Lukas Ruge committed
    <button type="submit" class="btn btn-primary">Entleihantrag Abschicken</button>
Lukas Ruge's avatar
Lukas Ruge committed
  </form>

<div style="width: 80%
 border-color: #888888;
 border: 1px solid;
 padding: 10px;
 box-shadow: 5px 10px 8px #888888;
 margin: 20px;">
Lukas Ruge's avatar
Lukas Ruge committed
  <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>
Lukas Ruge's avatar
Lukas Ruge committed

<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; 
Lukas Ruge's avatar
Lukas Ruge committed

  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("==========")
  }
}

Lukas Ruge's avatar
Lukas Ruge committed
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++) {
        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++) {
        if(set.textContent == id) {
          let cb = document.getElementById(deviId);
          cb.disabled = false;
        }
      }
    }
  }
}
Lukas Ruge's avatar
Lukas Ruge committed
</script>