Tableau take user input to change data and dashboard - tableau-api

Is there a way to have a dashboard where a user can input data and have it dynamically change the dashboard.
For example if i had a pie chart with 4 people each owning 25 percent space. If a user were to click on this chart. A prompt should pop up and they can enter user input, in this case their name. Once they input a function will run that is sitting on a server and the pie chart will change to having 5 people each owning 20 percent space.
Is this achievable in tableau through some api call or any other way. Any references or tutorials for starting points would be greatly appreciated.

Look into dashboard extensions for this type of customization. You must be on version 2018.2 or later for these.
Starting point
3rd Party Extensions

Related

Is there a way to permanently add a box displaying points of students in the navbar

So I am working on a project that awards points to students for submitting assignments or participating in forums, these points are then exposed as an Http resource using Flask.
The points are calculated by looking at the events triggered for each student.
One of the requirements right now is to add a box next to the student's name that shows the total amount of points they have. I have two ways of accessing the points, either by an http request from moodle or by storing and retrieving the points from moodle's database.
My question is what is the best approach of creating this "box", I have tried using moodle blocks and hacking the code but nothing seems to be working. Is creating a plugin for this the only solution or is there a simpler way to do it (if it is even possible)?
To answer your question properly you should have provided at least the theme and the Moodle version you work with. Should this box be displayed everywhere? Is the score calculated for every course individually?
Two proposals that came into my mind:
You could create a custom plugin of type block. There you can display the score of the user of the session and the top ten for example (If the score is calculated for each course individually). A disadvantage is that every teacher of a course could remove that block easily, if he or she wants to.
If the score counts system-wide you could put that box at the start page of your Moodle website, where only people with higher rights will be able to remove it.
If you use boost you could display the score in the navbar right next to the users name. For that you will have to create a new child theme of boost and overwrite navbar.mustache of theme_boost which get's it's information from columns2.php because it's included into columns2.mustache. In this PHP file you can include your logic and display it with the HTML which you put into navbar.mustache.
Of course these are not really simple ways to do that. But at the moment I doubt that an easy solution exists for this problem.

How can I get the default Power BI Report Server branding zip file?

I need to change the default branding of our instance of Power BI Report Server (PBIRS). I've read a few articles on how to do this (e.g. Guy in a cube do a good video on YouTube). However, is it possible to get the current default settings?
I'd like to use the default settings as a starting point and also back them up in case I make a message of the UI.
I have seen default branding packages for SSRS but the colors are different for PBIRS.
Any ideas? Thanks.

use one visualization with multiple filters

Let's say I have a visualization that is displaying production line output over time. There are 6 production lines and I only want to display one production line on the visualization at a time. I can add a Production Line filter to accommodate this.
I want to create a dashboard view for each production line. So I want to create 6 dashboard views each with the same visualization filtered for a different value. However, I do not know how to do this without creating a copy of the visualization and dictating the exact Production Line filter.
Reasons for doing this:
I want to publish the specific dashboards and be able to embed the view into a SharePoint site (that is Production Line specific) and not require the user to filter the view each time
If I make a change to visualization, I want it to be transferred to all dashboard views for all Production Lines and do not want to make the same change to 6 visualizations.
Is this possible?
You can't do it with a dashboard. Try doing it with stories though. Create one story point for each production line. You can drop a single copy of your viz onto multiple story points, each with filters independent of each other, and any changes to the worksheet will be reflected in all six story points.
Yes it is possible. You could use a story as Sam M says, with 6 views of your dashboard each with a different filter setting,
Another choice that works in the embedded viz use case is to create a single dashboard, and apply a filter to all the worksheets on that dashboard. When using Tableau Server, you can supply the filter value as a query parameter in the URL (see the documentation)
After you test it out and are happy with the result, you can remove the filter control from the dashboard so it is no longer visible. You can still control the filter setting via the URL (or via the JavaScript API)
This allows you to adjust the viz that users see in your embedded view without making them manually select the filter setting, and also without creating six nearly identical dashboards.

Use a Google Forms to update existing Google Sheets

I'm trying to build a Google Forms that fills out certain cells of an existing Google Sheets with the responses from the Google Forms. I also need some of the answers on the Google Forms to come from the spreadsheet in a drop down style menu.
The existing spreadsheet is currently being used by an organization to have its members log some information on a weekly basis, however, some members continue to fill out the form incorrectly no matter how many times I've corrected them. For this reason I'm trying to make the process more automated.
The way the current spreadsheet is set up is that there are multiple sheets for different divisions of the organization. In each sheet there is a column dedicated to the names in that division, with a different name on each row of that column. There are also columns dedicated to specific weeks, so week 1 information is say put into Column D and E, Week 2 information in F and G, etc.
EX:
# | Name | Percent |... Week 1 .... |... Week 2 .... | ....
1 |.. Bob..| 0%..... ..| Info 1| Info 2 | Info 1| Info2..|
2 | ..Joe..| 99%......| Info1..................................
I'd like to be able to:
Make the first question of the form a drop down menu selecting the division, which would then make the rest of the questions' information based off the sheet corresponding to that division.
Second question a drop down menu to select the name. The names would be based off the names listed in the already existing name column of the spreadsheet.
A drop down menu to select the specific week they are submitting information for.
A fill in box question that they fill in with "Info 1".
A fill in box question that they fill in with "Info 2".
When submitted the form would find the correct sheet based off (1), then find the correct row based off (2), then find the correct column based off (3), then copy (4) and (5) into the corresponding cells.
Is it possible to do this? Or would I need to create a separate form for each division?
I don't have any familiarity with Google scripting, although I am experienced with C++ and have a basic working knowledge of scripting in Python.
This will be difficult to implement (but not impossible) with stock Google Forms. You can't use Google Apps Script to manipulate the display of a form in response to user actions like you can with Javascript on a form you've coded from scratch.
Google Apps Script can generate and manipulate a form in the same way you can in the Form Editor, and it can be triggered when the Form is submitted to take action with the response, but it can not interact with the user directly.
To achieve what you want you have a few options.
You could set up a multi-page Google Form with logic branches to get the forms behaviour you want, then use an Apps Script triggered onFormSubmit() to take care of moving data to the appropriate locations.
Or you can skip using stock Google Forms altogether and instead present the form using a Google Apps Script published as a web-app, which gives you full control over the form (HTML, CSS & Javascript) displayed to the user, but you do not get to leverage any of the Google Form features. You could render the form with doGet() and process the submission with doPost().
A third approach would be a hybrid of the two, set up several individual Google Forms, and use an Apps Script published as a Web App to display the first drop down and direct the user to the appropriate form. You could then have scripts triggered onFormSubmit() of each of the Google Forms to handle moving your data around.
See the following:
https://developers.google.com/apps-script/guides/triggers/events#google_forms_events
https://developers.google.com/apps-script/guides/web#deploying_a_script_as_a_web_app
https://developers.google.com/apps-script/guides/html/

Get Drill down URL from FusionCharts events

I'm working with FusionCharts (specifically a column chart). The chart is created from a rest endpoint that outputs chart xml. The endpoint also encodes xml-urls into the chart for drill-down. I want to capture these urls in order to change the contents of the surrounding form (to make it appear the parameters chosen generated that chart).
The problem I'm running into is that the BeforeLinkedItemOpen and LinkedItemOpened events do not contain the url the chart is pulling its xml from.
The LinkedChartInvoked event does contain this information - its just only called navigating the first level of the drill-down.
I have five levels of drill-down, so that won't work. Anyone know of a way to get the information I'm looking for?
I never did find an answer for this. It appears that FusionCharts simply does not report this information and I could not do what I was trying to do.