2014-01-17 13 views
1

我正尝试使用自定义休息服务来填充iNotes日历控件。剩下的服务正在返回我需要的json,但无论我做什么,它都不会填充日历。看看extlib演示也没有真正解决这个问题。如何使用带自定义休息服务的iNotes日历

新增 - 我想使用非邮件应用程序,所以我有在日历视图上使用必要的字段。但我想要自定义视图休息服务的主要原因是能够根据位置和部门进行过滤。

以下是我的xPage的代码,它具有REST控件,CalendarStore控件和iNotes CalendarView控件。我还补充了其余服务返回的条目

<?xml version="1.0" encoding="UTF-8"?> 
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" 
xmlns:xc="http://www.ibm.com/xsp/custom" 
xmlns:xe="http://www.ibm.com/xsp/coreex"> 

<xe:restService id="restService1" pathInfo="inoteslegacyjson"> 
    <xe:this.service> 
     <xe:viewJsonLegacyService viewName="Calendar"> 
      <xe:this.columns> 
       <xe:restViewColumn columnName="DEPT" loaded="true" 
        name="dept"> 
       </xe:restViewColumn> 
       <xe:restViewColumn columnName="startDate" 
        name="CalendarDateTim" loaded="true"> 
       </xe:restViewColumn> 
       <xe:restViewColumn columnName="$147" loaded="true" 
        name="Subject"> 
       </xe:restViewColumn> 
      </xe:this.columns> 
     </xe:viewJsonLegacyService> 
    </xe:this.service> 
</xe:restService> 
<xe:notesCalendarStore id="notesCalendarStore1" 
    dojoType="xpagesext.CalendarStore"> 
<xe:this.dojoAttributes> 
    <xp:dojoAttribute name="pathInfo" value="/inoteslegacyjson"> 
    </xp:dojoAttribute> 
</xe:this.dojoAttributes></xe:notesCalendarStore> 
<xe:calendarView id="calendarView1" 
    storeComponentId="notesCalendarStore1" type="M"> 
</xe:calendarView></xp:view> 

{ 
@timestamp: "20140122T180515" 
@toplevelentries: "58" 
    -viewentry: [ 
     -{ 
     @unid: "85257C210070DA5C85257C24006DD996" 
     @noteid: "8FA" 
     @position: "1" 
     @read: "true" 
     @siblings: "58" 
-entrydata: [ 
-{ 
@columnnumber: "0" 
@name: "dept" 
-text: { 
0: "Information Services" 
} 
} 
-{ 
@columnnumber: "1" 
@name: "CalendarDateTim" 
-datetime: { 
0: "20131129T180515" 
} 
} 
-{ 
@columnnumber: "2" 
@name: "Subject" 
-text: { 
0: "Linda Berry - PTO" 
} 
} 
] 
} 
+3

请将您的代码的基本部分添加到您的问题中。 –

+0

您可能还想将其分成两个问题 - 一个用于数据不显示,另一个用于调整样式...如果您为后一个问题创建了单独的问题,请替换“更具响应性”和“确定大小“与一些额外的特异性。 ;) –

+0

这听起来像你的情况可能会做一些完全不同的事情,那些在页面上试用的东西“/XPagesExt.nsf/DWA_iNotesRest.xsp”或“/XPagesExt.nsf/DWA_LocalCalendarView.xsp”,对吧?如果是这样,我们可能在这里有一个错误。 –

回答

3

我同意蒂姆将你的问题分成两个单独的问题。我知道与视图没有响应窗口大小的问题。因此,如果您在较小的窗口中打开日历,并希望更改为全屏,则日历保持小尺寸并添加一些空白区域。在这里我对这个问题的短期解决方案:

为了使您的iNotesCalendar反应更灵敏,你可以使用Dojo增加您的XPage底部这段代码的功能连接到你的窗口:

<script type="text/javascript"> 
    function resizeCalendar() { 
     cview.resize(); 
    }; 

    dojo.addOnLoad(function() { 
     dojo.connect(window, 'resize',resizeCalendar); 
    }); 
</script> 

此客户端脚本调整您的日历对象的调整大小功能,当您的窗口被调整大小时。 cview是您的<xe:calendarView id="calendarView" jsId="cview">jsId

2)你的Json entrydata []似乎有点小。您的日历视图是否会对您的商店进行注册?将jsId添加到您的<xe:calendarView>在jsId._stores [0] .items下的DOM选项卡中使用Firebug,您应该可以找到当前查看月份的所有日历条目。如果没有显示您的json的项目无效或缺少数据。如果您可以看到项目,请检查数据startDateTime,输入,主题,单一...如果有遗漏或无效。