mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-22 09:05:53 +00:00
Fixed bugs in MemberTableField search
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@61614 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
a009cf5341
commit
725ba3a610
@ -135,8 +135,8 @@ class MemberTableField extends ComplexTableField {
|
|||||||
$SQL_search = isset($_REQUEST['MemberSearch']) ? Convert::raw2sql($_REQUEST['MemberSearch']) : null;
|
$SQL_search = isset($_REQUEST['MemberSearch']) ? Convert::raw2sql($_REQUEST['MemberSearch']) : null;
|
||||||
if(!empty($_REQUEST['MemberSearch'])) {
|
if(!empty($_REQUEST['MemberSearch'])) {
|
||||||
$searchFilters = array();
|
$searchFilters = array();
|
||||||
foreach($SNG_member->stat('searchable_fields') as $fieldName => $fieldSpec) {
|
foreach($SNG_member->searchableFields() as $fieldName => $fieldSpec) {
|
||||||
$searchFilters[] = "`$fieldName` LIKE '%{$SQL_search}%'";
|
if(strpos($fieldName,'.') === false) $searchFilters[] = "`$fieldName` LIKE '%{$SQL_search}%'";
|
||||||
}
|
}
|
||||||
$this->sourceFilter[] = '(' . implode(' OR ', $searchFilters) . ')';
|
$this->sourceFilter[] = '(' . implode(' OR ', $searchFilters) . ')';
|
||||||
}
|
}
|
||||||
@ -392,6 +392,7 @@ class MemberTableField extends ComplexTableField {
|
|||||||
|
|
||||||
// We use the group to get the members, as they already have the bulk of the look up functions
|
// We use the group to get the members, as they already have the bulk of the look up functions
|
||||||
$start = isset($_REQUEST['ctf'][$this->Name()]['start']) ? $_REQUEST['ctf'][$this->Name()]['start'] : 0;
|
$start = isset($_REQUEST['ctf'][$this->Name()]['start']) ? $_REQUEST['ctf'][$this->Name()]['start'] : 0;
|
||||||
|
|
||||||
$this->sourceItems = $this->group->Members(
|
$this->sourceItems = $this->group->Members(
|
||||||
$this->pageSize, // limit
|
$this->pageSize, // limit
|
||||||
$start, // offset
|
$start, // offset
|
||||||
|
@ -214,7 +214,7 @@ MemberFilterButton.prototype = {
|
|||||||
initialize: function() {
|
initialize: function() {
|
||||||
this.inputFields = new Array();
|
this.inputFields = new Array();
|
||||||
|
|
||||||
var childNodes = this.parentNode.getElementsByTagName('input');
|
var childNodes = this.parentNode.parentNode.getElementsByTagName('input');
|
||||||
|
|
||||||
for( var index = 0; index < childNodes.length; index++ ) {
|
for( var index = 0; index < childNodes.length; index++ ) {
|
||||||
if( childNodes[index].tagName ) {
|
if( childNodes[index].tagName ) {
|
||||||
@ -246,9 +246,7 @@ MemberFilterButton.prototype = {
|
|||||||
|
|
||||||
var updateURL = "";
|
var updateURL = "";
|
||||||
updateURL += Event.findElement(e,"form").action;
|
updateURL += Event.findElement(e,"form").action;
|
||||||
// we can't set "fieldName" as a HiddenField because there might be multiple ComplexTableFields in a single EditForm-container
|
updateURL += '/field/' + $('MemberFieldName').value + '/ajax_refresh?ajax=1&';
|
||||||
updateURL += "&fieldName="+$('MemberFieldName').value;
|
|
||||||
updateURL += "&action_callfieldmethod&methodName=ajax_refresh&";
|
|
||||||
for( var index = 0; index < this.inputFields.length; index++ ) {
|
for( var index = 0; index < this.inputFields.length; index++ ) {
|
||||||
if( this.inputFields[index].tagName ) {
|
if( this.inputFields[index].tagName ) {
|
||||||
updateURL += this.inputFields[index].name + '=' + encodeURIComponent( this.inputFields[index].value ) + '&';
|
updateURL += this.inputFields[index].name + '=' + encodeURIComponent( this.inputFields[index].value ) + '&';
|
||||||
|
Loading…
x
Reference in New Issue
Block a user