[
https://issues.apache.org/jira/browse/SLING-792?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12659602#action_12659602
]
Rory Douglas commented on SLING-792:
------------------------------------
This works for me, thanks! I'm not sure I have rights to close the issue
though...
> Adapt Sling(Node|Property)Store to Dojo 1.2 and some extensions
> ---------------------------------------------------------------
>
> Key: SLING-792
> URL: https://issues.apache.org/jira/browse/SLING-792
> Project: Sling
> Issue Type: Improvement
> Components: Extensions
> Reporter: Felix Meschberger
> Assignee: Felix Meschberger
>
> Creating issue from the extension provided by Rory Douglas in
> https://issues.apache.org/jira/browse/SLING-301?focusedCommentId=12658420#action_12658420:
> The current store implementations don't work well with some common widgets
> (in particular ComboBox and FilteringSelect), in latest 1.2 Dojo releases.
> There are 2 problems: one, these widgets use the "query" parameter to pass a
> wildcarded fragment of user input to accomplish the autocomplete feature, but
> the SlingNodeStore/SlingPropertyStore currently only do exact string matches
> against the query; and two, this autocomplete query overwrites the filtering
> query specified on the store itself, when it really should be merged/ANDed
> with it.
> I've fixed the 2 classes to accomodate these wildcard queries (copied code
> from ItemFileReadStore). I've also made some changes/enhancements to the
> SlingNodeStore :
> 1) Moved 'level' out of 'query', put it in optional 'queryOptions' param
> instead (and renamed to 'depth')
> 2) Use common 'queryOptions' parameters 'deep' (along with 'depth') to
> control how hierarchy below target node is returned
> 2)a)If 'deep' is true, return all nodes below target up to 'depth'. If
> 'depth' not specified, use 'infinity'.
> b)If 'deep' is false, return only nodes at 'depth' below target node. If
> 'depth' not specified, use 1.
> So, with the following hierarchy, and store url="/test"
> /samplenodes
> /content/
> /list1
> /nodeA
> /subNodeA
> /list2
> /nodeB
> /data
> /nodeC
> deep=true, depth=2 gives
> [samplenodes,content,list1,nodeA,list2,nodeB,nodeC,data]
> deep=true, no depth gives
> [samplenodes,content,list1,nodeA,subNodeA,nodeB,list2,nodeC,data]
> deep=false, depth=2 gives [nodeA,nodeB]
> deep=false, no depth gives [samplenodes]
> The behavior is consistent when used with ComboBox, but a little weird for
> Trees (where deep=false is default). Overriding deep to true for a tree can
> put the same node into the tree multiple times at different levels. Setting a
> depth for a ComboBox with deep=false sets the level from which nodes are
> retrieved, but for a Tree it only sets the depth at which the tree starts, it
> doesn't actually restrict the depth of the tree. So I've added another
> property 'treeDepth' (set in 'overrideDepth') which sets the the tree depth
> limit. This parameter has no effect on ComboBoxes since it's only enforced in
> the get/hasChildren methods.
> 3) Added attributes 'overrideDeep' and 'overrideDepth' to enable store to
> override values passed in via 'queryOptions' for 'deep' and 'depth'.
> Primarily useful since 'deep' defaults to 'false' for DataStores, but is
> hard-coded to 'true' in requests from ComboBox.
> 4) Merged specified store query with incoming queries from widgets before
> executing feth
> 5) Added attributes 'statement' and 'searchprops' to enable specifying a
> search query for the JsonQueryServlet, rather than a JsonRendererServlet URL.
> The modified files are attached as a zip (dojo.sling.patch.20081221.zip).
> Also includes a new demo page (demo4.html) and a set of sample nodes
> (samplenodes.json) used by the demo.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.