[jboss-cvs] jboss-seam/examples/wiki/view ...

Christian Bauer christian at hibernate.org
Tue Jun 12 08:30:00 EDT 2007


  User: cbauer  
  Date: 07/06/12 08:30:00

  Modified:    examples/wiki/view    userRegister.xhtml adminHome.xhtml
  Added:       examples/wiki/view    search.xhtml
  Log:
  Completed first iteration of search engine
  
  Revision  Changes    Path
  1.5       +1 -1      jboss-seam/examples/wiki/view/userRegister.xhtml
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: userRegister.xhtml
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/view/userRegister.xhtml,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -b -r1.4 -r1.5
  --- userRegister.xhtml	7 May 2007 11:42:31 -0000	1.4
  +++ userRegister.xhtml	12 Jun 2007 12:30:00 -0000	1.5
  @@ -70,7 +70,7 @@
   
               <s:decorate id="usernameDecorate" template="includes/formFieldDecorate.xhtml">
                   <ui:define name="label">Username</ui:define>
  -                <h:inputText tabindex="4" size="16" maxlength="16" required="true" value="#{userHome.instance.username}">
  +                <h:inputText tabindex="4" size="16" maxlength="16" required="true" id="username" value="#{userHome.instance.username}">
                       <a:support event="onblur" action="#{userHome.validateUsername}" reRender="usernameDecorate"/>
                   </h:inputText>
               </s:decorate>
  
  
  
  1.6       +89 -2     jboss-seam/examples/wiki/view/adminHome.xhtml
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: adminHome.xhtml
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/view/adminHome.xhtml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- adminHome.xhtml	7 May 2007 11:42:31 -0000	1.5
  +++ adminHome.xhtml	12 Jun 2007 12:30:00 -0000	1.6
  @@ -41,6 +41,36 @@
   
   <ui:define name="content">
   
  +<script type="text/javascript" src="seam/resource/remoting/resource/remote.js"></script>
  +<script type="text/javascript" src="seam/resource/remoting/interface.js?adminHome"></script>
  +<script type="text/javascript">
  +    Seam.Remoting.displayLoadingMessage = function() {};
  +    Seam.Remoting.hideLoadingMessage = function() {};
  +
  +    var adminHome = Seam.Component.getInstance("adminHome");
  +
  +    jQuery(function() { jQuery("#indexingProgressbarContainer").hide(); } );
  +    function getIndexingProgress(ofOperation) {
  +        Seam.Remoting.getContext().setConversationId('#{conversation.id}');
  +        adminHome.getIndexingProgress(ofOperation, indexingProgressCallback);
  +    }
  +    function indexingProgressCallback(progress) {
  +        if (progress != null &amp;&amp; progress.status == 'Complete') {
  +            adminHome.resetIndexingProgress(progress.ofOperation);
  +            jQuery(".resetIndexButton").show();
  +            jQuery("#indexingProgressbarContainer").hide();
  +            reloadIndexStatistics();
  +        } else if (progress != null) {
  +            jQuery(".resetIndexButton").hide();
  +            jQuery("#indexingProgressbarContainer").show();
  +            jQuery("#indexingProgressbar").reportprogress(progress.percentComplete);
  +            jQuery("#indexingProgressbarLabel").empty();
  +            jQuery("#indexingProgressbarLabel").append(progress.status);
  +            setTimeout("getIndexingProgress('" + progress.ofOperation + "')", 1000);
  +        }
  +    }
  +</script>
  +
   <div id="formMessageBox" class="messageBox"><table id="formMessageTable"/></div>
   
   <h:form><div class="form">
  @@ -57,8 +87,65 @@
               <li id="systemPrefsTab"><a href="#systemPrefs">Preferences</a></li>
           </ul>
   
  -        <div id="systemStats">
  -            Not Implemented
  +        <div id="systemStats" style="padding:10px;">
  +
  +            <a:region>
  +
  +            <a:jsFunction name="reloadIndexStatistics"
  +                          reRender="indexStatistics" 
  +                          action="#{adminHome.loadIndexedEntities}"/>
  +            <div id="indexingProgressbarContainer" class="progressbarContainer">
  +                <span id="indexingProgressbarLabel" class="progressbarLabel"/>
  +                <div id="indexingProgressbar" class="progressbar"/>
  +            </div>
  +
  +            <h:dataTable id="indexStatistics" var="ie"
  +                         value="#{indexedEntities}"
  +                         rendered="#{indexedEntities.rowCount >0}"
  +                         styleClass="datatable topLeftBottomBorder"
  +                         headerClass="regularHeader rightBorder"
  +                         columnClasses="twentyPercentColumn rightBorder alignLeft,
  +                                        tenPercentColumn rightBorder alignCenter,
  +                                        tenPercentColumn rightBorder alignCenter,
  +                                        tenPercentColumn rightBorder alignRight,
  +                                        tenPercentColumn rightBorder alignCenter"
  +                         rowClasses="rowOdd,rowEven"
  +                         cellpadding="0" cellspacing="0" border="0">
  +
  +                <h:column>
  +                    <f:facet name="header">
  +                        Search index
  +                    </f:facet>
  +                    #{ie.description}
  +                </h:column>
  +                <h:column>
  +                    <f:facet name="header">
  +                        # of indexed documents
  +                    </f:facet>
  +                    #{ie.numOfIndexedDocuments}
  +                </h:column>
  +                <h:column>
  +                    <f:facet name="header">
  +                        # of indexed terms
  +                    </f:facet>
  +                    #{ie.numOfIndexedTerms}
  +                </h:column>
  +                <h:column>
  +                    <f:facet name="header">
  +                        Index size
  +                    </f:facet>
  +                    #{wiki:displayFilesize(ie.indexSizeInBytes)}
  +                </h:column>
  +                <h:column>
  +                    <script type="text/javascript">
  +                        jQuery(function(){ getIndexingProgress("#{ie.clazz.name}") });
  +                    </script>
  +                    <a:commandLink id="resetSearchIndex" styleClass="button resetIndexButton" reRender="indexStatistics"
  +                                   action="#{adminHome.resetSearchIndex()}"><span class="buttonLabel">Rebuild index</span></a:commandLink>
  +                </h:column>
  +            </h:dataTable>
  +            </a:region>
  +
           </div>
   
           <div id="rolesPermissions">
  
  
  
  1.1      date: 2007/06/12 12:30:00;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/view/search.xhtml
  
  Index: search.xhtml
  ===================================================================
  <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  <ui:composition xmlns="http://www.w3.org/1999/xhtml"
                  xmlns:s="http://jboss.com/products/seam/taglib"
                  xmlns:ui="http://java.sun.com/jsf/facelets"
                  xmlns:f="http://java.sun.com/jsf/core"
                  xmlns:h="http://java.sun.com/jsf/html"
                  xmlns:a="https://ajax4jsf.dev.java.net/ajax"
                  xmlns:j4j="http://javascript4jsf.dev.java.net/"
                  xmlns:wiki="http://jboss.com/products/seam/wiki"
                  template="themes/#{wikiPreferences.themeName}/template.xhtml">
  
  <ui:define name="includeHeaders">
      <link href="#{themePath}/css/userControl.css" rel="stylesheet" type="text/css"/>
      <link href="#{themePath}/css/searchControl.css" rel="stylesheet" type="text/css"/>
      <link href="#{themePath}/css/mainMenu.css" rel="stylesheet" type="text/css"/>
  </ui:define>
  
  <ui:define name="screenname">Search</ui:define>
  
  <ui:define name="headerTopRight">
      <ui:include src="includes/userControl.xhtml"/>
  </ui:define>
  
  <ui:define name="headerBottomLeft">&#160;</ui:define>
  
  <ui:define name="sidebar">
      <ui:include src="includes/searchControl.xhtml"/>
      <ui:include src="includes/mainMenu.xhtml"/>
  </ui:define>
  
  <ui:define name="controlRight">
      <s:link id="exit" styleClass="linkNavigation"
              action="#{browser.exitConversation(true)}"
              accesskey="E"><u>E</u>xit</s:link>
  </ui:define>
  
  <ui:define name="content">
  
      <h:form>
          <s:div styleClass="form" id="searchControl">
  
              <a:region>
  
              <h:panelGrid columns="5" style="margin-bottom: 15px;"
                           styleClass="datatable topLeftBottomBorder"
                           headerClass="regularHeader rightBorder"
                           columnClasses="twentyPercentColumn formFields, twentyPercentColumn formFields,
                                          twentyPercentColumn formFields, twentyPercentColumn formFields,
                                          tenPercentColumn alignRight rightBorder formFields"
                           cellpadding="0" cellspacing="0" border="0">
  
                  <f:facet name="header">
                      <h:outputText value="Search"/>
                  </f:facet>
  
                  <h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0">
                      <h:outputText styleClass="label" value="In:&#160;"/>
                      <h:selectOneMenu value="#{wikiSearch.selectedSearchableEntity}" tabindex="1"
                                       converter="searchableEntityConverter">
                          <s:selectItems value="#{searchRegistry.searchableEntities}"
                                         var="se"
                                         label="#{se.description}"
                                         noSelectionLabel="All"/>
                          <a:support event="onchange" reRender="searchControl, searchPager, searchResult" action="#{wikiSearch.search}"/>
                      </h:selectOneMenu>
                  </h:panelGrid>
  
                  <h:panelGrid columns="2" rendered="#{empty wikiSearch.selectedSearchableEntity}" cellpadding="0" cellspacing="0" border="0">
                      <h:outputText styleClass="label" value="Terms:&#160;"/>
                      <h:inputText value="#{wikiSearch.simpleQuery}" size="35" maxlength="1000" tabindex="1"/>
                  </h:panelGrid>
                  <s:span rendered="#{not empty wikiSearch.selectedSearchableEntity}">&#160;</s:span>
  
                  <h:panelGrid columns="2" rendered="#{empty wikiSearch.selectedSearchableEntity}" cellpadding="0" cellspacing="0" border="0">
                      <h:selectBooleanCheckbox value="#{wikiSearch.simpleQueryMatchExactPhrase}" tabindex="1"/>
                      <h:outputText styleClass="label" value="&#160;Match exact phrase"/>
                  </h:panelGrid>
                  <s:span rendered="#{not empty wikiSearch.selectedSearchableEntity}">&#160;</s:span>
  
                  <h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0">
                      <h:outputText styleClass="label" value="Show results:&#160;"/>
                      <h:selectOneMenu value="#{wikiSearch.pageSize}" id="pageSize" tabindex="1">
                          <f:selectItem itemLabel="5" itemValue="5"/>
                          <f:selectItem itemLabel="15" itemValue="15"/>
                          <f:selectItem itemLabel="50" itemValue="50"/>
                          <a:support event="onchange" reRender="searchControl, searchPager, searchResult" action="#{wikiSearch.search}"/>
                      </h:selectOneMenu>
                  </h:panelGrid>
  
                  <a:commandLink id="find" styleClass="buttonNonpersistent" reRender="searchControl, searchPager, searchResult"
                                 action="#{wikiSearch.search()}"
                                 tabindex="1" accesskey="F"><span class="buttonLabel"><u>F</u>ind</span></a:commandLink>
  
              </h:panelGrid>
  
              <s:div id="searchOptions">
  
                  <s:div rendered="#{!empty wikiSearch.selectedSearchableEntity}">
  
                      <h:dataTable id="searchOptionsTable" style="margin-bottom: 15px;"
                                   rendered="#{not empty wikiSearch.selectedSearchableEntity}"
                                   var="search"
                                   value="#{wikiSearch.searches[wikiSearch.selectedSearchableEntity]}"
                                   styleClass="datatable topBorder topLeftBottomBorder"
                                   columnClasses="tenPercentColumn alignLeft, defaultColumn alignLeft formFields rightBorder"
                                   cellpadding="0" cellspacing="0" border="0">
  
                          <h:column>
                              <h:outputText styleClass="label" value="#{search.property.description}"/>
                          </h:column>
  
                          <h:column>
  
                              <h:panelGrid columns="5" rendered="#{search.property.type == 'PHRASE'}">
                                  <h:inputText value="#{search.terms['include']}" size="32" tabindex="1"/>
                                  <h:outputText styleClass="label" value="&#160;Exclude:&#160;"/>
                                  <h:inputText value="#{search.terms['exclude']}" size="32" tabindex="1"/>
                                  <h:selectBooleanCheckbox value="#{search.terms['matchExactPhrase']}" tabindex="1"/>
                                  <h:outputText styleClass="label" value="&#160;Match exact phrase"/>
                              </h:panelGrid>
  
                              <s:div rendered="#{search.property.type == 'PASTDATE'}">
                                  <h:selectOneMenu value="#{search.terms['numOfDays']}" tabindex="1">
                                      <f:selectItem itemLabel="at any time" itemValue=""/>
                                      <f:selectItem itemLabel="last 7 days" itemValue="7"/>
                                      <f:selectItem itemLabel="last 30 days" itemValue="30"/>
                                      <f:selectItem itemLabel="last 6 months" itemValue="180"/>
                                  </h:selectOneMenu>
                              </s:div>
  
                          </h:column>
  
                      </h:dataTable>
                  </s:div>
  
              </s:div>
  
              </a:region>
          </s:div>
  
          <s:div id="searchPager">
              <h:panelGrid columns="5" styleClass="pager"
                           columnClasses="pagerIconColumn,pagerIconColumn,pagerTextColumn,pagerIconColumn,pagerIconColumn"
                           cellpadding="0" cellspacing="0" border="0"
                           rendered="#{wikiSearch.totalCount > 0}">
  
                  <h:commandLink action="#{wikiSearch.firstPage()}" rendered="#{wikiSearch.previousPageAvailable}" tabindex="7">
                      <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/page.first.gif" width="13" height="11"/>
                  </h:commandLink>
                  <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/blank.gif" width="13" height="11"
                                  rendered="#{!wikiSearch.previousPageAvailable}"/>
  
                  <h:commandLink action="#{wikiSearch.previousPage()}" rendered="#{wikiSearch.previousPageAvailable}" tabindex="7">
                      <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/page.previous.gif" width="13" height="11"/>
                  </h:commandLink>
                  <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/blank.gif" width="13" height="11"
                                  rendered="#{!wikiSearch.previousPageAvailable}"/>
  
                  <h:outputText value="#{wikiSearch.firstRow} to
                                       #{wikiSearch.lastRow} of
                                       #{wikiSearch.totalCount} hit(s)"/>
  
                  <h:commandLink action="#{wikiSearch.nextPage()}" rendered="#{wikiSearch.nextPageAvailable}" tabindex="7">
                      <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/page.next.gif" width="13" height="11"/>
                  </h:commandLink>
                  <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/blank.gif" width="13" height="11"
                                  rendered="#{!wikiSearch.nextPageAvailable}"/>
  
                  <h:commandLink action="#{wikiSearch.lastPage()}" rendered="#{wikiSearch.nextPageAvailable}" tabindex="7">
                      <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/page.last.gif" width="13" height="11"/>
                  </h:commandLink>
                  <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/blank.gif" width="13" height="11"
                                  rendered="#{!wikiSearch.nextPageAvailable}"/>
  
              </h:panelGrid>
          </s:div>
  
          <s:div id="searchResult">
  
              <h:dataTable id="searchResultTable" var="hit"
                           value="#{searchResult}"
                           rendered="#{wikiSearch.totalCount>0}"
                           styleClass="datatable topLeftBottomBorder"
                           columnClasses="rightBorder alignLeft minorPadding"
                           rowClasses="rowOdd,rowEven"
                           cellpadding="0" cellspacing="0" border="0">
  
                  <h:column>
  
                      <h:panelGrid columns="2">
                          <h:graphicImage value="/themes/#{wikiPreferences.themeName}/img/#{hit.icon}" width="18" height="20"/>
                          <h:outputLink value="#{hit.link}" tabindex="1"><h:outputText escape="false" value="#{hit.title}"/></h:outputLink>
                      </h:panelGrid>
                      <h:outputText escape="false" value="#{hit.fragment}"/>
                  </h:column>
  
              </h:dataTable>
  
              <h:outputText value="No hits, please try again." rendered="#{wikiSearch.totalCount == 0}"/>
  
          </s:div>
  
      </h:form>
  
  </ui:define>
  
  <ui:define name="footer">&#160;</ui:define>
  
  </ui:composition>
  
  
  
  



More information about the jboss-cvs-commits mailing list