Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>So here is the code for the modified approach which works with a this caveat...</p> <ol> <li><p>The views are only categorized on the first column, though that may not be needed. The page uses the "Filter by column value" to show the selected documents. This was because the repeat control for the subcatAppPage would not find multiple values unless I removed the categorization from the view.</p></li> <li><p>I used a dataContext control on the page to define the views that would be shown. It needs more complexity but this works for now:</p> <pre><code>&lt;xp:this.dataContexts&gt; &lt;xp:dataContext var="viewListItems"&gt; &lt;xp:this.value&gt;&lt;![CDATA[#{javascript: try { var returnVal = []; returnVal.push({name:"Issues by Assigned To By Client", alias:"ByAssignedToClient", cats:["AssignedTo","Client"]}); returnVal.push({name:"Issues by Assigned To By Module", alias:"ByAssignedToType", cats:["AssignedTo","Type"]}); returnVal.push({name:"Issues by Client By Assigned To", alias:"ByClientAssignedTo", cats:["Client","AssignedTo"]}); returnVal.push({name:"Issues by Client By Module", alias:"ByClientType", cats:["Client","Type"]}); return returnVal; } catch(e) { _dump(e); } }]]&gt;&lt;/xp:this.value&gt; &lt;/xp:dataContext&gt; &lt;/xp:this.dataContexts&gt; </code></pre></li> </ol> <p>Now here is the mobile controls:</p> <pre><code>&lt;xe:singlePageApp id="singlePageApp1" selectedPageName="mhome"&gt; &lt;xe:appPage id="homeAppPage1" pageName="mhome"&gt; &lt;xe:djxmHeading id="djxmHeading1" label="Home"&gt; &lt;/xe:djxmHeading&gt; &lt;xe:djxmRoundRectList id="djxmRoundRectList1"&gt; &lt;xp:repeat id="repeat3" rows="10" var="listItem" indexVar="liidx" value="#{viewListItems}"&gt; &lt;xe:djxmLineItem id="djxmLineItem5" moveTo="selectCat" label="#{javascript:listItem.name;}"&gt; &lt;xp:eventHandler event="onClick" submit="true" refreshId="selectCatPagePanel" refreshMode="partial"&gt; &lt;xp:this.action&gt; &lt;xp:actionGroup&gt; &lt;xp:executeScript script="#{javascript:sessionScope.m_selectedView = listItem;}"&gt;&lt;/xp:executeScript&gt; &lt;/xp:actionGroup&gt; &lt;/xp:this.action&gt; &lt;/xp:eventHandler&gt; &lt;/xe:djxmLineItem&gt; &lt;/xp:repeat&gt; &lt;/xe:djxmRoundRectList&gt; &lt;/xe:appPage&gt; &lt;xe:appPage id="categoryAppPage2" pageName="selectCat" resetContent="true" preload="true"&gt; &lt;xp:panel id="selectCatPagePanel"&gt; &lt;xp:this.data&gt; &lt;xp:dominoView var="view1"&gt; &lt;xp:this.viewName&gt;&lt;![CDATA[#{javascript: try{ var ssview = sessionScope.m_selectedView; if(ssview == null) return "ByClientAssignedTo"; return ssview.alias; } catch(e) { return "ByClientAssignedTo"; }}]]&gt;&lt;/xp:this.viewName&gt; &lt;/xp:dominoView&gt; &lt;/xp:this.data&gt; &lt;xe:djxmHeading id="djxmHeading2" moveTo="mhome" back="back"&gt; &lt;xe:this.label&gt;&lt;![CDATA[#{javascript: var ssview = sessionScope.m_selectedView; if(ssview == null) return "Select something"; return "Select " + ssview.cats[0]; }]]&gt;&lt;/xe:this.label&gt; &lt;/xe:djxmHeading&gt; &lt;xp:text escape="true" id="computedField3"&gt; &lt;xp:this.value&gt;&lt;![CDATA[#{javascript: var ssview = sessionScope.m_selectedView; if(ssview == null) return "View is nothing" return "View is: " + ssview.name; }]]&gt;&lt;/xp:this.value&gt; &lt;/xp:text&gt; &lt;xe:djxmRoundRectList id="djxmRoundRectList2"&gt; &lt;xp:repeat id="repeat1" rows="30" value="#{javascript:view1.getColumnValues(0);}" var="catvalue" indexVar="catidx"&gt; &lt;xe:djxmLineItem id="djxmLineItem3" label="#{javascript:catvalue}" moveTo="selectSubcat"&gt; &lt;xp:eventHandler event="onClick" submit="true" refreshId="selectSubCatPagePanel" refreshMode="partial"&gt; &lt;xp:this.action&gt;&lt;![CDATA[#{javascript: var ssview = sessionScope.m_selectedView; ssview.selectedCat = catvalue sessionScope.m_selectedView = ssview; }]]&gt;&lt;/xp:this.action&gt; &lt;/xp:eventHandler&gt; &lt;/xe:djxmLineItem&gt; &lt;/xp:repeat&gt; &lt;/xe:djxmRoundRectList&gt; &lt;/xp:panel&gt; &lt;/xe:appPage&gt; &lt;xe:appPage id="subcatAppPage3" pageName="selectSubcat" preload="true" resetContent="true"&gt; &lt;xp:panel id="selectSubCatPagePanel"&gt; &lt;xe:djxmHeading id="djxmHeading3" moveTo="selectCat" back="back"&gt; &lt;xe:this.label&gt;&lt;![CDATA[#{javascript: var ssview = sessionScope.m_selectedView; if(ssview == null) return "Select something"; return "Select " + ssview.cats[1];}]]&gt;&lt;/xe:this.label&gt; &lt;/xe:djxmHeading&gt; &lt;xp:text escape="false" id="computedField1"&gt; &lt;xp:this.value&gt;&lt;![CDATA[#{javascript: var ssview = sessionScope.m_selectedView; if(ssview == null) return "blah blah"; "View is: " + ssview.name + "&lt;br/&gt;" + ssview.cats[0] + ": " + ssview.selectedCat; }]]&gt;&lt;/xp:this.value&gt; &lt;/xp:text&gt; &lt;xe:djxmRoundRectList id="djxmRoundRectList3"&gt; &lt;xp:repeat id="repeat2" rows="10" var="subcatValue" indexVar="catidx"&gt; &lt;xp:this.value&gt;&lt;![CDATA[#{javascript://var vals = @Unique(view2.getColumnValues(1)); //vals.sort(); var vals = []; try{ var ssview = sessionScope.m_selectedView; if(ssview==null) return vals; vals = @DbLookup("", ssview.alias, ssview.selectedCat, 2); return @Unique(vals); } catch(e) { return vals; } return vals;}]]&gt;&lt;/xp:this.value&gt; &lt;xe:djxmLineItem id="djxmLineItem1" label="#{javascript:subcatValue}" moveTo="showView"&gt; &lt;xp:eventHandler event="onClick" submit="true" refreshId="showViewPagePanel" refreshMode="partial"&gt; &lt;xp:this.action&gt;&lt;![CDATA[#{javascript: var ssview = sessionScope.m_selectedView; if(ssview == null) return; ssview.selectedSubcat = subcatValue sessionScope.m_selectedView = ssview; }]]&gt;&lt;/xp:this.action&gt; &lt;/xp:eventHandler&gt; &lt;/xe:djxmLineItem&gt; &lt;/xp:repeat&gt; &lt;/xe:djxmRoundRectList&gt; &lt;/xp:panel&gt; &lt;/xe:appPage&gt; &lt;xe:appPage id="viewAppPage4" pageName="showView" preload="true" resetContent="true"&gt; &lt;xp:panel id="showViewPagePanel"&gt; &lt;xe:djxmHeading id="djxmHeading4" moveTo="selectSubcat" back="back"&gt; &lt;xe:this.label&gt;&lt;![CDATA[#{javascript: var ssview = sessionScope.m_selectedView; if(ssview == null) return "asdaasd"; ssview.name;}]]&gt;&lt;/xe:this.label&gt; &lt;/xe:djxmHeading&gt; &lt;xp:text escape="false" id="computedField2"&gt; &lt;xp:this.value&gt;&lt;![CDATA[#{javascript: var ssview = sessionScope.m_selectedView; if(ssview == null) return "blah blah"; "View is: " + ssview.name + "&lt;br/&gt;" + ssview.cats[0] + ": " + ssview.selectedCat + "&lt;br/&gt;" + ssview.cats[1] + ": " + ssview.selectedSubcat; }]]&gt;&lt;/xp:this.value&gt; &lt;/xp:text&gt; &lt;xe:dataView id="dataView1" columnTitles="true"&gt; &lt;xe:this.data&gt; &lt;xp:dominoView var="view4"&gt; &lt;xp:this.viewName&gt;&lt;![CDATA[#{javascript: try{ var ssview = sessionScope.m_selectedView; if(ssview == null) return "ByClientAssignedTo"; return ssview.alias; } catch(e) { return "ByClientAssignedTo"; }}]]&gt;&lt;/xp:this.viewName&gt; &lt;xp:this.keys&gt;&lt;![CDATA[#{javascript:try{ var ssview = sessionScope.m_selectedView; if(ssview == null) return ["xxx","yyy"]; if(!ssview.selectedCat) return ["xxx"]; if(!ssview.selectedSubcat) return [ssview.selectedCat] return [ssview.selectedCat, ssview.selectedSubcat]; //return ssview.selectedCat; } catch(e) { return ["xxx","yyy"]; }}]]&gt;&lt;/xp:this.keys&gt; &lt;/xp:dominoView&gt; &lt;/xe:this.data&gt; &lt;xe:this.summaryColumn&gt; &lt;xe:viewSummaryColumn columnName="Subject" columnTitle="Subject" contentType="text"&gt; &lt;/xe:viewSummaryColumn&gt; &lt;/xe:this.summaryColumn&gt; &lt;/xe:dataView&gt; &lt;/xp:panel&gt; &lt;/xe:appPage&gt; &lt;/xe:singlePageApp&gt; </code></pre> <p>Happy coding!</p> <p>Newbs</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload