project_detail.html

← Back to explorer
templates/project_detail.html
{% extends "base.html" %}
{% block title %}{{ project_display_name }} · Projects{% endblock %}

{% block head %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/project_detail_page.css') }}">
{% endblock %}

{% block content %}
  <div class="project-header">
    <h1 class="page-title">{{ project_display_name }}</h1>
    {% if folder_path %}
      <a class="back-link" href="{{ url_for('project_detail', project_name=project_name) }}">← Back to root</a>
    {% else %}
      <a class="back-link" href="{{ url_for('projects_view') }}">← Back to projects</a>
    {% endif %}
  </div>

  {% if error %}
    <p class="error">{{ error }}</p>
  {% endif %}

  <div class="project-layout">
    <section class="panel explorer">
      <h2 class="panel-title">Files</h2>

      {% if folder_path %}
        <div class="crumb">
          <span class="mono">/{{ folder_path }}</span>
        </div>
      {% endif %}

      <ul class="tree">
        {% for item in structure %}
          {% if item.type == "folder" %}
            <li class="row folder">
              <a href="{{ url_for('project_detail', project_name=project_name, folder_path=item.path) }}">
                <span class="icon">📁</span>
                <span class="name">{{ item.name }}</span>
              </a>
            </li>
          {% elif item.type == "file" %}
            <li class="row file">
              <a href="{{ url_for('view_file', project_name=project_name, file_path=item.path) }}">
                <span class="icon">📄</span>
                <span class="name">{{ item.name }}</span>
              </a>
            </li>
          {% endif %}
        {% endfor %}
      </ul>
    </section>

    <aside class="side">
      <section class="panel stats">
        <h2 class="panel-title">File types</h2>
        {% if file_summary %}
          <ul class="kv">
            <li><span class="k">{{ file_summary.total_files }} files</span><span class="v">{{ file_summary.total_size_kb }} KB</span></li>
            <li><span class="k">{{ file_summary.total_folders }} folders</span><span class="v"></span></li>
          </ul>

          <div class="divider"></div>

          <ul class="kv">
            {% for item in file_summary.types %}
              <li><span class="k">{{ item.count }} {{ item.label }}</span><span class="v">{{ item.size_kb }} KB</span></li>
            {% endfor %}
          </ul>
        {% else %}
          <p class="muted">No summary available.</p>
        {% endif %}
      </section>

      <section class="panel stats">
        <h2 class="panel-title">Languages</h2>
        {% if metadata and metadata.languages %}
          <ul class="kv">
            {% for lang, percent in metadata.languages.items() %}
              <li><span class="k">{{ lang }}</span><span class="v">{{ percent }}%</span></li>
            {% endfor %}
          </ul>

          <div class="divider"></div>

          <h2 class="panel-title">Project activity</h2>
          <ul class="kv">
            <li><span class="k">Last updated</span><span class="v">{{ metadata.last_updated or "N/A" }}</span></li>
            <li><span class="k">Recent commits</span><span class="v">{{ metadata.recent_commit_count }}</span></li>
          </ul>
        {% else %}
          <p class="muted">No metadata available.</p>
        {% endif %}
      </section>
    </aside>
  </div>
{% endblock %}