Not really. You could get creative with images though. For example, I have a page in Domo where an image in the top left of the page changes depending on what product is selected. You could do the same and have a dynamic image that changes based on which user logs in.
Is there a way to have special Brands based off the group or email people have?

Hi all,
I work with a larger company that currently have 8-10 smaller companies using DOMO for reporting. My colleagues and I typically create a copy of Dashboards and now some App Studios for when we bring get a new company onto DOMO.
Basically, is there a way to make an entire App/ Dashboard PDP, not just based on the data? I want to change the colors and images based on their group or email associated with that individual.
Best Answers
-
Not really. You could get creative with images though. For example, I have a page in Domo where an image in the top left of the page changes depending on what product is selected. You could do the same and have a dynamic image that changes based on which user logs in.
If I solved your problem, please select "yes" above
0 -
I used a DDX brick + a webform. This is the DDX brick I am using:
For your webform, you'll also want a column with values that can correspond to a PDP policy.
My Webform:
DDX Brick code:
Javascript:
- var domo = window.domo;
- var datasets = window.datasets;
- var myDataTable = document.getElementById('myDataTable');
- // Data Column Names
- var dataColumnName = 'Image URL';
- // Form the data query
- var select = [dataColumnName];
- var query = `/data/v1/${datasets[0]}?select=${select.join()}
- &filter='Image URL'!=null`;
- // Get the data and build table
- domo.get(query, {format: 'array-of-arrays'}).then(buildTableGrid);
- function buildTableGrid(data){
- // var max = 0, min = 0, total = 0;
- var totalTableHeaders = [data.columns[0]];
- var totalTable = [];
- data.rows.forEach(function(row, index){
- totalTable.push([row[0]])
- });
- buildTable(myDataTable,
- totalTableHeaders,
- totalTable);
- }
- function buildTable(tableEl, headers, data){
- // Build header row
- var thead = tableEl.appendChild(document.createElement('thead'));
- var headerRow = thead.appendChild(document.createElement('tr'));
- headers.forEach(function(h){
- var th = headerRow.appendChild(document.createElement('th'));
- th.innerText = h;
- });
- // Add table data rows
- var tbody = tableEl.appendChild(document.createElement('tbody'));
- var fragment = document.createDocumentFragment();
- data.forEach(function(row){
- fragment.append(getRow(row));
- });
- tbody.appendChild(fragment);
- }
- function getRow(rowData){
- var rowEl = document.createElement('tr');
- rowData.forEach(function(d){
- debugger
- var td = rowEl.appendChild(document.createElement('td'));
- td.innerHTML = d;
- });
- return rowEl;
- }
HTML:
- <link href="//fonts.googleapis.com/css?family=Roboto+Mono:300" rel="stylesheet" type="text/css">
- <table id="myDataTable"></table>
CSS:
- body{
- font-size: 14px;
- }
- table {
- border-collapse: collapse;
- }
- .column_heading {
- height:0px;
- }
- th {
- background-color: transparent;
- border: transparent;
- text-align: left;
- padding: 0px;
- color: #333;
- border-top: 0px;
- }
- .form-matrix-row-headers {
- display : none !important;
- }
- th:nth-child(1){
- display: none;
- }
- table tr th {
- border: transparent;
- border-top: none;
- border-bottom: none;
- }
- th:first-child {
- visibility:hidden;
- padding: none;
- border-collapse: collapse;
- }
- td {
- border: transparent;
- padding: none;
- width: 1500px;
- font-family: "Arial", monospace;
- font-weight: 300;
- color: #333;
- text-align: left;
- }
- tr:nth-child(odd) td {
- background-color: transparent;
- }
- #myStatsTable{
- float: left;
- margin-right: 20px;
- }
Final result:
If I solved your problem, please select "yes" above
2
Answers
-
Not really. You could get creative with images though. For example, I have a page in Domo where an image in the top left of the page changes depending on what product is selected. You could do the same and have a dynamic image that changes based on which user logs in.
If I solved your problem, please select "yes" above
0 -
Interesting, how exactly would that work?
0 -
I used a DDX brick + a webform. This is the DDX brick I am using:
For your webform, you'll also want a column with values that can correspond to a PDP policy.
My Webform:
DDX Brick code:
Javascript:
- var domo = window.domo;
- var datasets = window.datasets;
- var myDataTable = document.getElementById('myDataTable');
- // Data Column Names
- var dataColumnName = 'Image URL';
- // Form the data query
- var select = [dataColumnName];
- var query = `/data/v1/${datasets[0]}?select=${select.join()}
- &filter='Image URL'!=null`;
- // Get the data and build table
- domo.get(query, {format: 'array-of-arrays'}).then(buildTableGrid);
- function buildTableGrid(data){
- // var max = 0, min = 0, total = 0;
- var totalTableHeaders = [data.columns[0]];
- var totalTable = [];
- data.rows.forEach(function(row, index){
- totalTable.push([row[0]])
- });
- buildTable(myDataTable,
- totalTableHeaders,
- totalTable);
- }
- function buildTable(tableEl, headers, data){
- // Build header row
- var thead = tableEl.appendChild(document.createElement('thead'));
- var headerRow = thead.appendChild(document.createElement('tr'));
- headers.forEach(function(h){
- var th = headerRow.appendChild(document.createElement('th'));
- th.innerText = h;
- });
- // Add table data rows
- var tbody = tableEl.appendChild(document.createElement('tbody'));
- var fragment = document.createDocumentFragment();
- data.forEach(function(row){
- fragment.append(getRow(row));
- });
- tbody.appendChild(fragment);
- }
- function getRow(rowData){
- var rowEl = document.createElement('tr');
- rowData.forEach(function(d){
- debugger
- var td = rowEl.appendChild(document.createElement('td'));
- td.innerHTML = d;
- });
- return rowEl;
- }
HTML:
- <link href="//fonts.googleapis.com/css?family=Roboto+Mono:300" rel="stylesheet" type="text/css">
- <table id="myDataTable"></table>
CSS:
- body{
- font-size: 14px;
- }
- table {
- border-collapse: collapse;
- }
- .column_heading {
- height:0px;
- }
- th {
- background-color: transparent;
- border: transparent;
- text-align: left;
- padding: 0px;
- color: #333;
- border-top: 0px;
- }
- .form-matrix-row-headers {
- display : none !important;
- }
- th:nth-child(1){
- display: none;
- }
- table tr th {
- border: transparent;
- border-top: none;
- border-bottom: none;
- }
- th:first-child {
- visibility:hidden;
- padding: none;
- border-collapse: collapse;
- }
- td {
- border: transparent;
- padding: none;
- width: 1500px;
- font-family: "Arial", monospace;
- font-weight: 300;
- color: #333;
- text-align: left;
- }
- tr:nth-child(odd) td {
- background-color: transparent;
- }
- #myStatsTable{
- float: left;
- margin-right: 20px;
- }
Final result:
If I solved your problem, please select "yes" above
2
Categories
- All Categories
- 2K Product Ideas
- 2K Ideas Exchange
- 1.6K Connect
- 1.3K Connectors
- 311 Workbench
- 7 Cloud Amplifier
- 9 Federated
- 3K Transform
- 114 SQL DataFlows
- 654 Datasets
- 2.2K Magic ETL
- 4.1K Visualize
- 2.5K Charting
- 803 Beast Mode
- 79 App Studio
- 44 Variables
- 758 Automate
- 188 Apps
- 480 APIs & Domo Developer
- 73 Workflows
- 17 DomoAI
- 40 Predict
- 17 Jupyter Workspaces
- 23 R & Python Tiles
- 408 Distribute
- 119 Domo Everywhere
- 279 Scheduled Reports
- 10 Software Integrations
- 141 Manage
- 137 Governance & Security
- 8 Domo Community Gallery
- 47 Product Releases
- 12 Domo University
- 5.4K Community Forums
- 41 Getting Started
- 31 Community Member Introductions
- 114 Community Announcements
- 4.8K Archive