{% import "bootstrap/wtf.html" as wtf %} {% macro form_field(field, form_type="basic", horizontal_columns=('lg', 2, 10), button_map={}) %} {% if field.widget.input_type == 'checkbox' %}
{%- if field.description -%}

{{field.description|safe}}

{%- endif %}
{% else %} {{ wtf.form_field(field, form_type, horizontal_columns, button_map) }} {% endif %} {% endmacro %} {% extends "bootstrap/base.html" %} {% block title %} YunoHost app generator {% endblock %} {% block styles %} {{super()}} {% endblock %} {% block content %}

Formulaire de génération d'une application Yunohost

{{ main_form.hidden_tag() }}
{{ wtf.form_errors(main_form, hiddens="only") }}
{{ form_field(main_form.generator_mode) }}

1/8 - Informations générales

{{ form_field(main_form.app_name) }} {{ form_field(main_form.app_id) }} {{ form_field(main_form.description_en) }} {{ form_field(main_form.description_fr) }}

2/8 - Informations sur l'upstream

Le terme upstream désigne le projet original qui maintient l'app

{{ form_field(main_form.license) }} {{ form_field(main_form.website) }} {{ form_field(main_form.demo) }} {{ form_field(main_form.admindoc) }} {{ form_field(main_form.userdoc) }} {{ form_field(main_form.code) }}

3/8 - Intégration dans YunoHost

{{ form_field(main_form.version) }} {{ form_field(main_form.maintainers) }} {{ form_field(main_form.multi_instance) }} {{ form_field(main_form.architectures) }} {{ form_field(main_form.ldap) }} {{ form_field(main_form.sso) }}

4/8 - Questions à poser pendant l'installation

Cette partie sert à indiquer les questions qui devront être posées.
NB: seules des questions standard sont proposées ici, il faudra éventuellement compléter à la main en suivant le modèle des autres questions.

{{ form_field(main_form.domain_and_path) }} {{ form_field(main_form.init_main_permission) }} {{ form_field(main_form.init_admin_permission) }} {{ form_field(main_form.language) }}

5/8 - Ressources à initialiser

Il s'agit d'éléments techniques configurés avant que le "vrai" script d'install de l'app ne soit lancé. Typiquement : créer un user système, télécharger les sources de l'app, initialiser le dossier d'install et de données, installer des dépendances avec apt, créer une base de donnée SQL, ...

Sources du logiciel

{{ form_field(main_form.source_url) }} {{ form_field(main_form.sha256sum) }} {{ form_field(main_form.auto_update) }}
{{ form_field(main_form.system_user) }} {{ form_field(main_form.install_dir) }} {{ form_field(main_form.data_dir) }} {{ form_field(main_form.apt_dependencies) }} {{ form_field(main_form.database) }}

6/8 - Technologie spécifique

{{ form_field(main_form.main_technology) }}
{{ form_field(main_form.use_composer) }}
{{ form_field(main_form.nodejs_version) }} {{ form_field(main_form.use_yarn) }}
{{ form_field(main_form.install_snippet) }}
{{ form_field(main_form.systemd_execstart) }}

7/8 - Configuration de l'app

{{ form_field(main_form.use_custom_config_file) }}
{{ form_field(main_form.custom_config_file) }} {{ form_field(main_form.custom_config_file_content) }}

8/8 - Options avancées

{{ form_field(main_form.enable_change_url) }} {{ form_field(main_form.use_logrotate) }} {{ form_field(main_form.use_fail2ban) }} {{ form_field(main_form.fail2ban_regex) }} {{ form_field(main_form.use_cron) }} {{ form_field(main_form.cron_config_file) }}
{{ main_form.submit_preview(class="btn btn-primary") }} {{ main_form.submit_download(class="btn btn-primary") }}

{% if generated_files %}

Code généré

{% for file in generated_files %}

{{ file.destination_path }}

{{ file.content }}
{% endfor %} {% endif %}
{% endblock %}