<% preview = (defined?(preview) ? preview : false) %>
<% import = (defined?(import) ? import : false) %>
<div class ="step <%= "completed" if step.completed? %>" data-id="<%= step.id %>">
  <div class="panel panel-default">
    <div class="panel-heading step-heading">
      <div class="left-floats">
        <% if !import && !preview && @protocol.my_module %>
          <button data-action="uncomplete-step"
                  data-link-url="<%= toggle_step_state_step_path(step)%>"
                  class="btn icon-btn btn-light toggle-step-complete
                  <%= 'hidden' unless step.completed? %>"
                  <%= 'disabled' if !can_complete_or_checkbox_step?(@protocol) || preview %>>
            <span class="fas fa-check-circle"></span>
          </button>
          <button data-action="complete-step"
                  data-link-url="<%= toggle_step_state_step_path(step)%>"
                  class="btn icon-btn btn-light toggle-step-complete
                  <%= 'hidden' if step.completed? %>"
                  <%= 'disabled' if !can_complete_or_checkbox_step?(@protocol) || preview %>>
            <span class="far fa-check-circle"></span>
          </button>
        <% end %>
        <a class="step-panel-collapse-link"
           href="#step-panel-<%= step.id || step.position %>"
           data-toggle="collapse"
           data-remote="true">
          <span class="fas fa-caret-right"></span>
        </a>

        <span class="step-number"><%= step.position + 1 %>.</span>

        <a class="step-panel-collapse-link step-name-link"
           href="#step-panel-<%= step.id || step.position %>"
           data-toggle="collapse"
           data-remote="true">
          <span class="name-block"><strong><%= step.name %></strong></span>
          <% unless step.new_record? %>
            <span class="delimiter">|</span>
            <span class="author-block"><%= sanitize_input t('protocols.steps.published_on',
                                       timestamp: l(step.created_at, format: :full),
                                       user: h(step.user.full_name)) %></span>
          <% end %>
        </a>
      </div>

      <div class="panel-options pull-right">
        <% if !preview && @protocol.my_module %>
          <button data-action="uncomplete-step"
                  data-link-url="<%= toggle_step_state_step_path(step)%>"
                  class="btn btn-secondary button-step-complete
                  <%= 'hidden' if !step.completed? || !can_complete_or_checkbox_step?(@protocol) || preview %>">
            <span class="fas fa-undo"></span>
            <%= t("protocols.steps.options.uncomplete_title") %>
          </button>
          <button data-action="complete-step"
                  data-link-url="<%= toggle_step_state_step_path(step)%>"
                  class="btn btn-secondary button-step-complete
                  <%= 'hidden' if step.completed? || !can_complete_or_checkbox_step?(@protocol) || preview %>">
            <span class="far fa-check-circle"></span>
            <%= t("protocols.steps.options.complete_title") %>
          </button>
        <% end %>
        <% if (can_manage_protocol_in_module?(@protocol) || can_manage_protocol_in_repository?(@protocol)) && !(preview) %>
          <%= link_to(move_up_step_path(step),
                      class: 'btn btn-light icon-btn',
                      title: t('protocols.steps.options.up_arrow_title'),
                      remote: true,
                      method: :put,
                      data: { action: 'move-step', direction: :up }) do %>
            <span class="fas fa-arrow-up"></span>
          <% end %>
          <%= link_to(move_down_step_path(step),
                      class: 'btn btn-light icon-btn',
                      title: t('protocols.steps.options.down_arrow_title'),
                      remote: true,
                      method: :put,
                      data: { action: 'move-step', direction: :down }) do %>
            <span class="fas fa-arrow-down"></span>
          <% end %>
          <%= link_to(edit_step_path(step),
                      title: t('protocols.steps.options.edit_title'),
                      class: 'btn btn-light icon-btn',
                      remote: true,
                      data: { action: 'edit-step' }) do %>
            <span class="fas fa-pencil-alt"></span>
          <% end %>
          <%= link_to(step_path(step),
                      title: t('protocols.steps.options.delete_title'),
                      method: :delete,
                      class: 'btn btn-light icon-btn',
                      data: { action: 'delete-step', confirm: t('protocols.steps.destroy.confirm', step: step.name) }) do %>
            <span class="fas fa-trash-alt"></span>
          <% end %>
        <% end %>
      </div>
    </div>
    <div class="panel-collapse collapse" id="step-panel-<%= step.id || step.position %>" role="tabpanel">
      <div class="panel-body">
        <div class="row">
          <div class="col-xs-12">
            <% if step.description.blank? %>
              <em><%= t('protocols.steps.no_description') %></em>
            <% else %>
              <div class="ql-editor">
                <%= custom_auto_link(step.tinymce_render(:description),
                                     simple_format: false,
                                     tags: %w(img),
                                     team: current_team) %>
              </div>
            <% end %>
          </div>
        </div>
        <div class="row">
          <% if step.tables.any? %>
            <div class="col-xs-12">
              <hr>
              <% step.tables.each do |table| %>
                <strong>
                  <%= auto_link(simple_format(table.name),
                                      link: :urls,
                                      html: { target: '_blank' }) %>
                </strong>
                <div data-role="hot-table" class="hot-table">
                  <%= hidden_field(table, :contents, value: table.contents_utf_8, class: "hot-contents") %>
                  <div data-role="step-hot-table" class="step-result-hot-table"></div>
                </div>
              <% end %>
            </div>
          <% end %>

          <% if import %>
            <%= render partial: 'steps/attachments/preview_list.html.erb',
                       locals: {  attachments: steps_assets[step.position]} %>
          <% else %>
            <%= render partial: 'steps/attachments/list.html.erb', locals: {  step: step, preview: preview } %>
          <% end %>

          <% unless step.checklists.blank? then %>
            <div class="col-xs-12">
              <hr>
              <% step.checklists.asc.each do |checklist| %>
                <strong><%= custom_auto_link(checklist.name, team: current_team) %></strong>
                <% if checklist.checklist_items.empty? %>
                  </br>
                  <%= t("protocols.steps.empty_checklist") %>
                  </br>
                <% else %>
                  <% ordered_checklist_items(checklist).each do |checklist_item| %>
                    <div class="checkbox" <%= @protocol.in_module? ? "data-action=check-item" : "" %>>
                      <label>
                        <% if @protocol.in_module? %>
                          <input type="checkbox"
                                 value=""
                                 data-link-url="<%=checklistitem_state_step_path(step) %>"
                                 data-id="<%= checklist_item.id %>" <%= "checked" if checklist_item.checked? %> />
                        <% else %>
                          <input type="checkbox"
                                 value=""
                                 disabled="disabled" />
                        <% end %>
                        <%= custom_auto_link(checklist_item.text, team: current_team) %>
                      </label>
                    </div>
                  <% end %>
                <% end %>
              <% end %>
            </div>
          <% end %>
        </div>
        <% unless import %>
          <hr>
          <%= render partial: 'steps/comments.html.erb', locals: {  comments: step.last_comments,
                                                                    comments_count: step.step_comments.count,
                                                                    step: step } %>
        <% end %>
      </div>
    </div>
  </div>
</div>
