PDF rausgenommen
This commit is contained in:
44
msd2/tracking/piwik/plugins/Goals/angularjs/common/directives/goal-page-link.js
vendored
Normal file
44
msd2/tracking/piwik/plugins/Goals/angularjs/common/directives/goal-page-link.js
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
/*!
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*/
|
||||
|
||||
/**
|
||||
*
|
||||
* Usage:
|
||||
* <div piwik-goal-page-link="idGoal">
|
||||
*/
|
||||
(function () {
|
||||
angular.module('piwikApp.directive').directive('piwikGoalPageLink', piwikGoalPageLink);
|
||||
|
||||
piwikGoalPageLink.$inject = ['$location', 'piwik'];
|
||||
|
||||
function piwikGoalPageLink($location, piwik){
|
||||
|
||||
return {
|
||||
restrict: 'A',
|
||||
compile: function (element, attrs) {
|
||||
|
||||
if (attrs.piwikGoalPageLink && piwik.helper.isAngularRenderingThePage()) {
|
||||
var title = element.text();
|
||||
element.html('<a></a>');
|
||||
var link = element.find('a');
|
||||
link.text(title);
|
||||
link.attr('href', 'javascript:void(0)');
|
||||
link.bind('click', function () {
|
||||
var $search = $location.search();
|
||||
$search.category = 'Goals_Goals';
|
||||
$search.subcategory = encodeURIComponent(attrs.piwikGoalPageLink);
|
||||
$location.search($search);
|
||||
});
|
||||
}
|
||||
|
||||
return function (scope, element, attrs) {
|
||||
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
})();
|
@ -0,0 +1,199 @@
|
||||
/*!
|
||||
* 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('ManageGoalsController', ManageGoalsController);
|
||||
|
||||
ManageGoalsController.$inject = ['piwik', 'piwikApi', '$timeout', '$location', 'reportingMenuModel', '$rootScope'];
|
||||
|
||||
function ManageGoalsController(piwik, piwikApi, $timeout, $location, reportingMenuModel, $rootScope) {
|
||||
// remember to keep controller very simple. Create a service/factory (model) if needed
|
||||
|
||||
var self = this;
|
||||
|
||||
if (!this.goal) {
|
||||
this.goal = {};
|
||||
}
|
||||
this.showEditGoal = false;
|
||||
this.showGoalList = true;
|
||||
|
||||
function scrollToTop()
|
||||
{
|
||||
$timeout(function () {
|
||||
piwik.helper.lazyScrollTo(".pageWrap", 200);
|
||||
});
|
||||
}
|
||||
|
||||
function initGoalForm(goalMethodAPI, submitText, goalName, description, matchAttribute, pattern, patternType, caseSensitive, revenue, allowMultiple, useEventValueAsRevenue, goalId) {
|
||||
|
||||
$rootScope.$emit('Goals.beforeInitGoalForm', goalMethodAPI, goalId);
|
||||
|
||||
self.goal = {};
|
||||
self.goal.name = goalName;
|
||||
self.goal.description = description;
|
||||
|
||||
if (matchAttribute == 'manually') {
|
||||
self.goal.triggerType = 'manually';
|
||||
matchAttribute = 'url';
|
||||
} else {
|
||||
self.goal.triggerType = 'visitors';
|
||||
}
|
||||
|
||||
if (0 === matchAttribute.indexOf('event')) {
|
||||
self.goal.eventType = matchAttribute;
|
||||
matchAttribute = 'event';
|
||||
} else {
|
||||
self.goal.eventType = 'event_category';
|
||||
}
|
||||
|
||||
self.goal.matchAttribute = matchAttribute;
|
||||
self.goal.allowMultiple = allowMultiple;
|
||||
self.goal.patternType = patternType;
|
||||
self.goal.pattern = pattern;
|
||||
self.goal.caseSensitive = caseSensitive;
|
||||
self.goal.revenue = revenue;
|
||||
self.goal.apiMethod = goalMethodAPI;
|
||||
self.goal.useEventValueAsRevenue = useEventValueAsRevenue;
|
||||
|
||||
self.goal.submitText = submitText;
|
||||
self.goal.goalId = goalId;
|
||||
|
||||
$timeout(function () {
|
||||
var text = _pk_translate('Goals_AddNewGoal');
|
||||
if (goalId) {
|
||||
text = _pk_translate('Goals_UpdateGoal')
|
||||
}
|
||||
|
||||
$('.addEditGoal .card-title').text(text);
|
||||
});
|
||||
}
|
||||
|
||||
this.isManuallyTriggered = function () {
|
||||
return this.goal.triggerType == 'manually';
|
||||
}
|
||||
|
||||
this.save = function () {
|
||||
|
||||
var parameters = {};
|
||||
parameters.name = encodeURIComponent(this.goal.name);
|
||||
parameters.description = encodeURIComponent(this.goal.description);
|
||||
|
||||
if (this.isManuallyTriggered()) {
|
||||
parameters.matchAttribute = 'manually';
|
||||
parameters.patternType = 'regex';
|
||||
parameters.pattern = '.*';
|
||||
parameters.caseSensitive = 0;
|
||||
} else {
|
||||
parameters.matchAttribute = this.goal.matchAttribute;
|
||||
|
||||
if (parameters.matchAttribute === 'event') {
|
||||
parameters.matchAttribute = this.goal.eventType;
|
||||
}
|
||||
|
||||
parameters.patternType = this.goal.patternType;
|
||||
parameters.pattern = encodeURIComponent(this.goal.pattern);
|
||||
parameters.caseSensitive = this.goal.caseSensitive == true ? 1 : 0;
|
||||
}
|
||||
parameters.revenue = this.goal.revenue || 0;
|
||||
parameters.allowMultipleConversionsPerVisit = this.goal.allowMultiple == true ? 1 : 0;
|
||||
parameters.useEventValueAsRevenue = this.goal.useEventValueAsRevenue == true ? 1 : 0;
|
||||
|
||||
parameters.idGoal = this.goal.goalId;
|
||||
parameters.method = this.goal.apiMethod;
|
||||
|
||||
var isCreate = parameters.method === 'Goals.addGoal';
|
||||
var isUpdate = parameters.method === 'Goals.updateGoal';
|
||||
|
||||
if (isUpdate) {
|
||||
$rootScope.$emit('Goals.beforeUpdateGoal', parameters, piwikApi);
|
||||
} else if (isCreate) {
|
||||
$rootScope.$emit('Goals.beforeAddGoal', parameters, piwikApi);
|
||||
}
|
||||
|
||||
if (parameters && 'undefined' !== typeof parameters.cancelRequest && parameters.cancelRequest) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.isLoading = true;
|
||||
|
||||
piwikApi.fetch(parameters).then(function () {
|
||||
var search = $location.search();
|
||||
if (search
|
||||
&& search.subcategory
|
||||
&& search.subcategory == 'Goals_AddNewGoal'
|
||||
&& piwik.helper.isAngularRenderingThePage()) {
|
||||
// when adding a goal for the first time we need to load manage goals page afterwards
|
||||
reportingMenuModel.reloadMenuItems().then(function () {
|
||||
$location.search('subcategory', 'Goals_ManageGoals');
|
||||
self.isLoading = false;
|
||||
});
|
||||
} else {
|
||||
location.reload();
|
||||
}
|
||||
}, function () {
|
||||
scrollToTop();
|
||||
self.isLoading = false;
|
||||
});
|
||||
};
|
||||
|
||||
this.changedTriggerType = function () {
|
||||
if (!this.isManuallyTriggered() && !this.goal.patternType) {
|
||||
this.goal.patternType = 'contains';
|
||||
}
|
||||
}
|
||||
|
||||
this.showListOfReports = function (shouldScrollToTop) {
|
||||
$rootScope.$emit('Goals.cancelForm');
|
||||
|
||||
this.showGoalList = true;
|
||||
this.showEditGoal = false;
|
||||
scrollToTop();
|
||||
};
|
||||
|
||||
this.showAddEditForm = function () {
|
||||
this.showGoalList = false;
|
||||
this.showEditGoal = true;
|
||||
};
|
||||
|
||||
this.createGoal = function () {
|
||||
|
||||
var parameters = {isAllowed: true};
|
||||
$rootScope.$emit('Goals.initAddGoal', parameters);
|
||||
if (parameters && !parameters.isAllowed) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.showAddEditForm();
|
||||
initGoalForm('Goals.addGoal', _pk_translate('Goals_AddGoal'), '', '', 'url', '', 'contains', /*caseSensitive = */false, '', /*allowMultiple = */ false, /*useEventValueAsRevenue = */ false, '0');
|
||||
scrollToTop();
|
||||
};
|
||||
|
||||
this.editGoal = function (goalId) {
|
||||
this.showAddEditForm();
|
||||
var goal = piwik.goals[goalId];
|
||||
initGoalForm("Goals.updateGoal", _pk_translate('Goals_UpdateGoal'), goal.name, goal.description, goal.match_attribute, goal.pattern, goal.pattern_type, (goal.case_sensitive != '0'), goal.revenue, goal.allow_multiple, (goal.event_value_as_revenue != '0'), goalId);
|
||||
scrollToTop();
|
||||
};
|
||||
|
||||
this.deleteGoal = function (goalId) {
|
||||
var goal = piwik.goals[goalId];
|
||||
|
||||
$('#confirm').find('h2').text(sprintf(_pk_translate('Goals_DeleteGoalConfirm'), '"' + goal.name + '"'));
|
||||
piwikHelper.modalConfirm('#confirm', {yes: function () {
|
||||
self.isLoading = true;
|
||||
|
||||
piwikApi.fetch({idGoal: goalId, method: 'Goals.deleteGoal'}).then(function () {
|
||||
location.reload();
|
||||
}, function () {
|
||||
self.isLoading = false;
|
||||
});
|
||||
|
||||
}});
|
||||
};
|
||||
|
||||
this.showListOfReports(false);
|
||||
}
|
||||
})();
|
@ -0,0 +1,38 @@
|
||||
/*!
|
||||
* Piwik - free/libre analytics platform
|
||||
*
|
||||
* @link http://piwik.org
|
||||
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Usage:
|
||||
* <div piwik-manage-goals>
|
||||
*/
|
||||
(function () {
|
||||
angular.module('piwikApp').directive('piwikManageGoals', piwikManageGoals);
|
||||
|
||||
piwikManageGoals.$inject = ['piwik'];
|
||||
|
||||
function piwikManageGoals(piwik){
|
||||
|
||||
return {
|
||||
restrict: 'A',
|
||||
priority: 10,
|
||||
controller: 'ManageGoalsController',
|
||||
controllerAs: 'manageGoals',
|
||||
compile: function (element, attrs) {
|
||||
|
||||
return function (scope, element, attrs, controller) {
|
||||
if (attrs.showAddGoal) {
|
||||
controller.createGoal();
|
||||
} else if (attrs.showGoal) {
|
||||
controller.editGoal(attrs.showGoal);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
})();
|
Reference in New Issue
Block a user