PageSourceSearch

https://app.nefiks.si/angular/scripts/controllers/activity/ActivityListCtrl.js?v=20201107

js nefiks.si collected 2026-10-01 13:05:50 UTC 5,316 bytes, 133 lines download raw bytes

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:&nbsp;&nbsp;&nbsp;&nbsp;');
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.