From 485c7e562315f3c68182a506f8820efd00f24888 Mon Sep 17 00:00:00 2001
From: Andreas Fernandez <a.fernandez@scripting-base.de>
Date: Thu, 15 Oct 2015 00:10:52 +0200
Subject: [PATCH] [BUGFIX] Create proper array of cached icons
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Change the handling of fetching cached icons to create a proper
array containing only one object instead of having an object
per icon.

Resolves: #70730
Related: #70583
Releases: master
Change-Id: I863504bf4178367551849fbc5e82541a252318f7
Reviewed-on: http://review.typo3.org/44069
Reviewed-by: Frank Nägler <frank.naegler@typo3.org>
Reviewed-by: Markus Klein <markus.klein@typo3.org>
Tested-by: Markus Klein <markus.klein@typo3.org>
Reviewed-by: Mathias Brodala <mbrodala@pagemachine.de>
Reviewed-by: Morton Jonuschat <m.jonuschat@mojocode.de>
Tested-by: Morton Jonuschat <m.jonuschat@mojocode.de>
---
 .../sysext/backend/Resources/Public/JavaScript/Icons.js  | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/Icons.js b/typo3/sysext/backend/Resources/Public/JavaScript/Icons.js
index aae5f6d8ee4b..8490d973fd9b 100644
--- a/typo3/sysext/backend/Resources/Public/JavaScript/Icons.js
+++ b/typo3/sysext/backend/Resources/Public/JavaScript/Icons.js
@@ -67,7 +67,8 @@ define(['jquery'], function($) {
 	 */
 	Icons.fetch = function(icons) {
 		var promises = [],
-			requestedIcons = {};
+			requestedIcons = {},
+			cachedRequestedIcons = {};
 
 		for (var i = 0; i < icons.length; ++i) {
 			/**
@@ -84,7 +85,7 @@ define(['jquery'], function($) {
 
 			var cacheIdentifier = icon.join('_');
 			if (Icons.isCached(cacheIdentifier)) {
-				promises.push(Icons.getFromCache(cacheIdentifier));
+				$.extend(cachedRequestedIcons, Icons.getFromCache(cacheIdentifier));
 			} else {
 				requestedIcons[icon[0]] = {
 					cacheIdentifier: cacheIdentifier,
@@ -93,6 +94,10 @@ define(['jquery'], function($) {
 			}
 		}
 
+		if (Object.keys(cachedRequestedIcons).length > 0) {
+			promises.push(cachedRequestedIcons);
+		}
+
 		if (Object.keys(requestedIcons).length > 0) {
 			promises.push(
 				$.ajax({
-- 
GitLab