<!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=${resource.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>
