From 9cd09d53f8f10bc41830bdd9fbfc7a785087bc1e Mon Sep 17 00:00:00 2001 From: Sean Harvey Date: Wed, 21 Oct 2009 04:39:50 +0000 Subject: [PATCH] ENHANCEMENT Current search and current page of asset section are persistent. Fixes the open source ticket #4470 and also a part of #4256 (from r84091) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@89820 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- code/AssetAdmin.php | 2 +- code/AssetTableField.php | 20 ++++++++++++++++++++ javascript/AssetTableField.js | 17 ++++++----------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/code/AssetAdmin.php b/code/AssetAdmin.php index 69d22ab8..6024b678 100755 --- a/code/AssetAdmin.php +++ b/code/AssetAdmin.php @@ -334,7 +334,7 @@ HTML; $message = sprintf(_t('AssetAdmin.MOVEDX','Moved %s files'),$numFiles); FormResponse::status_message($message, "good"); - FormResponse::add("$('Form_EditForm').getPageFromServer($('Form_EditForm_ID').value)"); + FormResponse::add("$('Form_EditForm_Files').refresh();"); return FormResponse::respond(); } diff --git a/code/AssetTableField.php b/code/AssetTableField.php index da8c548e..ce8cae71 100755 --- a/code/AssetTableField.php +++ b/code/AssetTableField.php @@ -48,6 +48,26 @@ class AssetTableField extends ComplexTableField { $this->Markable = true; } + /** + * Creates the link to this form, including the search pattern + * + * @return string + */ + function CurrentLink() { + $link = parent::CurrentLink(); + + if(isset($_REQUEST['FileSearch']) ) { + if ( strpos($link, '?')!==false ) + $link .= "&"; + else + $link .= "/?"; + + $link .= "FileSearch=".urlencode($_REQUEST['FileSearch']); + } + + return $link; + } + function FieldHolder() { $ret = parent::FieldHolder(); diff --git a/javascript/AssetTableField.js b/javascript/AssetTableField.js index 39c8a354..85205309 100644 --- a/javascript/AssetTableField.js +++ b/javascript/AssetTableField.js @@ -74,25 +74,20 @@ FileFilterButton.prototype = { try { var form = Event.findElement(e, 'form'); var fieldName = $('FileFieldName').value; - var fieldID = form.id + '_' + fieldName; - var updateURL = form.action + '/field/' + fieldName + '?ajax=1'; + // build url + var updateURL = form.action + '/field/' + fieldName + '?'; for(var index = 0; index < this.inputFields.length; index++) { if(this.inputFields[index].tagName) { updateURL += '&' + this.inputFields[index].name + '=' + encodeURIComponent(this.inputFields[index].value); } } - updateURL += ($('SecurityID') ? '&SecurityID=' + $('SecurityID').value : ''); - new Ajax.Updater(fieldID, updateURL, { - onComplete: function() { - Behaviour.apply($(fieldID), true); - }, - onFailure: function(response) { - errorMessage('Could not filter results: ' + response.responseText ); - } - }); + // update the field + var field = form.getElementsByClassName('AssetTableField')[0]; + field.setAttribute('href', updateURL); + field.refresh(); } catch(er) { errorMessage('Error searching'); }