{% extends "withnav_template.html" %}
{% from "components/banner.html" import banner_wrapper %}
{% from "components/table.html" import mapping_table, row, settings_row, text_field, optional_text_field, edit_field, field, boolean_field with context %}

{% block service_page_title %}
  Settings
{% endblock %}

{% block maincolumn_content %}

    <h1 class="font-body-lg">Settings</h1>

    <div class="bottom-gutter-3-2 settings-table body-copy-table">

      {% call mapping_table(
        caption='General',
        field_headings_visible=False,
        caption_visible=False
      ) %}

        {% call row() %}
          {{ text_field('Service name') }}
          {{ text_field(current_service.name) }}
          {{ edit_field(
              'Change',
              url_for('.service_name_change', service_id=current_service.id),
              permissions=['manage_service'],
              suffix='service name',
            )
          }}
        {% endcall %}

        {% call row() %}
          {{ text_field('Sign-in method') }}
          {{ text_field(
            'Email link or text message code'
            if 'email_auth' in current_service.permissions
            else 'Text message code'
          ) }}
          {{ edit_field(
              'Change',
              url_for('.service_set_auth_type', service_id=current_service.id),
              permissions=['manage_service'],
              suffix='sign-in method',
            )
          }}
        {% endcall %}

        {% call row() %}
          {{ text_field('Send text messages') }}
          {{ boolean_field('sms' in current_service.permissions) }}
          {{ edit_field(
            'Change',
            url_for(
            '.service_set_channel',
            service_id=current_service.id,
            channel='sms'
            ),
            permissions=['manage_service'],
            suffix='your settings for sending text messages',
          )}}
        {% endcall %}

       {% if current_user.platform_admin %}
        {% call settings_row(if_has_permission='sms') %}
          {{ text_field('Text message senders\n(Only visible to Platform Admins)') }}
          {% call field(status='default' if current_service.default_sms_sender == "None" else '') %}
          {{ current_service.default_sms_sender | nl2br if current_service.default_sms_sender else 'None'}}
            {% if current_service.count_sms_senders > 1 %}
            <div class="hint">
              {{ '…and %d more' | format(current_service.count_sms_senders - 1) }}
            </div>
            {% endif %}
        {% endcall %}
          {{ edit_field(
            'Manage',
            url_for('.service_sms_senders', service_id=current_service.id),
            permissions=['manage_service','manage_api_keys'],
            suffix='text message senders',
          )
        }}
        {% endcall %}
       {% endif %}

        {% call settings_row(if_has_permission='sms') %}
          {{ text_field('Start text messages with service name') }}
          {{ boolean_field(current_service.prefix_sms) }}
          {{ edit_field(
            'Change',
            url_for('.service_set_sms_prefix', service_id=current_service.id),
            permissions=['manage_service'],
            suffix='your settings for starting text messages with service name',
          )
          }}
        {% endcall %}

        {% if current_user.platform_admin %}
          {% call settings_row(if_has_permission='sms') %}
            {{ text_field('Send international text messages') }}
            {{ boolean_field('international_sms' in current_service.permissions) }}
            {{ edit_field(
              'Change',
              url_for('.service_set_international_sms', service_id=current_service.id),
              permissions=['manage_service'],
              suffix='your settings for sending international text messages',
            )
            }}
          {% endcall %}
        {% endif %}

        <!-- {% call settings_row(if_has_permission='sms') %}
                  {{ text_field('Receive text messages') }}
                  {{ boolean_field('inbound_sms' in current_service.permissions) }}
                  {{ edit_field(
                      'Change',
                      url_for('.service_set_inbound_sms', service_id=current_service.id),
                      permissions=['manage_service'],
                      suffix='your settings for receiving text messages',
                  )
                  }}
                {% endcall %} -->
      {% endcall %}

      <!-- {% call mapping_table(
        caption='Email settings',
        field_headings=['Label', 'Value', 'Action'],
        field_headings_visible=False,
        caption_visible=True
      ) %}

        {% call row() %}
          {{ text_field('Send emails') }}
          {{ boolean_field('email' in current_service.permissions) }}
          {{ edit_field(
            'Change',
            url_for(
              '.service_set_channel',
              channel='email',
              service_id=current_service.id
            ),
            permissions=['manage_service'],
            suffix='your settings for sending emails',
          )}}
        {% endcall %}

        {% call settings_row(if_has_permission='email') %}
          {{ text_field('Reply-to email addresses') }}
          {% call field(status='default' if current_service.count_email_reply_to_addresses == 0 else '') %}
            {{ current_service.default_email_reply_to_address or 'Not set' }}
            {% if current_service.count_email_reply_to_addresses > 1 %}
              <div class="hint">
                {{ '…and %d more' | format(current_service.count_email_reply_to_addresses - 1) }}
              </div>
            {% endif %}
          {% endcall %}
          {{ edit_field(
              'Manage',
              url_for('.service_email_reply_to', service_id=current_service.id),
              permissions=['manage_service','manage_api_keys'],
              suffix='reply-to email addresses',
            )
          }}
        {% endcall %}

        {% call settings_row(if_has_permission='email') %}
          {{ text_field('Send files by email') }}
          {{ optional_text_field(current_service.contact_link, default="Not set up", truncate=true) }}
          {{ edit_field(
            'Manage',
            url_for('.send_files_by_email_contact_details', service_id=current_service.id),
            permissions=['manage_service'],
            suffix='sending files by email',
          )}}
        {% endcall %}

      {% endcall %} -->

    </div>

    {% if current_service.trial_mode %}
      <h2 class="font-body-lg top-gutter-0">Your service is in trial mode</h2>

        <p>You can only:</p>

        <ul class='list list-bullet'>
          <li>send {{ current_service.message_limit }} text messages per day</li>
          <li>send messages to yourself and other people in your team</li>
        </ul>

      <p>
        {% if current_user.has_permissions('manage_service') %}
          To remove these restrictions, you can send us a
          <a class="usa-link" href="mailto:notify-support@gsa.gov">request to go live</a>.
        {% else %}
          Your service manager can ask to have these restrictions removed.
        {% endif %}
      </p>

    {% else %}
      <h2 class="heading-medium top-gutter-0">Your service is live</h2>

      <p>
        You can send up to
        {{ "{:,}".format(current_service.message_limit) }} messages
        per year.
      </p>
      <p>
        Problems or comments?
        <a class="usa-link" href="{{ url_for('main.support') }}">Contact us</a>.
      </p>

    {% endif %}

    {% if current_user.platform_admin %}

      <div class="settings-table body-copy-table top-gutter-4-3">

        <h2 class="font-body-lg">Platform admin settings</h2>

        {% call mapping_table(
          caption='Settings',
          field_headings=['Label', 'Value', 'Action'],
          field_headings_visible=False,
          caption_visible=False
        ) %}

          {% call row() %}
            {{ text_field('Live')}}
            {% if current_service.trial_mode and not current_service.organization_id %}
              {{ text_field('No (organization must be set first)') }}
              {{ text_field('') }}
            {% else %}
              {{ boolean_field(not current_service.trial_mode) }}
              {{ edit_field('Change', url_for('.service_switch_live', service_id=current_service.id), suffix='service status') }}
            {% endif %}
          {% endcall %}

          {% call row() %}
            {{ text_field('Count in list of live services')}}
            {{ text_field(current_service.count_as_live|format_yes_no) }}
            {{ edit_field('Change', url_for('.service_switch_count_as_live', service_id=current_service.id), suffix='if service is counted in list of live services') }}
          {% endcall %}
          {% call row() %}
            {{ text_field('Billing details')}}
            {{ optional_text_field(current_service.billing_details, default="None", wrap=True) }}
            {{ edit_field('Change', url_for('.edit_service_billing_details', service_id=current_service.id), suffix='billing details for service') }}
          {% endcall %}

          {% call row() %}
            {{ text_field('Notes')}}
            {{ optional_text_field(current_service.notes, default="None", wrap=True) }}
            {{ edit_field('Change', url_for('.edit_service_notes', service_id=current_service.id), suffix='the notes for the service') }}
          {% endcall %}

          {% call row() %}
            {{ text_field('Organization')}}
            {% call field() %}
              {% if current_service.organization_id %}
                <a class="usa-link" href="{{ url_for('main.organization_dashboard', org_id=current_service.organization_id) }}">
                  {{ current_service.organization_name }}
                </a>
              {% else %}
                <span class="table-field-status-default">Not set</span>
              {% endif %}
              {% if current_service.organization_type %}
                <div class="hint">
                  {{ current_service.organization_type_label }}
                </div>
              {% endif %}
            {% endcall %}
            {{ edit_field('Change', url_for('.link_service_to_organization', service_id=current_service.id), suffix='organization for service') }}
          {% endcall %}

          {% call row() %}
            {{ text_field('Rate limit')}}
            {{ text_field('{:,} per minute'.format(current_service.rate_limit)) }}
            {{ edit_field('Change', url_for('.set_rate_limit', service_id=current_service.id), suffix='rate limit') }}
          {% endcall %}
          {% call row() %}
            {{ text_field('Message batch limit')}}
            {{ text_field('{:,} per send'.format(current_service.message_limit)) }}
            {{ edit_field('Change', url_for('.set_message_limit', service_id=current_service.id), suffix='message batch limit') }}
          {% endcall %}
          {% call row() %}
            {{ text_field('Free text message allowance')}}
            {{ text_field('{:,} per year'.format(current_service.free_sms_fragment_limit)) }}
            {{ edit_field('Change', url_for('.set_free_sms_allowance', service_id=current_service.id), suffix='free text message allowance') }}
          {% endcall %}
          {% call row() %}
            {{ text_field('Custom data retention')}}
            {% call field() %}
              {% for channel in current_service.data_retention %}
                {% if loop.first %}
                  <ul>
                {% endif %}
                  <li>{{ channel.notification_type|format_notification_type }} – {{ channel.days_of_retention }} days</li>
                {% if loop.last %}
                  </ul>
                {% endif %}
              {% else %}
                <div class="table-field-status-default">Not set</div>
              {% endfor %}
            {% endcall %}
            {{ edit_field('Change', url_for('.data_retention', service_id=current_service.id), suffix='data retention') }}
          {% endcall %}

          {% for permission in service_permissions %}
            {% if not service_permissions[permission].requires or current_service.has_permission(service_permissions[permission].requires) %}
              {% call row() %}
                {{ text_field(service_permissions[permission].title)}}
                {{ boolean_field(current_service.has_permission(permission)) }}
                {{ edit_field(
                    'Change',
                    url_for(
                      service_permissions[permission].endpoint or '.service_set_permission',
                      service_id=current_service.id,
                      permission=permission if not service_permissions[permission].endpoint else None
                    ),
                    suffix='your settings for ' + service_permissions[permission].title,
                  ) }}
              {% endcall %}
            {% endif %}
          {% endfor %}

        {% endcall %}

      </div>

    {% endif %}

    {% if current_service.active and (current_service.trial_mode or current_user.platform_admin) %}
      <p class="top-gutter-1-2">
        <span class="page-footer-link page-footer-delete-link-without-button">
          <a class="usa-button usa-button--secondary" href="{{ url_for('.archive_service', service_id=current_service.id) }}">
            Delete this service
          </a>
        </span>
        {% if current_user.platform_admin %}
          <span class="page-footer-link">
            <a href="{{ url_for('.suspend_service', service_id=current_service.id) }}" class="usa-link usa-link--destructive page-footer-link">
                Suspend service
              </a>
          </span>

          <span class="page-footer-link">
            <a href="{{ url_for('.history', service_id=current_service.id) }}" class="usa-link page-footer-link">
              Service history
            </a>
          </span>
        {% endif %}
      </p>
    {% endif %}
    {% if (not current_service.active) and current_user.platform_admin %}
      <p>
        <div class="hint ">
          Service suspended
        </div>

        <span class="page-footer-link page-footer-delete-link-without-button">
          <a class="usa-link usa-link--destructive" href="{{ url_for('.resume_service', service_id=current_service.id) }}">
            Resume service
          </a>
        </span>

        <span class="page-footer-link">
          <a href="{{ url_for('.history', service_id=current_service.id) }}" class="usa-link page-footer-link">
            Service history
          </a>
        </span>
      </p>
    {% endif %}


{% endblock %}
}
