{% from "moj/components/button-menu/macro.njk" import mojButtonMenu %}
{%- from "govuk/components/button/macro.njk" import govukButton %}

{% macro dprReportActions(buttonList) %}

  {% set items = [] %}
  {% for button in buttonList %}
    {% if button.id === 'dpr-button-downloadable' %}
      {% set item = {
        text: button.tooltipText,
        attributes: {
          id: button.id,
          disabled: button.disabled,
          form: "download-report-form"
        } if button.disabled else {
          id: button.id,
          form: "download-report-form"
        },
        classes: '{{ button.id }} govuk-button--secondary'
      } %}

    {% if not button.disabled %}
      <form id="download-report-form" action="/dpr/downloadReport/" method="post">
        <input type="hidden" name="dataProductDefinitionsPath" value="{{ button.attributes.definitionPath }}">
        <input type="hidden" name="_csrf" value="{{ button.attributes.csrfToken }}">
        <input type="hidden" name="reportId" value="{{ button.attributes.reportId }}">
        <input type="hidden" name="id" value="{{ button.attributes.id }}">
        <input type="hidden" name="type" value="{{ button.attributes.type }}">
        <input type="hidden" name="tableId" value="{{ button.attributes.tableId }}">
        <input type="hidden" name="reportName" value="{{ button.attributes.reportName }}">
        <input type="hidden" name="name" value="{{ button.attributes.name }}">
        <input type="hidden" name="cols" value="{{ button.attributes.columns | json }}">
        <input type="hidden" name="loadType" value="{{ button.attributes.loadType }}">
        <input type="hidden" name="currentUrl" value="{{ button.attributes.currentUrl }}">
        <input type="hidden" name="currentQueryParams" value="{{ button.attributes.currentQueryParams }}">
      </form>
    {% endif %}

    {% else %}
      {% set item = {
        text: button.tooltipText,
        attributes: {
          id: button.id,
          "data-href": button.href,
          "aria-label": button.ariaLabelText,
          disabled: button.disabled
        } if button.disabled else {
          id: button.id,
          "data-href": button.href,
          "aria-label": button.ariaLabelText
        },
        classes: '{{ button.id }}'
      } %}
    {% endif %}

    {% set items = (items.push(item), items) %}
  {% endfor %}

{#
  Replaced with copy of MoJ button menu njk without the data-module attribute;
  to stop it from being turned into an action menu.
#}
{#  {{ mojButtonMenu({#}
{#    items: items#}
{#  }) }}#}

  <div class="report-actions" data-dpr-module='report-actions'>
    <div class="moj-button-menu">
      {%- for item in items %}
        {%- set itemClassNames = "moj-button-menu__item govuk-button--secondary" %}
        {%- if item.classes %}
          {% set itemClassNames = itemClassNames + " " + item.classes %}
        {% endif %}

        {{ govukButton({
          element: item.element,
          classes: itemClassNames,
          text: item.text,
          html: item.html,
          name: item.name,
          type: item.type,
          value: item.value,
          href: item.href,
          disabled: item.disabled,
          attributes: item.attributes,
          preventDoubleClick: items.preventDoubleClick
        }) }}
      {% endfor -%}
    </div>

    <div class="dpr-display-none">
      {{ downloadFormHtml }}
    </div>
  </div>
{% endmacro %}
