From b4c16cc132442683accdc47a1189906426aba810 Mon Sep 17 00:00:00 2001 From: David Mason Date: Tue, 5 Jun 2012 15:19:35 +1000 Subject: [PATCH 1/4] add 'select all' checkbox in line with search results checkboxes --- .../presenter/SearchResultsPresenter.java | 22 +++++++++++++++++++ .../client/view/SearchResultsView.java | 8 ++++++- .../client/view/SearchResultsView.ui.xml | 10 +++++++-- .../zanata/webtrans/public/Application.css | 5 +++++ 4 files changed, 42 insertions(+), 3 deletions(-) diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java index 5e3f60e743..8e57f54ac3 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java @@ -116,6 +116,8 @@ public interface Display extends WidgetDisplay HasValue getCaseSensitiveChk(); + HasValue getSelectAllChk(); + HasChangeHandlers getSearchFieldSelector(); String getSelectedSearchField(); @@ -305,6 +307,26 @@ public void onValueChange(ValueChangeEvent event) } })); + registerHandler(display.getSelectAllChk().addValueChangeHandler(new ValueChangeHandler() + { + + @Override + public void onValueChange(ValueChangeEvent event) + { + if (event.getValue()) + { + selectAllTextFlows(); + } + else + { + for (MultiSelectionModel selectionModel : documentSelectionModels.values()) + { + selectionModel.clear(); + } + } + } + })); + registerHandler(display.getRequirePreviewChk().addValueChangeHandler(new ValueChangeHandler() { diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.java b/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.java index b3076e0e1b..a1fe21e6bd 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.java @@ -76,7 +76,7 @@ interface SearchResultsViewUiBinder extends UiBinder getCaseSensitiveChk() return caseSensitiveChk; } + @Override + public HasValue getSelectAllChk() + { + return selectAllChk; + } + @Override public HasClickHandlers getReplaceAllButton() { diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.ui.xml b/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.ui.xml index ec533af663..6780788d11 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.ui.xml +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.ui.xml @@ -19,11 +19,17 @@ - + - + + + Select all + + + + diff --git a/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css b/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css index f1ea106414..4d3c54b198 100644 --- a/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css +++ b/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css @@ -511,6 +511,11 @@ tr.ApprovedStateDecoration td.TableEditorCell-Target .TableEditorContent-Edit font-size: 1.1em; } +.projectWideSearchSelectAllChk +{ + margin-left: 47px; +} + .projectWideReplacementPanel { background-color: #667788; From 21ab93d96f88b6c0238bd40f3fd1ed5a679e57d7 Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Tue, 5 Jun 2012 16:10:38 +1000 Subject: [PATCH 2/4] Update jar paths in liquibase script --- zanata-war/src/main/webapp/WEB-INF/liquibase | 23 +++++++++++--------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/zanata-war/src/main/webapp/WEB-INF/liquibase b/zanata-war/src/main/webapp/WEB-INF/liquibase index 1f68e662f0..517baf295d 100755 --- a/zanata-war/src/main/webapp/WEB-INF/liquibase +++ b/zanata-war/src/main/webapp/WEB-INF/liquibase @@ -3,19 +3,22 @@ # convenience script to run liquibase with suitable Zanata settings # see http://liquibase.org/manual/command_line +# If you need mysql/slf4j jars: yum install mysql-connector-java slf4j + SCRIPT_PATH=`dirname ${BASH_SOURCE[0]}` war=$SCRIPT_PATH/.. -if [ -z $JBOSS_HOME ]; then - echo "Error: JBOSS_HOME not set. For instance: export JBOSS_HOME=/opt/jboss-ewp-5.1/jboss-as-web" - exit 1 -fi - classpath=\ -$(echo $war/WEB-INF/lib/*.jar \ -$war/WEB-INF/classes/ \ -$JBOSS_HOME/server/default/lib/mysql-connector-java*.jar \ -$JBOSS_HOME/lib/log4j-boot.jar | sed 's/ /:/g') +$(echo \ + $war/WEB-INF/classes/ \ + /usr/share/java/mysql-connector-java.jar \ + /usr/share/java/slf4j/simple.jar \ + /usr/share/java/slf4j/api.jar \ + $war/WEB-INF/lib/*.jar \ + | sed 's/ /:/g') + +# slf4j simple.jar needs to be before api.jar due to +# https://bugzilla.redhat.com/show_bug.cgi?id=828644 if [ -r liquibase.properties ]; then defs= @@ -26,7 +29,7 @@ fi java \ -jar $war/WEB-INF/lib/liquibase-core*.jar \ --classpath $classpath \ ---changeLogFile=db/db.changelog.xml \ +--changeLogFile db/db.changelog.xml \ $defs \ "$@" From b6fdd5eeee0bbe1ad3cc393f7bf94f14439bfc19 Mon Sep 17 00:00:00 2001 From: Sean Flanigan Date: Tue, 5 Jun 2012 17:57:13 +1000 Subject: [PATCH 3/4] Add Joyce Chang to contributors --- copyright.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/copyright.txt b/copyright.txt index 4e084a0295..a0e4982090 100644 --- a/copyright.txt +++ b/copyright.txt @@ -17,7 +17,7 @@ Alex Eng Project Contributor David Mason Project Contributor Carlos Munoz Project Contributor Patrick Huang Project Contributor - +Joyce Chang Project Contributor Libraries From 74da4821be2a5154255073556a64fcfcf2f0affa Mon Sep 17 00:00:00 2001 From: David Mason Date: Tue, 5 Jun 2012 18:03:40 +1000 Subject: [PATCH 4/4] add explicit search button for project-wide search and replace --- .../presenter/SearchResultsPresenter.java | 88 ++++++++++--------- .../client/view/SearchResultsView.java | 20 ++++- .../client/view/SearchResultsView.ui.xml | 2 +- .../zanata/webtrans/public/Application.css | 15 +++- 4 files changed, 77 insertions(+), 48 deletions(-) diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java index 8e57f54ac3..dfea12cb42 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/presenter/SearchResultsPresenter.java @@ -62,8 +62,6 @@ import com.allen_sauer.gwt.log.client.Log; import com.google.gwt.cell.client.ActionCell.Delegate; -import com.google.gwt.event.dom.client.ChangeEvent; -import com.google.gwt.event.dom.client.ChangeHandler; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.HasChangeHandlers; @@ -108,6 +106,8 @@ public interface Display extends WidgetDisplay void focusFilterTextBox(); + HasClickHandlers getSearchButton(); + HasValue getReplacementTextBox(); void focusReplacementTextBox(); @@ -260,20 +260,13 @@ protected void onBind() setUiForNothingSelected(); display.setReplaceAllButtonVisible(!workspaceContext.isReadOnly()); - // TODO use explicit 'search' button and add enter key press event for - // text box - registerHandler(display.getFilterTextBox().addValueChangeHandler(new ValueChangeHandler() + registerHandler(display.getSearchButton().addClickHandler(new ClickHandler() { @Override - public void onValueChange(ValueChangeEvent event) + public void onClick(ClickEvent event) { - HistoryToken token = HistoryToken.fromTokenString(history.getToken()); - if (!event.getValue().equals(token.getProjectSearchText())) - { - token.setProjectSearchText(event.getValue()); - history.newItem(token.toTokenString()); - } + updateSearch(); } })); @@ -292,21 +285,6 @@ public void onValueChange(ValueChangeEvent event) } })); - registerHandler(display.getCaseSensitiveChk().addValueChangeHandler(new ValueChangeHandler() - { - - @Override - public void onValueChange(ValueChangeEvent event) - { - HistoryToken token = HistoryToken.fromTokenString(history.getToken()); - if (event.getValue() != token.getProjectSearchCaseSensitive()) - { - token.setProjectSearchCaseSensitive(event.getValue()); - history.newItem(token.toTokenString()); - } - } - })); - registerHandler(display.getSelectAllChk().addValueChangeHandler(new ValueChangeHandler() { @@ -342,22 +320,6 @@ public void onValueChange(ValueChangeEvent event) } })); - registerHandler(display.getSearchFieldSelector().addChangeHandler(new ChangeHandler() - { - - @Override - public void onChange(ChangeEvent event) - { - HistoryToken token = HistoryToken.fromTokenString(history.getToken()); - String selected = display.getSelectedSearchField(); - boolean searchSource = selected.equals("source") || selected.equals("both"); - boolean searchTarget = selected.equals("target") || selected.equals("both"); - token.setProjectSearchInSource(searchSource); - token.setProjectSearchInTarget(searchTarget); - history.newItem(token.toTokenString()); - } - })); - registerHandler(display.getReplaceAllButton().addClickHandler(new ClickHandler() { @@ -590,6 +552,7 @@ public void onSuccess(GetProjectTransUnitListsResult result) } else { + // TODO add case sensitivity and scope display.getSearchResponseLabel().setText(messages.showingResultsForProjectWideSearch(result.getSearchAction().getSearchString(), textFlowCount, result.getDocumentIds().size())); } display.setSearching(false); @@ -1353,6 +1316,45 @@ private void refreshReplacementEventInfoList() } } + private void updateSearch() + { + boolean changed = false; + HistoryToken token = HistoryToken.fromTokenString(history.getToken()); + + Boolean caseSensitive = display.getCaseSensitiveChk().getValue(); + if (caseSensitive != token.getProjectSearchCaseSensitive()) + { + token.setProjectSearchCaseSensitive(caseSensitive); + changed = true; + } + + String searchPhrase = display.getFilterTextBox().getValue(); + if (!searchPhrase.equals(token.getProjectSearchText())) + { + token.setProjectSearchText(searchPhrase); + changed = true; + } + + String selected = display.getSelectedSearchField(); + boolean searchSource = selected.equals("source") || selected.equals("both"); + boolean searchTarget = selected.equals("target") || selected.equals("both"); + if (searchSource != token.isProjectSearchInSource()) + { + token.setProjectSearchInSource(searchSource); + changed = true; + } + if (searchTarget != token.isProjectSearchInTarget()) + { + token.setProjectSearchInTarget(searchTarget); + changed = true; + } + + if (changed) + { + history.newItem(token.toTokenString()); + } + } + private class ReplacementEventInfo { private String message; diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.java b/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.java index a1fe21e6bd..e98b10e2bc 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.java +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.java @@ -32,9 +32,12 @@ import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.HasChangeHandlers; import com.google.gwt.event.dom.client.HasClickHandlers; +import com.google.gwt.event.dom.client.KeyCodes; +import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.logical.shared.ValueChangeHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; +import com.google.gwt.uibinder.client.UiHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.Composite; @@ -79,7 +82,7 @@ interface SearchResultsViewUiBinder extends UiBinder getReplacementTextBox() { diff --git a/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.ui.xml b/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.ui.xml index 6780788d11..82713e347f 100644 --- a/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.ui.xml +++ b/zanata-war/src/main/java/org/zanata/webtrans/client/view/SearchResultsView.ui.xml @@ -8,8 +8,8 @@ - Search: + Search Case sensitive diff --git a/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css b/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css index 4d3c54b198..1e2e032e65 100644 --- a/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css +++ b/zanata-war/src/main/resources/org/zanata/webtrans/public/Application.css @@ -476,9 +476,10 @@ tr.ApprovedStateDecoration td.TableEditorCell-Target .TableEditorContent-Edit .projectWideSearchPanel { - color: #666666; + color: #999999; background-color: #f3f2f2; border-bottom: 1px solid lightgrey; + padding-left: 20px; } .gwt-ListBox @@ -496,7 +497,7 @@ tr.ApprovedStateDecoration td.TableEditorCell-Target .TableEditorContent-Edit { color: #000000; padding: 3px; - margin: 15px; + margin: 10px; font-size: 1.3em; border: 3px solid lightgrey; border-radius: 6px; @@ -504,6 +505,14 @@ tr.ApprovedStateDecoration td.TableEditorCell-Target .TableEditorContent-Edit -moz-border-radius: 6px; } +.projectWideSearchButton +{ + color: #444444; + font-size: 1.3em; + margin-right: 15px; + padding: 2px 8px; +} + .projectWideSearchReportLabel { margin-left: 40px; @@ -513,7 +522,7 @@ tr.ApprovedStateDecoration td.TableEditorCell-Target .TableEditorContent-Edit .projectWideSearchSelectAllChk { - margin-left: 47px; + margin-left: 27px; } .projectWideReplacementPanel