161 lines
7.4 KiB
HTML
161 lines
7.4 KiB
HTML
{% extends "layout.html" %}
|
|
|
|
{% block content %}
|
|
<div class="row mb-3">
|
|
<div class="col-md-8">
|
|
<h2><i class="bi bi-file-earmark"></i> {{ document.original_filename }}</h2>
|
|
</div>
|
|
<div class="col-md-4 text-end">
|
|
<a href="{{ url_for('dashboard') }}" class="btn btn-secondary">
|
|
<i class="bi bi-arrow-left"></i> Back to Dashboard
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0"><i class="bi bi-eye"></i> Document Viewer</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="document-viewer">
|
|
{% if document.file_type == 'pdf' %}
|
|
<div class="ratio ratio-16x9">
|
|
<iframe src="{{ url_for('serve_document_file', document_id=document.id) }}" allowfullscreen></iframe>
|
|
</div>
|
|
{% elif document.file_type == 'image' %}
|
|
<img src="{{ url_for('download_document', document_id=document.id) }}" class="img-fluid" alt="{{ document.original_filename }}">
|
|
{% elif document.file_type == 'video' %}
|
|
<div class="ratio ratio-16x9">
|
|
<video controls>
|
|
<source src="{{ url_for('download_document', document_id=document.id) }}" type="video/mp4">
|
|
Your browser does not support the video tag.
|
|
</video>
|
|
</div>
|
|
{% else %}
|
|
<div class="alert alert-info">
|
|
<i class="bi bi-info-circle"></i> Preview not available for this file type. Please download the file to view its contents.
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="mt-3">
|
|
<a href="{{ url_for('download_document', document_id=document.id) }}" class="btn btn-primary">
|
|
<i class="bi bi-download"></i> Download
|
|
</a>
|
|
<a href="{{ url_for('share_document', document_id=document.id) }}" class="btn btn-info">
|
|
<i class="bi bi-share"></i> Share
|
|
</a>
|
|
{% if document.user_id == session.user_id or session.role == 'admin' %}
|
|
<a href="{{ url_for('delete_document', document_id=document.id) }}" class="btn btn-danger"
|
|
onclick="return confirm('Are you sure you want to delete this document?')">
|
|
<i class="bi bi-trash"></i> Delete
|
|
</a>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-info text-white">
|
|
<h5 class="mb-0"><i class="bi bi-clock-history"></i> Version History</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Version</th>
|
|
<th>Date</th>
|
|
<th>Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for version in versions %}
|
|
<tr>
|
|
<td>v{{ version.version_number }}</td>
|
|
<td>{{ version.created_at }}</td>
|
|
<td>
|
|
<a href="#" class="btn btn-sm btn-primary">
|
|
<i class="bi bi-download"></i> Download
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="col-md-4">
|
|
<div class="card mb-4">
|
|
<div class="card-header bg-secondary text-white">
|
|
<h5 class="mb-0"><i class="bi bi-info-circle"></i> Document Information</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<ul class="list-group list-group-flush">
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
File Type
|
|
<span class="badge bg-primary rounded-pill">{{ document.file_type }}</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Size
|
|
<span class="badge bg-secondary rounded-pill">{{ (document.file_size / 1024)|round(1) }} KB</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Uploaded
|
|
<span class="badge bg-info rounded-pill">{{ document.created_at.split(' ')[0] }}</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Visibility
|
|
<span class="badge bg-{{ 'success' if document.visibility == 'public' else 'warning' }} rounded-pill">
|
|
{{ document.visibility }}
|
|
</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Versions
|
|
<span class="badge bg-dark rounded-pill">{{ versions|length }}</span>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<div class="card-header bg-success text-white">
|
|
<h5 class="mb-0"><i class="bi bi-share"></i> Sharing Information</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if shares %}
|
|
<h6>Shared With</h6>
|
|
<ul class="list-group list-group-flush mb-3">
|
|
{% for share in shares %}
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
{% if share.shared_with %}
|
|
<span><i class="bi bi-person"></i> {{ share.username }}</span>
|
|
{% elif share.share_link %}
|
|
<span><i class="bi bi-link"></i> Via Link</span>
|
|
<small class="text-muted">
|
|
{% if share.expires_at %}
|
|
Expires: {{ share.expires_at.split(' ')[0] }}
|
|
{% endif %}
|
|
</small>
|
|
{% endif %}
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% else %}
|
|
<p>This document hasn't been shared yet.</p>
|
|
{% endif %}
|
|
|
|
<a href="{{ url_for('share_document', document_id=document.id) }}" class="btn btn-success w-100">
|
|
<i class="bi bi-share"></i> Manage Sharing
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|