{#
# This file is part of Invenio.
# Copyright (C) 2014, 2016 CERN.
#
# Invenio is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of the
# License, or (at your option) any later version.
#
# Invenio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Invenio; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
#}

{%- 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=True, _scheme='https') }}">
            {{ _('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 %}
