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 () {