I am trying to use RESTservice to get data from a resource reservation DB and provide a calendar with filter capability by resource name. All run fine while I use the rest service without filter
<xe:restService id="restService2" pathInfo="/inoteslegacyjson">
<xe:this.service>
<xe:viewJsonLegacyService count="30000"
databaseName="${compositeData.databaseName}"
viewName="${compositeData.viewName}" defaultColumns="false"
var="entry" contentType="text/plain" compact="false">
<xp:this.columns>
<!-- Cal Date -->
<xe:restViewColumn name="$134"
columnName="StartDateTime">
</xe:restViewColumn>
<!-- Icon -->
<xe:restViewColumn name="$149" columnName="$149"></xe:restViewColumn>
<!-- Start Date -->
<xe:restViewColumn name="$144"
columnName="StartDateTime">
</xe:restViewColumn>
...
But when I put a search syntax like this:
<xe:this.search><![CDATA[#{javascript:
var isResourceFiltered:Boolean;
var strTmp:String=viewScope.resourceName;
isResourceFiltered=(strTmp.compareToIgnoreCase("All")!=0);
print ("Is result filtered:" + isResourceFiltered + ", filter: "+ strTmp);
if (!isResourceFiltered) {
return "";
}
return "ResourceName=" + viewScope.resourceName}]]></xe:this.search>
I cannot see any message in console about Print() and get some errors in page:
calendarDataStore: RequestError: Unable to load /admin/resource.nsf/ResourceCalendarFiltered.xsp/inoteslegacyjson status: 500
or error 400
How does can I filter a calendar view for resource name (And how make a time slice to get only time period showed in the UI to avoid count="30000"?)
viewScope.resourceName
may not be set early enough for it to be used. This could explain the lack of a print statement and the error 500 returned by the calendarDataStore.
Try adding some error handling to verify it's an issue with the component vs an error with your code.
XPages OpenLog Logger (or the corresponding code in OpenNTF Domino API) will catch uncaught exceptions and so would verify coding issues without needing try/catch blocks.