<!DOCTYPE html>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<html data-th-with="page=${request.adaptTo(@org.apache.sling.samples.fling.page.UserPage@class)}">
<head data-th-replace="/apps/fling/page/fragments/head.html::default">
</head>
<body>
<div class="container">
  <nav class="nav-main">
    <div class="pull-left">
      <ul class="breadcrumb" style="direction: rtl" data-th-replace="/apps/fling/page/fragments/navigation.html::breadcrumb"></ul>
    </div>
    <ul class="nav nav-pills" role="tablist" data-th-replace="/apps/fling/page/fragments/navigation.html::children"></ul>
  </nav>
  <div class="panel panel-primary">
    <div class="panel-heading">
      <span data-th-text="${page.title}">USER PAGE</span>
    </div>
    <div class="panel-body" data-th-with="user=${page.user}">
      <form role="form">
        <div class="form-group">
          <label>User ID of current JCR session</label>
          <input type="text" class="form-control" readonly="readonly" value="dummy" data-th-attr="value=${user.getID()}"/>
        </div>
        <div class="form-group">
          <label>principal name</label>
          <input type="text" class="form-control" readonly="readonly" value="dummy" data-th-attr="value=${user.getPrincipal().getName()}"/>
        </div>
        <div class="form-group" data-th-each="property : ${page.userProperties}">
          <label data-th-text="${property.key}">key</label>
          <input type="text" class="form-control" readonly="readonly" value="value" data-th-attr="value=${property.value}"/>
        </div>
        <div class="form-group" data-th-remove="all">
          <label>firstName</label>
          <input type="text" class="form-control" readonly="readonly" value="Foo"/>
        </div>
        <div class="form-group" data-th-remove="all">
          <label>lastName</label>
          <input type="text" class="form-control" readonly="readonly" value="Bar"/>
        </div>
      </form>
      <img src="../../../../assets/images/feather.png" width="355" height="111" data-th-attr="src='/fling/assets/images/feather.png'"/>
    </div>
    <div class="panel-footer" data-th-replace="/apps/fling/page/fragments/panel.html::footer"></div>
  </div>
</div>
</body>
</html>
