1'use strict'; 2 3angular.module('nefiksApp') 4 .controller('ActivityListCtrl', function ($rootScope, $scope, $http, $location, $filter, ActivityFactory, LinkManager) { 5 var defaultSort = { 6 by: 'activityDate', 7 asc: false 8 } 9 10 $rootScope.titles = { 11 pageTitle: Utf8._('Vaše aktivnosti') 12 }; 13 $rootScope.sideSelected = 'act'; 14 $rootScope.bodyClass = ''; 15 $scope.rs = $rootScope; 16 17 $scope.searchData = LinkManager.getCommonApiParamsFromHash(defaultSort, ['sq', 'sdate', 'edate']); 18 19 $scope.msg = Utf8._('Seznam aktivnosti, ki jih izvajate in mladim vpisujete v e-Nefiks. Ko so vpisane, jih lahko uporabite tudi kot osnovo za obvestilnik, ki ga boste razposlali va{sh}im uporabnikom / {ch}lanom kot vabilo.<br/><br/>Iz vpisanih aktivnosti se generira graf kompetenc, katerih razvoj omogo{ch}ate svojim {ch}lanom / uporabnikom.'); 20 $scope.msg += '<br/><br/>'; 21 $scope.msg += Utf8._('Legenda: '); 22 $scope.msg += '<i class="glyphicon glyphicon-eye-open"></i> ' + Utf8._('Aktivnost se prikazuje na javnem profilu'); 23 24 var enhanceAndSetObjects = function(objs) { 25 $scope.objects = []; 26 if(objs == null) return; 27 28 for(var i=0; i<objs.length; i++) { 29 $scope.objects.push(Nefhance.activity(objs[i])); 30 } 31 }; 32 33 /** 34 * If newPage is null, loading for current search data. 35 */ 36 $scope.onPaginationClick = function(newPage) { 37 ActivityFactory.getActivities(newPage==null?$scope.searchData:$scope.searchData.clone({page: newPage})) 38 .success(function(data) { 39 if(!data || data.status!=200) { 40 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')), data); 41 } else { 42 enhanceAndSetObjects(data.res); 43 $scope.numberOfPages = data.pgnum || 0; 44 if(newPage != null) { //Set new page 45 $scope.searchData.page = newPage; 46 LinkManager.setHashFromCommonApiParams($scope.searchData, {page:true}); 47 } 48 } 49 }).error(function() { 50 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.'))); 51 }); 52 }; 53 $scope.onPaginationClick(null); //initial load 54 55 $scope.onSearchClick = function() { 56 $scope.onPaginationClick(1); 57 }; 58 59 $scope.onSortClick = function(by, asc) { 60 ActivityFactory.getActivities($scope.searchData.clone({sort: {by: by, asc: asc}})) 61 .success(function(data) { 62 if(!data || data.status!=200) { 63 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.')), data); 64 } else { 65 enhanceAndSetObjects(data.res); 66 //Set new sort data 67 $scope.searchData.sort = { 68 by: by, 69 asc: asc 70 }; 71 LinkManager.setHashFromCommonApiParams($scope.searchData, {sort:true}); 72 } 73 }).error(function() { 74 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri pridobivanju podatkov.'))); 75 }); 76 }; 77 78 $scope.removeObjClick = function(event, index) { 79 if(!!event.ctrlKey) { //Direct remove 80 $scope.removeObj({index: index}); 81 } else { 82 $scope.removeObjWarn = true; 83 $scope.removeData = { 84 warnMsg: Utf8.replaceChars('Ste prepri{ch}ani, da {zh}elite izbrisati aktivnost:<br/>' + $scope.objects[index].name + ', izvedeno ' + $scope.objects[index].date+'?'), 85 tagData: {index: index} 86 }; 87 } 88 }; 89 $scope.removeObj = function(tagData) { 90 var index = tagData.index; 91 if($scope.objects == null || index<0 || index>$scope.objects.length-1) { 92 return; 93 } 94 var obj = $scope.objects[index]; 95 var reload = $scope.numberOfPages>1; 96 ActivityFactory.deleteActivity(obj.id, reload?$scope.searchData:null) 97 .success(function(data) { 98 if(data.status == 200) { 99 if(reload) { 100 enhanceAndSetObjects(data.res); 101 $scope.numberOfPages = data.pgnum || 0; 102 } else { 103 $scope.objects.splice(index,1); 104 } 105 $scope.removeObjWarn = false;
106 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.SUCCESS, Common.createResponseMessage(Utf8._('Aktivnost '+obj.name+' je bila izbrisana.'))); 107 } else { 108 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri brisanju aktivnosti.')), data); 109 } 110 }).error(function() { 111 $rootScope.Msgs.addCurrent(MESSAGE_TYPE.ERROR, Common.createResponseMessage(Utf8._('{Zh}al je pri{sh}lo do napake pri brisanju aktivnosti.'))); 112 }); 113 }; 114 115 }).filter('activityWhen', function() { 116 return function (act) { 117 if(!act || !act.dateObj) { 118 return ''; 119 } 120 121 var now = new Date().toMidnight(); 122 var tmp = '('; 123 if(now < act.dateObj) { //Future 124 tmp += '{ch}ez ' + now.toTimeSpanStr(act.dateObj, true); 125 } else if(now-act.dateObj==0 || (act.endObj!=null && act.endObj>now)) { //In progress 126 tmp += 'trenutno poteka'; 127 } else { //Past 128 tmp += 'pred ' + now.toTimeSpanStr(act.endObj || act.dateObj, true); 129 } 130 tmp += ')'; 131 return Utf8._(tmp); 132 }; 133 });
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.