aboutsummaryrefslogtreecommitdiff
{#
SPDX-License-Identifier: GPL-3.0-or-later OR CC-BY-SA-4.0

Proxy web UI home page.

This file is part of Hydrilla&Haketilo.

Copyright (C) 2022 Wojtek Kosior

Dual licensed under
* GNU General Public License v3.0 or later and
* Creative Commons Attribution Share Alike 4.0 International.

You can choose to use either of these licenses or both.


I, Wojtek Kosior, thereby promise not to sue for violation of this
file's licenses. Although I request that you do not make use of this
code in a proprietary work, I am not going to enforce this in court.
#}
{% extends "hkt_mitm_it_base.html.jinja" %}

{% block title %} {{ _('web_ui.home.title') }} {% endblock %}

{% block style %}
  {{ super() }}

  {% include 'include/checkbox_tricks_style.css.jinja' %}
{% endblock %}

{% import 'import/checkbox_tricks.html.jinja' as tricks %}

{% block main %}
  {% if file_installation_error is defined %}
    {{ error_note(_('web_ui.err.file_installation_error')) }}
  {% endif %}

  {% if impossible_situation_error is defined %}
    {{ error_note(_('web_ui.err.impossible_situation_error')) }}
  {% endif %}

  <h3>
    {{ _('web_ui.home.heading.welcome_to_haketilo') }}
  </h3>

  <p>
    {{ _('web_ui.home.this_is_haketilo_page') }}
  </p>

  <div class="horizontal-separator"></div>

  <h4>
    {{ _('web_ui.home.heading.about_haketilo') }}
  </h4>

  <p class="has-colored-links">
    {{ _('web_ui.home.html.haketilo_is_blah_blah')|safe }}
  </p>

  <p class="has-colored-links">
    {% set fmt = _('web_ui.home.html.see_haketilo_doc_{url}') %}
    {% set doc_url = url_for('home.home_doc', page='doc_index') %}
    {{ fmt.format(url=doc_url|e)|safe }}
  </p>

  <div class="horizontal-separator"></div>

  {% if request.url.startswith('http://') %}
    <h4>
      {{ _('web_ui.home.heading.configuring_browser_for_haketilo') }}
    </h4>

    <p class="has-colored-links">
      {{ _('web_ui.home.html.to_add_certs_do_xyz')|safe }}
    </p>

    <div class="horizontal-separator"></div>
  {% endif %}

  <h4>
    {{ _('web_ui.home.heading.options') }}
  </h4>

  {{ label(_('web_ui.home.choose_language_label')) }}

  {% call unordered_list() %}
    {%
      for lang_name, lang_code in [
          ('english', 'en_US'),
          ('polski', 'pl_PL')
      ]
    %}
      {% call list_entry() %}
        <form method="POST" class="inline">
          <input type="hidden" name="action" value="set_lang">
          <input type="hidden" name="locale" value="{{ lang_code }}">
          <button>{{ lang_name }}</button>
        </form>
      {% endcall %}
    {% endfor %}
  {% endcall %}

  {% call label(_('web_ui.home.mapping_usage_mode_label')) %}
    {{ hkt_doc_link('packages') }}
  {% endcall %}

  {% set use_enabled_but_classes  = ['green-button'] %}
  {% set use_auto_but_classes     = ['green-button'] %}
  {% set use_question_but_classes = ['green-button'] %}

  <p>
    {% if settings.mapping_use_mode == MappingUseMode.WHEN_ENABLED %}
      {% do use_enabled_but_classes.append('disabled-button') %}
      {{ _('web_ui.home.packages_are_used_when_enabled') }}
    {% elif settings.mapping_use_mode == MappingUseMode.QUESTION %}
      {% do use_question_but_classes.append('disabled-button') %}
      {{ _('web_ui.home.user_gets_asked_whether_to_enable_package') }}
    {% else %}
      {# settings.mapping_use_mode == MappingUseMode.AUTO #}
      {% do use_auto_but_classes.append('disabled-button') %}
      {{ _('web_ui.home.packages_are_used_automatically') }}
    {% endif %}
  </p>

  {{
    button_row([
        (use_enabled_but_classes,
         _('web_ui.home.use_enabled_button'),
         {'action': 'use_enabled'}),
        (use_question_but_classes,
         _('web_ui.home.use_question_button'),
         {'action': 'use_question'}),
        (use_auto_but_classes,
         _('web_ui.home.use_auto_button'),
         {'action': 'use_auto'})
    ])
  }}

  <div class="horizontal-separator"></div>

  {% call label(_('web_ui.home.script_blocking_mode_label')) %}
    {{ hkt_doc_link('script_blocking') }}
  {% endcall %}

  {% set allow_but_classes = ['red-button'] %}
  {% set block_but_classes = ['blue-button'] %}

  <p>
    {% if settings.default_allow_scripts %}
      {% do allow_but_classes.append('disabled-button') %}
      {{ _('web_ui.home.scripts_are_allowed_by_default') }}
    {% else %}
      {% do block_but_classes.append('disabled-button') %}
      {{ _('web_ui.home.scripts_are_blocked_by_default') }}
    {% endif %}
  </p>

  {% set allow_but_text = _('web_ui.home.allow_scripts_button') %}
  {% set block_but_text = _('web_ui.home.block_scripts_button') %}

  {{
    button_row([
        (allow_but_classes, allow_but_text, {'action': 'allow_scripts'}),
        (block_but_classes, block_but_text, {'action': 'block_scripts'})
    ])
  }}

  <div class="horizontal-separator"></div>

  {% call label(_('web_ui.home.advanced_features_label')) %}
    {{ hkt_doc_link('advanced_ui_features') }}
  {% endcall %}

  {% set advanced_user_but_classes = ['red-button'] %}
  {% set simple_user_but_classes   = ['blue-button'] %}

  <p>
    {% if settings.advanced_user %}
      {% do advanced_user_but_classes.append('disabled-button') %}
      {{ _('web_ui.home.user_is_advanced_user') }}
    {% else %}
      {% do simple_user_but_classes.append('disabled-button') %}
      {{ _('web_ui.home.user_is_simple_user') }}
    {% endif %}
  </p>

  {{
    button_row([
        (advanced_user_but_classes,
         _('web_ui.home.user_make_advanced_button'),
         {'action': 'user_make_advanced'}),
        (simple_user_but_classes,
         _('web_ui.home.user_make_simple_button'),
         {'action': 'user_make_simple'})
    ])
  }}

  {% if settings.update_waiting %}
    <div class="horizontal-separator"></div>

    {{ label(_('web_ui.home.update_waiting_label')) }}

    <p>
      {{ _('web_ui.home.update_is_awaiting') }}
    </p>

    {% set update_but_text =  _('web_ui.home.update_items_button') %}

    {{
      button_row([
          (['green-button'], update_but_text, {'action': 'upate_all_items'})
      ])
    }}
  {% endif %}

  {% if orphan_item_stats.mappings > 0 or orphan_item_stats.resources > 0 %}
    <div class="horizontal-separator"></div>

    {{ label(_('web_ui.home.orphans_label')) }}

    <p>
      {% if settings.advanced_user %}
        {% if orphan_item_stats.mappings > 0 %}
          {{
            _('web_ui.home.orphans_to_delete_{mappings}')
                .format(mappings = orphan_item_stats.mappings)
          }}
        {% else %}
          {{ _('web_ui.home.orphans_to_delete_exist') }}
        {% endif %}
      {% else %}
        {{
          _('web_ui.home.orphans_to_delete_{mappings}_{resources}')
              .format(
                  mappings  = orphan_item_stats.mappings,
                  resources = orphan_item_stats.resources
              )
        }}
      {% endif %}
    </p>

    {% set prune_but_text =  _('web_ui.home.prune_orphans_button') %}

    {{
      button_row([
          (['green-button'], prune_but_text, {'action': 'prune_orphans'})
      ])
    }}
  {% endif %}

  <div class="horizontal-separator"></div>

  {% call label(_('web_ui.home.popup_settings_label')) %}
    {{ hkt_doc_link('popup') }}
  {% endcall %}

  {%
    macro render_popup_settings(
        page_type,
        initial_show                  = false,
        popup_change_but_base_classes = ['red-button', 'blue-button']
    )
  %}
    {% set radio_id = 'popup_settings_radio_' ~ page_type %}
    {{ tricks.sibling_hider_radio('popup_settings', radio_id, initial_show) }}

    <div>
      <p>
        {{ _('web_ui.home.configure_popup_settings_on_pages_with') }}
      </p>

      <div class="flex-row">
        {%
          for but_page_type, but_text in [
              ('jsallowed', _('web_ui.home.popup_settings_jsallowed_button')),
              ('jsblocked', _('web_ui.home.popup_settings_jsblocked_button')),
              ('payloadon', _('web_ui.home.popup_settings_payloadon_button'))
          ]
        %}
          {% set attrs, classes = {}, ['green-button'] %}

          {% if but_page_type == page_type %}
            {% do classes.append('disabled-button') %}
          {% else %}
            {% set but_radio_id = 'popup_settings_radio_' ~ but_page_type %}
            {% do attrs.update({'for': but_radio_id}) %}
          {% endif %}

          {% if not loop.first %}
            {% do classes.append('button-bordering-left') %}
          {% endif %}
          {% if not loop.last %}
            {% do classes.append('button-bordering-right') %}
          {% endif %}

          {% do attrs.update({'class': classes|join(' ')}) %}

          <label {{ attrs|xmlattr }}>
            {{ but_text }}
          </label>

          {% if not loop.last %}
            <div class="button-row-separator"></div>
          {% endif %}
        {% endfor %}
      </div>

      {% set popup_no_but_classes =  [popup_change_but_base_classes[0]] %}
      {% set popup_yes_but_classes = [popup_change_but_base_classes[1]] %}

      {% set settings_prop = 'default_popup_' ~ page_type %}
      {% set is_on = (settings|attr(settings_prop)).keyboard_trigger %}

      {% if is_on %}
        {% do popup_yes_but_classes.append('disabled-button') %}
      {% else %}
        {% do popup_no_but_classes.append('disabled-button') %}
      {% endif %}

      <p>
        {{ caller(is_on) }}
      </p>

      {{
        button_row([
            (popup_no_but_classes,
             _('web_ui.home.popup_no_button'),
             {'action': 'popup_no_when_' ~ page_type}),
            (popup_yes_but_classes,
             _('web_ui.home.popup_yes_button'),
             {'action': 'popup_yes_when_' ~ page_type})
        ])
      }}
    </div>
  {% endmacro %}

  {% set but_classes = ['green-button', 'green-button'] %}
  {% call(popup_is_on) render_popup_settings('jsallowed', true, but_classes) %}
    {% if popup_is_on %}
      {{ _('web_ui.home.jsallowed_popup_yes') }}
    {% else %}
      {{ _('web_ui.home.jsallowed_popup_no') }}
    {% endif %}
  {% endcall %}

  {% call(popup_is_on) render_popup_settings('jsblocked') %}
    {% if popup_is_on %}
      {{ _('web_ui.home.jsblocked_popup_yes') }}
    {% else %}
      {{ _('web_ui.home.jsblocked_popup_no') }}
    {% endif %}
  {% endcall %}

  {% call(popup_is_on) render_popup_settings('payloadon') %}
    {% if popup_is_on %}
      {{ _('web_ui.home.payloadon_popup_yes') }}
    {% else %}
      {{ _('web_ui.home.payloadon_popup_no') }}
    {% endif %}
  {% endcall %}

  <p>
    {{ _('web_ui.home.popup_can_be_opened_by') }}
  </p>
{% endblock main %}