1var app_store = ''; // samsung, windows etc - to disable some app features 2var g_lang = 'ru'; 3var g_server_url = 'https://atletiq.com'; 4//var g_server_url = 'http://atletiq.dev'; 5var debug = false; 6 7 8'use strict'; 9var app = angular.module('atletiqApp', ['pascalprecht.translate', 'infinite-scroll', 'headroom', 'ngTextTruncate', 'compileHtml', 'flexibleWidth', 'afkl.lazyImage', 'ngFileUpload', 'ngImgCrop']) 10 .run(function(model, $rootScope, $window, lang, $translate) { 11 $rootScope.lang_code = lang.getCurrentLanguage(); 12 lang.initLanguage(); 13 14 }) 15 16 .config(function ($translateProvider, $provide, $sceDelegateProvider) { 17 /* 18 $httpProvider.interceptors.push('httpInterceptor'); 19 $httpProvider.defaults.useXDomain = true; 20 delete $httpProvider.defaults.headers.common['X-Requested-With']; 21 $httpProvider.defaults.withCredentials = true; 22 */ 23 24 $sceDelegateProvider.resourceUrlWhitelist(['^(?:http(?:s)?:\/\/)?(?:[^\.]+\.)?\(vimeo|youtube)\.com(/.*)?$', 'self']); 25 26 27 $translateProvider.fallbackLanguage('ru'); 28 $translateProvider.useSanitizeValueStrategy(); 29 30 // catch exceptions in angular 31 var debug = false; 32 33 $provide.decorator('$exceptionHandler', ['$delegate', function($delegate){ 34 return function(exception, cause){ 35 $delegate(exception, cause); 36 37 var data = { 38 type: 'angular', 39 url: window.location.hash, 40 localtime: Date.now() 41 }; 42 if(cause) { data.cause = cause; } 43 if(exception){ 44 if(exception.message) { data.message = exception.message; } 45 if(exception.name) { data.name = exception.name; } 46 if(exception.stack) { data.stack = exception.stack; } 47 } 48 49 if(debug){ 50 console.log('exception', data); 51 window.alert('Error: '+data.message); 52 } else { 53 track('exception', data); 54 } 55 }; 56 }]); 57 58 // catch exceptions out of angular 59 window.onerror = function(message, url, line, col, error){ 60 var stopPropagation = debug ? false : true; 61 var data = { 62 type: 'javascript', 63 url: window.location.hash, 64 localtime: Date.now() 65 }; 66 if(message) { data.message = message; } 67 if(url) { data.fileName = url; } 68 if(line) { data.lineNumber = line; } 69 if(col) { data.columnNumber = col; } 70 if(error){ 71 if(error.name) { data.name = error.name; } 72 if(error.stack) { data.stack = error.stack; } 73 } 74 75 if(debug){ 76 console.log('exception', data); 77 window.alert('Error: '+data.message); 78 } else { 79 track('exception', data); 80 } 81 return stopPropagation; 82 }; 83 84 $translateProvider.useStaticFilesLoader({ 85 prefix: server_url + '/panel/assets/angular_app/lang/', 86 suffix: '.json' 87 }); 88 89 }); 90 91 92var server_url = location.protocol + '//' + location.host; 93var g_lang = 'ru'; 94var user_token = ''; 95var user_id = ''; 96var device_model = ''; 97var device_platform = ''; 98var device_manufacturer = ''; 99var app_version = '0.0.0'; 100var app_version_param = ''; 101var lang_param = ''; 102 103 104function track (exception, data){ 105 //console.log(user_id); 106 $.post('https://atletiq.com/panel/tools/track_error_from_app.php', { "error": data.stack, "user_id": user_id, "device_model": device_model, "device_platform": device_platform, "device_manufacturer": device_manufacturer, 'app_version': app_version}, 107 function(returnedData){ 108 //console.log(returnedData); 109 } 110 ); 111}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.