The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
% if (my $user = session 'username') {
<div class="well" style="padding: 8px 0;">
  <ul class="nav nav-list" id="user-menu">
    <li class="nav-header">Hello <%== $user %></li>
    % if ( is_author($user) && current_route 'show_page' ) {
      <li><a href="#" onclick="add_page()">Add New Page</a></li>
      <li><a href="<%= url_for 'edit_page', name => stash('name') %>">Edit This Page</a></li>
    % }
    <li><a href="/admin/menu">Edit Nav Menu</a></li>
    <li><a href="/logout">Log Out</a></li>
    % if ( is_admin $user ) {
      <li class="nav-header">Administration</li>
      <li><a href="#" onclick="add_user()">Add New User</a></li>
      <li><a href="/admin/users">All Users</a></li>
      <li><a href="/admin/pages">All Pages</a></li>
    % }
  </ul>
</div>

  %= modal 'page-modal' => begin
    Create a page with link
    <div class="input-prepend">
      <span class="add-on">/page/</span>
      <input type="text" id="new-page-link" placeholder="new page link">
    </div>
  % end

  %= modal 'user-modal' => begin
    Create a new user with username
    <div class="input-prepend">
      <span class="add-on">username:</span>
      <input type="text" id="new-username" placeholder="new username">
    </div>
  % end

  %= javascript begin
    function show_modal(selector, callback) {
      var modal = $(selector);
      var button = modal.find('.btn-primary');

      button.on( 'click', callback );
      modal.on( 'hide', function() { button.off('click') });

      modal.modal();
    }

    function add_page () {
      show_modal( '#page-modal', function () {
        var link = $('#new-page-link').val();
        if (link.length > 0) {
          window.location.href = '/edit/' + link;
        } else {
          humane.log('New link name cannot be empty');
        }
      });
    }

    function add_user () {
      show_modal( '#user-modal', function () {
        var username = $('#new-username').val();
        if (username.length > 0) {
          window.location.href = '/admin/user/' + username;
        } else {
          humane.log('New user name cannot be empty');
        }
      });
    }

  % end

% } else {
<form class="well" method="post" action="/login" id="login">
  <input type="hidden" name="from" value="<%= $c->tx->req->url %>">
  <input type="text" class="input-small" placeholder="Username" name="username">
  <input type="password" class="input-small" placeholder="Password" name="password">
  <input type="submit" class="btn" value="Sign In">
</form>
% }