From d8c90207400a78e38b3ebb00c0113b08b4a4fa0e Mon Sep 17 00:00:00 2001 From: David Mason Date: Mon, 2 Jul 2012 17:21:09 +1000 Subject: [PATCH] rhbz826310 - add indicator of currently processing table for search administration page --- .../java/org/zanata/action/ReindexActionBean.java | 5 +++++ .../java/org/zanata/action/ReindexAsyncBean.java | 13 +++++++++++++ zanata-war/src/main/resources/messages.properties | 9 ++++++--- zanata-war/src/main/webapp/admin/search.xhtml | 11 +++++++---- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/zanata-war/src/main/java/org/zanata/action/ReindexActionBean.java b/zanata-war/src/main/java/org/zanata/action/ReindexActionBean.java index 1ef3218e2d..8d3983d93b 100644 --- a/zanata-war/src/main/java/org/zanata/action/ReindexActionBean.java +++ b/zanata-war/src/main/java/org/zanata/action/ReindexActionBean.java @@ -42,6 +42,11 @@ public boolean isInProgress() return reindexAsync.getProcessHandle().isInProgress(); } + public String getCurrentClass() + { + return reindexAsync.getCurrentClassName(); + } + public boolean isError() { return reindexAsync.getProcessHandle().hasError(); diff --git a/zanata-war/src/main/java/org/zanata/action/ReindexAsyncBean.java b/zanata-war/src/main/java/org/zanata/action/ReindexAsyncBean.java index fd707b5db0..0b31ae619e 100644 --- a/zanata-war/src/main/java/org/zanata/action/ReindexAsyncBean.java +++ b/zanata-war/src/main/java/org/zanata/action/ReindexAsyncBean.java @@ -51,6 +51,7 @@ public class ReindexAsyncBean private Set> indexables = new HashSet>(); private HashMap, ReindexClassOptions> indexingOptions = new HashMap, ReindexClassOptions>(); + private Class currentClass; private boolean hasError; @@ -89,6 +90,15 @@ public ProcessHandle getProcessHandle() return handle; } + public String getCurrentClassName() + { + if (currentClass == null) + { + return "none"; + } + return currentClass.getSimpleName(); + } + /** * Prepare to reindex lucene search index. This ensures that progress counts * are properly initialised before the asynchronous startReindex() method is @@ -157,17 +167,20 @@ public void startReindex() if (!handle.shouldStop() && indexingOptions.get(clazz).isPurge()) { log.info("purging index for {0}", clazz); + currentClass = clazz; session.purgeAll(clazz); handle.incrementProgress(1); } if (!handle.shouldStop() && indexingOptions.get(clazz).isReindex()) { log.info("reindexing {0}", clazz); + currentClass = clazz; reindex(clazz); } if (!handle.shouldStop() && indexingOptions.get(clazz).isOptimize()) { log.info("optimizing {0}", clazz); + currentClass = clazz; session.getSearchFactory().optimize(clazz); handle.incrementProgress(1); } diff --git a/zanata-war/src/main/resources/messages.properties b/zanata-war/src/main/resources/messages.properties index d321417936..25467c93b2 100644 --- a/zanata-war/src/main/resources/messages.properties +++ b/zanata-war/src/main/resources/messages.properties @@ -290,11 +290,16 @@ jsf.ManageMaintainers=Manage Maintainers jsf.ManageSearch=Manage Search jsf.manageSearch.Actions=Actions +jsf.manageSearch.Table=Table jsf.ManageSearch.SelectAll=Select All jsf.ManageSearch.SelectNone=Clear Selection jsf.ManageSearch.PerformSelectedActions=Perform Selected Actions jsf.ManageSearch.CurrentProgress=Current Progress jsf.ManageSearch.NoOperationsRunning=No operations are running +jsf.manageSearch.ProgressMessage=#{reindexAction.reindexProgress} of #{reindexAction.reindexCount} operations complete +jsf.manageSearch.CurrentTable=Processing table: #{reindexAction.currentClass} +jsf.manageSearch.ErrorMessage=Due to an error, some objects could not be reindexed. See server log for details. +jsf.manageSearch.PleaseReindex=Please reindex again to ensure the search index is up-to-date. jsf.ManageSearch.ElapsedTime=Running for: #{reindexAction.elapsedTime} jsf.ManageSearch.RemainingTime=Remaining (approx): #{reindexAction.estimatedTimeRemaining} jsf.ManageSearch.Completed=Completed successfully (ran for #{reindexAction.elapsedTime}) @@ -317,6 +322,7 @@ jsf.manageSearch.optimize.WillNotInfluenceIndexTime=Will not influence indexing jsf.manageSearch.optimize.RemovesObsoleteEntries=Also removes any obsolete entries from the index. jsf.manageSearch.optimize.TempFileWarning=Warning: this operation uses a temp file that will require free disk space of approximately the current index size. + jsf.ManageUsers=Manage Users jsf.Members=Members jsf.MemberOf=Member of @@ -381,9 +387,6 @@ jsf.RoleManager=Role Manager jsf.RunningVersionInfo=Zanata version #{applicationConfiguration.version} (#{applicationConfiguration.buildTimestamp}). jsf.Save=Save jsf.Search=Search -jsf.search.reindex.ProgressMessage=#{reindexAction.reindexProgress} of #{reindexAction.reindexCount} operations complete -jsf.search.reindex.ErrorMessage=Due to an error, some objects could not be reindexed. See server log for details. -jsf.search.reindex.PleaseReindex=Please reindex again to ensure the search index is up-to-date. jsf.SearchProjects=Search Projects jsf.SearchResults=Search Results jsf.SelectedLocales=Enabled Locales diff --git a/zanata-war/src/main/webapp/admin/search.xhtml b/zanata-war/src/main/webapp/admin/search.xhtml index fed964bb45..d09bd27a24 100644 --- a/zanata-war/src/main/webapp/admin/search.xhtml +++ b/zanata-war/src/main/webapp/admin/search.xhtml @@ -26,7 +26,7 @@ value="#{reindexAction.classes.toArray()}" var="clazz" reRender="actions"> - Table + #{messages['jsf.manageSearch.Table']} @@ -91,8 +91,8 @@

#{messages['jsf.ManageSearch.Aborted']}

-

#{messages['jsf.search.reindex.ErrorMessage']}

-

#{messages['jsf.search.reindex.PleaseReindex']}

+

#{messages['jsf.manageSearch.ErrorMessage']}

+

#{messages['jsf.manageSearch.PleaseReindex']}

@@ -100,7 +100,7 @@ + +

#{messages['jsf.manageSearch.CurrentTable']}

+

#{messages['jsf.ManageSearch.ElapsedTime']}

#{messages['jsf.ManageSearch.RemainingTime']}