diff --git a/forms/gridfield/GridField.php b/forms/gridfield/GridField.php
index 5815b55b6..828a19474 100755
--- a/forms/gridfield/GridField.php
+++ b/forms/gridfield/GridField.php
@@ -744,11 +744,14 @@ class GridField_Action extends FormAction {
* @return string HTML tag
*/
public function Field() {
+ Requirements::css(THIRDPARTY_DIR . '/jquery-ui-themes/smoothness/jquery-ui.css');
Requirements::css(SAPPHIRE_DIR . '/css/GridField.css');
Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js');
+ Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-ui/jquery-ui.js');
Requirements::javascript(THIRDPARTY_DIR . '/json-js/json2.js');
Requirements::javascript(SAPPHIRE_DIR . '/javascript/i18n.js');
+ Requirements::add_i18n_javascript(SAPPHIRE_DIR . '/javascript/lang');
Requirements::javascript(THIRDPARTY_DIR . '/jquery-entwine/dist/jquery.entwine-dist.js');
Requirements::javascript(SAPPHIRE_DIR . '/javascript/GridField.js');
diff --git a/forms/gridfield/GridFieldRelationAdd.php b/forms/gridfield/GridFieldRelationAdd.php
index 96368173a..5001d2701 100755
--- a/forms/gridfield/GridFieldRelationAdd.php
+++ b/forms/gridfield/GridFieldRelationAdd.php
@@ -53,12 +53,6 @@ class GridFieldRelationAdd implements GridField_HTMLProvider, GridField_ActionPr
$searchState = $gridField->State->GridFieldSearchRelation;
$dataClass = $gridField->getList()->dataClass();
- Requirements::css(THIRDPARTY_DIR . '/jquery-ui-themes/smoothness/jquery-ui.css');
- Requirements::add_i18n_javascript(SAPPHIRE_DIR . '/javascript/lang');
- Requirements::javascript(THIRDPARTY_DIR . '/jquery/jquery.js');
- Requirements::javascript(SAPPHIRE_DIR . '/thirdparty/jquery-ui/jquery-ui.js');
- Requirements::javascript(SAPPHIRE_DIR . "/javascript/GridFieldSearch.js");
-
$forTemplate = new ArrayData(array());
$forTemplate->Fields = new ArrayList();
diff --git a/javascript/GridField.js b/javascript/GridField.js
index 2ea3671e4..6d7136413 100644
--- a/javascript/GridField.js
+++ b/javascript/GridField.js
@@ -207,4 +207,44 @@
}
});
+ $(".ss-gridfield .relation-search").entwine({
+ onfocusin: function (event) {
+ this.autocomplete({
+ source: function(request, response){
+ var searchField = $(this.element);
+ var form = $(this.element).closest("form");
+ // Due to some very weird behaviout of jquery.metadata, the url have to be double quoted
+ var suggestionUrl = $(searchField).attr('data-search-url').substr(1,$(searchField).attr('data-search-url').length-2);
+ $.ajax({
+ headers: {
+ "X-Get-Fragment" : 'Partial'
+ },
+ type: "GET",
+ url: suggestionUrl+'/'+request.term,
+ data: form.serialize()+'&'+escape(searchField.attr('name'))+'='+escape(searchField.val()),
+ success: function(data) {
+ response( $.map(JSON.parse(data), function( name, id ) {
+ return { label: name, value: name, id: id };
+ }));
+ },
+ error: function(e) {
+ alert(ss.i18n._t('GRIDFIELD.ERRORINTRANSACTION', 'An error occured while fetching data from the server\n Please try again later.'));
+ }
+ });
+ },
+ select: function(event, ui) {
+ $(this).closest(".ss-gridfield").find("#action_gridfield_relationfind").replaceWith(
+ ''
+ );
+ var addbutton = $(this).closest(".ss-gridfield").find("#action_gridfield_relationadd");
+ if(addbutton.data('button')){
+ addbutton.button('enable');
+ }else{
+ addbutton.removeAttr('disabled');
+ }
+ }
+ });
+ }
+ });
+
}(jQuery));
diff --git a/javascript/GridFieldSearch.js b/javascript/GridFieldSearch.js
deleted file mode 100644
index d745e96ab..000000000
--- a/javascript/GridFieldSearch.js
+++ /dev/null
@@ -1,41 +0,0 @@
-jQuery(function($){
-
- $(document).delegate(".ss-gridfield .relation-search", "focus", function (event) {
- $(this).autocomplete({
- source: function(request, response){
- var searchField = $(this.element);
- var form = $(this.element).closest("form");
- // Due to some very weird behaviout of jquery.metadata, the url have to be double quoted
- var suggestionUrl = $(searchField).attr('data-search-url').substr(1,$(searchField).attr('data-search-url').length-2);
- $.ajax({
- headers: {
- "X-Get-Fragment" : 'Partial'
- },
- type: "GET",
- url: suggestionUrl+'/'+request.term,
- data: form.serialize()+'&'+escape(searchField.attr('name'))+'='+escape(searchField.val()),
- success: function(data) {
- response( $.map(JSON.parse(data), function( name, id ) {
- return { label: name, value: name, id: id };
- }));
- },
- error: function(e) {
- alert(ss.i18n._t('GRIDFIELD.ERRORINTRANSACTION', 'An error occured while fetching data from the server\n Please try again later.'));
- }
- });
- },
- select: function(event, ui) {
- $(this).closest(".ss-gridfield").find("#action_gridfield_relationfind").replaceWith(
- ''
- );
- var addbutton = $(this).closest(".ss-gridfield").find("#action_gridfield_relationadd");
- if(addbutton.data('button')){
- addbutton.button('enable');
- }else{
- addbutton.removeAttr('disabled');
- }
- }
- });
- });
-
-});
\ No newline at end of file