diff --git a/_config/extensions.yml b/_config/extensions.yml index cc60d89..714141a 100644 --- a/_config/extensions.yml +++ b/_config/extensions.yml @@ -16,3 +16,7 @@ HtmlEditorField_Toolbar: DataQuery: extensions: ['Translatable'] + +GridFieldDetailForm_ItemRequest: + extensions: + ['TranslatableCMSMainExtension'] diff --git a/code/controller/TranslatableCMSMainExtension.php b/code/controller/TranslatableCMSMainExtension.php index ec9eda8..0c0eb21 100644 --- a/code/controller/TranslatableCMSMainExtension.php +++ b/code/controller/TranslatableCMSMainExtension.php @@ -120,15 +120,25 @@ class TranslatableCMSMainExtension extends Extension { // persist in the database before the user requests it $translatedRecord = $record->createTranslation($langCode); - $url = Controller::join_links( - $this->owner->Link('show'), - $translatedRecord->ID - ); + if ( $this->owner instanceof GridFieldDetailForm_ItemRequest ) { + $controller = $this->owner->getController(); + + $this->owner->record = $translatedRecord; + + $url = $this->owner->Link('edit'); + } else { + $controller = $this->owner; + + $url = Controller::join_links( + $this->owner->Link('show'), + $translatedRecord->ID + ); + } // set the X-Pjax header to Content, so that the whole admin panel will be refreshed - $this->owner->getResponse()->addHeader('X-Pjax', 'Content'); + $controller->getResponse()->addHeader('X-Pjax', 'Content'); - return $this->owner->redirect($url); + return $controller->redirect($url); } function updateLink(&$link) { diff --git a/javascript/CMSMain.Translatable.js b/javascript/CMSMain.Translatable.js index 161f13c..9ddc991 100755 --- a/javascript/CMSMain.Translatable.js +++ b/javascript/CMSMain.Translatable.js @@ -66,7 +66,7 @@ * Requires: * jquery.metadata */ - $('.LeftAndMain :input[name=action_createtranslation]').entwine({ + $(':input[name=action_createtranslation]').entwine({ onclick: function(e) { this.parents('form').trigger('submit', [this]); @@ -75,4 +75,4 @@ } }); }); -}(jQuery)); \ No newline at end of file +}(jQuery));