<h2>Available stores</h2>

<?for store $arg?>
  <h3>
    <?if store[2]?>
      <?t store[0]?>
    <?else?>
      <a href="s/[?t store[0]?]/" style="font-weight: bold;"><?t store[0]?></a>
    <?if.?>
    <span class="subtle">
      <?t store[1]?>
      <?if userRole("site")?>
        <?if store[2]?>
          <span class="linkish">(enable)</span>
          <?event click enableStore(store[0]);?>
        <?else?>
          <span class="linkish">(disable)</span>
          <?event click disableStore(store[0]);?>
        <?if.?>
        <span class="linkish">(close)</span>
        <?event click deleteStore(store[0]);?>
      <?elif store[2]?>
        <strong>(disabled)</strong>
      <?if.?>
    </span>
  </h3>
<?for.?>

<?if !$arg.length?>
  <p>None</p>
<?if.?>

<?if userRole("site") && (siteInfo.newLocal || siteInfo.newRemote || siteInfo.newEmpty || $arg.length > 1)?>
  <h2>Add a store</h2>

  <p>To modify a store, simply overwrite it by opening a new store
  with the same name.</p>

  <p><strong>Note</strong> that accessing local a store through
  WebView and through another program (for example the AllegroGraph
  server) at the same time is not supported. When working with a
  server, try opening stores remotely, through that server.</p>

  <?if siteInfo.newLocal?>
    <h3>Open a local store</h3>
    <form class="small-form">
      <?event submit newLocalStore($node.elements.name.value, $node.elements.file.value, !$node.elements.readonly.checked);
                     $event.stop();?>
      <label>File:</label> <input type="text" name="file"/>
      <input type="checkbox" name="readonly" id="local-read-only" checked="checked"> <label for="local-read-only">read-only</label><br/>
      <label>Name:</label> <input type="text" name="name"/>
      <button type="submit">Open</button>
    </form>
  <?if.?>

  <?if siteInfo.newEmpty?>
    <h3>Create a new empty store</h3>
    <form class="small-form">
      <?event submit newEmptyStore($node.elements.name.value, $node.elements.file.value);
                     $event.stop();?>
      <label>File:</label> <input type="text" name="file"/><br/>
      <label>Name:</label> <input type="text" name="name"/>
      <button type="submit">Create</button>
    </form>
  <?if.?>

  <?if siteInfo.newRemote?>
    <h3>Open a remote store</h3>
    <form class="small-form">
      <?event submit newRemoteStore($node.elements.name.value, $node.elements.file.value, $node.elements.host.value,
                                    $node.elements.port.value, !$node.elements.readonly.checked);
                     $event.stop();?>
      <label>File:</label> <input type="text" name="file"/>
      <input type="checkbox" name="readonly" id="remote-read-only" checked="checked"> <label for="remote-read-only">read-only</label><br/>
      <label>Name:</label> <input type="text" name="name"/><br/>
      <label>Host:</label> <input type="text" name="host" value="localhost"/>
      <?event focus if ($node.value == "localhost") $node.value = "";?>
      <?event blur if ($node.value == "") $node.value = "localhost";?><br/>
      <label>Port:</label> <input type="text" name="port" value="4567"/>
      <?event focus if ($node.value == "4567") $node.value = "";?>
      <?event blur if ($node.value == "") $node.value = "4567";?>
      <button type="submit">Open</button>
    </form>
  <?if.?>

  <?if $arg.length > 1?>
    <?do var chosen = [];?>
    <h3>Federate stores</h3>
    <form class="small-form">
      <?event submit newFederatedStore($node.elements.name.value, chosen);
                     $event.stop();?>
      <label>Stores:</label>
      <?for store $arg?>
        <input type="checkbox" id="federate-[?t $i?]"/>
        <?event change if ($node.checked) chosen = chosen.concat([store[0]]);
                       else chosen = remove(store[0], chosen);?>
        <label class="normal" for="federate-[?t $i?]"><?t store[0]?></label>
      <?for.?><br/>
      <label>Name:</label> <input type="text" name="name"/>
      <button type="submit">Open</button>
    </form>
  <?if.?>
<?if.?>

<?if userRole("site")?>
  <h2>Site settings</h2>

  <p>
    <input type="checkbox" <?if siteInfo.prolog?>checked="checked"<?if.?>>
    <?event change setPrologEnabled($node.checked);?>
    Enable Prolog queries
  </p>

  <p>
    Google Maps key: <input type="text" id="google-key" style="width: 30em" value="[?t siteInfo.googleKey || ''?]"/>
    <button type="button">Set</button>
    <?event click setGoogleKey($("google-key").value);?>
    <br/><span class="subtle">(When no key is set for the site, mapping
    functionality does not work. Get a key from <a
    href="http://code.google.com/apis/maps/signup.html">here</a>.)</span>
  </p>

  <p>
    Requests time out after <input id="timeout" type="text" style="width: 3em" value="[?t siteInfo.timeout?]"/> seconds.
    <button type="button">Set</button>
    <?event click setSiteTimeout($("timeout").value);?>
  </p>

  <p>
    <input type="checkbox" <?if siteInfo.anonymous?>checked="checked"<?if.?>>
    <?event change setAnonymousAccess($node.checked);?>
    Allow anonymous access<br/>
    <input type="checkbox" <?if siteInfo.newAccounts?>checked="checked"<?if.?>>
    <?event change setNewAccounts($node.checked);?>
    Allow users to create accounts
  </p>
<?if.?>
