diff options
49 files changed, 779 insertions, 544 deletions
diff --git a/.gitignore b/.gitignore index 777f3bafd..508180dba 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,9 @@ phonegap/www/js/config.js phonegap/Android/bin/ phonegap/iPhone/FixMyStreet.xcodeproj/project.xcworkspace/xcuserdata phonegap/Android/gen/ + +/fixmystreet-international +/perllib/FixMyStreet/Cobrand/MakeMyIsland.pm +/templates/email/makemyisland +/templates/web/makemyisland +/web/cobrands/makemyisland diff --git a/perllib/EastHantsWSDL.pm b/perllib/EastHantsWSDL.pm index d799f4025..181cc93a1 100644 --- a/perllib/EastHantsWSDL.pm +++ b/perllib/EastHantsWSDL.pm @@ -5,7 +5,7 @@ package EastHantsWSDL; my %methods = ( INPUTFEEDBACK => { - endpoint => 'http://www.easthants.gov.uk:80/forms.nsf/InputFeedback?OpenWebService', + endpoint => 'http://91.224.27.33/forms.nsf/InputFeedback?OpenWebService', soapaction => 'INPUTFEEDBACK', uri => 'urn:DefaultNamespace', parameters => [ diff --git a/perllib/FixMyStreet/App.pm b/perllib/FixMyStreet/App.pm index 866f1f462..787755a05 100644 --- a/perllib/FixMyStreet/App.pm +++ b/perllib/FixMyStreet/App.pm @@ -560,7 +560,8 @@ sub get_param_list { my ($c, $param) = @_; my $value = $c->req->params->{$param}; return @$value if ref $value; - return ($value); + return ($value) if defined $value; + return (); } =head2 set_param diff --git a/perllib/FixMyStreet/App/Controller/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm index abb858c32..114a2e19f 100644 --- a/perllib/FixMyStreet/App/Controller/Admin.pm +++ b/perllib/FixMyStreet/App/Controller/Admin.pm @@ -253,12 +253,9 @@ sub bodies : Path('bodies') : Args(0) { my $params = $c->forward('body_params'); my $body = $c->model('DB::Body')->create( $params ); - my $area_ids = $c->get_param('area_ids'); - if ($area_ids) { - $area_ids = [ $area_ids ] unless ref $area_ids; - foreach (@$area_ids) { - $c->model('DB::BodyArea')->create( { body => $body, area_id => $_ } ); - } + my @area_ids = $c->get_param_list('area_ids'); + foreach (@area_ids) { + $c->model('DB::BodyArea')->create( { body => $body, area_id => $_ } ); } $c->stash->{updated} = _('New body added'); @@ -413,13 +410,10 @@ sub update_contacts : Private { $c->stash->{body}->update( $params ); my @current = $c->stash->{body}->body_areas->all; my %current = map { $_->area_id => 1 } @current; - my $area_ids = $c->get_param('area_ids'); - if ($area_ids) { - $area_ids = [ $area_ids ] unless ref $area_ids; - foreach (@$area_ids) { - $c->model('DB::BodyArea')->find_or_create( { body => $c->stash->{body}, area_id => $_ } ); - delete $current{$_}; - } + my @area_ids = $c->get_param_list('area_ids'); + foreach (@area_ids) { + $c->model('DB::BodyArea')->find_or_create( { body => $c->stash->{body}, area_id => $_ } ); + delete $current{$_}; } # Remove any others $c->stash->{body}->body_areas->search( { area_id => [ keys %current ] } )->delete; diff --git a/perllib/FixMyStreet/Cobrand/Default.pm b/perllib/FixMyStreet/Cobrand/Default.pm index 9f44ca758..c3185ea05 100644 --- a/perllib/FixMyStreet/Cobrand/Default.pm +++ b/perllib/FixMyStreet/Cobrand/Default.pm @@ -922,4 +922,3 @@ sub jurisdiction_id_example { } 1; - diff --git a/perllib/FixMyStreet/Cobrand/MakeMyIsland.pm b/perllib/FixMyStreet/Cobrand/MakeMyIsland.pm deleted file mode 100644 index f263df4cc..000000000 --- a/perllib/FixMyStreet/Cobrand/MakeMyIsland.pm +++ /dev/null @@ -1,12 +0,0 @@ -package FixMyStreet::Cobrand::MakeMyIsland; -use base 'FixMyStreet::Cobrand::Default'; - -use strict; -use warnings; - -sub country { - return 'MV'; -} - -1; - diff --git a/perllib/FixMyStreet/Cobrand/Oxfordshire.pm b/perllib/FixMyStreet/Cobrand/Oxfordshire.pm index 44b3a0fa9..b9d48a95c 100644 --- a/perllib/FixMyStreet/Cobrand/Oxfordshire.pm +++ b/perllib/FixMyStreet/Cobrand/Oxfordshire.pm @@ -47,5 +47,60 @@ sub users_can_hide { return 1; } sub default_show_name { 0 } -1; +=head2 problem_response_days + +Returns the number of working days that are expected to elapse +between the problem being reported and it being responded to by +the council/body. + +=cut + +sub problem_response_days { + my $self = shift; + my $p = shift; + + return 10 if $p->category eq 'Bridges'; + return 10 if $p->category eq 'Carriageway Defect'; # phone if urgent + return 10 if $p->category eq 'Debris/Spillage'; + return 10 if $p->category eq 'Drainage'; + return 10 if $p->category eq 'Fences'; + return 10 if $p->category eq 'Flyposting'; + return 10 if $p->category eq 'Footpaths/ Rights of way (usually not tarmac)'; + return 10 if $p->category eq 'Gully and Catchpits'; + return 10 if $p->category eq 'Ice/Snow'; # phone if urgent + return 10 if $p->category eq 'Manhole'; + return 10 if $p->category eq 'Mud and Debris'; # phone if urgent + return 10 if $p->category eq 'Oil Spillage'; # phone if urgent + return 10 if $p->category eq 'Pavements'; + return 10 if $p->category eq 'Pothole'; # phone if urgent + return 10 if $p->category eq 'Property Damage'; + return 10 if $p->category eq 'Public rights of way'; + return 10 if $p->category eq 'Road Marking'; + return 10 if $p->category eq 'Road traffic signs'; + return 10 if $p->category eq 'Roads/highways'; + return 10 if $p->category eq 'Skips and scaffolding'; + return 10 if $p->category eq 'Street lighting'; + return 10 if $p->category eq 'Traffic lights'; # phone if urgent + return 10 if $p->category eq 'Traffic'; + return 10 if $p->category eq 'Trees'; + return 10 if $p->category eq 'Utilities'; + return 10 if $p->category eq 'Vegetation'; + + return undef; +} +sub reports_ordering { + return { -desc => 'confirmed' }; +} + +sub pin_colour { + my ( $self, $p, $context ) = @_; + return 'grey' if $p->state eq 'not responsible'; + return 'green' if $p->is_fixed || $p->is_closed; + return 'red' if $p->state eq 'confirmed'; + return 'yellow'; +} + +sub on_map_default_status { return 'open'; } + +1; diff --git a/perllib/FixMyStreet/SendReport/Email.pm b/perllib/FixMyStreet/SendReport/Email.pm index 4507091c7..fa4d437fb 100644 --- a/perllib/FixMyStreet/SendReport/Email.pm +++ b/perllib/FixMyStreet/SendReport/Email.pm @@ -18,9 +18,6 @@ sub build_recipient_list { my ($body_email, $confirmed, $note) = ( $contact->email, $contact->confirmed, $contact->note ); - $body_email = essex_contact($row->latitude, $row->longitude) if $body->areas->{2225}; - $body_email = oxfordshire_contact($row->latitude, $row->longitude) if $body->areas->{2237} && $body_email eq 'SPECIAL'; - unless ($confirmed) { $all_confirmed = 0; $note = 'Body ' . $row->bodies_str . ' deleted' @@ -112,30 +109,6 @@ sub send { return $result; } -# Essex has different contact addresses depending upon the district -# Might be easier if we start storing in the db all areas covered by a point -# Will do for now :) -sub essex_contact { - my $district = _get_district_for_contact(@_); - my $email; - $email = 'eastarea' if $district == 2315 || $district == 2312; - $email = 'midarea' if $district == 2317 || $district == 2314 || $district == 2316; - $email = 'southarea' if $district == 2319 || $district == 2320 || $district == 2310; - $email = 'westarea' if $district == 2309 || $district == 2311 || $district == 2318 || $district == 2313; - die "Returned district $district which is not in Essex!" unless $email; - return "highways.$email\@essexcc.gov.uk"; -} - -# Oxfordshire has different contact addresses depending upon the district -sub oxfordshire_contact { - my $district = _get_district_for_contact(@_); - my $email; - $email = 'northernarea' if $district == 2419 || $district == 2420 || $district == 2421; - $email = 'southernarea' if $district == 2417 || $district == 2418; - die "Returned district $district which is not in Oxfordshire!" unless $email; - return "$email\@oxfordshire.gov.uk"; -} - sub _get_district_for_contact { my ( $lat, $lon ) = @_; my $district = diff --git a/perllib/FixMyStreet/SendReport/Open311.pm b/perllib/FixMyStreet/SendReport/Open311.pm index cfcac9bd8..fa216466e 100644 --- a/perllib/FixMyStreet/SendReport/Open311.pm +++ b/perllib/FixMyStreet/SendReport/Open311.pm @@ -13,6 +13,7 @@ use Readonly; Readonly::Scalar my $COUNCIL_ID_OXFORDSHIRE => 2237; Readonly::Scalar my $COUNCIL_ID_WARWICKSHIRE => 2243; +Readonly::Scalar my $COUNCIL_ID_GREENWICH => 2493; sub send { my $self = shift; @@ -127,7 +128,7 @@ sub send { $revert = 1; } - if ($row->cobrand eq 'fixmybarangay' || $row->cobrand eq 'greenwich') { + if ($row->cobrand eq 'fixmybarangay' || $row->bodies_str =~ /$COUNCIL_ID_GREENWICH/) { # FixMyBarangay endpoints expect external_id as an attribute, as do Greenwich $row->set_extra_fields( { 'name' => 'external_id', 'value' => $row->id } ); $revert = 1; diff --git a/t/cobrand/oxfordshire.t b/t/cobrand/oxfordshire.t new file mode 100644 index 000000000..d9f880d07 --- /dev/null +++ b/t/cobrand/oxfordshire.t @@ -0,0 +1,50 @@ +use strict; +use warnings; +use Test::More; + +use FixMyStreet::TestMech; +my $mech = FixMyStreet::TestMech->new; + +subtest 'check /ajax defaults to open reports only' => sub { + my $categories = [ 'Bridges', 'Fences', 'Manhole' ]; + my $params = { + postcode => 'OX28 4DS', + latitude => 51.7847208192, + longitude => -1.49445264029, + }; + my $bbox = ($params->{longitude} - 0.01) . ',' . ($params->{latitude} - 0.01) + . ',' . ($params->{longitude} + 0.01) . ',' . ($params->{latitude} + 0.01); + + # Create one open and one fixed report in each category + foreach my $category ( @$categories ) { + foreach my $state ( 'confirmed', 'fixed' ) { + my %report_params = ( + %$params, + category => $category, + state => $state, + ); + $mech->create_problems_for_body( 1, 2237, 'Around page', \%report_params ); + } + } + + FixMyStreet::override_config { + ALLOWED_COBRANDS => [ { 'oxfordshire' => '.' } ], + MAPIT_URL => 'http://mapit.mysociety.org/', + }, sub { + my $json = $mech->get_ok_json( '/ajax?status=all&bbox=' . $bbox ); + my $pins = $json->{pins}; + is scalar @$pins, 6, 'correct number of reports created'; + + $json = $mech->get_ok_json( '/ajax?bbox=' . $bbox ); + $pins = $json->{pins}; + is scalar @$pins, 3, 'correct number of reports returned with no filters'; + + $json = $mech->get_ok_json( '/ajax?filter_category=Fences&bbox=' . $bbox ); + $pins = $json->{pins}; + is scalar @$pins, 1, 'only one Fences report by default'; + } +}; + +# Clean up +$mech->delete_problems_for_body( 2237 ); +done_testing(); diff --git a/templates/web/base/index-steps.html b/templates/web/base/index-steps.html index fac84faba..431791c20 100644 --- a/templates/web/base/index-steps.html +++ b/templates/web/base/index-steps.html @@ -21,15 +21,8 @@ <li>Or visit the Barangay Center in person</li> <li>Staff? <a href="/auth">Sign in</a> and click on the map! [% ELSE %] - [% IF c.cobrand.moniker == 'makemyisland' %] - <li> - Locate the problem on the - <a href="/around?pc=Fonadhoo">map of the island</a> - </li> - [% ELSE %] - <li>[% question %]</li> - <li>[% loc('Locate the problem on a map of the area') %]</li> - [% END %] + <li>[% question %]</li> + <li>[% loc('Locate the problem on a map of the area') %]</li> <li>[% loc('Enter details of the problem') %]</li> [% IF c.cobrand.is_council %] <li>Confirm the report and [% c.cobrand.council_name %] will investigate</li> diff --git a/templates/web/base/reports/body.html b/templates/web/base/reports/body.html index 841e3db60..b98c5bec6 100755 --- a/templates/web/base/reports/body.html +++ b/templates/web/base/reports/body.html @@ -43,32 +43,8 @@ [% INCLUDE '_hart_hants_note.html' %] [% END %] -[% IF NOT body.areas.size AND c.cobrand.country == 'GB' %] - <p id="unknown" class="alert">This council no longer exists. - [% IF body.name.match('Penwith|Kerrier|Carrick|Restormel|Caradon|North Cornwall') %] - Its area is now covered by <a href="/reports/Cornwall">Cornwall Council</a>. - [% ELSIF body.name.match('Durham|Easington|Sedgefield|Teesdale|Wear Valley|Derwentside|Chester le Street') %] - Its area is now covered by <a href="/reports/Durham+County">Durham County Council</a>. - [% ELSIF body.name.match('Blyth Valley|Wansbeck|Castle Morpeth|Tynedale|Alnwick|Berwick upon Tweed') %] - Its area is now covered by <a href="/reports/Northumberland">Northumberland County Council</a>. - [% ELSIF body.name.match('North Shropshire|Oswestry|Shrewsbury and Atcham|South Shropshire|Bridgnorth') %] - Its area is now covered by <a href="/reports/Shropshire">Shropshire Council</a>. - [% ELSIF body.name.match('Salisbury|West Wiltshire|Kennet|North Wiltshire') %] - Its area is now covered by <a href="/reports/Wiltshire">Wiltshire Council</a>. - [% ELSIF body.name.match('Ellesmere Port and Neston|Vale Royal|Chester') %] - Its area is now covered by <a href="/reports/Cheshire+West+and+Chester">Cheshire West and Chester Council</a>. - [% ELSIF body.name.match('Macclesfield|Congleton|Crewe and Nantwich') %] - Its area is now covered by <a href="/reports/Cheshire+East">Cheshire East Council</a>. - [% ELSIF body.name.match('Mid Bedfordshire|South Bedfordshire') %] - Its area is now covered by <a href="/reports/Central+Bedfordshire">Central Bedfordshire Council</a>. - [% ELSIF body.name.match('Cheshire') %] - Its area is now covered by <a href="/reports/Cheshire+West+and+Chester">Cheshire West and Chester Council</a> or - <a href="/reports/Cheshire+East">Cheshire East Council</a>. - [% ELSIF body.name.match('Bedfordshire') %] - Its area is now covered by <a href="/reports/Bedford">Bedford Borough Council</a> or - <a href="/reports/Central+Bedfordshire">Central Bedfordshire Council</a>. - [% END %] - </p> +[% IF NOT body.areas.size AND c.cobrand.moniker == 'fixmystreet' %] + [% INCLUDE 'reports/_body_gone.html' %] [% ELSE %] [% INCLUDE 'reports/_rss.html' %] [% END %] diff --git a/templates/web/fixmystreet.com/reports/_body_gone.html b/templates/web/fixmystreet.com/reports/_body_gone.html new file mode 100755 index 000000000..5a8232110 --- /dev/null +++ b/templates/web/fixmystreet.com/reports/_body_gone.html @@ -0,0 +1,45 @@ +<p id="unknown" class="alert">This council no longer exists. + [% IF body.name.match('Antrim|Newtownabbey') %] + Its area is now covered by <a href="/reports/Antrim+and+Newtownabbey">Antrim and Newtownabbey Borough Council</a>. + [% ELSIF body.name.match('Ards|North Down') %] + Its area is now covered by <a href="/reports/Ards+and+North+Down">Ards and North Down Borough Council</a>. + [% ELSIF body.name.match('Armagh|Banbridge|Craigavon') %] + Its area is now covered by <a href="/reports/Armagh+City%2C+Banbridge+and+Craigavon">Armagh City, Banbridge and Craigavon Borough Council</a>. + [% ELSIF body.name.match('Coleraine|Ballymoney|Moyle|Limavady') %] + Its area is now covered by <a href="/reports/Causeway+Coast+and+Glens">Causeway Coast and Glens District Council</a>. + [% ELSIF body.name.match('Derry|Strabane') %] + Its area is now covered by <a href="/reports/Derry+City+and+Strabane">Derry City and Strabane District Council</a>. + [% ELSIF body.name.match('Fermanagh|Omagh') %] + Its area is now covered by <a href="/reports/Fermanagh+and+Omagh">Fermanagh and Omagh District Council</a>. + [% ELSIF body.name.match('Lisburn|Castlereagh') %] + Its area is now covered by <a href="/reports/Lisburn+and+Castlereagh">Lisburn and Castlereagh City Council</a>. + [% ELSIF body.name.match('Carrickfergus|Larne|Ballymena') %] + Its area is now covered by <a href="/reports/Mid+and+East+Antrim">Mid and East Antrim Borough Council</a>. + [% ELSIF body.name.match('Dungannon|Cookstown|Magherafelt') %] + Its area is now covered by <a href="/reports/Mid+Ulster">Mid Ulster District Council</a>. + [% ELSIF body.name.match('Newry|Down') %] + Its area is now covered by <a href="/reports/Newry%2C+Mourne+and+Down">Newry, Mourne and Down District Council</a>. + [% ELSIF body.name.match('Penwith|Kerrier|Carrick|Restormel|Caradon|North Cornwall') %] + Its area is now covered by <a href="/reports/Cornwall">Cornwall Council</a>. + [% ELSIF body.name.match('Durham|Easington|Sedgefield|Teesdale|Wear Valley|Derwentside|Chester le Street') %] + Its area is now covered by <a href="/reports/Durham+County">Durham County Council</a>. + [% ELSIF body.name.match('Blyth Valley|Wansbeck|Castle Morpeth|Tynedale|Alnwick|Berwick upon Tweed') %] + Its area is now covered by <a href="/reports/Northumberland">Northumberland County Council</a>. + [% ELSIF body.name.match('North Shropshire|Oswestry|Shrewsbury and Atcham|South Shropshire|Bridgnorth') %] + Its area is now covered by <a href="/reports/Shropshire">Shropshire Council</a>. + [% ELSIF body.name.match('Salisbury|West Wiltshire|Kennet|North Wiltshire') %] + Its area is now covered by <a href="/reports/Wiltshire">Wiltshire Council</a>. + [% ELSIF body.name.match('Ellesmere Port and Neston|Vale Royal|Chester') %] + Its area is now covered by <a href="/reports/Cheshire+West+and+Chester">Cheshire West and Chester Council</a>. + [% ELSIF body.name.match('Macclesfield|Congleton|Crewe and Nantwich') %] + Its area is now covered by <a href="/reports/Cheshire+East">Cheshire East Council</a>. + [% ELSIF body.name.match('Mid Bedfordshire|South Bedfordshire') %] + Its area is now covered by <a href="/reports/Central+Bedfordshire">Central Bedfordshire Council</a>. + [% ELSIF body.name.match('Cheshire') %] + Its area is now covered by <a href="/reports/Cheshire+West+and+Chester">Cheshire West and Chester Council</a> or + <a href="/reports/Cheshire+East">Cheshire East Council</a>. + [% ELSIF body.name.match('Bedfordshire') %] + Its area is now covered by <a href="/reports/Bedford">Bedford Borough Council</a> or + <a href="/reports/Central+Bedfordshire">Central Bedfordshire Council</a>. + [% END %] +</p> diff --git a/templates/web/fixmystreet.com/static/council.html b/templates/web/fixmystreet.com/static/council.html index b7c158818..6327c8bab 100644 --- a/templates/web/fixmystreet.com/static/council.html +++ b/templates/web/fixmystreet.com/static/council.html @@ -31,10 +31,11 @@ <div class="councils-section"> <div class="fixed-container"> <div class="section-content"> - <h2>Channel shift</h2> - <p>Every council wants it. There are plenty of ideas on how to achieve it - but FixMyStreet for Councils will actually deliver the holy grail of channel shift.</p> - <p>It’s a tried and tested catalyst for shifting citizen contact online - our existing client councils have reported a shift of up to 300% from phone to online reporting. Why? Because when online reporting systems are this easy, phone contact plummets. </p> - <p>With installation costs from £4,500, FixMyStreet starts paying for itself within weeks - and, most importantly, frees up your staff for more important tasks.</p> + <H2>A real money saver</H2> +<p>FixMyStreet for Councils has brought our clients proven savings in staffing costs and a 50% reduction in average call-handling times. </P> +<p>Every council knows about channel shift - and FixMyStreet is a tried and tested catalyst for shifting citizen contact online.</p> +<p>Existing client councils have reported a shift of up to 300% from phone to online reporting. Why? Because when online reporting systems are this easy, phone contact plummets.</p> +<p>With installation costs from £4,500, FixMyStreet starts paying for itself within weeks - and, most importantly, frees up your staff for more important tasks.</P> </div> </div> </div> diff --git a/templates/web/fixmystreet/my/my.html b/templates/web/fixmystreet/my/my.html index 9c857aab9..16779e503 100644 --- a/templates/web/fixmystreet/my/my.html +++ b/templates/web/fixmystreet/my/my.html @@ -58,9 +58,3 @@ </div> [% INCLUDE 'footer.html' %] - -[% BLOCK problem %] - [% "<ul class='issue-list-a full-width'>" IF loop.first %] - [% INCLUDE 'report/_item.html', problem = p, no_fixed =1 %] - [% "</ul>" IF loop.last %] -[% END %] diff --git a/templates/web/fixmystreet/report/display.html b/templates/web/fixmystreet/report/display.html index 91762e022..0006241c3 100644 --- a/templates/web/fixmystreet/report/display.html +++ b/templates/web/fixmystreet/report/display.html @@ -72,6 +72,7 @@ </div> +[% TRY %][% INCLUDE 'report/sharing.html' %][% CATCH file %][% END %] [% INCLUDE 'report/updates.html' %] [% INCLUDE 'report/update-form.html' %] [% INCLUDE 'footer.html' %] diff --git a/templates/web/makemyisland/_location_buttons.html b/templates/web/makemyisland/_location_buttons.html deleted file mode 100644 index 3604c466f..000000000 --- a/templates/web/makemyisland/_location_buttons.html +++ /dev/null @@ -1,15 +0,0 @@ -<div id="location-buttons"> - <!-- - Fonadhoo (the island) - Barasil (northern most) - Medhuavah (in the middle) - Kurigam (south) - --> - <div class="island-button"> - <a href="/around?pc=Fonadhoo" class="front-page-button">Fonadhoo island</a> - </div> - <a href="/around?latitude=1.846;longitude=73.510" class="front-page-button">Barasil</a> - <a href="/around?latitude=1.833;longitude=73.501" class="front-page-button">Medhuavah</a> - <a href="/around?latitude=1.822;longitude=73.488" class="front-page-button">Kurigam</a> - -</div> diff --git a/templates/web/makemyisland/around/postcode_form.html b/templates/web/makemyisland/around/postcode_form.html deleted file mode 100644 index 81cf948ef..000000000 --- a/templates/web/makemyisland/around/postcode_form.html +++ /dev/null @@ -1,8 +0,0 @@ -<div id="front-main"> - <div id="front-main-container"> - <h1>Report, view, or discuss local problems</h1> - <h2>(dumping waste, street lighting, erosion)</h2> - [% INCLUDE '_location_buttons.html' %] - </div> -</div> - diff --git a/templates/web/makemyisland/footer.html b/templates/web/makemyisland/footer.html deleted file mode 100644 index 318e620bf..000000000 --- a/templates/web/makemyisland/footer.html +++ /dev/null @@ -1,33 +0,0 @@ - [% IF pagefooter %] - <footer role="contentinfo"> - [% INCLUDE 'front/footer-marketing.html' %] - </footer> - [% END %] - </div><!-- .content role=main --> - </div><!-- .container --> - </div><!-- .table-cell --> - - <div class="nav-wrapper"> - <div class="nav-wrapper-2"> - <div id="main-nav" role="navigation"> - <ul id="main-menu"> - <li><[% IF c.req.uri.path == '/' %]span[% ELSE %]a href="[% c.config.BASE_URL %]/"[% END %] class="report-a-problem-btn" - >[% loc("Report a problem") %]</[% c.req.uri.path == '/' ? 'span' : 'a' %]></li>[% - %]<li><[% IF c.req.uri.path == '/my' %]span[% ELSE %]a href="[% c.config.BASE_URL %]/my"[% END - %]>[% loc("Your reports") %]</[% c.req.uri.path == '/my' ? 'span' : 'a' %]></li>[% - %]<li><[% IF c.req.uri.path == '/reports' %]span[% ELSE %]a href="[% c.config.BASE_URL %]/reports"[% END - %]>[% loc("All reports") %]</[% c.req.uri.path == '/reports' ? 'span' : 'a' %]></li>[% - %]<li><[% IF c.req.uri.path == '/alert' %]span[% ELSE %]a href="[% c.config.BASE_URL %]/alert[% pc ? '/list?pc=' : '' %][% pc | uri %]"[% END - %]>[% loc("Local alerts") %]</[% c.req.uri.path == '/alert' ? 'span' : 'a' %]></li>[% - %]<li><[% IF c.req.uri.path == '/faq' %]span[% ELSE %]a href="[% c.config.BASE_URL %]/faq"[% END - %]>[% loc("Help") %]</[% c.req.uri.path == '/faq' ? 'span' : 'a' %]></li>[% - %]<li id="top-nav-privacy"><[% IF c.req.uri.path == '/privacy' %]span[% ELSE %]a href="[% c.config.BASE_URL %]/privacy"[% END - %]>[% loc("Privacy") %]</[% c.req.uri.path == '/privacy' ? 'span' : 'a' %]></li> - </ul> - </div> - </div> - </div> - - </div> <!-- .wrapper --> -</body> -</html> diff --git a/templates/web/makemyisland/header_logo.html b/templates/web/makemyisland/header_logo.html deleted file mode 100644 index 5d8b285dc..000000000 --- a/templates/web/makemyisland/header_logo.html +++ /dev/null @@ -1,2 +0,0 @@ - <a href="http://www.undp.org/" id="united-nations-dp-logo">UNDP</a> - <a href="[% c.config.BASE_URL %]/" id="site-logo">[% PROCESS 'site-name.html -%]</a> diff --git a/templates/web/makemyisland/site-name.html b/templates/web/makemyisland/site-name.html deleted file mode 100644 index 3eb903cd1..000000000 --- a/templates/web/makemyisland/site-name.html +++ /dev/null @@ -1 +0,0 @@ -MakeMyIsland diff --git a/templates/web/oxfordshire/around/_report_banner.html b/templates/web/oxfordshire/around/_report_banner.html new file mode 100644 index 000000000..52a869262 --- /dev/null +++ b/templates/web/oxfordshire/around/_report_banner.html @@ -0,0 +1,10 @@ +<h1 class="big-green-banner"> + [% loc( 'Click map to report a problem' ) %] +</h1> +<div class="click-the-map"> + <h2>[% loc( 'Have you found a problem here?' ) %]</h2> + <p>Click on the map to report it</p> +</div> +<a id="skip-this-step" href="[% url_skip %]" rel="nofollow"> + [% loc("Can't see the map? <em>Skip this step</em>") %] +</a> diff --git a/templates/web/makemyisland/front/footer-marketing.html b/templates/web/oxfordshire/around/around_map_list_items.html index e69de29bb..e69de29bb 100644 --- a/templates/web/makemyisland/front/footer-marketing.html +++ b/templates/web/oxfordshire/around/around_map_list_items.html diff --git a/templates/web/oxfordshire/around/extra_text.html b/templates/web/oxfordshire/around/extra_text.html index 439bf00a2..107d3324f 100644 --- a/templates/web/oxfordshire/around/extra_text.html +++ b/templates/web/oxfordshire/around/extra_text.html @@ -1,5 +1,3 @@ <div class="extra-text"> <p>Please do not use this form for reporting <a href="/faq#pothole" target="_blank">emergencies and urgent problems</a>.</p> - - <p><img src="/i/pin-yellow.png" class="extra-text__image" width="48" height="64" /> - <b>these are problems that have already been reported</b>.<br>Click them to see more details.</p> </div> diff --git a/templates/web/oxfordshire/around/on_map_list_items.html b/templates/web/oxfordshire/around/on_map_list_items.html new file mode 100644 index 000000000..893f5c698 --- /dev/null +++ b/templates/web/oxfordshire/around/on_map_list_items.html @@ -0,0 +1,11 @@ +[% all_reports = on_map.merge(around_map) %] +[% IF all_reports.size %] + [% FOREACH problem IN all_reports %] + [% UNLESS problem.title; problem = problem.problem; END %] + [% INCLUDE "reports/_list-entry.html" %] + [% END %] +[% ELSE %] + <li class="empty"> + <p>[% loc('There are no reports to show.') %]</p> + </li> +[% END %] diff --git a/templates/web/oxfordshire/around/tabbed_lists.html b/templates/web/oxfordshire/around/tabbed_lists.html new file mode 100644 index 000000000..0d7dfddfc --- /dev/null +++ b/templates/web/oxfordshire/around/tabbed_lists.html @@ -0,0 +1,5 @@ +[% INCLUDE "reports/_list-filters.html" %] + +<ul class="report-list" id="current"> + [% INCLUDE "around/on_map_list_items.html" %] +</ul> diff --git a/templates/web/oxfordshire/header.html b/templates/web/oxfordshire/header.html index 19bb23374..0bbdaf353 100644 --- a/templates/web/oxfordshire/header.html +++ b/templates/web/oxfordshire/header.html @@ -24,73 +24,59 @@ <script src="[% start %][% version('/cobrands/oxfordshire/position_map.js') %]" charset="utf-8"></script> [% INCLUDE 'common_header_tags.html', js_override = '/cobrands/fixmystreet/fixmystreet.js' %] [% extra_js %] - + [% INCLUDE 'tracking_code.html' %] </head> <body class="[% bodyclass | html IF bodyclass %]"> <div id="oxford-wrapper"> - <div id="oxford-header" class="desk-only oxford-left"> - <a href="http://www.oxfordshire.gov.uk/" title="Home" class="logo">Oxfordshire County Council<span></span></a> - <span id="oxford-links"> - <a href="http://www.oxfordshire.gov.uk/" title="">Oxfordshire County Council home</a> - </span> - <div style="clear:both"></div> - <span class="header"><a href="/">Report a road or street problem</a></span> - <div class="oxford-user"> - <p> - [% IF c.user_exists %] - [% tprintf(loc('Hi %s'), c.user.name || c.user.email) %] - <a href="/auth/sign_out">[% loc('sign out') %]</a> - [% END %] - </p> - </div> - - - <div id="navigation"> - <div class="menubar"> - <div class="menu-inner"> - <ul class="menu"> - <li> - <[% IF c.req.uri.path == '/' %]span[% ELSE %]a href="/"[% END %]>[% "Report" %]</[% c.req.uri.path == '/' ? 'span' : 'a' %]> - </li> - <li> - <[% IF c.req.uri.path == '/my' OR ( c.req.uri.path == '/auth' AND c.req.params.r == 'my' ) %]span[% ELSE %]a href="/my"[% END - %]>[% loc("Your reports") %]</[% ( c.req.uri.path == '/my' OR ( c.req.uri.path == '/auth' AND c.req.params.r == 'my' ) ) ? 'span' : 'a' %]> - </li> - <li> - <[% IF c.req.uri.path == '/reports/Oxfordshire' %]span[% ELSE %]a href="/reports/Oxfordshire"[% END - %]>[% loc("All reports") %]</[% c.req.uri.path == '/reports' ? 'span' : 'a' %]> - </li> - <li> - <[% IF c.req.uri.path == '/alert' %]span[% ELSE %]a href="/alert[% pc ? '/list?pc=' : '' %][% pc | uri %]"[% END - %]>[% loc("Local alerts") %]</[% c.req.uri.path == '/alert' ? 'span' : 'a' %]> - </li> - <li> - <[% IF c.req.uri.path == '/faq' %]span[% ELSE %]a href="/faq"[% END - %]>[% loc("Help") %]</[% c.req.uri.path == '/faq' ? 'span' : 'a' %]> - </li> - </ul> - </div> + <div id="oxford-header" class="desk-only oxford-left"> + <a href="http://www.oxfordshire.gov.uk/" title="Home" class="logo">Oxfordshire County Council<span></span></a> + <span id="oxford-links"> + <a href="http://www.oxfordshire.gov.uk/" title="">Oxfordshire County Council home</a> + </span> + <div style="clear:both"></div> + <span class="header"><a href="/">Report a road or street problem</a></span> + + [% IF c.user_exists %] + <div class="oxford-user"> + <p> + [% tprintf(loc('Hi %s'), c.user.name || c.user.email) %] + <a href="/auth/sign_out">[% loc('Sign out') %]</a> + </p> + </div> + [% END %] + + <div id="navigation"> + <div class="menubar"> + <div class="menu-inner"> + <ul class="menu"> + <li> + <[% IF c.req.uri.path == '/' %]span[% ELSE %]a href="/"[% END %]>[% "Report" %]</[% c.req.uri.path == '/' ? 'span' : 'a' %]> + </li> + <li> + <[% IF c.req.uri.path == '/my' OR ( c.req.uri.path == '/auth' AND c.req.params.r == 'my' ) %]span[% ELSE %]a href="/my"[% END + %]>[% loc("Your reports") %]</[% ( c.req.uri.path == '/my' OR ( c.req.uri.path == '/auth' AND c.req.params.r == 'my' ) ) ? 'span' : 'a' %]> + </li> + <li> + <[% IF c.req.uri.path == '/reports/Oxfordshire' %]span[% ELSE %]a href="/reports/Oxfordshire"[% END + %]>[% loc("All reports") %]</[% c.req.uri.path == '/reports' ? 'span' : 'a' %]> + </li> + <li> + <[% IF c.req.uri.path == '/alert' %]span[% ELSE %]a href="/alert[% pc ? '/list?pc=' : '' %][% pc | uri %]"[% END + %]>[% loc("Local alerts") %]</[% c.req.uri.path == '/alert' ? 'span' : 'a' %]> + </li> + <li> + <[% IF c.req.uri.path == '/faq' %]span[% ELSE %]a href="/faq"[% END + %]>[% loc("Help") %]</[% c.req.uri.path == '/faq' ? 'span' : 'a' %]> + </li> + </ul> + </div> </div> </div> - - - - - </div> <!-- end of oxford header --> -<!-- - <div id="oxford-main-menu" class="desk-only"> - <ul class="tabs"> - <li class="home first"></li>[% - %]<li></li>[% - %]<li></li>[% - %]<li></li>[% - %]<li class="last"></li> - </ul> - </div> ---> - + + </div> <!-- end of oxford header --> + <div class="wrapper"> <div class="table-cell"> @@ -104,7 +90,7 @@ [% IF c.user_exists %] <div id="user-meta"> <p> - [% tprintf(loc('Hi %s'), c.user.name || c.user.email) %] + [% tprintf(loc('Hi %s'), c.user.name || c.user.email) %] <a href="/auth/sign_out">[% loc('sign out') %]</a> </p> </div> diff --git a/templates/web/oxfordshire/js/translation_strings.html b/templates/web/oxfordshire/js/translation_strings.html deleted file mode 100644 index e326da0a8..000000000 --- a/templates/web/oxfordshire/js/translation_strings.html +++ /dev/null @@ -1,40 +0,0 @@ - translation_strings = { - update: '[% loc('Please enter a message') | replace("'", "\\'") %]', - title: '[% loc('Please enter a subject') | replace("'", "\\'") %]', - detail: '[% loc('Please enter some details') | replace("'", "\\'") %]', - name: { - required: '[% loc('Please enter your name') | replace("'", "\\'") %]', - validName: '[% loc('Please enter your full name, councils need this information – if you do not wish your name to be shown on the site, untick the box below') | replace("'", "\\'") %]' - }, - category: '[% loc('Please choose a category') | replace("'", "\\'") %]', - rznvy: { - required: '[% loc('Please enter your email') | replace("'", "\\'") %]', - email: '[% loc('Please enter a valid email') | replace("'", "\\'") %]' - }, - email: { - required: '[% loc('Please enter your email') | replace("'", "\\'") %]', - email: '[% loc('Please enter a valid email') | replace("'", "\\'") %]' - }, - fms_extra_title: '[% loc('Please enter your title') | replace("'", "\\'") %]', - first_name: '[% loc('Please enter your first name') | replace("'", "\\'") %]', - last_name: '[% loc('Please enter your second name') | replace("'", "\\'") %]', - geolocate: '[% loc('or locate me automatically') | replace("'", "\\'") %]', - right_place: '[% loc('Right place?') | replace("'", "\\'") %]', - try_again: '[% loc('Try again') | replace("'", "\\'") %]', - place_pin_on_map: '[% loc('Place pin on map') | replace("'", "\\'") %]', - home: '[% loc('Home') | replace("'", "\\'") %]', - back: '[% loc('Back') | replace("'", "\\'") %]', - how_to_send: '[% loc('How to send successful reports') | replace("'", "\\'") %]', - more_details: '[% loc('Details') | replace("'", "\\'") %]', - - geolocation_declined: '[% loc('You declined; please fill in the box above') | replace("'", "\\'") %]', - geolocation_no_position: '[% loc('Could not look up location') | replace("'", "\\'") %]', - geolocation_no_result: '[% loc('No result returned') | replace("'", "\\'") %]', - geolocation_unknown: '[% loc('Unknown error') | replace("'", "\\'") %]', - - reporting_a_problem: '[% loc('Reporting a problem') | replace("'", "\\'") %]', - ok: '[% loc('OK') | replace("'", "\\'") %]', - map: '[% loc('MAP') | replace("'", "\\'") %]', - - report_problem_heading: '[% loc('Click on the map to report a problem') | replace("'", "\\'") %]' - }; diff --git a/templates/web/oxfordshire/my/_problem-list.html b/templates/web/oxfordshire/my/_problem-list.html new file mode 100644 index 000000000..1ff69f9fb --- /dev/null +++ b/templates/web/oxfordshire/my/_problem-list.html @@ -0,0 +1,25 @@ +<ul class='issue-list-a full-width'> + [% IF problems.all %] + [% FOREACH p = problems.all %] + [% INCLUDE 'reports/_list-entry.html', problem = p, no_fixed =1 %] + [% END %] + [% ELSE %] + <li class="empty"> + <p>[% loc('There are no reports to show.') %]</p> + </li> + [% END %] +</ul> + +[% IF ! problems.size %] +<!-- Preserve behaviour of map filters despite map not being shown --> +<script type="text/javascript"> + (function($) { + $(function() { + $(".report-list-filters [type=submit]").hide(); + $(".report-list-filters select").change(function() { + $(this).closest("form").submit(); + }); + }) + })(window.jQuery); +</script> +[% END %] diff --git a/templates/web/oxfordshire/report/_council_sent_info.html b/templates/web/oxfordshire/report/_council_sent_info.html index 464c10256..499fd4637 100644 --- a/templates/web/oxfordshire/report/_council_sent_info.html +++ b/templates/web/oxfordshire/report/_council_sent_info.html @@ -1,16 +1,24 @@ [% IF problem.whensent || problem.can_display_external_id %] - <small class="council_sent_info"><br> - [% IF problem.whensent %] - [% problem.duration_string(c) %]<br> - [% END %] - <strong> - [% IF problem.can_display_external_id %] - [% IF problem.whensent %] - Council ref: [% problem.external_id %] - [% ELSE %] - [% problem.external_body %] ref: [% problem.external_id %] - [% END %] - [% END %] - </strong> - </small> + <div class="council_info_box"> + [% IF problem.can_display_external_id %] + <h3> + [% IF problem.whensent %] + Council ref: [% problem.external_id %] + [% ELSE %] + [% problem.external_body %] ref: [% problem.external_id %] + [% END %] + </h3> + [% END %] + + [% IF c.cobrand.problem_response_days(problem) > 0 %] + <p> + Problems in the + [% problem.category %] + category are generally responded to within + [% c.cobrand.problem_response_days(problem) %] + working days. + </p> + [% END %] + + </div> [% END %] diff --git a/templates/web/oxfordshire/report/_main.html b/templates/web/oxfordshire/report/_main.html new file mode 100644 index 000000000..3bb786141 --- /dev/null +++ b/templates/web/oxfordshire/report/_main.html @@ -0,0 +1,98 @@ +[% moderating = c.user && c.user.has_permission_to('moderate', problem.bodies_str) %] + +[% IF moderating %] +[%# TODO: extract stylesheet! %] +<style> + .moderate-edit label { + display: inline-block; + height: 1em; + margin-top: 0; + } + + .moderate-edit input { + display: inline-block; + } + + .moderate-edit { display: none } + .moderate-edit :disabled { + background: #ddd; + } + br { + line-height: 0.5em; + } +</style> +[% END %] + +<div class="problem-header cf" problem-id="[% problem.id %]"> + [% IF moderating %] + [% original = problem.moderation_original_data %] + <form method="post" action="/moderate/report/[% problem.id %]"> + <input type="button" class="btn moderate moderate-display" value="moderate"> + <div class="moderate-edit"> + <input type="checkbox" class="hide-document" name="problem_hide"> + <label for="problem_hide">Hide report completely?</label> + <br /> + <input type="checkbox" name="problem_show_name" [% problem.anonymous ? '' : 'checked' %]> + <label for="problem_show_name">Show name publicly?</label> + [% IF problem.photo or original.photo %] + <br /> + <input type="checkbox" name="problem_show_photo" [% problem.photo ? 'checked' : '' %]> + <label for="problem_show_photo">Show Photo?</label> + [% END %] + </div> + [% END %] + <h1 class="moderate-display">[% problem.title | html %]</h1> + [% IF moderating %] + <div class="moderate-edit"> + [% IF problem.title != original.title %] + <input type="checkbox" name="problem_revert_title" class="revert-title"> + <label for="problem_revert_title">Revert to original title</label> + [% END %] + <h1><input type="text" name="problem_title" value="[% problem.title | html %]"></h1> + </div> + [% END %] + + <p class="report_meta_info"> + [% problem.meta_line(c) | html %] + [%- IF !problem.used_map AND c.cobrand.moniker != 'emptyhomes' %]; <strong>([% loc('there is no pin shown as the user did not use the map') %])</strong>[% END %] + </p> + [% IF problem.whensent %] + <p class="council_sent_info">[% problem.duration_string(c) %]</p> + [% END %] + [% mlog = problem.latest_moderation_log_entry(); IF mlog %] + <p>Moderated by [% mlog.user.from_body.name %] at [% prettify_dt(mlog.whenedited) %]</p> + [% END %] + + [% INCLUDE 'report/_support.html' %] + + [% INCLUDE 'report/photo.html' object=problem %] + <div class="moderate-display"> + [% add_links( problem.detail ) | html_para %] + </div> + + [% IF moderating %] + <div class="moderate-edit"> + [% IF problem.detail != original.detail %] + <input type="checkbox" name="problem_revert_detail" class="revert-textarea"> + <label for="problem_revert_detail">Revert to original text</label> + [% END %] + <textarea name="problem_detail">[% add_links( problem.detail ) %]</textarea> + </div> + + <div class="moderate-edit"> + <label for="moderation_reason">Moderation reason:</label> + <input type="text" name="moderation_reason" placeholder="Describe why you are moderating this"> + <input type="submit" class="red-btn" value="Moderate it"> + <input type="button" class="btn cancel" value="cancel"> + </div> + </form> + [% END %] + + [% IF problem.bodies_str %] + [% INCLUDE 'report/_council_sent_info.html' %] + [% ELSE %] + <div class="council_info_box"> + <p>[% loc('Not reported to council') %]</p> + </div> + [% END %] +</div> diff --git a/templates/web/oxfordshire/reports/_list-entry.html b/templates/web/oxfordshire/reports/_list-entry.html new file mode 100644 index 000000000..cd70410d3 --- /dev/null +++ b/templates/web/oxfordshire/reports/_list-entry.html @@ -0,0 +1,6 @@ +<li class="[% c.cobrand.pin_colour(problem) %]"> + <a href="[% c.uri_for('/report', problem.id ) %]" class="[% problem.category %]"> + <h3>[% problem.title | html %]</h3> + <p>Reported [%- prettify_dt( problem.confirmed, 1 ) %]</p> + </a> +</li> diff --git a/templates/web/oxfordshire/reports/_list-filters.html b/templates/web/oxfordshire/reports/_list-filters.html new file mode 100644 index 000000000..5d610261b --- /dev/null +++ b/templates/web/oxfordshire/reports/_list-filters.html @@ -0,0 +1,32 @@ +[% IF use_section_wrapper %] +<section class="full-width"> + <form method="get" action=""> +[% END %] + + <p class="report-list-filters"> + <label> + Show + <select name="status" id="statuses"> + <option value="all"[% ' selected' IF filter_status == 'all' %]>all reports</option> + <option value="open"[% ' selected' IF filter_status == 'open' %]>unfixed reports</option> + <option value="fixed"[% ' selected' IF filter_status == 'fixed' %]>fixed reports</option> + </select> + </label> + <label> + about + <select name="filter_category" id="filter_categories"> + <option value="">Everything</option> + [% FOR category IN filter_categories %] + <option value="[% category | html %]"[% ' selected' IF filter_category == category %]> + [% category | html %] + </option> + [% END %] + </select> + </label> + <input type=submit value="Go" /> + </p> + +[% IF use_section_wrapper %] + </form> +</section> +[% END %] diff --git a/web/cobrands/fixmystreet/fixmystreet.js b/web/cobrands/fixmystreet/fixmystreet.js index 85366537e..f5e6a8926 100644 --- a/web/cobrands/fixmystreet/fixmystreet.js +++ b/web/cobrands/fixmystreet/fixmystreet.js @@ -463,7 +463,8 @@ $.fn.drawer = function(id, ajax) { offset = -110; } if (cobrand == 'oxfordshire') { - offset = -13 * 16; + // Oxfordshire uses box-sizing:border-box and padding to work out height + offset = 0; } heightFix(window, '.content', offset, 1); // in case we have a map that isn't full screen diff --git a/web/cobrands/makemyisland/_colours.scss b/web/cobrands/makemyisland/_colours.scss deleted file mode 100644 index 56816bb77..000000000 --- a/web/cobrands/makemyisland/_colours.scss +++ /dev/null @@ -1,25 +0,0 @@ -/* COLOURS */ - - -// colours specified by MakeMyIsland team -// from http://www.w3schools.com/cssref/css_colorsfull.asp - -$blue: #4169E1; // "RoyalBlue" -$green: #40E0D0; // "Turquoise" - -$primary: $green; -$primary_b: #000000; -$primary_text: #222222; - -$base_bg: $blue; -$base_fg: $primary_text; - -$map_nav_bg: $blue; -$nav_fg: #fff; -$nav_fg_hover: $primary; - -$col_click_map: $blue; -$col_click_map_dark: darken($blue, 10%); - -$col_fixed_label: #00BD08; -$col_fixed_label_dark: #4B8304; diff --git a/web/cobrands/makemyisland/base.scss b/web/cobrands/makemyisland/base.scss deleted file mode 100644 index 234a9783f..000000000 --- a/web/cobrands/makemyisland/base.scss +++ /dev/null @@ -1,42 +0,0 @@ -@import "../sass/h5bp"; -@import "./_colours"; -@import "../sass/mixins"; -@import "compass"; - -@import "../sass/base"; - -#site-logo { - background: url(/cobrands/makemyisland/make-my-island-logo.gif) 0px 0px no-repeat; - background-size: contain; - background-color: $blue; -} - -#united-nations-dp-logo { - display: none; -} - -#site-header, -body.frontpage #site-header, -body.mappage #site-header, -{ - min-height: 3em; - @include background(none); - background-color: $blue; -} - -div#location-buttons { - margin: 1.333em auto; - .island-button { - margin:0 auto 1.5em auto; - } - a.front-page-button { - // @include button-reset(#FFD000, #cc9000, #aa7000, #300, #FFD000, #cc9000, #aa7000, #300); - @include button-reset($blue, darken($blue, 10%), darken($blue, 30%), white, $blue, darken($blue, 20%), darken($blue, 30%), white); - #front-main & { - text-decoration: none; - } - &:visited, &:hover { - color:white; - } - } -} diff --git a/web/cobrands/makemyisland/config.rb b/web/cobrands/makemyisland/config.rb deleted file mode 100644 index cab97b18f..000000000 --- a/web/cobrands/makemyisland/config.rb +++ /dev/null @@ -1,25 +0,0 @@ -# Require any additional compass plugins here. - -# Set this to the root of your project when deployed: -http_path = "/" -css_dir = "" -sass_dir = "" -images_dir = "" -javascripts_dir = "" - -# You can select your preferred output style here (can be overridden via the command line): -# output_style = :expanded or :nested or :compact or :compressed - -# To enable relative paths to assets via compass helper functions. Uncomment: -# relative_assets = true - -# To disable debugging comments that display the original location of your selectors. Uncomment: -# line_comments = false - -# If you prefer the indented syntax, you might want to regenerate this -# project again passing --syntax sass, or you can uncomment this: -# preferred_syntax = :sass -# and then run: -# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass - -line_comments = false # by Compass.app diff --git a/web/cobrands/makemyisland/layout.scss b/web/cobrands/makemyisland/layout.scss deleted file mode 100644 index 28b265240..000000000 --- a/web/cobrands/makemyisland/layout.scss +++ /dev/null @@ -1,39 +0,0 @@ -@import "_colours"; - -@import "../sass/layout"; - -#site-logo, -body.frontpage #site-logo { - margin-top: -8px; - margin-left: 10px; - height: 100px; - background: url(make-my-island-logo.gif) 0px 0px no-repeat; -} - -body.mappage #site-logo { - height: 60px; - background-size: contain; -} - -body.frontpage #site-logo { - margin-top: -35px; - width: 100px; -} - -body.frontpage #united-nations-dp-logo { - display: block; - float:right; - position: relative; - background: url(undp-logo-2013.png) top right no-repeat; - background-size: contain; - background-color: transparent; - text-indent: -999999px; - height: 100px; - width: 51px; - margin: 10px 10px 0 0; - z-index:3; // clear of the nav container -} - -ul#main-menu { - margin-right: 70px; // to clear the UNDP logo -}
\ No newline at end of file diff --git a/web/cobrands/makemyisland/make-my-island-logo.gif b/web/cobrands/makemyisland/make-my-island-logo.gif Binary files differdeleted file mode 100755 index f7b6b8d5a..000000000 --- a/web/cobrands/makemyisland/make-my-island-logo.gif +++ /dev/null diff --git a/web/cobrands/makemyisland/undp-logo-2013.png b/web/cobrands/makemyisland/undp-logo-2013.png Binary files differdeleted file mode 100644 index ed537e6cf..000000000 --- a/web/cobrands/makemyisland/undp-logo-2013.png +++ /dev/null diff --git a/web/cobrands/oxfordshire/_colours.scss b/web/cobrands/oxfordshire/_colours.scss index 900f96d3d..ed494674a 100644 --- a/web/cobrands/oxfordshire/_colours.scss +++ b/web/cobrands/oxfordshire/_colours.scss @@ -2,6 +2,8 @@ $oxfordshire_dk_green: #114500; $oxfordshire_lt_green: #339E00; +$oxfordshire_very_light_green: #f6fcf0; +$oxfordshire_mid_grey_green: #e0e5da; $primary: $oxfordshire_lt_green; $primary_b: $oxfordshire_dk_green; @@ -10,6 +12,9 @@ $primary_text: #fff; $base_bg: #fff; $base_fg: #000; +// Taken from the OCC website +$oxfordshire_link_colour: #0c62ba; + /* Unused here */ $map_nav_bg: #222; $nav_fg: #fff; @@ -19,7 +24,7 @@ $col_click_map: $oxfordshire_lt_green; $col_click_map_dark: $primary_text; $col_fixed_label: $oxfordshire_lt_green; -$col_fixed_label_dark: $primary_text; +$col_fixed_label_dark: mix(#000, $oxfordshire_lt_green, 50%); // Oxfordshire have toasty orange buttons diff --git a/web/cobrands/oxfordshire/base.scss b/web/cobrands/oxfordshire/base.scss index c3242dbec..2f297582c 100644 --- a/web/cobrands/oxfordshire/base.scss +++ b/web/cobrands/oxfordshire/base.scss @@ -45,3 +45,29 @@ dd, p { line-height: 1.4em; } +// TODO: Should this be applied to the base base stylesheet, to prevent possible similar issues in other cobrands? +#sub_map_links { + line-height: 1em; +} + +.council_info_box { + border-top: 1px solid #ccc; + padding: 1em; + margin: 0 -1em -1em -1em; // counteract 1em padding on sidebar without using .full-width which sets an explicit width + + h3 { + font-weight: bold; + font-size: 1em; + margin: 0 0 0.5em 0; + } + + p { + color: #666; + margin: 0 0 0.5em 0; + font-size: 0.9em; + } + + & > :last-child { + margin-bottom: 0; + } +} diff --git a/web/cobrands/oxfordshire/images/click-map-chevron-small.gif b/web/cobrands/oxfordshire/images/click-map-chevron-small.gif Binary files differnew file mode 100644 index 000000000..fdc871c41 --- /dev/null +++ b/web/cobrands/oxfordshire/images/click-map-chevron-small.gif diff --git a/web/cobrands/oxfordshire/images/logo-light-green.gif b/web/cobrands/oxfordshire/images/logo-light-green.gif Binary files differnew file mode 100644 index 000000000..6bf7b6940 --- /dev/null +++ b/web/cobrands/oxfordshire/images/logo-light-green.gif diff --git a/web/cobrands/oxfordshire/layout.scss b/web/cobrands/oxfordshire/layout.scss index 9b6308e09..195c5342f 100644 --- a/web/cobrands/oxfordshire/layout.scss +++ b/web/cobrands/oxfordshire/layout.scss @@ -1,8 +1,9 @@ @import "_colours"; @import "../sass/layout"; +@import "../sass/report_list"; body, body a { - font-family:"Trebuchet MS",Arial, Helvetica, sans-serif; + font-family:"Trebuchet MS",Arial, Helvetica, sans-serif; } #front-main { @@ -65,23 +66,6 @@ body.twothirdswidthpage { } } -//------------------------------------------------- -// following declarations concern the map display: -//------------------------------------------------- -// So that map appears underneath the header -.wrapper { - position: relative; - .table-cell { - padding-left: 13px; // added 13px to match Oxfordshire's normal look - padding-right: 13px; - } -} -.ie6, .ie7 { - .wrapper { - padding-top: 1em; - } -} - // To prevent font size larger interfering with the fixed Oxfordshire layout .container { width: auto; } .full-width { width: 464px; } @@ -110,59 +94,233 @@ body.twothirdswidthpage .content { } body.mappage { - .content { - width: 345px; - padding: 1em; - position: relative; - z-index: 1; + $mappage-header-height: 60px; + + #oxford-wrapper { + width: auto; + padding: 0; + background: transparent; + } + + #oxford-header { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 2; // 1 more than `body.mappage .content` + width: auto; + min-height: $mappage-header-height; + padding: 0; + background-color: #069b01; // picked from header.jpg + background-position: 100% 40%; + overflow: auto; + box-shadow: 0 0 5px rgba(0,0,0,0.3); + + & > * { + display: none; + } + + a.logo { + display: block; + float: left; + height: $mappage-header-height; + width: 200px; + margin: 0; + background: transparent url("/cobrands/oxfordshire/images/logo-light-green.gif") no-repeat 50% 50%; + text-indent: -999px; + + * { + display: none; + } + } + + #navigation { + display: block; + position: static; + float: right; + } + + .menubar { + display: block; + width: auto; + border-top: none; + padding: 0; + + // override super-specific "#navigation .menubar .menu-inner .menu>li>a" + // selector from OCC header styles in oxfordshire.scss + .menu-inner .menu { + li { + margin-bottom: 0; + } + + a, span { + line-height: 20px; + padding-top: ($mappage-header-height - 20px) / 2; + padding-bottom: ($mappage-header-height - 20px) / 2; + } + } + } + + .oxford-user { + display: block; + font-size: 13px; + margin: 0; + color: mix(#ddd, #069b01, 80%); + + p { + margin: 0; + padding-top: ($mappage-header-height - 20px) / 2; + padding-bottom: ($mappage-header-height - 20px) / 2; + line-height: 20px; + } + + a { + padding: 0 10px; + text-decoration: none; + } + } + } + + .wrapper .table-cell { + padding-left: 0; + padding-right: 0; + } + + .container { + width: auto; + } + + .content { + padding: 1em; + padding-top: $mappage-header-height + 10px; + position: relative; + z-index: 1; + box-shadow: 0 0 5px rgba(0,0,0,0.3); + background-color: $oxfordshire_very_light_green; + + // fixmystreet.js gives this element a min-height equal to the window height. + // Set border-box sizing, so that our padding doesn't get added onto height. + box-sizing: border-box; + + .extra-text { + padding: 1em; + margin: 0 -1em; + border-bottom: 1px solid $oxfordshire_mid_grey_green; + + p:last-child { + margin-bottom: 0; + } + } + + .full-width { + width: auto; + margin: 0 -1em; } - .container { - width: auto; - min-height: 635px; - z-index: auto; + input[type="file"] { + background-color: transparent; } - .full-width { width: 377px; } - .shadow-wrap { width: 377px; } + } + + // Space between green header and sidebar content + #report-a-problem-main, + .problem-header { + padding-top: 1em; + } + + // The "Fixed" / "Unknown" tabs on Oxford report pages are "folded" + // round right edge of the sidebar, rather than over the top of it. + .banner { + margin: 0 -1em; // line tab up with right edge of 1em padded sidebar + + // Float the tab, rather than absolute positioning, to benefit + // from text wrapping and stop content being hidden behind it. + p { + position: relative; // still required for :before positioning + top: auto; + right: auto; + float: right; + margin: 1em -0.75em 0.5em 1em; - #report-a-problem-sidebar { - top: 1em; - left: 23.5em; + // Swap "fold" triangle to bottom right corner of box, rather than top left. + &:before { + left: auto; + right: 0; + top: auto; + bottom: -0.75em; + border-left: none; + border-bottom: none !important; // override default id selectors + border-top: 0.75em solid #888; + border-right: 0.75em solid transparent; + } + + &#fixed:before { + border-top-color: #1D4D05; // dark green + border-top-color: $col_fixed_label_dark; + } } + } + + #oxford-footer { + display: none; + } } -.ie6, .ie7 { - body.mappage .container { - width: 464px; - margin-left: 0; +.report-list, .issue-list-a { + li:after { + background-color: $oxfordshire_mid_grey_green; + } + + h3 { + color: $oxfordshire_link_colour; } } -// As map can scroll and isn't at the top, give it an edge -#map_box { - border: solid 1px #999; - top: 1em; - right: 0; - left: 0; - margin: 0 1em; +h4.static-with-rule { + margin-top: 1em; // down from default 2em, avoid extra space between heading and .council_info_box + margin-bottom: 0; // no space between this and the .issue-list items + background: transparent; // rather than light grey + padding: 0.75em 1em * (1/0.875); // compensate for 0.875 font-size +} + +.issue-list li { + background: transparent; + margin-top: 0; // no space between list items + + // Replicate .report-list styling, a bit + border-top: 1px solid $oxfordshire_mid_grey_green; + padding: 1em 1em 1em 0; + margin-left: 1em; + + .update-wrap .update-text > :last-child { + margin-bottom: 0; + } + + .meta-2 { + font-style: normal; + } } -// Perhaps fix map location (should be in central?) -.ie6 #map_box, .ie7 #map_box { - right: -480px; +.form-box { + background-color: darken($oxfordshire_very_light_green, 5%); } -// So as not to interfere with the Oxfordshire footer, make the fixed nav ("get updates" etc) static. .shadow-wrap { - position: static; - padding-top: 0; - margin-bottom: 1em; + width: 432px; + ul#key-tools { - border-top: none; - border-bottom: 1px solid $primary; + -webkit-box-shadow: 0em 0px 1em 1em $oxfordshire_very_light_green; + -moz-box-shadow: 0em 0px 1em 1em $oxfordshire_very_light_green; + box-shadow: 0em 0px 1em 1em $oxfordshire_very_light_green; + border-top-width: 2px; } } +// Stop bottom of update form disappearing behind the #key-tools shadow +#update_form { + padding-bottom: 4em; +} + #oxford-wrapper #front-main #postcodeForm div { border: 1px solid #fff; // because orange "Go" button (see below) abuts this border, looks a tiny bit better if it's not dark green @@ -195,21 +353,48 @@ input.green-btn{ cursor: pointer; } -.big-green-banner { - text-align: left; - text-transform: inherit; - font-family: inherit; - font-size: 1.5em; - padding: 0.5em 2em 0.5em 0.5em; - line-height: 1.3; - background: #339e00 url("/cobrands/fixmystreet/images/sprite.png") right -2177px no-repeat; +.click-the-map { + border-bottom-color: $oxfordshire_mid_grey_green; - .ie6 &, .ie7 & { - zoom: 1; - position: relative; + p { + color: $oxfordshire_lt_green; + background-image: url(/cobrands/oxfordshire/images/click-map-chevron-small.gif); } } +#skip-this-step { + display: block; + color: inherit; + margin: 0 -15px; + padding: 16px; + font-size: 18px; + line-height: 20px; + border-bottom: 1px solid #E7E1C0; + background: #FDF4C5; + + em { + font-style: normal; + text-decoration: underline; + color: $primary; + } + + &:hover { + text-decoration: none; + } + + html.js & { + // If javascript is enabled, hide the skip link off-screen, + // but keep it visible for screen readers. + position: absolute; + top: -999px; + + &:focus { + // And show it again if it receives focus (eg: via tab key) + position: static; + } + } +} + .extra-text__image { float: left; margin-right: 1em; diff --git a/web/cobrands/oxfordshire/oxfordshire.scss b/web/cobrands/oxfordshire/oxfordshire.scss index d6b31586c..46de1f22b 100644 --- a/web/cobrands/oxfordshire/oxfordshire.scss +++ b/web/cobrands/oxfordshire/oxfordshire.scss @@ -7,9 +7,9 @@ body { - font-family:"Trebuchet MS",Arial, Helvetica, sans-serif; - line-height:18px; - a {text-decoration:none; color:#0c62ba} + font-family:"Trebuchet MS",Arial, Helvetica, sans-serif; + line-height:18px; + a, a:visited {text-decoration:none; color:$oxfordshire_link_colour} a { font-size: 1em; } // mySociety a:hover {text-decoration:underline} margin:0; @@ -27,15 +27,15 @@ body { } #oxford-header { - padding:0 16px 7px 16px; - clear:both; - overflow:hidden; - position:relative; + padding:0 16px 7px 16px; + clear:both; + overflow:hidden; + position:relative; width:958px; /* note================= */ height: 133px; - height:auto !important; + height:auto !important; min-height:133px; /* note================= */ @@ -47,7 +47,7 @@ body { a.logo, a.logo span {width:173px; height:38px; background: url("/cobrands/oxfordshire/images/logo.jpg") no-repeat 0 0;} h1 { - float:left; padding:8px 0 0 10px; margin:0; font-size:1.25em; line-height:normal; + float:left; padding:8px 0 0 10px; margin:0; font-size:1.25em; line-height:normal; font-weight:bold; color:#ffffff; white-space:nowrap;font-family:"Trebuchet MS",Tahoma,Arial,sans-serif; } span.header { @@ -76,73 +76,71 @@ body { } } - - #oxford-main-menu { clear: both; margin: 0; padding: 0; font-size: 1em; position: relative; - ul { + ul { margin: 0 0 0 330px; position: relative; li { margin: 0; - list-style-type: none; - float:left; + list-style-type: none; + float:left; width:126px; text-align:center; background: #e0e0e0; padding: 8px 0; - margin: 0 0 0 2px; + margin: 0 0 0 2px; } } // from occ.css (client site): #main .view-features-for-homepage ul.tabs ul.tabs { - float:left; - position:relative; - padding:0; + float:left; + position:relative; + padding:0; margin:0.5em 0 0 0; - z-index:10; + z-index:10; width: 990px; - //width:635px; - min-height:32px; - overflow:hidden; - clear:both; + //width:635px; + min-height:32px; + overflow:hidden; + clear:both; background: #939393 url("/cobrands/oxfordshire/images/tabs-featured.png") repeat 0 0; li { - float:left; - padding:0 0 0px 1px; - margin:0; - font:0.813em/27px "Trebuchet MS"; - color:#ffffff; - height:32px; + float:left; + padding:0 0 0px 1px; + margin:0; + font:0.813em/27px "Trebuchet MS"; + color:#ffffff; + height:32px; background: #666 url("/cobrands/oxfordshire/images/divider1x32.png") no-repeat 0 0; } li.first {padding:0; background:none} span, // mySociety a { - display:block; - position:relative; - padding:8px 0 0 0; - font:bold 1em "Trebuchet MS"; - height:24px; - color:#ffffff; - text-align:center; - background: #939393 url("/cobrands/oxfordshire/images/tabs-featured.png") repeat-x 0 0; + display:block; + position:relative; + padding:8px 0 0 0; + font:bold 1em "Trebuchet MS"; + height:24px; + color:#ffffff; + text-align:center; + background: #939393 url("/cobrands/oxfordshire/images/tabs-featured.png") repeat-x 0 0; white-space:nowrap; } a:hover, a:focus { - background: none #EA6C18; - background:-moz-linear-gradient(100% 100% 90deg, #ff4401, #EA6C18); - background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#EA6C18), to(#ff4401)); + background: none #EA6C18; + background:-moz-linear-gradient(100% 100% 90deg, #ff4401, #EA6C18); + background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#EA6C18), to(#ff4401)); color: #ffffff; } li span, // mySociety li.active a { - text-decoration:none; + text-decoration:none; background: #4c4c4c url("/cobrands/oxfordshire/images/tabs-featured-on.png") repeat-x 0 0; } li.active a:hover, @@ -154,13 +152,13 @@ body { } #oxford-footer { - float:left; - display:inline; - margin:0 -8px 0 -8px; - padding:10px 25px 30px 21px; - clear:both; - overflow:hidden; - width:960px; + float:left; + display:inline; + margin:0 -8px 0 -8px; + padding:10px 25px 30px 21px; + clear:both; + overflow:hidden; + width:960px; background:#000000 url(/cobrands/oxfordshire/images/footer.jpg) no-repeat bottom left; address {float:left; padding:11px 0 0 0; margin:0; color:#989898; font:0.813em arial} a {font:1em arial; color:#ffffff; margin:0px 5px 0px 5px} @@ -190,7 +188,7 @@ body { } /* --------------------------------------------------------------------------------- - oxfordshire nav menubar from e.g., + oxfordshire nav menubar from e.g., http://fisd.oxfordshire.gov.uk/kb5/oxfordshire/fsd/includes/css/wireframe/navbar.css ---------------------------------------------------------------------------------*/ diff --git a/web/cobrands/oxfordshire/position_map.js b/web/cobrands/oxfordshire/position_map.js index 9e299ea72..bcd0e0c12 100644 --- a/web/cobrands/oxfordshire/position_map.js +++ b/web/cobrands/oxfordshire/position_map.js @@ -1,28 +1,22 @@ -/** - * Position the map box correctly on window resize. - * - * Called from fixmystreet.js when the window 'resize' event is fired - * and the page is transitioning to a desktop version. - */ function position_map_box() { var $html = $('html'); - var oxfordshire_right; - if ($html.hasClass('ie6') || $html.hasClass('ie7')) { - oxfordshire_right = '-480px'; + if ($html.hasClass('ie6')) { + $('#map_box').prependTo('body').css({ + zIndex: 0, position: 'absolute', + top: 0, left: 0, right: 0, bottom: 0, + width: '100%', height: $(window).height(), + margin: 0 + }); } else { - oxfordshire_right = '0em'; + $('#map_box').prependTo('body').css({ + zIndex: 0, position: 'fixed', + top: 0, left: 0, right: 0, bottom: 0, + width: '100%', height: '100%', + margin: 0 + }); } - - var map_box_width = "956px"; - var map_box_height = "600px"; - // Do the same as CSS (in case resized from mobile). - $('#map_box').prependTo('.wrapper').css({ - zIndex: 1, position: 'absolute', - top: '1em', left: '', right: oxfordshire_right, bottom: '', - width: map_box_width, height: map_box_height, - margin: "0 1em" - }); } function map_fix() {} -var slide_wards_down = 1; +var slide_wards_down = 0; + diff --git a/web/i/pin-grey-big.png b/web/i/pin-grey-big.png Binary files differnew file mode 100644 index 000000000..02117aa5e --- /dev/null +++ b/web/i/pin-grey-big.png diff --git a/web/i/pin-grey.png b/web/i/pin-grey.png Binary files differnew file mode 100644 index 000000000..866e6ebe7 --- /dev/null +++ b/web/i/pin-grey.png |