Files
f0ckm/views/snippets/info-modal.html
2026-08-19 20:38:53 +02:00

189 lines
10 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div id="info-modal" class="modal-overlay" style="display: none;">
<div class="modal-content infobox-modal-content">
<!-- Header -->
<div class="infobox-modal-header">
<div class="infobox-header-title">
<div class="infobox-icon-badge">
<i class="fa-solid fa-circle-info"></i>
</div>
<div class="infobox-header-text">
<h3>{{ t('info_modal.title') || 'Post & File Details' }}</h3>
<span class="infobox-sub-heading">ID: <code>{{ item.id }}</code></span>
</div>
</div>
<button type="button" class="infobox-close-icon-btn" id="info-modal-close-icon" title="{{ t('common.close') || 'Close' }}">
<i class="fa-solid fa-xmark"></i>
</button>
</div>
<!-- Body -->
<div class="infobox-modal-body">
<!-- Section 1: Post Details -->
<div class="infobox-section">
<div class="infobox-section-header">
<i class="fa-solid fa-sliders"></i>
<span>Post Configuration</span>
</div>
<div class="infobox-cards-grid">
@if(enable_item_title)
<div class="infobox-card full-width">
<label class="infobox-card-label"><i class="fa-solid fa-heading"></i> Title</label>
@if(can_manage_item)
<div class="info-title-edit-wrap">
<input type="text" id="info-title-input" class="info-title-input" value="{!! item.title || '' !!}" placeholder="Add a title…" maxlength="500" data-item-id="{{ item.id }}" />
<button type="button" id="info-title-save" class="info-title-save-btn" title="Save Title"><i class="fa-solid fa-check"></i></button>
</div>
<span id="info-title-status" class="info-title-status" style="display:none"></span>
@else
<div class="infobox-card-value">{!! item.title || '<span class="text-muted">No title set</span>' !!}</div>
@endif
</div>
@endif
<div class="infobox-card">
<label class="infobox-card-label"><i class="fa-solid fa-eye"></i> Visibility</label>
<div class="infobox-card-value-row">
<span id="info-visibility-label" class="visibility-badge vis-{{ item.visibility || 0 }}">
@if(item.visibility === 2)
<i class="fa-solid fa-lock" style="color: var(--color-danger, #ff4444);"></i> Private
@elseif(item.visibility === 1)
<i class="fa-solid fa-link" style="color: var(--color-warning, #ffbb33);"></i> Unlisted
@else
<i class="fa-solid fa-globe" style="color: var(--color-success, #00C851);"></i> Public
@endif
</span>
@if(can_manage_item)
<button type="button" id="info-visibility-edit-btn" class="infobox-action-btn" data-item-id="{{ item.id }}" data-visibility="{{ item.visibility || 0 }}">
<i class="fa-solid fa-pen"></i> Edit
</button>
@endif
</div>
</div>
@if(enable_expiring_uploads !== false)
<div class="infobox-card">
<label class="infobox-card-label"><i class="fa-solid fa-hourglass-half"></i> Expiration</label>
<div class="infobox-expiry-content">
<span id="info-expiry-label" class="expiry-status-label" title="{{ item.expires_at ? new Date(item.expires_at * 1000).toLocaleString() : '' }}">
@if(item.expires_at)
<i class="fa-solid fa-clock" style="color: #ffaa00;"></i> {{ item.expires_in || ('in ' + new Date(item.expires_at * 1000).toLocaleString()) }}
@else
<i class="fa-solid fa-clock-slash" style="color: var(--text-muted, #888);"></i> Permanent
@endif
</span>
@if(can_manage_item)
<div class="info-expiry-edit-controls">
<select id="info-expiry-select" class="infobox-select" data-item-id="{{ item.id }}">
<option value="permanent" {{ !item.expires_at ? 'selected' : '' }}>Permanent</option>
<option value="30minutes">30 Minutes</option>
<option value="1hour">1 Hour</option>
<option value="24hours">24 Hours</option>
<option value="1week">1 Week</option>
<option value="1month">1 Month</option>
</select>
<button type="button" id="info-set-expiry-btn" class="infobox-action-btn" data-item-id="{{ item.id }}" title="Save Expiration">
<i class="fa-solid fa-check"></i>
</button>
</div>
@endif
</div>
</div>
@endif
</div>
</div>
<!-- Section 2: Technical File Specifications -->
<div class="infobox-section">
<div class="infobox-section-header">
<i class="fa-solid fa-file-code"></i>
<span>Technical Specifications</span>
</div>
<div class="infobox-cards-grid">
<div class="infobox-card">
<label class="infobox-card-label"><i class="fa-solid fa-hard-drive"></i> File Size</label>
<div class="infobox-card-value font-mono">{{ item.size }}</div>
</div>
@if(item_has_dimensions)
<div class="infobox-card">
<label class="infobox-card-label"><i class="fa-solid fa-ruler-combined"></i> Dimensions</label>
<div class="infobox-card-value font-mono">{{ item.width }} × {{ item.height }} px</div>
</div>
@endif
<div class="infobox-card">
<label class="infobox-card-label"><i class="fa-solid fa-file-lines"></i> MIME Type</label>
<div class="infobox-card-value"><code class="mime-pill">{{ item.mime }}</code></div>
</div>
<div class="infobox-card">
<label class="infobox-card-label"><i class="fa-solid fa-arrow-up-right-from-square"></i> Direct Link</label>
<div class="infobox-card-value">
<a href="{{ item.mime === 'video/youtube' ? 'https://www.youtube.com/watch?v=' + item.dest.replace('yt:', '') : item.dest }}" target="_blank" class="infobox-link-pill">
<i class="fa-solid fa-up-right-from-square"></i> {{ t('info_modal.view_file') || 'Open File' }}
</a>
</div>
</div>
@if(item.src && item.src.short)
<div class="infobox-card full-width">
<label class="infobox-card-label"><i class="fa-solid fa-link"></i> Source URL</label>
<div class="infobox-card-value">
<a href="{{ item.src.long }}" target="_blank" class="infobox-source-link">
<i class="fa-solid fa-globe"></i> {{ item.src.short }}
</a>
</div>
</div>
@endif
@if(item.checksum)
<div class="infobox-card full-width">
<div class="infobox-card-label-row">
<label class="infobox-card-label"><i class="fa-solid fa-fingerprint"></i> SHA-256 Hash</label>
<button type="button" class="copy-hash-btn" id="info-copy-hash-btn" data-hash="{{ item.checksum.split('_bypass_')[0] }}" title="Copy SHA-256 Hash">
<i class="fa-solid fa-copy"></i> Copy
</button>
</div>
<div class="info-hash-codeblock font-mono">
<code>{{ item.checksum.split('_bypass_')[0] }}</code>
</div>
</div>
@endif
</div>
</div>
<!-- Section 3: Reposts & Duplicates (if present) -->
@if(item.show_repost_row)
<div class="infobox-section">
<div class="infobox-section-header">
<i class="fa-solid fa-copy"></i>
<span>Similar & Duplicate Uploads</span>
</div>
<div class="infobox-reposts-list">
@each(item.reposts as rp)
<a href="/{{ rp.slug || rp.id }}" class="repost-pill {{ rp.match_type === 'phash' ? 'phash' : 'exact' }}" tooltip="{{ rp.match_type === 'phash' ? 'Visually similar (perceptual hash)' : 'Exact duplicate (checksum)' }}" flow="up">
<i class="fa-solid {{ rp.match_type === 'phash' ? 'fa-clone' : 'fa-copy' }}"></i>
<span>{{ rp.match_type === 'phash' ? '~#' : '#' }}{{ rp.slug || rp.id }}</span>
</a>
@endeach
</div>
</div>
@endif
</div>
<!-- Footer -->
<div class="infobox-modal-footer">
@if(can_manage_item)
<button type="button" class="btn-infobox-action" id="info-rethumb-btn" data-item-id="{{ item.id }}">
<i class="fa-solid fa-arrows-rotate"></i> Regenerate Thumbnail
</button>
@endif
<button type="button" class="btn-infobox-close" id="info-modal-close">{{ t('common.close') || 'Close' }}</button>
</div>
</div>
</div>