aboutsummaryrefslogtreecommitdiffstats
path: root/perllib/FixMyStreet/App.pm
Commit message (Collapse)AuthorAgeLines
* Factor out photo storage backend init checksDave Arter2018-09-28-13/+4
|
* Factor out photo storage into PhotoStorage::FileSystem backendDave Arter2018-09-28-4/+12
|
* Use CSV escaping for categories in URLs.Matthew Somerville2018-06-21-1/+6
| | | | | Categories could contain commas, so splitting on comma is not good enough. Let’s escape the fields as if it’s a line in CSV. Fixes #2166.
* Make sure site_name/signature consistent in emailsMatthew Somerville2018-06-04-0/+2
|
* Always set memcached namespace.Matthew Somerville2018-04-16-2/+0
| | | | | | The namespace was only being set in the web loop, so cron scripts were accessing different memcached keys. In particular, the state list would be shared between instances on the same host.
* Add development email previewer.Matthew Somerville2018-03-01-11/+19
|
* Merge branch '2fa-superuser'Matthew Somerville2018-02-07-4/+13
|\
| * Add two-factor authentication for superusers.Matthew Somerville2018-02-07-4/+13
| |
* | Add admin ability to log user out.Matthew Somerville2018-02-06-1/+2
|/
* Remove SameSite=Lax from cookies.Matthew Somerville2018-01-23-1/+0
|
* Include "SameSite=Lax" with all set cookies.Matthew Somerville2018-01-04-0/+1
| | | | | This prevents FixMyStreet cookies from being sent from third-party <img>s and the like, in supporting browsers.
* Add an access token authentication credential.Matthew Somerville2017-11-29-0/+13
| | | | This allows access if you have a token associated with your user.
* Move map JS to code, to be used on all pages.Matthew Somerville2017-11-15-0/+2
|
* Make current cobrand available on DB::SchemaDave Arter2017-09-01-0/+1
|
* Merge branch 'move-report-states-to-database'Matthew Somerville2017-08-31-0/+1
|\
| * Hide things needing fixed state if no fixed state.Matthew Somerville2017-08-31-0/+1
| | | | | | | | | | Front page stats, update form question, list filtering, plus do not send any questionnaires.
* | Merge branch 'some-dev-improvements'Matthew Somerville2017-08-29-1/+0
|\ \ | |/ |/|
| * Add debug toolbar middleware.Matthew Somerville2017-08-29-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If debug is enabled, using the CATALYST_DEBUG/FIXMYSTREET_APP_DEBUG environment variables, add a debug toolbar to the output, including request/response details and a database query log. This uses Plack middleware, so works by switching our dev server to use Starman with plack directly, rather than via the script runner. We remove the GZip compression as this interferes, and take a local copy of the QueryLog::AdoptPlack trait as it needs a tweak to work. Make sure the CSP header is not output in debug mode, as that would prevent the toolbar JavaScript from running.
* | [Zurich] Move Zurich specific setup to its cobrand.Matthew Somerville2017-08-25-5/+1
|/
* Set up translatable body name.Matthew Somerville2017-08-09-0/+3
|
* Spot email sending success, use on contact page.Matthew Somerville2017-07-18-3/+6
|
* Allow static home page template override.Matthew Somerville2017-07-14-0/+4
| | | | | | If an /about/homepage.html template exists in your cobrand, it will be used as the front page, and the normal front page will be available at /report.
* Upgrade to using Email::Sender.Matthew Somerville2017-03-28-2/+9
| | | | | | | | | | Email::Send is long deprecated and uses submodules that no longer work correctly (e.g. Net::SMTP::TLS breaks with recent IO::Socket::SSL). We create an Email::Sender subclass to perform the same functionality and this also simplifies the email code with simpler envelope handling. Bundle Email::Sender::Transport::SMTP to include fix from https://github.com/rjbs/Email-Sender/issues/46
* Do upload_dir check on start up, not each report.Matthew Somerville2017-03-15-1/+8
| | | | | If we're chugging through a list of reports, this save on a lot of pointless statting of the upload directory which we know is there.
* Add cobrand call_hook fn, calls a fn if defined.Matthew Somerville2017-02-15-1/+1
|
* In Edge 14, do all HTTP redirects in HTML instead.Matthew Somerville2017-01-17-0/+3
| | | | | This is to work around https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8572187/
* Update pagination when status/categories changed.Matthew Somerville2016-10-18-2/+10
|
* Allow multiple selections in report list filter.Zarino Zappia2016-10-13-4/+6
| | | | | | This lets people filter by multiple categories or states. It uses our jQuery multi-select plugin to turn the <select multiple>s into little overlay lists of checkboxes. HTML5 history is also supported.
* Include stash in render_fragment calls.Matthew Somerville2016-09-20-2/+1
|
* [fixmystreet.com] Add Content-Security-Policy.Matthew Somerville2016-08-16-1/+2
|
* Remove some unused code/ database handle.Matthew Somerville2016-08-12-3/+0
|
* Log failure to send email.Matthew Somerville2016-08-08-1/+2
|
* Add HTML email templates.Matthew Somerville2016-08-01-16/+24
| | | | | | | | | | | | | | | | | | | | | | | | Design is all Zarino. This adds the ability to send HTML emails, including attached inline images. When included, this is done as a multipart/related email containing a multipart/alternative (of plain and HTML) and any attached images, so that the images are available even if HTML mail is not. The alert emails list data has been improved so it can be constructed in the templates rather than the code. Various templates have been tidied. Various workarounds for email clients have been made, including: * <th> is used so that the Android 4.x mail client can give them `block` styling in the small screen media query. * Font settings defined on every table cell (<th>) so that sans-serif fonts are used in Outlook, rather than Times New Roman. * A three-column wrapper table to create a 620px centred content area that also shrinks down on narrow screens. (Outlook doesn’t like max-width, so this is the simplest alternative.) * Enforcing a sensible (500px) min-width for the main content area, on clients that don’t support media queries (eg: native Gmail app). * Giant borders on buttons so Outlook displays them * Image alignment with align rather than float.
* [UK Councils] Send correct confirm emails for updatesDave Arter2016-06-15-4/+1
| | | | | | | | | | | | | | | | | | | | | | Some UK councils with Open311 integrations (e.g. Bromley) have a custom wording in the confirmation email sent when updates are left on reports, to make the user aware that the update is sent to the council in question. Bromley noticed that some emails were being sent without this wording, leading at least one user to contact the council directly about the report. It turns out that although the email template contains an IF clause to use the appropriate wording for Bromley (and Stevenage) reports, the incorrect template file was being used when updates were made via the Bromley cobrand. This commit solves the problem by introducing a new `Cobrand::Default::path_to_email_templates` method, which is overridden by `Cobrand::UKCouncils` to include the `templates/email/fixmystreet` path. Paths returned by this method are used as the `additional_template_paths` param when templating emails. A regression test is included. Additionally moves email templates for fixmystreet.com to a directory name reflecting their purpose, in the same way the web templates are arranged.
* Use only one templating system for emails.Matthew Somerville2016-05-25-2/+1
| | | | | | | Historically, emails sent offline (alerts, questionnaires, etc) used a different templating system from those sent by the website (e.g. login emails), though the newer system was also being used for the site name and signature of offline emails.
* Prevent dev sites auto-creating session.Matthew Somerville2016-04-06-4/+4
| | | | | We check for a session's existence before looking in it, as looking in it first would auto create a session.
* Refactor email handling to use Email::MIME alone.Matthew Somerville2016-03-30-24/+9
|
* Move get_photo_params to Utils::Photo.Matthew Somerville2015-12-02-36/+0
|
* Move EmailSend out of Catalyst for use elsewhere.Matthew Somerville2015-12-02-122/+3
|
* [Zurich] new status flagsHakim Cassimally2015-10-06-1/+2
| | | | | | | Have moved the generation of banner text from the template into problem_as_hashref See mysociety/FixMyStreet-Commercial#672
* Allow attachment of emails in email_sendHakim Cassimally2015-10-06-0/+46
| | | | Required by Zurich for mysociety/FixMyStreet-Commercial#675
* Fix handling From/To header in new Email::Simple.Matthew Somerville2015-10-06-16/+18
| | | | | | | Newer versions of Email::Simple (2.104+) treat arrayrefs in headers by fetching the first item only in scalar context. Our snapshot installs 2.102, so this shouldn't be an issue, but we might as well bypass Email::Simple for those headers.
* Remove remaining hardcoded site name from strings.Matthew Somerville2015-09-28-0/+2
| | | | Add a site_name template parameter available to all templates.
* Allow through reply-to header in send_email.Matthew Somerville2015-09-01-1/+1
| | | | This might be used now by e.g. the contact form.
* Add default sender to send_email_cron.Matthew Somerville2015-08-19-0/+7
| | | | | Matches send_email, remove unneeded setting of sender in one call, and add contact name to report sent email.
* Make sure get_param_list returns empty list if param is missingDave Arter2015-07-27-1/+2
| | | | | | If the specified parameter was missing from `$c->req->params`, a list of form `(undef)` would be returned. This commit makes it return an empty list if the parameter is missing.
* Factor out all uses of param()/params.Matthew Somerville2015-07-07-1/+48
| | | | | | | Use a central get_param and get_param_list functions dependent on whether we're after a scalar or a list (almost always a scalar). This prevents any possibility of confusion where param() could return a list, or params->{} an arrayref.
* Use config variable for setting proxy trust.Matthew Somerville2015-02-24-5/+5
| | | | | | Rather than hardcoding domain names, add a SECURE_PROXY_SSL_HEADER variable that provides a trusted HTTP header and value that can be used to determine if we're behind a HTTPS proxy.
* Move site_title function to site-name web templateMatthew Somerville2015-01-19-4/+4
| | | | | | | This matches the email template behaviour, and makes it much easier to override without requiring a cobrand package file. Fixes #979.
* Use same handling for cron and non-cron email.Matthew Somerville2015-01-13-11/+21
| | | | | This means that e.g. SMTP authentication is used when set up by all emails, not just non-cron ones. Fixes #988.