146 lines
5.2 KiB
JavaScript
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);
|
|
});
|
|
|
|
}
|
|
})();
|