Hi, I'm just getting around this. (went on a vacation)

So I see that now a dummy filter function that returns true works great. 

I'm still having trouble making my filter function work, and I'm guessing 
it has to do with the remark you made about decodeURIComponent and 
JSON.parse.

I tried throw JSON.stringify(req) as you suggested, but I'm not seeing it 
show up anywhere. Where does it show up? I have my safari developer console 
open which I use to debug my phonegap app.

Since I call it like this

http://lite.couchbase./status32/_changes?feed=continuous&include_docs=true&;
filter=utils/by_id&doc_ids=%4B%22id%22%5D

And my filter function looks like this

function(doc, req) { 
   if (req.query.doc_ids.indexOf(doc._id) != -1) { 

       return true;
   } else {
       return false;

   } 
       }

Are you saying I should:

var doc_ids = JSON.parse(decodeURIComponent(requ.query.doc_ids));
if (doc_ids.indexOf(doc._id) != -1)  {

return true;
}

Am I understanding you?

slim

On Wednesday, August 13, 2014 5:42:32 PM UTC-4, J. Chris Anderson wrote:
>
> FYI I remembered when debugging this that when you want to see what your 
> filter parameters are, a line like this 
>
> function(doc, req) {
>
>   throw JSON.stringify(req);
>
> }
>
> will make them show up in the Xcode logs. In the case of the first code I 
> tested, anything but numbers and true or "false" would fail to parse as a 
> parameter. Now it works great, but you may have to decodeURIComponent and 
> JSON.parse parameters in your filter function (or switch to a comma 
> separated list or something easier to decode.)
>
> Chris
>
>
>
> On Wednesday, August 13, 2014 12:36:10 PM UTC-7, J. Chris Anderson wrote:
>>
>> It looks like this is an area with a recent change, making clear that 
>> parameters are not to be parsed as JSON:
>>
>>
>> https://github.com/couchbase/couchbase-lite-ios/commit/8bf60318ec828d8172a6dfc6275663505b57bf60
>>
>> It may be that the plugin version you've got still tries to parse the 
>> parameters as JSON but in the future it won't.
>>
>> Here's a hand-built PhoneGap plugin for now (with some extra logging if 
>> you enable -LogCBL_Router YES) 
>> https://dl.dropboxusercontent.com/u/14074521/com.couchbase.lite.phonegap.zip
>>
>> These fixes will be in the next release.
>>
>> Chris
>>
>> On Tuesday, August 12, 2014 1:02:15 PM UTC-7, J. Chris Anderson wrote:
>>>
>>> Just to let you know I'm looking into this and the filter compilation 
>>> seems to be running fine. It *looks* like the problem is in JSON parameter 
>>> handling. So it will take more investigation but now I know where to look.
>>>
>>> Chris
>>>
>>> On Monday, August 4, 2014 2:16:00 PM UTC-7, Seung Chan Lim wrote:
>>>>
>>>> Sorry, I can't share the app. :( I'll be more than happy to help in 
>>>> others possible ways as needed.
>>>>
>>>> slim
>>>>
>>>> On Monday, August 4, 2014 1:08:42 PM UTC-4, J. Chris Anderson wrote:
>>>>>
>>>>>
>>>>>
>>>>> On Sunday, August 3, 2014 2:00:04 PM UTC-7, Seung Chan Lim wrote:
>>>>>>
>>>>>> Yeah, I just tried a filter that returns true no matter what, and 
>>>>>> still doesn't work.
>>>>>>
>>>>>> I get a change notify from the http socket that does not utilizes the 
>>>>>> filter, but none from the one that does.
>>>>>>
>>>>>>
>>>>> Any chance you can share (privately is ok) your app so I can try to 
>>>>> reproduce? Otherwise I'll start an independent repro.
>>>>>
>>>>> Thanks,
>>>>> Chris
>>>>>  
>>>>>
>>>>>> slim
>>>>>>
>>>>>> On Sunday, August 3, 2014 1:21:24 PM UTC-4, J. Chris Anderson wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Saturday, August 2, 2014 8:37:58 PM UTC-7, Seung Chan Lim wrote:
>>>>>>>>
>>>>>>>> Thanks Chris.
>>>>>>>>
>>>>>>>> I'm testing it out. I'm using the main GIT repository URL I've been 
>>>>>>>> using since it seems to be up-to-date. If that assumption is 
>>>>>>>> incorrect, 
>>>>>>>> please let me know.
>>>>>>>>
>>>>>>>> What I'm seeing is that I no longer get a 404. But I'm not getting 
>>>>>>>> any change notifications, either.
>>>>>>>>
>>>>>>>>
>>>>>>> If you write a function that passes everything does it work? I guess 
>>>>>>> my first debug pass would be to ensure that the JS is getting called 
>>>>>>> and 
>>>>>>> runs on an always true filter.
>>>>>>>
>>>>>>> If that works then it's just a matter of debugging your JS until you 
>>>>>>> get the results you need. If even an always true filter doesn't work, 
>>>>>>> then 
>>>>>>> we need to debug the rest of the code path, so we'll probably end up 
>>>>>>> opening a ticket with whatever you find there.
>>>>>>>
>>>>>>> Chris
>>>>>>>  
>>>>>>>
>>>>>>>> This is what I have in my design document (id is _design/utils)
>>>>>>>>
>>>>>>>>
>>>>>>>> filters: {
>>>>>>>>        by_id: (function(doc, req) { 
>>>>>>>>    if (req.query.doc_ids.indexOf(doc._id) != -1) { 
>>>>>>>>
>>>>>>>>        return true;
>>>>>>>>    } else {
>>>>>>>>        return false;
>>>>>>>>
>>>>>>>>    } 
>>>>>>>>        }).toString()
>>>>>>>>    }
>>>>>>>>
>>>>>>>> The request URL looks like this
>>>>>>>>
>>>>>>>>
>>>>>>>> http://lite.couchbase./status32/_changes?feed=continuous&include_docs=true&filter=utils/by_id&doc_ids=%5B%22MY_ID%22%5D
>>>>>>>>
>>>>>>>> Can you see if I'm doing something obviously wrong?
>>>>>>>>
>>>>>>>>
>>>>>>>> slim
>>>>>>>>
>>>>>>>> On Friday, August 1, 2014 3:13:11 PM UTC-4, J. Chris Anderson wrote:
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wednesday, July 30, 2014 6:42:53 PM UTC-7, J. Chris Anderson 
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Wednesday, July 30, 2014 6:40:31 PM UTC-7, J. Chris Anderson 
>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> Eagerly awaiting Chris to rebuild the phone gap plugin. 
>>>>>>>>>>>>
>>>>>>>>>>>> How do I know when this gets done?
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>> Here is a 1.0.2 RC build for the phonegap plugin 
>>>>>>>>> <http://cbfs-ext.hq.couchbase.com/builds/Couchbase-Lite-PhoneGap-Plugin_1.0.2-35.zip>
>>>>>>>>>  that 
>>>>>>>>> includes Jens patch 
>>>>>>>>> <https://github.com/couchbaselabs/couchbase-lite-phonegap-plugin-builder/commit/844c64eb5459ee3e48921f9727aa26bba8565663>.
>>>>>>>>>  
>>>>>>>>> You can download and unzip it, and then use the full path to the 
>>>>>>>>> unzipped 
>>>>>>>>> directory, instead of a git URL for the PhoneGap plugin installer.
>>>>>>>>>
>>>>>>>>> I'll verify it after lunch but I'm 99% sure it is great so give it 
>>>>>>>>> a try. Once it passes verification here I'll update the git and 
>>>>>>>>> cordova 
>>>>>>>>> repos. Let me know how that goes.
>>>>>>>>>
>>>>>>>>> Chris
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  
>>>>>>>>>
>>>>>>>>>> On my plate for this week is to cut a 1.0.1 release of PhoneGap 
>>>>>>>>>>> (I don't think this will have your fixes, but as soon as I have 
>>>>>>>>>>> 1.0.1 done 
>>>>>>>>>>> I'll start work on 1.1) 1.1 will include the filter stuff. It will 
>>>>>>>>>>> also 
>>>>>>>>>>> drop support for iOS 6. (Although we could maintain a parallel 
>>>>>>>>>>> version that 
>>>>>>>>>>> supports iOS 6 if there is strong demand.)
>>>>>>>>>>>
>>>>>>>>>>> So my guess is that we'll have something you can play with early 
>>>>>>>>>>> next week. Here's the bug to follow / ping me on if it takes longer 
>>>>>>>>>>> than a 
>>>>>>>>>>> week.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>> Sent too early. Here is the link 
>>>>>>>>>> <https://github.com/couchbaselabs/Couchbase-Lite-PhoneGap-Plugin/pull/32>.
>>>>>>>>>>  
>>>>>>>>>> You could also try applying this locally. (In every copy of 
>>>>>>>>>> CBLite.m you can find!) 
>>>>>>>>>> <https://github.com/couchbaselabs/Couchbase-Lite-PhoneGap-Plugin/commit/b51888908204ec3306697a20e48414cf20183176>
>>>>>>>>>>  
>>>>>>>>>>  
>>>>>>>>>>
>>>>>>>>>>> Chris
>>>>>>>>>>>
>>>>>>>>>>> Chris
>>>>>>>>>>>  
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> slim
>>>>>>>>>>>>
>>>>>>>>>>>> On Tuesday, July 29, 2014 7:30:06 PM UTC-4, Jens Alfke wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Jul 29, 2014, at 4:14 PM, Jens Alfke <[email protected]> 
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>> I just took a minute to debug this. The answer is simply that 
>>>>>>>>>>>>> there isn't any support (yet) for JavaScript-based filters. The 
>>>>>>>>>>>>> JavaScriptCore integration only supports views (map and reduce 
>>>>>>>>>>>>> functions) 
>>>>>>>>>>>>> so far.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Oops, not true, Should have looked at the source more closely. 
>>>>>>>>>>>>> JS filters *are* already implemented, it’s just that the 
>>>>>>>>>>>>> top-level function that registers JS compilers only registers the 
>>>>>>>>>>>>> view 
>>>>>>>>>>>>> compiler, not the filter compiler. This just took a couple of 
>>>>>>>>>>>>> lines to fix, 
>>>>>>>>>>>>> so I’ve checked it in (commit 812cf64.)
>>>>>>>>>>>>>
>>>>>>>>>>>>> However, the PhoneGap container/plugin will have to be rebuilt 
>>>>>>>>>>>>> (with this commit) before PhoneGap apps can use this. I don’t 
>>>>>>>>>>>>> know how to 
>>>>>>>>>>>>> do that, but Chris does…
>>>>>>>>>>>>>
>>>>>>>>>>>>> —Jens
>>>>>>>>>>>>>
>>>>>>>>>>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/mobile-couchbase/411ba1da-74e2-45ed-81a6-f3fee6234baa%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to