{# -*- coding: utf-8 -*-

  This file is part of Invenio.
  Copyright (C) 2015-2018 CERN.
  Copyright (C)      2021 Graz University of Technology.

  Invenio is free software; you can redistribute it and/or modify it
  under the terms of the MIT License; see LICENSE file for more details.
#}

{%- extends "invenio_oauth2server/settings/index.html" %}

{%- import "invenio_oauth2server/settings/helpers.html" as helpers with context %}
{%- from "invenio_oauth2server/settings/_macros.html" import render_field with context %}

{% block settings_content %}
  {{ helpers.panel_start(_('Application / %(client_name)s',
                           client_name=client.name), with_body=False,) }}
  <div class="panel-body">
    <div class="row">
      <div class="col-md-12 col-lg-9">
        <p><strong class="">{{ _('Client ID') }}</strong><br><code>{{client.client_id}}</code></p>
        <p><strong class="">{{ _('Client Secret') }}</strong><br><code>{{client.client_secret}}</code>
        <br><small class="text-muted">{{ _('Do not share the client secret with anyone!') }}</small></p>
      </div>
      <div class="col-md-12 col-lg-3">
        <form method="POST" action="{{ url_for('.client_reset', client_id=client.client_id) }}">
          <input type="hidden" name="reset" value="yes">
          <button type="submit" class="btn btn-danger">
            <i class="fa fa-ban"></i> {{ _('Reset client secret') }}
          </button>
        </form>
      </a>
    </div>
  </div>
  {%- block client_footer_text %}

  {%- endblock %}
  </div>
  <hr>
  <div class="panel-body">
    <form method="POST" role="form" action="">
      {%- for field in form %}
      {{ render_field(field) }}
      {%- endfor %}
      <div class="form-group">
        <button type="submit" name="delete" class="btn btn-danger"><i class="fa fa-trash-o"></i> {{ _('Delete') }}</button>
        <button type="submit" name="save" class="btn btn-primary"><i class="fa fa-check"></i> {{ _('Save') }}</button>
      </div>
    </form>
  </div>
  {{helpers.panel_end(with_body=False)}}


  {{helpers.panel_start(_('OAuth 2.0 Endpoints'))}}
  <div class="row">
    <div class="col-md-6">
      <p>
        <strong class="">{{ _('Authorize URL (GET)') }}</strong><br>
        {{url_for('invenio_oauth2server.authorize', _external=True, _scheme='https')}}<br/>
        <small class="text-muted">
          {{ _('Query parameters') }} (<a href="{{ url_for(
              'invenio_oauth2server.authorize', response_type='code',
              client_id=client.client_id,
              scope='deposit:write deposit:actions',
              state='CHANGEME',
              redirect_uri=client.default_redirect_uri,
              _external=False) }}">
            {{ _('example request') }}
          </a>):
          <ul>
            <li>response_type ({{ _("required, use") }} <code>code</code> or <code>token</code>)</li>
            <li>client_id ({{ _("required") }})</li>
            <li>scope ({{ _("required, space separate list of scopes") }})</li>
            <li>redirect_uri ({{ _("required, URL encoded") }})</li>
            <li>state ({{ _("recommended, for CSRF protection") }})</li>
          </ul>
        </small>
      </p>
    </div>
    <div class="col-md-6">
      <p>
      <strong class="">{{ _('Access token URL (POST)') }}</strong><br>
      {{ url_for('invenio_oauth2server.access_token', _external=True, _scheme='https')}}<br/>
      <small class="text-muted">{{ _('Request body parameters:') }}
        <ul>
          <li>client_id ({{ _("required") }}).</li>
          <li>client_secret ({{ _("required") }}).</li>
          <li>grant_type ({{ _("required, use") }} {% for c in config.OAUTH2SERVER_ALLOWED_GRANT_TYPES %}<code>{{c}}</code>{% if not loop.last %}, {% endif %}{% endfor %}).</li>
          <li>code ({{ _("required for grant_type") }} <code>authorization code</code>).</li>
          <li>scope ({{ _("required for grant_type") }} <code>client_credentials</code>).</li>
          <li>refresh_token ({{ _("required for grant_type") }} <code>refresh_token</code>).</li>
        </ul>
      </small>
      </p>
    </div>
  </div>
  {{helpers.panel_end()}}
{% endblock %}
