| <!-- |
| |
| Copyright (c) 2010, 2020 Oracle and/or its affiliates. All rights reserved. |
| |
| This program and the accompanying materials are made available under the |
| terms of the Eclipse Public License v. 2.0, which is available at |
| http://www.eclipse.org/legal/epl-2.0. |
| |
| This Source Code may also be made available under the following Secondary |
| Licenses when the conditions for such availability set forth in the |
| Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| version 2 with the GNU Classpath Exception, which is available at |
| https://www.gnu.org/software/classpath/license.html. |
| |
| SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| |
| --> |
| |
| <ui:event type="initPage"> |
| setResourceBundle(key="i18n" bundle="org.glassfish.admingui.core.Strings"); |
| getPluginIdFromViewId(viewId="#{facesContext.viewRoot.viewId}", pluginId="#{pluginId}"); |
| </ui:event> |
| |
| <sun:page> |
| <sun:html lang="#{view.locale.getLanguage()}"> |
| <ui:event type="beforeCreate"> |
| setPartialRequest("false"); |
| initSessionAttributes(); |
| if ("!#{sessionScope.fieldLengths}") { |
| // Reads a properties file located at: |
| // v3/admingui/common/src/main/resources/org/glassfish/common/FieldLengths.properties |
| setResourceBundle(key="tmpLengths" bundle="org.glassfish.common.FieldLengths"); |
| |
| // Passes the ResourceBundle (#{tmpLengths}) into Java code... the ResourceBundle will |
| // need to be converted into a Map<String, String> (or maybe Map<String, Integer>?) |
| // and will be stored in #{sessionScope.fieldLengths} |
| getFieldLengths(bundle="#{tmpLengths}" result="#{sessionScope.fieldLengths}"); |
| } |
| // Set expand / collapse preferences... |
| getPreference(default="#{false}", root="glassfish/layout", key="hideLeft", value="#{sessionScope.hideLeft}"); |
| getPreference(default="#{false}", root="glassfish/layout", key="hideRight", value="#{sessionScope.hideRight}"); |
| </ui:event> |
| <sun:head id="head" title="#{guiTitle}" javaScript="true" debug="false" parseOnLoad="false"> |
| <h:outputScript name="jsf.js" library="jakarta.faces" target="head" /> |
| <f:verbatim> |
| <link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/yui/reset-fonts-grids.css"/> |
| <link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/yui/assets/skins/sam/resize.css"/> |
| <link rel="stylesheet" type="text/css" href="#{request.contextPath}/resources/yui/assets/skins/sam/layout.css"/> |
| <link rel="stylesheet" type="text/css" href="#{request.contextPath}/resource/common/css/style.css"/> |
| <script src="#{request.contextPath}/resources/yui/yahoo-dom-event.js"></script> |
| <script src="#{request.contextPath}/resources/yui/dragdrop-min.js"></script> |
| <script src="#{request.contextPath}/resources/yui/element-min.js"></script> |
| <script src="#{request.contextPath}/resources/yui/connection-min.js"></script> |
| <script src="#{request.contextPath}/resources/yui/resize-min.js"></script> |
| <script src="#{request.contextPath}/resources/yui/layout-min.js"></script> |
| </f:verbatim> |
| |
| <sun:script url="/resource/common/js/adminjsf.js" /> |
| |
| <!-- comment out for now since the file style.css doesn't exist. |
| <link rel="stylesheet" type="text/css" href="#{request.contextPath}/style.css" /> |
| --> |
| <!insert name="guiTemplateExtraHead" /> |
| <!insert name="guiExtraHead" /> |
| |
| <f:verbatim> |
| <style type="text/css"> |
| .yui-skin-sam .yui-layout .yui-layout-unit-center div.yui-layout-bd {background-color: #FFF;} |
| .yui-layout-unit-top .yui-layout-bd { background-color: #5b87a4; } |
| .yui-skin-sam .yui-layout .yui-layout-unit-top div.yui-layout-bd { background-color: #5b87a4; } |
| .yui-layout-hd h2 {background-position:center; background-image:url(#{request.contextPath}/theme/com/sun/webui/jsf/suntheme/images/masthead/masthead-background.jpg);} |
| .yui-skin-sam .yui-layout { background-color: #ffffff;} |
| .yui-skin-sam .yui-layout .yui-layout-clip { background-color:#FFFFFF;} |
| |
| .tagDiv {padding: 10px;} |
| .tagDiv .tagList {padding: 10px;} |
| .tagDiv .tagList li {padding: 3px;} |
| .tagDiv .tagList a.tagLink:visited, .tagDiv .tagList a.tagLink:link, .tagDiv .tagList a.removeTag:visited, .tagDiv .tagList a.removeTag:link {color: #000099} |
| .tagDiv .tagList a.tagLink:hover {color: #0000CC} |
| .tagDiv .tagList a.removeTag {margin-left: 6px;padding: 1px 2px 1px 2px; text-decoration:none; background:#EEEEEE;border:1px solid #AAA;} |
| .tagDiv .tagList a.removeTag:hover {color:red; font-weight:bold; text-decoration:none;} |
| #yui-gen1 .yui-layout-hd { display: none; } |
| /* regReminder CSS */ |
| .bulletList {font-weight: bold; font-size: 1.2em; font-style: italic; color: #FFFFFF;} |
| .bulletList a {font-weight: normal;} |
| .bulletList a:link, .bulletList a:visited {color: #b9d2e9;} |
| .bulletList ul {padding-left: 0px; padding-bottom: 15px; margin-left: 90px;} |
| .bulletList li {font-style: normal; font-size: .9em; letter-spacing: -1px; list-style: url('#{request.contextPath}/resource/images/regReminderBullets.png'); padding-bottom: 8px;} |
| .please {color: #FFFFFF; font-size: 1.6em; font-weight: bold; padding-bottom: 10px;} |
| .why {color: #b9d2e9; font-size: 1.3em; font-weight: bold; font-style: italic; padding-bottom: 8px;} |
| .why a:link, .why a:visited {color: #b9d2e9;} |
| |
| .skip { |
| position: absolute; |
| left: -999em; |
| width: 990em; |
| } |
| #execResp { |
| visibility:hidden; |
| display:none; |
| } |
| |
| /* clickjacking defense */ |
| body { display : none; } |
| </style> |
| </f:verbatim> |
| </sun:head> |
| |
| <sun:body style="height:100%;" styleClass="yui-skin-sam" |
| onLoad="admingui.ajax.processElement(window, document.getElementById('Masthead:statusPanel'), false);admingui.ajax.processElement(window, document.getElementById('leftNav'), false);admingui.ajax.processElement(window, document.getElementById('content'), false);document.getElementById('blank').style.display='none';#{guiOnLoad};#{guiTemplateOnLoad};"> |
| "<div id="blank" style="position:fixed; top:0px; left:0px; height:100%; width:100%; background-color: #FFF; z-index:99999;"> </div> |
| <f:verbatim> |
| <div id="ajaxIndicator" style="visibility: hidden"></div> |
| <div id="ajaxPanel" style="visibility: hidden" role="dialog" aria-describedby="ajaxPanelBody"> |
| <div class="modalBackground"> |
| </div> |
| <div class="modalContainer"> |
| <div class="modal"> |
| <div class="modalTop"><a href="#" onclick="admingui.ajax.ajaxComplete(); return false" id="ajaxPanelClose">[X]</a></div> |
| <div class="modalBody" id="ajaxPanelBody"> |
| <p>$resource{i18n.msg.longRunningProcess}</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </f:verbatim> |
| " <div class="yui-skin-sam"><div id="gfLayoutTop"><div class="header_main"> |
| // "<a class="skip" href="#navigation" alt="Skip to Navigation Menu" title="Skip to Navigation Menu">Skip to Navigation Menu</a> |
| <sun:form id="af" prependId="false"> |
| <event id="restartCheck"> |
| <ui:event type="beforeEncode"> |
| if ("!$session{supportCluster}") { |
| gf.restRequest(endpoint="#{sessionScope.REST_URL}/_get-restart-required", method="get", result="#{requestScope.result}"); |
| setSessionAttribute(key="restartRequired", value="#{requestScope.result.data.extraProperties.entity.restartRequired}"); |
| setSessionAttribute(key="unprocessedChanges", value="#{requestScope.result.data.extraProperties.entity.unprocessedChanges}"); |
| } |
| if("$session{supportCluster}") { |
| setSessionAttribute(key="restartRequired" value="$boolean{false}"); |
| } |
| </ui:event> |
| <!-- Masthead Integration Point --> |
| <ui:event type="afterCreate"> |
| includeFirstIntegrationPoint(type="org.glassfish.admingui:masthead" root="$this{component}"); |
| includeFirstIntegrationPoint(type="org.glassfish.admingui:favicon" root="#{view}"); |
| </ui:event> |
| </event> |
| <h:commandButton id="execButton" text="na" style="display:none;"> |
| <ui:event type="command"> |
| <!-- Ok to use #{param} here --> |
| gf.invokeHandler(handler="#{param.h}" args="#{param.a}" depth="#{param.d}" values="#{requestScope.execResp}"); |
| </ui:event> |
| </h:commandButton> |
| <h:inputText id="execResp" value="#{requestScope.execResp}" /> |
| </sun:form> |
| " </div></div> |
| |
| " <div id="gfLayoutLeft"> |
| " <a name="navigation"></a><a class="skip" href="#contentArea" alt="$resource{i18n.skipto.content}" title="$resource{i18n.skipto.content}">$resource{i18n.skipto.content}</a> |
| " <div id="leftNav"> |
| <!insert name="guiLeftNav" /> |
| " </div> |
| " </div> |
| |
| " <div id="gfLayoutCenter" style="height:100%;"> |
| <!-- Content --> |
| "<a name="contentArea"></a> |
| <sun:markup tag="div" id="content" style="height:100%;"> |
| <!insert name="guiTemplateContent"> |
| <!insert name="content"> |
| " <h1>Please wait.... loading.</h1> |
| </insert> |
| </insert> |
| </sun:markup> |
| " </div> |
| |
| /* |
| <!-- |
| |
| I am commenting out the tags panel for now... this functionality should go back into the UI at some point... |
| //<ui:include src="/templates/tagsPanel.jsf" /> |
| --> |
| |
| " <div rendered="#{pageSession.rightContent[0] != null}" id="gfLayoutRight" position="right" width="250" gutter="5px" resize="true" header="#{pageSession.rightContent[0].content}" collapse="true"> |
| <event> |
| <ui:event type="afterCreate"> |
| // FIXME: Consider using a widget which allows multiple content types to share the right panel (i.e. accordian) |
| includeFirstIntegrationPoint(type="org.glassfish.admingui:rightPanel" root="$this{component}"); |
| getIntegrationPoints(type="org.glassfish.admingui:rightPanelTitle" points="#{pageSession.rightContent}"); |
| </ui:event> |
| </event> |
| " </div> |
| */ |
| " </div> |
| |
| <!-- |
| Add Tag Panel |
| <sc:panel id="addTagPanel" visible="false" modal="true" closable="true" fixedCenter="true"> |
| <h3>Tag the Current Page</h3> |
| <sun:form id="tagForm"> |
| <div style="padding: 10px;">Tag: <h:inputText id="tag" value="#{requestScope.tag}"/></div> |
| <h:inputHidden id="url" value="#{requestScope.url}"/> |
| <h:commandButton id="addTagButton" value="Add Tag" onclick="submitTagForm(this); return false;"> |
| <ui:event type="command"> |
| setAttribute(key="tagName" value="FIXME: Get Page Name"); |
| //saveTagInformation(tag="$attribute{tag}", name="$attribute{tagName}", url="#{requestScope.url}"); |
| setAttribute(key="tag" value=""); |
| setAttribute(key="tagName" value=""); |
| </ui:event> |
| </h:commandButton> |
| </sun:form> |
| </sc:panel> |
| --> |
| |
| <!-- |
| Search Tags Panel |
| <sc:panel id="searchTagsPanel" visible="false" modal="true" closable="true" fixedCenter="true" width="300px"> |
| <h3>Search Tags</h3> |
| <div style="width:40px; float: left">Tag:</div> |
| <sun:form id="tagSearch"> |
| <h:inputText id="tag" value="#{requestScope.tag}"/> |
| <h:commandButton id="searchTagButton" value="Search" onclick="submitTagSearchForm(this); return false;"> |
| <ui:event type="command"> |
| //searchTags(tag="$attribute{tag}", hits=>$attribute{tagSearchHits}); |
| setAttribute(key="tag" value=""); |
| </ui:event> |
| </h:commandButton> |
| </sun:form> |
| <div style="height: 200px; overflow: auto;"> |
| <h:dataTable id="hits" value="#{requestScope.tagSearchHits}" var="hit"> |
| <h:column><a href="#{hit.url}">#{hit.name}</a></h:column> |
| </h:dataTable> |
| </div> |
| </sc:panel> |
| --> |
| </sun:body> |
| </sun:html> |
| |
| <!-- FIXME: this should be in adminjsf.js --> |
| " <script type="text/javascript"> |
| /* |
| function submitTagForm(el) { |
| YAHOO.util.Dom.get('tagForm:url').value = window.location; |
| DynaFaces.fireAjaxTransaction(el, |
| { |
| execute: 'tagForm:tag,tagForm:name,tagForm:url,'+el.id, |
| inputs: 'tagForm:tag,tagForm:name,tagForm:url,'+el.id, |
| render: 'tagForm:tag,tagForm:name,tagForm:url,'+el.id, |
| postReplace: function() { |
| YAHOO.util.Dom.get('tagForm:tag').value = ''; |
| YAHOO.util.Dom.get('tagForm:name').value = ''; |
| hidePanel('addTagPanel'); |
| } |
| } ); |
| } |
| function submitTagSearchForm(el) { |
| DynaFaces.fireAjaxTransaction(el, |
| { |
| execute: 'hits,tagSearch:tag,'+el.id, |
| inputs: 'hits,tagSearch:tag,'+el.id, |
| render: 'hits', |
| postReplace: function(zone, html) { |
| YAHOO.util.Dom.get('tagSearch:tag').value = ''; |
| } |
| } ); |
| } |
| |
| <!-- |
| FIXME: I think this would be better implemented using Y!'s KeyListener: |
| http://developer.yahoo.com/yui/examples/container/keylistener.html |
| function showSearchPanel(e) { |
| var result = true; |
| if ((e.charCode == 102) && (e.ctrlKey == true)) { |
| showPanel('searchTagsPanel'); |
| if (e.preventDefault) { |
| e.preventDefault(); |
| } |
| result = false; |
| } |
| return result; |
| } |
| YAHOO.util.Event.addListener(document, "keypress", showSearchPanel); |
| --> |
| */ |
| |
| <f:verbatim> |
| admingui.help.pluginId = '#{pluginId}'; |
| |
| var layout = new YAHOO.widget.Layout({ |
| units: [ |
| { position : 'top', body : 'gfLayoutTop', height : 115, scroll : false, gutter1 : '5px', resize : false, collapse : false}, |
| { position : 'left', body : 'gfLayoutLeft', width : 250, scroll : true, gutter1 : '5px', resize : true, header : '$resource{i18n.peTree}', collapse : true}, |
| { position : 'center', body : 'gfLayoutCenter', gutter1 : '5px', scroll : true} |
| ] |
| }); |
| layout.render(); |
| |
| // Collapse panels if necessary |
| YAHOO.util.Event.onDOMReady(function (ev) { |
| var lu = layout.getUnitByPosition('left'); |
| if (lu) { |
| lu.on('collapse', function(ev) { |
| admingui.util.setPreference("layout", "hideLeft", "true"); |
| }); |
| lu.on('expand', function(ev) { |
| admingui.util.setPreference("layout", "hideLeft", "false"); |
| }); |
| if (#{sessionScope.hideLeft}) { |
| lu.collapse(); |
| } |
| } |
| |
| // Deal w/ the right frame |
| lu = layout.getUnitByPosition('right'); |
| if (lu) { |
| lu.on('collapse', function(ev) { |
| admingui.util.setPreference("layout", "hideRight", "true"); |
| }); |
| lu.on('expand', function(ev) { |
| admingui.util.setPreference("layout", "hideRight", "false"); |
| }); |
| if (#{sessionScope.hideRight}) { |
| lu.collapse(); |
| } |
| } |
| }); |
| </script> |
| <script src="#{request.contextPath}/resource/js/cj.js"></script> |
| </f:verbatim> |
| </sun:page> |