{% extends "base.html" %} {% block title %}{{ (entity.title if entity else None) or plugin_name }} — {{ config.INSTANCE_NAME }}{% endblock %} {% block content %}
{# Quarantine banner — owner / admin only when non-approved. Self-guarded. #} {% include "_quarantine_banner.html" %} {# Owner-actions strip (Edit + Delete locked-when-not-approved). Mirrors the policy that previously lived in store_detail.html. Edit is a placeholder for now ("coming soon"); Delete is gated server-side so the visible state matches what the API will accept. #} {% if entity and (is_owner or is_admin) %}
{# v37 edit feature: Edit lands a real page. Disabled while a prior version is under review (server-side 409 also enforces). edit_in_flight is set by the router whenever the latest submission is pending_inline / pending_llm — even if the entity stayed at visibility='approved' (deferred-promotion path so existing installers keep receiving the prior bundle). #} {% if edit_in_flight %} Edit (review in flight) {% else %} Edit {% endif %} {# v35 delete UX: Archive (soft) is the primary path. Owner sees Archive only when the entity is approved or already archived (re-archive is a no-op, but no point exposing). Admin gets Archive AND Hard Delete (separate red button) regardless of state. Quarantined (non-approved + non-archived) entities lock both buttons for the owner — admin still sees both. #} {% if is_admin %} {# Archive (soft) only meaningful when the entity is currently public (approved). For non-approved states the entity is already hidden — archiving would just lose the quarantine / pending state info. Admin still has Hard delete + the override / rescan / retry actions on the quarantine banner to manage non-approved entities. #} {% if entity.visibility_status == 'approved' %} {% elif entity.visibility_status == 'archived' %} {% else %} {% endif %} {% elif entity.visibility_status == 'approved' %} {% elif entity.visibility_status == 'archived' %} {% elif entity.visibility_status == 'pending' %} {% else %} {% endif %}
{% endif %} {% include "_flea_versions.html" %}
Marketplace {{ 'Curated Marketplace' if source == 'curated' else 'Flea Market' }} {{ (entity.title if entity else None) or plugin_name }}

{{ (entity.title if entity else None) or plugin_name }}

What it does

Loading…

Details

{% endblock %}