{% import 'macros/form.html' as form %}
{% set value = data[field.field_name] %}
{% set is_url = value and value[4:]|lower == 'http' %}
{% set is_json = not is_url and value %}
{# Schema Upload #}
{{ form.input(
'schema_upload',
label='Upload Data Schema',
id='field-schema-upload',
type='file',
error='',
classes=['control-full']
)
}}
{# Schema URL #}
{{ form.input(
'schema_url',
label='Data Schema URL',
id='field-schema-url',
type='url',
placeholder='https://example.com/schema.json',
value=data.get('schema') if is_url else '',
error=errors.get('schema') if is_url else '',
classes=['control-full']
)
}}
{# Schema JSON #}
{{ form.textarea(
'schema_json',
id='field-schema-json',
label=h.scheming_language_text('Data Schema JSON definition'),
value=h.scheming_display_json_value(value, indent=field.get('indent', 2)) if (value and is_json) else None,
error=errors['schema'] if is_json else None,
attrs=field.form_attrs or {"class": "form-control"}
)
}}
{# Actual field containing the value #}
{% set existing_value = h.scheming_display_json_value(value, indent=None) if is_json else value %}
{% if h.use_webassets() %}
{% snippet 'validation/snippets/validation_asset.html', name='ckanext-validation/resource-schema-form' %}
{% else %}
{% snippet 'validation/snippets/validation_resource.html', name='ckanext-validation/resource-schema-form' %}
{% endif %}