<?xml version="1.0" encoding="UTF-8"?>
<actions>

<meta>
  <description>Template für das NetBiblio-System</description>
  <variable name="baseurl"><description>Web-URI der Bibliothek</description></variable>  
</meta>


<action id="connect"></action>

<action id="internal-login"> 
  <if test="not(get('loggedIn', false()))">
    <page url="{$baseurl}/account/login">
      <post name="Username" value="{$username}"/>
      <post name="Password" value="{$password}"/>
    </page>
    <pattern><body><div class="alert alert-danger">{
    string() ! (if (matches(., "Anmeldung fehlgeschlagen")) then vl:raise-login(.)
    else vl:raise(.))
    }</div>?</body></pattern>
    <s>loggedIn := true()</s>
  </if>
</action>

<action id="update-all">
  <call action="internal-login"/>
  <s>vl:delete-current-books()</s>
  <page url="{$baseurl}/account/circulations?sort=Circulations.DueDate&page=1&pageSize=100000" templateFile="list"/>
  <page url="{$baseurl}/account/orders" templateFile="list"/>
  <page url="{$baseurl}/account/reservations" templateFile="list"/>
</action>

<action id="renew-list">
  <!-- example
  /account/renew?selectedItems%5B0%5D=96188&returnUrl=%2Faccount%2Fcirculations 
  /account/renew?selectedItems%5B0%5D=96188&selectedItems%5B1%5D=4821&returnUrl=%2Faccount%2Fcirculations -->
  <page url="{$baseurl}/account/renew?{join($renew-books!(x'selectedItems%5B{position()-1}%5D={_renewId}'), $amp)}"> </page>     
  <call action="update-all"/>
</action>



<action id="cancel-list">
  <page url="{$baseurl}/account/deleteorders?{join($cancel-books!(x'selectedItems%5B{position()-1}%5D={_cancelId}'), $amp)}"> </page>     
  <call action="update-all"/>
</action>









<action id="search">
  <s>
    search-keys := {"author": "Person", "title": "T", "keywords": "Thema", "isbn": "I"},
    tempcount := 0,
    request := {
    "url": $baseurl || "/search/extended/submit",
    "method": "POST",
    "post": join((for $key in jn:keys($book) return if (boolean($book($key)) and exists($search-keys($key))) then (
         "Request.SearchTerm=" || uri-encode($book($key)),
         "Request.SearchField=" || uri-encode($search-keys($key)),
         "Request.SearchOperator=AND",
         (tempcount := $tempcount + 1)[0]
         ) else (), 
         for $filler in 1 to 4 - $tempcount return ("Request.SearchTerm=", "Request.SearchField=W", "Request.SearchOperator=AND"[$tempcount = 0]), (:500 error without 2 search terms:)
         if (boolean($book.year)) then (
           "Filter.StartDate="||$book.year,
           "Filter.EndDate="||$book.year
         ) else (),
         "Request.PageSize=25"  ), $amp)
  }</s>
  <page url="{$request}" templateFile="searchList"/>
</action>

<action id="search-next-page"> 
  <page url="{$next-page}" templateFile="searchList"/>
</action>


<action id="search-details">
  <page url="{$book._detailUrl}" templateFile="searchDetails"/>
</action>




<action id="order-single">
  <call action="internal-login"/>
  <page url="{$baseurl}/account/makeitemreservation?{join($holding!(x'selectedItems={_orderId}'), $amp)}"> </page>
  <pattern>
    <form action="/account/makeitemreservation">
       {form:=form(.), $kind := "" }
       <input checked="checked" id="ReservationKind">{$kind := following-sibling::text()}</input>?
    </form>
  </pattern>
  <page url="{$form}"/>
  <pattern>
    <t:switch prioritized="true">
      <div class="alert-success">{$book.status := $kind}</div>
      <div class="alert">{vl:raise(.)}</div>
    </t:switch>	
  </pattern>
</action>


<action id="catalogue">
  <variable name="url" value="{$baseurl}"/>
</action>



</actions>
