diff --git a/controller/iconcontroller.php b/controller/iconcontroller.php index 6be9a8a0..8507dc19 100644 --- a/controller/iconcontroller.php +++ b/controller/iconcontroller.php @@ -159,12 +159,19 @@ class IconController extends ApiController { $icon['mimetype'] = mime_content_type($iconPath); $icon['url'] = $this->urlGenerator->linkTo('passman', $path[1]); $icon['pack'] = $pack; + $icon['data'] = base64_encode(file_get_contents($iconPath)); if (!isset($icons[$pack])) { $icons[$pack] = []; } $icons[$pack][] = $icon; } } - return new JSONResponse($icons); + + $offset = 3600 * 24 * 30; + $response = new JSONResponse($icons); + $response->addHeader('Expires: ', gmdate("D, d M Y H:i:s", time() + $offset) . " GMT"); + $response->cacheFor($offset); + + return $response; } } diff --git a/js/app/directives/iconpicker.js b/js/app/directives/iconpicker.js index 210dfacb..e6a78f7d 100644 --- a/js/app/directives/iconpicker.js +++ b/js/app/directives/iconpicker.js @@ -137,12 +137,8 @@ scope.credential.icon.type = data.substring(data.lastIndexOf(":")+1,data.lastIndexOf(";")); scope.credential.icon.content = data.substring(data.lastIndexOf(",")+1, data.length); }else{ - $http.get(scope.selectedIcon.url).then(function(result) { - var base64Data = window.btoa(result.data); - var mimeType = 'svg+xml'; - scope.credential.icon.type = mimeType; - scope.credential.icon.content = base64Data; - }); + scope.credential.icon.type = 'svg+xml'; + scope.credential.icon.content = scope.selectedIcon.data; } $('#iconPicker').dialog('close'); }; diff --git a/js/templates.js b/js/templates.js index 34c2e989..e8a0c518 100644 --- a/js/templates.js +++ b/js/templates.js @@ -107,7 +107,7 @@ angular.module('views/partials/forms/share_credential/link_sharing.html', []).ru angular.module('views/partials/icon-picker.html', []).run(['$templateCache', function($templateCache) { 'use strict'; $templateCache.put('views/partials/icon-picker.html', - '