/**
  * Create a new report
  *
  * @param array  $data
  * @param Form $form
  */
 public function createreport($data, $form)
 {
     // assume a user's okay if they can edit the reportholder
     // @TODO have a new create permission here?
     if ($this->data()->canEdit()) {
         $type = $data['ReportType'];
         $classes = ClassInfo::subclassesFor('AdvancedReport');
         if (!in_array($type, $classes)) {
             throw new Exception("Invalid report type");
         }
         $report = new ReportPage();
         $report->Title = $data['ReportName'];
         $report->MetaDescription = isset($data['ReportDescription']) ? $data['ReportDescription'] : '';
         $report->ReportType = $type;
         $report->ParentID = $this->data()->ID;
         $oldMode = Versioned::get_reading_mode();
         Versioned::reading_stage('Stage');
         $report->write();
         $report->doPublish();
         Versioned::reading_stage('Live');
         $this->redirect($report->Link());
     } else {
         $form->sessionMessage(_t('ReporHolder.NO_PERMISSION', 'You do not have permission to do that'), 'warning');
         $this->redirect($this->data()->Link());
     }
 }
예제 #2
0
 /**
  * @return Array
  */
 public function getExtraReportParams()
 {
     $extraParams = parent::getExtraReportParams();
     if (!$this->crossTable) {
         $extraParams['mode'] = MODE_PRINT;
     }
     return $extraParams;
 }
 public function doCreate($data, $form)
 {
     if (!singleton('AdvancedReport')->canCreate()) {
         return Security::permissionFailure($this);
     }
     $data = $form->getData();
     $description = $data['Description'];
     $class = $data['ClassName'];
     if (!is_subclass_of($class, 'AdvancedReport')) {
         $form->addErrorMessage('ClassName', _t('ReportHolder.INVALID_TYPE', 'An invalid report type was selected'), 'required');
         return $this->redirectBack();
     }
     $page = new ReportPage();
     $page->update(array('Title' => $data['Title'], 'Content' => $description ? "<p>{$description}</p>" : '', 'ReportType' => $class, 'ParentID' => $this->data()->ID));
     $page->writeToStage('Stage');
     if (Versioned::current_stage() == Versioned::get_live_stage()) {
         $page->doPublish();
     }
     return $this->redirect($page->Link());
 }
			if($layout)
			{
				$pageObject->AddCSSFile($layout->getCSSFiles(isRTL(), isMobile()));
			}
			$mkr = 1;
			$masterkey = '';
			foreach($mKeys[$strTableName] as $mk)
			{
				$options['masterKeysReq'][$mkr++] = $data[$mk];
				$masterkey .= $data[$mk];
			}
			
			$options["pageSize"] = $_SESSION[$strTableName."_pagesize"];
			$options["masterkey"] = $masterkey;
			$options["crosstable_refresh"] = postvalue("crosstable_refresh");
			$reportPageObject = new ReportPage($options);
			$reportPageObject->init();
			$reportPageObject->prepareDetailForEditViewPage($dpParams['params'][$d]);
					
			//add detail settings to master settings
			$reportPageObject->addControlsJSAndCSS();
			$reportPageObject->fillSetCntrlMaps();
			$pageObject->jsSettings['tableSettings'][$strTableName]	= $reportPageObject->jsSettings['tableSettings'][$strTableName];
			$dControlsMap[$strTableName] = $reportPageObject->controlsMap;
			$dViewControlsMap[$strTableName] = $reportPageObject->viewControlsMap;
			foreach($reportPageObject->jsSettings['global']['shortTNames'] as $keySet=>$val)
			{
					if(!array_key_exists($keySet,$pageObject->settingsMap["globalSettings"]['shortTNames']))
							$pageObject->settingsMap["globalSettings"]['shortTNames'][$keySet] = $val;
			}
while (true) {
    $i++;
    if (isset($_REQUEST["masterkey" . $i])) {
        $_masterKey = $_REQUEST["masterkey" . $i];
    } elseif (isset($masterKeys["masterkey" . $i])) {
        $_masterKey = $masterKeys["masterkey" . $i];
    } else {
        break;
    }
    $params["masterKeysReq"][$i] = $_masterKey;
}
if ($pageMode = REPORT_DASHBOARD) {
    $params["dashElementName"] = postvalue("dashelement");
    $params["dashTName"] = postvalue("table");
}
$pageObject = new ReportPage($params);
$pageObject->init();
// Save search
if (postvalue("saveSearch") && postvalue("searchName") && !is_null($pageObject->searchLogger)) {
    $searchName = postvalue("searchName");
    $searchParams = $pageObject->getSearchParamsForSaving();
    $pageObject->searchLogger->saveSearch($searchName, $searchParams);
    $pageObject->searchClauseObj->savedSearchIsRun = true;
    $_SESSION[$pageObject->sessionPrefix . '_advsearch'] = serialize($pageObject->searchClauseObj);
    echo my_json_encode($searchParams);
    exit;
}
// Delete the saved search
if (postvalue("deleteSearch") && postvalue("searchName") && !is_null($pageObject->searchLogger)) {
    $searchName = postvalue("searchName");
    $pageObject->searchLogger->deleteSearch($searchName);
예제 #6
0
파일: reports.php 프로젝트: hugutux/booked
<?php

/**
Copyright 2011-2014 Nick Korbel

This file is part of Booked Scheduler.

Booked Scheduler is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Booked Scheduler is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Booked Scheduler.  If not, see <http://www.gnu.org/licenses/>.
*/
define('ROOT_DIR', '../');
require_once ROOT_DIR . 'Pages/ReportPage.php';
$page = new ReportPage();
$page->PageLoad();
예제 #7
0
 /**
  * @param String reportTName
  * @param Number reportId
  * @param &Array data
  */
 protected function setDetailReportOnEditView($reportTName, $reportId, &$data)
 {
     include_once getabspath('classes/reportpage.php');
     //array of params for ReportPage constructor
     $options = array();
     $options["id"] = $reportId;
     $options["mode"] = REPORT_DETAILS;
     $options["tName"] = $reportTName;
     $options["pageType"] = PAGE_REPORT;
     $options["masterTable"] = $this->tName;
     $options["xt"] = new Xtempl(true);
     //#9607 1. Temporary fix
     $options["flyId"] = $this->genId() + 1;
     //fix it!
     $options["masterKeysReq"] = array();
     $mkr = 1;
     $mKeys = $this->pSet->getMasterKeysByDetailTable($reportTName);
     foreach ($mKeys as $mk) {
         $options["masterKeysReq"][$mkr++] = $data[$mk];
     }
     $reportPageObject = new ReportPage($options);
     $reportPageObject->init();
     if (isMobile()) {
         $reportPageObject->pageSize = -1;
     }
     $reportPageObject->prepareDetailsForEditViewPage();
     //add detail settings to master settings
     $reportPageObject->addControlsJSAndCSS();
     $reportPageObject->fillSetCntrlMaps();
     $this->copyDetailPreviewJSAndCSS($reportPageObject);
     $this->assignDisplayDetailTableXtVariable($reportPageObject);
     $this->updateSettingsWidthDPData($reportPageObject);
     $this->viewControlsMap["dViewControlsMap"][$reportTName] = $reportPageObject->viewControlsMap;
     $this->controlsMap["dControlsMap"][$reportTName] = $reportPageObject->controlsMap;
     $this->controlsMap["dpTablesParams"][] = array("tName" => $reportTName, "id" => $options["id"], "pType" => PAGE_REPORT);
 }