bazjapan
5/26/2015 - 11:24 AM

Pouxh Watcher

Pouxh Watcher

    var s_id = app.gpv(vm_local.show, "_id");

                        window.BJ = {db:manage_db, _id:s_id};
                        BJ.watcher = manage_db.changes({
                            since: 'now',
                            live: true,
                            include_docs: true,
                            filter : function(doc){
                                return true;//doc.color === "yellow";
                            },
                            }).on('change', function (change) {
                            // received a change
                            console.log("I have changes all for id")
                            console.log(change)
                            var old_item = app.utils.copy(BJ.doc)
                            var co = app.utils.update_obj(change.doc, old_item);
                            console.log(co);
                            }).on('error', function (err) {
                                console.info(err)
                            });
                        BJ.REDWatcher = manage_db.changes({
                        since: 'now',
                        live: true,
                        include_docs: true,
                        filter : function(doc){
                            return doc.color === "red";
                        },
                        }).on('change', function (change) {
                        // received a change
                        console.log("I have changes all for id")
                        console.log(change)
                        }).on('error', function (err) {
                            console.info(err)
                        });
                       
                         var items = ["blue", "green", "yellow", "red", "purple", "pink"];
                         BJ.save = function(){
                            manage_db.get(s_id, function(err, doc){
                                if(err){
                                    console.error(err);
                                    return false;
                                }
                                var item = items[Math.floor(Math.random()*items.length)];
                                doc.color = item;
                                doc.cover = {color:item, smelly:doc.cover.smelly+1};
                                console.log("setting -"+item);
                                manage_db.put(doc, function(err, res){
                                console.log(err);
                                console.log(res);
                               }) 
                            })
                               
                         }
                         BJ.pink = function(){
                            BJ.watcher.cancel();
                            BJ.watcher = manage_db.changes({
                            since: 'now',
                            live: true,
                            include_docs: true,
                            filter : function(doc){
                                return doc.color === "pink";
                            },
                            }).on('change', function (change) {
                            // received a change
                            console.log("I have changes pink")
                            console.log(change)
                            }).on('error', function (err) {
                                console.info(err)
                            });
                         }

                        p.alert.show("Getting Data", 2);
                         console.log("Getting Data")
                        manage_db.get(s_id, function(err, doc){
                            if(err){
                                var doc = {
                                    "_id": s_id,
                                    "managed": false,
                                    "created" : app.utils.create_num_date(new Date(), true),
                                    "cover":{color:"red", smelly:0}
                                };
                                manage_db.put(doc, function(err, res){
                                    if(!err){
                                        doc.rev = res.rev;
                                    }
                                });
                            }else{
                                p.alert.show("Got it", 2);
                                console.log("Got it", doc)
                               BJ.doc = doc;
                               doc.accessed = app.utils.create_num_date(new Date(), true);
                               console.log("Before Put");
                               manage_db.put(doc).then(function(res){
                                console.log("After Put");
                                 
                                 console.log(res);
                               }).catch(function (err) {
                                      // oh noes! we got an error
                                      console.log("After Put");
                                      console.log(err)
                                    });
                            }

                        });