From cbd9f168a0431b14cef86bc448aac7f1a170036d Mon Sep 17 00:00:00 2001 From: Dariusz Szut Date: Fri, 2 Dec 2016 10:15:18 +0100 Subject: [PATCH] EZS-1146: Unable to publish a landing page with a language different than the default one --- .../views/fields/ezs-landingpagefieldeditview.js | 4 +--- .../js/views/services/ezs-browserviewservice.js | 28 ++++++++++++++++++++-- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Resources/public/js/views/fields/ezs-landingpagefieldeditview.js b/Resources/public/js/views/fields/ezs-landingpagefieldeditview.js index cffd78c..3b33110 100644 --- a/Resources/public/js/views/fields/ezs-landingpagefieldeditview.js +++ b/Resources/public/js/views/fields/ezs-landingpagefieldeditview.js @@ -33,9 +33,7 @@ YUI.add('ezs-landingpagefieldeditview', function (Y) { * @return {Object}|undefined */ _getFieldValue: function () { - var fieldValue = this.get('field').fieldValue; - - return fieldValue ? fieldValue : undefined; + return this.get('field').fieldValue; } }); diff --git a/Resources/public/js/views/services/ezs-browserviewservice.js b/Resources/public/js/views/services/ezs-browserviewservice.js index ad2c0b0..b090cff 100644 --- a/Resources/public/js/views/services/ezs-browserviewservice.js +++ b/Resources/public/js/views/services/ezs-browserviewservice.js @@ -923,11 +923,12 @@ YUI.add('ezs-browserviewservice', function (Y) { contentModel = this.get('content'), versionModel = this.get('version'), exitUrl = app.routeUri('studioPreview', {previewContentUrl: previewUrl}), - versionPreviewUrl = this.get('versionPreviewUrl'); + versionPreviewUrl = this.get('versionPreviewUrl'), + previewLanguageCode = this._getPreviewLanguageCode(); versionPreviewUrl = versionPreviewUrl.replace('{contentId}', contentModel.get('contentId')); versionPreviewUrl = versionPreviewUrl.replace('{versionNo}', versionModel.get('versionNo')); - versionPreviewUrl = versionPreviewUrl.replace('{languageCode}', this._getActiveSiteaccessDefaultLanguage()); + versionPreviewUrl = versionPreviewUrl.replace('{languageCode}', previewLanguageCode); versionPreviewUrl = versionPreviewUrl.replace('{siteaccess}', app.get('studioActiveSiteaccess')); this._set('iframePreviewDataFetchDisabled', false); @@ -944,6 +945,29 @@ YUI.add('ezs-browserviewservice', function (Y) { }, /** + * Gets the preview language code. Checks if version has translation in siteaccess language. + * Returns first matched language code. + * + * @method _getPreviewLanguageCode + * @protected + * @return {String} preview language code + */ + _getPreviewLanguageCode: function () { + var app = this.get('app'), + siteaccessesConfig = app.get('config.studioSiteaccesses'), + activeSiteaccess = app.get('studioActiveSiteaccess'), + siteaccessLanguages = siteaccessesConfig[activeSiteaccess].languages, + versionLanguages = this.get('version').get('languageCodes').split(','), + languageCode = siteaccessLanguages.filter(function (language) { + return versionLanguages.filter(function (versionLanguage) { + return versionLanguage === language; + })[0]; + })[0]; + + return languageCode; + }, + + /** * Gets the default language for current siteaccess * * @method _getActiveSiteaccessDefaultLanguage