aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorChris Mytton <self@hecticjeff.net>2013-09-13 12:12:14 +0100
committerChris Mytton <self@hecticjeff.net>2013-09-13 12:12:14 +0100
commitb44f9edab53f59fb442e5ee4db28cb25408c652c (patch)
treee7cd62bd148a5332e1ec625dda6c3bc6b09ceb62 /templates
parent2099ac31a4410f2cf8e1c7d31dc35cdd9ac1e070 (diff)
parent94ac7786132a538a5742ba325eb7fe9eff89cfc9 (diff)
Merge branch 'master' into oxfordshire-usability-recommendations
Diffstat (limited to 'templates')
-rw-r--r--templates/web/default/admin/bodies.html103
-rw-r--r--templates/web/default/admin/body-form.html145
-rw-r--r--templates/web/default/admin/body.html78
-rw-r--r--templates/web/default/admin/edit-league.html7
-rw-r--r--templates/web/default/admin/flagged.html39
-rw-r--r--templates/web/default/admin/header.html2
-rw-r--r--templates/web/default/admin/index.html8
-rw-r--r--templates/web/default/admin/reports.html6
-rw-r--r--templates/web/default/admin/user-form.html40
-rw-r--r--templates/web/default/admin/users.html10
-rw-r--r--templates/web/default/common_header_tags.html6
-rw-r--r--templates/web/default/js/translation_strings.html5
-rw-r--r--templates/web/default/report/updates.html39
-rw-r--r--templates/web/fixmindelo/faq/faq-pt-cv.html121
-rwxr-xr-xtemplates/web/fixmystreet/around/_updates.html2
-rw-r--r--templates/web/fixmystreet/auth/general.html2
-rw-r--r--templates/web/zurich/admin/body-form.html7
-rw-r--r--templates/web/zurich/admin/header.html1
-rw-r--r--templates/web/zurich/admin/index-dm.html1
-rw-r--r--templates/web/zurich/admin/index-sdm.html1
-rw-r--r--templates/web/zurich/admin/list_updates.html6
-rw-r--r--templates/web/zurich/admin/problem_row.html6
-rw-r--r--templates/web/zurich/admin/report_edit-sdm.html7
-rw-r--r--templates/web/zurich/admin/report_edit.html35
-rw-r--r--templates/web/zurich/admin/reports.html1
-rw-r--r--templates/web/zurich/js/validation_rules.html8
-rw-r--r--templates/web/zurich/report/new/fill_in_details_form.html5
-rw-r--r--templates/web/zurich/report/photo-js.html6
28 files changed, 604 insertions, 93 deletions
diff --git a/templates/web/default/admin/bodies.html b/templates/web/default/admin/bodies.html
index a1555cac9..c0824521e 100644
--- a/templates/web/default/admin/bodies.html
+++ b/templates/web/default/admin/bodies.html
@@ -2,49 +2,72 @@
[% INCLUDE 'admin/edit-league.html' %]
-<table cellspacing="0" cellpadding="2" border="1">
- <tr>
- <th>[% loc('Name') %]</th>
+[% IF bodies.size == 0 %]
+ <p class="fms-admin-info">
+ [% loc('Currently no bodies have been created.') %]
+ <br>
+ [% loc('You need to add bodies (such as councils or departments) so that you can then add
+ the categories of problems they can handle (such as potholes or streetlights) and the
+ contacts (such as an email address) to which reports are sent.') %]
+ </p>
+[% ELSE %]
+ <table cellspacing="0" cellpadding="2" border="1">
+ <tr>
+ <th>[% loc('Name') %]</th>
+ [% IF c.cobrand.moniker == 'zurich' %]
+ <th>[% loc('Email') %]</th>
+ <th>[% loc('Deleted') %]</th>
+ [% ELSE %]
+ <th>[% loc('Category') %]</th>
+ [% END %]
+ </tr>
+ [%- FOREACH body IN bodies %]
+ [%- SET id = body.id %]
+ [% NEXT IF c.cobrand.moniker == 'zurich' AND admin_type == 'dm' AND (body.parent OR body.bodies) %]
+ <tr[% IF c.cobrand.moniker == 'zurich' AND body.deleted %] class="muted"[% END %]>
+ <td>
+ [% IF c.cobrand.moniker == 'zurich' %]
+ [% FILTER repeat(4*body.api_key) %]&nbsp;[% END %]
+ [% IF admin_type == 'super' %]
+ <a href="[% c.uri_for( 'body', id ) %]">[% body.name %]</a>
+ [% ELSE %]
+ [% body.name %]
+ [% END %]
+ [% ELSE %] [%# not Zurich: all bodies should be links %]
+ <a href="[% c.uri_for( 'body', id ) %]">[% body.name %]</a>
+ [%- ', ' _ body.parent.name IF body.parent -%]
+ [% END %]
+ </td>
[% IF c.cobrand.moniker == 'zurich' %]
- <th>[% loc('Email') %]</th>
+ <td>[% body.endpoint %]</td>
+ <td>[% IF body.deleted %]Yes[% END %]</td>
[% ELSE %]
- <th>[% loc('Category') %]</th>
- [% END %]
- </tr>
-[%- FOREACH body IN bodies %]
- [%- SET id = body.id %]
- [% NEXT IF c.cobrand.moniker == 'zurich' AND admin_type == 'dm' AND (body.parent OR body.bodies) %]
- <tr>
- <td>
- [% IF c.cobrand.moniker == 'zurich' %]
- [% FILTER repeat(4*body.api_key) %]&nbsp;[% END %]
- [% END %]
- <a href="[% c.uri_for( 'body', id ) %]">[% body.name %]</a>
- [% IF c.cobrand.moniker != 'zurich' %]
- [%- ', ' _ body.parent.name IF body.parent -%]
+ <td>
+ [% IF counts.$id %]
+ [% tprintf( loc('%d addresses'), counts.$id.c) IF c.cobrand.moniker != 'emptyhomes' %]
+ [% IF counts.$id.deleted %]
+ (1+ deleted)
+ [% ELSIF counts.$id.confirmed != counts.$id.c %]
+ (some unconfirmed)
+ [% END %]
+ [% ELSE %]
+ no categories
[% END %]
- </td>
- [% IF c.cobrand.moniker == 'zurich' %]
- <td>[% body.endpoint %]</td>
- [% ELSE %]
- <td>
- [% IF counts.$id %]
- [% tprintf( loc('%d addresses'), counts.$id.c) IF c.cobrand.moniker != 'emptyhomes' %]
- [% IF counts.$id.deleted %]
- (1+ deleted)
- [% ELSIF counts.$id.confirmed != counts.$id.c %]
- (some unconfirmed)
- [% END %]
- [% ELSE %]
- no categories
- [% END %]
- </td>
- [% END %]
- </tr>
-[%- END %]
-</table>
+ </td>
+ [% END %]
+ </tr>
+ [%- END %]
+ </table>
+[% END %]
-<h2>[% loc('Add body') %]</h2>
-[% INCLUDE 'admin/body-form.html', body='' %]
+[% IF c.cobrand.moniker == 'zurich' %]
+ [% IF admin_type == 'super' %]
+ <h2>[% loc('Add body') %]</h2>
+ [% INCLUDE 'admin/body-form.html', body='' %]
+ [% END %]
+[% ELSE %]
+ <h2>[% loc('Add body') %]</h2>
+ [% INCLUDE 'admin/body-form.html', body='' %]
+[% END %]
[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/default/admin/body-form.html b/templates/web/default/admin/body-form.html
index 039d83ae2..de30a5a17 100644
--- a/templates/web/default/admin/body-form.html
+++ b/templates/web/default/admin/body-form.html
@@ -1,10 +1,32 @@
<form method="post" action="[% body ? c.uri_for('body', body.id) : c.uri_for('bodies') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
-
+ <div class="fms-admin-info">
+ [% loc(
+ "Add a <strong>body</strong> for each administrative body, such as a council or department
+ to which problem reports can be sent. You can add one or more contacts (for different
+ categories of problem) to each body."
+ ) %]
+ </div>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "The body's <strong>name</strong> identifies the body (for example, <em>Borsetshire District Council</em>)
+ and may be displayed publically."
+ ) %]
+ </p>
+ </div>
<p>
<label for="name">[% loc('Name') %]</label>
<input type="text" name="name" id="name" value="[% body.name %]" size="50">
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "Identify a <strong>parent</strong> if this body is itself part of another body.
+ For basic installations, you don't need to join bodies in this way."
+ ) %]
+ </p>
+ </div>
<p>
<label for="parent">[% loc('Parent') %]</label>
<select name="parent" id="parent">
@@ -15,6 +37,24 @@
</select>
</p>
+ [% IF areas.size == 0 AND c.config.MAPIT_URL AND (NOT c.config.MAPIT_TYPES OR c.config.MAPIT_TYPES.size==O) %]
+ <p class="fms-admin-warning">
+ [% tprintf( loc(
+ '<code>MAPIT_URL</code> is set (<code>%s</code>) but no <code>MAPIT_TYPES</code>.<br>
+ This is probably why "area covered" is empty (below).<br>
+ Maybe add some <code>MAPIT_TYPES</code> to your config file?'), c.config.MAPIT_URL)
+ %]
+ </p>
+ [% END %]
+
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "This body will only be sent reports for problems that are located in the <strong>area covered</strong>.
+ A body will not receive any reports unless it covers at least one area."
+ ) %]
+ </p>
+ </div>
<p>
<label for="area_ids">[% loc('Area covered') %]</label>
<select name="area_ids" id="area_ids" multiple>
@@ -26,6 +66,14 @@
</select>
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "The <strong>send method</strong> determines how problem reports will be sent to the body.
+ If you leave this blank, <strong>send method defaults to email</strong>."
+ ) %]
+ </p>
+ </div>
<p>
<label for="send_method">Send Method</label>
<select name="send_method" id="send_method">
@@ -36,46 +84,127 @@
</select>
</p>
+ <div class="admin-open311-only">
+ <p class="fms-admin-info">
+ [% loc(
+ "These settings are for bodies that use Open311 (or other back-end integration) to receive problem reports.<br>
+ <strong>You don't need to set them if the Send Method is email.</strong>.
+ For more information on Open311, see
+ <a href='http://www.mysociety.org/2013/01/17/open311-explained//'>this article</a>.
+ "
+ ) %]
+ </p>
+
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "The <strong>endpoint</strong> is the URL of the service that FixMyStreet will connect to
+ when sending reports to this body."
+ ) %]
+ </p>
+ </div>
<p>
<label for="endpoint">[% loc('Endpoint') %]</label>
<input type="text" name="endpoint" id="endpoint" value="[% body.endpoint %]" size="50">
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "The <strong>jurisdiction</strong> is only needed if the endpoint is serving more
+ than one. If the body is running its own endpoint, you can usually leave this blank."
+ ) %]
+ </p>
+ </div>
<p>
<label for="jurisdiction">Open311 Jurisdiction</label>
<input type="text" name="jurisdiction" id="jurisdiction" value="[% body.jurisdiction %]" size="50">
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "Some endpoints require an <strong>API key</strong> to indicate that the reports are being
+ sent from your FixMyStreet installation."
+ ) %]
+ </p>
+ </div>
<p>
<label for="api_key">Open311 API Key</label>
<input type="text" name="api_key" id="api_key" value="[% body.api_key %]" size="25">
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "Enable <strong>Open311 update-sending</strong> if the endpoint will send and receive
+ updates to existing reports. If you're not sure, it probably does not, so leave this unchecked.
+ For more information, see
+ <a href='http://www.mysociety.org/2013/02/20/open311-extended/'>this article</a>."
+ ) %]
+ </p>
+ </div>
<p>
<input type="checkbox" id="send_comments" name="send_comments"[% ' checked' IF body.send_comments %]>
- <label for="send_comments" class="inline">Use Open311 comment sending extension</label>
+ <label for="send_comments" class="inline">Use Open311 update-sending extension</label>
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "If you've enabled Open311 update-sending above, you must identify which
+ FixMyStreet <strong>user</strong> will be attributed as the creator of those updates
+ when they are shown on the site. Enter the ID (number) of that user."
+ ) %]
+ </p>
+ </div>
<p>
<label for"comment_user_id">User ID to attribute fetched comments to</label>
<input type="text" name="comment_user_id" value="[% body.comment_user_id %]">
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "If you've enabled Open311 update-sending above, enable <strong>suppression of alerts</strong>
+ if you do <strong>not</strong> want that user to be notified whenever these updates are created."
+ ) %]
+ </p>
+ </div>
<p>
<input type="checkbox" id="suppress_alerts" name="suppress_alerts"[% ' checked' IF body.suppress_alerts %]>
<label for="suppress_alerts" class="inline">Do not send email alerts on fetched comments to problem creator</label>
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "If you've enabled Open311 update-sending above, Open311 usually only accepts OPEN or CLOSED status in
+ its updates. Enable <strong>extended Open311 stauses</strong> if you want to allow extra states to be passed.
+ Check that your cobrand supports this feature before switching it on."
+ ) %]
+ </p>
+ </div>
<p>
- <input type="checkbox" id="can_be_devolved" name="can_be_devolved"[% ' checked' IF body.can_be_devolved %]>
- <label for="can_be_devolved" class="inline">Endpoint lookup can be devolved to contacts</label>
+ <input type="checkbox" id="send_extended_statuses" name="send_extended_statuses"[% ' checked' IF conf.send_extended_statuses %]>
+ <label for="send_extended_statuses" class="inline">Send extended Open311 statuses with service request updates</label>
</p>
-
+ </div>
+
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "Enable this <strong>can be devolved</strong> setting if one or more contacts have a
+ different endpoint (and send method) from the body's. For example, if reports for some categories of
+ problem must be emailed, while others can be sent over Open311."
+ ) %]
+ </p>
+ </div>
<p>
- <label for="send_extended_statuses">Send extended open311 statuses with service request updates</label>:
- <input type="checkbox" id="send_extended_statuses" name="send_extended_statuses"[% ' checked' IF conf.send_extended_statuses %]>
+ <input type="checkbox" id="can_be_devolved" name="can_be_devolved"[% ' checked' IF body.can_be_devolved %]>
+ <label for="can_be_devolved" class="inline">Send method or endpoints can be devolved to contacts (i.e, can be different from the body's)</label>
</p>
-
+
<p>
<input type="hidden" name="posted" value="body">
<input type="hidden" name="token" value="[% token %]">
diff --git a/templates/web/default/admin/body.html b/templates/web/default/admin/body.html
index 120a07da9..9cb9125a6 100644
--- a/templates/web/default/admin/body.html
+++ b/templates/web/default/admin/body.html
@@ -11,9 +11,9 @@
<a href="[% c.uri_for_email( '/around', { pc => example_pc } ) %]">[% tprintf( loc('Example postcode %s'), example_pc ) | html %]</a> |
[% END %]
[% IF c.cobrand.moniker == 'emptyhomes' %]
-<a href="[% c.uri_for( 'reports', search => 'body:' _ body_id ) %]">[% loc('List all reported problems' ) %]</a>
+<a href="[% c.uri_for( 'reports', search => 'body:' _ body_id ) %]">[% loc('List all reported problems' ) %]</a> |
[% ELSE %]
-<a href="[% c.uri_for_email( '/reports/' _ body_id ) %]">[% loc('List all reported problems' ) %]</a>
+<a href="[% c.uri_for_email( '/reports/' _ body_id ) %]">[% loc('List all reported problems' ) %]</a> |
[% END %]
<a href="[% c.uri_for( 'body', body_id, { text => 1 } ) %]">[% loc('Text only version') %]</a>
</p>
@@ -28,6 +28,14 @@
<p class="error">Do not give these out except to people at the council.</p>
[% END %]
+[% IF live_contacts == 0 %]
+ <p class="fms-admin-warning">
+ [% loc("This body has no contacts. This means that currently problems reported to this body <strong>will not be sent</strong>.") %]
+ <br>
+ [% loc("Add a contact using the form below.") %]
+ </p>
+[% END %]
+
<form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
<table cellspacing="0" cellpadding="2" border="1">
@@ -44,11 +52,11 @@
<th>[% loc('Confirm') %]</th>
</tr>
[% WHILE ( contact = contacts.next ) %]
- <tr>
- <td><a href="[% c.uri_for( 'body_edit', body_id, contact.category ) %]">[% contact.category %]</a></td>
+ <tr [% IF contact.deleted %]class="is-deleted"[% END %]>
+ <td class="contact-category"><a href="[% c.uri_for( 'body_edit', body_id, contact.category ) %]">[% contact.category %]</a></td>
<td>[% contact.email | html %]</td>
<td>[% IF contact.confirmed %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
- <td>[% IF contact.deleted %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
+ <td>[% IF contact.deleted %]<strong>[% loc('Yes') %]</strong>[% ELSE %][% loc('No') %][% END %]</td>
<td>[% IF body.can_be_devolved && contact.send_method %][% loc('Yes') %][% ELSE %][% loc('No') %][% END %]</td>
<td>[% contact.editor %]</td>
<td>[% contact.note | html %]</td>
@@ -66,32 +74,90 @@
</p>
</form>
+
<h2>[% loc('Add new category') %]</h2>
+ <p class="fms-admin-info">
+ [% loc("Each contact for the body has a category, which is displayed to the public.
+ Different categories <strong>can have the same contact</strong> (email address).
+ This means you can add many categories even if you only have one contact for the body.
+ ") %]
+ </p>
<form method="post" action="[% c.uri_for('body', body_id ) %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
[% IF c.cobrand.moniker != 'emptyhomes' %]
+ <div class="admin-hint">
+ <p>
+ [% loc('Choose a <strong>category</strong> name that makes sense to the public (e.g., "Pothole", "Street lighting") but is helpful
+ to the body too. These will appear in the drop-down menu on the report-a-problem page.') %]
+ <br>
+ [% loc("If two or more bodies serve the same location, FixMyStreet combines identical categories into a single entry in
+ the menu. Make sure you use the same category name in the bodies if you want this to happen.") %]
+ </p>
+ </div>
<p>
<strong>[% loc('Category:') %] </strong><input type="text" name="category" size="30">
</p>
[% END %]
+ <div class="admin-hint">
+ <p>
+ [% loc("The <strong>email address</strong> is the destination to which reports about this category will be sent.
+ Other categories for this body may have the same email address.") %]
+ </p>
+ [% IF (body.send_method AND body.send_method != 'Email') OR body.can_be_devolved %]
+ <p>
+ [% loc("If you're using <strong>a send method that is not email</strong>, enter the service ID (Open311) or equivalent identifier here.") %]
+ </p>
+ [% END %]
+ </div>
+
<p>
- <strong>[% loc('Email:') %] </strong><input type="text" name="email" size="30">
+ <strong>[% loc('Email address:') %] </strong><input type="text" name="email" size="30">
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc("Check <strong>confirmed</strong> to indicate that this contact has been confirmed as correct.
+ If you are not sure of the origin or validity of the contact, leave this unchecked.") %]
+ </p>
+ </div>
<p>
<input type="checkbox" name="confirmed" value="1" id="confirmed">
<label for="confirmed" class="inline">[% loc('Confirmed') %]</label>
+ </p>
+ <div class="admin-hint">
+ <p>
+ [% loc("Check <strong>deleted</strong> to remove the category from use.
+ It will not appear as an available category in the drop-down menu on the report-a-problem page.") %]
+ </p>
+ </div>
+ <p>
<input type="checkbox" name="deleted" value="1" id="deleted">
<label for="deleted" class="inline">[% loc('Deleted') %]</label>
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc("Use the <strong>note</strong> to record details that are only displayed in the admin. Notes are not shown publicly, and are not sent to the body.") %]
+ </p>
+ </div>
<p>
<strong>[% loc('Note:') %] </strong> <textarea name="note" rows="3" cols="40"></textarea>
</p>
+ <div class="admin-hint">
+ <p>
+ [% loc("Check <strong>private</strong> if reports in this category should <strong>never be displayed on the website</strong>.
+ <br>
+ Normally, categories are not private.
+ <br>
+ This is suitable for issues that you want to allow users to report to the body, but for which there is no public
+ interest in displaying the report. In the UK, we've used this for services like requesting an extra rubbish bin
+ at a specific address.") %]
+ </p>
+ </div>
<p>
<input type="checkbox" name="non_public" value="1" id="non_public">
<label for="non_public" class="inline">[% loc('Private') %]</label>
diff --git a/templates/web/default/admin/edit-league.html b/templates/web/default/admin/edit-league.html
index 6bf71537e..4f31eeb2e 100644
--- a/templates/web/default/admin/edit-league.html
+++ b/templates/web/default/admin/edit-league.html
@@ -1,3 +1,10 @@
+<div class="admin-hint">
+ <p>
+ [% loc(
+ "The diligency prize league table shows editors' activity (who's been editing the most records)."
+ ) %]
+ </p>
+</div>
<h2>[% loc('Diligency prize league table') %]</h2>
[% IF edit_activity.count %]
<ul>
diff --git a/templates/web/default/admin/flagged.html b/templates/web/default/admin/flagged.html
index fc8b1fae1..518d1b14e 100644
--- a/templates/web/default/admin/flagged.html
+++ b/templates/web/default/admin/flagged.html
@@ -1,6 +1,11 @@
-[% INCLUDE 'admin/header.html' title=loc('Search Reports') %]
+[% INCLUDE 'admin/header.html' title=loc('Flagged reports and users') %]
[% PROCESS 'admin/report_blocks.html' %]
+<p class="fms-admin-info">
+ [% loc("You can flag any report or user by editing them, and they will be listed on this page.
+ For example, this can useful if you want to keep an eye on a user who has posted inappropriate
+ reports in the past.") %]
+</p>
<h2>[% loc( 'Problems' ) %]</h2>
[% IF problems.size > 0 %]
@@ -16,29 +21,41 @@
[% INCLUDE 'admin/problem_row.html' %]
</table>
[% ELSE %]
-<p>
-[% loc('No flagged problems found') %]
-</p>
+ <p class="fms-admin-warning">
+ [% loc('No flagged problems found.') %]
+ </p>
[% END %]
<h2>[% loc( 'Users' ) %]</h2>
-[% IF users%]
+<p class="fms-admin-info">
+ [% loc("Flagged users are not restricted in any way. This is just a list of users that have been marked for attention.") %]
+</p>
+
+[% IF users.size %]
<table cellspacing="0" cellpadding="2" border="1">
<tr>
<th>[% loc('Name') %]</th>
<th>[% loc('Email') %]</th>
+ <th>[% loc('In abuse table?') %]</th>
+ <th>&nbsp;</th>
</tr>
-[% WHILE ( user = users.next ) -%]
- <tr>
+ [%- FOREACH user IN users %]
+ <tr [% IF user.flagged == 2 %]class="is-deleted"[% END %]>
<td>[% user.name | html %]</td>
<td>[% user.email | html %]</td>
- <td><a href="[% c.uri_for( 'reports', search => user.email ) %]">list content</a></td>
+ <td>
+ [% IF user.flagged == 2 %] <strong>[% loc('Yes') %]</strong> [% ELSE %] &nbsp; [% END %]
+ </td>
+ <td>
+ <a href="[% c.uri_for( 'reports', search => user.email ) %]">list content</a>
+ [% IF user.id %] | <a href="[% c.uri_for( 'user_edit', user.id ) %]">[% loc('edit user') %]</a>[% END %]
+ </td>
</tr>
-[%- END %]
+ [%- END %]
</table>
[%- ELSE %]
-<p>
-[% loc('No flagged users found') %]
+<p class="fms-admin-warning">
+ [% loc('No flagged users found.') %]
</p>
[%- END %]
diff --git a/templates/web/default/admin/header.html b/templates/web/default/admin/header.html
index 6282bf383..9f3503e20 100644
--- a/templates/web/default/admin/header.html
+++ b/templates/web/default/admin/header.html
@@ -1,4 +1,4 @@
-[% INCLUDE 'header.html' admin = 1, bodyclass = 'fullwidthpage admin' %]
+[% INCLUDE 'header.html' admin = 1, bodyclass = 'fullwidthpage admin show-admin-notes' %]
<style type="text/css">
dt { clear: left; float: left; font-weight: bold; }
dd { margin-left: 8em; }
diff --git a/templates/web/default/admin/index.html b/templates/web/default/admin/index.html
index 2c5ee55db..5415222ab 100644
--- a/templates/web/default/admin/index.html
+++ b/templates/web/default/admin/index.html
@@ -1,5 +1,13 @@
[% INCLUDE 'admin/header.html' title=loc('Summary') -%]
+[% IF total_bodies == 0 %]
+ <p class="fms-admin-info">
+ [% loc('Currently no bodies have been created.') %]
+ <br>
+ [% tprintf( loc('You need to <a href="%s">add some bodies</a> (such as councils or departments) before any reports can be sent.'), c.uri_for('bodies')) %]
+ </p>
+[% END %]
+
[%- BLOCK states -%]
<h2>[% title %]</h2>
diff --git a/templates/web/default/admin/reports.html b/templates/web/default/admin/reports.html
index d57b2f53e..7267dd11d 100644
--- a/templates/web/default/admin/reports.html
+++ b/templates/web/default/admin/reports.html
@@ -20,6 +20,12 @@
[% INCLUDE 'pagination.html', admin = 1, param = 'p' IF pager %]
+[% ELSIF searched %]
+
+<div class="fms-admin-warning">
+ [% loc("Searching found no reports.") %]
+</div>
+
[% END %]
[% INCLUDE 'admin/list_updates.html' %]
diff --git a/templates/web/default/admin/user-form.html b/templates/web/default/admin/user-form.html
index 9c60ec940..489752d8c 100644
--- a/templates/web/default/admin/user-form.html
+++ b/templates/web/default/admin/user-form.html
@@ -2,16 +2,50 @@
<input type="hidden" name="token" value="[% token %]" >
<input type="hidden" name="submit" value="1" >
<ul class="no-bullets">
- <li>[% loc('Name:') %] <input type='text' name='name' id='name' value='[% user.name | html %]'></li>
+ <li>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "The user's <strong>name</strong> is displayed publicly on reports that have not been marked <em>anonymous</em>.
+ Names are not necessarily unique.")
+ %]
+ </p>
+ </div>
+ [% loc('Name:') %] <input type='text' name='name' id='name' value='[% user.name | html %]'>
+ </li>
<li>[% loc('Email:') %] <input type='text' id='email' name='email' value='[% user.email | html %]'></li>
- <li>[% loc('Body:') %] <select id='body' name='body'>
+ <li>
+ <div class="admin-hint">
+ <p>
+ [% loc(
+ "Normal (public) users should not be associated with any <strong>body</strong>.<br>
+ Authorised staff users can be associated with the body they represent.<br>
+ Depending on the implementation, staff users may have access to the dashboard (summary of
+ activity across their body), the ability to hide reports or set special report statuses.")
+ %]
+ </p>
+ </div>
+ [% loc('Body:') %] <select id='body' name='body'>
<option value=''>[% loc('No body') %]</option>
[% FOR body IN bodies %]
<option value="[% body.id %]"[% ' selected' IF body.id == user.from_body.id %]>[% body.name %]</option>
[% END %]
+ </li>
</select>
[% IF c.cobrand.moniker != 'zurich' %]
- <li>[% loc('Flagged:') %] <input type="checkbox" id="flagged" name="flagged"[% user.flagged ? ' checked' : '' %]></li>
+ <li>
+ <div class="admin-hint">
+ <p>
+ [% loc("Mark users whose behaviour you want to keep a check on as <strong>flagged</strong>.") %]
+ <br>
+ [% tprintf(loc("Flagged users are listed on the <a href='%s'>flagged</a> page."), c.uri_for( 'flagged' )) %]
+ <br>
+ [% loc("You can add an abusive user's email to the abuse list, which automatically hides (and never sends) reports they create.") %]
+ </p>
+ </div>
+
+ [% loc('Flagged:') %] <input type="checkbox" id="flagged" name="flagged"[% user.flagged ? ' checked' : '' %]>
+ </li>
[% END %]
</ul>
<input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" >
diff --git a/templates/web/default/admin/users.html b/templates/web/default/admin/users.html
index 70833ff85..db97c7d59 100644
--- a/templates/web/default/admin/users.html
+++ b/templates/web/default/admin/users.html
@@ -1,6 +1,9 @@
[% INCLUDE 'admin/header.html' title=loc('Search Users') %]
[% PROCESS 'admin/report_blocks.html' %]
+<div class="fms-admin-info">
+ [% loc("User search finds matches in users' names and email addresses.") %]
+</div>
<form method="get" action="[% c.uri_for('users') %]" enctype="application/x-www-form-urlencoded" accept-charset="utf-8">
<p><label for="search">[% loc('Search:') %]</label> <input type="text" name="search" size="30" id="search" value="[% searched | html %]">
</form>
@@ -30,12 +33,17 @@
[%- END -%]
</table>
+[% ELSIF searched %]
+
+<div class="fms-admin-warning">
+ [% loc("Searching found no users.") %]
+</div>
+
[% END %]
[% IF NOT searched %]
<h2>[% loc('Add user') %]</h2>
[% INCLUDE 'admin/user-form.html', user = '' %]
-
[% END %]
[% INCLUDE 'admin/footer.html' %]
diff --git a/templates/web/default/common_header_tags.html b/templates/web/default/common_header_tags.html
index 378265655..2c93a866c 100644
--- a/templates/web/default/common_header_tags.html
+++ b/templates/web/default/common_header_tags.html
@@ -6,13 +6,17 @@
<script type="text/javascript" src="/js/validation_rules.js?[% Math.int( date.now / 3600 ) %]"></script>
<script type="text/javascript" src="/js/translation_strings.[% lang_code %].js?[% Math.int( date.now / 3600 ) %]"></script>
-<script type="text/javascript" src="/jslib/jquery-1.7.2.min.js"></script>
+<script type="text/javascript" src="[% start %]/jslib/jquery-1.7.2.min.js"></script>
<script src="[% version('/js/jquery.validate.min.js') %]" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" src="[% version('/js/geo.min.js') %]"></script>
<script type="text/javascript" src="[% version('/js/fixmystreet.js') %]"></script>
<script type="text/javascript" src="[% version(js_override || '/js/fixmystreet-old-box.js') %]"></script>
+[% IF admin %]
+<script type="text/javascript" src="[% version(start _ '/js/fixmystreet-admin.js') %]"></script>
+[% END %]
+
[% map_js %]
[% IF category_extras_json && category_extras_json != '{}' %]
diff --git a/templates/web/default/js/translation_strings.html b/templates/web/default/js/translation_strings.html
index a0cfc02c9..8f834a81c 100644
--- a/templates/web/default/js/translation_strings.html
+++ b/templates/web/default/js/translation_strings.html
@@ -15,6 +15,9 @@
required: '[% loc('Please enter your email') | replace("'", "\\'") %]',
email: '[% loc('Please enter a valid email') | replace("'", "\\'") %]'
},
+ phone: {
+ required: '[% loc('Please enter your phone number') | replace("'", "\\'") %]'
+ },
fms_extra_title: '[% loc('Please enter your title') | replace("'", "\\'") %]',
first_name: '[% loc('Please enter your first name') | replace("'", "\\'") %]',
last_name: '[% loc('Please enter your second name') | replace("'", "\\'") %]',
@@ -36,5 +39,7 @@
ok: '[% loc('OK') | replace("'", "\\'") %]',
map: '[% loc('MAP') | replace("'", "\\'") %]',
+ permalink: '[% loc('Permalink') | replace("'", "\\'") %]',
+
report_problem_heading: '[% loc('Click map to report a problem') | replace("'", "\\'") %]'
};
diff --git a/templates/web/default/report/updates.html b/templates/web/default/report/updates.html
index 83f746d56..9134c34f8 100644
--- a/templates/web/default/report/updates.html
+++ b/templates/web/default/report/updates.html
@@ -23,21 +23,42 @@
[%- ELSE %]
[% tprintf( loc( 'Posted by %s at %s' ), update.name, prettify_dt( update.confirmed ) ) | html -%]
[%- END -%]
+
[%- update_state = '' %]
- [%- IF update.mark_fixed %][% update_state = ", " _ loc( 'marked as fixed' ) %][% END %]
- [%- IF update.mark_open %][% update_state = ", " _ loc( 'reopened' ) %][% END %]
+ [%- IF update.mark_fixed %][% update_state = loc( 'marked as fixed' ) %][% END %]
+ [%- IF update.mark_open %][% update_state = loc( 'reopened' ) %][% END %]
[%- IF !update_state && update.problem_state %]
[%- state = update.meta_problem_state %]
[%- IF c.cobrand.moniker == 'bromley' OR problem.bodies_str == '2482' %]
- [%- SET state = loc('no further action') IF update.problem_state == 'unable to fix' %]
- [%- SET state = loc('third party responsibility') IF update.problem_state == 'not responsible' %]
+ [%- update_state = 'marked as no further action' IF state == 'unable to fix' %]
+ [%- update_state = 'marked as third party responsibility' IF state == 'not responsible' %]
[%- END %]
- [%- IF update.problem_state == 'confirmed' AND global.last_state != '' %]
- [%- update_state = ", " _ loc('reopened') %]
- [%- ELSIF update.problem_state != 'confirmed' %]
- [%- update_state = ", " _ tprintf(loc( 'marked as %s' ), state ) %]
+ [%- END %]
+ [%- IF !update_state && update.problem_state %]
+ [%- IF state == 'confirmed' AND global.last_state != '' %]
+ [%- update_state = loc( 'reopened' ) %]
+ [%- ELSIF state == 'investigating' %]
+ [%- update_state = loc( 'marked as investigating' ) %]
+ [%- ELSIF state == 'planned' %]
+ [%- update_state = loc( 'marked as planned' ) %]
+ [%- ELSIF state == 'in progress' %]
+ [%- update_state = loc( 'marked as in progress' ) %]
+ [%- ELSIF state == 'action scheduled' %]
+ [%- update_state = loc( 'marked as action scheduled' ) %]
+ [%- ELSIF state == 'closed' %]
+ [%- update_state = loc( 'marked as closed' ) %]
+ [%- ELSIF state == 'fixed' %]
+ [%- update_state = loc( 'marked as fixed' ) %]
+ [%- ELSIF state == 'unable to fix' %]
+ [%- update_state = loc( 'marked as unable to fix' ) %]
+ [%- ELSIF state == 'not responsible' %]
+ [%- update_state = loc( "marked as not the council's responsibility" ) %]
+ [%- ELSIF state == 'duplicate' %]
+ [%- update_state = loc( 'marked as a duplicate report' ) %]
+ [%- ELSIF state == 'internal referral' %]
+ [%- update_state = loc( 'marked as an internal referral' ) %]
[%- END %]
[%- END %]
- [%- update_state IF update_state != global.last_state %]
+ [%- ", " _ update_state IF update_state != global.last_state %]
[%- global.last_state = update_state %]
[% END %]
diff --git a/templates/web/fixmindelo/faq/faq-pt-cv.html b/templates/web/fixmindelo/faq/faq-pt-cv.html
new file mode 100644
index 000000000..cae17ebc6
--- /dev/null
+++ b/templates/web/fixmindelo/faq/faq-pt-cv.html
@@ -0,0 +1,121 @@
+[% INCLUDE 'header.html', title => loc('Frequently Asked Questions'), bodyclass => 'twothirdswidthpage' %]
+
+<div class="sticky-sidebar">
+ <aside>
+ <ul class="plain-list">
+ <li><a href="#faq">Frequently Asked Questions</a></li>
+ <li><a href="#practical">Practical Questions</a></li>
+ <li><a href="#organisation">Organisation Questions</a></li>
+ <li><a href="/privacy">Privacy and cookies</a></li>
+ <li><a href="/contact">Contact FixMyStreet</a></li>
+ </ul>
+ </aside>
+</div>
+
+<h1><a name="faq"></a>Frequently Asked Questions</h1>
+ <dl>
+ <dt>O que é FixMyStreet?</dt>
+ <dd>FixMyStreet é um site para ajudar a informar as pessoas, ver ou discutir os problemas locais que encontrarem no seu conselho local, e basta localizá-los o mapa. Foi lançado no início de fevereiro de 2007.</dd>
+
+ <dt>Como faço para entrar em contato com FixMyStreet?</dt>
+ <dd>Aqui está a nossa <a href="/contact">página de contato</a>.</dd>
+
+ <dt>Que tipo de problemas que devo relatar com FixMyStreet?</dt>
+ <dd>FixMyStreet é principalmente para relatar coisas que <strong>estao quebradas, sujas, danificadas ou despejadas, abandonadas e precisam de conserto, limpeza e correção</strong>, tais como:
+
+
+ <ul><li>Veículos abandonados
+ <li>Animais na rua
+ <li>Grafites nas paredes
+ <li>Lixo ou entulho
+ <li>Iluminaçao deficiente, armaduras e candeeiros, quebrados, armarios partidos
+ <li>Postes quebrados, arvores caidas,
+ <li>Buracos na rua, nos passeios, jardins, calçadas
+ <li>Predios abandonados, pardeeiros,
+ <li>Lajes, varandas, em perigo
+ <li>Vazamentos de agua, tubagens
+ <li>Cabos, fios de electricidade em mau estado, caixas e portinholas,
+ <li>Placas de sinalizaçao, letreiros luminosos, de ruas, espaços, em mau estado
+ <li>Sinais de transito
+ </ul>
+ </dd>
+
+ <dt>O que não é para ser relatado no FixMyStreet?</dt>
+ <dd>
+ FixMyStreet não é uma forma de entrar em contato com o seu conselho para todas as questões - por favor use FixMyStreet apenas para problemas como o acima. Nós muitas vezes recebemos relatórios de problemas que não dizem respeito ao Fix – directamente - e de rotas através de serviços de limpeza ou rodovias e assim usando FixMyStreet para outros assuntos pode resultar em um atraso do seu relatório de chegar ao departamento certo. Você vai precisar de contactar o seu município diretamente para problemas, tais como:
+
+ <ul>
+ <li>Comportamento Anti-social
+ <li>Qualquer problema de urgência ou emergência
+ <li>A poluição sonora ou cachorros latindo
+ <li>Fogos e fumaça / poluição cheiro
+ <li>Falta recipientes para lixo ou reciclagem de caixas ou perdeu coleções de lixo
+ <li>Propostas para redutores de velocidade / CCTV / travessias de pedestres / novos layouts de estrada / etc
+ <li>Queixar-se sobre os seus vizinhos
+ <li>Reclamando do conselho
+ <li>Joy passeios, consumo de drogas, crueldade animal, ou outra atividade criminosa
+ </ul>
+ <p>Conselhos costumam ter linhas diretas para esses tipos de questões. Contacte-os directamente atravez do seu site.</p>
+ </dd>
+
+ <dt>Como faço para usar o site?</dt>
+ <dd>Depois de inserir um código postal ou localização, zona ou lugar, é apresentado com um mapa dessa área, zona ou local.Você pode ver os problemas já relatados nesta área, ou denunciar, relatar os problemas do seu propio local, simplesmente clicando no mapa no local do problema.</dd>
+
+ <dt>Como são resolvidos os problemas?</dt>
+ <dd>Eles são relatados ao conselho, do departamento responsavel, por e-mail. O conselho pode, então, resolver o problema da maneira que normalmente faria. O Conselho encaminhara para cada sector ou departamento os relatorios dos problemas a que dizem respeito. Alternativamente, você pode discutir o problema no site com os outros, e, em seguida, juntos pressionar o conselho para corrigi-lo, saber a posiçao e andamento do relatorio ou sendo possivel tentar corrigir os problemas em entre ajuda com pessoas da comunidade.O Conselho dará tambem sempre uma resposta quanto possivel sobre o problema.</dd>
+
+ <dt>O FixMyStreet é grátis?</dt>
+ <dd>O site é livre para usar, sim. FixMyStreet é gerido por uma instituição sem fins lucrativos, mas se aceitam doaçoes livres. É só enviar.
+ </dd>
+
+ <dt>Posso usar FixMyStreet no meu celular?</dt>
+ <dd>
+ <p> O site FixMyStreet deve funcionar em seu telefone móvel, adaptando-se ao tamanho da tela automaticamente. Estamos a preparar uma versão atualizada de um aplicativo para utilizaçao futura.
+ </dd>
+
+ </dl>
+
+ <h2><a name="practical"></a>Perguntas práticas</h2>
+ <dl>
+ <dt>Eu sou de um conselho, onde enviar os relatorios?</dt>
+ <dd>
+ Você pode deixar um relatório de ensaio no site ou entrar em contato conosco para saber o andamento e posiçao dos seus relatorios e seu acompanhamento. Contacte-nos também para atualizar o endereço ou endereços que usamos.
+ </dt>
+ <dt>Eu sou de um conselho, podemos ter FixMyStreet em nosso site?</dt>
+ <dd>
+ Sim, você pode! Nós oferecemos marca, as versões do FixMyStreet para sites locais do conselho hospedado. <a href="http://www.mysociety.org/for-councils/fixmystreet/">Detalhes completos</a>.
+ </dd>
+ <dt>Voces removem conteudo ilegal, descriminatorio ou sem conteudo de fix?</dt>
+ <dd>FixMyStreet não é responsável pelo conteúdo e precisão do material enviado por seus usuários. Reservamo-nos o direito de editar ou remover quaisquer problemas ou atualizações que consideramos ser impróprio ao ser informado por um usuário do site.</dd>
+
+ <dt>Por que não posso diminuir o zoom mais no mapa de referência?</dt>
+ <dd>Queremos manter FixMyStreet focado localmente, de modo restringir a capacidade de mover-se radicalmente entre as áreas. O mapa em seus relatórios permitirá que você veja todos os relatórios que você fez, onde quer que estejam. Se você é do conselho, em seguida, a versão do relatório enviado por email do problema também contém a estrada, zona, lugar, mais próximo e código postal para o pino no mapa.
+ </dd>
+
+ <dt>Porque não é divulgado muito o FixMyStreet, apesar da sua importancia?</dt>
+ <dd>Como uma pequena instituição sem fins lucrativos nóssimplesmente não temos um orçamento de publicidade, e por isso temos sempre confiado na palavra da boca para divulgar o site. Contamos consigo para essa divulgaçao.
+ </dd>
+ </dl>
+
+ <h2><a name="organisation"></a>Organização Perguntas</h2>
+ <dl>
+ <dt>Quem construiu FixMyStreet?</dt>
+ <dd>
+ Este site foi construído por <a href="http://www.mysociety.org/">mySociety</a>, em conjunto com a <a href="http://www.youngfoundation.org.uk/">Young Foundation</a>. mySociety é o projeto de uma instituição sem fins lucrativos que cresceu fora da comunidade de voluntários que construíram sites como <a href="http://www.theyworkforyou.com/">TheyWorkForYou.com</a>. A principal missão da mySociety é a construção de projetos de Internet que dão às pessoas benefícios simples e tangíveis nos aspectos cívicos e comunidade onde vivem ou residem. Nosso primeiro projeto foi <a href="http://www.writetothem.com/">WriteToThem</a>, onde você pode escrever a qualquer um de seus representantes eleitos, de forma gratuita. A fundaçao é chamado UK Citizens Online Democracy e é o número 1076346 caridade. mySociety pode ser contactado pelo e-mail <a href="mailto:hello&#64;mysociety.org">hello@mysociety.org</a>, ou por correio para mySociety, 483 Green Lanes, London, N13&nbsp;4BS, Reino Unido.
+ </dd>
+ <dt>Você precisa de alguma ajuda com o projeto?</dt>
+ <dd>Sim, nós podemos usar a ajuda em todos os tipos de formas, técnicas ou não-técnicas. Por favor, consulte a nossa <a
+href="http://www.mysociety.org/helpus/">página se envolver</a>.
+ </dd>
+
+ <dt>Eu gostaria de um site como este para o meu próprio local / onde está o "código fonte" a este site?</dt>
+ <dd>
+O software por trás deste site é de código aberto e disponível para você, principalmente sob a licença GNU Affero software GPL. Você pode <a href="http://github.com/mysociety/fixmystreet">baixar o código fonte</a> e nos ajudar a desenvolvê-lo. Você está convidado a usá-lo em seus próprios projetos, mas você também deve disponibilizar o código-fonte para tais projetos. <a href="http://www.fiksgatami.no/">Fiksgatami</a> é um exemplo de página de código a ser utilizado numa versão norueguesa deste local.
+ </dd>
+
+ <dt>As pessoas constroem coisas, e não organizações. Quem realmente construiu?</dt>
+ <dd>
+ Matthew Somerville e Francis Irving escreveu o site, Chris Lightfoot escreveu o tileserver e mapa de corte, Richard Papa criou nossos pins, Deborah Kerr mantém as coisas up-to-date e faz suporte ao usuário, Ayesha Garrett projetou nossos cartazes e Tom Steinberg construi tudo. Agradecemos também a Yahoo! para as bibliotecas JavaScript BSD-licenciados, toda a comunidade de software livre (este projeto foi trazido a você por Perl, PostgreSQL, eo número 161,290) e <a href="http://www.bytemark.co.uk/">Bytemark</a> (que gentilmente acolheu todos os nossos servidores). Deixe-nos saber se nos esquecemeos de mencionar alguem. Nos contacte para o efeito.
+ </dd>
+ </dl>
+[% INCLUDE 'footer.html' pagefooter = 'yes' %]
diff --git a/templates/web/fixmystreet/around/_updates.html b/templates/web/fixmystreet/around/_updates.html
index 75327c935..458983e8f 100755
--- a/templates/web/fixmystreet/around/_updates.html
+++ b/templates/web/fixmystreet/around/_updates.html
@@ -1,5 +1,5 @@
<div class="shadow-wrap">
<ul id="key-tools" class="singleton">
- <li><a class="feed" id="key-tool-around-updates" href="[% email_url | html %]">Get updates</a></li>
+ <li><a class="feed" id="key-tool-around-updates" href="[% email_url | html %]">[% loc("Get updates") %]</a></li>
</ul>
</div>
diff --git a/templates/web/fixmystreet/auth/general.html b/templates/web/fixmystreet/auth/general.html
index 7fa2b57fe..b9d02c18b 100644
--- a/templates/web/fixmystreet/auth/general.html
+++ b/templates/web/fixmystreet/auth/general.html
@@ -50,7 +50,7 @@
<h5>[% loc('<strong>No</strong> let me sign in by email') %]</h5>
<div class="general-sidebar-notes">
- <p>Providing a name and password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.</p>
+ <p>[% loc('Providing a name and password is optional, but doing so will allow you to more easily report problems, leave updates and manage your reports.') %]</p>
</div>
<label for="name">[% loc('Name') %]</label>
diff --git a/templates/web/zurich/admin/body-form.html b/templates/web/zurich/admin/body-form.html
index 5ae8eb8a6..4e570a058 100644
--- a/templates/web/zurich/admin/body-form.html
+++ b/templates/web/zurich/admin/body-form.html
@@ -10,7 +10,6 @@
<input type="text" name="endpoint" id="email" value="[% body.endpoint %]" size="50">
</p>
-[% IF admin_type == 'super' %]
<p>
<label for="parent">[% loc('Parent') %]</label>
<select name="parent" id="parent">
@@ -31,7 +30,11 @@
[% END %]
</select>
</p>
-[% END %]
+
+ <p>
+ <label for="deleted">[% loc('Flag as deleted') %]</label>
+ <input type="checkbox" name="deleted" id="deleted" value="1"[% ' checked' IF body.deleted %] />
+ </p>
<input type="hidden" name="send_method" value="Email">
<input type="hidden" name="jurisdiction" id="jurisdiction" value="[% body.jurisdiction %]">
diff --git a/templates/web/zurich/admin/header.html b/templates/web/zurich/admin/header.html
index be146f0e1..281b1de23 100644
--- a/templates/web/zurich/admin/header.html
+++ b/templates/web/zurich/admin/header.html
@@ -14,6 +14,7 @@
%]
<style type="text/css">
.adminhidden { color: #666666; }
+ .admininternal { background-color: #eeeeff; }
.active { background-color: #ffffee; cursor: pointer; }
.error { color: red; }
.overdue { background-color: #ffcccc; }
diff --git a/templates/web/zurich/admin/index-dm.html b/templates/web/zurich/admin/index-dm.html
index 530e72c59..e0b62d5d2 100644
--- a/templates/web/zurich/admin/index-dm.html
+++ b/templates/web/zurich/admin/index-dm.html
@@ -26,6 +26,7 @@
[% IF include_subdiv %]
<th>[% loc('Subdivision/Body') %]</th>
[% END %]
+ <th>[% loc('Photo') %]</th>
<th class='edit'>*</th>
</tr>
<tr class="filter-row">
diff --git a/templates/web/zurich/admin/index-sdm.html b/templates/web/zurich/admin/index-sdm.html
index 76593ead0..707bb2d9d 100644
--- a/templates/web/zurich/admin/index-sdm.html
+++ b/templates/web/zurich/admin/index-sdm.html
@@ -21,6 +21,7 @@
[% FOREACH col IN [ [ 'category', loc('Category') ], [ 'created', loc('Submitted') ], [ 'lastupdate', loc('Updated') ], [ 'state', loc('Status') ] ] %]
<th><a href="[% INCLUDE sort_link choice = col.0 %]#[% hash %]">[% col.1 %] [% INCLUDE sort_arrow choice = col.0 %]</a></th>
[% END %]
+ <th>[% loc('Photo') %]</th>
[% IF NOT no_edit %]
<th class='edit'>*</th>
[% END %]
diff --git a/templates/web/zurich/admin/list_updates.html b/templates/web/zurich/admin/list_updates.html
index c475d839e..80029462b 100644
--- a/templates/web/zurich/admin/list_updates.html
+++ b/templates/web/zurich/admin/list_updates.html
@@ -5,12 +5,14 @@
<tr>
<th>[% loc('ID') %]</th>
<th>[% loc('Created') %]</th>
+ <th>[% loc('User') %]</th>
<th>[% loc('Text') %]</th>
</tr>
[% FOREACH update IN updates -%]
- <tr[% ' class="adminhidden"' IF update.state == 'hidden' || update.problem.state == 'hidden' %]>
- <td>[%- update.id %]</td>
+ <tr class="[% 'adminhidden' IF update.state == 'hidden' || update.problem.state == 'hidden' %] [% 'admininternal' IF update.extra.is_internal_note %]">
+ <td>[% update.id %]</td>
<td>[% PROCESS format_date this_date=update.created %] [% update.created.hms %]</td>
+ <td><a href="mailto:[% update.user.email %]">[% update.user.name || update.user.email %]</a></td>
<td>[% update.text | html %]</td>
</tr>
[% END -%]
diff --git a/templates/web/zurich/admin/problem_row.html b/templates/web/zurich/admin/problem_row.html
index 8b1a30cb0..71b64839a 100644
--- a/templates/web/zurich/admin/problem_row.html
+++ b/templates/web/zurich/admin/problem_row.html
@@ -32,6 +32,12 @@
</td>
[% END %]
+ <td>
+ [% IF problem.photo %]
+ <img class="img" height="60" width="90" src="[% c.cobrand.base_url %]/photo/[% problem.photo %].temp.jpeg" alt="">
+ [% END %]
+ </td>
+
[% IF NOT no_edit %]
<td><a href="[% c.uri_for( 'report_edit', problem.id ) %]">[% loc('Edit') %]</a></td>
[% END %]
diff --git a/templates/web/zurich/admin/report_edit-sdm.html b/templates/web/zurich/admin/report_edit-sdm.html
index fcdb03602..599c60b77 100644
--- a/templates/web/zurich/admin/report_edit-sdm.html
+++ b/templates/web/zurich/admin/report_edit-sdm.html
@@ -22,6 +22,9 @@
<ul class="no-bullets">
<li><a href="[% c.uri_for_email( '/report', problem.id ) %]">[% loc('View report on site' )%]</a></li>
+
+<li><a href="http://webgis.intra.stzh.ch/AV_Online/Direct.asp?Map=UP&Search=Koord&West=[% problem.local_coords.1 %]&Nord=[% problem.local_coords.0 %]&B=300" target="_blank">Standort in AV-Online anzeigen</a></li>
+
<li><span class="mock-label">[% loc('Details:') %]</span> [% problem.detail | html %]
[% IF problem.extra.original_detail %]
<br>[%
@@ -52,8 +55,8 @@
<li><span class="mock-label">[% loc('State:') %]</span> [% states.${problem.state} %]</li>
-<li><label for="internal_notes">[% loc('Internal notes:') %]</label>
-<textarea name='internal_notes' id='internal_notes' cols=60 rows=5>[% problem.extra.internal_notes | html %]</textarea></li>
+<li><label for="new_internal_note">[% loc('New internal note:') %]</label>
+<textarea name='new_internal_note' id='new_internal_note' cols=60 rows=5></textarea></li>
<li><label for="status_update">[% loc('New update:') %]</label>
<textarea name='status_update' id='status_update' cols=60 rows=5></textarea></li>
diff --git a/templates/web/zurich/admin/report_edit.html b/templates/web/zurich/admin/report_edit.html
index 5c5b1f7b1..cd399f23b 100644
--- a/templates/web/zurich/admin/report_edit.html
+++ b/templates/web/zurich/admin/report_edit.html
@@ -1,4 +1,5 @@
[%
+ PROCESS "report/photo-js.html";
PROCESS "maps/zurich.html";
INCLUDE 'admin/header.html'
title = tprintf(loc('Editing problem %d'), problem.id ),
@@ -21,6 +22,8 @@
<ul class="no-bullets">
<li><a href="[% c.uri_for_email( '/report', problem.id ) %]">[% loc('View report on site' )%]</a></li>
+<li><a href="http://webgis.intra.stzh.ch/AV_Online/Direct.asp?Map=UP&Search=Koord&West=[% problem.local_coords.1 %]&Nord=[% problem.local_coords.0 %]&B=300" target="_blank">Standort in AV-Online anzeigen</a></li>
+
[% IF problem.state == 'fixed - council' OR problem.state == 'closed' %]
<li><span class="mock-label">[% loc('Details:') %]</span> [% problem.detail | html %]
[% IF problem.extra.original_detail %]
@@ -62,7 +65,13 @@
[% IF problem.photo %]
-<li><img alt="" src="[% c.cobrand.base_url %]/photo/[% problem.photo %].temp.jpeg">
+<li>
+[% photo = problem.get_photo_params %]
+<div class="update-img">
+ <a href="[% c.cobrand.base_url %]/photo/[% problem.photo %].fulltemp.jpeg" rel="fancy">
+ <img alt="Photo of this report" src="[% c.cobrand.base_url %]/photo/[% problem.photo %].temp.jpeg">
+ <span>zoom</span></a>
+</div>
<br>
<input type="submit" name="rotate_photo" value="[% loc('Rotate Left') %]">
<input type="submit" name="rotate_photo" value="[% loc('Rotate Right') %]">
@@ -72,8 +81,8 @@
[% END %]
</ul>
-<p><label for="internal_notes">[% loc('Internal notes:') %]</label>
-<textarea name='internal_notes' id='internal_notes' cols=60 rows=5>[% problem.extra.internal_notes | html %]</textarea></p>
+<p><label for="new_internal_note">[% loc('New internal note:') %]</label>
+<textarea name='new_internal_note' id='new_internal_note' cols=60 rows=5>[% new_internal_note | html %]</textarea></p>
<p><span class="mock-label">[% loc('State:') %]</span> <select name="state" id="state">
<option value="">--</option>
@@ -94,6 +103,24 @@
[% END %]
</select></p>
+<p id="automatic-reply">
+ <span class="mock-label">automatische Antwort</span>
+ <input type="checkbox" name="send_rejected_email" id="send_rejected_email" value="1" checked="checked" />
+</p>
+
+<script type="text/javascript">
+$(function(){
+ // Show or hide the automatic reply field
+ $('#state').change(function(){
+ if ($(this).val() === 'hidden') {
+ $('#automatic-reply').show();
+ } else {
+ $('#automatic-reply').hide();
+ }
+ }).change();
+});
+</script>
+
[% IF problem.state == 'unconfirmed' OR problem.state == 'confirmed' %]
<ul class="no-bullets">
@@ -127,7 +154,7 @@
<select name="body_external" id="body_external">
<option value="">--</option>
[% FOR body IN bodies %]
- [% NEXT IF body.parent OR body.bodies %]
+ [% NEXT IF body.parent OR body.bodies OR body.deleted %]
<option value="[% body.id %]"[% IF body.id == problem.bodies_str %] selected[% END %]>[% body.name %]</option>
[% END %]
</select>
diff --git a/templates/web/zurich/admin/reports.html b/templates/web/zurich/admin/reports.html
index b0bc733c4..68f98c44a 100644
--- a/templates/web/zurich/admin/reports.html
+++ b/templates/web/zurich/admin/reports.html
@@ -13,6 +13,7 @@
[% FOREACH col IN [ [ 'category', loc('Category') ], [ 'created', loc('Submitted') ], [ 'lastupdate', loc('Updated') ], [ 'state', loc('Status') ] ] %]
<th><a href="[% INCLUDE sort_link choice = col.0 %]">[% col.1 %] [% INCLUDE sort_arrow choice = col.0 %]</a></th>
[% END %]
+ <th>[% loc('Photo') %]</th>
<th class='edit'>*</th>
</tr>
[% INCLUDE 'admin/problem_row.html' %]
diff --git a/templates/web/zurich/js/validation_rules.html b/templates/web/zurich/js/validation_rules.html
new file mode 100644
index 000000000..d98bc1118
--- /dev/null
+++ b/templates/web/zurich/js/validation_rules.html
@@ -0,0 +1,8 @@
+ validation_rules = {
+ title: { required: true },
+ detail: { required: true },
+ email: { required: true },
+ update: { required: true },
+ phone: { required: true },
+ rznvy: { required: true }
+ };
diff --git a/templates/web/zurich/report/new/fill_in_details_form.html b/templates/web/zurich/report/new/fill_in_details_form.html
index 1cecf036d..076536601 100644
--- a/templates/web/zurich/report/new/fill_in_details_form.html
+++ b/templates/web/zurich/report/new/fill_in_details_form.html
@@ -103,7 +103,10 @@
[% END %]
<input type="text" value="[% report.name | html %]" name="name" id="form_name" placeholder="[% loc('Your name') %]">
- <label for="form_phone">[% loc('Phone number (optional)') %]</label>
+ <label for="form_phone">[% loc('Phone number') %]</label>
+ [% IF field_errors.phone %]
+ <p class='form-error'>[% field_errors.phone %]</p>
+ [% END %]
<input type="text" value="[% report.user.phone | html %]" name="phone" id="form_phone" placeholder="[% loc('Your phone number') %]">
<div class="form-txt-submit-box">
diff --git a/templates/web/zurich/report/photo-js.html b/templates/web/zurich/report/photo-js.html
new file mode 100644
index 000000000..05588d085
--- /dev/null
+++ b/templates/web/zurich/report/photo-js.html
@@ -0,0 +1,6 @@
+[% extra_css = BLOCK %]
+ <link rel="stylesheet" href="[% version('/js/fancybox/jquery.fancybox-1.3.4.css') %]">
+[% END %]
+[% extra_js = BLOCK %]
+ <script src="[% version('/js/fancybox/jquery.fancybox-1.3.4.pack.js') %]" charset="utf-8"></script>
+[% END %]