Skip to content

Commit f8f63a2

Browse files
authored
REFACTOR Locator - getTrigger (#220)
* REFACTOR Locator - getTrigger Check if any GET vars exist, or if static $db ResultsOnLoad is true. If so, display results. closes #219 * travis tweak * phpcs
1 parent 4e09b0a commit f8f63a2

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

src/pages/Locator.php

+13
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Dynamic\SilverStripeGeocoder\AddressDataExtension;
66
use SilverStripe\Core\Manifest\ModuleResourceLoader;
7+
use SilverStripe\Forms\CheckboxField;
78
use SilverStripe\Forms\FieldList;
89
use SilverStripe\Forms\GridField\GridFieldAddExistingAutocompleter;
910
use SilverStripe\Forms\HeaderField;
@@ -46,6 +47,7 @@ class Locator extends \Page
4647
*/
4748
private static $db = array(
4849
'Unit' => 'Enum("m,km","m")',
50+
'ResultsOnLoad' => 'Boolean',
4951
);
5052

5153
/**
@@ -55,6 +57,13 @@ class Locator extends \Page
5557
'Categories' => LocationCategory::class,
5658
);
5759

60+
/**
61+
* @var array
62+
*/
63+
private static $defaults = [
64+
'ResultsOnLoad' => 0,
65+
];
66+
5867
/**
5968
* @var string
6069
*/
@@ -75,6 +84,10 @@ public function getCMSFields()
7584
$fields->addFieldsToTab('Root.Settings', array(
7685
HeaderField::create('DisplayOptions', 'Display Options', 3),
7786
OptionsetField::create('Unit', 'Unit of measure', array('m' => 'Miles', 'km' => 'Kilometers')),
87+
CheckboxField::create('ResultsOnLoad', 'Show results on page load')
88+
->setDescription('For larger collections of locations, it is
89+
recommended to only show a limited amount of results after a location
90+
search.')
7891
));
7992

8093
// Filter categories

src/pages/LocatorController.php

+1-10
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,6 @@ class LocatorController extends \PageController
6565
*/
6666
private static $list_container = 'loc-list';
6767

68-
/**
69-
* GET variable which, if isset, will trigger storeLocator init and return XML
70-
*
71-
* @var string
72-
*/
73-
private static $query_trigger = 'action_doFilterLocations';
74-
7568
/**
7669
* @var DataList|ArrayList
7770
*/
@@ -186,9 +179,7 @@ public function getTrigger(HTTPRequest $request = null)
186179
if ($request === null) {
187180
$request = $this->getRequest();
188181
}
189-
$trigger = $request->getVar(Config::inst()->get(LocatorController::class, 'query_trigger'));
190-
191-
return isset($trigger);
182+
return !empty($this->getRequest()->getVars()) || $this->data()->ResultsOnLoad;
192183
}
193184

194185
/**

0 commit comments

Comments
 (0)