This commit is contained in:
Daniel Camargo 2016-01-05 12:17:19 -02:00
parent 229bce3904
commit ca8b522bd3
5 changed files with 40 additions and 13 deletions

View File

@ -16,7 +16,24 @@ class Controller_api_restaurants extends Crunchbutton_Controller_Rest {
}
private function _hours(){
$ids = explode( ',', c::getPagePiece( 3 ) );
$lat = $this->request()[ 'lat' ];
$lon = $this->request()[ 'lon' ];
$range = $this->request()[ 'range' ];
$ids = [];
if( $lat && $lon && $range ){
$restaurants = Restaurant::byRange([
'lat' => $_REQUEST['lat'],
'lon' => $_REQUEST['lon'],
'range' => $_REQUEST['range']
]);
foreach ($restaurants as $restaurant) {
$ids[] = $restaurant->id_restaurant;
}
} else {
$ids = explode( ',', c::getPagePiece( 3 ) );
}
$restaurants = [];
foreach( $ids as $id ){
$restaurant = Restaurant::o( $id );

View File

@ -1050,6 +1050,7 @@ NGApp.controller( 'RestaurantCtrl', function ($scope, $http, $routeParams, $root
// update if the restaurant is closed or open every 35 seconds
var updateStatus = function(){
updateRestaurantStatus = $timeout( function(){
dateTime.reload();
$scope.restaurant.open();
$scope.restaurant.reloadHours( true, function(){
var open = $scope.restaurant._open;

View File

@ -7,8 +7,8 @@ var dateTime = {
dateTime.update = function(){
var time = _gmtServer.split( '/' );
dateTime.now = new Date( Number(time[0]), Number(time[1]-1), Number(time[2]), Number(time[3]), Number(time[4]), ( Number(time[5]) + dateTime.timer ) ) ;
dateTime.timer++;
dateTime.gears = setTimeout( function(){ dateTime.update(); } ,1000);
dateTime.timer++;
dateTime.gears = setTimeout( function(){ dateTime.update(); }, 1000 );
}
// This method will be called by phonegap at the 'resume' event
@ -28,10 +28,10 @@ dateTime.reload = function(){
_gmtServer = json.gmt;
dateTime.timer = 0;
if( dateTime.gears ){
clearTimeout( dateTime.gears );
clearTimeout( dateTime.gears );
}
dateTime.update();
App.rootScope.$broadcast( 'appResume', false );
App.rootScope.$broadcast( 'appResume', false );
} ).error( function(){ window.location.reload(); } );
}

View File

@ -203,7 +203,6 @@ var Restaurant = function(id) {
var now_time = now.getTime();
// loop to verify if it is open
self._open = false;
if( self.hours && self.hours.length > 0 ){
for( x in self.hours ){
self._hasHours = true;
@ -320,6 +319,7 @@ var Restaurant = function(id) {
// Check the restaurant cache age and reload the hours if it is necessary
self.reloadHours = function( forceLoad, callback ){
dateTime.reload();
var load = false;
var now = ( Math.floor( new Date().getTime() / 1000 ) );
if( forceLoad ){

View File

@ -206,16 +206,25 @@ NGApp.factory('RestaurantsService', function ($http, $rootScope, PositionsServic
}
service.reloadAllHours = function( callback ){
var ids = [];
for ( var x in restaurants ) {
ids.push( restaurants[x].id_restaurant );
if( service.loadingHours ){
return;
}
if( ids.length > 0 ){
if( service.loadingHours ){
return;
var url = null;
if( service.position.pos().lat() && service.position.pos().lon() ){
url = App.service + 'restaurants/hours/?lat=' + service.position.pos().lat() + '&lon=' + service.position.pos().lon() + '&range=' + (service.position.range || 2 );
} else {
var ids = [];
for ( var x in restaurants ) {
ids.push( restaurants[x].id_restaurant );
}
if( ids.length > 0 ){
url = App.service + 'restaurants/hours/' + ids.join( ',' );
}
}
dateTime.reload();
if( url ){
service.loadingHours = true;
var url = App.service + 'restaurants/hours/' + ids.join( ',' );
$http.get( url, {
cache: false
}).success(function ( hours ) {