I have the following dashboard build with Tableau Public: https://public.tableau.com/app/profile/david8402/viz/map_parameters/Dashboard1
The dashboard accept as parameters a list of countries as a string of ISO3 separated by a character. For example using this URL https://public.tableau.com/app/profile/david8402/viz/map_parameters/Dashboard1?countries=ITA-AUS Italy and Australia will be highlighted in the map.
I want to embed this dashboard into a web page but if I use the classical embed script then I don't know how to pass the URL parameters related to the countries.
<div class='tableauPlaceholder' id='viz1650639649335' style='position: relative'>
<noscript>
<a href='#'>
<img alt='Dashboard 1 ' src='https://public.tableau.com/static/images/ma/map_parameters/Dashboard1/1_rss.png' style='border: none' />
</a>
</noscript>
<object class='tableauViz' style='display:none;'>
<param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' />
<param name='embed_code_version' value='3' />
<param name='site_root' value='' />
<param name='name' value='map_parameters/Dashboard1' />
<param name='tabs' value='no' />
<param name='toolbar' value='yes' />
<param name='static_image' value='https://public.tableau.com/static/images/ma/map_parameters/Dashboard1/1.png' />
<param name='animate_transition' value='yes' />
<param name='display_static_image' value='yes' />
<param name='display_spinner' value='yes' />
<param name='display_overlay' value='yes' />
<param name='display_count' value='yes' />
<param name='countries' value='USA' />
<param name='language' value='it-IT' />
</object>
</div>
<script type='text/javascript'>
var divElement = document.getElementById('viz1650639649335');
var vizElement = divElement.getElementsByTagName('object')[0];
if (divElement.offsetWidth > 800) {
vizElement.style.width = '520px';
vizElement.style.height = '587px';
}
else if (divElement.offsetWidth > 500) {
vizElement.style.width = '520px';
vizElement.style.height = '587px';
}
else { vizElement.style.width = '100%'; vizElement.style.height = '727px'; }
var scriptElement = document.createElement('script');
scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js';
vizElement.parentNode.insertBefore(scriptElement, vizElement);
</script>
Any suggestion?
I also tried with the iframe but it loads the whole Tableau page and I want only the chart.
Cheers
We have a Magnolia CMS 5.5 Setup with an PostgreSQLPersistence Manager. I was investigating a case where our security config did not work as expected. I found out that our workspace/repository config was missing these three lines:
<WorkspaceSecurity>
<AccessControlProvider class="info.magnolia.cms.core.MagnoliaAccessProvider" />
</WorkspaceSecurity>
Is there there a way to recreate the existing workspaces including this config or is there only the possibility to export and reimport the data into a fresh install (which is in our case going to take very long)?
Edit:
It worked for my local system, when i used the following repo-conf.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN"
"http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
<Repository>
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository" />
</FileSystem>
<Security appName="magnolia">
<SecurityManager class="org.apache.jackrabbit.core.DefaultSecurityManager"/>
<AccessManager class="org.apache.jackrabbit.core.security.DefaultAccessManager">
</AccessManager>
<!-- login module defined here is used by the repo to authenticate every request. not by the webapp to authenticate user against the webapp context (this one has to be passed before thing here gets invoked -->
<LoginModule class="info.magnolia.jaas.sp.jcr.JackrabbitAuthenticationModule">
</LoginModule>
</Security>
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
<param name="path" value="${rep.home}/repository/datastore"/>
<param name="minRecordLength" value="1024"/>
</DataStore>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
<Workspace name="default">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}/default" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://xxxxx" />
<param name="databaseType" value="postgresql" /><!-- warning, this is not the schema name, it's the db type -->
<param name="user" value="xxxxx" />
<param name="password" value="xxxxxx" />
<param name="schemaObjectPrefix" value="${wsp.name}_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index" />
<param name="useCompoundFile" value="true" />
<param name="minMergeDocs" value="100" />
<param name="volatileIdleTime" value="3" />
<param name="maxMergeDocs" value="100000" />
<param name="mergeFactor" value="10" />
<param name="maxFieldLength" value="10000" />
<param name="bufferSize" value="10" />
<param name="cacheSize" value="1000" />
<param name="forceConsistencyCheck" value="false" />
<param name="autoRepair" value="true" />
<param name="analyzer" value="org.apache.lucene.analysis.standard.StandardAnalyzer" />
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl" />
<param name="respectDocumentOrder" value="true" />
<param name="resultFetchSize" value="2147483647" />
<param name="extractorPoolSize" value="3" />
<param name="extractorTimeout" value="100" />
<param name="extractorBackLogSize" value="100" />
<!-- needed to highlight the searched term -->
<param name="supportHighlighting" value="true"/>
<!-- custom provider for getting an HTML excerpt in a query result with rep:excerpt() -->
<param name="excerptProviderClass" value="info.magnolia.jackrabbit.lucene.SearchHTMLExcerpt"/>
</SearchIndex>
<WorkspaceSecurity>
<AccessControlProvider class="info.magnolia.cms.core.MagnoliaAccessProvider" />
</WorkspaceSecurity>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/workspaces/version" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://xxxxxx" />
<param name="schema" value="postgresql" /><!-- warning, this is not the schema name, it's the db type -->
<param name="user" value="xxxxxxxx" />
<param name="password" value="xxxxxxxx" />
<param name="schemaObjectPrefix" value="version_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
</Versioning>
</Repository>
Here removing/adding the WorkspaceSecurity works.
But on the relevant system we have another config where adding the WorkspaceSecurity does not work:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Repository PUBLIC "-//The Apache Software Foundation//DTD Jackrabbit 1.5//EN"
"http://jackrabbit.apache.org/dtd/repository-1.5.dtd">
<Repository>
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository" />
</FileSystem>
<Security appName="Jackrabbit">
<AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager"></AccessManager>
<LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
<param name="yyyyyyy" value="yyyyyyy" />
</LoginModule>
</Security>
<DataStore class="org.apache.jackrabbit.core.data.FileDataStore">
<param name="path" value="${rep.home}/repository/datastore"/>
<param name="minRecordLength" value="1024"/>
</DataStore>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="default" />
<Workspace name="default">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}/default" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://xxxxxxx" />
<param name="schema" value="postgresql" /><!-- warning, this is not the schema name, it's the db type -->
<param name="user" value="xxxxxxxx" />
<param name="password" value="xxxxxxxx" />
<param name="schemaObjectPrefix" value="${wsp.name}_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
<SearchIndex class="org.apache.jackrabbit.core.query.lucene.SearchIndex">
<param name="path" value="${wsp.home}/index" />
<param name="useCompoundFile" value="true" />
<param name="minMergeDocs" value="100" />
<param name="volatileIdleTime" value="3" />
<param name="maxMergeDocs" value="100000" />
<param name="mergeFactor" value="10" />
<param name="maxFieldLength" value="10000" />
<param name="autoRepair" value="true" />
<param name="analyzer" value="org.apache.lucene.analysis.standard.StandardAnalyzer" />
<param name="queryClass" value="org.apache.jackrabbit.core.query.QueryImpl" />
<param name="respectDocumentOrder" value="true" />
<param name="resultFetchSize" value="2147483647" />
<param name="extractorPoolSize" value="3" />
<param name="extractorTimeout" value="100" />
<param name="extractorBackLogSize" value="100" />
<!-- needed to highlight the searched term -->
<param name="supportHighlighting" value="true"/>
<!-- custom provider for getting an HTML excerpt in a query result with rep:excerpt() -->
<param name="excerptProviderClass" value="info.magnolia.jackrabbit.lucene.SearchHTMLExcerpt"/>
</SearchIndex>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/workspaces/version" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.PostgreSQLPersistenceManager">
<param name="driver" value="org.postgresql.Driver"/>
<param name="url" value="jdbc:postgresql://xxxxxxxxx" />
<param name="schema" value="postgresql" /><!-- warning, this is not the schema name, it's the db type -->
<param name="user" value="xxxxx" />
<param name="password" value="xxxxxxx" />
<param name="schemaObjectPrefix" value="version_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
</Versioning>
</Repository>
Using the first config on the relevant system leads to lots of errors in the log. Do you have an idea how to solve this?
Thanks, Reencode
You can copy existing workspaces using Workspace API but this doesn't help you. You can export the rootNode and import it to a fresh install which as you mentioned will take a lot of time as well. However, I'm a bit puzzled with accessControlProvider class configuration because it should be just working fine when one adds it to the configuration and restarts the instance. This is because the permission checks are done in the runtime and shouldn't affect it in a way that changing class has no effect whatsoever. I'd suggest checking this first and if still for some reason things don't work, then I'd check RepositoryCopier API and maybe there is a way to set that class while calling
RepositoryCopier.copy();
Cheers,
I got an issue that the fancybox doesn’t display the brightcove video on the iphone 4, while it works in Firefox, IE 7, IE8, IE9, Safari, and Chrome, and Android phones.
I have the js to populate the fancybox for the video as the following,
$(".myfancybox").fancybox({
'showCloseButton' : true,
'titlePosition' : 'inside',
'titleFormat' : formatVideoTitle,
'content' : formatVideoContent,
'scrolling' : 'no',
'autoScale' : true
});
A function called formatVideoContent will take the html (brightcove video html code, below, need videoPlayer, playerID and Key) and pass it to the ‘content’ parameter.
<object id="flashObj" width="486" height="412" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
<param value="http://c.brightcove.com/services/viewer/federated_f9?isVid=1" name="movie">
<param value="#FFFFFF" name="bgcolor">
<param value="#videoPlayer=xxx&playerID=xxx&playerKey=xxx&domain=embed&dynamicStreaming=true" name="flashVars">
<param value="http://admin.brightcove.com" name="base">
<param value="false" name="seamlesstabbing">
<param value="true" name="allowFullScreen">
<param value="true" name="swLiveConnect">
<param value="always" name="allowScriptAccess">
</object>
I know that iOS does not support .flv or .mov, but the same brightcove video html code that I used in the fancybox works in regular html page on iphone, just didn’t work on iphone once plugging in the fancybox. Fancybox version is 1.3.4 and jQuery is 1.4.4.
Did anyone try to show brightcove video via the fancybox on iphone? Thanks for any hint.
....the same brightcove video html code that I used in the fancybox works in regular html page on iphone
You could create a separated html page with such code and open it in fancybox using the iframe type of content like this script :
$(".myfancybox").fancybox({
'showCloseButton': true,
'titlePosition' : 'inside',
'titleFormat' : formatVideoTitle,
// 'content' : formatVideoContent,
'scrolling' : 'no',
// 'autoScale' : true,
'width' : 486,
'height' : 412,
'type' : 'iframe'
});
That's plain embed code for Brightcove's Flash player. It won't work on iOS. You need to use their javascript code, as it's that javascript that determines whether to replace the object with a Flash or HTML player as appropriate. That looks like this:
<object id="bcPlayer" class="BrightcoveExperience">
<param name="bgcolor" value="#FFFFFF" />
<param name="width" value="480" />
<param name="height" value="270" />
<param name="playerID" value="xxxx" />
<param name="playerKey" value="xxxx" />
<param name="isVid" value="true" />
<param name="isUI" value="true" />
<param name="dynamicStreaming" value="true" />
<param name="#videoPlayer" value="xxxx" />
</object>
You'll need to include the Brightcove javascript in the page:
<script type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
And you'll need to call brightcove.createExperiences() after the player code is inserted.
This works:
<script type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>
<script type="text/javascript">
formatVideoContent = '<object id="myExperience1353062063001" class="BrightcoveExperience">';
bcVideo += ' <param name="bgcolor" value="#FFFFFF" />';
bcVideo += ' <param name="width" value="400" />';
bcVideo += ' <param name="height" value="225" />';
bcVideo += ' <param name="playerID" value="1150189326001" />';
bcVideo += ' <param name="playerKey" value="AQ~~,AAAA0vRfoQE~,baHF9-H5aHJPAl3cZ-KjgHH9A7WtanGe" />';
bcVideo += ' <param name="isVid" value="true" />';
bcVideo += ' <param name="isUI" value="true" />';
bcVideo += ' <param name="dynamicStreaming" value="true" />';
bcVideo += ' <param name="#videoPlayer" value="1353062063001" />';
bcVideo += '</object>';
bcVideo += '<scr'+'ipt>brightcove.createExperiences();</scr'+'ipt>';
$(document).ready( function() {
$(".myfancybox").fancybox({
showCloseButton: true,
content: bcVideo,
scrolling: 'no',
width: '400',
height: '225'
});
});
</script>
how to embed videos on the mobile app so that it works for iphone and droids? here is what i am using and it seems like it does not work for driod phones.... any help?
<noscript>
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
codebase="http://www.apple.com/qtactivex/qtplugin.cab">
<param name="src" value="http://hostname/images/Large.jpg" />
<param name="href" value="http://hostname/mobile/videos/green.mp4" />
<param name="target" value="myself" />
<param name="controller" value="false" />
<param name="autoplay" value="false" />
<param name="scale" value="aspect" />
<embed type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"
src="http://hostname/mobile/videos/green.jpg" href="http://hostname/mobile/videos/green.mp4" target="myself"
controller="false" autoplay="false" scale="aspect" />
</object>
</noscript>
</div>
<div class="video-desc"><span class="title">Clean Hands</span><span class="released">Sat, May 02, 2009</span><span class="description">Clean hands....</span></div></li></ul><ul class="menu"><li><h1 class="phone">Videos</h1><ul class="video-list"><li><div class="video">
You should be using HTML5's <video> tag to embed video for iPhone/Droid.
i have a problem with VIMEO video .
I want to display it in fancybox :
this is HTML :
test
<div id="content" style="display:none;">
<object width="504" height="280" data="http://vimeo.com/moogaloop.swf" type="application/x-shockwave-flash">
<param value="always" name="allowscriptaccess"><param value="true" name="allowfullscreen">
<param value="http://vimeo.com/moogaloop.swf" name="movie">
<param value="clip_id=6999704&server=vimeo.com&fullscreen=1&show_title=1&show_byline=1&show_portrait=1&color=00ADEF" name="flashvars">
</object>
</div>
and js:
$(document).ready(function() {
$("a.zoom").fancybox();
});
Can somebody help me with this , maybe somebody knows hot to fix it ..
Thanks !!
try this html:
test
<div style="display:none;">
<div id="content">
<object width="504" height="280" data="http://vimeo.com/moogaloop.swf" type="application/x-shockwave-flash">
<param value="always" name="allowscriptaccess"><param value="true" name="allowfullscreen">
<param value="http://vimeo.com/moogaloop.swf" name="movie">
<param value="clip_id=6999704&server=vimeo.com&fullscreen=1&show_title=1&show_byline=1&show_portrait=1&color=00ADEF" name="flashvars">
</object>
</div>
</div>