From 74b29d87e963c6f59a24328af2b59402f8556509 Mon Sep 17 00:00:00 2001 From: Kmaschta Date: Wed, 28 Sep 2016 13:42:53 +0200 Subject: [PATCH] Unescaped translation Disable default HTML escape from angular-translate Fix #1214 --- examples/blog/data.js | 2 +- src/javascripts/ng-admin/Main/config/translate.js | 2 +- src/javascripts/test/e2e/ListViewSpec.js | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/examples/blog/data.js b/examples/blog/data.js index f5483595..9c772fdc 100644 --- a/examples/blog/data.js +++ b/examples/blog/data.js @@ -2,7 +2,7 @@ var apiData = { "posts": [ { "id": 1, - "title": "Accusantium qui nihil voluptatum quia voluptas maxime ab similique", + "title": "Accusantium qui nihil & voluptatum quia voluptas maxime ab similique", "teaser": "In facilis aut aut odit hic doloribus. Fugit possimus perspiciatis sit molestias in. Sunt dignissimos sed quis at vitae veniam amet. Sint sunt perspiciatis quis doloribus aperiam numquam consequatur et. Blanditiis aut earum incidunt eos magnam et voluptatem. Minima iure voluptatum autem. At eaque sit aperiam minima aut in illum.", "body": "

Rerum velit quos est similique. Consectetur tempora eos ullam velit nobis sit debitis. Magni explicabo omnis delectus labore vel recusandae.

Aut a minus laboriosam harum placeat quas minima fuga. Quos nulla fuga quam officia tempore. Rerum occaecati ut eum et tempore. Nam ab repudiandae et nemo praesentium.

Cumque corporis officia occaecati ducimus sequi laborum omnis ut. Nam aspernatur veniam fugit. Nihil eum libero ea dolorum ducimus impedit sed. Quidem inventore porro corporis debitis eum in. Nesciunt unde est est qui nulla. Esse sunt placeat molestiae molestiae sed quia. Sunt qui quidem quos velit reprehenderit quos blanditiis ducimus. Sint et molestiae maxime ut consequatur minima. Quaerat rem voluptates voluptatem quos. Corporis perferendis in provident iure. Commodi odit exercitationem excepturi et deserunt qui.

Optio iste necessitatibus velit non. Neque sed occaecati culpa porro culpa. Quia quam in molestias ratione et necessitatibus consequatur. Est est tempora consequatur voluptatem vel. Mollitia tenetur non quis omnis perspiciatis deserunt sed necessitatibus. Ad rerum reiciendis sunt aspernatur.

Est ullam ut magni aspernatur. Eum et sed tempore modi.

Earum aperiam sit neque quo laborum suscipit unde. Expedita nostrum itaque non non adipisci. Ut delectus quis delectus est at sint. Iste hic qui ea eaque eaque sed id. Hic placeat rerum numquam id velit deleniti voluptatem. Illum adipisci voluptas adipisci ut alias. Earum exercitationem iste quidem eveniet aliquid hic reiciendis. Exercitationem est sunt in minima consequuntur. Aut quaerat libero dolorem.

", "views": 143, diff --git a/src/javascripts/ng-admin/Main/config/translate.js b/src/javascripts/ng-admin/Main/config/translate.js index 6e9d4aea..656697b9 100644 --- a/src/javascripts/ng-admin/Main/config/translate.js +++ b/src/javascripts/ng-admin/Main/config/translate.js @@ -42,7 +42,7 @@ export default function translate($translateProvider) { 'NOT_FOUND_DETAILS': 'The page you are looking for cannot be found. Take a break before trying again.', }); $translateProvider.preferredLanguage('en'); - $translateProvider.useSanitizeValueStrategy('sanitize'); + $translateProvider.useSanitizeValueStrategy(null); } translate.$inject = ['$translateProvider']; diff --git a/src/javascripts/test/e2e/ListViewSpec.js b/src/javascripts/test/e2e/ListViewSpec.js index 125d7d5c..26198827 100644 --- a/src/javascripts/test/e2e/ListViewSpec.js +++ b/src/javascripts/test/e2e/ListViewSpec.js @@ -174,4 +174,13 @@ describe('ListView', function () { }); }); + describe('translate', () => { + it('should not escape HTML characters', () => { + const title = $$('tbody tr:last-child .ng-admin-column-title').first(); + + // If this title is escaped, it will be: + // Accusantium qui nihil & voluptatum quia voluptas maxime ab similique + expect(title.getText()).toBe('Accusantium qui nihil & voluptatum quia voluptas maxime ab similique'); + }); + }); });