<!--
 * Copyright (c) 2001, 2005, Oracle. All rights reserved.  
 *
 *      NAME
 *       searchPatchsetsInHomes.uix
 *
 *      NOTES
 *       search Oracle Patchsets installed in Homes
 *
 * MODIFIED (MM/DD/YY)  VERSION
 *    kchias 06/23/05 - remove obs ref 
 *    awarka 12/03/03 - Bug Fix For Issue#3280397 
 *    kchias 11/03/03 - bugfix 2878975 
 *    kchias 10/28/03 - bugfix 3211721 
 *    kchias 10/08/03 - add login to title 
 *    shuber 09/30/03 - Use group_flat_memberships 
 *    kchias 09/08/03 - bugfix 2911909
 *    kchias 03/25/03 - bugfix 2665786
 *    shuber 03/05/03 - Adding group membership filter
 *    kchias 10/29/02 - bugfix 2599101
 *    kchias 10/14/02 - ui review cleanup
 *    kchias 10/02/02 - ADA compliant
 *    kchias 08/27/02 - kchiasso_ecm_search_aug1902
 *
 *
 *  @author  kChiasson
 *
-->
<page xmlns="http://xmlns.oracle.com/uix/ui" expressionLanguage="data" xmlns:ui="http://xmlns.oracle.com/uix/ui">
 <content>
  <page xmlns="http://bali.us.oracle.com/cabo/baja" xmlns:baja="http://bali.us.oracle.com/cabo/baja" xmlns:marlin="http://bali.us.oracle.com/cabo/marlin" xmlns:uix="http://bali.us.oracle.com/cabo/marlin" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:data="http://bali.us.oracle.com/cabo/marlin">
   <baja:head xmlns="http://bali.us.oracle.com/cabo/marlin" xmlns:uix="http://bali.us.oracle.com/cabo/marlin" xmlns:html="http://www.w3.org/TR/REC-html40">
    <dataScope>
     <contents>
      <head>
       <boundAttribute name="title">
        <concat>
         <dataObject select="loginTitle" source="getLoginTitle"/>
         <fixed javaType="string">&amp;nbsp;-&amp;nbsp;
         </fixed>
         <dataObject select="TITLE_SEARCHPATCHSETSINHOMES" source="ResourceBundle"/>
        </concat>
       </boundAttribute>
      </head>
     </contents>
     <provider>
      <data name="getLoginTitle">
       <method class="oracle.sysman.eml.ecm.util.EcmSessionUtil" method="getLoginTitle"/>
      </data>
      <data name="ResourceBundle">
       <bundle class="oracle.sysman.eml.ecm.search.util.SearchResourceBundle"/>
      </data>
     </provider>
    </dataScope>
   </baja:head><!-- special handler to load help topic -->
   <handlers>
    <event name="null">
     <method class="oracle.sysman.eml.ecm.OnlineHelp" method="loadSearchHelpTopic"/>
    </event>
   </handlers>
   <baja:content xmlns="http://bali.us.oracle.com/cabo/marlin">
    <dataScope>
     <contents>
      <script>
       <contents>// clear out the previous selections function clearParams() { with(document.searchPatchsetsInHomes) { hostNameText.value = ""; homeNameText.value = ""; patchsetNameText.value = ""; versionText.value = ""; groupMembershipText.value = ""; } }
       </contents>
      </script>
      <form name="searchPatchsetsInHomes">
       <contents>
        <formValue name="blockStart" uix:value="blockStart@patchList"/>
        <formValue name="anchor" uix:value="anchor@patchList"/>
        <pageLayout xmlns="http://bali.us.oracle.com/cabo/marlin" uix:title="TITLE_SEARCHPATCHSETSINHOMES@ResourceBundle">
         <mediumAdvertisement>
          <include baja:node="../../oemBanner"/>
         </mediumAdvertisement>
         <marlin:globalButtons>
          <include baja:node="../../globalButtonBar"/>
         </marlin:globalButtons>
         <marlin:tabs>
          <include baja:node="../../globalTabs"/>
         </marlin:tabs>
         <marlin:location>
          <include baja:node="../../breadCrumbs"/>
         </marlin:location>
         <marlin:pageHeader>
          <include baja:node="../../globalHeader"/>
         </marlin:pageHeader>
         <copyright>
          <include baja:node="../../copyright"/>
         </copyright>
         <pageButtons>
          <pageButtonBar>
           <contents>
            <submitButton name="event" value="doSQLSearch" uix:text="BTN_SEARCHSQL@ResourceBundle"/>
           </contents>
          </pageButtonBar>
         </pageButtons>
         <contents>
          <messageBox automatic="true"/><!-- make sure valid patch data -->
          <switcher uix:childName="status@searchList" childName="success">
           <case name="failure">
            <messageBox automatic="false" uix:text="errHdr@searchList" uix:message="errMsg@searchList" messageType="error"/>
           </case>
           <case name="success">
            <stackLayout>
             <contents>
              <include baja:node="../../targetTime"/>
              <header uix:text="HDR_SEARCHCRITERIA@ResourceBundle">
               <contents>
                <tableLayout width="65%" align="center">
                 <contents>
                  <rowLayout>
                   <contents>
                    <rowLayout hAlign="right">
                     <contents>
                      <cellFormat wrappingDisabled="true">
                       <contents>
                        <spacer width="10"/>
                        <styledText labeledNodeId="hostNameID" styleClass="OraPromptText" uix:text="LBL_HOSTNAME@ResourceBundle"/>
                       </contents>
                      </cellFormat>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="right">
                     <contents>
                      <spacer width="10"/>
                      <choice name="hostNameQuery" id="hostNameID" uix:selectedValue="hostNameQuery@searchData">
                       <contents>
                        <option uix:text="OPT_CONTAINS@ResourceBundle" value="OPT_CONTAINS"/>
                        <option uix:text="OPT_EXACT@ResourceBundle" value="OPT_EXACT"/>
                        <option uix:text="OPT_NOTEXACT@ResourceBundle" value="OPT_NOTEXACT"/>
                        <option uix:text="OPT_NOTCONTAINS@ResourceBundle" value="OPT_NOTCONTAINS"/>
                       </contents>
                      </choice>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="left">
                     <contents>
                      <spacer width="20"/>
                      <textInput required="no" name="hostNameText" id="hostNameID" uix:text="hostNameText@searchData" columns="20"/>
                     </contents>
                    </rowLayout>
                   </contents>
                  </rowLayout>
                  <rowLayout vAlign="top">
                   <contents>
                    <rowLayout hAlign="right">
                     <contents>
                      <cellFormat wrappingDisabled="true">
                       <contents>
                        <spacer width="10"/>
                        <styledText labeledNodeId="groupMembershipID" styleClass="OraPromptText" uix:text="LBL_GROUPNAME@ResourceBundle"/>
                       </contents>
                      </cellFormat>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="right">
                     <contents>
                      <spacer width="10"/>
                      <choice name="groupMembershipQuery" id="groupMembershipID" uix:selectedValue="groupMembershipQuery@searchData">
                       <contents>
                        <option uix:text="OPT_CONTAINS@ResourceBundle" value="OPT_CONTAINS"/>
                        <option uix:text="OPT_EXACT@ResourceBundle" value="OPT_EXACT"/>
                        <option uix:text="OPT_NOTEXACT@ResourceBundle" value="OPT_NOTEXACT"/>
                        <option uix:text="OPT_NOTCONTAINS@ResourceBundle" value="OPT_NOTCONTAINS"/>
                       </contents>
                      </choice>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="left">
                     <contents>
                      <spacer width="18"/>
                      <messageTextInput required="no" uix:tip="LBL_HOSTGROUPHINT@ResourceBundle" name="groupMembershipText" id="groupMembershipID" uix:text="groupMembershipText@searchData" columns="20"/>
                     </contents>
                    </rowLayout>
                   </contents>
                  </rowLayout>
                  <rowLayout>
                   <contents>
                    <rowLayout hAlign="right">
                     <contents>
                      <cellFormat wrappingDisabled="true">
                       <contents>
                        <spacer width="10"/>
                        <styledText labeledNodeId="homeNameID" styleClass="OraPromptText" uix:text="PW_ORACLEHOME@PatchResourceBundle"/>
                       </contents>
                      </cellFormat>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="right">
                     <contents>
                      <spacer width="10"/>
                      <choice name="homeNameQuery" id="homeNameID" uix:selectedValue="homeNameQuery@searchData">
                       <contents>
                        <option uix:text="OPT_CONTAINS@ResourceBundle" value="OPT_CONTAINS"/>
                        <option uix:text="OPT_EXACT@ResourceBundle" value="OPT_EXACT"/>
                        <option uix:text="OPT_NOTEXACT@ResourceBundle" value="OPT_NOTEXACT"/>
                        <option uix:text="OPT_NOTCONTAINS@ResourceBundle" value="OPT_NOTCONTAINS"/>
                       </contents>
                      </choice>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="left">
                     <contents>
                      <spacer width="20"/>
                      <textInput required="no" name="homeNameText" id="homeNameID" uix:text="homeNameText@searchData" columns="20"/>
                     </contents>
                    </rowLayout>
                   </contents>
                  </rowLayout>
                  <rowLayout>
                   <contents>
                    <rowLayout hAlign="right">
                     <contents>
                      <cellFormat wrappingDisabled="true">
                       <contents>
                        <spacer width="10"/>
                        <styledText labeledNodeId="patchsetNameID" styleClass="OraPromptText" uix:text="LBL_PATCHSETNAME@ResourceBundle"/>
                       </contents>
                      </cellFormat>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="right">
                     <contents>
                      <spacer width="10"/>
                      <choice name="patchsetNameQuery" id="patchsetNameID" uix:selectedValue="patchsetNameQuery@searchData">
                       <contents>
                        <option uix:text="OPT_CONTAINS@ResourceBundle" value="OPT_CONTAINS"/>
                        <option uix:text="OPT_EXACT@ResourceBundle" value="OPT_EXACT"/>
                        <option uix:text="OPT_NOTEXACT@ResourceBundle" value="OPT_NOTEXACT"/>
                        <option uix:text="OPT_NOTCONTAINS@ResourceBundle" value="OPT_NOTCONTAINS"/>
                       </contents>
                      </choice>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="left">
                     <contents>
                      <spacer width="20"/>
                      <textInput required="no" name="patchsetNameText" id="patchsetNameID" uix:text="patchsetNameText@searchData" columns="20"/>
                     </contents>
                    </rowLayout>
                   </contents>
                  </rowLayout>
                  <rowLayout>
                   <contents>
                    <rowLayout hAlign="right">
                     <contents>
                      <cellFormat wrappingDisabled="true">
                       <contents>
                        <spacer width="10"/>
                        <styledText labeledNodeId="versionID" styleClass="OraPromptText" uix:text="LBL_VERSION@ResourceBundle"/>
                       </contents>
                      </cellFormat>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="right">
                     <contents>
                      <spacer width="10"/>
                      <choice name="versionQuery" id="versionID" uix:selectedValue="versionQuery@searchData">
                       <contents>
                        <option uix:text="OPT_CONTAINS@ResourceBundle" value="OPT_CONTAINS"/>
                        <option uix:text="OPT_EXACT@ResourceBundle" value="OPT_EXACT"/>
                        <option uix:text="OPT_NOTEXACT@ResourceBundle" value="OPT_NOTEXACT"/>
                        <option uix:text="OPT_NOTCONTAINS@ResourceBundle" value="OPT_NOTCONTAINS"/>
                       </contents>
                      </choice>
                     </contents>
                    </rowLayout>
                    <rowLayout hAlign="left">
                     <contents>
                      <spacer width="20"/>
                      <textInput required="no" name="versionText" id="versionID" uix:text="versionText@searchData" columns="20"/>
                     </contents>
                    </rowLayout>
                   </contents>
                  </rowLayout>
                 </contents>
                </tableLayout>
               </contents>
              </header>
              <tableLayout width="45%">
               <contents>
                <spacer height="5"/>
                <rowLayout hAlign="right">
                 <contents>
                  <cellFormat wrappingDisabled="true">
                   <contents>
                    <submitButton name="event" value="doSearch" uix:text="BTN_SEARCH@ResourceBundle"/>
                    <spacer width="8"/>
                    <button uix:text="BTN_CLEAR@ResourceBundle" onClick="clearParams();"/>
                    <spacer width="8"/>
                   </contents>
                  </cellFormat>
                 </contents>
                </rowLayout>
               </contents>
              </tableLayout>
              <header uix:text="HDR_RESULTS@ResourceBundle">
               <contents>
                <rowLayout hAlign="right">
                 <contents>
                  <button uix:text="BTN_SAVETOFILE@ResourceBundle" destination="export/exportSearch$searchType=PatchsetsInstalledinHomes"/>
                 </contents>
                </rowLayout>
                <html:br/>
                <spacer height="5"/>
                <table name="resultsTable" id="results" width="100%" formSubmitted="true" minValue="1" uix:value="value@searchList" uix:maxValue="maxValue@searchList" uix:blockSize="blockSize@searchList" uix:alternateText="MSG_PRESSSEARCH@ResourceBundle" uix:tableData="tabledata@searchList" uix:summary="TBLSUM_RESULTSTABLE@PatchResourceBundle">
                 <tableFormat tableBanding="rowBanding"/>
                 <columnHeaderStamp>
                  <sortableHeader data:text="text" uix:value="value" uix:sortable="sort">
                   <boundAttribute name="sortable">
                    <defaulting>
                     <dataObject data:source="(value)@sortColumnHeader"/>
                     <dataObject select="sort"/>
                    </defaulting>
                   </boundAttribute>
                  </sortableHeader>
                 </columnHeaderStamp>
                 <columnHeaderData>
                  <col id="hdrhostname" uix:text="LBL_HOSTNAME@ResourceBundle" uix:sort="SORT_HOSTNAME@searchList" value="LBL_HOSTNAME"/>
                  <col id="hdroraclehome" uix:text="PW_ORACLEHOME@PatchResourceBundle" uix:sort="SORT_ORACLEHOME@searchList" value="LBL_ORACLEHOME"/>
                  <col id="hdrpatchset" uix:text="LBL_PATCHSETNAME@ResourceBundle" uix:sort="SORT_PATCHSETNAME@searchList" value="LBL_PATCHSETNAME"/>
                  <col id="hdrversion" uix:text="LBL_VERSION@ResourceBundle" uix:sort="SORT_VERSION@searchList" value="LBL_VERSION"/>
                 </columnHeaderData>
                 <contents>
                  <link headers="hdrhostname" uix:text="LBL_HOSTNAME" uix:destination="LBL_HOSTNAME^"/>
                  <link headers="hdroraclehome" uix:text="LBL_ORACLEHOME" uix:destination="LBL_ORACLEHOME^LBL_HOSTNAME,LBL_HOMELOCATION"/>
                  <styledText headers="hdrpatchset" uix:text="LBL_PATCHSETNAME"/>
                  <styledText headers="hdrversion" uix:text="LBL_VERSION"/>
                  <formValue uix:text="LBL_HOMELOCATION"/>
                  <formValue uix:text="LBL_HOMENAME"/>
                 </contents>
                </table>
               </contents>
              </header>
             </contents>
            </stackLayout>
           </case>
          </switcher>
         </contents>
        </pageLayout>
       </contents>
      </form>
     </contents>
     <provider>
      <data name="searchCallbackText">
       <inline innerQuery="select p.host_name as LBL_HOSTNAME, p.home_location || ' (' || p.home_name || ')'  as LBL_ORACLEHOME,  p.external_name as LBL_PATCHSETNAME, p.version as LBL_VERSION, p.home_location as LBL_HOMELOCATION , p.home_name as LBL_HOMENAME from mgmt$software_patchsets p" distinct="true"/>
      </data>
      <data name="columnListInfo">
       <inline>
        <column displayName="LBL_HOSTNAME" destLink="monitoring/hostOverview$target=LBL_HOSTNAME$ctxType=All Targets$type=host?event=doLoad" filterOp="hostNameQuery" filterVal="hostNameText"/>
        <column displayName="LBL_ORACLEHOME" destLink="ecm/track/view/oracleHome$type=host$target=LBL_HOSTNAME$location=LBL_HOMELOCATION" filterOp="homeNameQuery" filterVal="homeNameText"/>
        <column displayName="LBL_PATCHSETNAME" filterOp="patchsetNameQuery" filterVal="patchsetNameText"/>
        <column displayName="LBL_VERSION" filterOp="versionQuery" filterVal="versionText"/><!-- making this field not visible causes the link to get null value for home_lcation
-->
        <column displayName="LBL_HOMELOCATION"/>
        <column displayName="LBL_HOMENAME"/>
        <column displayName="LBL_GROUPNAME" selectColumn="false" filterOp="groupMembershipQuery" filterVal="groupMembershipText" OPT_CONTAINS="membershipContainsOperator" OPT_NOTCONTAINS="membershipNotContainsOperator" OPT_EXACT="membershipExactOperator" OPT_NOTEXACT="membershipNotExactOperator"/>
       </inline>
      </data>
      <data name="predicateOperatorOverrides">
       <inline>
        <condition name="membershipContainsOperator" predicate="exists (select * from mgmt$group_flat_memberships where disjunction and member_target_name = LBL_HOSTNAME and member_target_type = 'host')" disjunction="NLS_UPPER( composite_target_name ) like NLS_UPPER( '%filterVal%' ) {escape '#'} "/>
        <condition name="membershipNotContainsOperator" predicate="not exists (select * from mgmt$group_flat_memberships where disjunction and member_target_name = LBL_HOSTNAME and member_target_type = 'host' )" disjunction="NLS_UPPER( composite_target_name ) like NLS_UPPER( '%filterVal%' ) {escape '#'} "/>
        <condition name="membershipExactOperator" predicate="exists (select * from mgmt$group_flat_memberships where disjunction and member_target_name = LBL_HOSTNAME and member_target_type = 'host')" disjunction="composite_target_name = 'filterVal'"/>
        <condition name="membershipNotExactOperator" predicate="not exists (select * from mgmt$group_flat_memberships where disjunction and member_target_name = LBL_HOSTNAME and member_target_type = 'host')" disjunction="composite_target_name = 'filterVal'"/>
       </inline>
      </data>
      <data name="ResourceBundle">
       <bundle class="oracle.sysman.eml.ecm.search.util.SearchResourceBundle"/>
      </data>
      <data name="PatchResourceBundle">
       <bundle class="oracle.sysman.eml.ecm.patch.util.PatchResourceBundle"/>
      </data>
      <data name="searchData">
       <method class="oracle.sysman.eml.ecm.search.SearchData" method="populateSearchData"/>
      </data>
      <data xmlns="http://bali.us.oracle.com/cabo/marlin" name="searchList">
       <method class="oracle.sysman.eml.ecm.search.SearchData" method="populateResultsTable"/>
      </data>
      <data name="sortColumnHeader">
       <method class="oracle.sysman.eml.ecm.search.SearchData" method="getSortColumnHeader"/>
      </data>
     </provider>
    </dataScope>
   </baja:content>
   <handlers>
    <event name="sort">
     <method class="oracle.sysman.eml.ecm.search.SearchHandler" method="doSort"/>
    </event>
    <event name="doSearch">
     <method class="oracle.sysman.eml.ecm.search.SearchHandler" method="doSearch"/>
    </event>
    <event name="doSQLSearch">
     <method class="oracle.sysman.eml.ecm.search.SearchHandler" method="doSQLSearch"/>
    </event><!-- This handles the next/prev buttons in the results table -->
    <event name="goto">
     <method class="oracle.sysman.eml.ecm.search.SearchHandler" method="tableGoto"/>
    </event>
   </handlers>
  </page>
 </content>
</page>


