MINOR GridField JS API for updating state

This commit is contained in:
Ingo Schommer 2012-02-08 21:28:04 +01:00
parent 47ac047454
commit 1b42b2afa7
5 changed files with 20 additions and 9 deletions

View File

@ -713,6 +713,11 @@ class GridField_Action extends FormAction {
* @return string HTML tag
*/
public function Field() {
Requirements::javascript(SAPPHIRE_DIR.'/thirdparty/jquery/jquery.js');
Requirements::javascript(SAPPHIRE_DIR.'/thirdparty/json-js/json2.js');
Requirements::javascript(SAPPHIRE_DIR.'/thirdparty/jquery-entwine/dist/jquery.entwine-dist.js');
Requirements::javascript('sapphire/javascript/GridField.js');
// Store state in session, and pass ID to client side
$state = array(
'grid' => $this->getNameFromParent(),

View File

@ -54,9 +54,6 @@ class GridFieldFilter implements GridField_HTMLProvider, GridField_DataManipulat
}
public function getHTMLFragments($gridField) {
Requirements::javascript(SAPPHIRE_DIR.'/thirdparty/jquery-entwine/dist/jquery.entwine-dist.js');
Requirements::javascript('sapphire/javascript/GridField.js');
$forTemplate = new ArrayData(array());
$forTemplate->Fields = new ArrayList;

View File

@ -83,9 +83,6 @@ class GridFieldPaginator implements GridField_HTMLProvider, GridField_DataManipu
* @return array
*/
public function getHTMLFragments($gridField) {
Requirements::javascript(SAPPHIRE_DIR.'/thirdparty/jquery-entwine/dist/jquery.entwine-dist.js');
Requirements::javascript(SAPPHIRE_DIR.'/javascript/GridField.js');
$forTemplate = new ArrayData(array());
$forTemplate->Fields = new ArrayList;

View File

@ -13,9 +13,6 @@ class GridFieldSortableHeader implements GridField_HTMLProvider, GridField_DataM
* Returns the header row providing titles with sort buttons
*/
public function getHTMLFragments($gridField) {
Requirements::javascript(SAPPHIRE_DIR.'/thirdparty/jquery-entwine/dist/jquery.entwine-dist.js');
Requirements::javascript(SAPPHIRE_DIR.'/javascript/GridField.js');
$forTemplate = new ArrayData(array());
$forTemplate->Fields = new ArrayList;

View File

@ -3,6 +3,21 @@ jQuery(function($){
$('fieldset.ss-gridfield').entwine({
getItems: function() {
return this.find('.ss-gridfield-item');
},
/**
* @param {String}
* @param {Mixed}
*/
setState: function(k, v) {
var state = this.getState();
state[k] = v;
this.find(':input[name="' + this.data('name') + '[GridState]"]').val(JSON.stringify(state));
},
/**
* @return {Object}
*/
getState: function() {
return JSON.parse(this.find(':input[name="' + this.data('name') + '[GridState]"]').val());
}
});