23c58ca5f5df8c08aca8a610e683cc41312b224f
[angular-drzb] / app / js / services.js.ep
1 'use strict';
2
3 /* Services */
4
5
6 // Demonstrate how to register services
7 // In this case it is a simple value service.
8 angular.module('myApp.services', [ 'ngResource' ]).
9         value('version', '<%= $couchdb_database %> <%= $VERSION %>').
10
11         factory('RegistrationTypes', function($log) {
12                 var types = [
13
14 // [ 'code', 'label', 'description' ],
15 [ "lecture", "Prijava usmenog izlaganja", "- popunjava prvi autor, odnosno osoba koja će izložiti rad. Ostali autori trebaju se samo registrirati.", 'badge-success' ],
16 [ "poster", "Prijava poster prezentacije", "- popunjava prvi autor, ondnosno osoba koja će izložiti rad. Ostali autori trebaju se samo registrirati.", 'badge-success' ],
17 [ "symposium", "Prijava simpozija", "- popunjava organizator simpozija, upisuje sažetke svih radova. Autori radova na simpoziju trebaju se samo registrirati.", 'badge-success' ],
18 [ "round", "Prijava okruglog stola", "- popunjava organizator okruglog stola. Sudionici se trebaju registrirati.", 'badge-success' ],
19 [ false ], // separator
20
21 [ "participant", "Registracija", "- popunjavaju slušači i suatori, te autori i suatori radova na simpoziju i sudionici okruglog stola." ],
22 [ "accomp", "Registracija za osobe u pratnji." ],
23 [ '', 'Sve registracije', '', 'badge-inverse' ]
24
25                 ];
26
27                 var RegistrationTypes = [];
28                 angular.forEach(types, function(value, key){
29                         this.push({
30                                 code: value[0],
31                                 label: value[1],
32                                 description: value[2],
33                                 css_class: value[3]
34                         });
35                 }, RegistrationTypes);
36
37                 $log.info('RegistrationTypes', RegistrationTypes);
38                 return RegistrationTypes;
39
40         }).
41         factory('Registration', function($resource){
42                 return $resource('/data/:database/registration/:registrationId', { database: '<%= $couchdb_database %>' }, {
43                         query: {method:'GET', params:{registrationId:'@id'}, isArray:true}
44                 });
45         }).
46 /* http://jsfiddle.net/asgoth/7bNAd/ */
47         factory('Organizations', function($q, $http, $log) {
48                 var url = '/<%= $couchdb_database %>/_design/registration/_view/organizations?group=true;format=key_array;callback=JSON_CALLBACK';
49
50                 var deferred = $q.defer();
51
52                 $log.info('defer', url);
53
54                 $http.jsonp(url).success(function(json) {
55                         $log.info('success', url);
56                         deferred.resolve(json.rows);
57                 }).error(function(error) {
58                         $log.error('error', url, error );
59                         deferred.reject(error);
60                 });
61
62                 return {
63                         getArrayPromise: function() {
64                                 return deferred.promise;
65                         }
66                 };
67
68                 return $scope.organizations;
69         }).
70 /* http://jsfiddle.net/asgoth/7bNAd/ */
71         value('ValidStates', function() {
72                 return [ 'draft', 'confirmation', 'verified', 'review' ];
73         });