diff --git a/src/views/apps.html b/src/views/apps.html index 8858b9961..438dd666d 100644 --- a/src/views/apps.html +++ b/src/views/apps.html @@ -157,7 +157,7 @@ Reset Icon -
+
diff --git a/src/views/apps.js b/src/views/apps.js index 1f014abca..d7306f370 100644 --- a/src/views/apps.js +++ b/src/views/apps.js @@ -49,10 +49,20 @@ angular.module('Application').controller('AppsController', ['$scope', '$location ftp: false, tags: '', label: '', - icon: { file: null, data: null, url: null }, + icon: { data: null }, action: 'location', + iconUrl: function () { + if ($scope.appConfigure.icon.data === '__original__') { // user clicked reset + return $scope.appConfigure.app.iconUrl + '&original=true'; + } else if ($scope.appConfigure.icon.data) { // user uploaded icon + return $scope.appConfigure.icon.data; + } else { // current icon + return $scope.appConfigure.app.iconUrl; + } + }, + isAccessRestrictionValid: function () { var tmp = $scope.appConfigure.accessRestriction; return !!(tmp.users.length || tmp.groups.length); @@ -131,17 +141,14 @@ angular.module('Application').controller('AppsController', ['$scope', '$location // translate for tag-input $scope.appConfigure.tags = app.tags ? app.tags.join(',') : ''; + $scope.appConfigure.icon = { data: null }; + $('#iconFileInput').get(0).onchange = function (event) { var fr = new FileReader(); fr.onload = function () { $scope.$apply(function () { - var tmp = { - file: event.target.files[0], - data: fr.result, - url: null - }; - - $scope.appConfigure.icon = tmp; + // var file = event.target.files[0]; + $scope.appConfigure.icon.data = fr.result; }); }; fr.readAsDataURL(event.target.files[0]); @@ -204,12 +211,10 @@ angular.module('Application').controller('AppsController', ['$scope', '$location data.mailboxName = ''; } - if ($scope.appConfigure.icon) { - if ($scope.appConfigure.icon.data) { - data.icon = $scope.appConfigure.icon.data.replace(/^data:image\/[a-z]+;base64,/, ''); - } else { // reset the icon - data.icon = ''; - } + if ($scope.appConfigure.icon.data === '__original__') { // user reset the icon + data.icon = ''; + } else if ($scope.appConfigure.icon.data) { // user loaded custom icon + data.icon = $scope.appConfigure.icon.data.replace(/^data:image\/[a-z]+;base64,/, ''); } Client.configureApp($scope.appConfigure.app.id, data, function (error) { @@ -262,8 +267,7 @@ angular.module('Application').controller('AppsController', ['$scope', '$location }, resetCustomIcon: function () { - $scope.appConfigure.icon.data = ''; - $scope.appConfigure.icon.url = $scope.appConfigure.app.iconUrl + '&original=true'; + $scope.appConfigure.icon.data = '__original__'; }, showCustomIconSelector: function () {