[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 && 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"> </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: "/>
<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: "/>
<h:inputText value="#{wikiSearch.simpleQuery}" size="35" maxlength="1000" tabindex="1"/>
</h:panelGrid>
<s:span rendered="#{not empty wikiSearch.selectedSearchableEntity}"> </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=" Match exact phrase"/>
</h:panelGrid>
<s:span rendered="#{not empty wikiSearch.selectedSearchableEntity}"> </s:span>
<h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0">
<h:outputText styleClass="label" value="Show results: "/>
<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=" Exclude: "/>
<h:inputText value="#{search.terms['exclude']}" size="32" tabindex="1"/>
<h:selectBooleanCheckbox value="#{search.terms['matchExactPhrase']}" tabindex="1"/>
<h:outputText styleClass="label" value=" 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"> </ui:define>
</ui:composition>
More information about the jboss-cvs-commits
mailing list