2023-01-23 11:03:31 +01:00

146 lines
5.2 KiB
JavaScript

/*!
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
(function () {
angular.module('piwikApp').controller('AnonymizeLogDataController', AnonymizeLogDataController);
AnonymizeLogDataController.$inject = ["$scope", "piwikApi", "piwik", "$timeout"];
function AnonymizeLogDataController($scope, piwikApi, piwik, $timeout) {
function sub(value)
{
if (value < 10) {
return '0' + value;
}
return value;
}
var self = this;
var now = new Date();
this.isLoading = false;
this.isDeleting = false;
this.anonymizeIp = false;
this.anonymizeLocation = false;
this.anonymizeUserId = false;
this.site = {id: 'all', name: 'All Websites'};
this.availableVisitColumns = [];
this.availableActionColumns = [];
this.selectedVisitColumns = [{column: ''}];
this.selectedActionColumns = [{column: ''}];
this.start_date = now.getFullYear() + '-' + sub(now.getMonth() + 1) + '-' + sub(now.getDay() + 1);
this.end_date = this.start_date;
piwikApi.fetch({method: 'PrivacyManager.getAvailableVisitColumnsToAnonymize'}).then(function (columns) {
self.availableVisitColumns = [];
angular.forEach(columns, function (column) {
self.availableVisitColumns.push({key: column.column_name, value: column.column_name});
});
});
piwikApi.fetch({method: 'PrivacyManager.getAvailableLinkVisitActionColumnsToAnonymize'}).then(function (columns) {
self.availableActionColumns = [];
angular.forEach(columns, function (column) {
self.availableActionColumns.push({key: column.column_name, value: column.column_name});
});
});
this.onVisitColumnChange = function () {
var hasAll = true;
angular.forEach(this.selectedVisitColumns, function (visitColumn) {
if (!visitColumn || !visitColumn.column) {
hasAll = false;
}
});
if (hasAll) {
this.addVisitColumn();
}
};
this.addVisitColumn = function () {
this.selectedVisitColumns.push({column: ''});
};
this.removeVisitColumn = function (index) {
if (index > -1) {
var lastIndex = this.selectedVisitColumns.length - 1;
if (lastIndex === index) {
this.selectedVisitColumns[index] = {column: ''};
} else {
this.selectedVisitColumns.splice(index, 1);
}
}
};
this.onActionColumnChange = function () {
var hasAll = true;
angular.forEach(this.selectedActionColumns, function (actionColumn) {
if (!actionColumn || !actionColumn.column) {
hasAll = false;
}
});
if (hasAll) {
this.addActionColumn();
}
};
this.addActionColumn = function () {
this.selectedActionColumns.push({column: ''});
};
this.removeActionColumn = function (index) {
if (index > -1) {
var lastIndex = this.selectedActionColumns.length - 1;
if (lastIndex === index) {
this.selectedActionColumns[index] = {column: ''};
} else {
this.selectedActionColumns.splice(index, 1);
}
}
};
this.scheduleAnonymization = function () {
var date = this.start_date + ',' + this.end_date;
if (this.start_date === this.end_date) {
date = this.start_date;
}
var params = {date: date};
params.idSites = this.site.id;
params.anonymizeIp = this.anonymizeIp ? '1' : '0';
params.anonymizeLocation = this.anonymizeLocation ? '1' : '0';
params.anonymizeUserId = this.anonymizeUserId ? '1' : '0';
params.unsetVisitColumns = [];
params.unsetLinkVisitActionColumns = [];
angular.forEach(this.selectedVisitColumns, function (column) {
if (column.column) {
params.unsetVisitColumns.push(column.column);
}
});
angular.forEach(this.selectedActionColumns, function (column) {
if (column.column) {
params.unsetLinkVisitActionColumns.push(column.column);
}
});
piwik.helper.modalConfirm('#confirmAnonymizeLogData', {yes: function () {
piwikApi.post({method: 'PrivacyManager.anonymizeSomeRawData'}, params).then(function () {
location.reload(true);
});
}});
};
$timeout(function () {
var options1 = piwik.getBaseDatePickerOptions(null);
var options2 = piwik.getBaseDatePickerOptions(null);
$(".anonymizeStartDate").datepicker(options1);
$(".anonymizeEndDate").datepicker(options2);
});
}
})();