mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-10 04:54:14 +01:00
57 lines
1.9 KiB
JavaScript
57 lines
1.9 KiB
JavaScript
'use strict';
|
|
|
|
/**
|
|
* Controller used for the cookies consent modal
|
|
*/
|
|
Application.Controllers.controller('CookiesController', ['$scope', '$cookies', 'Setting',
|
|
function ($scope, $cookies, Setting) {
|
|
/* PUBLIC SCOPE */
|
|
|
|
// the acceptation state (undefined if no decision was made until now)
|
|
$scope.cookiesState = undefined;
|
|
|
|
// link pointed by "learn more"
|
|
$scope.learnMoreUrl = 'https://www.cookiesandyou.com/';
|
|
|
|
// add a cookie to the browser, saving the user choice to refuse cookies
|
|
$scope.declineCookies = function () {
|
|
const expires = moment().add(13, 'months').toDate();
|
|
$cookies.put('fab-manager-cookies-consent', 'decline', { expires });
|
|
readCookie();
|
|
};
|
|
|
|
// add a cookie to the browser, saving the user choice to accept cookies.
|
|
// Then enable the analytics
|
|
$scope.acceptCookies = function () {
|
|
const expires = moment().add(13, 'months').toDate();
|
|
$cookies.put('fab-manager-cookies-consent', 'accept', { expires });
|
|
readCookie();
|
|
GTM.enableAnalytics(Fablab.trackingId);
|
|
};
|
|
|
|
/* PRIVATE SCOPE */
|
|
|
|
/**
|
|
* Kind of constructor: these actions will be realized first when the controller is loaded
|
|
*/
|
|
const initialize = function () {
|
|
readCookie();
|
|
// if the privacy policy was defined, redirect the user to it when clicking on "read more"
|
|
Setting.get({ name: 'privacy_body' }, data => {
|
|
if (data.setting.value) {
|
|
$scope.learnMoreUrl = '#!/privacy-policy';
|
|
}
|
|
});
|
|
// if the tracking ID was not set in the settings, only functional cookies will be set, so user consent is not required
|
|
if (!Fablab.trackingId) $scope.cookiesState = 'ignore';
|
|
};
|
|
|
|
const readCookie = function () {
|
|
$scope.cookiesState = $cookies.get('fab-manager-cookies-consent');
|
|
};
|
|
|
|
// !!! MUST BE CALLED AT THE END of the controller
|
|
return initialize();
|
|
}
|
|
]);
|