Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/CoreAdminHome/angularjs/trackingcode/imagetrackingcode.controller.js')
-rw-r--r--plugins/CoreAdminHome/angularjs/trackingcode/imagetrackingcode.controller.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/plugins/CoreAdminHome/angularjs/trackingcode/imagetrackingcode.controller.js b/plugins/CoreAdminHome/angularjs/trackingcode/imagetrackingcode.controller.js
new file mode 100644
index 0000000000..18c97bab38
--- /dev/null
+++ b/plugins/CoreAdminHome/angularjs/trackingcode/imagetrackingcode.controller.js
@@ -0,0 +1,129 @@
+/*!
+ * Piwik - free/libre analytics platform
+ *
+ * @link http://piwik.org
+ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
+ */
+
+/**
+ * Controller for image tracking code generator
+ */
+(function () {
+
+ // cache for not refetching data for same site twice
+ var sitePromises = {}, goalPromises = {};
+
+ angular.module('piwikApp').controller('ImageTrackingCodeController', ImageTrackingCodeController);
+
+ ImageTrackingCodeController.$inject = ['piwikApi', '$q'];
+
+ function ImageTrackingCodeController(piwikApi, $q) {
+
+ this.allGoals = {};
+ this.isLoading = false;
+
+ var piwikHost = window.location.host,
+ piwikPath = location.pathname.substring(0, location.pathname.lastIndexOf('/')),
+ self = this;
+
+ var currencyPromise = piwikApi.fetch({method: 'SitesManager.getCurrencySymbols', filter_limit: '-1'});
+
+ function requestSiteData(idSite)
+ {
+ if (!sitePromises[idSite]) {
+ sitePromises[idSite] = piwikApi.fetch({
+ module: 'API',
+ method: 'SitesManager.getSiteFromId',
+ idSite: idSite
+ });
+ }
+
+ return sitePromises[idSite];
+ }
+
+ function requestGoalData(idSite)
+ {
+ if (!goalPromises[idSite]) {
+ goalPromises[idSite] = piwikApi.fetch({
+ module: 'API',
+ method: 'Goals.getGoals',
+ idSite: idSite
+ });
+ }
+
+ return goalPromises[idSite];
+ }
+
+ // function that generates image tracker link
+ var generateImageTrackingAjax = null,
+ generateImageTrackerLink = function (trackingCodeChangedManually) {
+ // get data used to generate the link
+ var postParams = {
+ piwikUrl: piwikHost + piwikPath,
+ actionName: self.pageName
+ };
+
+ if (self.trackGoal && self.trackIdGoal) {
+ postParams.idGoal = self.trackIdGoal;
+ postParams.revenue = self.revenue;
+ }
+
+ if (generateImageTrackingAjax) {
+ generateImageTrackingAjax.abort();
+ }
+
+ generateImageTrackingAjax = piwikApi.post({
+ module: 'API',
+ format: 'json',
+ method: 'SitesManager.getImageTrackingCode',
+ idSite: self.site.id
+ }, postParams).then(function (response) {
+ generateImageTrackingAjax = null;
+
+ self.trackingCode = response.value;
+
+ if (trackingCodeChangedManually) {
+ var jsCodeTextarea = $('#image-tracking-text .codeblock');
+ jsCodeTextarea.effect("highlight", {}, 1500);
+ }
+ });
+ };
+
+ this.updateTrackingCode = function () {
+ generateImageTrackerLink(true);
+ };
+
+ this.changeSite = function (changedManually) {
+
+ self.isLoading = true;
+
+ var sitePromise = requestSiteData(this.site.id);
+ var goalPromise = requestGoalData(this.site.id);
+
+ return $q.all([currencyPromise, sitePromise, goalPromise]).then(function (data) {
+
+ self.isLoading = false;
+
+ var currencySymbols = data[0] || {};
+ var currency = data[1].currency || '';
+ var goals = data[2] || [];
+
+ var goalsList = [{key: '', value: _pk_translate('UserCountryMap_None')}];
+ for (var key in goals) {
+ goalsList.push({key: goals[key].idgoal, value: goals[key].name});
+ }
+
+ self.allGoals = goalsList;
+
+ $('[name=image-revenue] .site-currency').text(currencySymbols[currency.toUpperCase()]);
+ generateImageTrackerLink(changedManually);
+
+ });
+ };
+
+ if (this.site && this.site.id) {
+ this.changeSite(false);
+ }
+
+ }
+})(); \ No newline at end of file