diff options
-rw-r--r-- | perllib/FixMyStreet/App/Controller/Alert.pm | 6 | ||||
-rw-r--r-- | t/app/controller/alert_new.t | 31 | ||||
-rw-r--r-- | web/js/map-OpenLayers.js | 2 |
3 files changed, 19 insertions, 20 deletions
diff --git a/perllib/FixMyStreet/App/Controller/Alert.pm b/perllib/FixMyStreet/App/Controller/Alert.pm index c127b7460..6e9ae819c 100644 --- a/perllib/FixMyStreet/App/Controller/Alert.pm +++ b/perllib/FixMyStreet/App/Controller/Alert.pm @@ -191,7 +191,11 @@ sub create_alert : Private { $alert->insert(); } - $alert->confirm() if $c->user && $c->user->id == $alert->user->id; + if ( $c->user && $c->user->id == $alert->user->id ) { + $alert->confirm(); + } else { + $alert->confirmed(0); + } $c->stash->{alert} = $alert; } diff --git a/t/app/controller/alert_new.t b/t/app/controller/alert_new.t index 85eea7cda..7ba887824 100644 --- a/t/app/controller/alert_new.t +++ b/t/app/controller/alert_new.t @@ -142,25 +142,18 @@ foreach my $test ( } foreach my $test ( - { - email => 'test-new@example.com', - type => 'area', - content => 'your alert will not be activated', - email_text => 'confirm the alert', - uri => -'/alert/subscribe?type=local&rznvy=test-new@example.com&feed=area:1000:A_Location', - param1 => 1000 - } + { exist => 0 }, + { exist => 1 }, ) { - subtest "use existing unlogged in user in a alert" => sub { + subtest "use existing unlogged in user in a alert ($test->{exist})" => sub { $mech->log_out_ok(); - my $type = $test->{type} . '_problems'; + my $type = 'area_problems'; my $user = FixMyStreet::App->model('DB::User') - ->find_or_create( { email => $test->{email} } ); + ->find_or_create( { email => 'test-new@example.com' } ); my $alert = FixMyStreet::App->model('DB::Alert')->find( { @@ -169,24 +162,26 @@ foreach my $test ( } ); # clear existing data so we can be sure we're creating it - ok $alert->delete() if $alert; + ok $alert->delete() if $alert && !$test->{exist}; - $mech->get_ok( $test->{uri} ); + $mech->get_ok( '/alert/subscribe?type=local&rznvy=test-new@example.com&feed=area:1000:A_Location' ); $alert = FixMyStreet::App->model('DB::Alert')->find( { user => $user, alert_type => $type, - parameter => $test->{param1}, - parameter2 => $test->{param2}, - confirmed => 0, + parameter => 1000, + parameter2 => undef, + confirmed => $test->{exist}, } ); $mech->content_contains( 'Now check your email' ); + $alert->confirm(); ok $alert, 'New alert created with existing user'; - $mech->delete_user($user); + + $mech->delete_user($user) if $test->{exist}; }; } diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 8dc6403cb..39e6275ff 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -285,7 +285,7 @@ $(function(){ fixmystreet.map.moveStart = { zoom: this.getZoom(), center: this.getCenter() }; }); fixmystreet.map.events.register("zoomend", null, function(e){ - if ( fixmystreet.map.moveStart && !fixmystreet.map.moveStart.zoom ) { + if ( fixmystreet.map.moveStart && !fixmystreet.map.moveStart.zoom && fixmystreet.map.moveStart.zoom !== 0 ) { return true; // getZoom() on Firefox appears to return null at first? } if ( !fixmystreet.map.moveStart || !this.getCenter().equals(fixmystreet.map.moveStart.center) ) { |