Export issues to CSV

Merged James Edwards-Jones requested to merge 1480-export-issues-csv into master

EE follow up from https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6683

What does this MR do?

Adds a Download CSV button to a project's issue index.

The CSV will be emailed from a background job after confirmation via modal dialog.

Why was this MR needed?

Users wanted a way to easily share lists of issues outside of gitlab.

Examples included handing out paper copies in meetings and emailing a selection of issues.

Screenshots (if relevant)

CSV Email

Download CSV Button

CSV as Spreadsheet

Export CSV Modal

UX mockups (from #5747 (closed))

Export CSV Button Mobile view

Tasks

  • Consider including related data. E.g. Author name instead of id.
  • Obey currently applied filters
  • Ensure any relational data is joined beforehand
  • Basic profiling.
  • Check performance with staging data for more production-like timings
  • Frontend modal dialog includes number of issues
  • Button and dialog match mockups on mobile
  • Test excel, openoffice, apple numbers and google sheets for compatibility
  • Date format should be compatible with excel
  • Background job sends CSV as email
  • Email copy and styling

Followup MRs

I'll create issues/MRs for the following improvements:

Does this MR meet the acceptance criteria?

What are the relevant issue numbers?