How do I remove "Remember my changes" on tableau toolbar? - tableau-api

I managed to remove "share" functionality using serverside script
using
tabadmin set vizqlserver.showshare false
Manual:
http://downloads.tableausoftware.com/quickstart/server-guides/en-us/server_admin7.0.pdf

:customViews=n on your URL or
<parameter name="customViews" value="n" />
in your object definition will also get you there without having to turn things off globally.

Related

Excel Add-in for custom ribbon tab to include controls from MSIP.ExcelAddin

I'm trying to build an Excel add-in too distribute a company specific tab for the Ribbon.
In the ribbon I want to include the Sensitivity-control from office365 Sensitivity app (MSIP.ExcelAddin). It seems like this come both as a regular MS add-in, with mso-controls, and as a 3rd party add-in, with x1-controls.
I can successfully build and distribute a custom ribbon using the built in Ribbon-customizer, *.exportedUI file, I can user either the group or the control from of the 3rd party add-in.
The MSO-version doesn't works, that is also the case in the original Home-tab.
<mso:cmd app="Excel" dt="0"/>
<mso:customUI xmlns:x1="MSIP.ExcelAddin" xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
<mso:ribbon>
<mso:tabs>
<mso:tab id="mso_c1.CD9101F" label="3rd Party Tab" insertBeforeQ="mso:TabInsert">
<mso:group idQ="x1:adxRibbonGroup_f46a9e941d544d01ad8b43917c503243"/>
<mso:group id="mso_c2.CD9101F" label="My Group" autoScale="true">
<mso:control idQ="x1:adxRibbonMenu_b0e02808fb2f409f90503955cef756aa" visible="true"/>
</mso:group>
</mso:tab>
<mso:tab id="mso_c3.CD96023" label="MSO Tab" insertBeforeQ="mso:TabInsert">
<mso:group idQ="mso:GroupClassifyLabelProtect"/>
<mso:group id="mso_c4.CD96033" label="My Group" autoScale="true">
<mso:control idQ="mso:ClassifyLabelProtect" visible="true"/>
</mso:group>
</mso:tab>
</mso:tabs>
</mso:ribbon>
</mso:customUI>
However, when doing the same in my add-in project i can't get it to work.
<customUI xmlns:x1="MSIP.ExcelAddin" xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="mso_c1.CD9101F" label="3rd Party Tab" insertBeforeMso="TabInsert">
<group idQ="x1:adxRibbonGroup_f46a9e941d544d01ad8b43917c503243"/>
<group id="mso_c2.CD9101F" label="My Group" autoScale="true">
<control idQ="x1:adxRibbonMenu_b0e02808fb2f409f90503955cef756aa" visible="true"/>
</group>
</tab>
<tab id="mso_c3.CD96023" label="MSO Tab" insertBeforeMso="TabInsert">
<group idMso="GroupClassifyLabelProtect"/>
<group id="mso_c4.CD96033" label="My Group" autoScale="true">
<control idMso="ClassifyLabelProtect" visible="true"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
In the first Tab, holding the 3rd Party Controls I get an empty tab.
The second Tab shows only the single and inactive control in My Group.
Do I do something wrong when defining or referencing the namespace for the 3rd party add-in?
You can place your custom ribbon UI into a custom tab or group by specifying the namespace. The key is specifying the same unique namespace in the <customUI> tag. Then, controls can reference this namespace by using idQ. The idQ property of controls exists to enable multiple add-ins to share containers, such as custom tabs and groups, but not placing custom controls from other add-ins into yours.
BTW Do you get any UI errors in the Office application?
By default, if an add-in attempts to manipulate the Microsoft Office user interface (UI) and fails, no error message is displayed. However, you can configure Microsoft Office applications to display messages for errors that relate to the UI. You can use these messages to help determine why a custom ribbon does not appear, or why a ribbon appears but no controls appear. Read more about that in the How to: Show Add-in user interface errors article.

Add a owner of a community with IBM connections Cloud API

With the API of Connections community we can add member as described in this URL :
https://www-10.lotus.com/ldd/appdevwiki.nsf/xpAPIViewer.xsp?lookupName=API+Reference#action=openDocument&res_title=Adding_a_member_programmatically&content=apicontent
I try to add a owner not a member in a community but he always become a member even if I am posting this informations for the user :
<entry xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:snx="http://www.ibm.com/xmlns/prod/sn">
<contributor>
<email>michel.nico#connelink.fr</email>
<snx:userid xmlns:snx="http://www.ibm.com/xmlns/prod/sn">My user ID</snx:userid>
<snx:userState xmlns:snx="http://www.ibm.com/xmlns/prod/sn">active</snx:userState>
<snx:isExternal xmlns:snx="http://www.ibm.com/xmlns/prod/sn">false</snx:isExternal>
<name>Michel NICO</name>
</contributor>
<snx:role xmlns:snx="http://www.ibm.com/xmlns/prod/sn" component="http://www.ibm.com/xmlns/prod/sn/communities">owner</snx:role>
<category term="business-owner" scheme="http://www.ibm.com/xmlns/prod/sn/type"></category>
<category term="person" scheme="http://www.ibm.com/xmlns/prod/sn/type"> </category>
<snx:orgId xmlns:snx="http://www.ibm.com/xmlns/prod/sn">The ID of our cloud</snx:orgId>
</entry>
It always create me as a member and not as an owner.
How can we create a user with the owner role in a community ?
Suport send a response to me :
No need to add so many field to add a person :
<entry xmlns="http://www.w3.org/2005/Atom">
<contributor>
<email>mailadress</email>
</contributor>
<snx:role xmlns:snx="http://www.ibm.com/xmlns/prod/sn" component="http://www.ibm.com/xmlns/prod/sn/communities">owner</snx:role>
</entry>
is enouth to create a person.
But I try to add me as a owner of a community that was the problem : when the admin account try to add him, he can be member only. When you try to add someone else, you can add him as an owner.
This limitation was not described in the documentation.
Now it works
It looks good, but I think the term=person item is for activities and not communities, at least that what the docs show. You might remove that and see what happens. I have a feeling it's overriding the owner role you're trying to set.

How to automatically load a report on home page after logged in Jasper Server Community

In Jasper Server Community Edition, I want to load a report automatically without clicking on any report when I logging. I tried to add below code to home.jsp page as jasperSoft documentation says.but it is not working.
Please help me with this.
Code that I added to home.jsp :-
<%
<authz:authorize ifAllGranted="ROLE_REPORT_HOME">
<c:redirect
url="http://localhost:8080/jasperserver/flow.html?_flowId=viewReportFlow&_flowId=viewReportFlow&ParentFolderUri=%2Freports&reportUnit=%2Freports%2FSample_Dash_Report&standAlone=true"/>
</authz:authorize>
%>
Please make sure to follow all the steps in the tutorial, as you probably missed to add user role to the user you want. Also, make sure to have sample data as you're referencing report from sample data.
Setting a report as the home page:
The following example shows how to set a report as the home page based on a role. This example uses the 01. Geographic Results by Segment Report.
First, set up the role and create a sample user:
a. Create the role you want to use, for example, ROLE_REPORT_HOME.
b. Create a user HomeUser and add ROLE_REPORT_HOME to HomeUser.
Open the file \WEB-INF\jsp\modules\home\home.jsp in an editor and add the following lines:
<authz:authorize ifAllGranted="ROLE_REPORT_HOME">
<c:redirecturl="http://localhost:8080/jasperserver-pro-601/flow.html?_flowId=viewReportFlow&standAlone=true&_flowId=viewReportFlow&ParentFolderUri=%2Fpublic%2FSamples%2FReports&reportUnit=%2Fpublic%2FSamples%2FReports%2F01._Geographic_Results_by_Segment_Report"/>
</authz:authorize>
To find the URI for the report you want to use, open the report in the repository and copy the URI.
Save the modified file and restart the application server to see changes.
Log into JasperReports Server as HomeUser. The library page is displayed.
Go to Jasper server installation directory and search for jasperserver-servlet.xml (C:\Jaspersoft\jasperreports-server-cp-6.4.2\apache-tomcat\webapps\jasperserver\WEB-INF\jasperserver-servlet.xml)
Under bean id = "homePageByRole" we have to make changes. For that, search homePageByRole word inside the jasperserver-servlet.xml file.
Under tag ,we can give a report link we need according to the user roles. But make sure you should add amp; as after each & mark. Otherwise it will give an error!
Example:-
Original report link from the address bar in browser when report opened using jasper server is;
http://localhost:8080/jasperserver/flow.html?_flowId=viewReportFlow&_flowId=viewReportFlow&ParentFolderUri=%2FMy_Reports&reportUnit=%2FMy_Reports%2FDashboard_Report_Landscape&standAlone=true
But the link we should put under is;
ROLE_USER|redirect:/flow.html?_flowId=viewReportFlow&_flowId=viewReportFlow&ParentFolderUri=%2FMy_Reports&reportUnit=%2FMy_Reports%2FDashboard_Report_Landscape&standAlone=true
check how we add as amp; after every & mark. Also we can set user role. In my case I set user role as ROLE_USER.
Whole code snippet is;
<bean id="homePageByRole" class="java.util.ArrayList">
<constructor-arg index="0" type="java.util.Collection">
<list>
<value>ROLE_ADMINISTRATOR|redirect:/flow.html?_flowId=searchFlow</value>
<value>ROLE_USER|redirect:/flow.html?_flowId=viewReportFlow&_flowId=viewReportFlow&ParentFolderUri=%2FMy_Reports&reportUnit=%2FMy_Reports%2FDashboard_Report_Landscape&standAlone=true</value>
</list>
</constructor-arg>
</bean>

What is the proper way to integrate server-side code with IBM's dialog api?

I want to integrate my web application with IBM's dialog api. Basically, I want to sometimes send the pure text result from the IBM dialog API, as I set it up in the XML, and other times, such as when the user wants a dynamic response, which might involve me querying a database to find an account balance, for example. My current thought is to include some sort of syntax in my dialog XML which I can parse to know if the response from the conversation requires me to change it. I was thinking of something like:
<input>
<grammar>
<item>What is my account balance?</item>
</grammar>
<output>
<prompt selectionType="RANDOM">
<item>{ACTION_GETBALANCE}</item>
</prompt>
</output>
</input>
So if I got a response like {ACTION_***} I would take my own action. Is this an appropriate way of doing this? Is there another way which might be better?
This is indeed the recommended method
see for example line 1358 on the movie application demo dialog file provided on WDC git repo
<prompt selectionType="RANDOM">
<item>"{Search_Now:"{Search_Now}", Recency:"{Recency_Preference}", Rating:"{Certification_Preference}", Genre:"{Genre_Preference}", Index:"{Current_Index}", Page:"{Page}"}"</item>
</prompt>

How to configure "accept Terms and Conditions" on Keycloak registration page

I use Keycloak 1.7.0-Final. The user must agree with Term and Conditions at registration.
I enabled "Terms and Conditions" in Authentication > Required actions, But nothing is shown on the registration page.
Also, I cannot find where to configure specific Terms and Condition files for each language.
Could you help?
Thank you.
By default existing users cannot have this page. You need to configure "Terms and Conditions" as "Default Action", then this will be applied by default for all new users.
For existing users, you need to put it manually unser "Users" > "Required actions".
Dont forget to customize the terms page under //themes/base/login/terms.ftl
You will see terms and conditions once the user has filled in the registration form and submits registration. You will have to override the terms.ftl (build your own theme) page if you want it customized and add your own messages locale - see Keycloak Docs - Themes ...
Enable terms and conditions
Regularly you must enable "Terms and Conditions" in Authentication > Required Actions as Enabled and Default Action. By default, this will show a dedicated page after the registration form page, using the template terms.ftl.
Using a checkbox for accepting terms and conditions in the registration page
For this purpose you must specify terms and conditions as Enabled, but not a Default Action. Otherwise you will see the dedicated page using terms.ftl. The problem here is that Keycloak has not a way to enable a checkbox to accept the terms and conditions in the registration page.
Nonetheless, doing a little of reverse engineering I found that when you accept the conditions the user will have an attribute called terms_and_conditions:
In order to reproduce this, you just need to create a custom attribute, named terms_and_conditions, with a numeric value, that seems to be the current time (Date.now()). Being that said, you need an HTML like:
<form>
<!-- other inputs -->
<div>
<input
type="checkbox"
id="terms"
name="user.attributes.terms_and_conditions"
value="<generated value, e.g. 1668029792010>" />
<label for="terms">I accept the terms and conditions</label>
</div>
<div>
<button type="submit">Create user</button>
</div>
</form>
This approach should also be valid if you create that user using the API.
i18n
If your are using a checkbox in the registration page, you can use the standard internationalisation strategy: using the messages properties files. It would probably have a link that reference the content of the "terms and conditions" in the current language. To get the lang code to construct the URL use ${locale.currentLanguageTag}.
Show a page for each language
On the other hand, if you want to use the typical Keycloak strategy using terms.ftl, then you must use the same layout as always and the text will change using the internationalisation.
But if the content of the terms and conditions is very long, then it should be better to create pages for each language, e.g. terms-en.ftl, terms-fr.ftl, etc. These ftl files will only contain the content in the corresponding language and they will be loaded using a code like:
<#include "terms-fr.ftl" />
e.g.
<#if (locale.currentLanguageTag!"en") == "en">
<#include "terms-en.ftl" />
<#else>
<#include "terms-es.ftl" />
</#if>
I hope this helps
You can use Keycloakify to create a theme.
Here is the section related to customizing Terms and conditions.