We used to embedd Jira, Confluence etc. inside a IFrame to create a Jira Studio like look (index.html).
      This works fine until Version 4.1 of Jira.

      So now any Jira Page (direct.png) gets displayd broken if it is embedded inside a Frameset or IFrame (iframe.png).
      (or is there any bether way to display Jira etc. inside a Frame?)

      See JRA-21153 for more info and detailed analysis

        1. direct.png
          direct.png
          18 kB
        2. iframe.png
          iframe.png
          21 kB
        3. index.html
          1 kB
        4. Screenshot from 2017-03-23 09-20-24.png
          114 kB

            [JRASERVER-20988] Jira inside Frame/IFrame broken

            Andreas J. added a comment -

            This ticket & it's duplicate JRASERVER-38635 are both closed with "Resolution: Won't Fix", so seems they aren't keen to do anything about it.

            The other ticket has a comment from 2014 saying "At the moment there are no plans to extend support to cover this case.", but one would hope they'd changed their mind since then..

            Andreas J. added a comment - This ticket & it's duplicate JRASERVER-38635 are both closed with "Resolution: Won't Fix", so seems they aren't keen to do anything about it. The other ticket has a comment from 2014 saying "At the moment there are no plans to extend support to cover this case.", but one would hope they'd changed their mind since then..

            why is this closed but the BUG persists?  We chose tools based on certain features and Jira is failing big time with this one.  i might have to move us to SBM if this isn't fixed soon.

            Katherine Shaw added a comment - why is this closed but the BUG persists?  We chose tools based on certain features and Jira is failing big time with this one.  i might have to move us to SBM if this isn't fixed soon.

            Still no response to this key issue?

             

            Noah Shipley added a comment - Still no response to this key issue?  

            We have Jira hosted on premise and we need to use one of our project make it user friendly along with other in house application. Can you provide us the workaround to perform the same?  

            Santhosh Kumar Siddappa added a comment - We have Jira hosted on premise and we need to use one of our project make it user friendly along with other in house application. Can you provide us the workaround to perform the same?  

            No AFAIK there is not. This issue was closed with won't fix - meaning jira development will not support embedding webpage in iFrame - probably never.

            Roman Spiak added a comment - No AFAIK there is not. This issue was closed with won't fix - meaning jira development will not support embedding webpage in iFrame - probably never.

            kdatta21 added a comment -

            Is there any solution of how to use Jira dashboard inside iframe . Please do let me know.

            Thanks in advance!

            kdatta21 added a comment - Is there any solution of how to use Jira dashboard inside iframe . Please do let me know. Thanks in advance!

            Its 2019, this does not seem to work still.

            When I add a Jira dashboard inside iFrame it fails.

             

            IS there workarounds?

            Ricardo Farinha added a comment - Its 2019, this does not seem to work still. When I add a Jira dashboard inside iFrame it fails.   IS there workarounds?

            JIRA is still broken inside a frame. I'm attaching a screenshot. Please fix this - we're paying for this solution and it cannot be used on a page side-to-side diffetent pages.

            Roman Spiak added a comment - JIRA is still broken inside a frame. I'm attaching a screenshot. Please fix this - we're paying for this solution and it cannot be used on a page side-to-side diffetent pages.

            Its lame that you guys won't fix this when the solution is so simple.

            Morgan Yarbrough added a comment - Its lame that you guys won't fix this when the solution is so simple.

            Jeff Lamb added a comment -

            In case anyone is still listening, the new version of Jira broke this again. I ended up adding a custom menu for our pages:
            https://developer.atlassian.com/display/JIRADEV/Adding+Menu+Items+to+JIRA
            Pretty straightforward and works fine.

            Jeff Lamb added a comment - In case anyone is still listening, the new version of Jira broke this again. I ended up adding a custom menu for our pages: https://developer.atlassian.com/display/JIRADEV/Adding+Menu+Items+to+JIRA Pretty straightforward and works fine.

            Jeff Lamb added a comment -

            My plugin extended pluggabletopnavigation. If you search for "extend pluggabletopnavigation" you'll find discussions on this. Since this interface is depreciated (it's not supported in Jira 5.2), I needed to figure out a new solution. I didn't get very far, as I figured the announcement banner trick out rather quickly. Sorry - can't help you much there.

            Jeff Lamb added a comment - My plugin extended pluggabletopnavigation. If you search for "extend pluggabletopnavigation" you'll find discussions on this. Since this interface is depreciated (it's not supported in Jira 5.2), I needed to figure out a new solution. I didn't get very far, as I figured the announcement banner trick out rather quickly. Sorry - can't help you much there.

            ekynox added a comment -

            I choosed the second solution because my jira is host on 8080 and not on the IIS. And works like a charm. I can set what I want as a menu now, take some look if you want sometimes.

            I just have to figure out for FishEye.

            What was the way you was trying when you tell : "I was in the middle of trying to find a different way to include the header, but came across this". As I said, i'm very interested to find a starting point making a cross atlassian product plugin later.

            Thanks a lot

            ekynox added a comment - I choosed the second solution because my jira is host on 8080 and not on the IIS. And works like a charm. I can set what I want as a menu now, take some look if you want sometimes. I just have to figure out for FishEye. What was the way you was trying when you tell : "I was in the middle of trying to find a different way to include the header, but came across this". As I said, i'm very interested to find a starting point making a cross atlassian product plugin later. Thanks a lot

            Jeff Lamb added a comment - - edited

            Sure you can. Search for "IIS reverse proxy". What you'll end up doing is moving Jira to a subfolder - http://ekynoxx-studios.dyndns.org:8080/jira. Then have IIS set up a reverse proxy to forward requests made to http://ekynoxx-studios.dyndns.org/jira to http://ekynoxx-studios.dyndns.org:8080/jira. To the client, they'll look like they're running on the same server, and you'll have no cross-domain scripting issues.

            If you don't want to do that, just put header.html next to login.jsp in the /atlassian-jira folder in your Jira install directory. That's the document root for apache tomcat running on port 8080. Downside to that is you'll have the same cross-scripting problem trying to include that file on a page on your IIS server on port 80, so you'll end up with 2 different headers to maintain. If you get the reverse proxy working, all those problems go away.

            Jeff Lamb added a comment - - edited Sure you can. Search for "IIS reverse proxy". What you'll end up doing is moving Jira to a subfolder - http://ekynoxx-studios.dyndns.org:8080/jira . Then have IIS set up a reverse proxy to forward requests made to http://ekynoxx-studios.dyndns.org/jira to http://ekynoxx-studios.dyndns.org:8080/jira . To the client, they'll look like they're running on the same server, and you'll have no cross-domain scripting issues. If you don't want to do that, just put header.html next to login.jsp in the /atlassian-jira folder in your Jira install directory. That's the document root for apache tomcat running on port 8080. Downside to that is you'll have the same cross-scripting problem trying to include that file on a page on your IIS server on port 80, so you'll end up with 2 different headers to maintain. If you get the reverse proxy working, all those problems go away.

            ekynox added a comment -

            Sorry, missed that one. I can't modify my web IIS server to redirect to 8080 because I'm using it already in the *80 port. Is there something to do to allow the html file ?

            ekynox added a comment - Sorry, missed that one. I can't modify my web IIS server to redirect to 8080 because I'm using it already in the *80 port. Is there something to do to allow the html file ?

            Jeff Lamb added a comment -

            See the bit where I say "WILL NOT WORK" in the original post with code.

            XMLHttpRequest cannot load http://ekynoxx-studios.dyndns.org/header.html?_=1358466662125. Origin http://ekynoxx-studios.dyndns.org:8080 is not allowed by Access-Control-Allow-Origin.

            Jeff Lamb added a comment - See the bit where I say "WILL NOT WORK" in the original post with code. XMLHttpRequest cannot load http://ekynoxx-studios.dyndns.org/header.html?_=1358466662125 . Origin http://ekynoxx-studios.dyndns.org:8080 is not allowed by Access-Control-Allow-Origin.

            ekynox added a comment -

            Thanks again Jeff for your time.

            you can find my jira installation here : http://ekynoxx-studios.dyndns.org:8080 and banner is set with the js code pointing to http://ekynoxx-studios.dyndns.org/header.html file on my IIS web server.

            The problem still reside for header position and make it works with FishEye / other Atlassian products that do not have a banner to set (except for Confluence where we can modify the header directly in administration).

            I am very interested anyway when the time will come making a plugin for many reasons :

            • for that fit exactly our needs
            • gives atlassian community ability to use it (with administration interface, templates, ...)
            • maybe earn some money (which can be not a bad thing considering our current situation)
            • Adding some great features like ajax with history tabs, when the page keeps navigation history when switching tabs (we also can add hipchat without reloading or maybe link to a phpBB forum working with Crowd).

            So I have truly a junior developer knowledge in C#, but C# is not that far from Java (cause Microsoft stolen the VM from Java ) and I just have to read carrefully the plugin SDK (already installed on my computer) and a start point, because I am a little lost for the moment.

            Thanks for your help.

            ekynox added a comment - Thanks again Jeff for your time. you can find my jira installation here : http://ekynoxx-studios.dyndns.org:8080 and banner is set with the js code pointing to http://ekynoxx-studios.dyndns.org/header.html file on my IIS web server. The problem still reside for header position and make it works with FishEye / other Atlassian products that do not have a banner to set (except for Confluence where we can modify the header directly in administration). I am very interested anyway when the time will come making a plugin for many reasons : for that fit exactly our needs gives atlassian community ability to use it (with administration interface, templates, ...) maybe earn some money (which can be not a bad thing considering our current situation) Adding some great features like ajax with history tabs, when the page keeps navigation history when switching tabs (we also can add hipchat without reloading or maybe link to a phpBB forum working with Crowd). So I have truly a junior developer knowledge in C#, but C# is not that far from Java (cause Microsoft stolen the VM from Java ) and I just have to read carrefully the plugin SDK (already installed on my computer) and a start point, because I am a little lost for the moment. Thanks for your help.

            Jeff Lamb added a comment -

            If you have a public jira installation I could look at or even a screenshot, I might be able to help. Otherwise, I've given you an easy way to insert a header. At this point it's just css and javascript to get it to look right. Use chrome's developer console or firefox with firebug to figure out what's going on.

            Believe me, this is way easier than downloading the entire SDK and maintaining a plugin! I previously extended the pluggabletopnavigation class to create a page header. However, that class is depreciated in jira 5.2. I was in the middle of trying to find a different way to include the header, but came across this. As it's way easier and doesn't require any special software or SDK, I didn't bother with the plugin route.

            Jeff Lamb added a comment - If you have a public jira installation I could look at or even a screenshot, I might be able to help. Otherwise, I've given you an easy way to insert a header. At this point it's just css and javascript to get it to look right. Use chrome's developer console or firefox with firebug to figure out what's going on. Believe me, this is way easier than downloading the entire SDK and maintaining a plugin! I previously extended the pluggabletopnavigation class to create a page header. However, that class is depreciated in jira 5.2. I was in the middle of trying to find a different way to include the header, but came across this. As it's way easier and doesn't require any special software or SDK, I didn't bother with the plugin route.

            ekynox added a comment -

            Hello Jeff, and thanks for your answer.

            I tried to create a header.html file with exact code in my IIS main site and then copy the js code in the banner section, with the modified link pointing to my header.html

            The banner appear empty.

            About that solution, the banner looks like not to be on top but below the Jira Menu, and I would like the menu be on top. In Confluence, we can modify the header I think without problems, but there is no announcement banner or header editing functions in FishEye.

            I am pretty interested about making a plugin, can you give us more details on how to do it, what to modify to change the header. I'm sure with updates it could be boring, but I think it's the best way to do something that fit correctly and then maybe I'll be able to giving that menu more functions later.

            Thanks.

            ekynox added a comment - Hello Jeff, and thanks for your answer. I tried to create a header.html file with exact code in my IIS main site and then copy the js code in the banner section, with the modified link pointing to my header.html The banner appear empty. About that solution, the banner looks like not to be on top but below the Jira Menu, and I would like the menu be on top. In Confluence, we can modify the header I think without problems, but there is no announcement banner or header editing functions in FishEye. I am pretty interested about making a plugin, can you give us more details on how to do it, what to modify to change the header. I'm sure with updates it could be boring, but I think it's the best way to do something that fit correctly and then maybe I'll be able to giving that menu more functions later. Thanks.

            Jeff Lamb added a comment -

            I've commented on and fought with this issue several times. My solution was to create my own plugin to pull in an external header. This worked on jira up to version 4.2.2. I've since upgraded to 5.2, which meant I needed to rewrite the plugin. While researching things I had to change, I came up with a different, and much better, solution. Use the announcement banner!

            Go into "Edit Announcement Banner" and add this code, replacing my.server.com/header.html with your own header (menu) file location. If your file location is not on the same server and port as Jira, this WILL NOT WORK. You will get cross-domain scripting violations. I had to reconfigure my apache server to redirect my.server.com/jira to my.server.com:8080/jira to get the ports to match.

            Announcement banner:

            <script type="text/javascript">
              jQuery(document).ready(function() {
                jQuery.get("http://my.server.com/header.html", function(data){
                    jQuery("#header").prepend('<nav class="global" role="navigation">'+data+'</nav>');
                    jQuery("#magnolia-community-navbar a").css("color", "white")
                });
              });
            </script>
            

            My header.html looks like this:

            <style type="text/css">
            ul#magnolia-community-navbar {
                font-size:12px;
                position:absolute;
                right:10px;
                top:0;
                margin:0;
                padding:0;
            }
            
            ul#magnolia-community-navbar li {
                float:left;
                line-height:100%;
                list-style-type:none;
                margin:0;
                padding:3px 0 1px;
            }
            
            ul#magnolia-community-navbar>li>a {
                background-color:#717f86;
                color:#fffdfe;
                text-decoration:none;
                border-bottom:1px solid black;
                -webkit-background-clip:padding-box;
                -moz-background-clip:padding-box;
                background-clip:padding-box;
                margin:0;
                padding:3px 10px 1px;
            }
            
            ul#magnolia-community-navbar>li>a:hover {
                background-color:#555;
                text-shadow:#ccc 1px 1px 1px;
            }
            
            ul#magnolia-community-navbar>li:first-of-type>a {
                border-left:1px solid black;
                -webkit-border-bottom-left-radius:4px;
                -moz-border-radius-bottomleft:4px;
                border-bottom-left-radius:4px;
            }
            
            ul#magnolia-community-navbar>li:last-of-type>a {
                border-right:1px solid black;
                -webkit-border-bottom-right-radius:4px;
                -moz-border-radius-bottomright:4px;
                border-bottom-right-radius:4px;
            }
            
            
            #magnolia-community-content {
                padding-top:20px;
                padding-left:200px;
                height:35px;
            }
            
            #magnolia-community-bottombar {
                position:absolute;
                width:100%;
                color:blue;
                top:58px;
                height:22px;
                padding:0;
            }
            
            body#jira div#magnolia-community-content #quicksearch,body#jira div#magnolia-community-content #header-details-user {
                float:right;
            }
            
            body#jira div#magnolia-community-bottombar #header-bottom {
                background:transparent;
            }
            </style>
            &nbsp;
            <!--magnolia-community-content-->
            <ul id="magnolia-community-navbar">
              <li><a href="http://my.server.com/jira/secure/Dashboard.jspa">Jira</a></li>
              <li><a href="http://my.server.com/wiki">Wiki</a></li>
              <li><a href="http://my.server.com/viewvc">SVN</a></li>
              <li><a href="http://my.server.com/reviews">Reviews</a></li>
            </ul>
            <!--magnolia-community-bottombar-->
            

            The cool thing is that header is reusable for whatever page you want to embed it on. We only use greenhopper and Jira from Atlassian, so I'm not sure about how this fits in with other products.

            Jeff Lamb added a comment - I've commented on and fought with this issue several times. My solution was to create my own plugin to pull in an external header. This worked on jira up to version 4.2.2. I've since upgraded to 5.2, which meant I needed to rewrite the plugin. While researching things I had to change, I came up with a different, and much better, solution. Use the announcement banner! Go into "Edit Announcement Banner" and add this code, replacing my.server.com/header.html with your own header (menu) file location. If your file location is not on the same server and port as Jira, this WILL NOT WORK. You will get cross-domain scripting violations. I had to reconfigure my apache server to redirect my.server.com/jira to my.server.com:8080/jira to get the ports to match. Announcement banner: <script type= "text/javascript" > jQuery(document).ready(function() { jQuery.get( "http: //my.server.com/header.html" , function(data){ jQuery( "#header" ).prepend( '<nav class= "global" role= "navigation" >' +data+ '</nav>' ); jQuery( "#magnolia-community-navbar a" ).css( "color" , "white" ) }); }); </script> My header.html looks like this: <style type= "text/css" > ul#magnolia-community-navbar { font-size:12px; position:absolute; right:10px; top:0; margin:0; padding:0; } ul#magnolia-community-navbar li { float :left; line-height:100%; list-style-type:none; margin:0; padding:3px 0 1px; } ul#magnolia-community-navbar>li>a { background-color:#717f86; color:#fffdfe; text-decoration:none; border-bottom:1px solid black; -webkit-background-clip:padding-box; -moz-background-clip:padding-box; background-clip:padding-box; margin:0; padding:3px 10px 1px; } ul#magnolia-community-navbar>li>a:hover { background-color:#555; text-shadow:#ccc 1px 1px 1px; } ul#magnolia-community-navbar>li:first-of-type>a { border-left:1px solid black; -webkit-border-bottom-left-radius:4px; -moz-border-radius-bottomleft:4px; border-bottom-left-radius:4px; } ul#magnolia-community-navbar>li:last-of-type>a { border-right:1px solid black; -webkit-border-bottom-right-radius:4px; -moz-border-radius-bottomright:4px; border-bottom-right-radius:4px; } #magnolia-community-content { padding-top:20px; padding-left:200px; height:35px; } #magnolia-community-bottombar { position:absolute; width:100%; color:blue; top:58px; height:22px; padding:0; } body#jira div#magnolia-community-content #quicksearch,body#jira div#magnolia-community-content #header-details-user { float :right; } body#jira div#magnolia-community-bottombar #header-bottom { background:transparent; } </style> &nbsp; <!--magnolia-community-content--> <ul id= "magnolia-community-navbar" > <li><a href= "http: //my.server.com/jira/secure/Dashboard.jspa" >Jira</a></li> <li><a href= "http: //my.server.com/wiki" >Wiki</a></li> <li><a href= "http: //my.server.com/viewvc" >SVN</a></li> <li><a href= "http: //my.server.com/reviews" >Reviews</a></li> </ul> <!--magnolia-community-bottombar--> The cool thing is that header is reusable for whatever page you want to embed it on. We only use greenhopper and Jira from Atlassian, so I'm not sure about how this fits in with other products.

            ekynox added a comment -

            Any news about this issue ?

            I'm looking making a portal, simply for the start in html / css. Later I would like use ajax tabs, and keep history of any navigation in each tabs.

            Adding also a tab for Hipchat could be trivial with that ajax solution (no need to reload the page each time we click on the hipchat tab).

            Do someone use other ways than iframes ?

            refer to my post : https://answers.atlassian.com/questions/125225/adding-tabs-to-all-atlassian-products-i-use

            Please re-open...

            Thanks.

            ekynox added a comment - Any news about this issue ? I'm looking making a portal, simply for the start in html / css. Later I would like use ajax tabs, and keep history of any navigation in each tabs. Adding also a tab for Hipchat could be trivial with that ajax solution (no need to reload the page each time we click on the hipchat tab). Do someone use other ways than iframes ? refer to my post : https://answers.atlassian.com/questions/125225/adding-tabs-to-all-atlassian-products-i-use Please re-open... Thanks.

            Hi

            Is there any estimated ETA, target version number or target date for that pluggable header and UAL to be released? We are now evaluating JIRA et al with a view to perhaps deploy a prototype perhaps around mid-2011 and we know we want this "JIRA Studio integrated look". My question is that if I should invest time and effort in customizing headers with the current method or wait till the new "common" way is available.

            Thanks

            Daniel Varela Santoalla added a comment - Hi Is there any estimated ETA, target version number or target date for that pluggable header and UAL to be released? We are now evaluating JIRA et al with a view to perhaps deploy a prototype perhaps around mid-2011 and we know we want this "JIRA Studio integrated look". My question is that if I should invest time and effort in customizing headers with the current method or wait till the new "common" way is available. Thanks

            In JIRA and Bamboo there is a top-navigation module type that is used to change the header:

            <top-navigation key="top-navigation" name="Top Navigation"
                            class="your/plugins/implementation/of/PluggableTopNavigation" state='enabled'>
                <resource type="velocity" name="view" location="your/plugins/templates/topnav.vm"/>
                <order>20</order>
            </top-navigation>
            

            In Confluence there is a layout module type that can be used to change the decorator:

            <layout key="main" name="Main Decorator" class="com.atlassian.confluence.themes.VelocityDecorator" overrides="/decorators/main.vmd">
                <resource type="velocity" name="decorator" location="your/plugins/decorators/main.vmd"/>
            </layout>
            

            Unfortunately, Fisheye/Crucible does not provide a plugin point at the moment. In Studio we modify /WEB-INF/tags/cru/header.tag as well as /WEB-INF/tags/cru/masthead.tag in order to replace the header.

            However, Atlassian is currently working on providing a plugin point for pluggable header that would work the same/similar across all products. It will be also UAL (Unified Application Links aka AppLinks 3.0) aware, which will make it much easier to plug in a header that can link to other Atlassian products. UAL will be bundled with all products.

            Alex Wei (DE) added a comment - In JIRA and Bamboo there is a top-navigation module type that is used to change the header: <top-navigation key= "top-navigation" name= "Top Navigation" class= "your/plugins/implementation/of/PluggableTopNavigation" state= 'enabled' > <resource type= "velocity" name= "view" location= "your/plugins/templates/topnav.vm" /> <order>20</order> </top-navigation> In Confluence there is a layout module type that can be used to change the decorator: <layout key= "main" name= "Main Decorator" class= "com.atlassian.confluence.themes.VelocityDecorator" overrides= "/decorators/main.vmd" > <resource type= "velocity" name= "decorator" location= "your/plugins/decorators/main.vmd" /> </layout> Unfortunately, Fisheye/Crucible does not provide a plugin point at the moment. In Studio we modify /WEB-INF/tags/cru/header.tag as well as /WEB-INF/tags/cru/masthead.tag in order to replace the header. However, Atlassian is currently working on providing a plugin point for pluggable header that would work the same/similar across all products. It will be also UAL (Unified Application Links aka AppLinks 3.0) aware, which will make it much easier to plug in a header that can link to other Atlassian products. UAL will be bundled with all products.

            Thanks peter.

            can you (or the studio team) also provide any timesaving hints for both Crucible and Confluence as well in order to try to make our own studio? Don Brown mentioned 1 jsp to modify in fisheye/crucible (which one?). any leads would be appreciated.

            Trevor Samaroo added a comment - Thanks peter. can you (or the studio team) also provide any timesaving hints for both Crucible and Confluence as well in order to try to make our own studio? Don Brown mentioned 1 jsp to modify in fisheye/crucible (which one?). any leads would be appreciated.

            @Trevor Samaroo
            @timmjd
            This forum post talks about how plugin developers have hooked into top-nagivation plugin point

            Cheers,
            Peter

            Peter Leschev added a comment - @Trevor Samaroo @timmjd This forum post talks about how plugin developers have hooked into top-nagivation plugin point Cheers, Peter

            By that logic, Iframe itself is a hack.

            This is a decent and simple solution for us. all the points you mention is simply the nature of iframes, no news there. we all knew what we are doing when we set these up. we are not looking for deep integration, just something simple to bring people to a "suite of tools". the development effort to implement a JIRA studio ...with some atlassian products, teamcity, sonar, etc is very high. JIRA studio itself is a hack of sorts, since the tools were not designed to be in a 'studio' - although they are adding features to make that easier for them to create studio..like app links, SAL, etc.

            Ultimately we are the mercy of Atlassian. I just want them be aware "how" we are using their tools so the full impact to customers is understood. especially when we have over 30 jira instances.

            Trevor Samaroo added a comment - By that logic, Iframe itself is a hack. This is a decent and simple solution for us. all the points you mention is simply the nature of iframes, no news there. we all knew what we are doing when we set these up. we are not looking for deep integration, just something simple to bring people to a "suite of tools". the development effort to implement a JIRA studio ...with some atlassian products, teamcity, sonar, etc is very high. JIRA studio itself is a hack of sorts, since the tools were not designed to be in a 'studio' - although they are adding features to make that easier for them to create studio..like app links, SAL, etc. Ultimately we are the mercy of Atlassian. I just want them be aware "how" we are using their tools so the full impact to customers is understood. especially when we have over 30 jira instances.

            timmjd added a comment -

            The idea with this IFrame thingey is, that you have a portal side where you can switch fast between bugtracker, sourcecode, wiki, build, whatever, ... from just one page.

            • No "back to portal page", not another dns name whatever. Just 1 Page and you can find and switch between everything you need....just like Jira Studio hosted @ home

            So this "hack" with the "puting everything into IFrames" isn't a good solution at all: Your browser bar don't display the correct links and a reload ends up where you started from

            If this IFrame hack isn't a good solution and should be avoidet (also my thoughts): Is there a way of getting the plugins (or another inspiring workaround) to integrate a custom header into Jira, Confluence, Fisheye, etc. ... to build a "Portal inside the Header Page" like Jira Studio does? (Alex mentioned top-navigation, but can't find on the web)

            timmjd added a comment - The idea with this IFrame thingey is, that you have a portal side where you can switch fast between bugtracker, sourcecode, wiki, build, whatever, ... from just one page. No "back to portal page", not another dns name whatever. Just 1 Page and you can find and switch between everything you need....just like Jira Studio hosted @ home So this "hack" with the "puting everything into IFrames" isn't a good solution at all: Your browser bar don't display the correct links and a reload ends up where you started from If this IFrame hack isn't a good solution and should be avoidet (also my thoughts): Is there a way of getting the plugins (or another inspiring workaround) to integrate a custom header into Jira, Confluence, Fisheye, etc. ... to build a "Portal inside the Header Page" like Jira Studio does? (Alex mentioned top-navigation, but can't find on the web)

            You know, their answer represents a lack of understanding by atlassian on how their tools are used. Otherwise, this would have some priority. And testing their tools in Iframes would be part of their testing process.

            we have over 30 jira instances and growing - this will be a somewhat rude awakening as we have dev efforts ongoing around 'portalizing' our sdlc tools. - like many organizations have done.

            Trevor Samaroo added a comment - You know, their answer represents a lack of understanding by atlassian on how their tools are used. Otherwise, this would have some priority. And testing their tools in Iframes would be part of their testing process. we have over 30 jira instances and growing - this will be a somewhat rude awakening as we have dev efforts ongoing around 'portalizing' our sdlc tools. - like many organizations have done.

            I would prefer "Open & answered". Thanks for the answer, it it still kind of unsatisfying since this issues indeed breaks portals/sides including one of mine.

            Timo Gronwald added a comment - I would prefer "Open & answered". Thanks for the answer, it it still kind of unsatisfying since this issues indeed breaks portals/sides including one of mine.

            Thanks.

            is any of that work available for us (open source/or commercial source for paying customers)? i do remember at the atlascamp, don mentioned it was modifications on each tool and using application links as well.

            Trevor Samaroo added a comment - Thanks. is any of that work available for us (open source/or commercial source for paying customers)? i do remember at the atlascamp, don mentioned it was modifications on each tool and using application links as well.

            JIRA Studio does not use iframe to embed JIRA and other Atlassian products. Instead, a set of plugins are installed in each product. Specifically, the Studio plugin for JIRA has a top-navigation plugin module that replaces JIRA's header.

            Alex Wei (DE) added a comment - JIRA Studio does not use iframe to embed JIRA and other Atlassian products. Instead, a set of plugins are installed in each product. Specifically, the Studio plugin for JIRA has a top-navigation plugin module that replaces JIRA's header.

            Sorry, I don't understand. You regressed, you broke alot of company's portals, etc.

            can you explain how JIRA studio works then?

            Trevor Samaroo added a comment - Sorry, I don't understand. You regressed, you broke alot of company's portals, etc. can you explain how JIRA studio works then?

            As Jeff as discovered, this issue is not a trival fix. With the introduction of the richer UI in 4.2 (for example Dialogs & Auto-complete fields), it's made it harder to maintain support for customisations that run JIRA from within an IFrame. For this reason, GreenHopper will replace their IFrames with JIRA dialogs, the first step of which occurred in GreenHopper 5.3.

            With more than 1600 unresolved issues, we have to pick our battles and unfortunately, I can't see us being able to commit to fixing this issue in the near future and ensure that it continues to work going forward. For this reason, I'm closing this issue as "Won't Fix" rather than leaving this issue "Open" & unanswered.

            I appreciate your understanding,

            Cheers,
            Peter

            Peter Leschev added a comment - As Jeff as discovered, this issue is not a trival fix. With the introduction of the richer UI in 4.2 (for example Dialogs & Auto-complete fields), it's made it harder to maintain support for customisations that run JIRA from within an IFrame. For this reason, GreenHopper will replace their IFrames with JIRA dialogs, the first step of which occurred in GreenHopper 5.3. With more than 1600 unresolved issues, we have to pick our battles and unfortunately, I can't see us being able to commit to fixing this issue in the near future and ensure that it continues to work going forward. For this reason, I'm closing this issue as "Won't Fix" rather than leaving this issue "Open" & unanswered. I appreciate your understanding, Cheers, Peter

            Jeff Lamb added a comment - - edited

            Ah - didn't realize it was a regression. That should make it easier to fix.

            No - I'm not a jira developer. I just find that fixing bugs or writing plugins myself tends to be faster than waiting for the devs to get around to fixing my reported issues.

            If it helps at all, it looks like the errors are being thrown in ajs.gadgets.js around the line "window.top.AG && window.top.AG.DashboardManager;". If you use firebug, you can see a bunch of JS errors there.

            Unfortunately, I haven't been able to figure out how to recompile the minified/combined code into common.js so it's readable (not minified) by firebug. All I did was modify the LayerManager-min.js file directly before, but it appears the ajs-gadgets folder is built using build.xml somehow. Not sure how Atlassian does it...

            Jeff Lamb added a comment - - edited Ah - didn't realize it was a regression. That should make it easier to fix. No - I'm not a jira developer. I just find that fixing bugs or writing plugins myself tends to be faster than waiting for the devs to get around to fixing my reported issues. If it helps at all, it looks like the errors are being thrown in ajs.gadgets.js around the line "window.top.AG && window.top.AG.DashboardManager;". If you use firebug, you can see a bunch of JS errors there. Unfortunately, I haven't been able to figure out how to recompile the minified/combined code into common.js so it's readable (not minified) by firebug. All I did was modify the LayerManager-min.js file directly before, but it appears the ajs-gadgets folder is built using build.xml somehow. Not sure how Atlassian does it...

            ultimately, if we diff jira 4.0.2 and 4.1.2 should show what changed that cause the regression bug. my comment on the "quick fix" was, albeit not based on all the facts, only referring to the fact that it should not be hard for the jira developers to pinpoint what changed and why. Jeff are you a jira developer?

            Trevor Samaroo added a comment - ultimately, if we diff jira 4.0.2 and 4.1.2 should show what changed that cause the regression bug. my comment on the "quick fix" was, albeit not based on all the facts, only referring to the fact that it should not be hard for the jira developers to pinpoint what changed and why. Jeff are you a jira developer?

            Jeff Lamb added a comment -

            So that fixes it for this instance. It breaks for the same reason in another place, which causes most dashboard items to not load. Investigating.

            Jeff Lamb added a comment - So that fixes it for this instance. It breaks for the same reason in another place, which causes most dashboard items to not load. Investigating.

            Jeff Lamb added a comment -

            Ok, just make getWindow() return "window" and it works in FF, Chrome and IE. I haven't found it breaks anything yet. Honestly, I don't know what this code is trying to do anyway. If anyone knows what hiding "currentLayerItem" accomplishes, and why you'd want to do it, I'm all ears.

            Left the old code in just for reference.

                function getWindow () {
                    return window;
                    if (window.top) {
                        return window.top;
                    } else {
                        return window;
                    }
                }
            

            Jeff Lamb added a comment - Ok, just make getWindow() return "window" and it works in FF, Chrome and IE. I haven't found it breaks anything yet. Honestly, I don't know what this code is trying to do anyway. If anyone knows what hiding "currentLayerItem" accomplishes, and why you'd want to do it, I'm all ears. Left the old code in just for reference. function getWindow () { return window; if (window.top) { return window.top; } else { return window; } }

            Jeff Lamb added a comment -

            I spent some time looking into this issue. The issue is not as easy as you're making it out to be.
            Cross-domain javascript calls are disabled for security reasons in FF. You need to employ a non-trivial hack to get around this.

            http://stackoverflow.com/questions/926137/why-dont-i-get-a-same-origin-policy-warning-when-using-the-google-maps-api

            I'll look into it a bit more to see if I can figure out a way to make it work.

            Jeff Lamb added a comment - I spent some time looking into this issue. The issue is not as easy as you're making it out to be. Cross-domain javascript calls are disabled for security reasons in FF. You need to employ a non-trivial hack to get around this. http://stackoverflow.com/questions/926137/why-dont-i-get-a-same-origin-policy-warning-when-using-the-google-maps-api I'll look into it a bit more to see if I can figure out a way to make it work.

            I also would appreciate a solution, or for first a response!

            Timo Gronwald added a comment - I also would appreciate a solution, or for first a response!

            can an atlassian developer please comment on this? we all know its a fairly quick fix.

            Trevor Samaroo added a comment - can an atlassian developer please comment on this? we all know its a fairly quick fix.

            This is also a major problem for us.
            Is there another way to "embed" Jira than using iframes?

            Marc-Etienne Vargenau added a comment - This is also a major problem for us. Is there another way to "embed" Jira than using iframes?

            Well yeah, but in my case I do not make that Frame, it is a redirect Frame from my provider and Jira runs on a server via DynDNS, which means I can not change it. I need the Frame since that is the only way to redirect with parameters. Any other redirect method from my provider cuts of the paramters ;(

            Timo Gronwald added a comment - Well yeah, but in my case I do not make that Frame, it is a redirect Frame from my provider and Jira runs on a server via DynDNS, which means I can not change it. I need the Frame since that is the only way to redirect with parameters. Any other redirect method from my provider cuts of the paramters ;(

            ok, got it. it does work in FF if your webpage with the iframe is on the same host as JIRA. cross site perm issues

            Trevor Samaroo added a comment - ok, got it. it does work in FF if your webpage with the iframe is on the same host as JIRA. cross site perm issues

            i think you are right about FF. i noticed only a few days later.. .

            Trevor Samaroo added a comment - i think you are right about FF. i noticed only a few days later.. .

            Timo Gronwald added a comment - - edited

            I have the same problem, I urgently ask Atlassian to look into this. The above code did not fix it for me.
            I may add that IE and Chrome work (shomehow, I can not say if it perfect) and FF and Opera definitely do not work.

            Timo Gronwald added a comment - - edited I have the same problem, I urgently ask Atlassian to look into this. The above code did not fix it for me. I may add that IE and Chrome work (shomehow, I can not say if it perfect) and FF and Opera definitely do not work.

            Jeff Lamb added a comment - - edited

            The .bind("showLayer") function already has the if statement. You need to add the if statements to the .bind("hideLayer") and .click() functions as well. The correct code follows. You can simply copy/paste this into LayerManager-min.js and restart the Jira service to resolve this issue. Yes, this code should be minimized, but it works fine as is.

            Thanks Trevor.

            (function () {
            
                var $doc = jQuery(document);
            
                function getWindow () {
                    if (window.top) {
                        return window.top;
                    } else {
                        return window;
                    }
                }
            
                function listenForLayerEvents ($doc) {
                    $doc.bind("showLayer", function (e, type, item) {
                        var topWindow = getWindow().AJS;
                        if (topWindow != null && topWindow.currentLayerItem != null) {
                            if (topWindow.currentLayerItem && topWindow.currentLayerItem.type !== "popup"
                                    && item !== topWindow.currentLayerItem) {
                                topWindow.currentLayerItem.hide();
                            }
                            if (item) {
                                topWindow.currentLayerItem = item;
                                topWindow.currentLayerItem.type = type;
                            }
                        }
                    })
                    .bind("hideLayer", function (e, type, item) {
                        var topWindow = getWindow().AJS;
                        if (topWindow != null && topWindow.currentLayerItem != null) {
                            if (topWindow.currentLayerItem && item === topWindow.currentLayerItem) {
                                topWindow.currentLayerItem = null;
                            }
                        }
                    })
                    .click(function () {
                        var topWindow = getWindow().AJS;
                        if (topWindow != null && topWindow.currentLayerItem != null) {
                            if (topWindow.currentLayerItem && topWindow.currentLayerItem.type !== "popup") {
                                topWindow.currentLayerItem.hide();
                            }
                        }
                    });
                }
            
                $doc.bind("iframeAppended", function (e, iframe) {
                    iframe = jQuery(iframe);
                    iframe.load(function () {
                        listenForLayerEvents(iframe.contents());
                    });
                });
            
                listenForLayerEvents($doc);
            })();
            

            Jeff Lamb added a comment - - edited The .bind("showLayer") function already has the if statement. You need to add the if statements to the .bind("hideLayer") and .click() functions as well. The correct code follows. You can simply copy/paste this into LayerManager-min.js and restart the Jira service to resolve this issue. Yes, this code should be minimized, but it works fine as is. Thanks Trevor. (function () { var $doc = jQuery(document); function getWindow () { if (window.top) { return window.top; } else { return window; } } function listenForLayerEvents ($doc) { $doc.bind( "showLayer" , function (e, type, item) { var topWindow = getWindow().AJS; if (topWindow != null && topWindow.currentLayerItem != null ) { if (topWindow.currentLayerItem && topWindow.currentLayerItem.type !== "popup" && item !== topWindow.currentLayerItem) { topWindow.currentLayerItem.hide(); } if (item) { topWindow.currentLayerItem = item; topWindow.currentLayerItem.type = type; } } }) .bind( "hideLayer" , function (e, type, item) { var topWindow = getWindow().AJS; if (topWindow != null && topWindow.currentLayerItem != null ) { if (topWindow.currentLayerItem && item === topWindow.currentLayerItem) { topWindow.currentLayerItem = null ; } } }) .click(function () { var topWindow = getWindow().AJS; if (topWindow != null && topWindow.currentLayerItem != null ) { if (topWindow.currentLayerItem && topWindow.currentLayerItem.type !== "popup" ) { topWindow.currentLayerItem.hide(); } } }); } $doc.bind( "iframeAppended" , function (e, iframe) { iframe = jQuery(iframe); iframe.load(function () { listenForLayerEvents(iframe.contents()); }); }); listenForLayerEvents($doc); })();

            to be clear, we changed a number of conditionals to the longer form to do extra checks. The file in question is in JIRA_INSTALL/atlassian-jira/includes/js

            Trevor Samaroo added a comment - to be clear, we changed a number of conditionals to the longer form to do extra checks. The file in question is in JIRA_INSTALL/atlassian-jira/includes/js

            we've managed to fix this by amending LayerManager-min.js. a number of conditonals like "if (topWindow)" was changed to "if(topWindow != null && topWindow.currentLayerItem != null)".

            Trevor Samaroo added a comment - we've managed to fix this by amending LayerManager-min.js. a number of conditonals like "if (topWindow)" was changed to "if(topWindow != null && topWindow.currentLayerItem != null)".

            Any news about this issue?
            Will the issue be fixed in Jira 4.2?

            Thomas Eriksen added a comment - Any news about this issue? Will the issue be fixed in Jira 4.2?

            we would like a resolution to this issue as well. its keeping us from using jira in an integrated way. Thanks!

            Trevor Samaroo added a comment - we would like a resolution to this issue as well. its keeping us from using jira in an integrated way. Thanks!

            Hi, we also also encountered this issue when upgrading to the latest version. We would appreciate resolution of this issue very much ... thanks

            Volker Schneider added a comment - Hi, we also also encountered this issue when upgrading to the latest version. We would appreciate resolution of this issue very much ... thanks

            Hi, I also encountered this issue when upgrading to the latest version.

            Ameesh Kapoor added a comment - Hi, I also encountered this issue when upgrading to the latest version.

            Same problem here, in any kind of frame or iframe. We have opted to upgrade to 4.1 and to stop using the frame, but now Jira is displayed without our system navigation. It is a less elegant solution than I hoped.

            Beth Stewart added a comment - Same problem here, in any kind of frame or iframe. We have opted to upgrade to 4.1 and to stop using the frame, but now Jira is displayed without our system navigation. It is a less elegant solution than I hoped.

            We have the same issue when upgrading to Jira 4.1.1
            I already raised an issue JRA-21153 which has been set as duplicate by Chris Mountford [Atlassian] and he had referred back to this issue.
            Our upgrade plan is getting delayed due to this issue. Appreciate if you can resolve this issue ASAP.

            Karthikeyan added a comment - We have the same issue when upgrading to Jira 4.1.1 I already raised an issue JRA-21153 which has been set as duplicate by Chris Mountford [Atlassian] and he had referred back to this issue. Our upgrade plan is getting delayed due to this issue. Appreciate if you can resolve this issue ASAP.

            We have the same issue when upgrading to Jira 4.1.1

            Thomas Eriksen added a comment - We have the same issue when upgrading to Jira 4.1.1

            The same issue is happening to us. We would appreciate resolution of this bug.

            Vladimir Vladimir added a comment - The same issue is happening to us. We would appreciate resolution of this bug.

            timmjd added a comment -

            Mainly the dropdowns are not displayed

            timmjd added a comment - Mainly the dropdowns are not displayed

              Unassigned Unassigned
              e344fc75dcd2 timmjd
              Affected customers:
              14 This affects my team
              Watchers:
              40 Start watching this issue

                Created:
                Updated:
                Resolved: