delonnewman/dragnet

View on GitHub
app/views/surveys/share.html.erb

Summary

Maintainability
Test Coverage
<%= render 'tabs', survey: survey, selected: :share %>

<div class="container">
  <% if survey.not_ready_for_replies? %>
    <%= render 'shared/survey_no_questions', survey: survey %>
  <% else %>
    <ul class="nav nav-pills mb-3">
      <li class="nav-item">
        <%= nav_link share_survey_path(survey, method: 'email'), active: survey.share_email? do %>
          <%= icon 'far', 'envelope' %>
          <% if survey.share_email? %>Email<% end %>
        <% end %>
      </li>
      <li class="nav-item">
        <%= nav_link share_survey_path(survey, method: 'qrcode'), active: survey.share_qrcode? do %>
          <%= icon 'fas', 'qrcode' %>
          <% if survey.share_qrcode? %>QRCode<% end %>
        <% end %>
      </li>
      <li class="nav-item">
        <%= nav_link share_survey_path(survey, method: 'link'), active: survey.share_link? do %>
          <%= icon 'fas', 'link' %>
          <% if survey.share_link? %>Link<% end %>
        <% end %>
      </li>
      <li class="nav-item">
        <%= nav_link share_survey_path(survey, method: 'code'), active: survey.share_code? do %>
          <%= icon 'fas', 'code' %>
          <% if survey.share_code? %>Code<% end %>
        <% end %>
      </li>
    </ul>

    <% if survey.share_link? %>
      <div class="input-group input-group mb-3">
        <input
          type="text"
          class="form-control"
          aria-label="Survey's public url"
          id="copy-survey-url-<%= survey.id %>"
          aria-describedby="btn-copy-survey-url-<%= survey.id %>"
          value="<%= reply_to_url(survey.short_id, survey.slug) %>">
        <button
          class="btn btn btn-dark"
          type="button"
          id="btn-copy-survey-url-<%= survey.id %>"
          onclick="dragnet.copyToClipboardFromElement(document.querySelector('#copy-survey-url-<%= survey.id %>'))">
          Copy
        </button>
      </div>
    <% end %>

    <% if survey.share_qrcode? %>
      <div>
        <div class="mb-3">
          <%== survey_qrcode(survey, format: :svg, module_size: 15) %>
        </div>
        <%= link_to survey_qrcode_path(survey, format: :png), class: 'btn btn-dark' do %>
          <%= icon 'fas', 'download' %> Download
        <% end %>
      </div>
    <% end %>

    <% if survey.share_email? %>
      <form action="mailto:" method="get" enctype="text/plain">
        <div class="mb-3">
          <label for="share-email-to" class="form-label">To</label>
          <input type="email" name="to" class="form-control" id="share-email-to" placeholder="Enter an email address like 'name@example.com'">
        </div>
        <div class="mb-3">
          <label for="share-email-from" class="form-label">From</label>
          <input type="email" name="to" class="form-control" id="share-email-from" placeholder="Enter an email address like 'name@example.com'" value=<%= current_user.email %>>
        </div>
        <div class="mb-3">
          <label for="share-email-subject" class="form-label">Subject</label>
          <input type="text" name="subject" class="form-control" id="share-email-subject" value="<%= survey.name %>">
        </div>
        <div class="mb-3">
          <label for="share-email-message" class="form-label">Message</label>
          <textarea name="body" class="form-control" id="share-email-message" rows="3">Please fill out this survey for me! <%= reply_to_url(survey.short_id, survey.slug) %></textarea>
        </div>

        <button type="submit" class="btn btn-dark">Send</button>
      </form>
    <% end %>

    <% if survey.share_code? %>
      <div class="input-group input-group mb-3">
        <textarea class="form-control source-code" row="5" id="copy-survey-code-<%= survey.id %>"><%= survey_form_code(survey.id) %></textarea>
        <button
          type="button"
          class="btn btn-dark"
          onclick="dragnet.copyToClipboardFromElement(document.querySelector('#copy-survey-code-<%= survey.id %>'))">
          Copy
        </button>
      </div>
<% end %>
  <% end %>
</div>