BUGFIX: SSF-168 fixing "print" and "export to CSV" button in Report Admin

This commit is contained in:
Julian Seidenberg 2012-04-10 11:15:29 +12:00
parent 3222e2de4f
commit 8df5cd74fc
2 changed files with 23 additions and 4 deletions

View File

@ -15,7 +15,7 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider {
static $url_segment = 'reports'; static $url_segment = 'reports';
static $url_rule = '/$Action/$ID'; static $url_rule = '/$ReportClass/$Action';
static $menu_title = 'Reports'; static $menu_title = 'Reports';
@ -23,6 +23,10 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider {
static $tree_class = 'SS_Report'; static $tree_class = 'SS_Report';
public static $url_handlers = array(
'$ReportClass/$Action' => 'handleAction'
);
/** /**
* Variable that describes which report we are currently viewing based on the URL (gets set in init method) * Variable that describes which report we are currently viewing based on the URL (gets set in init method)
* @var String * @var String
@ -35,7 +39,7 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider {
parent::init(); parent::init();
//set the report we are currently viewing from the URL //set the report we are currently viewing from the URL
$this->reportClass = (isset($this->urlParams['ID'])) ? $this->urlParams['ID'] : null; $this->reportClass = (isset($this->urlParams['ReportClass'])) ? $this->urlParams['ReportClass'] : null;
$allReports = SS_Report::get_reports(); $allReports = SS_Report::get_reports();
$this->reportObject = (isset($allReports[$this->reportClass])) ? $allReports[$this->reportClass] : null; $this->reportObject = (isset($allReports[$this->reportClass])) ? $allReports[$this->reportClass] : null;
@ -118,6 +122,16 @@ class ReportAdmin extends LeftAndMain implements PermissionProvider {
return $items; return $items;
} }
/**
* Returns the link to the report admin section, or the specific report that is currently displayed
* @return String
*/
public function Link($action = null) {
$link = parent::Link($action);
if ($this->reportObject) $link = $this->reportObject->getLink($action);
return $link;
}
function providePermissions() { function providePermissions() {
$title = _t("ReportAdmin.MENUTITLE", LeftAndMain::menu_title_for_class($this->class)); $title = _t("ReportAdmin.MENUTITLE", LeftAndMain::menu_title_for_class($this->class));
return array( return array(

View File

@ -134,8 +134,13 @@ class SS_Report extends ViewableData {
return $this->dataClass; return $this->dataClass;
} }
function getLink() { function getLink($action = null) {
return 'admin/reports/show/' . $this->class; return Controller::join_links(
'admin/reports/',
"$this->class",
'/', // trailing slash needed if $action is null!
"$action"
);
} }