Ejemplo n.º 1
0
 /**
  * Get the progress line chart.
  *
  * @since 1.0
  *
  * @param Release $release
  *
  * @return Chart\Base
  */
 private function get_progress_chart(Release $release)
 {
     if ($release->get_status() == Release::STATUS_DRAFT) {
         return null;
     }
     $raw = $release->get_first_14_days_of_upgrades();
     $now = new \DateTime();
     $diff = $release->get_start_date()->diff($now);
     $days = min(14, max($diff->days + 1, 1));
     $data = array();
     $day = \ITELIC\convert_gmt_to_local(clone $release->get_start_date());
     $sql_df = 'Y-m-d';
     for ($i = 0; $i < $days; $i++) {
         $key = $day->format($sql_df);
         if (isset($raw[$key])) {
             $data[$key] = $raw[$key];
         } else {
             $data[$key] = 0;
         }
         $day = $day->add(new \DateInterval('P1D'));
     }
     $df = 'M j';
     $labels = array_map(function ($day) use($df) {
         $day = new \DateTime($day);
         return $day->format($df);
     }, array_keys($data));
     $chart = new Chart\Line($labels, 698, 200, array('scaleIntegersOnly' => true, 'scaleBeginAtZero' => true, 'ibdLoadOn' => 'loadProgressChart', 'responsive' => true));
     $chart->add_data_set(array_values($data), '', array('fillColor' => "rgba(151,187,205,0.2)", 'strokeColor' => "rgba(151,187,205,1)", 'pointColor' => "rgba(151,187,205,1)", 'pointStrokeColor' => "#fff", 'pointHighlightFill' => "#fff", 'pointHighlightStroke' => "rgba(151,187,205,1)"));
     return $chart;
 }