Add missing developer page

This commit is contained in:
Jeremy Benoist 2016-03-16 23:56:42 +01:00
parent a0c6c244d9
commit 3fae7f1d08
12 changed files with 176 additions and 74 deletions

View file

@ -49,7 +49,7 @@ class DeveloperController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'New client created.'
'flashes.developer.notice.client_created'
);
return $this->render('WallabagCoreBundle:Developer:client_parameters.html.twig', array(
@ -80,7 +80,7 @@ class DeveloperController extends Controller
$this->get('session')->getFlashBag()->add(
'notice',
'Client deleted'
'flashes.developer.notice.client_deleted'
);
return $this->redirect($this->generateUrl('developer'));

View file

@ -14,8 +14,8 @@ class ClientType extends AbstractType
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('redirect_uris', UrlType::class, array('required' => true, 'label' => 'Redirect URIs'))
->add('save', SubmitType::class, array('label' => 'Create a new client'))
->add('redirect_uris', UrlType::class, array('required' => true, 'label' => 'developer.client.form.redirect_uris_label'))
->add('save', SubmitType::class, array('label' => 'developer.client.form.save_label'))
;
$builder->get('redirect_uris')

View file

@ -325,6 +325,53 @@ import:
page_title: 'Import > Wallabag v2'
description: 'This importer will import all your wallabag v2 articles. Go to All articles, then, on the export sidebar, click on "JSON". You will have a "All articles.json" file.'
developer:
page_title: 'Developer'
welcome_message: 'Welcome to the wallabag API'
documentation: 'Documentation'
how_to_first_app: 'How to create my first application'
full_documentation: 'View full API documentation'
clients:
title: 'Clients'
create_new: 'Create a new client'
existing_clients:
title: 'Existing clients'
field_id: 'Client ID'
field_secret: 'Client secret'
field_uris: 'Redirect URIs'
field_grant_types: 'Grant type allowed'
no_client: 'No client yet.'
remove:
warn_message_1: 'You have the ability to remove this client. This action is IRREVERSIBLE !'
warn_message_2: "If you remove it, every app configured with that client won't be able to auth on your wallabag."
action: 'Remove this client'
client:
page_title: 'Developer > New client'
page_description: 'You are about to create a new client. Please fill the field below for the redirect URI of your application.'
form:
redirect_uris_label: 'Redirect URIs'
save_label: 'Create a new client'
action_back: 'Back'
client_parameter:
page_title: 'Developer > Client parameters'
page_description: 'Here are your client parameters.'
field_id: 'Client ID'
field_secret: 'Client secret'
back: 'Back'
read_howto: 'Read the howto "Create my first application"'
howto:
page_title: 'Developer > How to create my first application'
description:
paragraph_1: 'The following commands make use of the <a href="https://github.com/jkbrzt/httpie">HTTPie library</a>. Make sure it is installed on your system before using it.'
paragraph_2: 'You need a token to communicate between your 3rd application and wallabag API.'
paragraph_3: 'To create this token, you need <a href="%link%">to create a new client</a>.'
paragraph_4: 'Now, create your token (replace client_id, client_secret, username and password with the good values):'
paragraph_5: 'The API will return a response like this:'
paragraph_6: 'The access_token is useful to do a call to the API endpoint. For example:'
paragraph_7: 'This call will return all the entries for your user.'
paragraph_8: 'If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.'
back: 'Back'
validator:
password_must_match: 'The password fields must match.'
password_too_short: 'Password should by at least 8 chars long'
@ -364,3 +411,7 @@ flashes:
failed: 'Import failed, please try again.'
failed_on_file: 'Error while processing import. Please verify your import file.'
summary: 'Import summary: %imported% imported, %skipped% already saved.'
developer:
notice:
client_created: 'New client created.'
client_deleted: 'Client deleted'

View file

@ -323,6 +323,53 @@ import:
page_title: 'Importer > Wallabag v2'
description: "Cet outil va importer tous vos articles d'une autre instance de wallabag v2. Allez dans tous vos articles, puis, sur la barre latérale, cliquez sur \"JSON\". Vous allez récupérer un fichier \"All articles.json\""
developer:
page_title: 'Développeur'
welcome_message: "Bienvenue sur l'API de wallabag"
documentation: 'Documentation'
how_to_first_app: 'Comment créer votre première application'
full_documentation: "Voir la documentation complète de l'API"
clients:
title: 'Clients'
create_new: 'Créer une nouveau client'
existing_clients:
title: 'Les clients existants'
field_id: 'ID Client'
field_secret: 'Clé secrète'
field_uris: 'URLs de redirection'
field_grant_types: 'Type de privilège accordé'
no_client: 'Aucun client pour le moment'
remove:
warn_message_1: 'Vous avez la possibilité de supprimer un client. Cette action est IRREVERSIBLE !'
warn_message_2: "Si vous supprimez un client, toutes les applications qui l'utilisaient ne fonctionneront plus avec votre compte wallabag."
action: 'Supprimer ce client'
client:
page_title: 'Développeur > Nouveau client'
page_description: "Vous allez créer un nouveau client. Merci de remplir l'url de redirection vers votre application."
form:
redirect_uris_label: 'URLs de redirection'
save_label: 'Créer un nouveau client'
action_back: 'Retour'
client_parameter:
page_title: 'Développeur > Les paramètres de votre client'
page_description: 'Voilà les paramètres de votre client'
field_id: 'ID Client'
field_secret: 'Clé secrète'
back: 'Retour'
read_howto: 'Lire "comment créer ma première application"'
howto:
page_title: 'Développeur > Comment créer votre première application'
description:
paragraph_1: "Les commandes suivantes utilisent la <a href=\"https://github.com/jkbrzt/httpie\">librarie HTTPie</a>. Assurez-vous qu'elle soit installée avant de l'utiliser."
paragraph_2: "Vous avez besoin d'un token pour échanger entre votre application et l'API de wallabag."
paragraph_3: 'Pour créer un token, vous devez <a href="%link%">créer un nouveau client</a>.'
paragraph_4: 'Maintenant créez votre token (remplacer client_id, client_secret, username et password avec les bonnes valeurs):'
paragraph_5: "L'API vous retournera une réponse comme ça :"
paragraph_6: "L'access_token doit être utilisé pour faire un appel à l'API. Par exemple :"
paragraph_7: "Cet appel va retourner tous les articles de l'utilisateur."
paragraph_8: "Si vous voulez toutes les méthodes de l'API, jetez un oeil <a href=\"%link%\">à la documentation de l'API</a>."
back: 'Retour'
validator:
password_must_match: 'Les mots de passe doivent être identique'
password_too_short: 'Le mot de passe doit avoir au moins 8 caractères'
@ -362,3 +409,7 @@ flashes:
failed: "L'import a échoué, veuillez ré-essayer"
failed_on_file: "Erreur lors du traitement de l'import. Vérifier votre fichier."
summary: "Rapport d'import: %imported% importés, %skipped% déjà présent."
developer:
notice:
client_created: 'Nouveau client créé'
client_deleted: 'Client supprimé'

View file

@ -1,6 +1,6 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{% trans %}New client{% endtrans %}{% endblock %}
{% block title %}{{ 'developer.client.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
@ -8,7 +8,7 @@
<div class="card-panel settings">
<div class="row">
<p>{% trans %}You are about to create a new client. Please fill the field below for the redirect URI of your application.{% endtrans %}</p>
<p>{{ 'developer.client.page_description'|trans }}</p>
{{ form_start(form) }}
{{ form_errors(form) }}
@ -18,7 +18,7 @@
{{ form_widget(form.redirect_uris) }}
</div>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client.action_back'|trans }}</a>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}

View file

@ -1,20 +1,20 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{% trans %}Client parameters{% endtrans %}{% endblock %}
{% block title %}{{ 'developer.client_parameter.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<p>{% trans %}Here are your client parameters.{% endtrans %}</p>
<p>{{ 'developer.client_parameter.page_description'|trans }}</p>
<ul>
<li>{% trans %}Client ID{% endtrans %}: <strong><pre>{{ client_id }}</pre></strong></li>
<li>{% trans %}Client secret{% endtrans %}: <strong><pre>{{ client_secret }}</pre></strong></li>
<li>{{ 'developer.client_parameter.field_id'|trans }}: <strong><pre>{{ client_id }}</pre></strong></li>
<li>{{ 'developer.client_parameter.field_secret'|trans }}: <strong><pre>{{ client_secret }}</pre></strong></li>
</ul>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
<a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{% trans %}Read the howto "Create my first application"{% endtrans %}</a>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client_parameter.back'|trans }}</a>
<a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{{ 'developer.client_parameter.read_howto'|trans }}</a>
</div>
</div>
</div>

View file

@ -1,6 +1,6 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{% trans %}How to create my first application{% endtrans %}{% endblock %}
{% block title %}{{ 'developer.howto.page_title'|trans }}{% endblock %}
{% block css %}
{{ parent() }}
@ -13,10 +13,10 @@
<div class="card-panel settings">
<div class="row">
<p>{% trans %}The following commands make use of the <a href="https://github.com/jkbrzt/httpie">HTTPie library</a>. Make sure it is installed on your system before using it.{% endtrans %}</p>
<p>{% trans %}You need a token to communicate between your 3rd application and wallabag API.{% endtrans %}</p>
<p>{% trans with {'%link%': path('developer_create_client')} %}To create this token, you need <a href="%link%">to create a new client</a>.{% endtrans %}</p>
<p>{% trans %}Now, create your token (replace client_id, client_secret, username and password with the good values):{% endtrans %}</p>
<p>{{ 'developer.howto.description.paragraph_1'|trans|raw }}</p>
<p>{{ 'developer.howto.description.paragraph_2'|trans }}</p>
<p>{{ 'developer.howto.description.paragraph_3'|trans({'%link%': path('developer_create_client')})|raw }}</p>
<p>{{ 'developer.howto.description.paragraph_4'|trans }}</p>
<p>
<pre><code class="language-bash">http POST http://v2.wallabag.org/oauth/v2/token \
grant_type=password \
@ -25,7 +25,7 @@
username=yourUsername \
password=yourPassw0rd</code></pre>
</p>
<p>{% trans %}The API will return a response like this:{% endtrans %}</p>
<p>{{ 'developer.howto.description.paragraph_5'|trans }}</p>
<p>
<pre><code class="language-bash">HTTP/1.1 200 OK
Cache-Control: no-store, private
@ -45,14 +45,14 @@ X-Powered-By: PHP/5.5.9-1ubuntu4.13
"token_type": "bearer"
}</code></pre>
</p>
<p>{% trans %}The access_token is useful to do a call to the API endpoint. For example:{% endtrans %}</p>
<p>{{ 'developer.howto.description.paragraph_6'|trans }}</p>
<p>
<pre><code class="language-bash">http GET http://v2.wallabag.org/api/entries.json \
"Authorization:Bearer ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw"</code></pre>
</p>
<p>{% trans %}This call will return all the entries for your user.{% endtrans %}</p>
<p>{% trans with {'%link%': path('nelmio_api_doc_index')} %}If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.{% endtrans %}</p>
<p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a></p>
<p>{{ 'developer.howto.description.paragraph_7'|trans }}</p>
<p>{{ 'developer.howto.description.paragraph_8'|trans({'%link%': path('nelmio_api_doc_index')})|raw }}</p>
<p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.howto.back'|trans }}</a></p>
</div>
</div>

View file

@ -1,6 +1,6 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{% trans %}Developer{% endtrans %}{% endblock %}
{% block title %}{{ 'developer.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
@ -8,21 +8,21 @@
<div class="card-panel settings">
<div class="row">
<h3>{% trans %}Welcome to the wallabag API{% endtrans %}</h3>
<h3>{{ 'developer.welcome_message'|trans }}</h3>
<h4>{% trans %}Documentation{% endtrans %}</h4>
<h4>{{ 'developer.documentation'|trans }}</h4>
<ul>
<li><a href="{{ path('developer_howto_firstapp') }}">{% trans %}How to create my first application{% endtrans %}</a></li>
<li><a href="{{ path('nelmio_api_doc_index') }}">{% trans %}View full API documentation{% endtrans %}</a></li>
<li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
<li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.full_documentation'|trans }}</a></li>
</ul>
<h4>{% trans %}Clients{% endtrans %}</h4>
<h4>{{ 'developer.clients.title'|trans }}</h4>
<ul>
<li><a href="{{ path('developer_create_client') }}">{% trans %}Create a new client{% endtrans %}</a></li>
<li><a href="{{ path('developer_create_client') }}">{{ 'developer.clients.create_new'|trans }}</a></li>
</ul>
<h4>{% trans %}Existing clients{% endtrans %}</h4>
<h4>{{ 'developer.existing_clients.title'|trans }}</h4>
{% if clients %}
<ul class="collapsible" data-collapsible="expandable">
{% for client in clients %}
@ -31,33 +31,33 @@
<div class="collapsible-body">
<table class="striped">
<tr>
<td>{% trans %}Client ID{% endtrans %}</td>
<td>{{ 'developer.existing_clients.field_id'|trans }}</td>
<td><strong><code>{{ client.id }}_{{ client.randomId }}</code></strong></td>
</tr>
<tr>
<td>{% trans %}Client secret{% endtrans %}</td>
<td>{{ 'developer.existing_clients.field_secret'|trans }}</td>
<td><strong><code>{{ client.secret }}</code></strong></td>
</tr>
<tr>
<td>{% trans %}Redirect URIs{% endtrans %}</td>
<td>{{ 'developer.existing_clients.field_uris'|trans }}</td>
<td><strong><code>{{ client.redirectUris|json_encode() }}</code></strong></td>
</tr>
<tr>
<td>{% trans %}Grant type allowed{% endtrans %}</td>
<td>{{ 'developer.existing_clients.field_grant_types'|trans }}</td>
<td><strong><code>{{ client.allowedGrantTypes|json_encode() }}</code></strong></td>
</tr>
</table>
<p>
{% trans %}You have the ability to remove this client. This action is IRREVERSIBLE !{% endtrans %}<br/>
{% trans %}If you remove it, every app configured with that client won't be able to auth on your wallabag.{% endtrans %}<br/>
<a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{% trans %}Remove this client{% endtrans %}</a>
{{ 'developer.remove.warn_message_1'|trans }}<br/>
{{ 'developer.remove.warn_message_2'|trans }}<br/>
<a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{{ 'developer.remove.action'|trans }}</a>
</p>
</div>
</li>
{% endfor %}
</ul>
{% else %}
{% trans %}No client yet.{% endtrans %}
{{ 'developer.existing_clients.no_client'|trans }}
{% endif %}
</div>

View file

@ -1,6 +1,6 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{% trans %}New client{% endtrans %}{% endblock %}
{% block title %}{{ 'developer.client.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
@ -8,7 +8,7 @@
<div class="card-panel settings">
<div class="row">
<p>{% trans %}You are about to create a new client. Please fill the field below for the redirect URI of your application.{% endtrans %}</p>
<p>{{ 'developer.client.page_description'|trans }}</p>
{{ form_start(form) }}
{{ form_errors(form) }}
@ -18,7 +18,7 @@
{{ form_widget(form.redirect_uris) }}
</div>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client.action_back'|trans }}</a>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}

View file

@ -1,20 +1,20 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{% trans %}Client parameters{% endtrans %}{% endblock %}
{% block title %}{{ 'developer.client_parameter.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<p>{% trans %}Here are your client parameters.{% endtrans %}</p>
<p>{{ 'developer.client_parameter.page_description'|trans }}</p>
<ul>
<li>{% trans %}Client ID{% endtrans %}: <strong><pre>{{ client_id }}</pre></strong></li>
<li>{% trans %}Client secret{% endtrans %}: <strong><pre>{{ client_secret }}</pre></strong></li>
<li>{{ 'developer.client_parameter.field_id'|trans }}: <strong><pre>{{ client_id }}</pre></strong></li>
<li>{{ 'developer.client_parameter.field_secret'|trans }}: <strong><pre>{{ client_secret }}</pre></strong></li>
</ul>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a>
<a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{% trans %}Read the howto "Create my first application"{% endtrans %}</a>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client_parameter.back'|trans }}</a>
<a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{{ 'developer.client_parameter.read_howto'|trans }}</a>
</div>
</div>
</div>

View file

@ -1,6 +1,6 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{% trans %}How to create my first application{% endtrans %}{% endblock %}
{% block title %}{{ 'developer.howto.page_title'|trans }}{% endblock %}
{% block css %}
{{ parent() }}
@ -13,10 +13,10 @@
<div class="card-panel settings">
<div class="row">
<p>{% trans %}The following commands make use of the <a href="https://github.com/jkbrzt/httpie">HTTPie library</a>. Make sure it is installed on your system before using it.{% endtrans %}</p>
<p>{% trans %}You need a token to communicate between your 3rd application and wallabag API.{% endtrans %}</p>
<p>{% trans with {'%link%': path('developer_create_client')} %}To create this token, you need <a href="%link%">to create a new client</a>.{% endtrans %}</p>
<p>{% trans %}Now, create your token (replace client_id, client_secret, username and password with the good values):{% endtrans %}</p>
<p>{{ 'developer.howto.description.paragraph_1'|trans|raw }}</p>
<p>{{ 'developer.howto.description.paragraph_2'|trans }}</p>
<p>{{ 'developer.howto.description.paragraph_3'|trans({'%link%': path('developer_create_client')})|raw }}</p>
<p>{{ 'developer.howto.description.paragraph_4'|trans }}</p>
<p>
<pre><code class="language-bash">http POST http://v2.wallabag.org/oauth/v2/token \
grant_type=password \
@ -25,7 +25,7 @@
username=yourUsername \
password=yourPassw0rd</code></pre>
</p>
<p>{% trans %}The API will return a response like this:{% endtrans %}</p>
<p>{{ 'developer.howto.description.paragraph_5'|trans }}</p>
<p>
<pre><code class="language-bash">HTTP/1.1 200 OK
Cache-Control: no-store, private
@ -45,14 +45,14 @@ X-Powered-By: PHP/5.5.9-1ubuntu4.13
"token_type": "bearer"
}</code></pre>
</p>
<p>{% trans %}The access_token is useful to do a call to the API endpoint. For example:{% endtrans %}</p>
<p>{{ 'developer.howto.description.paragraph_6'|trans }}</p>
<p>
<pre><code class="language-bash">http GET http://v2.wallabag.org/api/entries.json \
"Authorization:Bearer ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw"</code></pre>
</p>
<p>{% trans %}This call will return all the entries for your user.{% endtrans %}</p>
<p>{% trans with {'%link%': path('nelmio_api_doc_index')} %}If you want to see all the API endpoints, you can have a look <a href="%link%">to our API documentation</a>.{% endtrans %}</p>
<p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{% trans %}Back{% endtrans %}</a></p>
<p>{{ 'developer.howto.description.paragraph_7'|trans }}</p>
<p>{{ 'developer.howto.description.paragraph_8'|trans({'%link%': path('nelmio_api_doc_index')})|raw }}</p>
<p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.howto.back'|trans }}</a></p>
</div>
</div>

View file

@ -1,6 +1,6 @@
{% extends "WallabagCoreBundle::layout.html.twig" %}
{% block title %}{% trans %}Developer{% endtrans %}{% endblock %}
{% block title %}{{ 'developer.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
@ -8,21 +8,21 @@
<div class="card-panel settings">
<div class="row">
<h3>{% trans %}Welcome to the wallabag API{% endtrans %}</h3>
<h3>{{ 'developer.welcome_message'|trans }}</h3>
<h4>{% trans %}Documentation{% endtrans %}</h4>
<h4>{{ 'developer.documentation'|trans }}</h4>
<ul>
<li><a href="{{ path('developer_howto_firstapp') }}">{% trans %}How to create my first application{% endtrans %}</a></li>
<li><a href="{{ path('nelmio_api_doc_index') }}">{% trans %}View full API documentation{% endtrans %}</a></li>
<li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
<li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.full_documentation'|trans }}</a></li>
</ul>
<h4>{% trans %}Clients{% endtrans %}</h4>
<h4>{{ 'developer.clients.title'|trans }}</h4>
<ul>
<li><a href="{{ path('developer_create_client') }}">{% trans %}Create a new client{% endtrans %}</a></li>
<li><a href="{{ path('developer_create_client') }}">{{ 'developer.clients.create_new'|trans }}</a></li>
</ul>
<h4>{% trans %}Existing clients{% endtrans %}</h4>
<h4>{{ 'developer.existing_clients.title'|trans }}</h4>
{% if clients %}
<ul class="collapsible" data-collapsible="expandable">
{% for client in clients %}
@ -31,33 +31,33 @@
<div class="collapsible-body">
<table class="striped">
<tr>
<td>{% trans %}Client ID{% endtrans %}</td>
<td>{{ 'developer.existing_clients.field_id'|trans }}</td>
<td><strong><code>{{ client.id }}_{{ client.randomId }}</code></strong></td>
</tr>
<tr>
<td>{% trans %}Client secret{% endtrans %}</td>
<td>{{ 'developer.existing_clients.field_secret'|trans }}</td>
<td><strong><code>{{ client.secret }}</code></strong></td>
</tr>
<tr>
<td>{% trans %}Redirect URIs{% endtrans %}</td>
<td>{{ 'developer.existing_clients.field_uris'|trans }}</td>
<td><strong><code>{{ client.redirectUris|json_encode() }}</code></strong></td>
</tr>
<tr>
<td>{% trans %}Grant type allowed{% endtrans %}</td>
<td>{{ 'developer.existing_clients.field_grant_types'|trans }}</td>
<td><strong><code>{{ client.allowedGrantTypes|json_encode() }}</code></strong></td>
</tr>
</table>
<p>
{% trans %}You have the ability to remove this client. This action is IRREVERSIBLE !{% endtrans %}<br/>
{% trans %}If you remove it, every app configured with that client won't be able to auth on your wallabag.{% endtrans %}<br/>
<a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{% trans %}Remove this client{% endtrans %}</a>
{{ 'developer.remove.warn_message_1'|trans }}<br/>
{{ 'developer.remove.warn_message_2'|trans }}<br/>
<a class="waves-effect waves-light red btn" href="{{ path('developer_delete_client', {'id': client.id}) }}">{{ 'developer.remove.action'|trans }}</a>
</p>
</div>
</li>
{% endfor %}
</ul>
{% else %}
{% trans %}No client yet.{% endtrans %}
{{ 'developer.existing_clients.no_client'|trans }}
{% endif %}
</div>