Sudo-JHare c61d907c42
Beta 0.1
initial commit
2025-04-23 21:25:46 +10:00

114 lines
6.8 KiB
HTML

{% extends "base.html" %}
{# Optional: Import form helpers if you create _formhelpers.html #}
{# {% from "_formhelpers.html" import render_field %} #}
{% block content %}
<div class="container mt-4">
<div class="row justify-content-center">
<div class="col-md-8 col-lg-6">
<div class="card shadow-sm">
<div class="card-header">
<h2 class="text-center mb-0">Register New SMART Application</h2>
</div>
<div class="card-body">
<p class="text-muted text-center small mb-4">
Register your application to use FHIRVINE as a SMART on FHIR SSO proxy.
A Client ID and Client Secret will be generated upon successful registration.
</p>
<form method="POST" action="{{ url_for('register_app') }}" novalidate>
{{ form.hidden_tag() }} {# Include CSRF token #}
{# --- Application Name --- #}
<div class="mb-3">
{{ form.app_name.label(class="form-label") }}
{{ form.app_name(class="form-control" + (" is-invalid" if form.app_name.errors else "")) }}
{% if form.app_name.errors %}
<div class="invalid-feedback">
{% for error in form.app_name.errors %}<span>{{ error }}</span>{% endfor %}
</div>
{% endif %} {# Closes if form.app_name.errors #}
</div>
{# --- Redirect URIs --- #}
<div class="mb-3">
{{ form.redirect_uris.label(class="form-label") }} <small class="text-muted">({{ form.redirect_uris.description }})</small>
{{ form.redirect_uris(class="form-control" + (" is-invalid" if form.redirect_uris.errors else ""), rows="3") }}
{% if form.redirect_uris.errors %}
<div class="invalid-feedback">
{% for error in form.redirect_uris.errors %}<span>{{ error }}</span>{% endfor %}
</div>
{% endif %} {# Closes if form.redirect_uris.errors #}
</div>
{# --- Scopes --- #}
<div class="mb-3">
{{ form.scopes.label(class="form-label") }} <small class="text-muted">({{ form.scopes.description }})</small>
{{ form.scopes(class="form-control" + (" is-invalid" if form.scopes.errors else ""), rows="4") }}
{% if form.scopes.errors %}
<div class="invalid-feedback">
{% for error in form.scopes.errors %}<span>{{ error }}</span>{% endfor %}
</div>
{% endif %} {# Closes if form.scopes.errors #}
</div>
<hr>
<p class="text-muted small">Optional Information:</p>
{# --- Logo URI --- #}
<div class="mb-3">
{{ form.logo_uri.label(class="form-label") }} <small class="text-muted">({{ form.logo_uri.description }})</small>
{{ form.logo_uri(class="form-control" + (" is-invalid" if form.logo_uri.errors else "")) }}
{% if form.logo_uri.errors %}
<div class="invalid-feedback">
{% for error in form.logo_uri.errors %}<span>{{ error }}</span>{% endfor %}
</div>
{% endif %} {# Closes if form.logo_uri.errors #}
</div>
{# --- Contacts --- #}
<div class="mb-3">
{{ form.contacts.label(class="form-label") }} <small class="text-muted">({{ form.contacts.description }})</small>
{{ form.contacts(class="form-control" + (" is-invalid" if form.contacts.errors else ""), rows="2") }}
{% if form.contacts.errors %}
<div class="invalid-feedback">
{% for error in form.contacts.errors %}<span>{{ error }}</span>{% endfor %}
</div>
{% endif %} {# Closes if form.contacts.errors #}
</div>
{# --- Terms of Service URI --- #}
<div class="mb-3">
{{ form.tos_uri.label(class="form-label") }} <small class="text-muted">({{ form.tos_uri.description }})</small>
{{ form.tos_uri(class="form-control" + (" is-invalid" if form.tos_uri.errors else "")) }}
{% if form.tos_uri.errors %}
<div class="invalid-feedback">
{% for error in form.tos_uri.errors %}<span>{{ error }}</span>{% endfor %}
</div>
{% endif %} {# Closes if form.tos_uri.errors #}
</div>
{# --- Privacy Policy URI --- #}
<div class="mb-3">
{{ form.policy_uri.label(class="form-label") }} <small class="text-muted">({{ form.policy_uri.description }})</small>
{{ form.policy_uri(class="form-control" + (" is-invalid" if form.policy_uri.errors else "")) }}
{% if form.policy_uri.errors %}
<div class="invalid-feedback">
{% for error in form.policy_uri.errors %}<span>{{ error }}</span>{% endfor %}
</div>
{% endif %} {# Closes if form.policy_uri.errors #}
</div>
{# --- Submit Buttons --- #}
<div class="d-grid gap-2 mt-4">
{{ form.submit(class="btn btn-primary btn-lg") }}
<a href="{{ url_for('app_gallery') }}" class="btn btn-outline-secondary">Cancel</a>
</div>
</form> {# Closes form tag #}
</div> {# Closes card-body #}
</div> {# Closes card #}
</div> {# Closes col #}
</div> {# Closes row #}
</div> {# Closes container #}
{% endblock %} {# Closes block content #}