You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by sm...@apache.org on 2007/09/24 21:09:58 UTC
svn commit: r578911 [3/3] - in
/portals/jetspeed-2/branches/JETSPEED-2.1.3/src/webapp/javascript/jetspeed/desktop:
core.js core.src.js
Modified: portals/jetspeed-2/branches/JETSPEED-2.1.3/src/webapp/javascript/jetspeed/desktop/core.src.js
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/branches/JETSPEED-2.1.3/src/webapp/javascript/jetspeed/desktop/core.src.js?rev=578911&r1=578910&r2=578911&view=diff
==============================================================================
--- portals/jetspeed-2/branches/JETSPEED-2.1.3/src/webapp/javascript/jetspeed/desktop/core.src.js (original)
+++ portals/jetspeed-2/branches/JETSPEED-2.1.3/src/webapp/javascript/jetspeed/desktop/core.src.js Mon Sep 24 12:09:58 2007
@@ -25,30 +25,28 @@
* for javascript compression and aggregation is implemented
*/
-dojo.provide("jetspeed.desktop.core");
+dojo.provide( "jetspeed.desktop.core" );
-dojo.require("dojo.lang.*");
-dojo.require("dojo.event.*");
-dojo.require("dojo.io.*");
-dojo.require("dojo.uri.Uri");
-dojo.require("dojo.widget.*");
-dojo.require("dojo.collections.ArrayList");
-dojo.require("dojo.collections.Set");
-dojo.require("jetspeed.common");
+dojo.require( "dojo.lang.*" );
+dojo.require( "dojo.event.*" );
+dojo.require( "dojo.io.*" );
+dojo.require( "dojo.uri.Uri" );
+dojo.require( "dojo.widget.*" );
+dojo.require( "jetspeed.common" );
-// ... jetspeed base objects
+// jetspeed base objects
+
if ( ! window.jetspeed )
- jetspeed = {} ;
+ jetspeed = {};
if ( ! jetspeed.om )
- jetspeed.om = {} ;
-if ( ! jetspeed.ui )
- jetspeed.ui = {} ;
-if ( ! jetspeed.ui.widget )
- jetspeed.ui.widget = {} ;
+ jetspeed.om = {};
+if ( ! jetspeed.debug )
+ jetspeed.debug = {};
+
+// jetspeed.id
-// ... jetspeed.id
jetspeed.id =
{
PAGE: "jetspeedPage",
@@ -56,57 +54,55 @@
DESKTOP: "jetspeedDesktop",
COLUMNS: "jetspeedColumns",
PAGE_CONTROLS: "jetspeedPageControls",
-
- TASKBAR: "jetspeedTaskbar",
- SELECTOR: "jetspeedSelector",
- PORTLET_STYLE_CLASS: "portlet",
- PORTLET_WINDOW_STYLE_CLASS: "dojoFloatingPane",
- PORTLET_WINDOW_GHOST_STYLE_CLASS: "ghostPane",
- PORTLET_WINDOW_ID_PREFIX: "portletWindow_",
-
- PORTLET_PROP_WIDGET_ID: "widgetId",
- PORTLET_PROP_CONTENT_RETRIEVER: "contentRetriever",
- PORTLET_PROP_DESKTOP_EXTENDED: "jsdesktop",
- PORTLET_PROP_WINDOW_POSITION_STATIC: "windowPositionStatic",
- PORTLET_PROP_WINDOW_HEIGHT_TO_FIT: "windowHeightToFit",
- PORTLET_PROP_WINDOW_DECORATION: "windowDecoration",
- PORTLET_PROP_WINDOW_TITLE: "title",
- PORTLET_PROP_WINDOW_ICON: "windowIcon",
- PORTLET_PROP_WIDTH: "width",
- PORTLET_PROP_HEIGHT: "height",
- PORTLET_PROP_LEFT: "left",
- PORTLET_PROP_TOP: "top",
- PORTLET_PROP_COLUMN: "column",
- PORTLET_PROP_ROW: "row",
- PORTLET_PROP_EXCLUDE_PCONTENT: "excludePContent",
- PORTLET_PROP_WINDOW_STATE: "windowState",
-
- PORTLET_PROP_DESKTOP_EXTENDED_STATICPOS: "staticpos",
- PORTLET_PROP_DESKTOP_EXTENDED_FITHEIGHT: "fitheight",
- PORTLET_PROP_DESKTOP_EXTENDED_PROP_SEPARATOR: "=",
- PORTLET_PROP_DESKTOP_EXTENDED_PAIR_SEPARATOR: ";",
+ P_CLASS: "portlet",
+ PWIN_CLASS: "portletWindow",
+ PWIN_GHOST_CLASS: "ghostPane",
+ PW_ID_PREFIX: "pw_",
+
+ // ... pp - portlet props
+ PP_WIDGET_ID: "widgetId",
+ PP_CONTENT_RETRIEVER: "contentRetriever",
+ PP_DESKTOP_EXTENDED: "jsdesktop",
+ PP_WINDOW_POSITION_STATIC: "windowPositionStatic",
+ PP_WINDOW_HEIGHT_TO_FIT: "windowHeightToFit",
+ PP_WINDOW_DECORATION: "windowDecoration",
+ PP_WINDOW_TITLE: "title",
+ PP_WINDOW_ICON: "windowIcon",
+ PP_WIDTH: "width",
+ PP_HEIGHT: "height",
+ PP_LEFT: "left",
+ PP_TOP: "top",
+ PP_COLUMN: "column",
+ PP_ROW: "row",
+ PP_EXCLUDE_PCONTENT: "excludePContent",
+ PP_WINDOW_STATE: "windowState",
+
+ PP_STATICPOS: "staticpos",
+ PP_FITHEIGHT: "fitheight",
+ PP_PROP_SEPARATOR: "=",
+ PP_PAIR_SEPARATOR: ";",
// these constants for action names are defined because they have special meaning to desktop (ie. this is not a list of all supported actions)
- ACTION_NAME_MENU: "menu",
- ACTION_NAME_MINIMIZE: "minimized",
- ACTION_NAME_MAXIMIZE: "maximized",
- ACTION_NAME_RESTORE: "normal",
- ACTION_NAME_PRINT: "print",
- ACTION_NAME_EDIT: "edit",
- ACTION_NAME_VIEW: "view",
- ACTION_NAME_HELP: "help",
- ACTION_NAME_ADDPORTLET: "addportlet",
- ACTION_NAME_REMOVEPORTLET: "removeportlet",
-
- ACTION_NAME_DESKTOP_TILE: "tile",
- ACTION_NAME_DESKTOP_UNTILE: "untile",
- ACTION_NAME_DESKTOP_HEIGHT_EXPAND: "heightexpand",
- ACTION_NAME_DESKTOP_HEIGHT_NORMAL: "heightnormal",
-
- ACTION_NAME_LOAD_RENDER: "loadportletrender",
- ACTION_NAME_LOAD_ACTION: "loadportletaction",
- ACTION_NAME_LOAD_UPDATE: "loadportletupdate",
+ ACT_MENU: "menu",
+ ACT_MINIMIZE: "minimized",
+ ACT_MAXIMIZE: "maximized",
+ ACT_RESTORE: "normal",
+ ACT_PRINT: "print",
+ ACT_EDIT: "edit",
+ ACT_VIEW: "view",
+ ACT_HELP: "help",
+ ACT_ADDPORTLET: "addportlet",
+ ACT_REMOVEPORTLET: "removeportlet",
+
+ ACT_DESKTOP_TILE: "tile",
+ ACT_DESKTOP_UNTILE: "untile",
+ ACT_DESKTOP_HEIGHT_EXPAND: "heightexpand",
+ ACT_DESKTOP_HEIGHT_NORMAL: "heightnormal",
+
+ ACT_LOAD_RENDER: "loadportletrender",
+ ACT_LOAD_ACTION: "loadportletaction",
+ ACT_LOAD_UPDATE: "loadportletupdate",
PORTLET_ACTION_TYPE_MODE: "mode",
PORTLET_ACTION_TYPE_STATE: "state",
@@ -117,10 +113,12 @@
PG_ED_PARAM: "editPage",
PORTAL_ORIGINATE_PARAMETER: "portal",
- DEBUG_WINDOW_TAG: "js-dojo-debug"
+ DEBUG_WINDOW_TAG: "js-db"
};
-// ... jetspeed desktop preferences - defaults
+
+// jetspeed desktop preferences - defaults
+
jetspeed.prefs =
{
windowTiling: true, // false indicates no-columns, free-floating windows
@@ -156,12 +154,11 @@
portletSelectorWindowIcon: "text-x-script.png",
portletSelectorBounds: { x: 20, y: 20, width: 400, height: 600 },
- windowActionButtonOrder: [ jetspeed.id.ACTION_NAME_MENU, "edit", "view", "help", jetspeed.id.ACTION_NAME_MINIMIZE, jetspeed.id.ACTION_NAME_RESTORE, jetspeed.id.ACTION_NAME_MAXIMIZE ],
- windowActionNotPortlet: [ jetspeed.id.ACTION_NAME_MENU, jetspeed.id.ACTION_NAME_MINIMIZE, jetspeed.id.ACTION_NAME_RESTORE, jetspeed.id.ACTION_NAME_MAXIMIZE ],
+
windowActionButtonMax: 5,
windowActionButtonHide: false,
windowActionButtonTooltip: true,
- windowActionMenuOrder: [ jetspeed.id.ACTION_NAME_DESKTOP_HEIGHT_EXPAND, jetspeed.id.ACTION_NAME_DESKTOP_HEIGHT_NORMAL, jetspeed.id.ACTION_NAME_DESKTOP_TILE, jetspeed.id.ACTION_NAME_DESKTOP_UNTILE ],
+ //windowActionButtonOrder, windowActionNotPortlet, windowActionMenuOrder - see jetspeed.initializeDesktop
windowIconEnabled: true,
windowIconPath: "/images/portlets/small/",
@@ -183,121 +180,112 @@
}
};
-// ... jetspeed debug options
-jetspeed.debug =
-{
- pageLoad: false,
- retrievePsml: false,
- setPortletContent: false,
- doRenderDoAction: false,
- postParseAnnotateHtml: false,
- postParseAnnotateHtmlDisableAnchors: false,
- confirmOnSubmit: false,
- createWindow: false,
- initializeWindowState: false,
- submitChangedWindowState: false,
- ajaxPageNav: false,
-
- windowDecorationRandom: false,
-
- debugContainerId: ( djConfig.debugContainerId ? djConfig.debugContainerId : dojo.hostenv.defaultDebugContainerId )
-};
-jetspeed.debugInPortletWindow = true; // dojo debug in portlet window (dojo isDebug must be true)
-//jetspeed.debugPortletEntityIdFilter = [ "dp-7", "dp-3" ]; // load listed portlets only
-//jetspeed.debugPortletEntityIdFilter = []; // disable all portlets
-//jetspeed.debugContentDumpIds = [ ".*" ]; // dump all responses
-//jetspeed.debugContentDumpIds = [ "getmenus", "getmenu-.*" ]; // dump getmenus response and all getmenu responses
-//jetspeed.debugContentDumpIds = [ "page-.*" ]; // dump page psml response
-//jetspeed.debugContentDumpIds = [ "js-cp-selector.2" ]; // dump portlet selector content
-//jetspeed.debugContentDumpIds = [ "moveabs-layout" ]; // dump move layout response
-//jetspeed.debugContentDumpIds = [ "js-cp-selector.*" ]; // dump portlet selector
-// ... load page /portlets
+
+// load page /portlets
+
jetspeed.page = null ;
jetspeed.initializeDesktop = function()
{
- jetspeed.url.pathInitialize();
- jetspeed.browser_IE = dojo.render.html.ie;
- jetspeed.browser_IEpre7 = ( dojo.render.html.ie50 || dojo.render.html.ie55 || dojo.render.html.ie60 );
- if ( djConfig.jetspeed != null )
+ var jsObj = jetspeed;
+ var jsId = jsObj.id;
+ var jsPrefs = jsObj.prefs;
+ var jsDebug = jsObj.debug;
+ var djObj = dojo;
+
+ jsObj.getBody(); // sets jetspeed.docBody
+
+ jsObj.ui.initCssObj();
+
+ jsPrefs.windowActionButtonOrder = [ jsId.ACT_MENU, "edit", "view", "help", jsId.ACT_MINIMIZE, jsId.ACT_RESTORE, jsId.ACT_MAXIMIZE ];
+ jsPrefs.windowActionNotPortlet = [ jsId.ACT_MENU, jsId.ACT_MINIMIZE, jsId.ACT_RESTORE, jsId.ACT_MAXIMIZE ];
+ jsPrefs.windowActionMenuOrder = [ jsId.ACT_DESKTOP_HEIGHT_EXPAND, jsId.ACT_DESKTOP_HEIGHT_NORMAL, jsId.ACT_DESKTOP_TILE, jsId.ACT_DESKTOP_UNTILE ];
+
+ jsObj.url.pathInitialize();
+
+ var djConfJetspeed = djConfig.jetspeed;
+ if ( djConfJetspeed != null )
{
- for ( var prefKey in djConfig.jetspeed )
+ for ( var prefKey in djConfJetspeed )
{
- var prefOverrideVal = djConfig.jetspeed[ prefKey ];
+ var prefOverrideVal = djConfJetspeed[ prefKey ];
if ( prefOverrideVal != null )
{
- if ( jetspeed.debug[ prefKey ] != null )
- jetspeed.debug[ prefKey ] = prefOverrideVal;
+ if ( jsDebug[ prefKey ] != null )
+ jsDebug[ prefKey ] = prefOverrideVal;
else
- jetspeed.prefs[ prefKey ] = prefOverrideVal;
+ jsPrefs[ prefKey ] = prefOverrideVal;
}
}
- if ( jetspeed.prefs.windowWidth == null || isNaN( jetspeed.prefs.windowWidth ) )
- jetspeed.prefs.windowWidth = "280";
- if ( jetspeed.prefs.windowHeight == null || isNaN( jetspeed.prefs.windowHeight ) )
- jetspeed.prefs.windowHeight = "200";
+ if ( jsPrefs.windowWidth == null || isNaN( jsPrefs.windowWidth ) )
+ jsPrefs.windowWidth = "280";
+ if ( jsPrefs.windowHeight == null || isNaN( jsPrefs.windowHeight ) )
+ jsPrefs.windowHeight = "200";
var windowActionDesktop = {};
- windowActionDesktop[ jetspeed.id.ACTION_NAME_DESKTOP_HEIGHT_EXPAND ] = true;
- windowActionDesktop[ jetspeed.id.ACTION_NAME_DESKTOP_HEIGHT_NORMAL ] = true;
- windowActionDesktop[ jetspeed.id.ACTION_NAME_DESKTOP_TILE ] = true;
- windowActionDesktop[ jetspeed.id.ACTION_NAME_DESKTOP_UNTILE ] = true;
- jetspeed.prefs.windowActionDesktop = windowActionDesktop;
+ windowActionDesktop[ jsId.ACT_DESKTOP_HEIGHT_EXPAND ] = true;
+ windowActionDesktop[ jsId.ACT_DESKTOP_HEIGHT_NORMAL ] = true;
+ windowActionDesktop[ jsId.ACT_DESKTOP_TILE ] = true;
+ windowActionDesktop[ jsId.ACT_DESKTOP_UNTILE ] = true;
+ jsPrefs.windowActionDesktop = windowActionDesktop;
}
- dojo.html.insertCssFile( jetspeed.ui.getDefaultFloatingPaneTemplateCss(), document, true );
+ var defaultPortletWindowCSSUrl = new djObj.uri.Uri( jetspeed.url.basePortalDesktopUrl() + "/javascript/jetspeed/widget/PortletWindow.css" );
+ djObj.html.insertCssFile( defaultPortletWindowCSSUrl, document, true );
- if ( jetspeed.prefs.portletDecorationsAllowed == null || jetspeed.prefs.portletDecorationsAllowed.length == 0 )
+ if ( jsPrefs.portletDecorationsAllowed == null || jsPrefs.portletDecorationsAllowed.length == 0 )
{
- if ( jetspeed.prefs.windowDecoration != null )
- jetspeed.prefs.portletDecorationsAllowed = [ jetspeed.prefs.windowDecoration ];
+ if ( jsPrefs.windowDecoration != null )
+ jsPrefs.portletDecorationsAllowed = [ jsPrefs.windowDecoration ];
}
- else if ( jetspeed.prefs.windowDecoration == null )
+ else if ( jsPrefs.windowDecoration == null )
{
- jetspeed.prefs.windowDecoration = jetspeed.prefs.portletDecorationsAllowed[0];
+ jsPrefs.windowDecoration = jsPrefs.portletDecorationsAllowed[0];
}
- if ( jetspeed.prefs.windowDecoration == null || jetspeed.prefs.portletDecorationsAllowed == null )
+ if ( jsPrefs.windowDecoration == null || jsPrefs.portletDecorationsAllowed == null )
{
- dojo.raise( "Cannot load page because there are no defined jetspeed portlet decorations" );
+ djObj.raise( "No portlet decorations" );
return;
}
- if ( jetspeed.prefs.windowActionNoImage != null )
+ if ( jsPrefs.windowActionNoImage != null )
{
var noImageMap = {};
- for ( var i = 0 ; i < jetspeed.prefs.windowActionNoImage.length; i++ )
+ for ( var i = 0 ; i < jsPrefs.windowActionNoImage.length; i++ )
{
- noImageMap[ jetspeed.prefs.windowActionNoImage[ i ] ] = true;
+ noImageMap[ jsPrefs.windowActionNoImage[ i ] ] = true;
}
- jetspeed.prefs.windowActionNoImage = noImageMap;
+ jsPrefs.windowActionNoImage = noImageMap;
}
- var docUrlObj = jetspeed.url.parse( window.location.href );
- var printModeOnly = jetspeed.url.getQueryParameter( docUrlObj, "jsprintmode" ) == "true";
+ var docUrlObj = jsObj.url.parse( window.location.href );
+ var printModeOnly = jsObj.url.getQueryParameter( docUrlObj, "jsprintmode" ) == "true";
if ( printModeOnly )
{
printModeOnly = {};
- printModeOnly.action = jetspeed.url.getQueryParameter( docUrlObj, "jsaction" );
- printModeOnly.entity = jetspeed.url.getQueryParameter( docUrlObj, "jsentity" );
- printModeOnly.layout = jetspeed.url.getQueryParameter( docUrlObj, "jslayoutid" );
- jetspeed.prefs.printModeOnly = printModeOnly;
- jetspeed.prefs.windowTiling = true;
- jetspeed.prefs.windowHeightExpand = true;
+ printModeOnly.action = jsObj.url.getQueryParameter( docUrlObj, "jsaction" );
+ printModeOnly.entity = jsObj.url.getQueryParameter( docUrlObj, "jsentity" );
+ printModeOnly.layout = jsObj.url.getQueryParameter( docUrlObj, "jslayoutid" );
+ jsPrefs.printModeOnly = printModeOnly;
+ jsPrefs.windowTiling = true;
+ jsPrefs.windowHeightExpand = true;
+ jsPrefs.ajaxPageNavigation = false;
}
- jetspeed.prefs.portletDecorationsConfig = {};
- for ( var i = 0 ; i < jetspeed.prefs.portletDecorationsAllowed.length ; i++ )
+ jsPrefs.portletDecorationsConfig = {};
+ for ( var i = 0 ; i < jsPrefs.portletDecorationsAllowed.length ; i++ )
{
- jetspeed.loadPortletDecorationConfig( jetspeed.prefs.portletDecorationsAllowed[ i ] );
+ jsObj.loadPortletDecorationConfig( jsPrefs.portletDecorationsAllowed[ i ] );
}
- if ( jetspeed.prefs.printModeOnly == null )
+ if ( jsObj.UAie6 )
{
- jetspeed.debugWindowLoad();
+ jsPrefs.ajaxPageNavigation = false; // not advisable in IE6 or older
}
- else
+
+ if ( printModeOnly )
{
- for ( var portletDecorationName in jetspeed.prefs.portletDecorationsConfig )
+ for ( var portletDecorationName in jsPrefs.portletDecorationsConfig )
{
- var pdConfig = jetspeed.prefs.portletDecorationsConfig[ portletDecorationName ];
+ var pdConfig = jsPrefs.portletDecorationsConfig[ portletDecorationName ];
if ( pdConfig != null )
{
pdConfig.windowActionButtonOrder = null;
@@ -307,40 +295,92 @@
}
}
}
- jetspeed.url.loadingIndicatorShow();
- jetspeed.loadPage();
-};
-jetspeed.loadPage = function()
-{
- jetspeed.page = new jetspeed.om.Page();
- jetspeed.page.retrievePsml();
+ jsObj.url.loadingIndicatorShow();
+
+ jsObj.page = new jsObj.om.Page();
+
+ if ( ! printModeOnly && djConfig.isDebug )
+ {
+ if ( jsObj.debugWindowLoad )
+ jsObj.debugWindowLoad();
+
+ if ( jsObj.debug.profile && djObj.profile )
+ djObj.profile.start( "initializeDesktop" );
+ else
+ jsObj.debug.profile = false;
+ }
+ else
+ {
+ jsObj.debug.profile = false;
+ }
+
+ jsObj.page.retrievePsml();
};
jetspeed.updatePage = function( navToPageUrl, backOrForwardPressed )
{
- var currentPage = jetspeed.page;
- if ( ! navToPageUrl || ! currentPage || jetspeed.pageNavigateSuppress ) return;
+ var jsObj = jetspeed;
+
+ var dbProfile = false;
+ if ( djConfig.isDebug && jsObj.debug.profile )
+ {
+ dbProfile = true;
+ dojo.profile.start( "updatePage" );
+ }
+
+ var currentPage = jsObj.page;
+ if ( ! navToPageUrl || ! currentPage || jsObj.pageNavigateSuppress ) return;
if ( currentPage.equalsPageUrl( navToPageUrl ) )
return ;
navToPageUrl = currentPage.makePageUrl( navToPageUrl );
if ( navToPageUrl != null )
{
- jetspeed.updatePageBegin();
+ jsObj.updatePageBegin();
var currentLayoutDecorator = currentPage.layoutDecorator;
var currentEditMode = currentPage.editMode;
+ if ( dbProfile )
+ dojo.profile.start( "destroyPage" );
currentPage.destroy();
- var newJSPage = new jetspeed.om.Page( currentLayoutDecorator, navToPageUrl, (! djConfig.preventBackButtonFix && ! backOrForwardPressed), currentEditMode );
- jetspeed.page = newJSPage;
- newJSPage.retrievePsml( new jetspeed.om.PageContentListenerCreateWidget( true ) );
+ if ( dbProfile )
+ dojo.profile.end( "destroyPage" );
+
+ var retainedWindows = currentPage.portlet_windows;
+ var retainedWindowCount = currentPage.portlet_window_count;
+
+ var newJSPage = new jsObj.om.Page( currentLayoutDecorator, navToPageUrl, (! djConfig.preventBackButtonFix && ! backOrForwardPressed), currentEditMode, currentPage.tooltipMgr, currentPage.iframeCoverByWinId );
+ jsObj.page = newJSPage;
+
+ var pWin;
+ if ( retainedWindowCount > 0 )
+ {
+ for ( var windowId in retainedWindows )
+ {
+ pWin = retainedWindows[ windowId ];
+ pWin.bringToTop( null, true );
+ }
+ }
+
+ newJSPage.retrievePsml( new jsObj.om.PageCLCreateWidget( true ) );
+
+ if ( retainedWindowCount > 0 )
+ {
+ for ( var windowId in retainedWindows )
+ {
+ pWin = retainedWindows[ windowId ];
+ newJSPage.putPWin( pWin );
+ }
+ }
+
window.focus(); // to prevent IE from sending alt-arrow to tab container
}
};
jetspeed.updatePageBegin = function()
{
- if ( dojo.render.html.ie60 )
+ var jsObj = jetspeed;
+ if ( jsObj.UAie6 )
{
- document.body.attachEvent( "onclick", jetspeed.ie6StopMouseEvts );
- document.body.setCapture();
+ jsObj.docBody.attachEvent( "onclick", jsObj.ie6StopMouseEvts );
+ jsObj.docBody.setCapture();
}
}
jetspeed.ie6StopMouseEvts = function( e )
@@ -353,15 +393,18 @@
}
jetspeed.updatePageEnd = function()
{
- if ( dojo.render.html.ie60 )
+ var jsObj = jetspeed;
+ if ( jsObj.UAie6 )
{
- document.body.releaseCapture();
- document.body.detachEvent( "onclick", jetspeed.ie6StopMouseEvts );
- document.body.releaseCapture();
+ jsObj.docBody.releaseCapture();
+ jsObj.docBody.detachEvent( "onclick", jsObj.ie6StopMouseEvts );
+ jsObj.docBody.releaseCapture();
}
}
-// ... jetspeed.doRender
+
+// jetspeed.doRender
+
jetspeed.doRender = function( bindArgs, portletEntityId )
{
if ( ! bindArgs )
@@ -381,53 +424,9 @@
}
};
-// ... jetspeed.doRenderAll
-jetspeed.doRenderAll = function( url, windowArray, isPageLoad, isUpdatePage )
-{
- var debugMsg = jetspeed.debug.doRenderDoAction;
- var debugPageLoad = jetspeed.debug.pageLoad && isPageLoad;
- if ( ! windowArray || windowArray == null )
- windowArray = jetspeed.page.getPortletArray();
- var renderMsg = "";
- var suppressGetActions = true;
- var jsPageUrl = null ;
- if ( isPageLoad )
- {
- jsPageUrl = jetspeed.url.parse( jetspeed.page.getPageUrl() );
- }
- for ( var i = 0; i < windowArray.length; i++ )
- {
- var renderObj = windowArray[i];
- if ( (debugMsg || debugPageLoad) )
- {
- if ( i > 0 ) renderMsg = renderMsg + ", ";
- var widgetId = null;
- if ( renderObj.getProperty != null )
- widgetId = renderObj.getProperty( jetspeed.id.PORTLET_PROP_WIDGET_ID );
- if ( ! widgetId )
- widgetId = renderObj.widgetId;
- if ( ! widgetId )
- widgetId = renderObj.toString();
- if ( renderObj.entityId )
- {
- renderMsg = renderMsg + renderObj.entityId + "(" + widgetId + ")";
- if ( debugPageLoad && renderObj.getProperty( jetspeed.id.PORTLET_PROP_WINDOW_TITLE ) )
- renderMsg = renderMsg + " " + renderObj.getProperty( jetspeed.id.PORTLET_PROP_WINDOW_TITLE );
- }
- else
- {
- renderMsg = renderMsg + widgetId;
- }
- }
- renderObj.retrieveContent( null, { url: url, jsPageUrl: jsPageUrl }, suppressGetActions );
- }
- if ( debugMsg )
- dojo.debug( "doRenderAll [" + renderMsg + "] url: " + url );
- else if ( debugPageLoad ) // this.getPsmlUrl() ;
- dojo.debug( "doRenderAll page-url: " + jetspeed.page.getPsmlUrl() + " portlets: [" + renderMsg + "]" + ( url ? ( " url: " + url ) : "" ) );
-};
-// ... jetspeed.doAction
+// jetspeed.doAction
+
jetspeed.doAction = function( bindArgs, portletEntityId )
{
if ( ! bindArgs )
@@ -448,10 +447,179 @@
else
dojo.debug( "doAction [" + portletEntityId + "] url: " + bindArgs.url + " form: " + jetspeed.debugDumpForm( bindArgs.formNode ) );
}
- targetPortlet.retrieveContent( new jetspeed.om.PortletActionContentListener( targetPortlet, bindArgs ), bindArgs );
+ targetPortlet.retrieveContent( new jetspeed.om.PortletActionCL( targetPortlet, bindArgs ), bindArgs );
}
};
+
+// jetspeed.PortletRenderer
+
+jetspeed.PortletRenderer = function( createWindows, isPageLoad, isPageUpdate, renderUrl, suppressGetActions )
+{
+ var jsObj = jetspeed;
+ var jsPage = jsObj.page;
+ this._jsObj = jsObj;
+
+ this.createWindows = createWindows;
+ this.isPageLoad = isPageLoad;
+ this.isPageUpdate = isPageUpdate;
+ this.pageLoadUrl = null;
+ if ( isPageLoad )
+ this.pageLoadUrl = jsObj.url.parse( jsPage.getPageUrl() );
+ this.renderUrl = renderUrl;
+ this.suppressGetActions = suppressGetActions;
+
+ this._colLen = jsPage.columns.length;
+ this._colIndex = 0;
+ this._portletIndex = 0;
+
+ this.psByCol = jsPage.portletsByPageColumn;
+
+ this.debugPageLoad = jsObj.debug.pageLoad && isPageLoad;
+ this.debugMsg = null;
+ if ( jsObj.debug.doRenderDoAction || this.debugPageLoad )
+ this.debugMsg = "";
+};
+dojo.lang.extend( jetspeed.PortletRenderer,
+{
+ renderAll: function()
+ {
+ do
+ {
+ this._renderCurrent();
+ } while ( this._evalNext() )
+
+ this._finished();
+ },
+ renderAllTimeDistribute: function()
+ {
+ this._renderCurrent();
+ if ( this._evalNext() )
+ {
+ dojo.lang.setTimeout( this, this.renderAllTimeDistribute, 10 );
+ }
+ else
+ {
+ this._finished();
+ }
+ },
+ _finished: function()
+ {
+ var jsObj = this._jsObj;
+
+ var debugMsg = this.debugMsg;
+ if ( debugMsg != null )
+ {
+ if ( this.debugPageLoad )
+ dojo.debug( "portlet-renderer page-url: " + jsObj.page.getPsmlUrl() + " portlets: [" + renderMsg + "]" + ( url ? ( " url: " + url ) : "" ) );
+ else
+ dojo.debug( "portlet-renderer [" + renderMsg + "] url: " + url );
+ }
+
+ if ( this.isPageLoad )
+ {
+ jsObj.page.loadPostRender( this.isPageUpdate );
+ }
+ },
+ _renderCurrent: function()
+ {
+ var jsObj = this._jsObj;
+
+ var colLen = this._colLen;
+ var colIndex = this._colIndex;
+ var portletIndex = this._portletIndex;
+
+ if ( colIndex <= colLen )
+ {
+ var portletArray;
+ if ( colIndex < colLen )
+ portletArray = this.psByCol[ colIndex.toString() ];
+ else
+ {
+ portletArray = this.psByCol[ "z" ];
+ colIndex = null;
+ }
+ var portletLen = (portletArray != null ? portletArray.length : 0);
+ if ( portletLen > 0 )
+ {
+ var pAryElmt = portletArray[portletIndex];
+ if ( pAryElmt )
+ {
+ var renderObj = pAryElmt.portlet;
+ if ( this.createWindows )
+ jsObj.ui.createPortletWindow( renderObj, colIndex, jsObj );
+
+ var debugMsg = this.debugMsg;
+ if ( debugMsg != null )
+ {
+ if ( debugMsg.length > 0 )
+ debugMsg = debugMsg + ", ";
+ var widgetId = null;
+ if ( renderObj.getProperty != null )
+ widgetId = renderObj.getProperty( jsObj.id.PP_WIDGET_ID );
+ if ( ! widgetId )
+ widgetId = renderObj.widgetId;
+ if ( ! widgetId )
+ widgetId = renderObj.toString();
+ if ( renderObj.entityId )
+ {
+ debugMsg = debugMsg + renderObj.entityId + "(" + widgetId + ")";
+ if ( this._dbPgLd && renderObj.getProperty( jsObj.id.PP_WINDOW_TITLE ) )
+ debugMsg = debugMsg + " " + renderObj.getProperty( jsObj.id.PP_WINDOW_TITLE );
+ }
+ else
+ {
+ debugMsg = debugMsg + widgetId;
+ }
+ }
+
+ renderObj.retrieveContent( null, { url: this.renderUrl, jsPageUrl: this.pageLoadUrl }, this.suppressGetActions );
+ }
+ }
+ }
+ },
+ _evalNext: function()
+ {
+ var nextFound = false;
+ var colLen = this._colLen;
+ var colIndex = this._colIndex;
+ var portletIndex = this._portletIndex;
+
+ var curColIndex = colIndex;
+ var portletArray;
+
+ // check if there's any portlet window in the next columns.
+ for ( ++colIndex; colIndex <= colLen; colIndex++ )
+ {
+ portletArray = this.psByCol[ colIndex == colLen ? "z" : colIndex.toString() ];
+ if ( portletIndex < (portletArray != null ? portletArray.length : 0) )
+ {
+ nextFound = true;
+ this._colIndex = colIndex;
+ break;
+ }
+ }
+
+ // check if there's any portlet window in the previous columns.
+ if ( ! nextFound )
+ {
+ ++portletIndex;
+ for ( colIndex = 0; colIndex <= curColIndex; colIndex++ )
+ {
+ portletArray = this.psByCol[ colIndex == colLen ? "z" : colIndex.toString() ];
+ if ( portletIndex < (portletArray != null ? portletArray.length : 0) )
+ {
+ nextFound = true;
+ this._colIndex = colIndex;
+ this._portletIndex = portletIndex;
+ break;
+ }
+ }
+ }
+ return nextFound;
+ }
+});
+
jetspeed.portleturl =
{
DESKTOP_ACTION_PREFIX_URL: null,
@@ -461,7 +629,7 @@
PORTLET_REQUEST_RENDER: "render",
JETSPEED_DO_NOTHING_ACTION: "javascript:jetspeed.doNothingNav()",
- parseContentUrlForDesktopActionRender: function( /* String */ contentUrl )
+ parseContentUrl: function( /* String */ contentUrl ) // parseContentUrlForDesktopActionRender
{
if ( this.DESKTOP_ACTION_PREFIX_URL == null )
this.DESKTOP_ACTION_PREFIX_URL = jetspeed.url.basePortalUrl() + jetspeed.url.path.ACTION ;
@@ -484,13 +652,13 @@
//dojo.debug( "portlet-url op=" + op + " entity=" + entityId + " url=" + contentUrl );
}
- if ( ! jetspeed.url.validateUrlStartsWithHttp( justTheUrl ) )
+ if ( ! jetspeed.url.urlStartsWithHttp( justTheUrl ) )
justTheUrl = null;
return { url: justTheUrl, operation: op, portletEntityId: entityId };
},
- generateJSPseudoUrlActionRender: function( parsedPseudoUrl, makeDummy )
+ genPseudoUrl: function( parsedPseudoUrl, makeDummy ) // generateJSPseudoUrlActionRender
{ // NOTE: no form can be passed in one of these
if ( ! parsedPseudoUrl || ! parsedPseudoUrl.url || ! parsedPseudoUrl.portletEntityId ) return null;
var hrefJScolon = null;
@@ -534,31 +702,26 @@
dojo.html.insertCssFile( portletDecorationConfig.cssPathCommon, null, true );
dojo.html.insertCssFile( portletDecorationConfig.cssPathDesktop, null, true );
-
- if ( jetspeed.prefs.printModeOnly == null )
- portletDecorationConfig.templatePath = pdBaseUrl + "/templates/PortletWindow.html";
- else
- portletDecorationConfig.templatePath = pdBaseUrl + "/templates/PortletWindowPrintMode.html";
}
return portletDecorationConfig;
};
jetspeed.loadPortletDecorationConfig = function( portletDecorationName )
-{
- // setup default portlet decoration config
+{ // setup default portlet decoration config
+ var jsPrefs = jetspeed.prefs;
var pdConfig = {};
- jetspeed.prefs.portletDecorationsConfig[ portletDecorationName ] = pdConfig;
- pdConfig.windowActionButtonOrder = jetspeed.prefs.windowActionButtonOrder;
- pdConfig.windowActionNotPortlet = jetspeed.prefs.windowActionNotPortlet;
- pdConfig.windowActionButtonMax = jetspeed.prefs.windowActionButtonMax;
- pdConfig.windowActionButtonHide = jetspeed.prefs.windowActionButtonHide;
- pdConfig.windowActionButtonTooltip = jetspeed.prefs.windowActionButtonTooltip;
- pdConfig.windowActionMenuOrder = jetspeed.prefs.windowActionMenuOrder;
- pdConfig.windowActionNoImage = jetspeed.prefs.windowActionNoImage;
- pdConfig.windowIconEnabled = jetspeed.prefs.windowIconEnabled;
- pdConfig.windowIconPath = jetspeed.prefs.windowIconPath;
+ jsPrefs.portletDecorationsConfig[ portletDecorationName ] = pdConfig;
+ pdConfig.windowActionButtonOrder = jsPrefs.windowActionButtonOrder;
+ pdConfig.windowActionNotPortlet = jsPrefs.windowActionNotPortlet;
+ pdConfig.windowActionButtonMax = jsPrefs.windowActionButtonMax;
+ pdConfig.windowActionButtonHide = jsPrefs.windowActionButtonHide;
+ pdConfig.windowActionButtonTooltip = jsPrefs.windowActionButtonTooltip;
+ pdConfig.windowActionMenuOrder = jsPrefs.windowActionMenuOrder;
+ pdConfig.windowActionNoImage = jsPrefs.windowActionNoImage;
+ pdConfig.windowIconEnabled = jsPrefs.windowIconEnabled;
+ pdConfig.windowIconPath = jsPrefs.windowIconPath;
// load portlet decoration config
- var portletDecorationConfigUri = jetspeed.prefs.getPortletDecorationBaseUrl( portletDecorationName ) + "/" + portletDecorationName + ".js";
+ var portletDecorationConfigUri = jsPrefs.getPortletDecorationBaseUrl( portletDecorationName ) + "/" + portletDecorationName + ".js";
dojo.hostenv.loadUri( portletDecorationConfigUri, function(hash) {
for ( var j in hash )
{
@@ -593,91 +756,31 @@
});
};
-// jetspeed.purifyIdentifier
-jetspeed.purifyIdentifier = function( src, replaceCh, camel )
-{
- if ( src == null ) return src;
- var limit = src.length;
- if ( limit == 0 ) return src;
- if ( replaceCh == null )
- replaceCh = "_";
- var regEx = new RegExp( "[^a-z_0-9A-Z]", "g" );
- var chCode = src.charCodeAt( 0 );
- var buff = null;
- if ( ( chCode >= 65 && chCode <= 90 ) || chCode == 95 || ( chCode >= 97 && chCode <= 122 ) )
- buff = src.charAt( 0 );
- else
- buff = replaceCh;
- var hiCamel = false, loCamel = false;
- if ( camel != null )
- {
- camel = camel.toLowerCase();
- hiCamel = ( camel == "hi" ? true : false );
- loCamel = ( camel == "lo" ? true : false );
- }
- if ( limit > 1 )
- {
- if ( hiCamel || loCamel )
- {
- upNext = false;
- for ( var i = 1 ; i < limit ; i++ )
- {
- chCode = src.charCodeAt( i );
- if ( ( chCode >= 65 && chCode <= 90 ) || chCode == 95 || ( chCode >= 97 && chCode <= 122 ) || ( chCode >= 48 && chCode <= 57 ) )
- {
- if ( upNext && ( chCode >= 97 && chCode <= 122 ) )
- buff += String.fromCharCode( chCode - 32 );
- else
- buff += src.charAt( i );
- upNext = false;
- }
- else
- {
- upNext = true;
- buff += replaceCh;
- }
- }
- }
- else
- {
- buff += src.substring( 1 ).replace( regEx, replaceCh );
- }
- }
- if ( hiCamel )
- {
- chCode = buff.charCodeAt( 0 );
- if ( chCode >= 97 && chCode <= 122 )
- buff = String.fromCharCode( chCode - 32 ) + buff.substring( 1 );
- }
- return buff;
-};
-
-// ... jetspeed.notifyRetrieveAllMenusFinished
jetspeed.notifyRetrieveAllMenusFinished = function()
{ // dojo.event.connect to this or add to your page content, one of the functions that it invokes ( doMenuBuildAll() or doMenuBuild() )
- jetspeed.pageNavigateSuppress = true;
+ var jsObj = jetspeed;
+ jsObj.pageNavigateSuppress = true;
if ( dojo.lang.isFunction( window.doMenuBuildAll ) )
{
window.doMenuBuildAll();
}
- var menuNames = jetspeed.page.getMenuNames();
+ var menuNames = jsObj.page.getMenuNames();
for ( var i = 0 ; i < menuNames.length; i++ )
{
var menuNm = menuNames[i];
- var menuWidget = dojo.widget.byId( jetspeed.id.MENU_WIDGET_ID_PREFIX + menuNm );
+ var menuWidget = dojo.widget.byId( jsObj.id.MENU_WIDGET_ID_PREFIX + menuNm );
if ( menuWidget )
{
- menuWidget.createJetspeedMenu( jetspeed.page.getMenu( menuNm ) );
+ menuWidget.createJetspeedMenu( jsObj.page.getMenu( menuNm ) );
}
}
- jetspeed.url.loadingIndicatorHide();
- jetspeed.pageNavigateSuppress = false;
+ jsObj.url.loadingIndicatorHide();
+ jsObj.pageNavigateSuppress = false;
};
-// ... jetspeed.notifyRetrieveMenuFinished
jetspeed.notifyRetrieveMenuFinished = function( /* jetspeed.om.Menu */ menuObj )
{ // dojo.event.connect to this or add to your page content the function that it invokes ( doMenuBuild() )
if ( dojo.lang.isFunction( window.doMenuBuild ) )
@@ -695,7 +798,7 @@
var tabWidgetId = tabWidget;
tabWidget = dojo.widget.byId( tabWidgetId );
if ( ! tabWidget )
- dojo.raise( "menuNavClick could not find tab widget for " + tabWidgetId );
+ dojo.raise( "Tab widget not found: " + tabWidgetId );
}
if ( tabWidget )
{
@@ -703,10 +806,10 @@
if ( ! jetspeedMenuName && tabWidget.extraArgs )
jetspeedMenuName = tabWidget.extraArgs.jetspeedmenuname;
if ( ! jetspeedMenuName )
- dojo.raise( "menuNavClick tab widget [" + tabWidget.widgetId + "] does not define jetspeedMenuName" );
+ dojo.raise( "Tab widget is invalid: " + tabWidget.widgetId );
var menuObj = jetspeed.page.getMenu( jetspeedMenuName );
if ( ! menuObj )
- dojo.raise( "menuNavClick Menu lookup for tab widget [" + tabWidget.widgetId + "] failed: " + jetspeedMenuName );
+ dojo.raise( "Tab widget " + tabWidget.widgetId + " no menu: " + jetspeedMenuName );
var menuOpt = menuObj.getOptionByIndex( selectedTab );
jetspeed.menuNavClick( menuOpt );
@@ -734,68 +837,6 @@
window.location.href = navUrl; // BOZO:NOW: popups
};
-jetspeed.loadPortletSelector = function()
-{
- var windowParams = {};
- windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC ] = false;
- windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_HEIGHT_TO_FIT ] = false;
- windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_DECORATION ] = jetspeed.page.getPortletDecorationDefault();
- windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_TITLE ] = jetspeed.prefs.portletSelectorWindowTitle;
- windowParams[ jetspeed.id.PORTLET_PROP_WINDOW_ICON ] = jetspeed.prefs.portletSelectorWindowIcon;
- windowParams[ jetspeed.id.PORTLET_PROP_WIDGET_ID ] = jetspeed.id.PORTLET_WINDOW_ID_PREFIX + jetspeed.id.SELECTOR;
- windowParams[ jetspeed.id.PORTLET_PROP_WIDTH ] = jetspeed.prefs.portletSelectorBounds.width;
- windowParams[ jetspeed.id.PORTLET_PROP_HEIGHT ] = jetspeed.prefs.portletSelectorBounds.height;
- windowParams[ jetspeed.id.PORTLET_PROP_LEFT ] = jetspeed.prefs.portletSelectorBounds.x;
- windowParams[ jetspeed.id.PORTLET_PROP_TOP ] = jetspeed.prefs.portletSelectorBounds.y;
- windowParams[ jetspeed.id.PORTLET_PROP_EXCLUDE_PCONTENT ] = true;
- windowParams[ jetspeed.id.PORTLET_PROP_CONTENT_RETRIEVER ] = new jetspeed.om.PortletSelectorContentRetriever();
- var pwWidgetParams = jetspeed.widget.PortletWindow.prototype.staticDefineAsAltInitParameters( null, windowParams );
- jetspeed.ui.createPortletWindow( pwWidgetParams );
- pwWidgetParams.retrieveContent( null, null );
- jetspeed.getPortletDefinitions();
-};
-
-jetspeed.getPortletDefinitions = function()
-{
- var contentListener = new jetspeed.om.PortletSelectorAjaxApiContentListener();
- var queryString = "?action=getportlets";
- var getPortletsUrl = jetspeed.url.basePortalUrl() + jetspeed.url.path.AJAX_API + queryString ;
- var mimetype = "text/xml";
- var ajaxApiContext = new jetspeed.om.Id( "getportlets", { } );
- jetspeed.url.retrieveContent( { url: getPortletsUrl, mimetype: mimetype }, contentListener, ajaxApiContext, jetspeed.debugContentDumpIds );
-};
-
-jetspeed.searchForPortletDefinitions = function(filter, catPortlets)
-{
- var contentListener = new jetspeed.om.PortletSelectorSearchContentListener(catPortlets);
- var queryString = "?action=getportlets&filter=" + filter;
- var getPortletsUrl = jetspeed.url.basePortalUrl() + jetspeed.url.path.AJAX_API + queryString ;
- var mimetype = "text/xml";
- var ajaxApiContext = new jetspeed.om.Id( "getportlets", { } );
- jetspeed.url.retrieveContent( { url: getPortletsUrl, mimetype: mimetype }, contentListener, ajaxApiContext, jetspeed.debugContentDumpIds );
-};
-
-jetspeed.getFolders = function(data, handler)
-{
- var contentListener = new jetspeed.om.FoldersListContentListener(handler);
- var queryString = "?action=getfolders&data=" + data;
- var getPortletsUrl = jetspeed.url.basePortalUrl() + jetspeed.url.path.AJAX_API + queryString ;
- var mimetype = "text/xml";
- //alert('getPortletsUrl ' + getPortletsUrl);
- var ajaxApiContext = new jetspeed.om.Id( "getfolders", { } );
- jetspeed.url.retrieveContent( { url: getPortletsUrl, mimetype: mimetype }, contentListener, ajaxApiContext, jetspeed.debugContentDumpIds );
-};
-
-jetspeed.portletDefinitionsforSelector = function(filter,category,pagenumber,portletPerPages,catPortlets)
-{
- var contentListener = new jetspeed.om.PortletSelectorSearchContentListener(catPortlets);
- var queryString = "?action=selectorPortlets&category=" + category + "&portletPerPages=" + portletPerPages + "&pageNumber=" + pagenumber + "&filter=" + filter;
- var getPortletsUrl = jetspeed.url.basePortalUrl() + jetspeed.url.path.AJAX_API + queryString ;
- var mimetype = "text/xml";
- //alert('getPortletsUrl ' + getPortletsUrl);
- var ajaxApiContext = new jetspeed.om.Id( "selectorPortlets", { } );
- jetspeed.url.retrieveContent( { url: getPortletsUrl, mimetype: mimetype }, contentListener, ajaxApiContext, jetspeed.debugContentDumpIds );
-};
jetspeed.getActionsForPortlet = function( /* String */ portletEntityId )
{
if ( portletEntityId == null ) return;
@@ -805,7 +846,7 @@
{
if ( portletEntityIds == null )
portletEntityIds = jetspeed.page.getPortletIds();
- var contentListener = new jetspeed.om.PortletActionsContentListener( portletEntityIds );
+ var contentListener = new jetspeed.om.PortletActionsCL( portletEntityIds );
var queryString = "?action=getactions";
for ( var i = 0 ; i < portletEntityIds.length ; i++ )
{
@@ -820,7 +861,7 @@
{
if ( portletEntityId == null ) return;
if ( contentListener == null )
- contentListener = new jetspeed.om.PortletChangeActionContentListener( portletEntityId );
+ contentListener = new jetspeed.om.PortletChangeActionCL( portletEntityId );
var queryString = "?action=window&id=" + ( portletEntityId != null ? portletEntityId : "" );
if ( changeActionState != null )
queryString += "&state=" + changeActionState;
@@ -832,66 +873,40 @@
jetspeed.url.retrieveContent( { url: changeActionUrl, mimetype: mimetype }, contentListener, ajaxApiContext, jetspeed.debugContentDumpIds );
};
-jetspeed.addNewPortletDefinition = function( /* jetspeed.om.PortletDef */ portletDef, windowWidgetId, /* String */ psmlUrl, /* String */ layoutId )
-{
- var addToCurrentPage = true;
- if ( psmlUrl != null )
- {
- addToCurrentPage = false;
- }
- var contentListener = new jetspeed.om.PortletAddAjaxApiCallbackContentListener( portletDef, windowWidgetId, addToCurrentPage );
- var queryString = "?action=add&id=" + escape( portletDef.getPortletName() );
- if ( layoutId != null && layoutId.length > 0 )
- {
- queryString += "&layoutid=" + escape( layoutId );
- }
- var addPortletUrl = null;
- if ( psmlUrl != null )
- {
- addPortletUrl = psmlUrl + queryString; // psmlUrl example: http://localhost:8080/jetspeed/ajaxapi/google-maps.psml
- }
- else
- {
- addPortletUrl = jetspeed.page.getPsmlUrl() + queryString;
- }
- var mimetype = "text/xml";
- var ajaxApiContext = new jetspeed.om.Id( "addportlet", { } );
- jetspeed.url.retrieveContent( { url: addPortletUrl, mimetype: mimetype }, contentListener, ajaxApiContext, jetspeed.debugContentDumpIds );
-};
-
jetspeed.editPageInitiate = function()
{
- if ( ! jetspeed.page.editMode )
+ var jsObj = jetspeed;
+ if ( ! jsObj.page.editMode )
{
var fromDesktop = true;
- var fromPortal = jetspeed.url.getQueryParameter( window.location.href, jetspeed.id.PORTAL_ORIGINATE_PARAMETER );
+ var fromPortal = jsObj.url.getQueryParameter( window.location.href, jsObj.id.PORTAL_ORIGINATE_PARAMETER );
if ( fromPortal != null && fromPortal == "true" )
fromDesktop = false;
- jetspeed.page.editMode = true;
- var pageEditorWidget = dojo.widget.byId( jetspeed.id.PG_ED_WID );
- if ( dojo.render.html.ie60 )
- jetspeed.page.displayAllPortlets( true );
+ jsObj.page.editMode = true;
+ var pageEditorWidget = dojo.widget.byId( jsObj.id.PG_ED_WID );
+ if ( jsObj.UAie6 )
+ jsObj.page.displayAllPWins( true );
if ( pageEditorWidget == null )
{
try
{
- jetspeed.url.loadingIndicatorShow( "loadpageeditor" );
- pageEditorWidget = dojo.widget.createWidget( "jetspeed:PageEditor", { widgetId: jetspeed.id.PG_ED_WID, editorInitiatedFromDesktop: fromDesktop } );
- var allColumnsContainer = document.getElementById( jetspeed.id.COLUMNS );
+ jsObj.url.loadingIndicatorShow( "loadpageeditor" );
+ pageEditorWidget = dojo.widget.createWidget( "jetspeed:PageEditor", { widgetId: jsObj.id.PG_ED_WID, editorInitiatedFromDesktop: fromDesktop } );
+ var allColumnsContainer = document.getElementById( jsObj.id.COLUMNS );
allColumnsContainer.insertBefore( pageEditorWidget.domNode, allColumnsContainer.firstChild );
}
catch (e)
{
- jetspeed.url.loadingIndicatorHide();
- if ( dojo.render.html.ie60 )
- jetspeed.page.displayAllPortlets();
+ jsObj.url.loadingIndicatorHide();
+ if ( jsObj.UAie6 )
+ jsObj.page.displayAllPWins();
}
}
else
{
pageEditorWidget.editPageShow();
}
- jetspeed.page.syncPageControls();
+ jsObj.page.syncPageControls();
}
};
jetspeed.editPageTerminate = function()
@@ -934,7 +949,7 @@
{
};
jetspeed.om.PortletContentRetriever.prototype =
-{ // /* Portlet */ portlet, /* String */ requestUrl, /* PortletContentListener */ portletContentListener
+{ // /* Portlet */ portlet, /* String */ requestUrl, /* PortletCL */ portletCL
getContent: function( bindArgs, contentListener, domainModelObject, /* String[] */ debugContentDumpIds )
{
if ( ! bindArgs )
@@ -943,121 +958,27 @@
}
};
-// ... jetspeed.om.PortletSelectorContentRetriever
-jetspeed.om.PortletSelectorContentRetriever = function()
-{
-};
-jetspeed.om.PortletSelectorContentRetriever.prototype =
-{
- getContent: function( bindArgs, contentListener, domainModelObject, /* String[] */ debugContentDumpIds )
- {
- if ( ! bindArgs )
- bindArgs = {};
- var content = '<div widgetId="' + jetspeed.id.SELECTOR + '" dojoType="PortletDefContainer"></div>';
- if ( ! contentListener )
- contentListener = new jetspeed.om.BasicContentListener();
- contentListener.notifySuccess( content, bindArgs.url, domainModelObject ) ;
- }
-};
-
-// ... jetspeed.om.PortletSelectorContentListener
-jetspeed.om.PortletSelectorContentListener = function()
-{
-};
-jetspeed.om.PortletSelectorContentListener.prototype =
-{
- notifySuccess: function( /* String */ portletContent, /* String */ requestUrl, /* Portlet */ portlet )
- {
- var windowWidget = this.getPortletWindow();
- if ( windowWidget )
- {
- windowWidget.setPortletContent( portletContent, renderUrl );
- }
- },
- notifyFailure: function( /* String */ type, /* Object */ error, /* String */ requestUrl, /* Portlet */ portlet )
- {
- dojo.raise( "PortletSelectorContentListener notifyFailure url: " + requestUrl + " type: " + type + jetspeed.url.formatBindError( error ) );
- }
-};
-
-// ... jetspeed.om.PageContentListenerUpdate
-jetspeed.om.PageContentListenerUpdate = function( /* jetspeed.om.Page */ previousPage )
-{
- this.previousPage = previousPage;
-};
-jetspeed.om.PageContentListenerUpdate.prototype =
-{
- notifySuccess: function( /* XMLDocument */ data, /* String */ requestUrl, /* Page */ page )
- {
- dojo.raise( "PageContentListenerUpdate notifySuccess - BUT NOT SUPPORTED - url=" + requestUrl ) ;
- //page.getPortletsFromPSML( data ); // the new getFragmentsFromPSML is not compatible with this usage
- //var updatedPortlets = page.getPortletArray();
- //for ( var i = 0 ; i < updatedPortlets.length ; i++ )
- //{
- // var prevPortlet = this.previousPage.getPortlet( updatedPortlets[i].entityId );
- // if ( prevPortlet == null )
- // {
- // dojo.debug( "PageContentListenerUpdate new portlet definition in page: " + updatedPortlets[i].toString() ) ;
- // }
- //}
- },
- notifyFailure: function( /* String */ type, /* Object */ error, /* String */ requestUrl, /* Page */ page )
- {
- dojo.raise( "PageContentListenerUpdate notifyFailure url: " + requestUrl + " type: " + type + jetspeed.url.formatBindError( error ) );
- }
-};
-
-// ... jetspeed.om.PageContentListenerCreateWidget
-jetspeed.om.PageContentListenerCreateWidget = function( isUpdatePage )
+// ... jetspeed.om.PageCLCreateWidget
+jetspeed.om.PageCLCreateWidget = function( isPageUpdate )
{
- if ( typeof isUpdatePage == "undefined" )
- isUpdatePage = false ;
- this.isUpdatePage = isUpdatePage ;
+ if ( typeof isPageUpdate == "undefined" )
+ isPageUpdate = false ;
+ this.isPageUpdate = isPageUpdate ;
};
-jetspeed.om.PageContentListenerCreateWidget.prototype =
+jetspeed.om.PageCLCreateWidget.prototype =
{
notifySuccess: function( /* XMLDocument */ data, /* String */ requestUrl, /* Page */ page )
{
- page.loadFromPSML( data, this.isUpdatePage );
+ page.loadFromPSML( data, this.isPageUpdate );
},
notifyFailure: function( /* String */ type, /* Object */ error, /* String */ requestUrl, /* Page */ page )
{
- dojo.raise( "PageContentListenerCreateWidget error url: " + requestUrl + " type: " + type + jetspeed.url.formatBindError( error ) );
- }
-};
-
-// ... jetspeed.om.Id
-jetspeed.om.Id = function( /* ... */ ) // intended as a simple, general object with an id and a getId() function
-{
- var idBuff = "";
- for ( var i = 0; i < arguments.length; i++ )
- {
- if( dojo.lang.isString( arguments[i] ) )
- {
- if ( idBuff.length > 0 )
- idBuff += "-";
- idBuff += arguments[i];
- }
- else if ( dojo.lang.isObject( arguments[i] ) )
- {
- for ( var slotKey in arguments[i] )
- {
- this[ slotKey ] = arguments[i][slotKey];
- }
- }
+ dojo.raise( "PageCLCreateWidget error url: " + requestUrl + " type: " + type + jetspeed.url.formatBindError( error ) );
}
- this.jetspeed_om_id = idBuff;
};
-dojo.lang.extend( jetspeed.om.Id,
-{
- getId: function()
- {
- return this.jetspeed_om_id;
- }
-});
// ... jetspeed.om.Page
-jetspeed.om.Page = function( requiredLayoutDecorator, navToPageUrl, addToHistory, editMode )
+jetspeed.om.Page = function( requiredLayoutDecorator, navToPageUrl, addToHistory, editMode, tooltipMgr, iframeCoverByWinId )
{
if ( requiredLayoutDecorator != null && navToPageUrl != null )
{
@@ -1076,9 +997,26 @@
this.layouts = {};
this.columns = [];
this.portlets = [];
+ this.portlet_count = 0;
+ this.portlet_windows = {};
+ this.portlet_window_count = 0;
+ if ( iframeCoverByWinId != null )
+ this.iframeCoverByWinId = iframeCoverByWinId;
+ else
+ this.iframeCoverByWinId = {};
+ this.portlet_tiled_high_z = 10;
+ this.portlet_untiled_high_z = -1;
this.menus = [];
+
+ if ( tooltipMgr != null )
+ this.tooltipMgr = tooltipMgr;
+ else
+ {
+ this.tooltipMgr = dojo.widget.createWidget( "jetspeed:PortalTooltipManager", { isContainer: false, fastMixIn: true } );
+ // setting isContainer=false and fastMixIn=true to avoid recursion hell when connectId is a node (could give each an id instead)
+ jetspeed.docBody.appendChild( this.tooltipMgr.domNode );
+ }
};
-dojo.inherits( jetspeed.om.Page, jetspeed.om.Id );
dojo.lang.extend( jetspeed.om.Page,
{
psmlPath: null,
@@ -1098,6 +1036,7 @@
layouts: null,
columns: null,
portlets: null,
+ portletsByPageColumn: null,
editMode: false,
themeDefinitions: null,
@@ -1171,7 +1110,7 @@
retrievePsml: function( pageContentListener )
{
if ( pageContentListener == null )
- pageContentListener = new jetspeed.om.PageContentListenerCreateWidget();
+ pageContentListener = new jetspeed.om.PageCLCreateWidget();
var psmlUrl = this.getPsmlUrl() ;
var mimetype = "text/xml";
@@ -1182,15 +1121,22 @@
jetspeed.url.retrieveContent( { url: psmlUrl, mimetype: mimetype }, pageContentListener, this, jetspeed.debugContentDumpIds );
},
- loadFromPSML: function( psml, isUpdatePage )
+ loadFromPSML: function( psml, isPageUpdate )
{
+ var jsObj = jetspeed;
+ var printModeOnly = jsObj.prefs.printModeOnly ;
+ if ( djConfig.isDebug && jsObj.debug.profile && printModeOnly == null )
+ {
+ dojo.profile.start( "loadFromPSML" );
+ }
+
// parse PSML
var parsedRootLayoutFragment = this._parsePSML( psml );
if ( parsedRootLayoutFragment == null ) return;
// create layout model
- var portletsByPageColumn = {};
- this.columnsStructure = this._layoutCreateModel( parsedRootLayoutFragment, null, portletsByPageColumn, true );
+ this.portletsByPageColumn = {};
+ this.columnsStructure = this._layoutCreateModel( parsedRootLayoutFragment, null, this.portletsByPageColumn, true );
this.rootFragmentId = parsedRootLayoutFragment.id ;
@@ -1198,66 +1144,49 @@
if ( this.editMode )
{
this.editMode = false;
- if ( jetspeed.prefs.printModeOnly == null )
+ if ( printModeOnly == null )
initiateEditMode = true;
}
// create columns
- if ( jetspeed.prefs.windowTiling )
+ if ( jsObj.prefs.windowTiling )
+ {
+ this._createColsStart( document.getElementById( jsObj.id.DESKTOP ) );
+ }
+
+ var portletArray = this.portletsByPageColumn[ "z" ];
+ if ( portletArray )
{
- this._createColumnsStart( document.getElementById( jetspeed.id.DESKTOP ) );
+ portletArray.sort( this._loadPortletZIndexCompare );
}
- // create portlet windows
- var windowsToRender = new Array();
- var colLen = this.columns.length;
- for ( var colIndex = 0 ; colIndex <= this.columns.length ; colIndex++ ) // iterate to one past last column index
+ var renderer = new jetspeed.PortletRenderer( true, true, isPageUpdate, null, true );
+ renderer.renderAllTimeDistribute();
+ //renderer.renderAll();
+ },
+ loadPostRender: function( isPageUpdate )
+ {
+ var jsObj = jetspeed;
+ var printModeOnly = jsObj.prefs.printModeOnly ;
+ if ( printModeOnly == null )
{
- var portletArray = null;
- if ( colIndex == colLen )
+ this._portletsInitWinState( this.portletsByPageColumn[ "z" ] );
+
+ var initiateEditMode = false;
+ if ( this.editMode )
+ initiateEditMode = true;
+
+ // detect edit mode force - likely to be temporary
+ var pageEditorInititate = jsObj.url.getQueryParameter( window.location.href, jsObj.id.PG_ED_PARAM );
+ if ( initiateEditMode || ( pageEditorInititate != null && pageEditorInititate == "true" ) || this.actions[ jsObj.id.ACT_VIEW ] != null )
{
- portletArray = portletsByPageColumn[ "z" ];
- if ( portletArray != null )
- portletArray.sort( this._loadPortletZIndexCompare );
+ initiateEditMode = false;
+ if ( this.actions != null && ( this.actions[ jsObj.id.ACT_EDIT ] != null || this.actions[ jsObj.id.ACT_VIEW ] != null ) )
+ initiateEditMode = true;
}
- else
- {
- portletArray = portletsByPageColumn[ colIndex.toString() ];
- }
-
- if ( portletArray != null )
- {
- for ( var i = 0; i < portletArray.length; i++ )
- {
- var portlet = portletArray[i].portlet;
- windowsToRender.push( portlet );
- portlet.createPortletWindow( colIndex );
- }
- }
- }
-
- if ( jetspeed.prefs.printModeOnly == null )
- {
- // render portlets
- if ( windowsToRender && windowsToRender.length > 0 )
- {
- jetspeed.doRenderAll( null, windowsToRender, true, isUpdatePage );
- }
-
- // initialize portlet window state
- this._portletsInitializeWindowState( portletsByPageColumn[ "z" ] );
-
- // detect edit mode force - likely to be temporary
- var pageEditorInititate = jetspeed.url.getQueryParameter( window.location.href, jetspeed.id.PG_ED_PARAM );
- if ( initiateEditMode || ( pageEditorInititate != null && pageEditorInititate == "true" ) || this.actions[ jetspeed.id.ACTION_NAME_VIEW ] != null )
- {
- initiateEditMode = false;
- if ( this.actions != null && ( this.actions[ jetspeed.id.ACTION_NAME_EDIT ] != null || this.actions[ jetspeed.id.ACTION_NAME_VIEW ] != null ) )
- initiateEditMode = true;
- }
-
+
// load menus
- this.retrieveMenuDeclarations( true, initiateEditMode, isUpdatePage );
+ this.retrieveMenuDeclarations( true, initiateEditMode, isPageUpdate );
// render page buttons
this.renderPageControls();
@@ -1265,29 +1194,24 @@
}
else
{
- var portlet = null;
for ( var portletIndex in this.portlets )
{
- portlet = this.portlets[portletIndex];
+ var portlet = this.portlets[portletIndex];
+ if ( portlet != null )
+ portlet.renderAction( null, printModeOnly.action );
break;
}
- if ( portlet != null )
- {
- portlet.renderAction( null, jetspeed.prefs.printModeOnly.action );
-
- this._portletsInitializeWindowState( portletsByPageColumn[ "z" ] );
- }
- if ( isUpdatePage )
- {
- jetspeed.updatePageEnd() ;
- }
+ if ( isPageUpdate )
+ jsObj.updatePageEnd() ;
}
},
+
_parsePSML: function( psml )
{
+ var jsObj = jetspeed;
var pageElements = psml.getElementsByTagName( "page" );
- if ( ! pageElements || pageElements.length > 1 )
- dojo.raise( "unexpected zero or multiple <page> elements in psml" );
+ if ( ! pageElements || pageElements.length > 1 || pageElements[0] == null )
+ dojo.raise( "Expected one <page> in PSML" );
var pageElement = pageElements[0];
var children = pageElement.childNodes;
var simpleValueLNames = new RegExp( "(name|path|profiledPath|title|short-title)" );
@@ -1310,7 +1234,9 @@
}
else if ( childLName && childLName.match( simpleValueLNames ) )
{
- this[ jetspeed.purifyIdentifier( childLName, "", "lo" ) ] = ( ( child && child.firstChild ) ? child.firstChild.nodeValue : null );
+ if ( childLName == "short-title" )
+ childLName = "shortTitle";
+ this[ childLName ] = ( ( child && child.firstChild ) ? child.firstChild.nodeValue : null );
}
else if ( childLName == "action" )
{
@@ -1321,48 +1247,49 @@
if ( rootFragment == null )
{
- dojo.raise( "No root fragment in PSML." );
+ dojo.raise( "No root fragment in PSML" );
return null;
}
if ( this.requiredLayoutDecorator != null && this.pageUrlFallback != null )
{
if ( this.layoutDecorator != this.requiredLayoutDecorator )
{
- if ( jetspeed.debug.ajaxPageNav )
+ if ( jsObj.debug.ajaxPageNav )
dojo.debug( "ajaxPageNavigation _parsePSML different layout decorator (" + this.requiredLayoutDecorator + " != " + this.layoutDecorator + ") - fallback to normal page navigation - " + this.pageUrlFallback );
- jetspeed.pageNavigate( this.pageUrlFallback, null, true );
+ jsObj.pageNavigate( this.pageUrlFallback, null, true );
return null;
}
else if ( this.addToHistory )
{
var currentPageUrl = this.getPageUrl();
dojo.undo.browser.addToHistory({
- back: function() { if ( jetspeed.debug.ajaxPageNav ) dojo.debug( "back-nav-button: " + currentPageUrl ); jetspeed.updatePage( currentPageUrl, true ); },
- forward: function() { if ( jetspeed.debug.ajaxPageNav ) dojo.debug( "forward-nav-button: " + currentPageUrl ); jetspeed.updatePage( currentPageUrl, true ); },
+ back: function() { if ( jsObj.debug.ajaxPageNav ) dojo.debug( "back-nav-button: " + currentPageUrl ); jsObj.updatePage( currentPageUrl, true ); },
+ forward: function() { if ( jsObj.debug.ajaxPageNav ) dojo.debug( "forward-nav-button: " + currentPageUrl ); jsObj.updatePage( currentPageUrl, true ); },
changeUrl: escape( this.getPath() )
});
}
}
- else if ( ! djConfig.preventBackButtonFix && jetspeed.prefs.ajaxPageNavigation )
+ else if ( ! djConfig.preventBackButtonFix && jsObj.prefs.ajaxPageNavigation )
{
var currentPageUrl = this.getPageUrl();
dojo.undo.browser.setInitialState({
- back: function() { if ( jetspeed.debug.ajaxPageNav ) dojo.debug( "back-nav-button initial: " + currentPageUrl ); jetspeed.updatePage( currentPageUrl, true ); },
- forward: function() { if ( jetspeed.debug.ajaxPageNav ) dojo.debug( "forward-nav-button initial: " + currentPageUrl ); jetspeed.updatePage( currentPageUrl, true ); },
+ back: function() { if ( jsObj.debug.ajaxPageNav ) dojo.debug( "back-nav-button initial: " + currentPageUrl ); jsObj.updatePage( currentPageUrl, true ); },
+ forward: function() { if ( jsObj.debug.ajaxPageNav ) dojo.debug( "forward-nav-button initial: " + currentPageUrl ); jsObj.updatePage( currentPageUrl, true ); },
changeUrl: escape( this.getPath() )
});
}
- var parsedRootLayoutFragment = this._parsePSMLLayoutFragment( rootFragment, 0 ); // rootFragment must be a layout fragment - /portal requires this as well
+ var parsedRootLayoutFragment = this._parsePSMLFrag( rootFragment, 0 ); // rootFragment must be a layout fragment - /portal requires this as well
return parsedRootLayoutFragment;
},
- _parsePSMLLayoutFragment: function( layoutNode, layoutNodeDocumentOrderIndex )
+ _parsePSMLFrag: function( layoutNode, layoutNodeDocumentOrderIndex )
{
+ var jsObj = jetspeed;
var fragChildren = new Array();
var layoutFragType = ( (layoutNode != null) ? layoutNode.getAttribute( "type" ) : null );
if ( layoutFragType != "layout" )
{
- dojo.raise( "_parsePSMLLayoutFragment called with non-layout fragment: " + layoutNode );
+ dojo.raise( "Expected layout fragment: " + layoutNode );
return null;
}
var layoutActionsDisabled = false;
@@ -1391,7 +1318,7 @@
fragType = child.getAttribute( "type" );
if ( fragType == "layout" )
{
- var parsedLayoutChildFragment = this._parsePSMLLayoutFragment( child, i );
+ var parsedLayoutChildFragment = this._parsePSMLFrag( child, i );
if ( parsedLayoutChildFragment != null )
{
fragChildren.push( parsedLayoutChildFragment ) ;
@@ -1399,29 +1326,29 @@
}
else
{
- var portletProps = this._parsePSMLProperties( child, null );
- var portletIcon = portletProps[ jetspeed.id.PORTLET_PROP_WINDOW_ICON ];
+ var portletProps = this._parsePSMLProps( child, null );
+ var portletIcon = portletProps[ jsObj.id.PP_WINDOW_ICON ];
if ( portletIcon == null || portletIcon.length == 0 )
{
portletIcon = this._parsePSMLIcon( child );
if ( portletIcon != null && portletIcon.length > 0 )
{
- portletProps[ jetspeed.id.PORTLET_PROP_WINDOW_ICON ] = portletIcon;
+ portletProps[ jsObj.id.PP_WINDOW_ICON ] = portletIcon;
}
}
- fragChildren.push( { id: child.getAttribute( "id" ), type: fragType, name: child.getAttribute( "name" ), properties: portletProps, actions: this._parsePSMLActions( child, null ), currentActionState: this._parsePSMLCurrentActionState( child ), currentActionMode: this._parsePSMLCurrentActionMode( child ), decorator: child.getAttribute( "decorator" ), layoutActionsDisabled: layoutActionsDisabled, documentOrderIndex: i } );
+ fragChildren.push( { id: child.getAttribute( "id" ), type: fragType, name: child.getAttribute( "name" ), properties: portletProps, actions: this._parsePSMLActions( child, null ), currentActionState: this._parsePSMLActionState( child ), currentActionMode: this._parsePSMLActionMode( child ), decorator: child.getAttribute( "decorator" ), layoutActionsDisabled: layoutActionsDisabled, documentOrderIndex: i } );
}
}
else if ( childLName == "property" )
{
- if ( this._parsePSMLProperty( child, propertiesMap ) == "sizes" )
+ if ( this._parsePSMLProp( child, propertiesMap ) == "sizes" )
{
if ( sizes != null )
{
- dojo.raise( "_parsePSMLLayoutFragment called with layout fragment that contains more than one sizes property: " + layoutNode );
+ dojo.raise( "Layout fragment has multiple sizes definitions: " + layoutNode );
return null;
}
- if ( jetspeed.prefs.printModeOnly != null )
+ if ( jsObj.prefs.printModeOnly != null )
{
sizes = [ "100" ];
sizesSum = 100;
@@ -1487,7 +1414,7 @@
actionsMap[ actionName.toLowerCase() ] = { id: actionName, type: actionType, label: actionLabel, url: actionUrl, alt: actionAlt };
}
},
- _parsePSMLCurrentActionState: function( fragmentNode )
+ _parsePSMLActionState: function( fragmentNode )
{
var nodes = fragmentNode.getElementsByTagName( "state" );
if ( nodes != null && nodes.length == 1 && nodes[0].firstChild != null )
@@ -1496,7 +1423,7 @@
}
return null;
},
- _parsePSMLCurrentActionMode: function( fragmentNode )
+ _parsePSMLActionMode: function( fragmentNode )
{
var nodes = fragmentNode.getElementsByTagName( "mode" );
if ( nodes != null && nodes.length == 1 && nodes[0].firstChild != null )
@@ -1514,18 +1441,18 @@
}
return null;
},
- _parsePSMLProperties: function( fragmentNode, propertiesMap )
+ _parsePSMLProps: function( fragmentNode, propertiesMap )
{
if ( propertiesMap == null )
propertiesMap = {};
var props = fragmentNode.getElementsByTagName( "property" );
for( var propsIdx=0; propsIdx < props.length; propsIdx++ )
{
- this._parsePSMLProperty( props[propsIdx], propertiesMap );
+ this._parsePSMLProp( props[propsIdx], propertiesMap );
}
return propertiesMap;
},
- _parsePSMLProperty: function( propertyNode, propertiesMap )
+ _parsePSMLProp: function( propertyNode, propertiesMap )
{
var propName = propertyNode.getAttribute( "name" );
var propValue = propertyNode.getAttribute( "value" );
@@ -1548,8 +1475,10 @@
_layoutCreateModel: function( layoutFragment, parentColumn, portletsByPageColumn, omitLayoutHeader )
{ // layoutFragmentParentColumnIndex, parentColumnsInLayout
+ var jsObj = jetspeed;
+ var djObj = dojo;
var allColumnsStartIndex = this.columns.length;
- var colModelResult = this._layoutRegisterAndCreateColumnsModel( layoutFragment, parentColumn, omitLayoutHeader );
+ var colModelResult = this._layoutCreateColsModel( layoutFragment, parentColumn, omitLayoutHeader );
var columnsInLayout = colModelResult.columnsInLayout;
if ( colModelResult.addedLayoutHeaderColumn )
allColumnsStartIndex++;
@@ -1578,10 +1507,10 @@
{
var childFrag = layoutFragment.fragments[ i ];
var childFragInColIndex = i;
- if ( childFrag.properties && childFrag.properties[ jetspeed.id.PORTLET_PROP_COLUMN ] >= 0 )
+ if ( childFrag.properties && childFrag.properties[ jsObj.id.PP_COLUMN ] >= 0 )
{
- if ( childFrag.properties[ jetspeed.id.PORTLET_PROP_COLUMN ] != null && childFrag.properties[ jetspeed.id.PORTLET_PROP_COLUMN ] >= 0 )
- childFragInColIndex = childFrag.properties[ jetspeed.id.PORTLET_PROP_COLUMN ] ;
+ if ( childFrag.properties[ jsObj.id.PP_COLUMN ] != null && childFrag.properties[ jsObj.id.PP_COLUMN ] >= 0 )
+ childFragInColIndex = childFrag.properties[ jsObj.id.PP_COLUMN ] ;
}
if ( childFragInColIndex >= columnsInLayoutLen )
{
@@ -1605,7 +1534,7 @@
{
clonedLayoutFragmentCount++;
var clonedPortletLayout = {};
- dojo.lang.mixin( clonedPortletLayout, layoutFragment );
+ djObj.lang.mixin( clonedPortletLayout, layoutFragment );
clonedPortletLayout.fragments = new Array();
clonedPortletLayout.layoutFragmentIndexes = new Array();
clonedPortletLayout.otherFragmentIndexes = new Array();
@@ -1665,8 +1594,9 @@
return columnsInLayout;
},
- _layoutFragmentChildCollapse: function( layoutFragment, targetLayoutFragment )
+ _layoutFragChildCollapse: function( layoutFragment, targetLayoutFragment )
{
+ var jsObj = jetspeed;
var hasNestedLayouts = false;
if ( targetLayoutFragment == null )
targetLayoutFragment = layoutFragment;
@@ -1681,34 +1611,35 @@
for ( var i = 0 ; i < layoutChildFrag.otherFragmentIndexes.length ; i++ )
{
var pFrag = layoutChildFrag.fragments[ layoutChildFrag.otherFragmentIndexes[i] ];
- pFrag.properties[ jetspeed.id.PORTLET_PROP_COLUMN ] = -1;
- pFrag.properties[ jetspeed.id.PORTLET_PROP_ROW ] = -1;
+ pFrag.properties[ jsObj.id.PP_COLUMN ] = -1;
+ pFrag.properties[ jsObj.id.PP_ROW ] = -1;
// BOZO:NOW: ^^ should we set to -1 or delete row & column properties ?
pFrag.documentOrderIndex = targetLayoutFragment.fragments.length;
targetLayoutFragment.fragments.push( pFrag );
targetLayoutFragment.otherFragIndexes.push( targetLayoutFragment.fragments.length ) ;
}
}
- this._layoutFragmentChildCollapse( layoutChildFrag, targetLayoutFragment );
+ this._layoutFragChildCollapse( layoutChildFrag, targetLayoutFragment );
}
}
return hasNestedLayouts;
},
- _layoutRegisterAndCreateColumnsModel: function( layoutFragment, parentColumn, omitLayoutHeader )
+ _layoutCreateColsModel: function( layoutFragment, parentColumn, omitLayoutHeader )
{
+ var jsObj = jetspeed;
this.layouts[ layoutFragment.id ] = layoutFragment;
var addedLayoutHeaderColumn = false;
var columnsInLayout = new Array();
- if ( jetspeed.prefs.windowTiling && layoutFragment.columnSizes.length > 0 )
+ if ( jsObj.prefs.windowTiling && layoutFragment.columnSizes.length > 0 )
{
var subOneLast = false;
- if ( jetspeed.browser_IE ) // IE can't deal with 100% here on any nested column - so subtract 0.1% - bug not fixed in IE7
+ if ( jsObj.UAie ) // IE can't deal with 100% here on any nested column - so subtract 0.1% - bug not fixed in IE7
subOneLast = true;
if ( parentColumn != null && ! omitLayoutHeader )
{
- var layoutHeaderColModelObj = new jetspeed.om.Column( 0, layoutFragment.id, ( subOneLast ? layoutFragment.columnSizesSum-0.1 : layoutFragment.columnSizesSum ), this.columns.length, layoutFragment.layoutActionsDisabled );
+ var layoutHeaderColModelObj = new jsObj.om.Column( 0, layoutFragment.id, ( subOneLast ? layoutFragment.columnSizesSum-0.1 : layoutFragment.columnSizesSum ), this.columns.length, layoutFragment.layoutActionsDisabled );
layoutHeaderColModelObj.layoutHeader = true;
this.columns.push( layoutHeaderColModelObj );
if ( parentColumn.columnChildren == null )
@@ -1723,7 +1654,7 @@
var size = layoutFragment.columnSizes[i];
if ( subOneLast && i == (layoutFragment.columnSizes.length - 1) )
size = size - 0.1;
- var colModelObj = new jetspeed.om.Column( i, layoutFragment.id, size, this.columns.length, layoutFragment.layoutActionsDisabled );
+ var colModelObj = new jsObj.om.Column( i, layoutFragment.id, size, this.columns.length, layoutFragment.layoutActionsDisabled );
this.columns.push( colModelObj );
if ( parentColumn != null )
{
@@ -1738,6 +1669,7 @@
},
_layoutCreatePortletsModel: function( layoutFragment, columnsInLayout, pageColumnStartIndex, portletsByPageColumn )
{
+ var jsObj = jetspeed;
if ( layoutFragment.otherFragmentIndexes != null && layoutFragment.otherFragmentIndexes.length > 0 )
{
var portletsByColumn = new Array(); // for dispersing portlets when column specification is not valid
@@ -1749,26 +1681,26 @@
{
var pFrag = layoutFragment.fragments[ layoutFragment.otherFragmentIndexes[i] ];
- if ( jetspeed.debugPortletEntityIdFilter )
+ if ( jsObj.debugPortletEntityIdFilter )
{
- if ( ! dojo.lang.inArray( jetspeed.debugPortletEntityIdFilter, pFrag.id ) )
+ if ( ! dojo.lang.inArray( jsObj.debugPortletEntityIdFilter, pFrag.id ) )
pFrag = null;
}
if ( pFrag != null )
{
var portletPageColumnKey = "z";
- var portletWindowExtendedProperty = pFrag.properties[ jetspeed.id.PORTLET_PROP_DESKTOP_EXTENDED ];
+ var portletWindowExtendedProperty = pFrag.properties[ jsObj.id.PP_DESKTOP_EXTENDED ];
- var portletWindowPositionStatic = jetspeed.prefs.windowTiling;
- var portletWindowHeightToFit = jetspeed.prefs.windowHeightExpand;
- if ( portletWindowExtendedProperty != null && jetspeed.prefs.windowTiling && jetspeed.prefs.printModeOnly == null )
+ var portletWindowPositionStatic = jsObj.prefs.windowTiling;
+ var portletWindowHeightToFit = jsObj.prefs.windowHeightExpand;
+ if ( portletWindowExtendedProperty != null && jsObj.prefs.windowTiling && jsObj.prefs.printModeOnly == null )
{
- var extPropData = portletWindowExtendedProperty.split( jetspeed.id.PORTLET_PROP_DESKTOP_EXTENDED_PAIR_SEPARATOR );
+ var extPropData = portletWindowExtendedProperty.split( jsObj.id.PP_PAIR_SEPARATOR );
var extProp = null, extPropLen = 0, extPropName = null, extPropValue = null, extPropFlag = false;
if ( extPropData != null && extPropData.length > 0 )
{
- var propSeparator = jetspeed.id.PORTLET_PROP_DESKTOP_EXTENDED_PROP_SEPARATOR;
+ var propSeparator = jsObj.id.PP_PROP_SEPARATOR;
for ( var extPropIndex = 0 ; extPropIndex < extPropData.length ; extPropIndex++ )
{
extProp = extPropData[extPropIndex];
@@ -1781,25 +1713,25 @@
extPropName = extProp.substring( 0, eqPos );
extPropValue = extProp.substring( eqPos +1 );
extPropFlag = ( ( extPropValue == "true" ) ? true : false );
- if ( extPropName == jetspeed.id.PORTLET_PROP_DESKTOP_EXTENDED_STATICPOS )
+ if ( extPropName == jsObj.id.PP_STATICPOS )
portletWindowPositionStatic = extPropFlag;
- else if ( extPropName == jetspeed.id.PORTLET_PROP_DESKTOP_EXTENDED_FITHEIGHT )
+ else if ( extPropName == jsObj.id.PP_FITHEIGHT )
portletWindowHeightToFit = extPropFlag;
}
}
}
}
}
- else if ( ! jetspeed.prefs.windowTiling )
+ else if ( ! jsObj.prefs.windowTiling )
{
portletWindowPositionStatic = false;
}
- pFrag.properties[ jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC ] = portletWindowPositionStatic;
- pFrag.properties[ jetspeed.id.PORTLET_PROP_WINDOW_HEIGHT_TO_FIT ] = portletWindowHeightToFit;
+ pFrag.properties[ jsObj.id.PP_WINDOW_POSITION_STATIC ] = portletWindowPositionStatic;
+ pFrag.properties[ jsObj.id.PP_WINDOW_HEIGHT_TO_FIT ] = portletWindowHeightToFit;
- if ( portletWindowPositionStatic && jetspeed.prefs.windowTiling )
+ if ( portletWindowPositionStatic && jsObj.prefs.windowTiling )
{
- var portletColumnIndex = pFrag.properties[ jetspeed.id.PORTLET_PROP_COLUMN ];
+ var portletColumnIndex = pFrag.properties[ jsObj.id.PP_COLUMN ];
if ( portletColumnIndex == null || portletColumnIndex == "" || portletColumnIndex < 0 )
{
var minPortlets = -1;
@@ -1821,7 +1753,7 @@
var portletPageColumnIndex = pageColumnStartIndex + new Number( portletColumnIndex );
portletPageColumnKey = portletPageColumnIndex.toString();
}
- var portlet = new jetspeed.om.Portlet( pFrag.name, pFrag.id, null, pFrag.properties, pFrag.actions, pFrag.currentActionState, pFrag.currentActionMode, pFrag.decorator, pFrag.layoutActionsDisabled );
+ var portlet = new jsObj.om.Portlet( pFrag.name, pFrag.id, null, pFrag.properties, pFrag.actions, pFrag.currentActionState, pFrag.currentActionMode, pFrag.decorator, pFrag.layoutActionsDisabled );
portlet.initialize();
this.putPortlet( portlet ) ;
@@ -1836,10 +1768,10 @@
}
},
- _portletsInitializeWindowState: function( /* Array */ portletsByPageColumnZ )
+ _portletsInitWinState: function( /* Array */ portletsByPageColumnZ )
{
var initialColumnRowAllPortlets = {};
- this.getPortletCurrentColumnRow( null, false, initialColumnRowAllPortlets );
+ this.getPortletCurColRow( null, false, initialColumnRowAllPortlets );
for ( var portletIndex in this.portlets )
{
var portlet = this.portlets[portletIndex];
@@ -1857,9 +1789,9 @@
}
}
if ( portletInitialColRow != null )
- portlet._initializeWindowState( portletInitialColRow, false );
+ portlet._initWinState( portletInitialColRow, false );
else
- dojo.raise( "page._portletsInitializeWindowState could not find window state init data for portlet: " + portlet.getId() );
+ dojo.raise( "Window state data not found for portlet: " + portlet.getId() );
}
},
@@ -1879,7 +1811,7 @@
return ( aZIndex - bZIndex );
},
- _createColumnsStart: function( allColumnsParent )
+ _createColsStart: function( allColumnsParent )
{
if ( ! this.columnsStructure || this.columnsStructure.length == 0 ) return;
var columnContainerNode = document.createElement( "div" );
@@ -1888,12 +1820,12 @@
for ( var colIndex = 0 ; colIndex < this.columnsStructure.length ; colIndex++ )
{
var colObj = this.columnsStructure[colIndex];
- this._createColumns( colObj, columnContainerNode ) ;
+ this._createCols( colObj, columnContainerNode ) ;
}
allColumnsParent.appendChild( columnContainerNode );
},
- _createColumns: function( column, columnContainerNode )
+ _createCols: function( column, columnContainerNode )
{
column.createColumn() ;
if ( column.columnChildren != null && column.columnChildren.length > 0 )
@@ -1901,12 +1833,12 @@
for ( var colIndex = 0 ; colIndex < column.columnChildren.length ; colIndex++ )
{
var colObj = column.columnChildren[ colIndex ];
- this._createColumns( colObj, column.domNode ) ;
+ this._createCols( colObj, column.domNode ) ;
}
}
columnContainerNode.appendChild( column.domNode );
},
- _removeColumns: function( /* DOM Node */ preserveWindowNodesInNode )
+ _removeCols: function( /* DOM Node */ preserveWindowNodesInNode )
{
if ( ! this.columns || this.columns.length == 0 ) return;
for ( var i = 0 ; i < this.columns.length ; i++ )
@@ -1915,7 +1847,7 @@
{
if ( preserveWindowNodesInNode )
{
- var windowNodesInColumn = jetspeed.ui.getPortletWindowChildren( this.columns[i].domNode, null );
+ var windowNodesInColumn = jetspeed.ui.getPWinChildren( this.columns[i].domNode, null );
dojo.lang.forEach( windowNodesInColumn,
function( windowNode ) { preserveWindowNodesInNode.appendChild( windowNode ); } );
}
@@ -1929,7 +1861,7 @@
this.columns = [];
},
- getPortletCurrentColumnRow: function( /* DOM node */ justForPortletWindowNode, /* boolean */ includeGhosts, /* map */ currentColumnRowAllPortlets )
+ getPortletCurColRow: function( /* DOM node */ justForPortletWindowNode, /* boolean */ includeGhosts, /* map */ currentColumnRowAllPortlets )
{
if ( ! this.columns || this.columns.length == 0 ) return null;
var result = null;
@@ -1953,7 +1885,7 @@
currentLayout = this.layouts[ currentLayoutId ];
if ( currentLayout == null )
{
- dojo.raise( "getPortletCurrentColumnRow cannot locate layout id: " + currentLayoutId ) ;
+ dojo.raise( "Layout not found: " + currentLayoutId ) ;
return null;
}
currentLayoutRowCount = 0;
@@ -1966,10 +1898,10 @@
}
else
{
- var parentColObj = this.getColumnFromColumnNode( colObj.domNode.parentNode );
+ var parentColObj = this.getColFromColNode( colObj.domNode.parentNode );
if ( parentColObj == null )
{
- dojo.raise( "getPortletCurrentColumnRow cannot locate parent column for column: " + colObj ) ;
+ dojo.raise( "Parent column not found: " + colObj ) ;
return null;
}
colObj = parentColObj;
@@ -1977,11 +1909,13 @@
}
var colCurrentRow = null;
+ var jsObj = jetspeed;
+ var djObj = dojo;
for ( var colChildIndex = 0 ; colChildIndex < colChildNodes.length ; colChildIndex++ )
{
var colChild = colChildNodes[colChildIndex];
- if ( dojo.html.hasClass( colChild, jetspeed.id.PORTLET_WINDOW_STYLE_CLASS ) || ( includeGhosts && dojo.html.hasClass( colChild, jetspeed.id.PORTLET_WINDOW_GHOST_STYLE_CLASS ) ) || ( includeLayouts && dojo.html.hasClass( colChild, "desktopColumn" ) ) )
+ if ( djObj.html.hasClass( colChild, jsObj.id.PWIN_CLASS ) || ( includeGhosts && djObj.html.hasClass( colChild, jsObj.id.PWIN_GHOST_CLASS ) ) || ( includeLayouts && djObj.html.hasClass( colChild, "desktopColumn" ) ) )
{
colCurrentRow = ( colCurrentRow == null ? 0 : colCurrentRow + 1 );
if ( (colCurrentRow + 1) > currentLayoutRowCount )
@@ -2001,17 +1935,17 @@
}
else if ( currentColumnRowAllPortlets != null )
{
- var portletWindowWidget = this.getPortletWindowFromNode( colChild );
+ var portletWindowWidget = this.getPWinFromNode( colChild );
if ( portletWindowWidget == null )
{
- dojo.raise( "getPortletCurrentColumnRow cannot locate PortletWindow for node." ) ;
+ djObj.raise( "PortletWindow not found for node" ) ;
}
else
{
var portlet = portletWindowWidget.portlet;
if ( portlet == null )
{
- dojo.raise( "getPortletCurrentColumnRow PortletWindow.portlet is for widgetId: " + portletWindowWidget.widgetId ) ;
+ djObj.raise( "PortletWindow for node has null portlet: " + portletWindowWidget.widgetId ) ;
}
else
{
@@ -2029,12 +1963,13 @@
},
_getPortletArrayByZIndex: function()
{
+ var jsObj = jetspeed;
var portletArray = this.getPortletArray();
if ( ! portletArray ) return portletArray;
var filteredPortletArray = [];
for ( var i = 0 ; i < portletArray.length; i++ )
{
- if ( ! portletArray[i].getProperty( jetspeed.id.PORTLET_PROP_WINDOW_POSITION_STATIC ) )
+ if ( ! portletArray[i].getProperty( jsObj.id.PP_WINDOW_POSITION_STATIC ) )
filteredPortletArray.push( portletArray[i] );
}
filteredPortletArray.sort( this._portletZIndexCompare );
@@ -2045,9 +1980,9 @@
var aZIndex = null;
var bZIndex = null;
var windowState = null;
- windowState = portletA.getLastSavedWindowState();
+ windowState = portletA.getSavedWinState();
aZIndex = windowState.zIndex;
- windowState = portletB.getLastSavedWindowState();
+ windowState = portletB.getSavedWinState();
bZIndex = windowState.zIndex;
if ( aZIndex && ! bZIndex )
return -1;
@@ -2060,31 +1995,22 @@
getPortletDecorationDefault: function()
{
+ var jsObj = jetspeed;
var pd = null;
- if ( djConfig.isDebug && jetspeed.debug.windowDecorationRandom )
+ if ( djConfig.isDebug && jsObj.debug.windowDecorationRandom )
{
- pd = jetspeed.prefs.portletDecorationsAllowed[ Math.floor( Math.random() * jetspeed.prefs.portletDecorationsAllowed.length ) ];
+ pd = jsObj.prefs.portletDecorationsAllowed[ Math.floor( Math.random() * jsObj.prefs.portletDecorationsAllowed.length ) ];
}
else
{
var defaultpd = this.getPortletDecorator();
- if ( dojo.lang.indexOf( jetspeed.prefs.portletDecorationsAllowed, defaultpd ) != -1 )
+ if ( dojo.lang.indexOf( jsObj.prefs.portletDecorationsAllowed, defaultpd ) != -1 )
[... 2723 lines stripped ...]
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org