diff options
author | Struan Donald <struan@exo.org.uk> | 2011-09-08 10:05:06 +0100 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2011-09-08 10:05:06 +0100 |
commit | b1bd589b2fc8075cab39679d23db2b7d285f8345 (patch) | |
tree | 933ce962203f846d6d53b53851b36949f921a869 | |
parent | ba9172907f5e41840cf5324cc335277bbd031ed2 (diff) | |
parent | 3423cfe5e16e9130a25238cd76de76ec2bf07c67 (diff) |
Merge branch 'master' of ssh://git.mysociety.org/data/git/public/fixmystreet into open311-consumer
Conflicts:
web/css/core.css
web/js/fixmystreet.js
51 files changed, 720 insertions, 1103 deletions
diff --git a/.gitignore b/.gitignore index ea28bc4b2..c8eebb0b2 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,8 @@ inc/ .sass-cache _Inline/ lib -tags
\ No newline at end of file +tags +/web/cobrands/fiksgatami/css.css +/web/cobrands/southampton/css.css +/web/css/core.css +/web/css/main.css diff --git a/bin/check-for-zombies b/bin/check-for-zombies new file mode 100755 index 000000000..57f6793f0 --- /dev/null +++ b/bin/check-for-zombies @@ -0,0 +1,6 @@ +#!/bin/bash +# +# Kill parentless processes still hanging around + +pkill -HUP -P 1 -u $1 -f "perl.*fixmystreet_app" + diff --git a/bin/make_css b/bin/make_css index 7e01da267..59acdb984 100755 --- a/bin/make_css +++ b/bin/make_css @@ -12,7 +12,4 @@ DIRECTORY=$(cd `dirname $0` && pwd) -for file in `find $DIRECTORY/../ -name "*.scss" ! -name "_*"`; do - sass --style expanded $file ${file/scss/css} -done - +sass --scss --update --style compressed $DIRECTORY/.. diff --git a/conf/crontab.ugly b/conf/crontab.ugly index d1779ff73..415176779 100644 --- a/conf/crontab.ugly +++ b/conf/crontab.ugly @@ -33,5 +33,5 @@ MAILTO=cron-!!(*= $site *)!!@mysociety.org # Once a day on all servers 39 2 * * * !!(*= $user *)!! /data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/problems-filed-graph 43 2 * * * !!(*= $user *)!! /data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/problem-creation-graph - +00 8 * * * !!(*= $user *)!! /data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/check-for-zombies !!(*= $user *)!! diff --git a/conf/httpd.conf-example b/conf/httpd.conf-example index 378aa88a5..8ed6a9c81 100644 --- a/conf/httpd.conf-example +++ b/conf/httpd.conf-example @@ -16,6 +16,7 @@ # # on production servers these are run under fastcgi # Options +ExecCGI # AddHandler cgi-script .cgi +# AllowOverride None # </Directory> # # <Directory /home/yourname/fixmystreet/web-admin> @@ -60,6 +61,14 @@ ProxyPassReverse /mapit/ http://mapit.mysociety.org/ RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f RewriteRule /(.+) /$1 [L] +# Performance things +ExpiresActive On +ExpiresByType text/css "access plus 10 years" +ExpiresByType application/javascript "access plus 10 years" +<Location /js/> + AddOutputFilter DEFLATE js +</Location> + # Don't want jslib being passed to Catalyst RewriteRule ^/jslib(.*) /jslib$1 [L,PT] diff --git a/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po b/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po index ae110af52..a08db82c9 100644 --- a/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po +++ b/locale/nb_NO.UTF-8/LC_MESSAGES/FixMyStreet.po @@ -10,7 +10,7 @@ msgstr "" "Project-Id-Version: FixMyStreet\n" "Report-Msgid-Bugs-To: matthew@mysociety.org\n" "POT-Creation-Date: 2011-08-18 11:07+0100\n" -"PO-Revision-Date: 2011-08-18 10:14MET\n" +"PO-Revision-Date: 2011-08-29 10:26MET\n" "Last-Translator: Petter Reinholdtsen <pere@hungry.com>\n" "Language-Team: Norwegian Bokmål <i18n-nb@lister.ping.uio.no>\n" "MIME-Version: 1.0\n" @@ -119,9 +119,8 @@ msgid "%s, within %s ward" msgstr "%s, innefor bydel %s" #: templates/web/default/admin/stats.html:5 -#, fuzzy msgid "%sreports between %s and %s" -msgstr "%s, rapportert av %s %s" +msgstr "%srapporter mellom %s og %s" #: templates/web/default/email_sent.html:28 msgid "(Don't worry — %s)" @@ -129,7 +128,7 @@ msgstr "(Ingen grunn til bekymring — %s)" #: templates/web/default/admin/report_blocks.html:11 msgid "(Email in abuse table)" -msgstr "" +msgstr "(Epost i misbrukstabellen)" #: templates/web/default/alert/list.html:53 msgid "(a default distance which covers roughly 200,000 people)" @@ -208,7 +207,6 @@ msgstr "" "Vi er glad for å høre at ditt problem er blitt fikset.</p>" #: templates/web/default/questionnaire/completed.html:15 -#, fuzzy msgid "" "<p style=\"font-size:150%%\">We’re sorry to hear that. We have two " "suggestions: why not try\n" @@ -219,12 +217,9 @@ msgid "" "pledge</a>?\n" "</p>" msgstr "" -"<p style=\"font-size:150%%\">Det gjør oss triste å høre dette. Vi har to " -"forslag: hva med å forsøke\n" -"<a href=\"%s\">å skrive direkte til dine representanter</a>, eller hvis det " -"er et problem som kan fikses\n" -"av naboer som jobber sammen, hva med å <a href=\"http://www.pledgebank.com/" -"new\">publisere en utfordring om å bidra</a>?</p>\n" +"<p style=\"font-size:150%%\">Det var trist å høre dette. Vi har to forslag: hva med å forsøke\n" +"<a href=\"%s\">å skrive direkte til dine representanter</a>, eller hvis det er et problem som kan fikses\n" +"av folk i nabolaget som jobber sammen, hva med å <a href=\"http://www.pledgebank.com/new\">publisere en utfordring om å bidra</a>?</p>" #: templates/web/default/questionnaire/index.html:37 msgid "" @@ -338,7 +333,7 @@ msgstr "Send meg varsel ved fremtidige oppdateringer" #: templates/web/default/admin/stats.html:5 msgid "All" -msgstr "" +msgstr "Alle" #: templates/web/default/admin/council_list.html:44 msgid "All confirmed" @@ -368,10 +363,8 @@ msgstr "" #: templates/web/default/report/new/councils_text_all.html:12 #: templates/web/default/report/new/fill_in_details_form.html:11 #: templates/web/default/report/new/fill_in_details_form.html:13 -msgid "" -"All the information you provide here will be sent to <strong>%s</strong>." -msgstr "" -"All informasjonen du har lagt inn her vil bli sendt til <strong>%s</strong>." +msgid "All the information you provide here will be sent to <strong>%s</strong>." +msgstr "All informasjonen du har lagt inn her vil bli sendt til <strong>%s</strong>." #: templates/web/emptyhomes/report/new/all_councils_text.html:2 #: templates/web/emptyhomes/report/new/all_councils_text.html:4 @@ -381,7 +374,7 @@ msgid "" "name if you give us permission." msgstr "" "All informasjonen du legger inn her vil bli sendt til <strong>%s</strong>.\n" -"På dette nettestedet vil vi vise tema og detaljer om problemet, inkludert " +"På dette nettestedet vil vi vise emne og detaljer om problemet, inkludert " "ditt navn\n" "dersom du gir oss lov." @@ -402,28 +395,26 @@ msgstr "Anonym:" #: templates/web/default/footer.html:29 msgid "Are you a developer? Would you like to contribute to FixMyStreet?" -msgstr "" +msgstr "Er du en utvikler? Kunne du tenke deg å bidra til FiksGataMi?" #: templates/web/default/footer.html:26 -msgid "" -"Are you from a council? Would you like better integration with FixMyStreet?" -msgstr "" +msgid "Are you from a council? Would you like better integration with FixMyStreet?" +msgstr "Er du fra det offentlige? Kunne du tenke deg bedre integrasjon med FiksGataMi?" #: templates/web/default/open311/index.html:17 msgid "" "At most %d requests are returned in each query. The returned requests are " "ordered by requested_datetime, so to get all requests, do several searches " "with rolling start_date and end_date." -msgstr "" +msgstr "På det meste blir %d forespørsler returnert i hver spørring. De returnerte forespørslene blir sortert på requested_datetime, så en må gjøre flere søk med rullerende start_date og end_date for å få tak i alle forespørslene." #: templates/web/default/open311/index.html:9 msgid "At the moment only searching for and looking at reports work." -msgstr "" +msgstr "For øyeblikket er det kun søk etter og å se på rapporter som fungerer." #: templates/web/default/admin/report_blocks.html:11 -#, fuzzy msgid "Ban email address" -msgstr "Din e-postadresse:" +msgstr "Bannlys epostadresse" #: templates/web/default/footer.html:16 msgid "Built by <a href=\"http://www.mysociety.org/\">mySociety</a>" @@ -545,7 +536,7 @@ msgstr "Kontakt prosjektgruppen" #: perllib/FixMyStreet/App/Controller/Admin.pm:965 #: perllib/FixMyStreet/App/Controller/Admin.pm:993 msgid "Could not find user" -msgstr "" +msgstr "Kunne ikke finne bruker" #: templates/web/default/admin/list_flagged.html:13 #: templates/web/default/admin/search_reports.html:16 @@ -567,9 +558,8 @@ msgid "Councils" msgstr "Administrasjoner" #: templates/web/default/admin/stats.html:10 -#, fuzzy msgid "Count" -msgstr "Kontakt" +msgstr "Antall" #: templates/web/default/email_sent.html:1 msgid "Create a report" @@ -591,12 +581,10 @@ msgid "Created:" msgstr "Opprettet:" #: templates/web/default/admin/stats.html:9 -#, fuzzy msgid "Current state" -msgstr "Ny tilstand" +msgstr "Gjeldende tilstand" #: templates/web/default/admin/council_list.html:40 -#, fuzzy msgid "Currently has 1+ deleted" msgstr "For tiden har 1+ slettet" @@ -654,11 +642,11 @@ msgstr "E-post" #: perllib/FixMyStreet/App/Controller/Admin.pm:941 msgid "Email added to abuse list" -msgstr "" +msgstr "Epost lagt til misbruksliste" #: perllib/FixMyStreet/App/Controller/Admin.pm:938 msgid "Email already in abuse list" -msgstr "" +msgstr "Epost allerede i misbrukslisten" #: templates/web/default/around/display_location.html:84 msgid "Email me new local problems" @@ -682,7 +670,6 @@ msgid "Empty flat or maisonette" msgstr "Tom leilighet" #: perllib/FixMyStreet/App/Controller/Report/New.pm:491 -#, fuzzy msgid "Empty house or bungalow" msgstr "Tomt hus eller bungalow" @@ -704,16 +691,15 @@ msgstr "Tom offentlig bygning - skole, sykehos, etc." #: templates/web/default/admin/stats.html:47 msgid "End Year:" -msgstr "" +msgstr "Sluttår:" #: templates/web/default/admin/stats.html:49 -#, fuzzy msgid "End day:" -msgstr "%d dag" +msgstr "Slutt-dag:" #: templates/web/default/admin/stats.html:48 msgid "End month:" -msgstr "" +msgstr "Sluttmåned:" #: templates/web/default/around/around_index.html:10 #: templates/web/default/around/around_index.html:13 @@ -752,7 +738,7 @@ msgstr "Eksempel-postnummer %s" #: templates/web/default/open311/index.html:27 msgid "Examples:" -msgstr "" +msgstr "Eksempler:" #: templates/web/default/contact/submit.html:15 msgid "" @@ -764,7 +750,7 @@ msgstr "" #: templates/web/default/footer.html:27 msgid "Find out about FixMyStreet for councils" -msgstr "" +msgstr "Finn ut om FiksGataMi for det offentlige" #: templates/web/default/questionnaire/index.html:81 msgid "First time" @@ -832,11 +818,11 @@ msgstr "Løst:" #: templates/web/default/admin/report_blocks.html:16 msgid "Flag user" -msgstr "" +msgstr "Flag bruker" #: templates/web/default/admin/report_edit.html:38 msgid "Flagged:" -msgstr "" +msgstr "Flagget:" #: templates/web/default/reports/council.html:23 msgid "Follow a ward link to view only reports within that ward." @@ -859,7 +845,7 @@ msgstr "Mer informasjon om vårt arbeid med tomme hjem" #: templates/web/default/open311/index.html:69 msgid "GeoRSS on Google Maps" -msgstr "" +msgstr "GeoRSS på Google Maps" #: templates/web/default/alert/list.html:112 msgid "Give me an RSS feed" @@ -882,8 +868,7 @@ msgstr "Graf over problemoppretting fordelt på status over tid" #: templates/web/default/reports/index.html:5 #: templates/web/emptyhomes/reports/index.html:5 msgid "Greyed-out lines are councils that no longer exist." -msgstr "" -"Linjer med grå bakgrunn er administrasjoner som ikke lenger eksisterer." +msgstr "Linjer med grå bakgrunn er administrasjoner som ikke lenger eksisterer." #: templates/web/default/questionnaire/index.html:63 msgid "Has this problem been fixed?" @@ -905,8 +890,7 @@ msgstr "Hjelp" #: templates/web/default/alert/list.html:39 msgid "Here are the types of local problem alerts for ‘%s’." -msgstr "" -"Her er de forskjellige typene lokale problemvarsler for ‘%s’." +msgstr "Her er de forskjellige typene lokale problemvarsler for ‘%s’." #: templates/web/default/admin/report_edit.html:22 #: templates/web/default/admin/update_edit.html:19 @@ -938,13 +922,10 @@ msgid "I'm afraid we couldn't locate your problem in the database.\n" msgstr "Jeg er redd vi ikke klarte å finne ditt problem i databasen.\n" #: perllib/FixMyStreet/App/Controller/Tokens.pm:43 -#, fuzzy msgid "" "I'm afraid we couldn't validate that token, as the report was made too long " "ago." -msgstr "" -"Jeg er redd vi ikke kunne verifisere den referansen. Hvis du kopierte " -"webadressen fra en e-post, sjekk at du har kopiert den korrekt.\n" +msgstr "Jeg er redd vi ikke kunne verifisere den referansen, da det er for lenge siden rapporten ble laget." #: perllib/FixMyStreet/App/Controller/Tokens.pm:232 msgid "" @@ -966,12 +947,11 @@ msgid "" "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." msgstr "" -"Hvis du sender inn et problem hit, så vil tema og detaljer for problemet " +"Hvis du sender inn et problem hit, så vil emne og detaljer for problemet " "være offentlig, men problemet vil <strong>ikke</strong> bli rapportert til " "administrasjonen." #: templates/web/emptyhomes/report/new/no_councils_text.html:9 -#, fuzzy msgid "" "If you submit a report here it will be left on the site, but not reported to " "the council – please still leave your report, so that we can show to " @@ -1017,37 +997,35 @@ msgid "" "specification are returned: agency_sent_datetime, title (also returned as " "part of description), interface_used, comment_count, requestor_name (only " "present if requestor allowed the name to be shown on this site)." -msgstr "" +msgstr "I tillegg er følgende attributter som ikke er del av Open311 v2-spesifikasjonen returnert: agency_sent_datetime, title (også returnert som del av description), interface_used, comment_count, requestor_name (kun tilstede hvis innsender tillot at navnet kunne vises på dette nettstedet)." #: templates/web/default/around/display_location.html:61 msgid "Include stale reports" msgstr "Inkludert utdaterte problemer" #: templates/web/default/admin/stats.html:53 -#, fuzzy msgid "Include unconfirmed reports" -msgstr "Inkludert utdaterte problemer" +msgstr "Inkluder ubekreftede problemer" #: perllib/FixMyStreet/App/Controller/Open311.pm:355 msgid "Incorrect has_photo value \"%s\"" -msgstr "" +msgstr "Feil has_photo-verdi \"%s\"" #: perllib/FixMyStreet/App/Controller/Open311.pm:340 msgid "Invalid agency_responsible value %s" -msgstr "" +msgstr "Ugyldig agency_responsible-verdi %s" #: perllib/FixMyStreet/App/Controller/Admin.pm:785 -#, fuzzy msgid "Invalid end date" -msgstr "Bidra med en oppdatering" +msgstr "Ugyldig slutt-dato" #: perllib/FixMyStreet/App/Controller/Open311.pm:423 msgid "Invalid format %s specified." -msgstr "" +msgstr "Ugyldig format %s oppgitt." #: perllib/FixMyStreet/App/Controller/Admin.pm:775 msgid "Invalid start date" -msgstr "" +msgstr "Ugyldig startdato" #: templates/web/emptyhomes/tokens/confirm_problem.html:12 #: templates/web/emptyhomes/tokens/confirm_problem.html:14 @@ -1082,7 +1060,7 @@ msgstr "Siste oppdatering:" #: perllib/FixMyStreet/App/Controller/Admin.pm:844 msgid "List Flagged" -msgstr "" +msgstr "List flagget" #: templates/web/default/admin/council_contacts.html:11 msgid "List all reported problems" @@ -1090,7 +1068,7 @@ msgstr "List alle rapporterte problemer" #: templates/web/default/report/new/fill_in_details_form.html:68 msgid "Loading..." -msgstr "" +msgstr "Laster..." #: templates/web/default/alert/choose.html:1 #: templates/web/default/alert/choose.html:3 @@ -1154,7 +1132,7 @@ msgstr "Melding:" #: perllib/FixMyStreet/App/Controller/Open311.pm:431 msgid "Missing jurisdiction_id" -msgstr "" +msgstr "Mangler jurisdiction_id" #: templates/web/default/report/display.html:38 msgid "More problems nearby" @@ -1248,10 +1226,8 @@ msgid "New problems within {{NAME}}'s boundary on FixMyStreet" msgstr "Nye rapporter innenfor grensen til {{NAME}} på FiksGataMi" #: db/alert_types_eha.pl:23 -msgid "" -"New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com" -msgstr "" -"Nye rapporter for {{COUNCIL}} innenfor {{WARD}} bydel på reportemptyhomes.com" +msgid "New reports for {{COUNCIL}} within {{WARD}} ward on reportemptyhomes.com" +msgstr "Nye rapporter for {{COUNCIL}} innenfor {{WARD}} bydel på reportemptyhomes.com" #: db/alert_types_eha.pl:5 msgid "New reports on reportemptyhomes.com" @@ -1301,14 +1277,12 @@ msgid "No edits have yet been made." msgstr "Ingenting endringer har blitt gjort." #: templates/web/default/admin/list_flagged.html:26 -#, fuzzy msgid "No flagged problems found" -msgstr "Ingen problemer ble funnet." +msgstr "Ingen flaggede problemer ble funnet" #: templates/web/default/admin/list_flagged.html:47 -#, fuzzy msgid "No flagged users found" -msgstr "Ingen problemer ble funnet." +msgstr "Ingen flaggede brukere ble funnet" #: templates/web/default/admin/council_list.html:38 msgid "No info at all" @@ -1345,7 +1319,7 @@ msgid "" "Note that when including unconfirmed reports we use the date the report was " "created which may not be in the same month the report was confirmed so the " "numbers may jump about a little" -msgstr "" +msgstr "Merk at når vi tar med ubekreftede rapporter så brukes datoen rapporten var opprettet, hvilket ikke trenger være den samme måneden som rapporten var bekreftet, så tallene kan hoppe litt opp og ned." #: templates/web/default/admin/council_contacts.html:73 #: templates/web/default/admin/council_edit.html:31 @@ -1353,9 +1327,8 @@ msgid "Note:" msgstr "Merk:" #: templates/web/default/open311/index.html:6 -#, fuzzy msgid "Note: <strong>%s</strong>" -msgstr "<strong>%d</strong> aktive problemer" +msgstr "Note: <strong>%d</strong>" #: templates/web/default/report/new/fill_in_details_form.html:127 msgid "Now to submit your report… do you have a FixMyStreet password?" @@ -1363,8 +1336,7 @@ msgstr "På tide å sende din rapport… har du et FiksGataMi-passord?" #: templates/web/default/report/display.html:133 msgid "Now to submit your update… do you have a FixMyStreet password?" -msgstr "" -"På tide å registrere din oppdatering… har du et FiksGataMi-passord?" +msgstr "På tide å registrere din oppdatering… har du et FiksGataMi-passord?" #: templates/web/default/report/display.html:33 #: templates/web/default/report/updates.html:19 @@ -1417,15 +1389,15 @@ msgstr "Åpne rapporter" #: templates/web/default/open311/index.html:3 msgid "Open311 API for the mySociety FixMyStreet server" -msgstr "" +msgstr "Open311-API for mySocietys FiksGataMi-tjener" #: templates/web/default/open311/index.html:13 msgid "Open311 initiative web page" -msgstr "" +msgstr "Open311-initiativets nettside" #: templates/web/default/open311/index.html:14 msgid "Open311 specification" -msgstr "" +msgstr "Open311-spesifikasjon" #: templates/web/default/alert/list.html:87 msgid "Or problems reported to:" @@ -1454,7 +1426,7 @@ msgstr "Annet" msgid "" "Our code is open source and <a href=\"http://github.com/mysociety/fixmystreet" "\">available on GitHub</a>." -msgstr "" +msgstr "Vår kildekode er fri programvare og <a href=\"http://github.com/mysociety/fixmystreet\">tilgjengelig på GitHub</a>." #: templates/web/default/errors/page_error_404_not_found.html:1 #: templates/web/default/errors/page_error_404_not_found.html:3 @@ -1550,7 +1522,7 @@ msgstr "Skriv inn et passord" #: perllib/FixMyStreet/App/Controller/Contact.pm:97 #: perllib/FixMyStreet/DB/Result/Problem.pm:183 msgid "Please enter a subject" -msgstr "Vennligst legg inn et tema" +msgstr "Vennligst legg inn et emne" #: perllib/FixMyStreet/DB/Result/User.pm:94 msgid "Please enter a valid email" @@ -1659,9 +1631,7 @@ msgstr "Vennligst merk deg:" #: perllib/FixMyStreet/App/Controller/Questionnaire.pm:238 msgid "Please provide some explanation as to why you're reopening this report" -msgstr "" -"Vennligst bidra med en forklaring for hvorfor du åpner denne rapporten på " -"nytt" +msgstr "Vennligst bidra med en forklaring for hvorfor du gjenåpner denne problemrapporten" #: perllib/FixMyStreet/App/Controller/Questionnaire.pm:245 msgid "Please provide some text as well as a photo" @@ -1669,19 +1639,16 @@ msgstr "Vennligst bidra med litt tekst i tilegg til et bilde" #: perllib/FixMyStreet/App/Controller/Questionnaire.pm:115 #: perllib/FixMyStreet/App/Controller/Questionnaire.pm:231 -msgid "" -"Please say whether you've ever reported a problem to your council before" -msgstr "" -"Gi oss informasjon om du har rapportert et problem til din administrasjon " -"tidligere" +msgid "Please say whether you've ever reported a problem to your council before" +msgstr "Vennligst opplys om du har rapportert et problem til din administrasjon tidligere" #: perllib/FixMyStreet/App/Controller/Alert.pm:82 msgid "Please select the feed you want" -msgstr "Velg den feed du ønsker" +msgstr "Velg den kilden du ønsker" #: perllib/FixMyStreet/App/Controller/Alert.pm:120 msgid "Please select the type of alert you want" -msgstr "Velg vilken type varsel du ønsker" +msgstr "Vennligst velg hvilken type varsel du ønsker" #: perllib/FixMyStreet/App/Controller/Questionnaire.pm:227 msgid "Please state whether or not the problem has been fixed" @@ -1689,7 +1656,7 @@ msgstr "Vennligs oppgi om dette problemet er blitt fikset eller ikke" #: templates/web/default/questionnaire/index.html:52 msgid "Please take a look at the updates that have been left." -msgstr "Vær sa snill å ta en titt på oppdateringene som har blitt lagt inn." +msgstr "Vennligst se over oppdateringene som har blitt lagt inn." #: perllib/FixMyStreet/App/Controller/Report/New.pm:774 msgid "Please upload a JPEG image only" @@ -1732,7 +1699,7 @@ msgstr "Problem %s sendt til administrasjon %s" #: templates/web/default/admin/index.html:28 msgid "Problem breakdown by state" -msgstr "Tilstandsfordeling for problemer" +msgstr "Tilstandsfordeling av problemer" #: perllib/FixMyStreet/App/Controller/Admin.pm:703 msgid "Problem marked as open." @@ -1743,9 +1710,8 @@ msgid "Problem state change based on survey results" msgstr "Problemtilstandsendring basert på spørreundersøkelsesresultater" #: templates/web/default/admin/list_flagged.html:5 -#, fuzzy msgid "Problems" -msgstr "Problem" +msgstr "Problemer" #: templates/web/default/around/display_location.html:80 msgid "Problems in this area" @@ -1781,7 +1747,7 @@ msgstr "Problemer innenfor grensene av:" #: db/alert_types_eha.pl:8 msgid "Properties recently reported as put back to use on reportemptyhomes.com" -msgstr "" +msgstr "Eiendommer nylig rapportert som gått tilbake i bruk på reportemptyhomes.com" #: perllib/FixMyStreet/App/Controller/Report/New.pm:498 msgid "Property type:" @@ -1884,12 +1850,12 @@ msgstr "RSS-strøm med oppdateringer for dette problemet" #: templates/web/default/alert/updates.html:9 #: templates/web/default/report/display.html:45 msgid "Receive email when updates are left on this problem." -msgstr "Motta e-post når det er uppdateringer på dette problemet" +msgstr "Motta e-post når det er oppdateringer på dette problemet" #: templates/web/default/around/display_location.html:0 #: templates/web/default/around/display_location.html:34 msgid "Recent local problems, FixMyStreet" -msgstr "Nylig lokalt problem, FiksGataMi." +msgstr "Nylige lokale problemer, FiksGataMi." #: templates/web/default/reports/council.html:87 #: templates/web/default/reports/council.html:88 @@ -1917,7 +1883,7 @@ msgstr "" #: templates/web/default/admin/report_blocks.html:16 msgid "Remove flag" -msgstr "" +msgstr "Fjern flagg" #: templates/web/default/admin/report_edit.html:44 #: templates/web/default/admin/update_edit.html:33 @@ -2020,13 +1986,12 @@ msgid "Save changes" msgstr "Lagre endringer" #: perllib/FixMyStreet/App/Controller/Admin.pm:843 -#, fuzzy msgid "Search Abuse" -msgstr "Søk:" +msgstr "Søk etter misbruk" #: templates/web/default/admin/search_abuse.html:1 msgid "Search Abuse Table" -msgstr "" +msgstr "Søk i misbrukstabell" #: perllib/FixMyStreet/App/Controller/Admin.pm:840 #: templates/web/default/admin/list_flagged.html:1 @@ -2040,12 +2005,11 @@ msgid "Search:" msgstr "Søk:" #: templates/web/default/alert/list.html:41 -#, fuzzy msgid "" "Select which type of alert you'd like and click the button for an RSS feed, " "or enter your email address to subscribe to an email alert." msgstr "" -"Velg hvilken type varsel du ønsker og klikk på knappen for en RSS-strøm, " +"Velg hvilken type varsel du ønsker og klikk på knappen for en RSS-kilde, " "eller skriv inn din e-postadresse for å abonnere på et e-postvarsel." #: perllib/FixMyStreet/DB/Result/Problem.pm:398 @@ -2062,7 +2026,7 @@ msgstr "Tjeneste:" #: templates/web/emptyhomes/static/about.html:21 msgid "Shelter Cymru" -msgstr "" +msgstr "Shelter Cymru" #: templates/web/emptyhomes/static/about.html:23 msgid "" @@ -2123,15 +2087,14 @@ msgstr "Noen bilder av nylig meldte problemer" #: perllib/FixMyStreet/App/View/Email.pm:32 #: perllib/FixMyStreet/App/View/Web.pm:44 msgid "Some text to localize" -msgstr "" +msgstr "Noe tekst å oversette" #: templates/web/default/admin/council_list.html:42 msgid "Some unconfirmeds" msgstr "Noen ubekreftede" #: perllib/FixMyStreet/Cobrand/Default.pm:516 -msgid "" -"Sorry, that appears to be a Crown dependency postcode, which we don't cover." +msgid "Sorry, that appears to be a Crown dependency postcode, which we don't cover." msgstr "" "Beklager det ser ut til å være et \"Crown dependency\"-postnummer, som vi " "ikke dekker." @@ -2157,18 +2120,16 @@ msgid "Source code" msgstr "Kildekode" #: templates/web/default/admin/stats.html:41 -#, fuzzy msgid "Start Year:" -msgstr "Tilstand:" +msgstr "Startår:" #: templates/web/default/admin/stats.html:43 -#, fuzzy msgid "Start day:" -msgstr "Tilstand:" +msgstr "Startdag:" #: templates/web/default/admin/stats.html:42 msgid "Start month:" -msgstr "" +msgstr "Startmåned:" #: templates/web/default/admin/list_flagged.html:18 #: templates/web/default/admin/list_updates.html:6 @@ -2183,15 +2144,14 @@ msgstr "Tilstand:" #: perllib/FixMyStreet/App/Controller/Admin.pm:845 #: templates/web/default/admin/stats.html:1 -#, fuzzy msgid "Stats" -msgstr "Tilstand" +msgstr "Statistikk" #: templates/web/default/admin/report_edit.html:13 #: templates/web/default/contact/index.html:83 #: templates/web/default/report/new/fill_in_details_form.html:52 msgid "Subject:" -msgstr "Tema:" +msgstr "Emne:" #: templates/web/default/questionnaire/creator_fixed.html:19 #: templates/web/default/report/new/fill_in_details_form.html:110 @@ -2207,7 +2167,7 @@ msgstr "Send inn endringer" #: templates/web/default/questionnaire/index.html:114 msgid "Submit questionnaire" -msgstr "Lever spørreskjema" +msgstr "Send inn spørreskjema" #: templates/web/default/alert/updates.html:17 #: templates/web/default/report/display.html:50 @@ -2290,7 +2250,7 @@ msgstr "" msgid "" "Thank you for using ReportEmptyHomes.com. Your action is already helping to " "resolve the UK’s empty homes crisis." -msgstr "" +msgstr "Takk for at du bruker ReportEmptyHomes.com. Ditt bidrag bidrar allerede for å løse UKs tomme hjem-krise." #: templates/web/default/around/around_index.html:44 msgid "" @@ -2303,20 +2263,18 @@ msgstr "" #: templates/web/default/contact/submit.html:8 msgid "Thanks for your feedback. We'll get back to you as soon as we can!" -msgstr "" -"Takk for ditt innspill. Vi gir deg en tilbakemelding så raskt som mulig" +msgstr "Takk for ditt innspill. Vi gir deg en tilbakemelding så raskt vi kan" #: templates/web/default/questionnaire/creator_fixed.html:9 msgid "" "Thanks, glad to hear it's been fixed! Could we just ask if you have ever " "reported a problem to a council before?" msgstr "" -"Takk, glad for å høre at problemet er fikset! Vi vil gjerne spørre deg om " +"Takk, glad for å høre at problemet er fikset! Vi vil gjerne spørre deg om " "du har rapportert et problem til en administrasjon tidligere?" #: perllib/FixMyStreet/App/Controller/Report/New.pm:783 -msgid "" -"That image doesn't appear to have uploaded correctly (%s), please try again." +msgid "That image doesn't appear to have uploaded correctly (%s), please try again." msgstr "Bildet ser ikke ut til å blitt lastet opp riktig (%s), prøv på nytt." #: templates/web/default/alert/index.html:12 @@ -2327,9 +2285,10 @@ msgstr "" "Det stedet dekkes ikke av noen administrasjon, kanskje det er til havs - " "vennligst forsøk et mer spesifikt sted." +# Should this be "Norge" or "Storbritannia" ? #: perllib/FixMyStreet/App/Controller/Location.pm:107 msgid "That location does not appear to be in Britain; please try again." -msgstr "Det stedet virker ikke å være i storbritannia. Vennligst prøv igjen." +msgstr "Det stedet virker ikke å være i Storbritannia. Vennligst prøv igjen." #: perllib/FixMyStreet/Cobrand/Default.pm:509 #: perllib/FixMyStreet/Cobrand/FiksGataMi.pm:78 @@ -2380,6 +2339,9 @@ msgid "" "administrations that received the problem report, which is not quite the way " "the attribute is defined in the Open311 v2 specification." msgstr "" +"Open311 v2-atributten agency_responsible brukes for å liste opp " +"administrasjonene som mottok problemrapporten, noe som ikke helt stemmer med " +"hvordan atributten er definert i Open311 v2-spesifikasjonen." #: templates/web/default/auth/token.html:21 #: templates/web/default/email_sent.html:22 @@ -2387,15 +2349,14 @@ msgid "" "The confirmation email <strong>may</strong> take a few minutes to arrive " "— <em>please</em> be patient." msgstr "" -"Bekreftelsese-posten <strong>kan</strong>bruke noen minutter før den kommer " +"Bekreftelsese-posten <strong>kan</strong> bruke noen minutter før den kommer " "frem — så vær tålmodig." #: templates/web/default/questionnaire/index.html:51 msgid "" "The details of your problem are available on the right hand side of this " "page." -msgstr "" -"Detaljene om ditt problem er tilgjengelig på høyre side av denne siden." +msgstr "Detaljene om ditt problem er tilgjengelig på høyre kant av denne siden." #: perllib/FixMyStreet/App/Controller/Reports.pm:46 #: perllib/FixMyStreet/App/Controller/Reports.pm:73 @@ -2408,6 +2369,9 @@ msgid "" "service_request_id, description, lat, long, media_url, status, " "requested_datetime, updated_datetime, service_code and service_name." msgstr "" +"De følgende Open311 v2-atributtene blir returnert for hver forespørsel: " +"service_request_id, description, lat, long, media_url, status, " +"requested_datetime, updated_datetime, service_code and service_name." #: perllib/FixMyStreet/Geocode/OSM.pm:99 msgid "" @@ -2422,19 +2386,18 @@ msgstr "" #: db/alert_types.pl:19 db/alert_types.pl:23 db/alert_types.pl:27 #: db/alert_types.pl:31 msgid "The latest local problems reported by users" -msgstr "De siste lokale problemer rapporter av brukere" +msgstr "De siste lokale problemer rapportert av brukere" #: db/alert_types_eha.pl:13 msgid "The latest local reports reported by users" -msgstr "De siste lokale rapporter rapporter av brukere" +msgstr "De siste lokale rapporter rapportert av brukere" #: db/alert_types.pl:35 msgid "The latest problems for {{COUNCIL}} reported by users" msgstr "De siste problemer for {{COUNCIL}} rapportert av brukere" #: db/alert_types.pl:39 -msgid "" -"The latest problems for {{COUNCIL}} within {{WARD}} ward reported by users" +msgid "The latest problems for {{COUNCIL}} within {{WARD}} ward reported by users" msgstr "" "De siste problemene for {{COUNCIL}} innenfor {{WARD}} bydel rapportert av " "brukere" @@ -2445,7 +2408,7 @@ msgstr "De siste problemene rapportert av brukere" #: db/alert_types.pl:15 msgid "The latest problems reported fixed by users" -msgstr "De siste problemer rapporter fikset av brukere" +msgstr "De siste problemer rapportert fikset av brukere" #: db/alert_types.pl:43 msgid "The latest problems within {{NAME}}'s boundary reported by users" @@ -2460,8 +2423,7 @@ msgid "The latest reports for {{COUNCIL}} reported by users" msgstr "De siste rapporter for {{COUNCIL}} rapportert av brukere" #: db/alert_types_eha.pl:24 -msgid "" -"The latest reports for {{COUNCIL}} within {{WARD}} ward reported by users" +msgid "The latest reports for {{COUNCIL}} within {{WARD}} ward reported by users" msgstr "" "De siste rapporter for {{COUNCIL}} innenfor {{WARD}} bydel rapporter av " "brukere" @@ -2511,8 +2473,7 @@ msgstr "" "stedet de skrev inn" #: perllib/FixMyStreet/App/Controller/Reports.pm:72 -msgid "" -"There was a problem showing the All Reports page. Please try again later." +msgid "There was a problem showing the All Reports page. Please try again later." msgstr "" "Det var problemer med å vise 'Alle rapporter'-siden. Vennligst prøv igjen " "senere." @@ -2532,8 +2493,7 @@ msgstr "" "skjemaet for å skaffe deg en." #: perllib/FixMyStreet/App/Controller/Alert.pm:354 -msgid "" -"There was a problem with your email/password combination. Please try again." +msgid "There was a problem with your email/password combination. Please try again." msgstr "" "Det var problemer med din epost/passord-kombinasjon. Vær så snill å forsøk " "igjen." @@ -2550,7 +2510,7 @@ msgstr "Det var problemer med din oppdatering. Vennligst se under." msgid "" "This API implementation is work in progress and not yet stabilized. It will " "change without warnings in the future." -msgstr "" +msgstr "Denne API-implementasjonen er under arbeid og ennå ikke stabil. Den vil endre seg uten advarsel i fremtiden." #: bin/send-reports:181 msgid "" @@ -2625,10 +2585,8 @@ msgid "This report is currently marked as open." msgstr "Denne rapporten er for tiden markert som åpen." #: bin/send-reports:70 -msgid "" -"This web page also contains a photo of the problem, provided by the user." -msgstr "" -"Denne nettsiden inneholder også et bilde av problemet, sendt inn av brukeren." +msgid "This web page also contains a photo of the problem, provided by the user." +msgstr "Denne nettsiden inneholder også et bilde av problemet, sendt inn av brukeren." #: perllib/FixMyStreet/App/Controller/Admin.pm:841 #: templates/web/default/admin/timeline.html:1 @@ -2641,19 +2599,16 @@ msgid "Title" msgstr "Tittel" #: templates/web/default/around/display_location.html:70 -#, fuzzy msgid "" "To <strong>report a problem</strong>, simply click on the map at the correct " "location." -msgstr "" -"For å rapportere et problem, <strong>klikk på kartet</strong> på riktig sted." +msgstr "For å <strong>rapportere et problem</strong>, klikk på kartet på riktig sted." #: templates/web/default/alert/index.html:21 msgid "" "To find out what local alerts we have for you, please enter your GB\n" "postcode or street name and area:" -msgstr "" -"Du finner lokale problemer ved å søke på ditt postnummer, veinavn eller sted:" +msgstr "Du finner lokale problemer ved å søke på ditt postnummer, veinavn eller sted:" #: bin/send-reports:76 msgid "To view a map of the precise location of this issue" @@ -2731,15 +2686,15 @@ msgstr "Oppdateringer til dette problemet, FiksGataMi" #: perllib/FixMyStreet/App/Controller/Admin.pm:997 msgid "User flag removed" -msgstr "" +msgstr "Brukerflagg fjernet" #: perllib/FixMyStreet/App/Controller/Admin.pm:969 msgid "User flagged" -msgstr "" +msgstr "Bruker flagget" #: templates/web/default/admin/list_flagged.html:30 msgid "Users" -msgstr "" +msgstr "Brukere" #: perllib/FixMyStreet/App/Controller/Admin.pm:295 #: perllib/FixMyStreet/App/Controller/Admin.pm:325 @@ -2792,8 +2747,7 @@ msgstr "" #: templates/web/default/auth/token.html:19 msgid "We have sent you an email containing a link to confirm your account." -msgstr "" -"Vi har sendt deg en epost som inneholder link for å bekrefte din konto." +msgstr "Vi har sendt deg en epost som inneholder link for å bekrefte din konto." #: templates/web/emptyhomes/tokens/confirm_problem.html:18 #: templates/web/emptyhomes/tokens/confirm_problem.html:20 @@ -2827,16 +2781,14 @@ msgstr "" "faq#privacy\">personvernpolicy.</a>" #: templates/web/emptyhomes/contact/blurb.html:2 -#, fuzzy msgid "" "We’d love to hear what you think about this website. Just fill in the " "form. Please don’t contact us about individual empty homes; use the " "box accessed from <a href=\"/\">the front page</a>." msgstr "" "Vi vil gjerne høre hva du tenker om dette nettstedet. Det er bare å fylle " -"inn skjemaet. Vær så snill å ikke kontakte oss om individuelle tomme hjem. " -"For det bør du i stedet bruke boksen tilgjengelig fra <a href=\"/" -"\">forsiden</a>." +"inn skjemaet. Vær så snill å ikke kontakte oss om individuelle tomme hjem. " +"For det bør du i stedet bruke boksen tilgjengelig fra <a href=\"/\">forsiden</a>." #: templates/web/default/contact/blurb.html:8 msgid "" @@ -2865,7 +2817,7 @@ msgid "" "With request searches, it is also possible to search for agency_responsible " "to limit the requests to those sent to a single administration. The search " "term is the administration ID provided by <a href=\"%s\">MaPit</a>." -msgstr "" +msgstr "Når du søker etter forespørsler, så er det også mulig å søke etter agency_responsible for å begrense det til forespørsler som er sendt til en enkelt adminstrasjon. Søktetermen er administrasjons-IDen som oppgitt av <a href=\"%s\">MaPit</a>." #: templates/web/default/questionnaire/index.html:104 msgid "" @@ -2914,13 +2866,10 @@ msgstr "" "informasjon, eller lignende:" #: templates/web/default/reports/council.html:71 -#, fuzzy msgid "" "You can <a href=\"%s\">view all reports for the council</a> or <a href=\"/" "reports\">show all councils</a>." -msgstr "" -"Du kan <a href=\"%s\">se mindre detaljer</a> eller gå tilbake og <a href=\"/" -"reports\">se alle administrasjonene</a>." +msgstr "Du kan <a href=\"%s\">se alle rapporter for administrasjonen</a> eller <a href=\"/reports\">se alle administrasjonene</a>." #: templates/web/default/reports/council.html:73 msgid "You can <a href=\"/reports\">show all councils</a>." @@ -2968,14 +2917,12 @@ msgid "You have been signed out" msgstr "Du er allerede logget ut" #: templates/web/default/report/new/fill_in_details_form.html:7 -#, fuzzy msgid "" "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. " msgstr "" "Du har plassert problemet ved punktet i kartet som er markert med en lilla " -"nål. Hvis dette ikke er korrekt plassering kan du klikke i kartet på nytt " -"for å flytte problemet." +"nål. Hvis dette ikke er korrekt plassering kan du klikke i kartet på nytt." #: templates/web/default/tokens/confirm_alert.html:7 msgid "You have successfully confirmed your alert." @@ -2989,18 +2936,14 @@ msgstr "Du har nå lykkes med å bekrefte ditt problem" # "portalen" ? #: templates/web/default/tokens/confirm_update.html:11 #: templates/web/default/tokens/confirm_update.html:12 -#, fuzzy msgid "" "You have successfully confirmed your update and you can now <a href=\"%s" "\">view it on the site</a>." -msgstr "" -"Du har nå bekreftet din oppdatering <a href=\"%s\">og kan lese om problemet " -"på portalen</a>." +msgstr "Du har nå bekreftet din oppdatering <a href=\"%s\">og kan se den på dette nettstedet</a>." #: templates/web/default/tokens/confirm_alert.html:11 -#, fuzzy msgid "You have successfully created your alert." -msgstr "Opprettelsen av ditt varsel var vellykket." +msgstr "Du har lykkes med å opprette ditt varsel." #: templates/web/default/tokens/confirm_alert.html:9 msgid "You have successfully deleted your alert." @@ -3008,12 +2951,10 @@ msgstr "Sletting av ditt varsel var vellykket." #: perllib/FixMyStreet/App/Controller/Report/New.pm:611 #: perllib/FixMyStreet/App/Controller/Report/Update.pm:123 -#, fuzzy msgid "" "You have successfully signed in; please check and confirm your details are " "accurate:" -msgstr "" -"Du er nå logget på; vennligst sjekk og bekreft at detaljene er riktige:" +msgstr "Du har lykkes med å logge inn. Vennligst sjekk og bekreft at dine detaljer er korrekte:" #: templates/web/default/email_sent.html:26 msgid "" @@ -3114,9 +3055,8 @@ msgstr "åpnet på nytt" #: templates/web/default/report/new/fill_in_details_form.html:11 #: templates/web/default/report/new/fill_in_details_form.html:14 -#, fuzzy msgid "the local council" -msgstr "(ikke rapportert til administrasjonen)" +msgstr "den lokale administrasjonen" #: perllib/FixMyStreet/DB/Result/Problem.pm:363 msgid "the map was not used so pin location may be inaccurate" @@ -3170,7 +3110,7 @@ msgid "your update will not be posted" msgstr "din oppdatering vil ikke bli publisert" #: templates/web/default/front/stats.html:19 -#, fuzzy, perl-format +#, perl-format msgid "<big>%s</big> report recently" msgid_plural "<big>%s</big> reports recently" msgstr[0] "<big>%s</big> rapportert<br>nylig" @@ -3179,12 +3119,9 @@ msgstr[1] "<big>%s</big> rapportert<br>nylig" #: templates/web/default/report/new/councils_text_none.html:5 #, perl-format msgid "We do not yet have details for the council that covers this location." -msgid_plural "" -"We do not yet have details for the councils that cover this location." -msgstr[0] "" -"Vi har ennå ikke detaljer for administrasjonen som dekker dette stedet." -msgstr[1] "" -"Vi har ennå ikke detaljer for administrasjonene som dekker dette stedet." +msgid_plural "We do not yet have details for the councils that cover this location." +msgstr[0] "Vi har ennå ikke detaljer for administrasjonen som dekker dette stedet." +msgstr[1] "Vi har ennå ikke detaljer for administrasjonene som dekker dette stedet." #: templates/web/default/front/stats.html:14 #, perl-format @@ -3222,15 +3159,3 @@ msgstr[1] "" "Vi har ennå <strong>ikke</strong> detaljene for de andre administrasjonene " "som dekker dette stedet." -# I de tilfeller denne teksten blir brukt, er det vel -# det britiske Ministry of Justice som har copyright, -# ikke det norske Justisdepartementet? -#~ msgid "" -#~ "© Crown copyright. All rights reserved. Ministry of Justice " -#~ "100037819 2008." -#~ msgstr "" -#~ "© Crown copyright. Alle rettigheter reservert. Justisdepartementet " -#~ "100037819 2008." - -#~ msgid "Unable to fetch the map tiles from the tile server." -#~ msgstr "Klarte ikke hente kartfliser fra filtjeneren." diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index f7942c45a..e5e15092f 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -810,14 +810,7 @@ sub user_edit : Path('user_edit') : Args(1) { my $user = $c->model('DB::User')->find( { id => $id } ); $c->stash->{user} = $user; - my @area_types = $c->cobrand->area_types; - my $areas = mySociety::MaPit::call('areas', \@area_types); - - my @councils_ids = sort { strcoll($areas->{$a}->{name}, $areas->{$b}->{name}) } keys %$areas; - @councils_ids = $c->cobrand->filter_all_council_ids_list( @councils_ids ); - - $c->stash->{council_ids} = \@councils_ids; - $c->stash->{council_details} = $areas; + $c->forward('set_up_council_details'); if ( $c->req->param('submit') ) { $c->forward('check_token'); @@ -833,6 +826,7 @@ sub user_edit : Path('user_edit') : Args(1) { $user->name( $c->req->param('name') ); $user->email( $c->req->param('email') ); $user->from_council( $c->req->param('council') || undef ); + $user->flagged( $c->req->param('flagged') || 0 ); $user->update; if ($edited) { @@ -869,6 +863,8 @@ sub stats : Path('stats') : Args(0) { $c->forward('check_page_allowed'); + $c->forward('set_up_council_details'); + if ( $c->req->param('getcounts') ) { my ( $start_date, $end_date, @errors ); @@ -901,25 +897,51 @@ sub stats : Path('stats') : Args(0) { return 1 if @errors; + my $bymonth = $c->req->param('bymonth'); + $c->stash->{bymonth} = $bymonth; + my ( %council, %dates ); + $council{council} = { like => $c->req->param('council') } + if $c->req->param('council'); + + $c->stash->{selected_council} = $c->req->param('council'); + my $field = 'confirmed'; $field = 'created' if $c->req->param('unconfirmed'); my $one_day = DateTime::Duration->new( days => 1 ); + + my %select = ( + select => [ 'state', { 'count' => 'me.id' } ], + as => [qw/state count/], + group_by => [ 'state' ], + order_by => [ 'state' ], + ); + + if ( $c->req->param('bymonth') ) { + %select = ( + select => [ + { extract => \"year from $field", -as => 'c_year' }, + { extract => \"month from $field", -as => 'c_month' }, + { 'count' => 'me.id' } + ], + as => [qw/c_year c_month count/], + group_by => [qw/c_year c_month/], + order_by => [qw/c_year c_month/], + ); + } + my $p = $c->model('DB::Problem')->search( { -AND => [ $field => { '>=', $start_date}, $field => { '<=', $end_date + $one_day }, ], + %council, + %dates, }, - { - select => [ 'state', { 'count' => 'me.id' } ], - as => [qw/state count/], - group_by => [ 'state' ], - order_by => [ 'state' ], - } + \%select, ); # in case the total_report count is 0 @@ -1153,6 +1175,21 @@ sub check_page_allowed : Private { return 1; } +sub set_up_council_details : Private { + my ($self, $c ) = @_; + + my @area_types = $c->cobrand->area_types; + my $areas = mySociety::MaPit::call('areas', \@area_types); + + my @councils_ids = sort { strcoll($areas->{$a}->{name}, $areas->{$b}->{name}) } keys %$areas; + @councils_ids = $c->cobrand->filter_all_council_ids_list( @councils_ids ); + + $c->stash->{council_ids} = \@councils_ids; + $c->stash->{council_details} = $areas; + + return 1; +} + sub trim { my $self = shift; my $e = shift; diff --git a/perllib/FixMyStreet/App/Controller/Rss.pm b/perllib/FixMyStreet/App/Controller/Rss.pm index 45a16a9dd..767d38c21 100755 --- a/perllib/FixMyStreet/App/Controller/Rss.pm +++ b/perllib/FixMyStreet/App/Controller/Rss.pm @@ -263,6 +263,12 @@ sub add_row : Private { my $key = $alert_type->item_table eq 'comment' ? 'c' : 'id'; $item{description} .= ent("\n<br><img src=\"". $c->cobrand->base_url . "/photo?$key=$row->{id}\">"); } + + if ( $row->{used_map} ) { + #my $address = $c->cobrand->find_closest_address_for_rss( $row->{latitude}, $row->{longitude} ); + #$item{description} .= ent("\n<br>$address"); + } + my $recipient_name = $c->cobrand->contact_name; $item{description} .= ent("\n<br><a href='$url'>" . sprintf(_("Report on %s"), $recipient_name) . "</a>"); diff --git a/perllib/FixMyStreet/App/View/Web.pm b/perllib/FixMyStreet/App/View/Web.pm index 5579d0d53..43d46ae25 100644 --- a/perllib/FixMyStreet/App/View/Web.pm +++ b/perllib/FixMyStreet/App/View/Web.pm @@ -19,7 +19,7 @@ __PACKAGE__->config( render_die => 1, expose_methods => [ 'loc', 'nget', 'tprintf', 'display_crosssell_advert', 'prettify_epoch', - 'add_links', + 'add_links', 'version', ], FILTERS => { escape_js => \&escape_js, @@ -165,5 +165,15 @@ sub html_filter { return $text; } +my %version_hash; +sub version { + my ( $self, $c, $file ) = @_; + unless ($version_hash{$file}) { + my $path = FixMyStreet->path_to('web', $file); + $version_hash{$file} = ( stat( $path ) )[9]; + } + return "$file?$version_hash{$file}"; +} + 1; diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm index 69718f613..1e87468ac 100644 --- a/perllib/FixMyStreet/Cobrand/Default.pm +++ b/perllib/FixMyStreet/Cobrand/Default.pm @@ -4,6 +4,7 @@ use strict; use warnings; use FixMyStreet; use URI; +use Digest::MD5 qw(md5_hex); use Carp; use mySociety::MaPit; @@ -547,17 +548,10 @@ sub find_closest { my ( $self, $latitude, $longitude ) = @_; my $str = ''; - # Get nearest road-type thing from Bing - my $key = mySociety::Config::get('BING_MAPS_API_KEY', ''); - if ($key) { - my $url = "http://dev.virtualearth.net/REST/v1/Locations/$latitude,$longitude?c=en-GB&key=$key"; - my $j = LWP::Simple::get($url); - if ($j) { - $j = JSON->new->utf8->allow_nonref->decode($j); - if ($j->{resourceSets}[0]{resources}[0]{name}) { - $str .= sprintf(_("Nearest road to the pin placed on the map (automatically generated by Bing Maps): %s"), - $j->{resourceSets}[0]{resources}[0]{name}) . "\n\n"; - } + if ( my $j = FixMyStreet::Geocode::Bing::reverse( $latitude, $longitude ) ) { + if ($j->{resourceSets}[0]{resources}[0]{name}) { + $str .= sprintf(_("Nearest road to the pin placed on the map (automatically generated by Bing Maps): %s"), + $j->{resourceSets}[0]{resources}[0]{name}) . "\n\n"; } } @@ -575,6 +569,30 @@ sub find_closest { return $str; } +=head2 find_closest_address_for_rss + +Used by rss feeds to provide a bit more context + +=cut + +sub find_closest_address_for_rss { + my ( $self, $latitude, $longitude ) = @_; + my $str = ''; + + if ( my $j = FixMyStreet::Geocode::Bing::reverse( $latitude, $longitude, 1 ) ) { + if ($j->{resourceSets}[0]{resources}[0]{name}) { + my $address = $j->{resourceSets}[0]{resources}[0]{address}; + my @address; + push @address, $address->{addressLine} if $address->{addressLine} ne 'Street'; + push @address, $address->{locality}; + $str .= sprintf(_("Nearest road to the pin placed on the map (automatically generated by Bing Maps): %s"), + join( ', ', @address ) ); + } + } + + return $str; +} + =head2 council_check Paramters are COUNCILS, QUERY, CONTEXT. Return a boolean indicating whether diff --git a/perllib/FixMyStreet/DB/ResultSet/Problem.pm b/perllib/FixMyStreet/DB/ResultSet/Problem.pm index 8c1f95bae..44c066454 100644 --- a/perllib/FixMyStreet/DB/ResultSet/Problem.pm +++ b/perllib/FixMyStreet/DB/ResultSet/Problem.pm @@ -64,11 +64,14 @@ sub recent { my ( $rs ) = @_; my $key = "recent:$site_key"; my $result = Memcached::get($key); - unless ($result) { + if ( $result ) { + # Need to reattach schema so that confirmed column gets reinflated. + $result->[0]->result_source->schema( $rs->result_source->schema ); + } else { $result = [ $rs->search( { state => [ FixMyStreet::DB::Result::Problem->visible_states() ] }, { - columns => [ 'id', 'title' ], + columns => [ 'id', 'title', 'confirmed' ], order_by => { -desc => 'confirmed' }, rows => 5, } )->all ]; diff --git a/perllib/FixMyStreet/Geocode/Bing.pm b/perllib/FixMyStreet/Geocode/Bing.pm index 90d7f98bd..4e12a7a7f 100644 --- a/perllib/FixMyStreet/Geocode/Bing.pm +++ b/perllib/FixMyStreet/Geocode/Bing.pm @@ -64,4 +64,36 @@ sub string { return { error => $error }; } +sub reverse { + my ( $latitude, $longitude, $cache ) = @_; + + # Get nearest road-type thing from Bing + my $key = mySociety::Config::get('BING_MAPS_API_KEY', ''); + if ($key) { + my $url = "http://dev.virtualearth.net/REST/v1/Locations/$latitude,$longitude?c=en-GB&key=$key"; + my $j; + if ( $cache ) { + my $cache_dir = FixMyStreet->config('GEO_CACHE') . 'bing/'; + my $cache_file = $cache_dir . md5_hex($url); + + if (-s $cache_file) { + $j = File::Slurp::read_file($cache_file); + } else { + $j = LWP::Simple::get($url); + File::Path::mkpath($cache_dir); + File::Slurp::write_file($cache_file, $j) if $j; + } + } else { + $j = LWP::Simple::get($url); + } + + if ($j) { + $j = JSON->new->utf8->allow_nonref->decode($j); + return $j; + } + } + + return undef; +} + 1; diff --git a/t/app/controller/admin.t b/t/app/controller/admin.t index be3b74cf5..beeb6c9c1 100644 --- a/t/app/controller/admin.t +++ b/t/app/controller/admin.t @@ -997,6 +997,12 @@ subtest 'report search' => sub { $mech->get_ok('/admin/search_reports?search=' . $report->user->email); $mech->content_like( qr{<tr [^>]*hidden[^>]*> \s* <td> \s* $r_id \s* </td>}xs ); + + $report->state('fixed - user'); + $report->update; + + $mech->get_ok('/admin/search_reports?search=' . $report->user->email); + $mech->content_like( qr{href="http://[^/]*[^.]/report/$r_id/">$r_id</a>} ); }; subtest 'search abuse' => sub { @@ -1047,6 +1053,9 @@ $log_entries = FixMyStreet::App->model('DB::AdminLog')->search( is $log_entries->count, 0, 'no admin log entries'; +$user->flagged( 0 ); +$user->update; + for my $test ( { desc => 'edit user name', @@ -1054,6 +1063,7 @@ for my $test ( name => 'Test User', email => 'test@example.com', council => 2509, + flagged => undef, }, changes => { name => 'Changed User', @@ -1067,6 +1077,7 @@ for my $test ( name => 'Changed User', email => 'test@example.com', council => 2509, + flagged => undef, }, changes => { email => 'changed@example.com', @@ -1080,6 +1091,7 @@ for my $test ( name => 'Changed User', email => 'changed@example.com', council => 2509, + flagged => undef, }, changes => { council => 2607, @@ -1087,6 +1099,34 @@ for my $test ( log_count => 3, log_entries => [qw/edit edit edit/], }, + { + desc => 'edit user flagged', + fields => { + name => 'Changed User', + email => 'changed@example.com', + council => 2607, + flagged => undef, + }, + changes => { + flagged => 'on', + }, + log_count => 4, + log_entries => [qw/edit edit edit edit/], + }, + { + desc => 'edit user remove flagged', + fields => { + name => 'Changed User', + email => 'changed@example.com', + council => 2607, + flagged => 'on', + }, + changes => { + flagged => undef, + }, + log_count => 4, + log_entries => [qw/edit edit edit edit/], + }, ) { subtest $test->{desc} => sub { $mech->get_ok( '/admin/user_edit/' . $user->id ); diff --git a/t/app/controller/questionnaire.t b/t/app/controller/questionnaire.t index af3b373ac..a013569ee 100644 --- a/t/app/controller/questionnaire.t +++ b/t/app/controller/questionnaire.t @@ -1,6 +1,7 @@ use strict; use warnings; use Test::More; +use DateTime; use FixMyStreet::TestMech; use FixMyStreet::App::Controller::Questionnaire; @@ -15,7 +16,10 @@ my $user = ->find_or_create( { email => 'test@example.com', name => 'Test User' } ); ok $user, "created test user"; -my $report_time = '2011-03-01 12:00:00'; +my $dt = DateTime->now()->subtract( weeks => 5 ); +my $report_time = $dt->ymd . ' ' . $dt->hms; +my $sent = $dt->add( minutes => 5 ); +my $sent_time = $sent->ymd . ' ' . $sent->hms; my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( { @@ -31,7 +35,7 @@ my $report = FixMyStreet::App->model('DB::Problem')->find_or_create( state => 'confirmed', confirmed => $report_time, lastupdate => $report_time, - whensent => '2011-03-01 12:05:00', + whensent => $sent_time, lang => 'en-gb', service => '', cobrand => 'default', @@ -334,10 +338,11 @@ $mech->get_ok("/Q/" . $token); $mech->content_contains( 'should have reported what they have done' ); # Test already answered the ever reported question, so not shown again +$dt = $dt->add( weeks => 4 ); my $questionnaire2 = FixMyStreet::App->model('DB::Questionnaire')->find_or_create( { problem_id => $report->id, - whensent => '2011-03-28 12:00:00', + whensent => $dt->ymd . ' ' . $dt->hms, ever_reported => 1, } ); diff --git a/t/app/controller/report_updates.t b/t/app/controller/report_updates.t index 993c6758e..4469d4003 100644 --- a/t/app/controller/report_updates.t +++ b/t/app/controller/report_updates.t @@ -413,19 +413,15 @@ subtest 'check non authority user cannot change set state' => sub { $user->update; $mech->get_ok("/report/$report_id"); - $mech->submit_form_ok( { - form_number => 2, - fields => { + $mech->post_ok( "/report/update", { submit_update => 1, id => $report_id, name => $user->name, - rznvy => $user->email, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'this is a forbidden update', state => 'fixed - council', - }, }, 'submitted with state', ); @@ -445,19 +441,15 @@ for my $state ( qw/unconfirmed hidden partial/ ) { $user->update; $mech->get_ok("/report/$report_id"); - $mech->submit_form_ok( { - form_number => 2, - fields => { + $mech->post_ok( "/report/update", { submit_update => 1, id => $report_id, name => $user->name, - rznvy => $user->email, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'this is a forbidden update', state => $state, - }, }, 'submitted with state', ); @@ -477,7 +469,7 @@ for my $test ( fields => { name => $user->name, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'Set state to investigating', state => 'investigating', @@ -489,7 +481,7 @@ for my $test ( fields => { name => $user->name, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'Set state to planned', state => 'planned', @@ -501,7 +493,7 @@ for my $test ( fields => { name => $user->name, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'Set state to in progress', state => 'in progress', @@ -513,7 +505,7 @@ for my $test ( fields => { name => $user->name, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'Set state to closed', state => 'closed', @@ -525,7 +517,7 @@ for my $test ( fields => { name => $user->name, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'Set state to fixed', state => 'fixed', @@ -537,7 +529,7 @@ for my $test ( fields => { name => $user->name, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'Set state to confirmed', state => 'confirmed', @@ -549,7 +541,7 @@ for my $test ( fields => { name => $user->name, may_show_name => 1, - add_alert => 0, + add_alert => undef, photo => '', update => 'Set state to fixed', state => 'fixed', diff --git a/templates/email/fiksgatami/problem-confirm.txt b/templates/email/fiksgatami/problem-confirm.txt index cd58d95ce..a48fbef44 100644 --- a/templates/email/fiksgatami/problem-confirm.txt +++ b/templates/email/fiksgatami/problem-confirm.txt @@ -7,7 +7,7 @@ på FiksGataMi: [% token_url %] -Hvis ditt epost program ikke gir deg mulighet til å klikke på linken, +Hvis ditt epost-program ikke gir deg mulighet til å klikke på linken, kopier linken inn i nettleseren. Din sak hadde følgende tittel: diff --git a/templates/web/barnet/header.html b/templates/web/barnet/header.html index 1616198e7..8270154ab 100644 --- a/templates/web/barnet/header.html +++ b/templates/web/barnet/header.html @@ -3,7 +3,7 @@ <head> <link rel="stylesheet" type="text/css" href="/cobrands/barnet/css/basic.css"> - <link rel="stylesheet" type="text/css" href="/css/core.css"> + <link rel="stylesheet" type="text/css" href="[% version('/css/core.css') %]"> <link rel="stylesheet" type="text/css" href="/cobrands/barnet/css/layout.css"> <!-- Preferred style sheet enabled when the page is loaded --> @@ -41,10 +41,10 @@ <![endif]--> <link rel="stylesheet" media="print" type="text/css" href="/cobrands/barnet/css/print.css"> - <script type="text/javascript" src="/cobrands/barnet/javascript/jquery-1.2.6_common.js"></script> - <script type="text/javascript" src="/cobrands/barnet/javascript/styleswitch.js"></script> - <script type="text/javascript" src="/cobrands/barnet/javascript/jquery-cookie-min.js"></script> - <script type="text/javascript" src="/cobrands/barnet/javascript/2008-portsurf.js"></script> + <script type="text/javascript" src="[% version('/cobrands/barnet/javascript/jquery-1.2.6_common.js') %]"></script> + <script type="text/javascript" src="[% version('/cobrands/barnet/javascript/styleswitch.js') %]"></script> + <script type="text/javascript" src="[% version('/cobrands/barnet/javascript/jquery-cookie-min.js') %]"></script> + <script type="text/javascript" src="[% version('/cobrands/barnet/javascript/2008-portsurf.js') %]"></script> [% INCLUDE 'common_header_tags.html' %] diff --git a/templates/web/default/admin/problem_row.html b/templates/web/default/admin/problem_row.html index 664ff1b13..22825429a 100644 --- a/templates/web/default/admin/problem_row.html +++ b/templates/web/default/admin/problem_row.html @@ -1,6 +1,6 @@ [%- FOR problem IN problems %] <tr[% ' class="hidden"' IF problem.state == 'hidden' %]> - <td>[%- IF problem.state == 'confirmed' || problem.state == 'fixed' -%] + <td>[%- IF problem.is_visible -%] [%- cobrand_data = problem.cobrand_data %] [%- cobrand_data = c.data_for_generic_problem IF !problem.cobrand %] <a href="[% c.uri_for_email( '/report', problem.id, cobrand_data ) %]">[% problem.id %]</a> @@ -20,9 +20,10 @@ <td>[% problem.cobrand %]<br>[% problem.cobrand_data | html %]</td> <td>[% PROCESS format_time time=problem.created %]</td> <td>[% problem.state %]<small> - [%- IF problem.state == 'fixed' || problem.state == 'confirmed' %]<br>[% loc('Confirmed:' ) %] [% PROCESS format_time time=problem.confirmed %][% END -%] - [%- IF problem.state == 'fixed' %]<br>[% loc('Fixed:') %] [% PROCESS format_time time=problem.lastupdate %][% END -%] - [%- IF problem.state == 'confirmed' %]<br>[% loc('Last update:') %] [% PROCESS format_time time=problem.lastupdate %][% END -%]</small> + [%- IF problem.is_visible %]<br>[% loc('Confirmed:' ) %] [% PROCESS format_time time=problem.confirmed %][% END -%] + [%- IF problem.is_fixed %]<br>[% loc('Fixed:') %] [% PROCESS format_time time=problem.lastupdate %][% END -%] + [%- IF problem.is_closed %]<br>[% loc('Closed:') %] [% PROCESS format_time time=problem.lastupdate %][% END -%] + [%- IF problem.is_open %]<br>[% loc('Last update:') %] [% PROCESS format_time time=problem.lastupdate %][% END -%]</small> </td> <td>[% PROCESS format_time time=problem.whensent %]</td> <td><a href="[% c.uri_for( 'report_edit', problem.id ) %]">[% loc('Edit') %]</a></td> diff --git a/templates/web/default/admin/search_users.html b/templates/web/default/admin/search_users.html index 43fdebf2b..b4fa2c2da 100644 --- a/templates/web/default/admin/search_users.html +++ b/templates/web/default/admin/search_users.html @@ -12,6 +12,7 @@ <th>[% loc('Name') %]</th> <th>[% loc('Email') %]</th> <th>[% loc('Council') %]</th> + <th>[% loc('Flagged') %]</th> <th>*</th> </tr> [%- FOREACH user IN users %] @@ -19,6 +20,7 @@ <td>[% PROCESS value_or_nbsp value=user.name %]</td> <td>[% PROCESS value_or_nbsp value=user.email %]</td> <td>[% PROCESS value_or_nbsp value=user.from_council %]</td> + <td>[% user.flagged ? loc('Yes') : ' ' %]</td> <td><a href="[% c.uri_for( 'user_edit', user.id ) %]">[% loc('Edit') %]</a></td> </tr> [%- END -%] diff --git a/templates/web/default/admin/stats.html b/templates/web/default/admin/stats.html index ccd41601a..3b9f4a264 100644 --- a/templates/web/default/admin/stats.html +++ b/templates/web/default/admin/stats.html @@ -4,6 +4,28 @@ <p> <strong>[% tprintf( loc( '%sreports between %s and %s' ), ( unconfirmed ? loc( 'All' ) _ ' ' : loc( 'Confirmed' ) _ ' ' ), start_date.ymd, end_date.ymd ) | html %]</strong> </p> +[% IF bymonth %] +<table> + <thead> + <td style="width: 8em"><strong>[% loc('Year') %]</strong></td> + <td style="width: 8em"><strong>[% loc('Month') %]</strong></td> + <td><strong>[% loc('Count') %]</strong></td> + </thead> + [% total = 0 %] + [% WHILE ( state = states.next ) %] + [% total = total + state.get_column( 'count' ) %] + <tr> + <td>[% state.get_column( 'c_year') | html %]</td> + <td>[% state.get_column( 'c_month') | html %]</td> + <td>[% state.get_column( 'count' ) %]</td> + </tr> + [% END %] + <tr> + <td colspan="2"><strong>[% loc( 'Total' ) %]</strong></td> + <td><strong>[% total %]</strong></td> + </tr> +</table> +[% ELSE %] <table> <thead> <td style="width: 8em"><strong>[% loc('Current state') %]</strong></td> @@ -22,6 +44,7 @@ <td><strong>[% total %]</strong></td> </tr> </table> +[% END %] [% IF unconfirmed %] <p> @@ -54,6 +77,19 @@ </p> <p> + <input type="checkbox" name="bymonth" id="bymonth"[% bymonth ? ' checked' : '' %] /><label for="bymonth">[% loc('By Date') %]</label> + </p> + + <p> + [% loc('Council:') %] <select id='council' name='council'> + <option value=''>[% loc('No council') %]</option> + [% FOR council IN council_ids %] + <option value="[% council %]"[% ' selected' IF council == selected_council %]>[% council_details.$council.name %]</option> + [% END %] + </select> + </p> + + <p> <input type="submit" name="getcounts" size="30" id="getcounts" value="Get Count" /> </p> </form> diff --git a/templates/web/default/admin/user_edit.html b/templates/web/default/admin/user_edit.html index 7db8f5c63..a03a4b734 100644 --- a/templates/web/default/admin/user_edit.html +++ b/templates/web/default/admin/user_edit.html @@ -15,6 +15,7 @@ <option value="[% council %]"[% ' selected' IF council == user.from_council %]>[% council_details.$council.name %]</option> [% END %] </select> +<li>[% loc('Flagged:') %] <input type="checkbox" id="flagged" name="flagged"[% user.flagged ? ' checked' : '' %]></li> </ul> <input type="submit" name="Submit changes" value="[% loc('Submit changes') %]" ></form> diff --git a/templates/web/default/around/display_location.html b/templates/web/default/around/display_location.html index bef8954ba..242253ab8 100755 --- a/templates/web/default/around/display_location.html +++ b/templates/web/default/around/display_location.html @@ -35,7 +35,7 @@ robots => 'noindex,nofollow'; %] -<form action="[% c.uri_for('/report/new') %]" method="post" name="mapForm" id="mapForm"> +<form action="[% c.uri_for('/report/new') %]" method="post" name="mapForm" id="mapForm" enctype="multipart/form-data"> [% IF c.req.params.map_override %] <input type="hidden" name="map_override" value="[% c.req.params.map_override | html %]"> [% END %] diff --git a/templates/web/default/common_header_tags.html b/templates/web/default/common_header_tags.html index 206a0e6d4..e6278847d 100644 --- a/templates/web/default/common_header_tags.html +++ b/templates/web/default/common_header_tags.html @@ -1,6 +1,7 @@ <meta http-equiv="content-type" content="text/html; charset=utf-8"> <script type="text/javascript" src="/jslib/jquery-1.6.2.min.js"></script> -<script type="text/javascript" src="/js/fixmystreet.js"></script> +<script type="text/javascript" src="[% version('/js/geo.min.js') %]"></script> +<script type="text/javascript" src="[% version('/js/fixmystreet.js') %]"></script> [% map_js %] diff --git a/templates/web/default/debug_footer.html b/templates/web/default/debug_footer.html index ffb3abbab..a1b7fc155 100644 --- a/templates/web/default/debug_footer.html +++ b/templates/web/default/debug_footer.html @@ -1,4 +1,4 @@ -[% IF c.config.STAGING_SITE %] +[% IF c.config.STAGING_SITE and c.config.SHOW_DEBUG %] <hr style="clear: both;"> diff --git a/templates/web/default/debug_header.html b/templates/web/default/debug_header.html index 1468d171c..92ccbc357 100644 --- a/templates/web/default/debug_header.html +++ b/templates/web/default/debug_header.html @@ -1,4 +1,4 @@ -[% IF c.config.STAGING_SITE %] +[% IF c.config.STAGING_SITE and c.config.SHOW_DEBUG %] <p class="dev-site-notice"> [% loc("This is a developer site; things might break at any time, and the database will be periodically deleted.") %] </p> diff --git a/templates/web/default/footer.html b/templates/web/default/footer.html index bd684b722..b1f22da2c 100644 --- a/templates/web/default/footer.html +++ b/templates/web/default/footer.html @@ -14,7 +14,7 @@ <div id="footer"> <p>[% loc('Built by <a href="http://www.mysociety.org/">mySociety</a>') %] - | <a href="/contact">[% loc("Contact FixMyStreet") %]</a></p> + | <a href="/contact">[% loc("Contact FixMyStreet") | replace(' ', ' ') %]</a></p> <p>Mobile apps: <a href="http://itunes.apple.com/gb/app/fixmystreet/id297456545">iPhone</a>, diff --git a/templates/web/default/front/stats.html b/templates/web/default/front/stats.html index 4b98ef31e..c5d931d08 100644 --- a/templates/web/default/front/stats.html +++ b/templates/web/default/front/stats.html @@ -4,8 +4,6 @@ # 'Template::Plugin::Number::Format' %] -<h2>[% loc('FixMyStreet updates') %]</h2> - [% stats = c.cobrand.front_stats_data(); @@ -43,4 +41,3 @@ [% END %] <div>[% tprintf( updates_text, stats.updates ) | comma %]</div> </div> - diff --git a/templates/web/default/header.html b/templates/web/default/header.html index b2bfd27d7..7d9a7fbd9 100644 --- a/templates/web/default/header.html +++ b/templates/web/default/header.html @@ -1,12 +1,19 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html lang="[% lang_code %]"> +<!doctype html> +<!--[if lt IE 7]><html class="ie6 oldie" lang="[% lang_code %]"><![endif]--> +<!--[if IE 7]> <html class="ie7 oldie" lang="[% lang_code %]"><![endif]--> +<!--[if IE 8]> <html class="ie8 oldie" lang="[% lang_code %]"><![endif]--> +<!--[if gt IE 8]><!--><html lang="[% lang_code %]"><!--<![endif]--> <head> - <link rel="stylesheet" type="text/css" href="/css/core.css"> - <link rel="stylesheet" type="text/css" href="/css/main.css"> - <!--[if LT IE 7]> - <link rel="stylesheet" type="text/css" href="/css/ie6.css"> - <![endif]--> + <meta name="viewport" content="initial-scale=1.0; target-densitydpi=device-dpi"> + <meta name="apple-mobile-web-app-capable" content="yes"> + <meta name="apple-mobile-web-app-status-bar-style" content="black"> + <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"> + <meta name="HandHeldFriendly" content="true"> + <meta name="mobileoptimized" content="0"> + + <link rel="stylesheet" type="text/css" href="[% version('/css/core.css') %]"> + <link rel="stylesheet" type="text/css" href="[% version('/css/main.css') %]"> [% INCLUDE 'common_header_tags.html' %] diff --git a/templates/web/default/index.html b/templates/web/default/index.html index 131701b0e..96f5c33de 100644 --- a/templates/web/default/index.html +++ b/templates/web/default/index.html @@ -29,12 +29,12 @@ <form action="[% c.uri_for('/around') %]" method="get" name="postcodeForm" id="postcodeForm"> <label for="pc">[% question %]:</label> - <input type="text" name="pc" value="" id="pc" size="10" maxlength="200"> - <input type="submit" value="[% loc('Go') %]" id="submit"> + <span><input type="text" name="pc" value="" id="pc" size="10" maxlength="200"> + <input type="submit" value="[% loc('Go') %]" id="submit"> + </span> [% c.cobrand.form_elements('postcodeForm') %] </form> - <div id="front_intro"> <h2>[% loc('How to report a problem') %]</h2> @@ -59,22 +59,24 @@ [% IF probs.size || recent_photos.size %] <div id="front_recent"> + <h2>[% loc('Recently reported problems') %]</h2> [% IF recent_photos.size %] - <h2>[% loc('Photos of recent reports') %]</h2> + <p id="front_photos"> [% FOREACH p IN recent_photos %] <a href="/report/[% p.id %]"><img border="0" height="100" src="/photo?tn=1;id=[% p.id %]" alt="[% p.title | html %]" title="[% p.title | html %]"></a> [% END %] + </p> [% END %] [% IF probs.size %] - <h2>[% loc('Recently reported problems') %]</h2> - <ul> + <ul id="nearby_lists"> [% FOREACH p IN probs %] <li> <a href="/report/[% p.id %]">[% p.title | html %]</a> + <small>[% prettify_epoch( p.confirmed_local.epoch, 1 ) %]</small> </li> [% END %] </ul> diff --git a/templates/web/default/maps/bing.html b/templates/web/default/maps/bing.html index 6b7114199..277886cdb 100644 --- a/templates/web/default/maps/bing.html +++ b/templates/web/default/maps/bing.html @@ -1,6 +1,6 @@ [% map_js = BLOCK %] <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&mkt=en-GB"></script> -<script type="text/javascript" src="/js/map-bing.js"></script> +<script type="text/javascript" src="[% version('/js/map-bing.js') %]"></script> [% END %] [% map_html = BLOCK %] diff --git a/templates/web/default/maps/fms.html b/templates/web/default/maps/fms.html index 2b322849b..956a22e69 100644 --- a/templates/web/default/maps/fms.html +++ b/templates/web/default/maps/fms.html @@ -1,9 +1,9 @@ [% map_js = BLOCK %] <!-- <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0&mkt=en-GB"></script> --> -<script type="text/javascript" src="/js/OpenLayers.fixmystreet.js"></script> -<script type="text/javascript" src="/js/map-OpenLayers.js"></script> -<script type="text/javascript" src="/js/map-bing-ol.js"></script> -<script type="text/javascript" src="/js/jquery.ba-hashchange.min.js"></script> +<script type="text/javascript" src="[% version('/js/OpenLayers.fixmystreet.js') %]"></script> +<script type="text/javascript" src="[% version('/js/map-OpenLayers.js') %]"></script> +<script type="text/javascript" src="[% version('/js/map-bing-ol.js') %]"></script> +<script type="text/javascript" src="[% version('/js/jquery.ba-hashchange.min.js') %]"></script> <!--[if lte IE 6]> <link rel="stylesheet" href="/jslib/OpenLayers-2.10/theme/default/ie6-style.css" type="text/css" /> <![endif]--> diff --git a/templates/web/default/maps/google.html b/templates/web/default/maps/google.html index 2e326734b..69020ea81 100644 --- a/templates/web/default/maps/google.html +++ b/templates/web/default/maps/google.html @@ -1,6 +1,6 @@ [% map_js = BLOCK %] <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> -<script type="text/javascript" src="/js/map-google.js"></script> +<script type="text/javascript" src="[% version('/js/map-google.js') %]"></script> [% END %] [% map_html = BLOCK %] diff --git a/templates/web/default/maps/osm-streetview.html b/templates/web/default/maps/osm-streetview.html index fd889e6ee..3bc4614c6 100644 --- a/templates/web/default/maps/osm-streetview.html +++ b/templates/web/default/maps/osm-streetview.html @@ -1,8 +1,8 @@ [% map_js = BLOCK %] -<script type="text/javascript" src="/js/OpenLayers.fixmystreet.js"></script> -<script type="text/javascript" src="/js/map-OpenLayers.js"></script> -<script type="text/javascript" src="/js/map-streetview.js"></script> -<script type="text/javascript" src="/js/jquery.ba-hashchange.min.js"></script> +<script type="text/javascript" src="[% version('/js/OpenLayers.fixmystreet.js') %]"></script> +<script type="text/javascript" src="[% version('/js/map-OpenLayers.js') %]"></script> +<script type="text/javascript" src="[% version('/js/map-streetview.js') %]"></script> +<script type="text/javascript" src="[% version('/js/jquery.ba-hashchange.min.js') %]"></script> <!--[if lte IE 6]> <link rel="stylesheet" href="/jslib/OpenLayers-2.10/theme/default/ie6-style.css" type="text/css" /> <![endif]--> diff --git a/templates/web/default/maps/osm.html b/templates/web/default/maps/osm.html index f583dd227..804710ad1 100644 --- a/templates/web/default/maps/osm.html +++ b/templates/web/default/maps/osm.html @@ -1,8 +1,8 @@ [% map_js = BLOCK %] -<script type="text/javascript" src="/js/OpenLayers.fixmystreet.js"></script> -<script type="text/javascript" src="/js/map-OpenLayers.js"></script> -<script type="text/javascript" src="/js/map-OpenStreetMap.js"></script> -<script type="text/javascript" src="/js/jquery.ba-hashchange.min.js"></script> +<script type="text/javascript" src="[% version('/js/OpenLayers.fixmystreet.js') %]"></script> +<script type="text/javascript" src="[% version('/js/map-OpenLayers.js') %]"></script> +<script type="text/javascript" src="[% version('/js/map-OpenStreetMap.js') %]"></script> +<script type="text/javascript" src="[% version('/js/jquery.ba-hashchange.min.js') %]"></script> <!--[if lte IE 6]> <link rel="stylesheet" href="/jslib/OpenLayers-2.10/theme/default/ie6-style.css" type="text/css" /> <![endif]--> diff --git a/templates/web/emptyhomes/header.html b/templates/web/emptyhomes/header.html index 017d3a6f5..d1198eada 100644 --- a/templates/web/emptyhomes/header.html +++ b/templates/web/emptyhomes/header.html @@ -1,14 +1,13 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html lang="[% lang_code %]"> +<!doctype html> +<!--[if lt IE 7]><html class="ie6 oldie" lang="[% lang_code %]"><![endif]--> +<!--[if IE 7]> <html class="ie7 oldie" lang="[% lang_code %]"><![endif]--> +<!--[if IE 8]> <html class="ie8 oldie" lang="[% lang_code %]"><![endif]--> +<!--[if gt IE 8]><!--><html lang="[% lang_code %]"><!--<![endif]--> <head> - <link rel="stylesheet" type="text/css" href="/css/core.css"> + <link rel="stylesheet" type="text/css" href="[% version('/css/core.css') %]"> <link rel="stylesheet" type="text/css" href="/cobrands/emptyhomes/css.css"> - <!--[if LT IE 7]> - <link rel="stylesheet" type="text/css" href="/css/ie6.css"> - <![endif]--> - -[% INCLUDE 'common_header_tags.html' %] + [% INCLUDE 'common_header_tags.html' %] </head> <body> diff --git a/templates/web/fiksgatami/footer.html b/templates/web/fiksgatami/footer.html index 173963ff8..986db3967 100644 --- a/templates/web/fiksgatami/footer.html +++ b/templates/web/fiksgatami/footer.html @@ -3,6 +3,7 @@ <h2 class="v">[% loc('Navigation') %]</h2> <ul id="navigation"> <li><a href="/">[% loc("Report a problem") %]</a></li> +<li id="nav_new"><a href="/my">[% loc("Your reports") %]</a></li> <li><a href="/reports">[% loc("All reports") %]</a></li> <li><a href="[% c.uri_for('/alert', {pc => pc}) | html %]">[% loc("Local alerts") %]</a></li> <li><a href="/faq">[% loc("Help") %]</a></li> diff --git a/templates/web/fiksgatami/header.html b/templates/web/fiksgatami/header.html index 44ebb7ee7..0e78bfc43 100644 --- a/templates/web/fiksgatami/header.html +++ b/templates/web/fiksgatami/header.html @@ -2,8 +2,8 @@ <html lang="[% lang_code %]"> <head> - <link rel="stylesheet" type="text/css" href="/css/core.css"> - <link rel="stylesheet" type="text/css" href="/cobrands/fiksgatami/css.css"> + <link rel="stylesheet" type="text/css" href="[% version('/css/core.css') %]"> + <link rel="stylesheet" type="text/css" href="[% version('/cobrands/fiksgatami/css.css') %]"> [% INCLUDE 'common_header_tags.html' %] </head> diff --git a/templates/web/lichfielddc/header.html b/templates/web/lichfielddc/header.html index e134cd6f9..e17e22b9d 100644 --- a/templates/web/lichfielddc/header.html +++ b/templates/web/lichfielddc/header.html @@ -2,7 +2,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="[% lang_code %]"> <head> - <link rel="stylesheet" type="text/css" href="/css/core.css" /> + <link rel="stylesheet" type="text/css" href="[% version('/css/core.css') %]"> <link rel="stylesheet" type="text/css" href="/cobrands/lichfielddc/css/layout.css" /> <link rel="stylesheet" type="text/css" href="http://www.lichfielddc.gov.uk/site/styles/standard_1_.css" media="screen" /> diff --git a/templates/web/southampton/header.html b/templates/web/southampton/header.html index 049034252..648027d8c 100644 --- a/templates/web/southampton/header.html +++ b/templates/web/southampton/header.html @@ -1,12 +1,12 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> - <link rel="stylesheet" type="text/css" href="/css/core.css" /> + <link rel="stylesheet" type="text/css" href="[% version('/css/core.css') %]"> <link rel="stylesheet" type="text/css" href="/cobrands/southampton/style.css" /> - <link rel="stylesheet" type="text/css" href="/cobrands/southampton/css.css" /> + <link rel="stylesheet" type="text/css" href="[% version('/cobrands/southampton/css.css') %]" /> [% INCLUDE 'common_header_tags.html' %] - <script type="text/javascript" src="/js/southampton.js"></script> + <script type="text/javascript" src="[% version('/js/southampton.js') %]"></script> </head> <body> diff --git a/web/cobrands/emptyhomes/css.css b/web/cobrands/emptyhomes/css.css index 168eae2de..e59497880 100644 --- a/web/cobrands/emptyhomes/css.css +++ b/web/cobrands/emptyhomes/css.css @@ -174,10 +174,16 @@ a:hover, a:active { padding: 20px; overflow: auto; } + +.ie6 #emptyhomes-footer { + zoom: 1; +} + #emptyhomes-footer div { float: left; margin-right: 2em; } + #emptyhomes-footer a { color: #FFFFFF; } diff --git a/web/cobrands/fiksgatami/css.css b/web/cobrands/fiksgatami/css.css deleted file mode 100644 index 6c2a4e16b..000000000 --- a/web/cobrands/fiksgatami/css.css +++ /dev/null @@ -1,193 +0,0 @@ -#mysociety #front_stats div { - width: 6.5em; -} -#mysociety label { - width: 6em; -} -#mysociety #fieldset div.checkbox, #mysociety #problem_submit { - padding-left: 6.5em; -} - -body { - font-family: "Gill Sans", "Gill Sans MT", Helvetica, Arial, sans-serif; - margin: 0; - padding: 0; -} - -h1 { - margin: 0; - font-size: 175%; -} - -h2 { - font-size: 140%; -} - -select, input, textarea { - font-size: 99%; -} - -#mysociety a.unsuitable-report { - font-size: small; -} -#mysociety blockquote { - border-left: solid 4px #1a4f7f; -} -#mysociety .a { - color: #000000; - background-color: #a9cff1; -} -#mysociety #postcodeForm { - background-color: #99bfe1; -} -#mysociety #front_stats div { - background-color: #99bfe1; -} -#mysociety p.promo { - border-top: 1px solid #bbb; - border-bottom: 1px solid #bbb; - background-color: #eee; - text-align: center; - padding: 0 0.5em; -} - -#header { - font-size: 200%; - font-weight: bold; - border-bottom: solid 2px #1a4f7f; - margin: 0; - padding: 0.15em 0.5em; - background-color: #99bfe1; - color: #1a4f7f; -} -#header a:link, #header a:visited { - color: #1a4f7f; - background-color: #99bfe1; - text-decoration: none; -} -#header a:active, #header a:hover { - text-decoration: underline; -} - -#my { - color: #0a3f6f; - background-color: #99bfe1; -} - -#mysociety { - width: 100%; - /* Must specify a width or IE goes crazy wrong! */ - position: relative; - margin: 0 auto; - max-width: 60em; - overflow: auto; -} - -/* Can't put the margin in #mysociety because of above IE craziness */ -#wrapper { - margin: 1em 2em; -} - -#meta { - list-style-type: none; - margin: 0.25em 0 0 1em; - padding: 0; - font-size: 0.875em; -} -#meta li { - display: inline; - margin: 0; - padding: 0 0 0 0.25em; - border-left: solid 1px #1a4f7f; -} -#meta li:first-child { - border-left: none; -} - -.v { - display: none; -} - -#navigation { - position: absolute; - top: 1em; - right: 1em; - padding: 0; - margin: 0; - list-style-type: none; -} -#navigation li { - display: inline; - padding: 0; - margin: 0; -} -#navigation a { - display: -moz-inline-box; - display: inline-block; - padding: 0.4em 1em; -} -#navigation a:link, #navigation a:visited { - color: #1a4f7f; -} -#navigation a:hover, #navigation a:active { - background-color: #1a4f7f; - color: #99bfe1; - -moz-border-radius-topleft: 0.5em; - -webkit-border-top-left-radius: 0.5em; - border-radius-top-left: 0.5em; - -moz-border-radius-topright: 0.5em; - -webkit-border-top-right-radius: 0.5em; - border-radius-top-right: 0.5em; -} - -#nav_new a { - background-image: url("/i/new.png"); - background-repeat: no-repeat; - background-position: 100% 0; -} - -#logo { - border: none; - position: absolute; - top: 3.3em; - right: 10px; -} - -#footer { - clear: both; - text-align: center; - border-top: solid 2px #ccc; - width: 50%; - margin: 1em auto 0; - padding: 0; - color: #333333; -} -#footer .l, #footer .r { - margin-top: 0; - text-align: left; - width: 45%; -} -#footer .l { - float: left; -} -#footer .r { - float: right; -} - -body { - font-family: Helmet, Freesans, "Helvetica Neue", Arial, sans-serif; -} - -a:link { - color: #215d93; -} -a:visited { - color: #518dc3; -} -a:hover, a:active { - color: #cc0000; -} - -#header { - padding: 0.1em 0.5em 0.15em; -} diff --git a/web/cobrands/southampton/css.css b/web/cobrands/southampton/css.css deleted file mode 100644 index fa0e07548..000000000 --- a/web/cobrands/southampton/css.css +++ /dev/null @@ -1,42 +0,0 @@ -#mysociety #map_box { - width: 422px; -} -#mysociety #map, #mysociety #drag { - width: 420px; - height: 420px; -} -#mysociety p#fixed, #mysociety p#unknown { - margin-right: 442px; - width: auto; -} -#mysociety #problem_form { - clear: both; -} -#mysociety h1 { - margin: 0; - font-size: 175%; -} -#mysociety h2 { - font-size: 140%; -} -#mysociety select, #mysociety input, #mysociety textarea { - font-size: 99%; -} -#mysociety a.unsuitable-report { - font-size: small; -} -#mysociety blockquote { - border-left: solid 4px #768eb5; -} -#mysociety .a { - color: #000000; - background-color: #e9eef7; -} -#mysociety #postcodeForm { - background-color: #e9eef7; -} -#mysociety #front_stats div { - background-color: #e9eef7; - width: 6em; - padding: 0.5em; -} diff --git a/web/css/_main.scss b/web/css/_main.scss index b4e4a13f0..d74d70ceb 100644 --- a/web/css/_main.scss +++ b/web/css/_main.scss @@ -1,5 +1,17 @@ // Generics +/* Thanks to normalize.css + * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units + * http://clagnut.com/blog/348/#c790 + * 3. Prevents iOS text size adjust after orientation change, without disabling user zoom + * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ + */ +html { + font-size: 100%; /* 1 */ + -webkit-text-size-adjust: 100%; /* 3 */ + -ms-text-size-adjust: 100%; /* 3 */ +} + body { font-family: "Gill Sans", "Gill Sans MT", Helvetica, Arial, sans-serif; margin: 0; @@ -17,6 +29,7 @@ h2 { select, input, textarea { font-size: 99%; + max-width: 99%; } #mysociety { @@ -158,6 +171,20 @@ select, input, textarea { right: 10px; } +.ie6 #logo { + display: none; +} + +.ie6 #logoie { + width: 133px; + height: 26px; + filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/mysociety-dark.png',sizingMethod='scale'); + position: absolute; + top: 4em; + right: 10px; + cursor: pointer; +} + #footer { clear: both; text-align: center; @@ -180,3 +207,38 @@ select, input, textarea { } } +@media all and (max-width: 50em) { + #logo { + display: none; + } + #header { + font-size: 150%; + } + #navigation { + position: static; + border-top: solid 2px $header_colour; + border-bottom: solid 2px $header_colour; + margin: 1em 0; + padding: 0.15em 0.5em; + text-align: center; + background-color: $header_back; + color: $header_colour; + + a:hover, a:active { + background-color: $header_colour; + color: $header_back; + -moz-border-radius: 0.5em; + -webkit-border-radius: 0.5em; + border-radius: 0.5em; + } + } + #footer { + width: auto; + padding: 0 1em; + border-top: none; + } + #wrapper { + margin: 0em 1em; + } +} + diff --git a/web/css/core.css b/web/css/core.css deleted file mode 100644 index 88181e3e8..000000000 --- a/web/css/core.css +++ /dev/null @@ -1,353 +0,0 @@ -#mysociety blockquote { - border-left: solid 4px #666666; - padding-left: 0.5em; } - #mysociety blockquote h2, #mysociety blockquote p { - margin: 0; } -#mysociety dt { - font-weight: bold; - margin-top: 0.5em; } -#mysociety .gone { - color: #666666; - background-color: #cccccc; } -#mysociety p.dev-site-notice, #mysociety p.error { - text-align: center; - color: #cc0000; - font-size: larger; } -#mysociety ul { - padding: 0 0 0 1.5em; - margin: 0; } -#mysociety ul.error { - color: #cc0000; - background-color: #ffeeee; - padding-right: 4px; - text-align: left; - font-size: larger; } -#mysociety div.form-error { - color: #cc0000; - margin: 5px 1em 5px 1em; - padding: 2px 5px 2px 5px; - float: left; - background-color: #ffeeee; - text-align: left; } -#mysociety div.form-field { - clear: both; } -#mysociety #advert_thin { - width: 50%; - margin: 1em auto; - text-align: center; - border-top: dotted 1px #999999; } -#mysociety #advert_hfymp { - border-top: dotted 1px #999999; - text-align: center; } -#mysociety p#expl { - text-align: center; - font-size: 150%; - margin: 0 2em; } -#mysociety #postcodeForm { - display: table; - _width: 33em; - text-align: center; - font-size: 150%; - margin: 1em auto; - padding: 1em; - -moz-border-radius: 1em; - -webkit-border-radius: 1em; - border-radius: 1em; } - #mysociety #postcodeForm label { - float: none; - padding-right: 0; } - #mysociety #postcodeForm #submit { - font-size: 83%; } -#mysociety #front_intro { - float: left; - width: 48%; } - #mysociety #front_intro p { - clear: both; - margin-top: 0; } -#mysociety #front_stats div { - text-align: center; - width: 5.5em; - -moz-border-radius: 0.5em; - -webkit-border-radius: 0.5em; - border-radius: 0.5em; - float: left; - margin: 0 1em 1em; } - #mysociety #front_stats div big { - font-size: 150%; - display: block; } -#mysociety #front_recent { - float: right; - width: 48%; - margin-bottom: 1em; } -#mysociety #front_recent img, #mysociety #alert_recent img { - margin-right: 0.25em; - margin-bottom: 0.25em; } -#mysociety #front_recent > h2:first-child, #mysociety #front_intro > h2:first-child { - margin-top: 0; } -#mysociety form { - margin: 0; } -#mysociety label { - float: left; - text-align: right; - padding-right: 0.5em; - width: 5em; } -#mysociety fieldset, #mysociety #fieldset { - border: none; - padding: 0.5em; } - #mysociety fieldset div, #mysociety #fieldset div { - margin-top: 2px; - clear: left; } -#mysociety legend { - display: none; } -#mysociety #fieldset div.checkbox, #mysociety #problem_submit { - padding-left: 5.5em; } -#mysociety #fieldset div.checkbox label, #mysociety label.n { - float: none; - text-align: left; - padding-right: 0; - width: auto; - cursor: pointer; - cursor: hand; } -#mysociety #questionnaire label, #mysociety #alerts label { - float: none; } -#mysociety .confirmed { - background-color: #ccffcc; - border: solid 2px #009900; - padding: 5px; - text-align: center; } -#mysociety #form_sign_in_yes { - float: left; - width: 47%; - padding-right: 1%; - border-right: solid 1px #999999; - margin-bottom: 1em; } -#mysociety #form_sign_in_no, #mysociety #fieldset #form_sign_in_no { - float: right; - width: 47%; - padding-left: 1%; - clear: none; - margin-bottom: 1em; } -#mysociety #category_meta { - margin-bottom: 30px; } -#mysociety #category_meta label { - width: 10em; } -#mysociety #map_box { - float: right; - width: 502px; - position: relative; - padding-left: 20px; - background-color: #ffffff; } -#mysociety p#copyright { - float: right; - text-align: right; - margin: 0 0 1em 0; - font-size: 78%; } -#mysociety #map { - border: solid 1px #000000; - width: 500px; - height: 500px; - overflow: hidden; - position: relative; - background-color: #f1f1f1; } -#mysociety #drag { - position: absolute; - width: 500px; - height: 500px; - right: 0; - top: 0; } - #mysociety #drag input, #mysociety #drag img { - position: absolute; - border: none; } - #mysociety #drag input { - cursor: crosshair; - background-color: #cccccc; } - #mysociety #drag img { - cursor: move; } - #mysociety #drag img.pin { - z-index: 100; - background-color: inherit; } - #mysociety #drag a img.pin { - cursor: pointer; - cursor: hand; } -#mysociety form#mapForm #map { - cursor: pointer; } -#mysociety form#mapForm .olTileImage { - cursor: crosshair; -} -#mysociety #text_map { - margin: 0 530px 1em 0; - padding: 5px; - text-align: center; - position: relative; - padding-left: 0.5em; - text-align: left; - margin-top: 0; - font-size: 110%; - background-color: #eeeeee; - -moz-border-radius-topleft: 1em; - -moz-border-radius-bottomleft: 1em; - -webkit-border-top-left-radius: 1em; - -webkit-border-bottom-left-radius: 1em; - border-top-left-radius: 1em; - border-bottom-left-radius: 1em; -} -#mysociety #text_map_arrow { - display: block; - position: absolute; - top: 0; - right: -28px; - width: 0; - height: 0; - line-height: 0; - font-size: 0; - border-style: solid; - border-width: 26px 14px 26px 14px; - border-color: #fff #fff #fff #eee; -} -#mysociety #text_no_map { - margin-top: 0; } -#mysociety #sub_map_links { - float: right; - clear: right; - margin-top: 0; } -#mysociety #fixed { - margin: 0 530px 1em 0; - padding: 5px; - text-align: center; - position: relative; - background-color: #ccffcc; - border: solid 2px #009900; } -#mysociety #unknown { - margin: 0 530px 1em 0; - padding: 5px; - text-align: center; - position: relative; - background-color: #ffcccc; - border: solid 2px #990000; -} -#mysociety #closed { - margin: 0 530px 1em 0; - padding: 5px; - text-align: center; - position: relative; - background-color: #ccccff; - border: solid 2px #000099; -} -#mysociety #progress { - margin: 0 530px 1em 0; - padding: 5px; - text-align: center; - position: relative; - background-color: #ffffcc; - border: solid 2px #999900; -} -#mysociety #updates div { - padding: 0 0 0.5em; - margin: 0 0 0.25em; - border-bottom: dotted 1px #5e552b; } - #mysociety #updates div .problem-update, #mysociety #updates div .update-text { - padding: 0; - margin: 0; - border-bottom: 0; } -#mysociety #updates p { - margin: 0; } -#mysociety #nearby_lists h2 { - margin-top: 1em; - margin-bottom: 0; -} -#mysociety #nearby_lists li small { - color: #666666; } -#mysociety #alert_links { - float: right; } -#mysociety #alert_links_area { - padding-left: 0.5em; - margin: 0; - color: #666; - font-size: smaller; -} -#mysociety #rss_alert { - text-decoration: none; } - #mysociety #rss_alert span { - text-decoration: underline; } -#mysociety #email_alert_box { - display: none; - position: absolute; - padding: 3px; - font-size: 83%; - border: solid 1px #7399C3; - background-color: #eeeeff; - color: #000000; } -#mysociety #email_alert_box p { - margin: 0; } -#mysociety .council_sent_info { - font-size: smaller; } -#mysociety #rss_items { - width: 62%; - float: left; } -#mysociety #rss_rhs { - border-left: 1px dashed #999; - width: 36%; - float: right; - padding: 0 0 0 0.5em; - margin: 0 0 1em 0.5em; } -#mysociety #rss_box { - padding: 10px; - border: 1px solid #999999; } -#mysociety #rss_feed { - list-style-type: none; - margin-bottom: 2em; } -#mysociety #rss_feed li { - margin-bottom: 1em; } -#mysociety #alert_or { - font-style: italic; - font-size: 125%; - margin: 0; } -#mysociety #rss_list { - float: left; - width: 47%; } -#mysociety #rss_list ul { - list-style-type: none; } -#mysociety #rss_buttons { - float: right; - width: 35%; - text-align: center; - margin-bottom: 2em; } -#mysociety #rss_local { - margin-left: 1.5em; - margin-bottom: 0; } -#mysociety #rss_local_alt { - margin: 0 0 2em 4em; } -#mysociety #alert_photos { - text-align: center; - float: right; - width: 150px; - margin-left: 0.5em; } -#mysociety #alert_photos h2 { - font-size: 100%; } -#mysociety #alert_photos img { - margin-bottom: 0.25em; } -#mysociety #col_problems, #mysociety #col_fixed { - float: left; - width: 48%; - margin-right: 1em; } -#mysociety .contact-details { - font-size: 80%; - margin-top: 2em; } - -.olControlAttribution { - bottom: 3px !important; - left: 3px; } - -.olControlPermalink { - bottom: 3px !important; - right: 3px; -} - -@media print { - #mysociety #map_box { - float: none; - margin: 0 auto; } - #mysociety #mysociety { - max-width: none; } - #mysociety #side { - margin-right: 0; } } diff --git a/web/css/core.scss b/web/css/core.scss index b962b38ae..f8a00a1f4 100644 --- a/web/css/core.scss +++ b/web/css/core.scss @@ -79,12 +79,11 @@ $map_width: 500px; p#expl { text-align: center; font-size: 150%; - margin: 0 2em; + margin: 0; } #postcodeForm { - display: table; - _width: 33em; + display: table; /* IE6 has fixed width set below */ text-align: center; font-size: 150%; margin: 1em auto; @@ -103,6 +102,12 @@ $map_width: 500px; } } + #geolocate_para { + font-size: 70%; + margin: 2px 0 0 0; + text-align: right; + } + #front_intro { float: left; width: 48%; @@ -113,14 +118,19 @@ $map_width: 500px; } } + #front_stats { + margin: 0 auto; + display: table; /* IE6 is set to floats below */ + border-spacing: 2em 1em; + } + #front_stats div { text-align: center; width: 5.5em; -moz-border-radius: 0.5em; -webkit-border-radius: 0.5em; border-radius: 0.5em; - float: left; - margin: 0 1em 1em; + display: table-cell; big { font-size: 150%; @@ -141,6 +151,10 @@ $map_width: 500px; margin-top: 0; } + #front_photos { + text-align: center; + } + // Forms form { @@ -232,7 +246,7 @@ $map_width: 500px; } #map { - border: solid 1px #000000; + border: solid 1px #666666; width: $map_width; // Twice a tile width height: $map_width; overflow: hidden; @@ -240,6 +254,7 @@ $map_width: 500px; background-color: #f1f1f1; } + /* Drag is only present in noscript form */ #drag { position: absolute; width: $map_width; @@ -542,6 +557,18 @@ $map_width: 500px; right: 3px; } +.ie6 { + #mysociety { + #front_stats div { + float: left; + margin: 0 1em 1em; + } + #postcodeForm { + width: 33em; + } + } +} + // Printing, SCSS doesn't handle @media nesting @media print { @@ -552,3 +579,61 @@ $map_width: 500px; } } +@media all and (max-width: 50em) { + #mysociety { + p#expl { + font-size: 110%; + } + + #postcodeForm { + font-size: 100%; + span { + display: block; + font-size: 150%; + } + #submit { + font-size: 100%; + } + } + + #geolocate_para { + font-size: 100%; + } + + #front_intro { + float: none; + width: auto; + } + #front_recent { + margin-top: 1em; + float: none; + width: auto; + clear: both; + } + #front_photos { + white-space: nowrap; + overflow: hidden; + } + #front_stats { + border-spacing: 0.5em 1em; + } + + #form_sign_in_yes { + float: none; + width: auto; + padding-right: 0; + border-right: none; + margin-bottom: 1em; + } + + #form_sign_in_no, #fieldset #form_sign_in_no { + float: none; + width: auto; + padding-left: 0; + clear: none; + margin-bottom: 1em; + } + + } +} + diff --git a/web/css/ie6.css b/web/css/ie6.css deleted file mode 100644 index fd3e26047..000000000 --- a/web/css/ie6.css +++ /dev/null @@ -1,17 +0,0 @@ -#logo { - display: none; -} - -#logoie { - width: 133px; - height: 26px; - filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/i/mysociety-dark.png',sizingMethod='scale'); - position: absolute; - top: 4em; - right: 10px; - cursor: pointer; -} - -#emptyhomes-footer { - zoom: 1; -} diff --git a/web/css/main.css b/web/css/main.css deleted file mode 100644 index a3fe3b400..000000000 --- a/web/css/main.css +++ /dev/null @@ -1,175 +0,0 @@ -a:link { - color: #0000ff; -} -a:visited { - color: #000099; -} -a:hover, a:active { - color: #ff0000; -} - -body { - font-family: "Gill Sans", "Gill Sans MT", Helvetica, Arial, sans-serif; - margin: 0; - padding: 0; -} - -h1 { - margin: 0; - font-size: 175%; -} - -h2 { - font-size: 140%; -} - -select, input, textarea { - font-size: 99%; -} - -#mysociety a.unsuitable-report { - font-size: small; -} -#mysociety blockquote { - border-left: solid 4px #5e552b; -} -#mysociety .a { - color: #000000; - background-color: #f3e5a5; -} -#mysociety #postcodeForm { - background-color: #e3d595; -} -#mysociety #front_stats div { - background-color: #e3d595; -} -#mysociety p.promo { - border-top: 1px solid #bbb; - border-bottom: 1px solid #bbb; - background-color: #eee; - text-align: center; - padding: 0 0.5em; -} - -#header { - font-size: 200%; - font-weight: bold; - border-bottom: solid 2px #5e552b; - margin: 0; - padding: 0.15em 0.5em; - background-color: #e3d595; - color: #5e552b; -} -#header a:link, #header a:visited { - color: #5e552b; - background-color: #e3d595; - text-decoration: none; -} -#header a:active, #header a:hover { - text-decoration: underline; -} - -#my { - color: #4e451b; - background-color: #e3d595; -} - -#mysociety { - width: 100%; - /* Must specify a width or IE goes crazy wrong! */ - position: relative; - margin: 0 auto; - max-width: 60em; - overflow: auto; -} - -/* Can't put the margin in #mysociety because of above IE craziness */ -#wrapper { - margin: 1em 2em; -} - -#meta { - list-style-type: none; - margin: 0.25em 0 0 1em; - padding: 0; - font-size: 0.875em; -} -#meta li { - display: inline; - margin: 0; - padding: 0 0 0 0.25em; - border-left: solid 1px #5e552b; -} -#meta li:first-child { - border-left: none; -} - -.v { - display: none; -} - -#navigation { - position: absolute; - top: 1em; - right: 1em; - padding: 0; - margin: 0; - list-style-type: none; -} -#navigation li { - display: inline; - padding: 0; - margin: 0; -} -#navigation a { - display: -moz-inline-box; - display: inline-block; - padding: 0.4em 1em; -} -#navigation a:link, #navigation a:visited { - color: #5e552b; -} -#navigation a:hover, #navigation a:active { - background-color: #5e552b; - color: #e3d595; - -moz-border-radius-topleft: 0.5em; - -webkit-border-top-left-radius: 0.5em; - border-radius-top-left: 0.5em; - -moz-border-radius-topright: 0.5em; - -webkit-border-top-right-radius: 0.5em; - border-radius-top-right: 0.5em; -} - -#nav_new a { - background-image: url("/i/new.png"); - background-repeat: no-repeat; - background-position: 100% 0; -} - -#logo { - border: none; - position: absolute; - top: 3.3em; - right: 10px; -} - -#footer { - clear: both; - text-align: center; - border-top: solid 2px #ccc; - width: 50%; - margin: 1em auto 0; - padding: 0; - color: #333333; -} -#footer .l, #footer .r { - margin-top: 0; - text-align: left; - width: 45%; -} -#footer .l { - float: left; -} -#footer .r { - float: right; -} diff --git a/web/down.default.html b/web/down.default.html index 10502d89b..c109ece36 100644 --- a/web/down.default.html +++ b/web/down.default.html @@ -1,12 +1,12 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> -<html lang="en-gb"> +<!doctype html> +<!--[if lt IE 7]><html class="ie6 oldie" lang="en-gb"><![endif]--> +<!--[if IE 7]> <html class="ie7 oldie" lang="en-gb"><![endif]--> +<!--[if IE 8]> <html class="ie8 oldie" lang="en-gb"><![endif]--> +<!--[if gt IE 8]><!--><html lang="en-gb"><!--<![endif]--> <head> <title>FixMyStreet</title> <link rel="stylesheet" type="text/css" href="/css/core.css"> <link rel="stylesheet" type="text/css" href="/css/main.css"> -<!--[if LT IE 7]> - <link rel="stylesheet" type="text/css" href="/css/ie6.css"> -<![endif]--> </head> <body> diff --git a/web/i/flower.gif b/web/i/flower.gif Binary files differnew file mode 100644 index 000000000..7e8f22a77 --- /dev/null +++ b/web/i/flower.gif diff --git a/web/js/fixmystreet.js b/web/js/fixmystreet.js index 9fa0f948b..48d66360b 100644 --- a/web/js/fixmystreet.js +++ b/web/js/fixmystreet.js @@ -83,4 +83,32 @@ $(function(){ } }); + // Geolocation + if (geo_position_js.init()) { + $('#postcodeForm').append('<p id="geolocate_para">Or <a href="#" id="geolocate_link">locate me automatically</a>').css({ "padding-bottom": "0.5em" }); + $('#geolocate_link').click(function(e) { + e.preventDefault(); + // Spinny thing! + $('#geolocate_para').append(' <img src="/i/flower.gif" alt="" align="bottom">'); + geo_position_js.getCurrentPosition(function(pos) { + $('#geolocate_para img').remove(); + var latitude = pos.coords.latitude; + var longitude = pos.coords.longitude; + location.href = '/around?latitude=' + latitude + ';longitude=' + longitude; + }, function(err) { + $('#geolocate_para img').remove(); + if (err.code == 1) { // User said no + } else if (err.code == 2) { // No position + $('#geolocate_para').html("Could not look up location"); + } else if (err.code == 3) { // Too long + $('#geolocate_para').html("No result returned"); + } else { // Unknown + $('#geolocate_para').html("Unknown error"); + } + }, { + timeout: 10000 + }); + }); + } + }); diff --git a/web/js/geo.min.js b/web/js/geo.min.js new file mode 100644 index 000000000..4f44b30ca --- /dev/null +++ b/web/js/geo.min.js @@ -0,0 +1,85 @@ +// geo-location-javascript v0.4.8 http://code.google.com/p/geo-location-javascript/ Copyright (c) 2009 Stan Wiechers. Licensed under the MIT licenses. + +var bb_success;var bb_error;var bb_blackberryTimeout_id=-1;function handleBlackBerryLocationTimeout() +{if(bb_blackberryTimeout_id!=-1) +{bb_error({message:"Timeout error",code:3});}} +function handleBlackBerryLocation() +{clearTimeout(bb_blackberryTimeout_id);bb_blackberryTimeout_id=-1;if(bb_success&&bb_error) +{if(blackberry.location.latitude==0&&blackberry.location.longitude==0) +{bb_error({message:"Position unavailable",code:2});} +else +{var timestamp=null;if(blackberry.location.timestamp) +{timestamp=new Date(blackberry.location.timestamp);} +bb_success({timestamp:timestamp,coords:{latitude:blackberry.location.latitude,longitude:blackberry.location.longitude}});} +bb_success=null;bb_error=null;}} +var geo_position_js=function(){var pub={};var provider=null;var u="undefined";pub.showMap=function(latitude,longitude) +{if(typeof(blackberry)!=u) +{blackberry.launch.newMap({"latitude":latitude*100000,"longitude":-longitude*100000});} +else +{window.location="http://maps.google.com/maps?q=loc:"+latitude+","+longitude;}} +pub.getCurrentPosition=function(success,error,opts) +{provider.getCurrentPosition(success,error,opts);} +pub.init=function() +{try +{if(typeof(geo_position_js_simulator)!=u) +{provider=geo_position_js_simulator;} +else if(typeof(bondi)!=u&&typeof(bondi.geolocation)!=u) +{provider=bondi.geolocation;} +else if(typeof(navigator.geolocation)!=u) +{provider=navigator.geolocation;pub.getCurrentPosition=function(success,error,opts) +{function _success(p) +{if(typeof(p.latitude)!=u) +{success({timestamp:p.timestamp,coords:{latitude:p.latitude,longitude:p.longitude}});} +else +{success(p);}} +provider.getCurrentPosition(_success,error,opts);}} +else if(typeof(window.blackberry)!=u&&blackberry.location.GPSSupported) +{if(typeof(blackberry.location.setAidMode)==u) +{return false;} +blackberry.location.setAidMode(2);pub.getCurrentPosition=function(success,error,opts) +{bb_success=success;bb_error=error;if(opts['timeout']) +{bb_blackberryTimeout_id=setTimeout("handleBlackBerryLocationTimeout()",opts['timeout']);} +else +{bb_blackberryTimeout_id=setTimeout("handleBlackBerryLocationTimeout()",60000);} +blackberry.location.onLocationUpdate("handleBlackBerryLocation()");blackberry.location.refreshLocation();} +provider=blackberry.location;} +else if(typeof(window.google)!="undefined"&&typeof(google.gears)!="undefined") +{provider=google.gears.factory.create('beta.geolocation');pub.getCurrentPosition=function(successCallback,errorCallback,options) +{function _successCallback(p) +{if(typeof(p.latitude)!="undefined") +{successCallback({timestamp:p.timestamp,coords:{latitude:p.latitude,longitude:p.longitude}});} +else +{successCallback(p);}} +provider.getCurrentPosition(_successCallback,errorCallback,options);}} +else if(typeof(Mojo)!=u&&typeof(Mojo.Service.Request)!="Mojo.Service.Request") +{provider=true;pub.getCurrentPosition=function(success,error,opts) +{parameters={};if(opts) +{if(opts.enableHighAccuracy&&opts.enableHighAccuracy==true) +{parameters.accuracy=1;} +if(opts.maximumAge) +{parameters.maximumAge=opts.maximumAge;} +if(opts.responseTime) +{if(opts.responseTime<5) +{parameters.responseTime=1;} +else if(opts.responseTime<20) +{parameters.responseTime=2;} +else +{parameters.timeout=3;}}} +r=new Mojo.Service.Request('palm://com.palm.location',{method:"getCurrentPosition",parameters:parameters,onSuccess:function(p){success({timestamp:p.timestamp,coords:{latitude:p.latitude,longitude:p.longitude,heading:p.heading}});},onFailure:function(e){if(e.errorCode==1) +{error({code:3,message:"Timeout"});} +else if(e.errorCode==2) +{error({code:2,message:"Position unavailable"});} +else +{error({code:0,message:"Unknown Error: webOS-code"+errorCode});}}});}} +else if(typeof(device)!=u&&typeof(device.getServiceObject)!=u) +{provider=device.getServiceObject("Service.Location","ILocation");pub.getCurrentPosition=function(success,error,opts) +{function callback(transId,eventCode,result){if(eventCode==4) +{error({message:"Position unavailable",code:2});} +else +{success({timestamp:null,coords:{latitude:result.ReturnValue.Latitude,longitude:result.ReturnValue.Longitude,altitude:result.ReturnValue.Altitude,heading:result.ReturnValue.Heading}});}} +var criteria=new Object();criteria.LocationInformationClass="BasicLocationInformation";provider.ILocation.GetLocation(criteria,callback);}}} +catch(e){if(typeof(console)!=u) +{console.log(e);} +return false;} +return provider!=null;} +return pub;}();
\ No newline at end of file |