<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: tabs inside popup in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442505#M40853</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks, Ken. I knew we'd covered this in the past :).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 17 Apr 2012 15:27:18 GMT</pubDate>
    <dc:creator>derekswingley1</dc:creator>
    <dc:date>2012-04-17T15:27:18Z</dc:date>
    <item>
      <title>tabs inside popup</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442503#M40851</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;when replacing the map's default infoWindow with the popup class, how do you insert .tabContainer - with 2 (tabs) ContentPanes?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="plain" name="code"&gt;
map.infoWindow.setContent(getWindowContent(secondTabContent,evtObj.graphic))

function getWindowContent(secondTabContent,graphic){
&amp;nbsp;&amp;nbsp;&amp;nbsp; //make a tab container
&amp;nbsp;&amp;nbsp;&amp;nbsp; var infoTabCont = new dijit.layout.TabContainer({
 style: "width: 100%;height:100%;background-color:transparent;"
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, dojo.create("div", {doLayout:"false" }));
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
 //display attribute info in first tab
 var cp1 = new dijit.layout.ContentPane({
&amp;nbsp; style: "background-color:transparent;color:White;",
&amp;nbsp; title: "Details",
&amp;nbsp; content: "FacID: " + graphic.attributes.site_code + "&amp;lt;br /&amp;gt; Fac Name: " + graphic.attributes.facil_name
 })
&amp;nbsp; 
 //create 2nd tab for future related info
 var cp2 = new dijit.layout.ContentPane({
&amp;nbsp; style: "background-color:transparent;color:white;overflow:auto;",
&amp;nbsp; title: "Cmd Structure",
&amp;nbsp; content: str
 })
&amp;nbsp; 
 //add the content panes to the tab container
 infoTabCont.addChild(cp1);
 infoTabCont.addChild(cp2);
 return infoTabCont.domNode;
}&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the above results in something like the attached&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Apr 2012 21:15:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442503#M40851</guid>
      <dc:creator>danbecker</dc:creator>
      <dc:date>2012-04-16T21:15:00Z</dc:date>
    </item>
    <item>
      <title>Re: tabs inside popup</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442504#M40852</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Take a look at this &lt;/SPAN&gt;&lt;A href="http://gis.stackexchange.com/questions/12321/identify-all-layers-on-the-map-without-pre-designing-the-infowindow"&gt;post&lt;/A&gt;&lt;SPAN&gt; over in GIS.StackExchange and Derek Swingley's response.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 12:21:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442504#M40852</guid>
      <dc:creator>KenBuja</dc:creator>
      <dc:date>2012-04-17T12:21:52Z</dc:date>
    </item>
    <item>
      <title>Re: tabs inside popup</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442505#M40853</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks, Ken. I knew we'd covered this in the past :).&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 15:27:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442505#M40853</guid>
      <dc:creator>derekswingley1</dc:creator>
      <dc:date>2012-04-17T15:27:18Z</dc:date>
    </item>
    <item>
      <title>Re: tabs inside popup</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442506#M40854</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;my problem is kind of complex (for me atleast)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I Have 5 different feature layers added to the map, 2 point, 3 poly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;At full scale, I'd like user's to be able click over a point and have an infoWindow display the attributes, but due to scale, they will likely select 5 total points (example):&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2 pts on featlayer1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3 pts on featlayer2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(we wont' get into the poly featlayers for now)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I opt to use the built-in map.infoWindow I can use tabs to display featlayer1 &amp;amp; featlayer2 and their respective features, like so:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;featlayer1 - Tab&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;---Table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------Row1 - graphic.attributes.field1, graphic.attributes.field3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------Row2 - graphic.attributes.field1, graphic.attributes.field3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;featlayer2 - Tab&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;---Table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------Row1 - graphic.attributes.field1, graphic.attributes.field8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------Row2 - graphic.attributes.field1, graphic.attributes.field8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;------Row2 - graphic.attributes.field1, graphic.attributes.field8&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is this a workaround for native map.infoWindow not being able to display an array of esri.tasks.IdentifyTask results??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;My other option is to replace the map.infoWindow with the popup class, which would then accept an array of esri.tasks.IdentifyTask results?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Apr 2012 16:18:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442506#M40854</guid>
      <dc:creator>danbecker</dc:creator>
      <dc:date>2012-04-17T16:18:44Z</dc:date>
    </item>
    <item>
      <title>Re: tabs inside popup</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442507#M40855</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;maybe this is easier, but still related to my popup question...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I click select a feature, then query 3 different related tables for info and combine into an array of objects called data.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could someone help me get data out of the following function? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;return {data:data}; //doesn't work&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
function findRelatedRecords(features,evtObj){&amp;nbsp; 
 var selFeat = features
 var featObjId = selFeat[0].attributes.OBJECTID_1&amp;nbsp; 
 var relatedBranch = new esri.tasks.RelationshipQuery();
 relatedBranch.outFields = ["*"];
 relatedBranch.relationshipId = 1; //fac -to- Branch
 relatedBranch.objectIds = [featObjId];
 facSel.queryRelatedFeatures(relatedBranch, function(relatedBranches) {
&amp;nbsp; var branchFound = false;
&amp;nbsp; if(relatedBranches.hasOwnProperty(featObjId) == true){
&amp;nbsp;&amp;nbsp; branchFound = true;
&amp;nbsp;&amp;nbsp; var branchSet = relatedBranches[featObjId]
&amp;nbsp;&amp;nbsp; var cmdBranch = dojo.map(branchSet.features, function(feature){
&amp;nbsp;&amp;nbsp;&amp;nbsp; return feature.attributes;
&amp;nbsp;&amp;nbsp; })
&amp;nbsp; }
&amp;nbsp;&amp;nbsp; 
&amp;nbsp; //regardless of whether a branch is found or not, we have to run the cmdMain relationship query
&amp;nbsp; //the parent is still fac, no advantage of the parent being branch since cmcMain query has to be run regardless
&amp;nbsp; //fac - branch - cmdMain - cmdSub &amp;lt;--sometimes
&amp;nbsp; //fac - cmdMain - cmdSub &amp;lt;-- sometimes&amp;nbsp;&amp;nbsp; 
&amp;nbsp; var relatedQuery = new esri.tasks.RelationshipQuery();
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; relatedQuery.outFields = ["*"];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; relatedQuery.relationshipId = 0; //fac -to- cmdMain
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; relatedQuery.objectIds = [featObjId];
&amp;nbsp; //rather then listen for "OnSelectionComplete" we are using the queryRelatedFeatures callback function
&amp;nbsp; facSel.queryRelatedFeatures(relatedQuery, function(relatedRecords) {
&amp;nbsp;&amp;nbsp; var data = []&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; //if any cmdMain records were found, relatedRecords object will have a property = to the OBJECTID of the clicked feature
&amp;nbsp;&amp;nbsp; //i.e. if cmdMain records are found, true will be returned; and continue with finding cmdSub records
&amp;nbsp;&amp;nbsp; if(relatedRecords.hasOwnProperty(featObjId) == true){
&amp;nbsp;&amp;nbsp;&amp;nbsp; var fset = relatedRecords[featObjId]
&amp;nbsp;&amp;nbsp;&amp;nbsp; var cmdMain = dojo.map(fset.features, function(feature) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return feature.attributes;
&amp;nbsp;&amp;nbsp;&amp;nbsp; })
&amp;nbsp;&amp;nbsp;&amp;nbsp; //we need to fill an array with the objectids of the returned cmdMain records
&amp;nbsp;&amp;nbsp;&amp;nbsp; //the length of this list == total number of mainCmd records returned for the clicked facility
&amp;nbsp;&amp;nbsp;&amp;nbsp; objs = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var k in cmdMain){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var o = cmdMain&lt;K&gt;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objs.push(o.OBJECTID)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; //second relationship query to find records related to cmdMain (cmdSub)
&amp;nbsp;&amp;nbsp;&amp;nbsp; var subQuery = new esri.tasks.RelationshipQuery();
&amp;nbsp;&amp;nbsp;&amp;nbsp; subQuery.outFields = ["*"];
&amp;nbsp;&amp;nbsp;&amp;nbsp; subQuery.relationshipId = 2;
&amp;nbsp;&amp;nbsp;&amp;nbsp; subQuery.objectIds = [objs]
&amp;nbsp;&amp;nbsp;&amp;nbsp; subTbl.queryRelatedFeatures(subQuery)
&amp;nbsp;&amp;nbsp;&amp;nbsp; //when the cmdMain to cmdSub query gets finished fire this function
&amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.connect(subTbl,"onQueryRelatedFeaturesComplete",function (subRecords){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //subRecords is an object where each property is the objectid of a cmdMain record
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if a cmdRecord objectid is present in subRecords property, cmdMain has sub records
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //we no longer need these objectids, so we'll remove them and put the array into cmdsub
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var cmdSub = []
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (id in subRecords){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dojo.forEach(subRecords[id].features, function(rec){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmdSub.push(rec.attributes)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; })
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var j = cmdSub.length;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var p;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var sub_key;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var obj;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (branchFound == true){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var p1 = "branch";
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj1 = {};
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj1[p1] = [cmdBranch[0].Branches]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data.push(obj1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i=0, iLen = cmdMain.length; i&amp;lt;iLen; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = cmdMain&lt;I&gt;.ASGMT_Name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj = {};
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj
 = [];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sub_key = cmdMain&lt;I&gt;.sub_key;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var j=0, jLen=cmdSub.length; j&amp;lt;jLen; j++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (cmdSub&lt;J&gt;.sub_key == sub_key) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; obj&lt;/J&gt;&lt;/I&gt;
.push(cmdSub&lt;J&gt;.Long_Name);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data.push(obj);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //showWin(data,evtObj)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return {data:data};
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; })
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; //no returned cmdRecords; cmdData not available
&amp;nbsp;&amp;nbsp; else{
&amp;nbsp;&amp;nbsp;&amp;nbsp; p = "No Data Available"
&amp;nbsp;&amp;nbsp;&amp;nbsp; obj = {}
&amp;nbsp;&amp;nbsp;&amp;nbsp; obj&lt;/J&gt;
 = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; data.push(obj)
&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp; //showWin(data,evtObj)
&amp;nbsp;&amp;nbsp; return {data:data};
&amp;nbsp; })
 })
}
function newFunc (){
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var dataArray = findRelatedRecords(feat,evt)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log(dataArray) //would like to access data array here??
}

&lt;/I&gt;&lt;/K&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 19:47:38 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/tabs-inside-popup/m-p/442507#M40855</guid>
      <dc:creator>danbecker</dc:creator>
      <dc:date>2021-12-11T19:47:38Z</dc:date>
    </item>
  </channel>
</rss>

