{% extends "base.html" %} {% from "_macros.html" import cover_url %} {% block title %}Add Item — {{ library_name() }}{% endblock %} {% block content %}

Add Item

{% if added_barcode %}

✓ Added{% if added_title %}: {{ added_title }}{% endif %} ({{ added_barcode }}) · View item {% if added_work_id %}· View work{% endif %}

{% endif %} {% if error %}

{{ error }}

{% endif %} {% if copy_work %} {# ── Streamlined add-copy form (arrived from a work detail page) ─────────── #}
Add copy
{% if copy_work.cover_image_url %} Cover {% endif %}
{{ copy_work.title }} {% if copy_work.subtitle %}
{{ copy_work.subtitle }}{% endif %} {% if copy_work.creators %}
{% for wc in copy_work.creators %}{{ wc.creator.display_name }}{% if not loop.last %}, {% endif %}{% endfor %}{% endif %} {% if copy_work.publication_year %}
{{ copy_work.publication_year }}{% endif %}
Cancel
{% else %} {# ── Normal identifier-lookup form ─────────────────────────────────────────── #} {% set _pm = preset_media_type or 'book' %}
Look up by identifier
Media type
{% if has_permission(user, 'system.manage') %}

Tip: book metadata uses Open Library by default (no key required). Configuring a Google Books API key on the Metadata Sources page lets you switch the primary source and unlock richer book data. Film metadata is richer with a TMDb API key.

{% endif %}
{% include "scan/_pair_panel.html" %}

Can't find it? Enter manually instead.

{% include "_partials/scanner_dialog.html" %} {% endif %} {% endblock %} {% block scripts %} {% if not copy_work %} {% include "_partials/scanner_scripts.html" %} {% endif %} {% endblock %}