From dfa9534258e78235583c73e1cf2f89d38e4e7869 Mon Sep 17 00:00:00 2001 From: Steve Hannah Date: Sun, 3 Oct 2021 05:57:13 -0700 Subject: [PATCH] Added support for list:link_to_domain_record in relationships.ini file which will cause the related list of a relationship to link directly to the domain record when user clicks on row instead of going to the view_related_record action. This is actually the old default behaviour. --- Dataface/Relationship.php | 4 ++++ actions/view_related_record.php | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/Dataface/Relationship.php b/Dataface/Relationship.php index dc949c00..5bf3989d 100644 --- a/Dataface/Relationship.php +++ b/Dataface/Relationship.php @@ -141,6 +141,10 @@ function setFieldDefOverride($field_name, array $field_def){ } $this->_field_def_overrides[$field_name] = $field_def; } + + function isLinkToDomainRecord() { + return !empty($this->_schema['list']['link_to_domain_record']) and $this->_schema['list']['link_to_domain_record']; + } /** * Returns an array of names of fields in this relationship. diff --git a/actions/view_related_record.php b/actions/view_related_record.php index 2edc4609..0c8a0d42 100644 --- a/actions/view_related_record.php +++ b/actions/view_related_record.php @@ -17,6 +17,12 @@ function handle($params){ if ( !@$perms['view'] ){ return Dataface_Error::permissionDenied('You don\'t have permission to view this record.'); } + + if ($related_record->_relationship->isLinkToDomainRecord()) { + $domainRecord = $related_record->toRecord(); + header('Location: '.$domainRecord->getURL()); + return; + } $query['-relationship'] = $related_record->_relationship->getName(); Dataface_JavascriptTool::getInstance()->import('xataface/actions/view_related_record.js');