dashboard: first use profile background if not exist try branding background

This commit is contained in:
Johannes Zellner
2024-04-05 17:11:37 +02:00
parent 544b8180b2
commit 8db6da2de9
4 changed files with 39 additions and 23 deletions

View File

@@ -828,7 +828,6 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
Client.prototype.hasCloudronBackground = function (callback) {
get('/api/v1/branding/cloudron_background', null, function (error, data, status) {
console.log('hasCloudronBackground...')
if (error && error.statusCode !== 404) callback(error);
else if (error) callback(null, false);
else callback(null, status === 200);
@@ -2403,10 +2402,6 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
}
};
Client.prototype.getBackgroundImageUrl = function () {
return client.apiOrigin + '/api/v1/profile/background_image?access_token=' + token + '&bustcache=' + Date.now();
};
Client.prototype.setBackgroundImage = function (backgroundImage, callback) {
// Blob type if object
var fd = new FormData();
@@ -2603,6 +2598,30 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
});
};
Client.prototype.refreshBranding = function (callback) {
var that = this;
// currently only deals with background
this.refreshProfile(function () {
that.hasCloudronBackground(function (error, result) {
if (error) return callback(error);
if (that._userInfo && that._userInfo.hasBackgroundImage) {
document.getElementById('mainContentContainer').style.backgroundImage = 'url("' + that.apiOrigin + '/api/v1/profile/background_image?access_token=' + token + '&bustcache=' + Date.now() + '")';
document.getElementById('mainContentContainer').classList.add('has-background');
} else if (result) {
document.getElementById('mainContentContainer').style.backgroundImage = 'url("' + that.apiOrigin + '/api/v1/cloudron/background?bustcache=' + Date.now() + '")';
document.getElementById('mainContentContainer').classList.add('has-background');
} else {
document.getElementById('mainContentContainer').style.backgroundImage = 'none';
document.getElementById('mainContentContainer').classList.remove('has-background');
}
callback(null);
});
});
};
Client.prototype._appPostProcess = function (app) {
// calculate the icon paths
app.iconUrl = app.iconUrl ? (this.apiOrigin + app.iconUrl + '?access_token=' + token + '&ts=' + app.ts) : null;

View File

@@ -790,6 +790,7 @@ app.controller('MainController', ['$scope', '$route', '$timeout', '$location', '
Client.refreshProfile.bind(Client),
Client.refreshConfig.bind(Client),
Client.refreshAvailableLanguages.bind(Client),
Client.refreshBranding.bind(Client),
Client.refreshInstalledApps.bind(Client)
], function (error) {
if (error) return Client.initError(error, init);
@@ -799,11 +800,6 @@ app.controller('MainController', ['$scope', '$route', '$timeout', '$location', '
$scope.config = Client.getConfig();
if (Client.getUserInfo().hasBackgroundImage) {
document.getElementById('mainContentContainer').style.backgroundImage = 'url("' + Client.getBackgroundImageUrl() + '")';
document.getElementById('mainContentContainer').classList.add('has-background');
}
$scope.initialized = true;
redirectOnMandatory2FA();

View File

@@ -268,7 +268,9 @@ angular.module('Application').controller('BrandingController', ['$scope', '$loca
$scope.about.avatar = null;
$scope.about.refresh();
$scope.about.busy = false;
Client.refreshBranding(function () {
$scope.about.busy = false;
});
});
});
});

View File

@@ -247,13 +247,13 @@ angular.module('Application').controller('ProfileController', ['$scope', '$trans
Client.setBackgroundImage(imageFile, function (error) {
if (error) return console.error('Unable to change backgroundImage.', error);
document.getElementById('mainContentContainer').style.backgroundImage = 'url("' + Client.getBackgroundImageUrl() + '")';
document.getElementById('mainContentContainer').classList.add('has-background');
Client.refreshBranding(function () {
$scope.user.hasBackgroundImage = true;
$scope.user.hasBackgroundImage = true;
$('#backgroundImageChangeModal').modal('hide');
$('#backgroundImageChangeModal').modal('hide');
$scope.backgroundImageChange.reset();
$scope.backgroundImageChange.reset();
});
});
},
@@ -261,13 +261,12 @@ angular.module('Application').controller('ProfileController', ['$scope', '$trans
Client.setBackgroundImage(null, function (error) {
if (error) return console.error('Unable to change backgroundImage.', error);
document.getElementById('mainContentContainer').style.backgroundImage = '';
document.getElementById('mainContentContainer').classList.remove('has-background');
Client.refreshBranding(function () {
$scope.user.hasBackgroundImage = false;
$scope.user.hasBackgroundImage = false;
$('#backgroundImageChangeModal').modal('hide');
$scope.backgroundImageChange.reset();
$('#backgroundImageChangeModal').modal('hide');
$scope.backgroundImageChange.reset();
});
});
},
@@ -279,7 +278,7 @@ angular.module('Application').controller('ProfileController', ['$scope', '$trans
reset: function () {
$scope.backgroundImageChange.error.avatar = null;
if ($scope.user.hasBackgroundImage) document.getElementById('previewBackgroundImage').src = Client.getBackgroundImageUrl();
if ($scope.user.hasBackgroundImage) document.getElementById('previewBackgroundImage').src = Client.apiOrigin + '/api/v1/profile/background_image?access_token=' + Client.getToken() + '&bustcache=' + Date.now();
else document.getElementById('previewBackgroundImage').src = '/img/background-image-placeholder.svg';
$scope.backgroundImageChange.pictureChanged = false;