still idb problems, need to wait until idb init is finished!
[outofuni/staffline.git] / www / js / idbsrv.js
1 // indexed db service
2
3 var idbmod = angular.module('idbmod',[]);
4
5 idbmod.factory("idbsrv",function($q) {
6         var srvobject={};
7         srvobject.init=function(name,successcb,version,stores,upgradecb) {
8                 var defer=$q.defer();
9                 idb.init(name,function(event) {
10                         if(successcb!==undefined)
11                                 successcb(event);
12                         defer.resolve(idb.handle);
13                 },version,stores);
14                 return defer.promise;
15         };
16         srvobject.del_store=function(store,callback) {
17                 var defer=$q.defer();
18                 idb.del_store(store,function() {
19                         if(callback!==undefined)
20                                 callback();
21                         defer.resolve();
22                 });
23                 return defer.promise;
24         };
25         srvobject.add_store_item=function(store,item,callback) {
26                 var defer=$q.defer();
27                 idb.add_store_item(store,item,function(event) {
28                         if(callback!==undefined)
29                                 callback(event);
30                         defer.resolve();
31                 });
32                 return defer.promise;
33         };
34         srvobject.del_store_item=function(store,num,callback) {
35                 var defer=$q.defer();
36                 idb.del_store_item(store,num,function(event) {
37                         if(callback!==undefined)
38                                 callback(event);
39                         defer.resolve();
40                 });
41                 return defer.promise;
42         };
43         srvobject.update_store_item=function(store,num,nitem,callback) {
44                 var defer=$q.defer();
45                 idb.update_store_item(store,num,nitem,function(event) {
46                         if(callback!==undefined)
47                                 callback(event)
48                         defer.resolve();
49                 });
50                 return defer.promise;
51         };
52         srvobject.get_store_items=function(store,callback,low,up) {
53                 var defer=$q.defer();
54                 idb.get_store_items(store,function(item) {
55                         if(callback!==undefined)
56                                 callback(item);
57                         defer.resolve(item);
58                 });
59                 return defer.promise;
60         };
61         srvobject.get_item_by_key=function(store,key,callback) {
62                 var defer=$q.defer();
63                 idb.get_item_by_key(store,key,function(item) {
64                         if(callback!==undefined)
65                                 callback(item);
66                         defer.resolve();
67                 });
68                 return defer.promise;
69         };
70         srvobject.get_item_by_index=function(store,index,val,callback) {
71                 var defer=$q.defer();
72                 idb.get_item_by_index(store,index,val,function(item) {
73                         if(callback!==undefined)
74                                 callback(item);
75                         defer.resolve();
76                 });
77                 return defer.promise;
78         };
79         srvobject.del_item_by_key=function(store,key,callback) {
80                 var defer=$q.defer();
81                 idb.del_item_by_key(store,key,function(event) {
82                         if(callback!==undefined)
83                                 callback(event);
84                         defer.resolve();
85                 });
86                 return defer.promise;
87         };
88         srvobject.del=function(callback) {
89                 var defer=$q.defer();
90                 idb.del(function() {
91                         if(callback!==undefined)
92                                 callback();
93                         defer.resolve();
94                 });
95                 return defer.promise;
96         };
97         return srvobject;
98 });
99