<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Problem getting extension list to extend outside of element in Integration, Extension &amp; APIs</title>
    <link>https://community.qlik.com/t5/Integration-Extension-APIs/Problem-getting-extension-list-to-extend-outside-of-element/m-p/1623373#M11291</link>
    <description>&lt;P&gt;I have a widget that lists bookmarks and also groups them. Problem is the list dropdown is limited in size to the element container. I would like it to extend outside outside of the object. Below is my JS and CSS. I have tried Z-index -1 and position absolute but I am no CSS wiz so its possible I implemented them wrong. Any help is appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Js:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;paint : function($element, layout) {
            var html = '', app = qlik.currApp(this);
			//adding bootstrap wrapper
			html += '&amp;lt;div class="bootstrap_inside"&amp;gt;';			
			html += '&amp;lt;div class="daneContain"&amp;gt;';
				html += '&amp;lt;h5&amp;gt;Copy or Apply Bookmark&amp;lt;/h5&amp;gt;';
                html += '&amp;lt;ul id="drop-nav" class="drop-nav"&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a&amp;gt;Select a Bookmark &amp;amp;#9662;&amp;lt;/a&amp;gt;&amp;lt;ul&amp;gt;';
				
				//sorting bookmarks
                layout.qBookmarkList.qItems.sort(function(a,b) {
                var textA = a.qMeta.title.toUpperCase();
                var textB = b.qMeta.title.toUpperCase();
                return (textA &amp;lt; textB) ? -1 : (textA &amp;gt; textB) ? 1 : 0;
                });     
            				
                let ZTitleList = [];
                
				//creates options for bookmarks (non Z) and adds Zs to a list of ZTitles
                layout.qBookmarkList.qItems.forEach( function(value)  {             
                    if( value.qMeta.title.toUpperCase().charAt(0) != 'Z' || value.qMeta.title.toUpperCase().charAt(1) != '-' ){                 
						html += '&amp;lt;li&amp;gt;&amp;lt;a style="display:inline id="'+ value.qInfo.qId +'"&amp;gt;' + value.qMeta.title + ' : ' + value.qMeta.owner.name.replace(/\s*\(.*?\)\s*/g, '').replace(" ", ", ") + '&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;';					
                    } else {
                        if(ZTitleList.indexOf(value.qMeta.title.toUpperCase().substring(0, 6)) &amp;lt; 0 ){
                            ZTitleList.push(value.qMeta.title.toUpperCase().substring(0, 6));                   
                        }                   
                    }
                    });
                
				//Uses ZTitles to create sub groups and selections of bookmarks
				ZTitleList.forEach( function(e){
					html += ('&amp;lt;li&amp;gt;'+ e.substring(2) + ' Bookmarks &amp;amp;#9656;&amp;lt;ul&amp;gt;'); 				
					layout.qBookmarkList.qItems.forEach( function(value) {
						if( value.qMeta.title.toUpperCase().substring(0,6) == e ){
							html+= ('&amp;lt;li&amp;gt;&amp;lt;a id="'+ value.qInfo.qId +'"&amp;gt;'+ value.qMeta.title + ' : ' + value.qMeta.owner.name.replace(/\s*\(.*?\)\s*/g, '').replace(" ", ", ")  +'&amp;lt;/a&amp;gt;');
							html += '&amp;lt;button value="' + value.qInfo.qId + '"&amp;gt;"glyph here"&amp;lt;/button&amp;gt;';
							html += '&amp;lt;/li&amp;gt;';
							}					
						});					
						html+= ('&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;');					
					});
				html += '&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;';
                html += '&amp;lt;/div&amp;gt;';				
            	html += '&amp;lt;/div&amp;gt;';

			$element.html(html);

			applyBookmark($element, layout, app);
			copyBookmark($element, layout, app);
		   
            return qlik.Promise.resolve();
        }&lt;/LI-CODE&gt;&lt;P&gt;CSS:&lt;/P&gt;&lt;LI-CODE lang="css"&gt;ul {
	list-style: none;
	padding: 0;
	margin: 0;
	position: absolute;
}
.drop-nav li {
	position: relative;
	float: left;
}
.drop-nav li &amp;gt; ul {
	position: absolute;
	left:-999em;
	width:100%;
	top:0;
	transition:top .5s ease;
}
.drop-nav ul ul {
	transition:transform .5s ease, opacity .3s ease;
	transform:translateX(0);
	opacity:0;
}
.drop-nav a {
	display: block;
	background: #f3f3f3;
	padding: 5px 10px 5px 10px;
	text-decoration: none;
	white-space: nowrap;
	color: #666666;
	border: 1px solid #fff;
	line-height:1.2em;
}
.drop-nav a:hover {
	background: #ccc;
}
.drop-nav li:hover &amp;gt; ul {
	left:0;
	top:100%;
}
.drop-nav li li:hover &amp;gt; ul {
	left:0;
	transform:translateX(100%);
	top:0;
	opacity:1;
}
.drop-nav ul li {
	float: none;
}
.drop-nav li:hover &amp;gt; a {
	background: #ccc;
}
#drop-nav ul li {
	border-top: none;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 12 Sep 2019 17:33:35 GMT</pubDate>
    <dc:creator>danelooman</dc:creator>
    <dc:date>2019-09-12T17:33:35Z</dc:date>
    <item>
      <title>Problem getting extension list to extend outside of element</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Problem-getting-extension-list-to-extend-outside-of-element/m-p/1623373#M11291</link>
      <description>&lt;P&gt;I have a widget that lists bookmarks and also groups them. Problem is the list dropdown is limited in size to the element container. I would like it to extend outside outside of the object. Below is my JS and CSS. I have tried Z-index -1 and position absolute but I am no CSS wiz so its possible I implemented them wrong. Any help is appreciated.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Js:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;paint : function($element, layout) {
            var html = '', app = qlik.currApp(this);
			//adding bootstrap wrapper
			html += '&amp;lt;div class="bootstrap_inside"&amp;gt;';			
			html += '&amp;lt;div class="daneContain"&amp;gt;';
				html += '&amp;lt;h5&amp;gt;Copy or Apply Bookmark&amp;lt;/h5&amp;gt;';
                html += '&amp;lt;ul id="drop-nav" class="drop-nav"&amp;gt;&amp;lt;li&amp;gt;&amp;lt;a&amp;gt;Select a Bookmark &amp;amp;#9662;&amp;lt;/a&amp;gt;&amp;lt;ul&amp;gt;';
				
				//sorting bookmarks
                layout.qBookmarkList.qItems.sort(function(a,b) {
                var textA = a.qMeta.title.toUpperCase();
                var textB = b.qMeta.title.toUpperCase();
                return (textA &amp;lt; textB) ? -1 : (textA &amp;gt; textB) ? 1 : 0;
                });     
            				
                let ZTitleList = [];
                
				//creates options for bookmarks (non Z) and adds Zs to a list of ZTitles
                layout.qBookmarkList.qItems.forEach( function(value)  {             
                    if( value.qMeta.title.toUpperCase().charAt(0) != 'Z' || value.qMeta.title.toUpperCase().charAt(1) != '-' ){                 
						html += '&amp;lt;li&amp;gt;&amp;lt;a style="display:inline id="'+ value.qInfo.qId +'"&amp;gt;' + value.qMeta.title + ' : ' + value.qMeta.owner.name.replace(/\s*\(.*?\)\s*/g, '').replace(" ", ", ") + '&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;';					
                    } else {
                        if(ZTitleList.indexOf(value.qMeta.title.toUpperCase().substring(0, 6)) &amp;lt; 0 ){
                            ZTitleList.push(value.qMeta.title.toUpperCase().substring(0, 6));                   
                        }                   
                    }
                    });
                
				//Uses ZTitles to create sub groups and selections of bookmarks
				ZTitleList.forEach( function(e){
					html += ('&amp;lt;li&amp;gt;'+ e.substring(2) + ' Bookmarks &amp;amp;#9656;&amp;lt;ul&amp;gt;'); 				
					layout.qBookmarkList.qItems.forEach( function(value) {
						if( value.qMeta.title.toUpperCase().substring(0,6) == e ){
							html+= ('&amp;lt;li&amp;gt;&amp;lt;a id="'+ value.qInfo.qId +'"&amp;gt;'+ value.qMeta.title + ' : ' + value.qMeta.owner.name.replace(/\s*\(.*?\)\s*/g, '').replace(" ", ", ")  +'&amp;lt;/a&amp;gt;');
							html += '&amp;lt;button value="' + value.qInfo.qId + '"&amp;gt;"glyph here"&amp;lt;/button&amp;gt;';
							html += '&amp;lt;/li&amp;gt;';
							}					
						});					
						html+= ('&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;');					
					});
				html += '&amp;lt;/ul&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;';
                html += '&amp;lt;/div&amp;gt;';				
            	html += '&amp;lt;/div&amp;gt;';

			$element.html(html);

			applyBookmark($element, layout, app);
			copyBookmark($element, layout, app);
		   
            return qlik.Promise.resolve();
        }&lt;/LI-CODE&gt;&lt;P&gt;CSS:&lt;/P&gt;&lt;LI-CODE lang="css"&gt;ul {
	list-style: none;
	padding: 0;
	margin: 0;
	position: absolute;
}
.drop-nav li {
	position: relative;
	float: left;
}
.drop-nav li &amp;gt; ul {
	position: absolute;
	left:-999em;
	width:100%;
	top:0;
	transition:top .5s ease;
}
.drop-nav ul ul {
	transition:transform .5s ease, opacity .3s ease;
	transform:translateX(0);
	opacity:0;
}
.drop-nav a {
	display: block;
	background: #f3f3f3;
	padding: 5px 10px 5px 10px;
	text-decoration: none;
	white-space: nowrap;
	color: #666666;
	border: 1px solid #fff;
	line-height:1.2em;
}
.drop-nav a:hover {
	background: #ccc;
}
.drop-nav li:hover &amp;gt; ul {
	left:0;
	top:100%;
}
.drop-nav li li:hover &amp;gt; ul {
	left:0;
	transform:translateX(100%);
	top:0;
	opacity:1;
}
.drop-nav ul li {
	float: none;
}
.drop-nav li:hover &amp;gt; a {
	background: #ccc;
}
#drop-nav ul li {
	border-top: none;
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Sep 2019 17:33:35 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Problem-getting-extension-list-to-extend-outside-of-element/m-p/1623373#M11291</guid>
      <dc:creator>danelooman</dc:creator>
      <dc:date>2019-09-12T17:33:35Z</dc:date>
    </item>
    <item>
      <title>Re: Problem getting extension list to extend outside of element</title>
      <link>https://community.qlik.com/t5/Integration-Extension-APIs/Problem-getting-extension-list-to-extend-outside-of-element/m-p/1624281#M11318</link>
      <description>&lt;P&gt;Figured it out. The extension's object container should be named&amp;nbsp;.qv-object-Your-Extension .qv-inner-object. Add two css elements to it :&lt;/P&gt;&lt;P&gt;(1) Overflow:visible !important; which will allow it to flow outside the object.&lt;/P&gt;&lt;P&gt;(2) z-index: high number (I did 2147483630 but that is a lot).&amp;nbsp;&lt;/P&gt;&lt;P&gt;That will get you an extension that can leave its box. To get it to overlap other boxes you have to find the entire container and up its z index. I did this in my JS by&amp;nbsp;$(document.body).find(".qv-object-Your-Extension").parent().parent().parent().parent().css("z-index","2147483629");&lt;/P&gt;&lt;P&gt;Hope this helps future developers.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 16 Sep 2019 15:30:10 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Integration-Extension-APIs/Problem-getting-extension-list-to-extend-outside-of-element/m-p/1624281#M11318</guid>
      <dc:creator>danelooman</dc:creator>
      <dc:date>2019-09-16T15:30:10Z</dc:date>
    </item>
  </channel>
</rss>

