Using the gorgeous answer from this discussion as a basis, I've started to develop my solution, but due to lack of documentation I'm struggling on how to map field search of a SearchManager instance, created in JavaScript, to a token :
Setting the token somewhere in code:
function setQueryStringInToken(){
var queryValue = {creating the querystring} ;
defaultTokenModel.set("searchQueryString_tk", queryValue);
submittedTokens.set(defaultTokenModel.toJSON());
}
now need to inject the token to SearchManager instance:
new SearchManager({
id: "example-search",
cache: false,
search: [here I need to inject data from searchQueryString_tk]
});
Is possible to inject searchQueryString_tk to SearchManager's search field? How to achieve that?
Hi @dreadangel,
You can place tokens in the search string and have tokens: true
option passed in the search manager which will replace token with its value in your search:
new SearchManager({
id: "example-search",
cache: false,
search: "$searchQueryString_tk$"
}, {tokens: true});
Hi @dreadangel,
You can place tokens in the search string and have tokens: true
option passed in the search manager which will replace token with its value in your search:
new SearchManager({
id: "example-search",
cache: false,
search: "$searchQueryString_tk$"
}, {tokens: true});
Thank you. One more ahead - if the search string I'm injecting in searchQueryString_tk token contains tokens - ex. index=main user=$userName$
- how to achieve that **userName token value to be injected in that expression? Or I need to extract the token value and to build the search string from the scratch?
I believe if you write it as follows it will work.. please try this and give feedback:
new SearchManager({
id: "example-search",
cache: false,
search: defaultTokenModel.get("searchQueryString_tk")
}, {tokens: true});
This will allow the search to have your final string with tokens which will be replaced later because of token: true
.