コード例 #1
0
 function display($layout_id, $column_id, $readonly, $is_minimized, $display_preferences, $owner_id, $owner_type)
 {
     $arrf = Tracker_Report_RendererFactory::instance();
     $store_in_session = false;
     if ($renderer = $arrf->getReportRendererById($this->renderer_id, null, $store_in_session)) {
         parent::display($layout_id, $column_id, $readonly, $is_minimized, $display_preferences, $owner_id, $owner_type);
     }
 }
コード例 #2
0
 /**
  * The singleton method
  */
 public static function instance()
 {
     if (!isset(self::$_instance)) {
         $c = __CLASS__;
         self::$_instance = new $c();
     }
     return self::$_instance;
 }
コード例 #3
0
 function getContent()
 {
     $content = '';
     $arrf = Tracker_Report_RendererFactory::instance();
     $store_in_session = false;
     if ($renderer = $arrf->getReportRendererById($this->renderer_id, null, $store_in_session)) {
         $current_user = UserManager::instance()->getCurrentUser();
         echo $renderer->fetchWidget($current_user);
     } else {
         echo '<em>Renderer does not exist</em>';
     }
     return $content;
 }
コード例 #4
0
 /**
  * Obtain the report renderer.
  *
  * @return Tracker_Report_Renderer
  */
 function getRenderer()
 {
     $store_in_session = false;
     $arrf = Tracker_Report_RendererFactory::instance();
     $renderer = $arrf->getReportRendererById($this->renderer_id, null, $store_in_session);
     if ($renderer) {
         $tracker = $renderer->report->getTracker();
         $project = $tracker->getProject();
         if ($tracker->isActive() && $project->isActive()) {
             return $renderer;
         }
     }
     return null;
 }
コード例 #5
0
 /**
  * Create a renderer - add in db
  *     
  * @return bool true if success, false if failure
  */
 public function create()
 {
     $success = true;
     $rrf = Tracker_Report_RendererFactory::instance();
     if ($renderer_id = $rrf->saveRenderer($this->report, $this->name, $this->description, $this->getType())) {
         //field_id
         $this->saveRendererProperties($renderer_id);
     }
     return $success;
 }
コード例 #6
0
 /**
  * Create a renderer
  *
  * @return bool true if success, false if failure
  */
 public function create()
 {
     $success = true;
     $rrf = Tracker_Report_RendererFactory::instance();
     if ($renderer_id = $rrf->saveRenderer($this->report, $this->name, $this->description, $this->getType())) {
         //Save charts
         $charts = $this->getChartFactory()->getCharts($this);
         foreach ($charts as $chart_id => $chart) {
             //Add new chart
             $this->getChartFactory()->createDb($renderer_id, $chart);
         }
     }
     return $success;
 }
コード例 #7
0
 /**
  * Create a renderer - add in db
  *     
  * @return bool true if success, false if failure
  */
 public function create()
 {
     $success = true;
     $rrf = Tracker_Report_RendererFactory::instance();
     if ($renderer_id = $rrf->saveRenderer($this->report, $this->name, $this->description, $this->getType())) {
         //columns
         $this->saveColumnsRenderer($renderer_id);
         //aggregates
         $this->saveAggregatesRenderer($renderer_id);
         //MultiSort/Chunksz
         $this->saveRendererProperties($renderer_id);
         //Sort
         $this->saveSortRenderer($renderer_id);
     }
     return $success;
 }
コード例 #8
0
 /**
  * retrieve a specific chart by its id from db only
  */
 public function getChartFromDb($renderer, $id)
 {
     //not add in session
     $c = null;
     $dao = new GraphOnTrackersV5_ChartDao(CodendiDataAccess::instance());
     $chart_data = $dao->searchById($id)->getRow();
     if ($chart_data) {
         if (!$renderer) {
             $report = null;
             //We don't know the report
             $renderer = Tracker_Report_RendererFactory::instance()->getReportRendererById($chart_data['report_graphic_id'], $report);
         }
         if ($renderer) {
             if ($chart_classname = $this->getChartClassname($chart_data['chart_type'])) {
                 $c = new $chart_classname($renderer, $chart_data['id'], $chart_data['rank'], $chart_data['title'], $chart_data['description'], $chart_data['width'], $chart_data['height']);
             }
         }
     }
     return $c;
 }
コード例 #9
0
 /**
  * Create new default report in the DataBase
  * 
  * @param int trackerId of the created tracker
  * @param Object report
  * 
  * @return id of the newly created Report
  */
 public function saveObject($trackerId, $report)
 {
     $reportId = $this->getDao()->create($report->name, $report->description, $report->current_renderer_id, $report->parent_report_id, $report->user_id, $report->is_default, $trackerId, $report->is_query_displayed);
     //create criterias
     $reportDB = Tracker_ReportFactory::instance()->getReportById($reportId, null);
     if ($report->criterias) {
         foreach ($report->criterias as $criteria) {
             $reportDB->addCriteria($criteria);
         }
     }
     //create renderers
     if ($report->renderers) {
         foreach ($report->renderers as $renderer) {
             if ($renderer) {
                 $rendererId = $reportDB->addRenderer($renderer->name, $renderer->description, $renderer->getType());
                 $rendererDB = Tracker_Report_RendererFactory::instance()->getReportRendererById($rendererId, $reportDB);
                 $rendererDB->afterSaveObject($renderer);
             }
         }
     }
     return $reportDB->id;
 }
コード例 #10
0
 private function fetchAddRendererForm($current_renderer)
 {
     $hp = Codendi_HTMLPurifier::instance();
     $current_renderer_id = $current_renderer ? (int) $current_renderer->id : '';
     $add_renderer = '';
     $add_renderer .= '<form action="" method="POST">';
     $add_renderer .= '<input type="hidden" name="report" value="' . $this->id . '" />';
     $add_renderer .= '<input type="hidden" name="renderer" value="' . $current_renderer_id . '" />';
     $add_renderer .= '<input type="hidden" name="func" value="add-renderer" />';
     $rrf = Tracker_Report_RendererFactory::instance();
     $types = $rrf->getTypes();
     if (count($types) > 1) {
         //No need to ask for type if there is only one
         $type = '<select name="new_type" id="tracker_renderer_add_type">';
         foreach ($types as $key => $label) {
             $type .= '<option value="' . $key . '">' . $hp->purify($label, CODENDI_PURIFIER_CONVERT_HTML) . '</option>';
         }
         $type .= '</select>';
     } else {
         list(, $type) = each($types);
     }
     $add_renderer .= '<p><strong>' . $GLOBALS['Language']->getText('plugin_tracker_report', 'add_new') . ' ' . $type . '</strong></p>';
     $add_renderer .= '<p>';
     $add_renderer .= '<label for="tracker_renderer_add_name">' . $GLOBALS['Language']->getText('plugin_tracker_report', 'name') . '</label>
                      <input type="text" name="new_name" value="" id="tracker_renderer_add_name" />';
     $add_renderer .= '<label for="tracker_renderer_add_description">' . $GLOBALS['Language']->getText('plugin_tracker_report', 'description') . '</label>
                      <textarea
                         name="new_description"
                         id="tracker_renderer_add_description"
                         rows="5"
                         cols="30"></textarea>';
     $add_renderer .= '</p>';
     $add_renderer .= '<input type="submit" class="btn btn-primary" value="' . $hp->purify($GLOBALS['Language']->getText('global', 'btn_submit'), CODENDI_PURIFIER_CONVERT_HTML) . '" onclick="if (!$(\'tracker_renderer_add_name\').getValue()) { alert(\'' . $GLOBALS['Language']->getText('plugin_tracker_report', 'name_mandatory') . '\'); return false;}"/> ';
     $add_renderer .= '</form>';
     return $add_renderer;
 }
コード例 #11
0
 public function duplicate($from_report, $formElement_mapping)
 {
     //Duplicate criteria
     Tracker_Report_CriteriaFactory::instance()->duplicate($from_report, $this, $formElement_mapping);
     //Duplicate renderers
     Tracker_Report_RendererFactory::instance()->duplicate($from_report, $this, $formElement_mapping);
 }