Exemplo n.º 1
0
 public function render()
 {
     $page = 'home';
     $app = Config::get('app');
     $policy = new Policy_LoggedIn($this->app);
     $logged_in = $policy->check();
     $app->menu_items = Helper_Menu::processMenuItems($app->menu_items, $page, $logged_in);
     $user = null;
     $formatted_weights = array();
     $settingsVals = array();
     $viewOptions = array();
     if ($logged_in) {
         $userid = $policy->getData();
         $user_mapper = new Mapper_User();
         $user = $user_mapper->getUserById($userid);
         $settings_mapper = new Mapper_Settings();
         $settingsVals = $settings_mapper->getFilteredSettingsByUserid($userid);
         $defaultView = 30.5;
         if (isset($settingsVals['default_view'])) {
             $defaultView = $settingsVals['default_view'];
         }
         $viewOptions = array(0 => array('value' => 7, 'name' => '1 week'), 1 => array('value' => 30.5, 'name' => '1 month'), 2 => array('value' => 61, 'name' => '2 months'), 3 => array('value' => 91.5, 'name' => '3 months'), 4 => array('value' => 182.5, 'name' => '6 months'), 5 => array('value' => 365, 'name' => '1 year'), 6 => array('value' => 'ytd', 'name' => 'Year to date'), 7 => array('value' => 'all', 'name' => 'All data'));
         foreach ($viewOptions as &$option) {
             if ($option['value'] == $defaultView) {
                 $option['selected'] = true;
             }
         }
     }
     return array('app' => $app, 'breadcrumb' => 'Home', 'error' => Helper_Message::getError(), 'logged_in' => $logged_in, 'user' => $user, 'user_settings' => $settingsVals, 'view_options' => $viewOptions);
 }
Exemplo n.º 2
0
 public function GET()
 {
     $policy = new Policy_LoggedIn($this->app);
     $app = Config::get('app');
     $userid = $policy->getData();
     $request = $this->app->request();
     if (!$userid) {
         throw new Exception_Api("Unable to authenticate.");
     }
     $days_back = trim($request->get('days_back'));
     if (!is_numeric($days_back) && $days_back != 'all' && $days_back != 'ytd') {
         throw new Exception_Api('Missing or invalid days_back field.');
     }
     $mapper = new Mapper_Settings();
     $mapper->updateSettingForUserid($userid, 'default_view', $days_back);
     $settings = $mapper->getFilteredSettingsByUserid($userid);
     $serverDateTimeZone = new DateTimeZone($app->default_timezone);
     $userDateTimeZone = new DateTimeZone($settings['timezone']);
     $serverDateTime = new DateTime("now", $serverDateTimeZone);
     $userDateTime = new DateTime("now", $userDateTimeZone);
     $tzDiff = $userDateTime->getOffset() - $serverDateTime->getOffset();
     $tzDiff = $tzDiff / (60 * 60);
     $weight_mapper = new Mapper_Weight();
     $weights = $weight_mapper->getWeightsForUser($userid, $days_back);
     $formatted_weights = array();
     foreach ($weights as $weight) {
         $formatted_weights[] = array('date' => $weight['create_time'], 'weight' => $weight['weight'], 'comment' => htmlentities($weight['comment']));
     }
     return array('data' => $formatted_weights, 'units' => $app->weight_units, 'tz_offset' => $tzDiff);
 }
Exemplo n.º 3
0
 public function check()
 {
     $isLoggedIn = Helper_Session::getUserFromSession() !== false;
     if ($isLoggedIn) {
         $userid = Helper_Session::getUserFromSession();
         $defaultTz = date_default_timezone_get();
         $mapper = new Mapper_Settings();
         $settings = $mapper->getFilteredSettingsByUserid($userid);
         $tzSet = date_default_timezone_set($settings['timezone']);
         if (!$tzSet) {
             date_default_timezone_set($defaultTz);
         }
     }
     return $isLoggedIn;
 }
Exemplo n.º 4
0
 public function render()
 {
     $page = 'settings';
     $app = Config::get('app');
     $policy = new Policy_LoggedIn($this->app);
     $userid = $policy->getData();
     $app->menu_items = Helper_Menu::processMenuItems($app->menu_items, $page, $userid);
     $userSettings = $app->user_settings;
     usort($userSettings, array('self', 'sortSettings'));
     $settings_mapper = new Mapper_Settings();
     $settingsVals = $settings_mapper->getFilteredSettingsByUserid($userid);
     foreach ($userSettings as &$setting) {
         $setting['value'] = $settingsVals[$setting['name']];
     }
     return array('app' => $app, 'breadcrumb' => 'Settings', 'user_settings' => $userSettings, 'error' => Helper_Message::getError(), 'success' => Helper_Message::getSuccess());
 }
Exemplo n.º 5
0
 public static function getTargetStatsForUser($userid, $changePerDay)
 {
     $weightToTarget = 'N/A';
     $timeToTarget = 'N/A';
     $targetWeight = 'N/A';
     $weight_mapper = new Mapper_Weight();
     $weight = $weight_mapper->getMostRecentWeightForUser($userid);
     $settings_mapper = new Mapper_Settings();
     $settings = $settings_mapper->getFilteredSettingsByUserid($userid);
     if ($settings['target_weight'] > 0) {
         $weightToTarget = $settings['target_weight'] - $weight;
         $targetWeight = $settings['target_weight'];
         // Trying to lose weight, and they're losing it
         if ($weightToTarget < 0 && $changePerDay < 0) {
             $timeToTarget = $weightToTarget / $changePerDay;
         } else {
             if ($weightToTarget > 0 && $changePerDay > 0) {
                 $timeToTarget = $weightToTarget / $changePerDay;
             }
         }
     }
     if ($timeToTarget != 'N/A') {
         if ($timeToTarget > 30.5 * 2 - 7) {
             $timeToTarget = $timeToTarget / 30.5;
             $targetUnits = 'month';
         } else {
             if ($timeToTarget > 7 * 2 - 1) {
                 $timeToTarget = $timeToTarget / 7;
                 $targetUnits = 'week';
             } else {
                 $targetUnits = 'day';
             }
         }
         $timeToTarget = round($timeToTarget);
         if ($timeToTarget != 1) {
             $targetUnits = $targetUnits . 's';
         }
         if ($timeToTarget == 0) {
             $timeToTarget = 'less than a day';
         } else {
             $timeToTarget = 'about ' . $timeToTarget . ' ' . $targetUnits;
         }
     }
     if ($weightToTarget != 'N/A') {
         $weightToTarget = round(abs($weightToTarget), 1);
     }
     return array('weight_to_target' => $weightToTarget, 'time_to_target' => $timeToTarget, 'target_weight' => $targetWeight);
 }