From 5028dd6ad439a3a87db3877d3777c09b82018b14 Mon Sep 17 00:00:00 2001 From: Ryan Cramer Date: Tue, 19 Apr 2022 11:17:33 -0400 Subject: [PATCH] Update ProcessPageLister to recognize fields that are not sortable, such as those from FieldtypeRuntimeOnly --- .../ProcessPageLister.module | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/wire/modules/Process/ProcessPageLister/ProcessPageLister.module b/wire/modules/Process/ProcessPageLister/ProcessPageLister.module index c1b001f0..751877b5 100644 --- a/wire/modules/Process/ProcessPageLister/ProcessPageLister.module +++ b/wire/modules/Process/ProcessPageLister/ProcessPageLister.module @@ -1235,6 +1235,7 @@ class ProcessPageLister extends Process implements ConfigurableModule { * */ protected function isSortableCol(Field $field, $subfield = '') { + if(!$this->isSortableField($field)) return false; if($subfield === 'data' || empty($subfield) || $subfield === 'count') return true; if($subfield === 'keys' || $subfield === 'xtra') return false; $fieldtype = $field->type; @@ -1242,6 +1243,21 @@ class ProcessPageLister extends Process implements ConfigurableModule { return isset($schema[$subfield]); } + /** + * Is field sortable? + * + * @param Field $field + * @return bool + * @since 3.0.199 + * + */ + protected function isSortableField(Field $field) { + $table = $field->getTable(); + if(empty($table)) return false; + if(!$this->wire()->database->tableExists($field->getTable())) return false; + return true; + } + /** * Build the Lister table containing results * @@ -1333,6 +1349,9 @@ class ProcessPageLister extends Process implements ConfigurableModule { if($field && !$this->isSortableCol($field, $subname)) { $thClass = 'not_sortable'; } + } else if($field && !$this->isSortableField($field)) { + $sortKey = "$name"; + $thClass = 'not_sortable'; } else { $sortKey = "$name"; }