Author: taylor Date: Thu Oct 22 03:52:18 2015 New Revision: 1709946 URL: http://svn.apache.org/viewvc?rev=1709946&view=rev Log: JS2-1341: implemented detached portlet rendering for page pipeline
Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-pages/template.tpsml portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-ui-pages/template.tpsml portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/max-responsive/layout.vm portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/maximized/layout.vm portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/ui-pages/template.tpsml portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/bootstrap-blue/header.vm portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/greenearth/css/styles.css portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/jetspeed/header.vm portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/purpleplanet/css/styles.css portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/turbo/css/styles.css portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/jetui/yui/jetui.jsp Thu Oct 22 03:52:18 2015 @@ -314,13 +314,17 @@ for (ContentFragment fragment : columnLa String h = fragment.getProperty(ContentFragment.HEIGHT_PROPERTY_NAME); String w = fragment.getProperty(ContentFragment.WIDTH_PROPERTY_NAME); int row = fragment.getLayoutRow(); - int col = fragment.getLayoutColumn(); + int col = fragment.getLayoutColumn(); + String xpos = fragment.getProperty(ContentFragment.XPOS_PROPERTY_NAME); + if (xpos == null) xpos = "top"; + String ypos = fragment.getProperty(ContentFragment.YPOS_PROPERTY_NAME); + if (ypos == null) ypos = "left"; String content = jetui.getRenderedContent((ContentFragment)fragment, rc); Decoration.ActionsOption option = fragment.getDecoration().getActionsOption(); if (option == Decoration.ActionsOption.HIDE) // TODO: HOVER, DROP DOWN not yet implemented { %> - <div id='<%=fragment.getId()%>' detached='true' locked='<%=fragment.isLocked()%>' name='<%=fragment.getName()%>' column='<%=col%>' row='<%=row%>' x='<%=x%>' y='<%=y%>' style='position: absolute; top: <%=x%>px; left: <%=y%>px; height: <%=h%>px; width: <%=w%>px;'> + <div id='<%=fragment.getId()%>' detached='true' locked='<%=fragment.isLocked()%>' name='<%=fragment.getName()%>' column='<%=col%>' row='<%=row%>' x='<%=x%>' y='<%=y%>' style='position: absolute; <%=xpos%>: <%=x%>px; <%=ypos%>: <%=y%>px; <% if (h != null) { %> height: <%=h%>px; <% } %> <% if (w != null) { %> width: <%=w%>px; <% } %>'> <%=content%> </div> <% } else { Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-pages/template.tpsml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-pages/template.tpsml?rev=1709946&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-pages/template.tpsml (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-pages/template.tpsml Thu Oct 22 03:52:18 2015 @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<page-template id="definition" + xmlns="http://portals.apache.org/jetspeed" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.2/schemas/tpsml.xsd"> + + <title>TEMPLATE</title> + + <fragment id="template-top2" type="layout" name="jetspeed-layouts::VelocityOneColumn"> + + <fragment id="jsSearch" type="portlet" name="j2-admin::SearchPortlet" decorator='clear'> + <property name="y" value="200"></property> + <property name="x" value="12"></property> + <property name='ypos' value='right'></property> + <property name='xpos' value='top'></property> + <property name="state" value="detach"></property> + </fragment> + + <page-fragment id="page-template"> + <property name="row" value="0"></property> + <property name="column" value="0"></property> + </page-fragment> + + </fragment> + +</page-template> + + Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-ui-pages/template.tpsml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-ui-pages/template.tpsml?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-ui-pages/template.tpsml (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/min-ui-pages/template.tpsml Thu Oct 22 03:52:18 2015 @@ -22,6 +22,14 @@ limitations under the License. <fragment id="template-top2" type="layout" name="jetspeed-layouts::VelocityThreeColumns"> <property name="sizes" value="15%,70%,15%"></property> + <fragment id="jsSearch" type="portlet" name="j2-admin::SearchPortlet" decorator='clear'> + <property name="y" value="200"></property> + <property name="x" value="12"></property> + <property name='ypos' value='right'></property> + <property name='xpos' value='top'></property> + <property name="state" value="detach"></property> + </fragment> + <fragment id="jsSpaceNavigator" type="portlet" name="j2-admin::SpaceNavigator" decorator='clear'> <property name="y" value="300"></property> <property name="x" value="20"></property> Added: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml?rev=1709946&view=auto ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml (added) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/pages/template.tpsml Thu Oct 22 03:52:18 2015 @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +--> +<page-template id="definition" + xmlns="http://portals.apache.org/jetspeed" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://portals.apache.org/jetspeed http://portals.apache.org/jetspeed-2/2.2/schemas/tpsml.xsd"> + + <title>TEMPLATE</title> + + <fragment id="template-top2" type="layout" name="jetspeed-layouts::VelocityOneColumn"> + + <fragment id="jsSearch" type="portlet" name="j2-admin::SearchPortlet" decorator='clear'> + <property name="y" value="200"></property> + <property name="x" value="12"></property> + <property name='ypos' value='right'></property> + <property name='xpos' value='top'></property> + <property name="state" value="detach"></property> + </fragment> + + <page-fragment id="page-template"> + <property name="row" value="0"></property> + <property name="column" value="0"></property> + </page-fragment> + + </fragment> + +</page-template> + + Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/columns/layout.vm Thu Oct 22 03:52:18 2015 @@ -409,4 +409,20 @@ limitations under the License. <input type='hidden' name='page' value='$myPage'/> </form> #parse($myFragment.decoration.footer) -#end \ No newline at end of file +#end + +#foreach($dt in ${columnLayout.getDetachedPortlets()}) +#if($dt.getProperty("xpos")) + #set($xpos = $dt.getProperty("xpos")) +#else + #set($xpos = "top") +#end +#if($dt.getProperty("ypos")) + #set($ypos = $dt.getProperty("ypos")) +#else + #set($ypos = "left") +#end +<div id='$dt.id' name='$dt.name' style='position: absolute; ${xpos}: ${dt.getProperty("x")}px; ${ypos}: ${dt.getProperty("y")}px;'> + $dt.renderedContent +</div> +#end Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/max-responsive/layout.vm URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/max-responsive/layout.vm?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/max-responsive/layout.vm (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/max-responsive/layout.vm Thu Oct 22 03:52:18 2015 @@ -40,3 +40,19 @@ limitations under the License. #if ($rootFragment.decoration.footer) #parse($rootFragment.decoration.footer) #end + +#foreach($dt in ${columnLayout.getDetachedPortlets()}) +#if($dt.getProperty("xpos")) + #set($xpos = $dt.getProperty("xpos")) +#else + #set($xpos = "top") +#end +#if($dt.getProperty("ypos")) + #set($ypos = $dt.getProperty("ypos")) +#else + #set($ypos = "left") +#end +<div id='$dt.id' name='$dt.name' style='position: absolute; ${xpos}: ${dt.getProperty("x")}px; ${ypos}: ${dt.getProperty("y")}px;'> + $dt.renderedContent +</div> +#end Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/maximized/layout.vm URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/maximized/layout.vm?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/maximized/layout.vm (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/templates/layout/html/maximized/layout.vm Thu Oct 22 03:52:18 2015 @@ -40,3 +40,19 @@ limitations under the License. #if ($rootFragment.decoration.footer) #parse($rootFragment.decoration.footer) #end + +#foreach($dt in ${columnLayout.getDetachedPortlets()}) +#if($dt.getProperty("xpos")) + #set($xpos = $dt.getProperty("xpos")) +#else + #set($xpos = "top") +#end +#if($dt.getProperty("ypos")) + #set($ypos = $dt.getProperty("ypos")) +#else + #set($ypos = "left") +#end +<div id='$dt.id' name='$dt.name' style='position: absolute; ${xpos}: ${dt.getProperty("x")}px; ${ypos}: ${dt.getProperty("y")}px;'> + $dt.renderedContent +</div> +#end Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/ui-pages/template.tpsml URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/ui-pages/template.tpsml?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/ui-pages/template.tpsml (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/WEB-INF/ui-pages/template.tpsml Thu Oct 22 03:52:18 2015 @@ -22,6 +22,14 @@ limitations under the License. <fragment id="template-top2" type="layout" name="jetspeed-layouts::VelocityThreeColumns"> <property name="sizes" value="15%,70%,15%"></property> + <fragment id="jsSearch" type="portlet" name="j2-admin::SearchPortlet" decorator='clear'> + <property name="y" value="200"></property> + <property name="x" value="12"></property> + <property name='ypos' value='right'></property> + <property name='xpos' value='top'></property> + <property name="state" value="detach"></property> + </fragment> + <fragment id="jsSpaceNavigator" type="portlet" name="j2-admin::SpaceNavigator" decorator='clear'> <property name="y" value="300"></property> <property name="x" value="20"></property> Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/bootstrap-blue/header.vm URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/bootstrap-blue/header.vm?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/bootstrap-blue/header.vm (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/bootstrap-blue/header.vm Thu Oct 22 03:52:18 2015 @@ -104,11 +104,6 @@ else if (window.attachEvent) // Microsof #if (!$jetspeed.isAjaxCustomizationEnabled()) #PageActionBar() #end -#foreach($dt in ${columnLayout.getDetachedPortlets()}) -<div id='$dt.id' name='$dt.name' style='position: absolute; top: ${dt.getProperty("x")}px; right: ${dt.getProperty("y")}px;'> - $dt.renderedContent -</div> -#end <!-- end of header --> <div id="layout-${rootFragment.id}" class="layout-main #PageBaseCSSClass()" > <div class="header"> Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/greenearth/css/styles.css URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/greenearth/css/styles.css?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/greenearth/css/styles.css (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/greenearth/css/styles.css Thu Oct 22 03:52:18 2015 @@ -400,7 +400,7 @@ color: #012d46; .layout-greenearth .header { width:100%; background:#79b400; - border-bottom:4px solid #97b7c8; + border-bottom:4px solid #eef0f0; margin:0px; } Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/jetspeed/header.vm URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/jetspeed/header.vm?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/jetspeed/header.vm (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/jetspeed/header.vm Thu Oct 22 03:52:18 2015 @@ -102,11 +102,6 @@ else if (window.attachEvent) // Microsof #if (!$jetspeed.isAjaxCustomizationEnabled()) #PageActionBar() #end -#foreach($dt in ${columnLayout.getDetachedPortlets()}) -<div id='$dt.id' name='$dt.name' style='position: absolute; top: ${dt.getProperty("x")}px; right: ${dt.getProperty("y")}px;'> - $dt.renderedContent -</div> -#end <!-- end of header --> <div id="layout-${rootFragment.id}" class="#PageBaseCSSClass()" > <div class="header"> @@ -152,4 +147,3 @@ else if (window.attachEvent) // Microsof ## $jetspeed.include($jetspeed.currentFragment) <!-- END: layout/html/tigris/decorator.vm --> - \ No newline at end of file Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/purpleplanet/css/styles.css URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/purpleplanet/css/styles.css?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/purpleplanet/css/styles.css (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/purpleplanet/css/styles.css Thu Oct 22 03:52:18 2015 @@ -400,7 +400,7 @@ color: #012d46; .layout-purpleplanet .header { width:100%; background:#32004b; - border-bottom:4px solid #9933ff; + border-bottom:4px solid #eef0f0; margin:0px; } Modified: portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/turbo/css/styles.css URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/turbo/css/styles.css?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/turbo/css/styles.css (original) +++ portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/decorations/layout/turbo/css/styles.css Thu Oct 22 03:52:18 2015 @@ -16,43 +16,43 @@ limitations under the License. */ @import url("../../css/portal-standard.css"); - - -* { margin:0; padding:0; } - -body, div, span, a, form, li, ul, ol, input, select, textarea, button, pre, blockquote, label, h1, h2, h3, h4, td, tr, th, tbody, table, p, iframe, img { - padding:0px;margin:0px; - white-space:normal; - font-weight:normal; + + +* { margin:0; padding:0; } + +body, div, span, a, form, li, ul, ol, input, select, textarea, button, pre, blockquote, label, h1, h2, h3, h4, td, tr, th, tbody, table, p, iframe, img { + padding:0px;margin:0px; + white-space:normal; + font-weight:normal; font-family: Tahoma, Verdana, Helvetica, Arial, sans-serif; voice-family: "\"}\""; - voice-family: inherit; - font-size:8pt; -} + voice-family: inherit; + font-size:8pt; +} body { background: #fff;; -} - -textarea, button, select, form { - padding:1px; -} - -p { - margin-top:4px; - margin-bottom:4px; -} - -h2 { - margin-bottom:6px; - color:#12293f; - font-size:9pt; - font-weight:bold; -} - -h3 { - margin-bottom:4px; - text-decoration:underline; +} + +textarea, button, select, form { + padding:1px; +} + +p { + margin-top:4px; + margin-bottom:4px; +} + +h2 { + margin-bottom:6px; + color:#12293f; + font-size:9pt; + font-weight:bold; +} + +h3 { + margin-bottom:4px; + text-decoration:underline; } /** @@ -179,38 +179,38 @@ background-position: 0px -30px width:10px; padding-left: 0px; padding-right: 9px; -} - -.layout-turbo .menu { +} + +.layout-turbo .menu { background:url(../images/js-gradient.png) #f0f0f0; - padding:1px; - border-top:1px solid #033563; -} - -.layout-turbo .menu a { - color:#012d46; - text-decoration:none; -} - -.layout-turbo .menu a:hover { - color:#012d46; - text-decoration:underline; -} + padding:1px; + border-top:1px solid #033563; +} + +.layout-turbo .menu a { + color:#012d46; + text-decoration:none; +} + +.layout-turbo .menu a:hover { + color:#012d46; + text-decoration:underline; +} .layout-turbo .tabs { - list-style-type:none; - list-style-position:inside; + list-style-type:none; + list-style-position:inside; display:table; -} - -.layout-turbo .tabs li { - float:left; - display:inline; - border-collapse:collapse; - margin-right:10px; - padding: 3px; - color:#fff; -} +} + +.layout-turbo .tabs li { + float:left; + display:inline; + border-collapse:collapse; + margin-right:10px; + padding: 3px; + color:#fff; +} .layout-turbo #banner h1 { font-size: 1.25em; @@ -267,7 +267,7 @@ color: #012d46; } .layout-turbo #leftcol a:active, .layout-turbo #leftcol a:hover { - color: #000000 !important; + color: #000000 !important; text-decoration: underline; } @@ -389,26 +389,26 @@ color: #012d46; { font-family: Verdana,sans-serif; font-size: 8pt; -} +} .layout-turbo td{ font-size:8pt; font-family: Verdana,sans-serif; vertical-align: top; } - -.layout-turbo .header { - width:100%; + +.layout-turbo .header { + width:100%; background:#193b53; - border-bottom:4px solid #eef0f0; - margin:0px; -} + border-bottom:4px solid #ffffff; + margin:0px; +} .layout-turbo .logo { text-indent: -9999px; background: url("../images/jetspeedlogo-flame.png") no-repeat; -background-position: 0px 0px; -height:35px; +background-position: 0px 0px; +height:35px; padding:3px; } @@ -418,10 +418,10 @@ padding:3px; position: absolute; right: 5px; top: 5px; z-index: 10; -color: #fff; -padding:2px; +color: #fff; +padding:2px; text-decoration:none; -} +} .layout-turbo .layout-search { position: absolute; @@ -458,7 +458,7 @@ font-size:8pt; } -.layout-turbo .layout-turbo-logout:hover{ +.layout-turbo .layout-turbo-logout:hover{ text-decoration: underline; } Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-layout-portlets/src/main/java/org/apache/jetspeed/portlets/layout/MultiColumnPortlet.java Thu Oct 22 03:52:18 2015 @@ -144,7 +144,12 @@ public class MultiColumnPortlet extends PortletWindow window = context.getPortalURL().getNavigationalState().getMaximizedWindow(); if (window != null) { + ContentFragment f = getFragment(request, false); + String[] fragmentColumnSizesArray = new String[0]; + ColumnLayout layout = constructColumnLayout(f, layoutType, fragmentColumnSizesArray); + request.setAttribute("columnLayout", layout); super.doView(request, response); + request.removeAttribute("columnLayout"); return; } Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PageAggregatorImpl.java Thu Oct 22 03:52:18 2015 @@ -16,9 +16,6 @@ */ package org.apache.jetspeed.aggregator.impl; -import java.io.IOException; -import java.util.List; - import org.apache.jetspeed.PortalReservedParameters; import org.apache.jetspeed.aggregator.PageAggregator; import org.apache.jetspeed.aggregator.PortletRenderer; @@ -29,6 +26,9 @@ import org.apache.jetspeed.om.page.Conte import org.apache.jetspeed.om.page.ContentPage; import org.apache.jetspeed.request.RequestContext; +import java.io.IOException; +import java.util.List; + /** * ContentPageAggregator builds the content required to render a page of portlets. * @@ -70,6 +70,7 @@ public class PageAggregatorImpl extends if (null != window) { + renderDetachedPortlets(root, context, page); renderMaximizedWindow(context, page, root, window); } else @@ -106,5 +107,25 @@ public class PageAggregatorImpl extends } renderer.renderNow(f, context); } - + + @SuppressWarnings("unchecked") + protected void renderDetachedPortlets( ContentFragment f, RequestContext context, ContentPage page ) + { + List<ContentFragment> contentFragments = f.getFragments(); + + if (contentFragments != null && !contentFragments.isEmpty()) + { + for (ContentFragment child : contentFragments) + { + if (!"hidden".equals(f.getState())) { + renderDetachedPortlets(child, context, page); + } + } + } + String fragmentState = f.getProperty("state"); + if (fragmentState != null && fragmentState.equalsIgnoreCase("detach")) { + renderer.renderNow(f, context); + } + } + } Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java (original) +++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/ui/Jetui.java Thu Oct 22 03:52:18 2015 @@ -17,14 +17,6 @@ package org.apache.jetspeed.ui; -import java.security.Principal; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import javax.servlet.RequestDispatcher; - import org.apache.jetspeed.administration.PortalConfiguration; import org.apache.jetspeed.aggregator.PortletRenderer; import org.apache.jetspeed.container.PortletWindow; @@ -47,6 +39,13 @@ import org.apache.jetspeed.security.User import org.apache.jetspeed.util.HeadElementUtils; import org.apache.jetspeed.util.KeyValue; +import javax.servlet.RequestDispatcher; +import java.security.Principal; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + /** * * @author <a href="mailto:da...@bluesunrise.com">David Sean Taylor</a> @@ -123,7 +122,8 @@ public class Jetui else { ColumnLayout columnLayout = new ColumnLayout(1, "maximized", rootFragment.getFragments(), new String[] { "100%" }, maximized); - request.setAttribute("columnLayout", columnLayout); + columnLayout.buildDetachedPortletList(request.getPage().getRootFragment().getFragments()); + request.setAttribute("columnLayout", columnLayout); } dispatcher.include(request.getRequest(), request.getResponse()); } Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/BaseFragmentElement.java Thu Oct 22 03:52:18 2015 @@ -70,11 +70,13 @@ public interface BaseFragmentElement ext * x coordinate standard layout property name */ String X_PROPERTY_NAME = "x"; + String XPOS_PROPERTY_NAME = "xpos"; /** * y coordinate standard layout property name */ String Y_PROPERTY_NAME = "y"; + String YPOS_PROPERTY_NAME = "ypos"; /** * z coordinate standard layout property name Modified: portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/om/page/ContentFragment.java Thu Oct 22 03:52:18 2015 @@ -134,11 +134,13 @@ public interface ContentFragment * x coordinate standard layout property name */ String X_PROPERTY_NAME = BaseFragmentElement.X_PROPERTY_NAME; + String XPOS_PROPERTY_NAME = BaseFragmentElement.XPOS_PROPERTY_NAME; /** * y coordinate standard layout property name */ String Y_PROPERTY_NAME = BaseFragmentElement.Y_PROPERTY_NAME; + String YPOS_PROPERTY_NAME = BaseFragmentElement.YPOS_PROPERTY_NAME; /** * z coordinate standard layout property name Modified: portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java?rev=1709946&r1=1709945&r2=1709946&view=diff ============================================================================== --- portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java (original) +++ portals/jetspeed-2/portal/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/portlets/layout/ColumnLayout.java Thu Oct 22 03:52:18 2015 @@ -167,6 +167,15 @@ public class ColumnLayout implements Ser if (maximized != null) { doAdd(getColumn(maximized), getRow(getColumn(maximized), maximized), maximized); + while (fragmentsItr.hasNext()) + { + ContentFragment fragment = (ContentFragment) fragmentsItr.next(); + String windowState = fragment.getState(); + if (windowState != null && windowState.equals(JetspeedActions.DETACH)) + { + detachedPortlets.add(fragment); + } + } return; } while (fragmentsItr.hasNext()) --------------------------------------------------------------------- To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org