Показать только непрочитанный документ в текущем представлении?

кто-нибудь предлагает реализовать @Command([ViewShowOnlyUnread]) в XPages ViewPanel?

И можно ли реализовать функцию "Следующее непрочитанное" и "Предыдущее непрочитанное"?


person Daniele Grillo    schedule 22.08.2012    source источник
comment
Для отображения непрочитанного документа я использую dojo.jquery() ------------------- dojo.query(.xspDataTable tr).forEach(function(node, index, arr){ if (node.className.indexOf(xspDataTableRowUnread)==-1){ node.className+= lotusHidden } console.log(node.className) }); ------------------- А вот про функции Next Unread и Preview Unread ничего нет   -  person Daniele Grillo    schedule 22.08.2012


Ответы (3)


Вместо привязки панели просмотра к стандартному источнику данных представления попробуйте установить для его атрибута value следующее выражение:

importPackage(com.ibm.xsp.model.domino);
var targetView = database.getView("Some View");
var unreadEntries = targetView.getAllUnreadEntries();
var unreadModel = new DominoViewEntryCollectionDataModel(unreadEntries);
return unreadModel;

Затем панель просмотра должна вести себя точно так же, как если бы она была привязана к истинному источнику данных, но отображать только непрочитанные записи.

person Tim Tripcony    schedule 22.08.2012
comment
Э-э, очень хорошая мысль, Тим, но... как я могу вставить ваш код, чтобы, когда я нажимаю кнопку, я мог выбирать источники данных? спасибо большое - person Daniele Grillo; 23.08.2012
comment
Я попробовал ваш код в статическом режиме, но выдал эту ошибку: Ошибка при выполнении вычисляемого выражения JavaScript Ошибка интерпретатора сценария, строка = 5, столбец = 8: не удается найти общедоступный конструктор Java 'com.ibm.xsp.model.domino.DominoViewEntryCollectionDataModel() ' - person Daniele Grillo; 23.08.2012
comment
Я изменил последнюю строку на return (unreadModel); Но, на мой взгляд, ваше решение не работает... Переменная VAR не передает правильный класс и ошибается... Я не знаю - person Daniele Grillo; 23.08.2012

Отличный ответ от Тима..

Вот другая версия с элементами управления повтором -

    <xp:repeat id="repeatUnreadEntries" var="viewEntry" indexVar="index" rows="30">
    <xp:this.value><![CDATA[#{javascript: return database.getView('viewName').getAllUnreadEntries()}]]></xp:this.value>
    <xp:this.facets>
        <xp:panel id="repeatHeader" xp:key="header">
            <xp:text disableTheme="true" escape="false">
                <xp:this.value>
                    <![CDATA[<TABLE><THEAD><TH>Cell1</TH><TH>Cell2</TH></THEAD><TBODY>]]>
                </xp:this.value>
            </xp:text>
        </xp:panel>
        <xp:panel id="repeatFooter" xp:key="footer">
            <xp:text disableTheme="true" escape="false">
                <xp:this.value><![CDATA[</TBODY></TABLE>]]></xp:this.value>
            </xp:text>
        </xp:panel>
    </xp:this.facets>
    <TR>
        <xp:repeat var="entryColVal" indexVar="colIndex" value="#{javascript:viewEntry.getColumnValues()}">
            <TD>
                <xp:text value="#{entryColVal}" />
            </TD>
        </xp:repeat>
    </TR>
</xp:repeat>
person Adibabu Kancharla    schedule 22.08.2012

Код, предоставленный Tim Works, если вы устанавливаете атрибуты данных и значений для панели просмотра, как показано ниже.

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="headerPager" id="pager1"></xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1" viewName="vwSrc"></xp:dominoView>
    </xp:this.data>
    <xp:this.value><![CDATA[#{javascript:importPackage(com.ibm.xsp.model.domino);
var targetView = database.getView("vwSrc");
var unreadEntries = targetView.getAllUnreadEntries();
var unreadModel = new DominoViewEntryCollectionDataModel(unreadEntries);
return unreadModel();}]]></xp:this.value>
        <xp:viewColumn columnName="col1" id="viewColumn1">
            <xp:viewColumnHeader value="Column1" id="viewColumnHeader1"></xp:viewColumnHeader>
        </xp:viewColumn>
</xp:viewPanel>
person Adibabu Kancharla    schedule 23.08.2012
comment
Я не знаю почему... но в моем сценарии, если я вырезаю и вставляю код... я вижу vwSrc со всеми записями... Я использую 8.5.3FP2 Server and Designer.... - person Daniele Grillo; 23.08.2012
comment
Вы также изменили имя представления в атрибуте данных и атрибуте значения ??. В остальном проблем не вижу... - person Adibabu Kancharla; 23.08.2012
comment
Да.... имя в атрибуте данных и атрибуте значения одинаковы... Вы пробовали код и в вашем сценарии он работает хорошо? - person Daniele Grillo; 23.08.2012
comment
Я попробовал это, и это сработало хорошо. Если у вас все еще есть проблемы с этим кодом, вы можете использовать контроль повторения, как указано в моем ответе. - person Adibabu Kancharla; 23.08.2012
comment
Спасибо, но я не могу использовать элемент управления повтором, мое представление имеет другую категоризацию и является более сложным, поскольку имеет отступ с ответным документом и т. д. Теперь я пробую тест с простым представлением. Tnx - person Daniele Grillo; 24.08.2012