<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/jive/rss" version="2.0">
  <channel>
    <title>Content in Tableau Community Forums</title>
    <link>/profile-content.jspa?filterID=contentstatus[published]&amp;targetUser=25419</link>
    <description>Recent content in Tableau Community Forums</description>
    <language>en</language>
    <pubDate>Mon, 20 Nov 2017 18:48:56 GMT</pubDate>
    <generator>Jive Engage 8.0.5.0  (http://jivesoftware.com/products/)</generator>
    <dc:date>2017-11-20T18:48:56Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>marksselection event is empty when selecting main column</title>
      <link>https://community.tableau.com/thread/129347</link>
      <description>&lt;!-- [DocumentBodyStart:8a6846d0-658a-4528-8bcd-17345649101b] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Hi there,&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I'm working on a web project with Tableau which - among other things - displays a tabulated list view of a series of companies with various vital statistics (turnover, profit and so on). Part of the plan is to turn the firm names into 'links' that will pull in an overlay div with a bunch of extra information on that particular company.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Using the tableau API for this has caused me some problems however - because while clicking on a numerical data point returns a promise which returns an object with the relevant fieldnames and values, clicking on the main column of firm names only returns an empty promise. I know that a click has been made, and on that column (because it's empty), but not which firm, and thus not which data to pull into the page.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I have got around this rather inelegantly, by adding a dummy worksheet to my dashboards and using the main table worksheet as a filter to the dummy, thus triggering a filter change event that DOES contain the field/value pair I need. This adds an extra async call to the program, however, which slows everything down, so I'd rather do it directly if possible.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Is there any way to set up the workbook so the API will get the firm name alright - or am I just being dumb, and there &lt;em&gt;is &lt;/em&gt;a way to get at this stuff through the API as is?&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:8a6846d0-658a-4528-8bcd-17345649101b] --&gt;</description>
      <category domain="https://community.tableau.com/tags#/?containerType=14&amp;container=2003">javascript</category>
      <category domain="https://community.tableau.com/tags#/?containerType=14&amp;container=2003">api</category>
      <pubDate>Mon, 20 Nov 2017 18:48:56 GMT</pubDate>
      <author>tableaucommunity@tableau.com</author>
      <guid>https://community.tableau.com/thread/129347</guid>
      <dc:date>2017-11-20T18:48:56Z</dc:date>
      <clearspace:dateToText>1 year 7 months ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>TypeError: $0['api.ignoreDomain'] is undefined</title>
      <link>https://community.tableau.com/thread/135634</link>
      <description>&lt;!-- [DocumentBodyStart:2d4ff71d-89b1-450d-943d-e98d055901f8] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Hi all,&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I'm using the Javascript API (v8) to present datasets on the web. Part of the functionality is that clicking on a firm's name in a table will bring up a sort of pop-under type thing with relevant details on that particular firm (the details are pulled in with an Ajax call to another data source).&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p class=" "&gt;I'm getting this error: TypeError: $0['api.ignoreDomain'] is undefined&amp;#160; at vqlweb.js (line 1293).&lt;/p&gt;&lt;p class=" " style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;!--[CodeBlockStart:aa2f10ec-d277-4c3c-a005-64b6b23cc22f][excluded]--&gt;&lt;pre class="javascript" name="code"&gt;onSelection = function(marksEvent) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (!window.location.hash || (thisPage.current.getName() === window.location.hash.split('#')[1] + 'db')) { 
&amp;#160;&amp;#160;&amp;#160; return marksEvent.getMarksAsync().then(function(marks) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var dummySheet, sheet, sheets, _i, _len;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (marks[0] === !void 0) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return null;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } else {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sheets = viz.getWorkbook().getActiveSheet().getWorksheets();
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (_i = 0, _len = sheets.length; _i &amp;lt; _len; _i++) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; sheet = sheets[_i];
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (sheet.getName() === "dummy") {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dummySheet = sheet;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return dummySheet.getFiltersAsync().then(function(filters) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var ajaxResponse, detail, filter, firmFilter, firmName, _j, _len1;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; for (_j = 0, _len1 = filters.length; _j &amp;lt; _len1; _j++) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; filter = filters[_j];
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (filter.getAppliedValues().length === 1) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; firmFilter = filter;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (firmFilter.getAppliedValues().length &amp;lt; 2) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; firmName = firmFilter.getAppliedValues()[0]['formattedValue'];
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if ((firmName !== "Null") &amp;amp;&amp;amp; (firmName !== "Nulo")) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ajaxResponse = $.ajax('http://url.redacted.com/foo.php?firm=' + encodeURIComponent(firmName.replace('*', '')), {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; async: false,
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dataType: 'jsonp',
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; contentType: 'application/json'
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }).done(function(data, status, jqxhr) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; detail = new Detail(new Firm(data), thisPage.viz, detailViz, firmDetail, glossary);
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return detail.openDetail(detailPlaceholders, firmDetailLinkToChart);
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; });
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; });
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160; });
&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160; };
&lt;/pre&gt;&lt;!--[CodeBlockEnd:aa2f10ec-d277-4c3c-a005-64b6b23cc22f]--&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;This is, clearly enough, horrible spaghetti code. It was, however,. &lt;em&gt;working &lt;/em&gt;horrible spaghetti code on Friday (and possibly most of today). It is now mysteriously broken.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;I have seriously no idea how to proceed on this.&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;UPDATE:&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;The error appears to be&amp;#160; generated by Worksheet.getFiltersAsync()&lt;/p&gt;&lt;p style="min-height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Any help on this would be much appreciated.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:2d4ff71d-89b1-450d-943d-e98d055901f8] --&gt;</description>
      <category domain="https://community.tableau.com/tags#/?containerType=14&amp;container=2003">javascript</category>
      <category domain="https://community.tableau.com/tags#/?containerType=14&amp;container=2003">javascriptapi</category>
      <pubDate>Fri, 02 May 2014 00:28:20 GMT</pubDate>
      <author>tableaucommunity@tableau.com</author>
      <guid>https://community.tableau.com/thread/135634</guid>
      <dc:date>2014-05-02T00:28:20Z</dc:date>
      <clearspace:dateToText>5 years 2 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
  </channel>
</rss>

