public function getAvgRuntime(Mage_Index_Model_Process $process) { $indexerCode = $process->getIndexerCode(); if (!isset($this->_avgRuntimes[$indexerCode])) { $this->_avgRuntimes[$indexerCode] = Mage::getModel('hackathon_indexerstats_resource/history')->getAvg($process->getId()); } return $this->_avgRuntimes[$indexerCode]; }
/** * Renders progress bar with estimated time (for running process) * * @param Mage_Index_Model_Process $process * @return string */ protected function _renderProgress(Mage_Index_Model_Process $process) { $progressBarId = 'hackathon_indexerstats_progress_' . $process->getIndexerCode(); $progress = min(100, $this->_runtimeModel->getProgress($process) * 100); if ($this->_runtimeModel->getProgress($process) >= 1) { $inTimeClass = 'hackathon_indexerstats_not_in_time'; $timeCaption = Mage::helper('hackathon_indexerstats')->__('over time'); } else { $inTimeClass = 'hackathon_indexerstats_in_time'; $timeCaption = Mage::helper('hackathon_indexerstats')->__('remaining'); } $now = date_create()->getTimestamp(); $startTimestamp = $this->_runtimeModel->getStartTime($process)->getTimestamp(); $estimatedEndTimestamp = $this->_runtimeModel->getEstimatedEndTime($process)->getTimestamp(); $timeDisplay = $this->_runtimeModel->getRemainingTime($process); return <<<HTML <div id="{$progressBarId}" data-now="{$now}" data-started="{$startTimestamp}" data-estimated_end="{$estimatedEndTimestamp}" class="hackathon_indexerstats_info hackathon_indexerstats_progress {$inTimeClass}"> <span style="width: {$progress}%;"><span></span></span> <div><span class="hackathon_indexerstats_time_display">{$timeDisplay}</span> <span class="hackathon_indexerstats_time_caption">{$timeCaption}</span></div> </div> HTML; }