aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--templates/web/fixmystreet/report/_main.html18
-rw-r--r--templates/web/fixmystreet/report/display.html224
-rw-r--r--templates/web/fixmystreet/report/new/category.html10
-rw-r--r--templates/web/fixmystreet/report/new/category_extras.html26
-rw-r--r--templates/web/fixmystreet/report/new/councils_text.html9
-rw-r--r--templates/web/fixmystreet/report/new/councils_text_all.html19
-rw-r--r--templates/web/fixmystreet/report/new/councils_text_none.html22
-rw-r--r--templates/web/fixmystreet/report/new/councils_text_some.html28
-rw-r--r--templates/web/fixmystreet/report/new/fill_in_details.html35
-rw-r--r--templates/web/fixmystreet/report/new/fill_in_details_form.html220
-rw-r--r--templates/web/fixmystreet/report/new/fill_in_details_text.html13
-rw-r--r--templates/web/fixmystreet/report/new/form_heading.html0
-rw-r--r--templates/web/fixmystreet/report/new/notes.html11
-rw-r--r--templates/web/fixmystreet/report/new/report_import.html92
-rw-r--r--templates/web/fixmystreet/report/photo.html6
-rw-r--r--templates/web/fixmystreet/report/updates.html36
16 files changed, 769 insertions, 0 deletions
diff --git a/templates/web/fixmystreet/report/_main.html b/templates/web/fixmystreet/report/_main.html
new file mode 100644
index 000000000..8cc1efec2
--- /dev/null
+++ b/templates/web/fixmystreet/report/_main.html
@@ -0,0 +1,18 @@
+<h1>[% problem.title | html %]</h1>
+
+<p><em>[% problem.meta_line(c) | html %]
+[% IF problem.council %]
+ [% IF problem.whensent %]
+ <small class="council_sent_info"><br>[% problem.duration_string(c) %]</small>
+ [% END %]
+[% ELSE %]
+<br><small>[% loc('Not reported to council') %]</small>
+[% END %]
+
+</em></p>
+
+[% add_links( problem.detail ) | html_para %]
+
+[% INCLUDE 'report/photo.html' object=problem center=1 %]
+
+
diff --git a/templates/web/fixmystreet/report/display.html b/templates/web/fixmystreet/report/display.html
new file mode 100644
index 000000000..9670a6810
--- /dev/null
+++ b/templates/web/fixmystreet/report/display.html
@@ -0,0 +1,224 @@
+[%
+ PROCESS "maps/${map.type}.html";
+
+ problem_title = problem.title _ ' - ' _ loc('Viewing a problem') | html;
+ INCLUDE 'header.html'
+ title = problem_title
+ rss = [ loc('Updates to this problem, FixMyStreet'), "/rss/$problem.id" ]
+ robots = 'index, nofollow'
+%]
+
+[% map_html %]
+
+</div>
+<div id="side">
+
+[% IF banner.id %]
+<p class="banner" id="[% banner.id %]">
+ [% banner.text %]
+</p>
+[% END %]
+
+[% INCLUDE 'report/_main.html' %]
+
+
+
+
+
+<div class="shadow-wrap">
+ <ul id="key-tools">
+ <li><a rel="nofollow" href="[% c.uri_for( '/contact', { id => problem.id } ) %]">[% loc('Offensive? Unsuitable?' ) %]</a></li>
+ <li><a rel="nofollow" id="email_alert" href="[% c.uri_for( '/alert/subscribe', { id => problem.id } ) %]">[% loc('Receive updates' ) %]</a></li>
+ <li><a href="[% c.uri_for( '/around', { lat => short_latitude, lon => short_longitude } ) %]">[% loc( 'More problems nearby' ) %]</a></li>
+ </ul>
+</div>
+
+<!-- <div id="alert_links">
+ <a rel="nofollow" id="email_alert" href="[% c.uri_for( '/alert/subscribe', { id => problem.id } ) %]">[% loc('Email me updates' ) %]</a>
+
+ <form action="[% c.uri_for( '/alert/subscribe' ) %]" method="post" id="email_alert_box">
+ <p>[% loc('Receive email when updates are left on this problem.' ) %]</p>
+ <label class="n" for="alert_rznvy">[% loc('Email:') %]</label>
+ <input type="email" name="rznvy" id="alert_rznvy" value="[% email | html %]" size="30">
+ <input type="hidden" name="id" value="[% problem.id %]">
+ <input type="hidden" name="type" value="updates">
+ <input type="submit" value="[% loc('Subscribe') %]">
+ </form>
+ &nbsp;
+ <a href="[% c.uri_for( '/rss', problem.id ) %]">
+ <img src="/i/feed.png" width="16" height="16" title="[% loc('RSS feed') %]" alt="[% loc('RSS feed of updates to this problem' ) %]" border="0" style="vertical-align: middle">
+ </a>
+</div>
+ -->
+
+[% INCLUDE 'report/updates.html' %]
+
+<div id="update_form">
+
+ <h2>
+ [% loc( 'Provide an update') %]
+ </h2>
+
+ [% IF c.cobrand.moniker != 'emptyhomes' %]
+ <p>
+ <small>[% loc( 'Please note that updates are not sent to the council. If you leave your name it will be public. Your information will only be used in accordance with our <a href="/faq#privacy">privacy policy</a>' ) %]</small>
+ </p>
+ [% END %]
+
+ [% INCLUDE 'errors.html' %]
+
+ <form method="post" action="[% c.uri_for( '/report/update' ) %]" name="updateForm" class="fieldset validate"[% IF c.cobrand.allow_photo_upload %] enctype="multipart/form-data"[% END %]>
+
+ <input type="hidden" name="submit_update" value="1">
+ <input type="hidden" name="id" value="[% problem.id | html %]">
+
+ [% IF field_errors.update %]
+ <div class='form-error'>[% field_errors.update %]</div>
+ [% END %]
+ <div class="form-field">
+ <label for="form_update">[% loc( 'Update:' ) %]</label>
+ <textarea name="update" id="form_update" rows="7" cols="30" required>[% update.text | html %]</textarea>
+ </div>
+
+ [% IF c.user && c.user.belongs_to_council( problem.council ) %]
+ <div class="form-field">
+ <label for="form_state">[% loc( 'State:' ) %]</label>
+ <select name="state" id="form_state">
+ [% FOREACH state IN [ ['confirmed', loc('Open')], ['investigating',
+ loc('Investigating')], ['planned', loc('Planned')], ['in progress',
+ loc('In Progress')], ['closed', loc('Closed')], ['fixed', loc('Fixed')] ] %]
+ <option [% 'selected ' IF state.0 == problem.state %] value="[% state.0 %]">[% state.1 %]</option>
+ [% END %]
+ </select>
+ </div>
+ [% ELSE %]
+ [% IF problem.is_fixed AND c.user_exists AND c.user.id == problem.user_id %]
+ <div class="checkbox">
+ <input type="checkbox" name="reopen" id="form_reopen" value="1"[% ' checked' IF update.mark_open %]>
+ <label for="form_reopen">[% loc('This problem has not been fixed') %]</label>
+ </div>
+ [% ELSIF !problem.is_fixed %]
+ <div class="checkbox">
+ <input type="checkbox" name="fixed" id="form_fixed" value="1"[% ' checked' IF update.mark_fixed %]>
+ <label for="form_fixed">[% loc('This problem has been fixed') %]</label>
+ </div>
+ [% END %]
+ [% END %]
+
+ [% IF c.cobrand.allow_photo_upload %]
+ [% IF field_errors.photo %]
+ <div class='form-error'>[% field_errors.photo %]</div>
+ [% END %]
+ <div id="fileupload_normalUI">
+ [% IF upload_fileid %]
+ <p>[% loc('You have already attached a photo to this update, attaching another one will replace it.') %]</p>
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]">
+ [% END %]
+ <label for="form_photo">[% loc('Photo:') %]</label>
+ <input type="file" name="photo" id="form_photo" style="width:20em">
+ </div>
+ [% END %]
+
+[% IF c.user_exists %]
+
+ [% INCLUDE name %]
+
+ <div class="checkbox">
+ <input type="submit" id="update_post" value="[% loc('Post') %]">
+ </div>
+
+[% ELSE %]
+
+ [% IF field_errors.email %]
+ <div class='form-error'>[% field_errors.email %]</div>
+ [% END %]
+ <div class="form-field">
+ <label for="form_rznvy">[% loc('Your email:' ) %]</label>
+ <input type="email" name="rznvy" id="form_rznvy" value="[% update.user.email | html %]" size="30" required>
+ </div>
+
+<div id="form_sign_in">
+ <h3>[% loc("Now to submit your update&hellip; do you have a FixMyStreet password?") %]</h3>
+
+ <div id="form_sign_in_yes">
+
+ [% IF field_errors.password %]
+ <div class='form-error'>[% field_errors.password %]</div>
+ [% END %]
+
+ <p>
+ <label class="n" for="password_sign_in">[% loc('<strong>Yes</strong>, I have a password:') %]</label>
+ <input type="password" name="password_sign_in" id="password_sign_in" value="" size="25">
+ </p>
+
+ <div class="fieldset">
+
+ <p>
+ <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
+ <label class="n" for="remember_me">
+ [% loc('Keep me signed in on this computer') %]
+ </label>
+ </p>
+
+ <p>
+ <input type="submit" name="submit_sign_in" id="submit_sign_in" value="[% loc('Post') %]">
+ </p>
+
+ </div>
+
+ </div>
+ <div id="form_sign_in_no">
+
+ <p>[% loc('<strong>No</strong>, let me confirm my update by email:') %]</p>
+
+ <div class="fieldset">
+
+ [% INCLUDE name %]
+
+ <div class="form-field">
+ <label for="password_register">[% loc('Enter a new password:') %]</label>
+ <input type="password" name="password_register" id="password_register" value="" size="25">
+ </div>
+
+ <p style="clear:both"><small>[% loc('Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</small></p>
+
+ <p>
+ <input type="submit" name="submit_register" id="submit_register" value="[% loc('Post') %]">
+ </p>
+
+ </div>
+
+ </div>
+
+</div>
+
+[% END %]
+
+ </form>
+</div>
+
+</div>
+
+[% INCLUDE 'footer.html' %]
+
+[% BLOCK name %]
+ [% IF field_errors.name %]
+ <div class='form-error'>[% field_errors.name %]</div>
+ [% END %]
+
+ <div>
+ <label for="form_name">[% loc('Your name:') %]</label>
+ <input type="text" name="name" id="form_name" value="[% update.name || c.user.name | html %]" size="25">
+ </div>
+
+ <div class="checkbox">
+ <input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' UNLESS update.anonymous %]>
+ <label for="form_may_show_name">[% loc('Show my name publicly') %]</label>
+ <small>[% loc('(we never show your email)') %]</small>
+ </div>
+
+ <div class="checkbox">
+ <input type="checkbox" name="add_alert" id="form_add_alert" value="1"[% ' checked' IF add_alert %]>
+ <label for="form_add_alert">[% loc( 'Alert me to future updates' ) %]</label>
+ </div>
+[% END %]
diff --git a/templates/web/fixmystreet/report/new/category.html b/templates/web/fixmystreet/report/new/category.html
new file mode 100644
index 000000000..095cd7c2e
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/category.html
@@ -0,0 +1,10 @@
+[% FILTER collapse %]
+[% IF category_options.size %]
+ <label for='form_category'>[% category_label | html %]</label>
+ <select name='category' id='form_category'[% ' onchange="form_category_onchange()"' IF category_extras.size %]>
+ [% FOREACH cat_op IN category_options %]
+ <option value='[% cat_op | html %]'[% ' selected' IF report.category == cat_op %]>[% cat_op | html %]</option>
+ [% END %]
+ </select>
+[% END %]
+[% END -%]
diff --git a/templates/web/fixmystreet/report/new/category_extras.html b/templates/web/fixmystreet/report/new/category_extras.html
new file mode 100644
index 000000000..7be69e30c
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/category_extras.html
@@ -0,0 +1,26 @@
+<div id="category_meta">
+ [%- IF report_meta %]
+ [%- category = report.category %]
+ <h4>Additional Information</h4>
+ [%- FOR meta IN category_extras.$category %]
+ [%- meta_name = meta.code -%]
+
+[% IF field_errors.$meta_name %]
+ <div class='form-error'>[% field_errors.$meta_name %]</div>
+[% END -%]
+
+ <div class="form-field">
+ <label for="form_[% meta_name %]">[% meta.description _ ':' %]</label>
+ [% IF meta.exists('values') %]
+ <select name="[% meta_name %]" id="form_[% meta_name %]"[% meta.required == 'true' ? ' required' : '' %]>
+ [% FOR option IN meta.values.value.keys %]
+ <option value="[% meta.values.value.$option.key %]">[% option %]</option>
+ [% END %]
+ </select>
+ [% ELSE %]
+ <input type="text" value="[% report_meta.$meta_name | html %]" name="[% meta_name %]" id="form_[% meta_name %]"[% meta.required == 'true' ? ' required' : '' %]>
+ [% END %]
+ </div>
+ [%- END %]
+ [%- END %]
+</div>
diff --git a/templates/web/fixmystreet/report/new/councils_text.html b/templates/web/fixmystreet/report/new/councils_text.html
new file mode 100644
index 000000000..1da5746c1
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/councils_text.html
@@ -0,0 +1,9 @@
+[% FILTER collapse %]
+[% IF area_ids_to_list.size == 0 %]
+ [% PROCESS 'report/new/councils_text_none.html' %]
+[% ELSIF area_ids_to_list.size == all_councils.size %]
+ [% PROCESS 'report/new/councils_text_all.html' %]
+[% ELSE %]
+ [% PROCESS 'report/new/councils_text_some.html' %]
+[% END %]
+[% END -%]
diff --git a/templates/web/fixmystreet/report/new/councils_text_all.html b/templates/web/fixmystreet/report/new/councils_text_all.html
new file mode 100644
index 000000000..8514e0b0a
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/councils_text_all.html
@@ -0,0 +1,19 @@
+<p>
+[% IF all_councils.${area_ids_to_list.0}.type == 'LBO' %]
+[%
+ tprintf(
+ loc('All the information you provide here will be sent to <strong>%s</strong> or a relevant local body such as <strong>TfL</strong>, via the London Report-It system.'),
+ all_council_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
+ );
+%]
+[% ELSE %]
+[%
+ tprintf(
+ loc('All the information you provide here will be sent to <strong>%s</strong>.'),
+ all_council_names.join( '</strong>' _ loc(' or ') _ '<strong>' )
+ );
+%]
+[% END %]
+
+[% loc('The subject and details of the problem will be public, plus your name if you give us permission.') %]
+</p>
diff --git a/templates/web/fixmystreet/report/new/councils_text_none.html b/templates/web/fixmystreet/report/new/councils_text_none.html
new file mode 100644
index 000000000..06a4bbe49
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/councils_text_none.html
@@ -0,0 +1,22 @@
+
+
+<p>[%
+
+ nget(
+ "We do not yet have details for the council that covers this location.",
+ "We do not yet have details for the councils that cover this location.",
+ all_councils.size
+ );
+%]
+[%
+ loc("If you submit a problem here the subject and details of the problem will be public, but the problem will <strong>not</strong> be reported to the council.");
+%]
+[%
+ tprintf(
+ loc("You can help us by finding a contact email address for local problems for %s and emailing it to us at <a href='mailto:%s'>%s</a>."),
+ all_council_names.join( loc(' or ') ),
+ c.cobrand.contact_email,
+ c.cobrand.contact_email
+ );
+
+%]</p>
diff --git a/templates/web/fixmystreet/report/new/councils_text_some.html b/templates/web/fixmystreet/report/new/councils_text_some.html
new file mode 100644
index 000000000..042e89914
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/councils_text_some.html
@@ -0,0 +1,28 @@
+<p>
+[% loc('All the information you provide here will be sent to') %]
+
+[% FOREACH council_id IN area_ids_to_list %]
+ [% loc( ' or ') IF ! loop.first %]
+ <strong>[% all_councils.$council_id.name %]</strong>
+ [%- '.' IF loop.last %]
+[% END %]
+
+[%
+ loc('The subject and details of the problem will be public, plus your name if you give us permission.');
+%]
+[%
+ nget(
+ "We do <strong>not</strong> yet have details for the other council that covers this location.",
+ "We do <strong>not</strong> yet have details for the other councils that cover this location.",
+ missing_details_councils.size
+ );
+%]
+[%
+ tprintf(
+ loc("You can help us by finding a contact email address for local problems for %s and emailing it to us at <a href='mailto:%s'>%s</a>."),
+ missing_details_council_names.join( loc(' or ') ),
+ c.cobrand.contact_email,
+ c.cobrand.contact_email
+ );
+%]
+</p>
diff --git a/templates/web/fixmystreet/report/new/fill_in_details.html b/templates/web/fixmystreet/report/new/fill_in_details.html
new file mode 100644
index 000000000..22d1ee739
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/fill_in_details.html
@@ -0,0 +1,35 @@
+[%
+ PROCESS "maps/${map.type}.html" IF report.used_map;
+ INCLUDE 'header.html', title => loc('Reporting a problem')
+%]
+
+[% IF report.used_map %]
+<form action="[% c.uri_for('/report/new') %]" method="post" name="mapForm" id="mapForm"[% IF c.cobrand.allow_photo_upload %] enctype="multipart/form-data"[% END %] class="validate">
+[% IF c.req.params.map_override %]
+<input type="hidden" name="map_override" value="[% c.req.params.map_override | html %]">
+[% END %]
+<input type="hidden" name="pc" value="[% pc | html %]">
+[% ELSE %]
+<form action="[% c.uri_for('/report/new') %]" method="post" name="mapSkippedForm"[% IF c.cobrand.allow_photo_upload %] enctype="multipart/form-data"[% END %] class="validate">
+<input type="hidden" name="pc" value="[% pc | html %]">
+<input type="hidden" name="skipped" value="1">
+[% END %]
+
+<input type="hidden" name="latitude" id="fixmystreet.latitude" value="[% short_latitude | html %]">
+<input type="hidden" name="longitude" id="fixmystreet.longitude" value="[% short_longitude | html %]">
+
+[% IF report.used_map %]
+ [% map_html %]
+ </div>
+ <div id="side">
+[% ELSE %]
+ <div id="skipped-map">
+[% END %]
+
+[% PROCESS 'report/new/fill_in_details_form.html' %]
+
+</div>
+</form>
+
+[% INCLUDE 'footer.html' %]
+
diff --git a/templates/web/fixmystreet/report/new/fill_in_details_form.html b/templates/web/fixmystreet/report/new/fill_in_details_form.html
new file mode 100644
index 000000000..2809b9c0e
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/fill_in_details_form.html
@@ -0,0 +1,220 @@
+<h1>[% loc('Reporting a problem') %]</h1>
+
+[% IF report.used_map %]
+ [% IF partial_token %]
+ <p id="unknown">[% loc('Please note your report has <strong>not yet been sent</strong>. Choose a category and add further information below, then submit.') %]</p>
+ [% END %]
+<p>[% loc('You have located the problem at the point marked with a purple pin on the map. If this is not the correct location, simply click on the map again. ') %]</p>
+[% END %]
+
+[% IF js %]
+ <p id="councils_text">[%
+ tprintf(
+ loc('All the information you provide here will be sent to <strong>%s</strong>.'),
+ loc('the local council')
+ );
+ %]
+ [% loc('The subject and details of the problem will be public, plus your name if you give us permission.') %]
+ </p>
+[% ELSE %]
+ [% PROCESS 'report/new/councils_text.html' %]
+[% END %]
+
+<p>
+[% IF report.used_map %]
+ [% INCLUDE 'report/new/fill_in_details_text.html' %]
+[% ELSE %]
+ [% loc('Please fill in the form below with details of the problem, and describe the location as precisely as possible in the details box.') %]
+[% END %]
+</p>
+
+[% INCLUDE 'errors.html' %]
+
+<div id="problem_form">
+
+[% INCLUDE 'report/new/form_heading.html' %]
+
+<div class="fieldset">
+
+
+
+
+
+[% IF field_errors.council %]
+ <div class='form-error'>[% field_errors.council %]</div>
+[% END %]
+
+[% IF field_errors.title %]
+ <div class='form-error'>[% field_errors.title %]</div>
+[% END %]
+
+<div class="form-field">
+ <label for="form_title">[% loc('Subject:') %]</label>
+ <input type="text" value="[% report.title | html %]" name="title" id="form_title" size="25" required>
+</div>
+
+[% IF field_errors.detail %]
+ <div class='form-error'>[% field_errors.detail %]</div>
+[% END %]
+
+<div class="form-field">
+ <label for="form_detail">[% loc('Details:') %]</label>
+ <textarea name="detail" id="form_detail" rows="7" cols="26" required>[% report.detail | html %]</textarea>
+</div>
+
+[% IF js %]
+ <div class="form-field" id="form_category_row">
+ <label for="form_category">[% loc('Category:') %]</label>
+ <select name="category" id="form_category" required><option>[% loc('Loading...') %]</option></select>
+ </div>
+[% ELSE %]
+ [% IF category_options.size %]
+ [% IF field_errors.category %]
+ <div class='form-error'>[% field_errors.category %]</div>
+ [% END %]
+
+ <div class="form-field">
+ [% PROCESS "report/new/category.html" %]
+ </div>
+ [% END %]
+[% END %]
+
+[%- IF category_extras %]
+[% PROCESS "report/new/category_extras.html" %]
+[%- END %]
+
+[% IF c.cobrand.allow_photo_upload %]
+ [% IF field_errors.photo %]
+ <div class='form-error'>[% field_errors.photo %]</div>
+ [% END %]
+
+ <div class='form-field'>
+ [% IF upload_fileid || report.photo %]
+ <p>[% loc('You have already attached a photo to this report, attaching another one will replace it.') %]</p>
+ [% IF upload_fileid %]
+ <input type="hidden" name="upload_fileid" value="[% upload_fileid %]" />
+ [% END %]
+ [% IF report.photo %]
+ <img align="right" src="/photo?id=[% report.id %]" hspace="5">
+ [% END %]
+ [% END %]
+
+ <label for="form_photo">[% loc('Photo:') %]</label>
+ <input type="file" name="photo" id="form_photo" style="width:20em">
+ </div>
+[% END %]
+
+[% IF c.user_exists %]
+
+ [% INCLUDE name_phone %]
+
+ [% INCLUDE 'report/new/notes.html' %]
+
+ <p id="problem_submit">
+ <input type="submit" value="[% loc('Submit') %]">
+ </p>
+
+[% ELSE %]
+
+ [% IF field_errors.email %]
+ <div class='form-error'>[% field_errors.email %]</div>
+ [% END %]
+
+ <div class="form-field">
+ <label for="form_email">[% loc('Your email:') %]</label>
+ <input type="email" value="[% report.user.email | html %]" name="email" id="form_email" size="25" required>
+ </div>
+
+[% INCLUDE 'report/new/notes.html' %]
+
+<div id="form_sign_in">
+ <h3>[% loc("Now to submit your report&hellip; do you have a FixMyStreet password?") %]</h3>
+
+ <div id="form_sign_in_yes">
+
+ [% IF field_errors.password %]
+ <div class='form-error'>[% field_errors.password %]</div>
+ [% END %]
+
+ <div class="form-field">
+ <label class="n" for="password_sign_in">[% loc('<strong>Yes</strong>, I have a password:') %]</label>
+ <input type="password" name="password_sign_in" id="password_sign_in" value="" size="25">
+ </div>
+
+ <div class="fieldset">
+
+ <p>
+ <input type="checkbox" id="remember_me" name="remember_me" value='1'[% ' checked' IF remember_me %]>
+ <label class="n" for="remember_me">
+ [% loc('Keep me signed in on this computer') %]
+ </label>
+ </p>
+
+ <p>
+ <input type="submit" id="submit_sign_in" name="submit_sign_in" value="[% loc('Submit') %]">
+ </p>
+
+ </div>
+
+ </div>
+ <div id="form_sign_in_no">
+
+ <p>[% loc('<strong>No</strong>, let me confirm my report by email:') %]</p>
+
+ <div class="fieldset">
+
+ [% INCLUDE name_phone %]
+
+ <div class="form-field">
+ <label for="password_register">[% loc('Enter a new password:') %]</label>
+ <input type="password" name="password_register" id="password_register" value="" size="25">
+ </div>
+
+ <p style="clear:both"><small>[% loc('Providing a password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</small></p>
+
+ <p>
+ <input type="submit" id="submit_register" name="submit_register" value="[% loc('Submit') %]">
+ </p>
+
+ </div>
+
+ </div>
+
+</div>
+
+[% END %]
+
+[% IF partial_token %]
+ <input type="hidden" name="partial" value="[% partial_token.token %]">
+[% END %]
+
+<input type="hidden" name="submit_problem" value="1">
+
+</div>
+</div>
+
+
+[% BLOCK name_phone %]
+ [% IF field_errors.name %]
+ <div class='form-error'>[% field_errors.name %]</div>
+ [% END %]
+
+ <div class="form-field">
+ <label for="form_name">[% loc('Your name:') %]</label>
+ <input type="text" class="validName" value="[% report.name | html %]" name="name" id="form_name" size="25">
+ </div>
+
+ <div class="checkbox">
+ [%# if there is nothing in the name field then set check box as default on form %]
+ <input type="checkbox" name="may_show_name" id="form_may_show_name" value="1"[% ' checked' IF !report.anonymous %]>
+ <label for="form_may_show_name">[% loc('Show my name publicly') %]</label>
+ <br><small>[% loc('(we never show your email address or phone number)') %]</small>
+ </div>
+
+ <div>
+ <label for="form_phone">[% loc('Phone:') %]</label>
+ <input type="text" value="[% report.user.phone | html %]" name="phone" id="form_phone" size="15">
+ <small>[% loc('(optional)') %]</small>
+ </div>
+[% END %]
+
diff --git a/templates/web/fixmystreet/report/new/fill_in_details_text.html b/templates/web/fixmystreet/report/new/fill_in_details_text.html
new file mode 100644
index 000000000..5d9716915
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/fill_in_details_text.html
@@ -0,0 +1,13 @@
+[%
+ IF area_ids_to_list.size != 0;
+ loc('Please fill in details of the problem below. The council won\'t be able
+to help unless you leave as much detail as you can, so please describe the exact location of
+the problem (e.g. on a wall), what it is, how long it has been there, a description (and a
+photo of the problem if you have one), etc.');
+ IF category_extras;
+ ' ' _ loc('Some categories may require additional information.');
+ END;
+ ELSE;
+ loc('Please fill in details of the problem below.');
+ END;
+%]
diff --git a/templates/web/fixmystreet/report/new/form_heading.html b/templates/web/fixmystreet/report/new/form_heading.html
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/form_heading.html
diff --git a/templates/web/fixmystreet/report/new/notes.html b/templates/web/fixmystreet/report/new/notes.html
new file mode 100644
index 000000000..be605ddaa
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/notes.html
@@ -0,0 +1,11 @@
+<p style="clear:both">[% loc("Please note:") %]</p>
+
+<ul>
+
+ <li>[% loc("We will only use your personal information in accordance with our <a href=\"/faq#privacy\">privacy policy.</a>") %]</li>
+ <li>[% loc("Please be polite, concise and to the point.") %]</li>
+ <li>[% loc("Please do not be abusive &mdash; abusing your council devalues the service for all users.") %]</li>
+ <li>[% loc("Writing your message entirely in block capitals makes it hard to read, as does a lack of punctuation.") %]</li>
+ <li>[% loc("Remember that FixMyStreet is primarily for reporting physical problems that can be fixed. If your problem is not appropriate for submission via this site remember that you can contact your council directly using their own website.") %]</li>
+
+</ul>
diff --git a/templates/web/fixmystreet/report/new/report_import.html b/templates/web/fixmystreet/report/new/report_import.html
new file mode 100644
index 000000000..7aa105afe
--- /dev/null
+++ b/templates/web/fixmystreet/report/new/report_import.html
@@ -0,0 +1,92 @@
+[% INCLUDE 'header.html', title => 'External import' %]
+
+<h1>External import</h1>
+
+<p>You may inject problem reports into FixMyStreet programatically using this
+simple interface. Upon receipt, an email will be sent to the address given,
+with a link the user must click in order to check the details of their report,
+add any other information they wish, and then submit to the council.
+
+<p>This interface returns a plain text response; either <samp>SUCCESS</samp> if
+the report has been successfully received, or if not, a list of errors, one per
+line each starting with <samp>ERROR:</samp>.
+
+<p>You may submit the following information by POST to this URL
+(i.e. <samp>[% c.uri_for('/import') %]</samp> ):</p>
+
+<style type="text/css" media="screen">
+ input {
+ /* Hide the form elements - they are just here for simpler testing */
+ display: none;
+ }
+</style>
+
+<form method="POST" action="/import" enctype="multipart/form-data">
+
+<dl>
+ <dt>service</dt>
+ <dd>
+ <em>Required</em>.
+ Name of application/service using this interface.
+ <input type="text" name="service" />
+ </dd>
+
+ <dt>id</dt>
+ <dd>
+ Unique ID of a user/device, for possible future use.<br>
+ <small>(e.g. used by Flickr import to know which accounts to look at)</small>
+ <input type="text" name="id" />
+ </dd>
+
+ <dt>subject</dt>
+ <dd>
+ <em>Required</em>. Subject of problem report.
+ <input type="text" name="subject" />
+ </dd>
+
+ <dt>detail</dt>
+ <dd>
+ Main body and details of problem report.
+ <input type="text" name="detail" />
+ </dd>
+
+ <dt>name</dt>
+ <dd>
+ <em>Required</em>. Name of problem reporter.
+ <input type="text" name="name" />
+ </dd>
+
+ <dt>email</dt>
+ <dd>
+ <em>Required</em>. Email address of problem reporter.
+ <input type="text" name="email" />
+ </dd>
+
+ <dt>phone</dt>
+ <dd>
+ Telephone number of problem reporter.
+ <input type="text" name="phone" />
+ </dd>
+
+ <dt>easting / northing</dt>
+ <dt>lat / lon</dt>
+ <dd>
+ Location of problem report. You can either supply eastings/northings, or WGS84 latitude/longitude.
+ <input type="text" name="easting" />
+ <input type="text" name="northing" />
+ <input type="text" name="lat" />
+ <input type="text" name="lon" />
+ </dd>
+
+ <dt>photo</dt>
+ <dd>
+ Photo of problem (JPEG only).
+ <input type="file" name="photo" />
+ </dd>
+</dl>
+
+<input type="submit" />
+
+</form>
+
+[% INCLUDE 'footer.html' %] \ No newline at end of file
diff --git a/templates/web/fixmystreet/report/photo.html b/templates/web/fixmystreet/report/photo.html
new file mode 100644
index 000000000..f266792b2
--- /dev/null
+++ b/templates/web/fixmystreet/report/photo.html
@@ -0,0 +1,6 @@
+[% IF c.cobrand.allow_photo_display && object.photo %]
+[% photo = object.get_photo_params %]
+<div class="update-img">
+ <img alt="" height="" width="100px" src="[% photo.url %]">
+</div>
+[% END %]
diff --git a/templates/web/fixmystreet/report/updates.html b/templates/web/fixmystreet/report/updates.html
new file mode 100644
index 000000000..508e2aacc
--- /dev/null
+++ b/templates/web/fixmystreet/report/updates.html
@@ -0,0 +1,36 @@
+[% FOREACH update IN updates.all %]
+[% IF loop.first %]
+<section class="full-width">
+ <h4 class="static-with-rule">[% loc('Updates') %]</h4>
+ <ul class="issue-list">
+[% END %]
+ <li>
+ <div class="update-wrap">
+ <div class="update-text">
+ [% add_links( update.text ) | html_para %]
+
+ <p class="meta-2">
+ <a name="update_[% update.id %]"></a>
+ [% IF update.anonymous || update.name == '' %]
+ [% tprintf( loc( 'Posted anonymously at %s' ), prettify_epoch( update.confirmed_local.epoch ) ) -%]
+ [%- ELSIF update.user.from_council %]
+ [% user_name = update.user.name | html %]
+ [% tprintf( loc( 'Posted by %s (<strong>%s</strong>) at %s' ), user_name, update.user.council, prettify_epoch( update.confirmed_local.epoch ) ) -%]
+ [%- ELSE %]
+ [% tprintf( loc( 'Posted by %s at %s' ), update.name, prettify_epoch( update.confirmed_local.epoch ) ) | html -%]
+ [%- END -%]
+ [%- c.cobrand.extra_update_meta_text(update) -%]
+ [%- ", " _ loc( 'marked as fixed' ) IF update.mark_fixed %]
+ [%- ", " _ loc( 'reopened' ) IF update.mark_open %]
+ [%- ", " _ tprintf(loc( 'marked as %s' ), update.meta_problem_state) IF update.problem_state %]
+ </p>
+ </div>
+
+ [% INCLUDE 'report/photo.html' object=update %]
+ </div>
+ </li>
+[% IF loop.last %]
+ </ul>
+</section>
+[% END %]
+[% END %] \ No newline at end of file