コード例 #1
0
ファイル: ViewChart.class.php プロジェクト: rolwi/koala
    public function frameResponse(\FrameResponseObject $frameResponseObject)
    {
        $breadcrumb = new \Widgets\Breadcrumb();
        $breadcrumb->setData(array(array("name" => \Portfolio::getInstance()->getText("My Competences"))));
        $tabBar = new \Widgets\TabBar();
        $tabBar->setTabs(array(array("name" => \Portfolio::getInstance()->getText("Dashboard"), "link" => $this->getextension()->getExtensionUrl() . "/"), array("name" => \Portfolio::getInstance()->getText("Competences"), "link" => $this->getExtension()->getExtensionUrl() . "ViewChart/"), array("name" => \Portfolio::getInstance()->getText("Artefacts"), "link" => $this->getExtension()->getExtensionUrl() . "ManageArtefacts/")));
        $tabBar->setActiveTab(1);
        $frameResponseObject->addWidget($breadcrumb);
        $frameResponseObject->addWidget($tabBar);
        $jobs = \CompetenceRaster::getJobs();
        $html = '<div align="right"><select id="jobs"><option value="all">Beruf wählen</option><option value="all">Alle</option>';
        foreach ($jobs as $job) {
            $html .= '<option value="' . $job->name . '">' . $job->name . ": " . $job->description . '</option>';
        }
        $html .= <<<END
\t\t</select></div>
\t\t<script>
\t\tfunction filter(){
\t\t\t\$(".chart").hide();
\t\t    job = \$('select[id="jobs"] option:selected').val();
\t\t    if (job == "all"){
\t\t\t\t\$(".chart").fadeIn();
\t\t\t}
\t    \t\$("#div_" + job + "_1").fadeIn();
\t    \t\$('#div_' + job ).fadeIn();
\t\t}
\t\t\$('select[id="jobs"]').change(function() {
\t\t\tfilter();
\t\t});
\t\t</script>
END;
        $rawHtml = new \Widgets\RawHtml();
        $rawHtml->setHtml($html);
        $frameResponseObject->addWidget($rawHtml);
        $arrayArtefactCompetencesCount = \CompetenceRaster::getCollectedCompetences();
        foreach ($this->jobs as $job) {
            //			$urlEventArray = array();
            //			$row = 0;
            $baseUrl = "/portfolio/ViewCompetence/?job=" . $job;
            //
            $jobObject = \CompetenceJob::getJobByName($job);
            //			$jsonChart = array();
            //			$chartWidget = new \Widgets\Chart();
            //			$headerActivitiesArray = array("Aktivitäten");
            //			foreach ($this->activities as $activity){
            //				$headerActivitiesArray []= "Tätigkeitsfeld " . $activity;
            //			}
            //			$jsonChart []= $headerActivitiesArray;
            //			foreach ($this->facets as $facet) {
            //				$facetArray = array($facet);
            //				$column = 0;
            //				foreach ($this->activities as $activity){
            //					$facetArray []= isset($arrayArtefactCompetencesCount[$job . $activity . $facet]) ? $arrayArtefactCompetencesCount[$job . $activity . $facet] : 0;
            //					$urlEventArray [$row][$column]= $baseUrl . "&activity=" . $column . "&facet=" . $facet . "&sc=1";
            //					$column++;
            //				}
            //				$jsonChart []= $facetArray;
            //				$row++;
            //			}
            //
            //			$chartWidget->setData(json_encode($jsonChart));
            //			$chartWidget->setUrlData(json_encode($urlEventArray));
            //			$chartWidget->setDescription($job);
            //			$chartWidget->setVAxisTitle("Facetten");
            //			$chartWidget->setHAxisTitle("Anzahl");
            //			$chartWidget->setId($job);
            //			$chartWidget->setTitle($jobObject->description . " - Absolute Anzahl an Kompetenzen");
            //
            //			$frameResponseObject->addWidget($chartWidget);
            $urlEventArray = array();
            $row = 0;
            $arrayCompetencesQuantity = \CompetenceRaster::getCompetencesQuantity();
            $jsonChart = array();
            $chartWidget = new \Widgets\Chart();
            $headerActivitiesArray = array("Aktivitäten");
            $headerActivitiesArray[] = "IST";
            $headerActivitiesArray[] = "SOLL";
            $jsonChart[] = $headerActivitiesArray;
            foreach ($this->activities as $activity) {
                $activityArray = array($activity);
                $quantityAll = isset($arrayCompetencesQuantity[$job . $activity]) ? $arrayCompetencesQuantity[$job . $activity] : 0;
                $absoluteCredit = isset($arrayArtefactCompetencesCount[$job . $activity]) ? $arrayArtefactCompetencesCount[$job . $activity] : 0;
                $absoluteDebit = $quantityAll - $absoluteCredit;
                $percentCredit = $absoluteDebit == 0 ? 0 : round($absoluteCredit / $quantityAll * 100, 2);
                $percentDebit = $absoluteDebit == 0 ? 0 : -100 + $percentCredit;
                $activityArray[] = $absoluteCredit;
                $activityArray[] = $absoluteDebit;
                $urlEventArray[$row] = array(1 => $baseUrl . "&activity=" . $activity . "&sc=1", 2 => $baseUrl . "&activity=" . $activity . "&sc=0");
                $row++;
                $jsonChart[] = $activityArray;
            }
            $chartWidget->setData(json_encode($jsonChart));
            $chartWidget->setUrlData(json_encode($urlEventArray));
            $chartWidget->setDescription($job);
            $chartWidget->setVAxisTitle("Tätigkeitsfelder");
            $chartWidget->setHAxisTitle("Anzahl erreicht / noch zu erledigen");
            $chartWidget->setId($job);
            $chartWidget->setTitle($jobObject->description . " - Absolut");
            $frameResponseObject->addWidget($chartWidget);
            ######################################
            $urlEventArray1 = array();
            $row = 0;
            $arrayCompetencesQuantity = \CompetenceRaster::getCompetencesQuantity();
            $jsonChart1 = array();
            $chartWidget1 = new \Widgets\Chart();
            $headerActivitiesArray1 = array("Aktivitäten");
            $headerActivitiesArray1[] = "IST";
            $headerActivitiesArray1[] = "SOLL";
            $jsonChart1[] = $headerActivitiesArray1;
            foreach ($this->activities as $activity) {
                $activityArray1 = array($activity);
                $quantityAll = isset($arrayCompetencesQuantity[$job . $activity]) ? $arrayCompetencesQuantity[$job . $activity] : 0;
                $absoluteCredit = isset($arrayArtefactCompetencesCount[$job . $activity]) ? $arrayArtefactCompetencesCount[$job . $activity] : 0;
                $absoluteDebit = $quantityAll - $absoluteCredit;
                $percentCredit = $absoluteDebit == 0 ? 0 : round($absoluteCredit / $quantityAll * 100, 2);
                $percentDebit = $absoluteDebit == 0 ? 0 : -100 + $percentCredit;
                $activityArray1[] = $percentCredit;
                $activityArray1[] = $percentDebit;
                $urlEventArray1[$row] = array(1 => $baseUrl . "&activity=" . $activity . "&sc=1", 2 => $baseUrl . "&activity=" . $activity . "&sc=0");
                $row++;
                $jsonChart1[] = $activityArray1;
            }
            $chartWidget1->setData(json_encode($jsonChart1));
            $chartWidget1->setUrlData(json_encode($urlEventArray1));
            $chartWidget1->setDescription($job);
            $chartWidget1->setVAxisTitle("Tätigkeitsfelder");
            $chartWidget1->setHAxisTitle("Prozent erreicht / noch zu erledigen");
            $chartWidget1->setId($job . "_1");
            $chartWidget1->setTitle($jobObject->description . " - Prozentual");
            $frameResponseObject->addWidget($chartWidget1);
        }
        $rawHtml1 = new \Widgets\RawHtml();
        $rawHtml1->setHtml("<script>\$(\".chart\").fadeOut();\$('#div_CL_1').fadeIn();\$('#div_CL').fadeIn();\n\t\t</script>");
        $frameResponseObject->addWidget($rawHtml1);
        return $frameResponseObject;
    }