mirror of https://github.com/portainer/portainer
				
				
				
			feat(project): add google analytics in app (#599)
							parent
							
								
									85a07237b1
								
							
						
					
					
						commit
						66c574f74d
					
				
							
								
								
									
										12
									
								
								app/app.js
								
								
								
								
							
							
						
						
									
										12
									
								
								app/app.js
								
								
								
								
							| 
						 | 
				
			
			@ -12,6 +12,7 @@ angular.module('portainer', [
 | 
			
		|||
  'angularUtils.directives.dirPagination',
 | 
			
		||||
  'LocalStorageModule',
 | 
			
		||||
  'angular-jwt',
 | 
			
		||||
  'angular-google-analytics',
 | 
			
		||||
  'portainer.templates',
 | 
			
		||||
  'portainer.filters',
 | 
			
		||||
  'portainer.rest',
 | 
			
		||||
| 
						 | 
				
			
			@ -47,7 +48,7 @@ angular.module('portainer', [
 | 
			
		|||
  'task',
 | 
			
		||||
  'templates',
 | 
			
		||||
  'volumes'])
 | 
			
		||||
  .config(['$stateProvider', '$urlRouterProvider', '$httpProvider', 'localStorageServiceProvider', 'jwtOptionsProvider', function ($stateProvider, $urlRouterProvider, $httpProvider, localStorageServiceProvider, jwtOptionsProvider) {
 | 
			
		||||
  .config(['$stateProvider', '$urlRouterProvider', '$httpProvider', 'localStorageServiceProvider', 'jwtOptionsProvider', 'AnalyticsProvider', function ($stateProvider, $urlRouterProvider, $httpProvider, localStorageServiceProvider, jwtOptionsProvider, AnalyticsProvider) {
 | 
			
		||||
    'use strict';
 | 
			
		||||
 | 
			
		||||
    localStorageServiceProvider
 | 
			
		||||
| 
						 | 
				
			
			@ -64,6 +65,8 @@ angular.module('portainer', [
 | 
			
		|||
    });
 | 
			
		||||
    $httpProvider.interceptors.push('jwtInterceptor');
 | 
			
		||||
 | 
			
		||||
    AnalyticsProvider.setAccount('@@CONFIG_GA_ID');
 | 
			
		||||
 | 
			
		||||
    $urlRouterProvider.otherwise('/auth');
 | 
			
		||||
 | 
			
		||||
    $stateProvider
 | 
			
		||||
| 
						 | 
				
			
			@ -484,7 +487,7 @@ angular.module('portainer', [
 | 
			
		|||
      };
 | 
			
		||||
    });
 | 
			
		||||
  }])
 | 
			
		||||
  .run(['$rootScope', '$state', 'Authentication', 'authManager', 'StateManager', 'Messages', function ($rootScope, $state, Authentication, authManager, StateManager, Messages) {
 | 
			
		||||
  .run(['$rootScope', '$state', 'Authentication', 'authManager', 'StateManager', 'Messages', 'Analytics', function ($rootScope, $state, Authentication, authManager, StateManager, Messages, Analytics) {
 | 
			
		||||
    StateManager.initialize().then(function success(state) {
 | 
			
		||||
      if (state.application.authentication) {
 | 
			
		||||
        authManager.checkAuthOnRefresh();
 | 
			
		||||
| 
						 | 
				
			
			@ -498,6 +501,11 @@ angular.module('portainer', [
 | 
			
		|||
      Messages.error("Failure", err, 'Unable to retrieve application settings');
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromState, fromParams) {
 | 
			
		||||
      Analytics.trackPage(toState.url);
 | 
			
		||||
      Analytics.pageView();
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    $rootScope.$state = $state;
 | 
			
		||||
  }])
 | 
			
		||||
  // This is your docker url that the api will use to make requests
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,8 @@
 | 
			
		|||
    "api",
 | 
			
		||||
    "portainer",
 | 
			
		||||
    "uifordocker",
 | 
			
		||||
    "dockerui"
 | 
			
		||||
    "dockerui",
 | 
			
		||||
    "swarm"
 | 
			
		||||
  ],
 | 
			
		||||
  "license": "MIT",
 | 
			
		||||
  "ignore": [
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +36,7 @@
 | 
			
		|||
    "angular-utils-pagination": "~0.11.1",
 | 
			
		||||
    "angular-local-storage": "~0.5.2",
 | 
			
		||||
    "angular-jwt": "~0.1.8",
 | 
			
		||||
    "angular-google-analytics": "~1.1.9",
 | 
			
		||||
    "bootstrap": "~3.3.6",
 | 
			
		||||
    "filesize": "~3.3.0",
 | 
			
		||||
    "jquery": "1.11.1",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										37
									
								
								gruntfile.js
								
								
								
								
							
							
						
						
									
										37
									
								
								gruntfile.js
								
								
								
								
							| 
						 | 
				
			
			@ -13,6 +13,7 @@ module.exports = function (grunt) {
 | 
			
		|||
  grunt.loadNpmTasks('grunt-filerev');
 | 
			
		||||
  grunt.loadNpmTasks('grunt-contrib-cssmin');
 | 
			
		||||
  grunt.loadNpmTasks('grunt-usemin');
 | 
			
		||||
  grunt.loadNpmTasks('grunt-replace');
 | 
			
		||||
 | 
			
		||||
  // Default task.
 | 
			
		||||
  grunt.registerTask('default', ['jshint', 'build']);
 | 
			
		||||
| 
						 | 
				
			
			@ -42,7 +43,8 @@ module.exports = function (grunt) {
 | 
			
		|||
    'copy:assets',
 | 
			
		||||
    'filerev',
 | 
			
		||||
    'usemin',
 | 
			
		||||
    'clean:tmp'
 | 
			
		||||
    'clean:tmp',
 | 
			
		||||
    'replace'
 | 
			
		||||
  ]);
 | 
			
		||||
  grunt.registerTask('release-win', [
 | 
			
		||||
    'clean:all',
 | 
			
		||||
| 
						 | 
				
			
			@ -57,7 +59,8 @@ module.exports = function (grunt) {
 | 
			
		|||
    'copy',
 | 
			
		||||
    'filerev',
 | 
			
		||||
    'usemin',
 | 
			
		||||
    'clean:tmp'
 | 
			
		||||
    'clean:tmp',
 | 
			
		||||
    'replace'
 | 
			
		||||
  ]);
 | 
			
		||||
  grunt.registerTask('release-arm', [
 | 
			
		||||
    'clean:all',
 | 
			
		||||
| 
						 | 
				
			
			@ -72,7 +75,8 @@ module.exports = function (grunt) {
 | 
			
		|||
    'copy',
 | 
			
		||||
    'filerev',
 | 
			
		||||
    'usemin',
 | 
			
		||||
    'clean:tmp'
 | 
			
		||||
    'clean:tmp',
 | 
			
		||||
    'replace'
 | 
			
		||||
  ]);
 | 
			
		||||
  grunt.registerTask('release-arm64', [
 | 
			
		||||
    'clean:all',
 | 
			
		||||
| 
						 | 
				
			
			@ -87,7 +91,8 @@ module.exports = function (grunt) {
 | 
			
		|||
    'copy',
 | 
			
		||||
    'filerev',
 | 
			
		||||
    'usemin',
 | 
			
		||||
    'clean:tmp'
 | 
			
		||||
    'clean:tmp',
 | 
			
		||||
    'replace'
 | 
			
		||||
  ]);
 | 
			
		||||
  grunt.registerTask('release-macos', [
 | 
			
		||||
    'clean:all',
 | 
			
		||||
| 
						 | 
				
			
			@ -102,7 +107,8 @@ module.exports = function (grunt) {
 | 
			
		|||
    'copy',
 | 
			
		||||
    'filerev',
 | 
			
		||||
    'usemin',
 | 
			
		||||
    'clean:tmp'
 | 
			
		||||
    'clean:tmp',
 | 
			
		||||
    'replace'
 | 
			
		||||
  ]);
 | 
			
		||||
  grunt.registerTask('lint', ['jshint']);
 | 
			
		||||
  grunt.registerTask('run', ['if:unixBinaryNotExist', 'build', 'shell:buildImage', 'shell:run']);
 | 
			
		||||
| 
						 | 
				
			
			@ -260,6 +266,7 @@ module.exports = function (grunt) {
 | 
			
		|||
        'bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
 | 
			
		||||
        'bower_components/ng-file-upload/ng-file-upload.min.js',
 | 
			
		||||
        'bower_components/angular-utils-pagination/dirPagination.js',
 | 
			
		||||
        'bower_components/angular-google-analytics/dist/angular-google-analytics.min.js',
 | 
			
		||||
        'bower_components/angular-ui-select/dist/select.min.js'],
 | 
			
		||||
        dest: '<%= distdir %>/js/angular.js'
 | 
			
		||||
      }
 | 
			
		||||
| 
						 | 
				
			
			@ -459,6 +466,26 @@ module.exports = function (grunt) {
 | 
			
		|||
        },
 | 
			
		||||
        ifFalse: ['shell:buildWindowsBinary']
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    replace: {
 | 
			
		||||
      dist: {
 | 
			
		||||
        options: {
 | 
			
		||||
          patterns: [
 | 
			
		||||
            {
 | 
			
		||||
              match: 'CONFIG_GA_ID',
 | 
			
		||||
              replacement: '<%= pkg.config.GA_ID %>'
 | 
			
		||||
            }
 | 
			
		||||
          ]
 | 
			
		||||
        },
 | 
			
		||||
        files: [
 | 
			
		||||
          {
 | 
			
		||||
            expand: true,
 | 
			
		||||
            flatten: true,
 | 
			
		||||
            src: ['dist/js/**.js'],
 | 
			
		||||
            dest: 'dist/js/'
 | 
			
		||||
          }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,9 +10,12 @@
 | 
			
		|||
  "bugs": {
 | 
			
		||||
    "url": "https://github.com/portainer/portainer/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "config": {
 | 
			
		||||
    "GA_ID": "UA-84944922-2"
 | 
			
		||||
  },
 | 
			
		||||
  "licenses": [
 | 
			
		||||
    {
 | 
			
		||||
      "type": "MIT",
 | 
			
		||||
      "type": "Zlib",
 | 
			
		||||
      "url": "https://raw.githubusercontent.com/portainer/portainer/develop/LICENSE"
 | 
			
		||||
    }
 | 
			
		||||
  ],
 | 
			
		||||
| 
						 | 
				
			
			@ -35,6 +38,7 @@
 | 
			
		|||
    "grunt-if": "^0.1.5",
 | 
			
		||||
    "grunt-karma": "~0.4.4",
 | 
			
		||||
    "grunt-recess": "~0.3",
 | 
			
		||||
    "grunt-replace": "^1.0.1",
 | 
			
		||||
    "grunt-shell": "^1.1.2",
 | 
			
		||||
    "grunt-usemin": "^3.1.1"
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue