protected function _query($qry)
 {
     $this->sqlQueryCount++;
     switch ($this->debug) {
         case 3:
             FC::log_debug($qry);
             break;
         case 4:
             echo "<code>" . $qry . "</code><br/>";
             break;
     }
     if (preg_match("/^(SELECT|SHOW)/i", ltrim($qry))) {
         $r = $this->connector->querySelect($qry);
     } else {
         $r = $this->connector->queryAffect($qry, $this->debug, $this->critical);
     }
     if ($r === false) {
         // error !
         $this->reportError();
     }
     $this->setDbDebug(APP_DB_DEBUG);
     // back to normal debug level
     return $r;
 }
Exemplo n.º 2
0
 /**
  * change task status
  */
 protected function _taskStatus()
 {
     $this->current = TaskSummary::loadCurrent();
     $arrReload = array();
     if ($id = $this->fc->getReqVar('id')) {
         if ($this->current && $this->current->getUid() != $id) {
             // we have a running task, but it's not the requested one
             // so first, we need to stop it.
             $cid = $this->current->getUid();
             TimerModel::stop($cid);
             // and we'll have to reload the page details later
             $arrReload[] = $cid;
         } else {
             $this->current = new TaskSummary();
             $this->current->connectDb();
             $this->current->setUid($id);
             $this->current->load();
         }
         if ($this->current->getUid()) {
             // -TODO- check rights
             switch ($this->fc->getReqVar('action')) {
                 case 'pause':
                     // try to pause
                     if ($this->current && $this->current->getUid() == $id) {
                         // ok, task is actually running
                         TimerModel::stop($id);
                         $this->current->set('stop', APP_SQL_NOW);
                         $this->jsCode .= "";
                     } else {
                         // nope, requested task is not running, show error
                         FC::log_debug('error trying to pause non running task');
                         header('HTTP/1.0 403 Forbidden');
                         exit;
                     }
                     $this->setView('iphone/inc_timer');
                     $this->viewRaw();
                     break;
                 case 'resume':
                 case 'start':
                     TimerModel::start($id);
                     $this->current = TaskSummary::loadCurrent();
                     $this->jsCode = "clockstart();";
                     $this->setView('iphone/inc_timer');
                     $this->viewRaw();
                     break;
                 case 'stop':
                     if (TimerModel::stop($id)) {
                         $this->jsCode = "clockstatus();";
                     } else {
                         $this->jsCode = "alert('" . TR::get('error', 'action_failed') . "');";
                     }
                     $this->current = false;
                     break;
                 case 'close':
                     if (TimerModel::stop($id)) {
                         $this->jsCode = "clockstatus();";
                         $this->current->updateStatus(1);
                         // mark as done
                         $this->current = false;
                     }
                     break;
             }
             // need to reload newly modified task details
             $arrReload[] = $id;
         }
         return false;
     }
     // reaching this point means an error has occured
     header('HTTP/1.0 404 Not Found');
     exit;
 }
Exemplo n.º 3
0
 /**
  * change a task status (start, stop, close) or save a new one
  * will only update the timer panel and reload the task list
  * (method called by ajax request only)
  */
 public function timerReaction()
 {
     $this->jsCode = '';
     if ($id = $this->fc->getReqVar('id')) {
         // start / stop timer
         $obj = new TaskSummary();
         $obj->connectDb();
         $obj->setUid($id);
         $obj->load();
         // what action then ?
         $action = $this->fc->chkReqVar('pause,resume,start,stop,close');
         FC::log_debug('loaded task ID=' . $obj->getUid());
         switch ($action) {
             case 'pause':
                 // try to pause
                 if ($this->current && $this->current->getUid() == $id) {
                     // ok, task is actually running
                     TimerModel::stop($id);
                     $this->current->set('stop', APP_SQL_NOW);
                     $this->jsCode .= "clockreport('{$cid}');clockstatus('paused');";
                 } else {
                     // nope, requested task is not running, show error
                     $this->jsCode = "alert('" . TR::get('error', 'action_failed') . "')";
                     FC::log_debug('error trying to pause non running task');
                 }
                 break;
             case 'resume':
             case 'start':
                 TimerModel::start($id);
                 $this->current = TaskSummary::loadCurrent();
                 $this->jsCode = "clockstart();";
                 break;
             case 'stop':
                 if (TimerModel::stop($id)) {
                     $this->jsCode = "clockstatus();";
                 } else {
                     $this->jsCode = "alert('" . TR::get('error', 'action_failed') . "');";
                 }
                 $this->current = false;
                 break;
             case 'close':
                 if (TimerModel::stop($id)) {
                     $this->jsCode = "clockstatus();";
                     $this->current->updateStatus(1);
                     // mark as done
                     $this->current = false;
                 }
                 break;
         }
     } else {
         if ($title = $this->fc->getReqVar('title')) {
             // creating a new task ?
             $obj = TaskModel::parse($title, $def, $dte);
             $obj->connectDb();
             if ($this->fc->getReqVar('start')) {
                 $obj->set('deadline', APP_SQL_TODAY);
             }
             if ($obj->check($this->switch_id)) {
                 $obj->insert();
             }
             if ($this->fc->chkReqVar('start')) {
                 TimerModel::start($obj->getUid());
                 $this->current = TaskSummary::loadCurrent();
                 $this->jsCode = "clockstart();";
             } else {
                 $this->current = false;
                 $this->jsCode = "clockstatus();";
             }
         }
     }
     $this->jsCode .= 'reloadList();';
     $this->setView('include/timer');
     $this->view();
     return false;
 }
Exemplo n.º 4
0
 public static function getRawTranslation($section, $label, $field = '')
 {
     if (!array_key_exists($section, $GLOBALS['lang'])) {
         FC::log_debug('can not find section ' . $section);
         return str_replace('_', ' ', $label);
     }
     if (array_key_exists($label, $GLOBALS['lang'][$section])) {
         if (is_array($GLOBALS['lang'][$section][$label])) {
             return $GLOBALS['lang'][$section][$label][$field];
         } else {
             return $GLOBALS['lang'][$section][$label];
         }
     } else {
         if (array_key_exists($label, $GLOBALS['lang'][$section])) {
             if (is_array($GLOBALS['lang'][$section][$label])) {
                 return $GLOBALS['lang'][$section][$label][$field];
             } else {
                 return $GLOBALS['lang'][$section][$label];
             }
         } else {
             FC::log_debug('really can not find section ' . $section);
             return str_replace('_', ' ', $label);
         }
     }
 }