Skip to content
This repository has been archived by the owner on Nov 9, 2017. It is now read-only.

Commit

Permalink
Merge branch 'rhbz851911' into integration/master
Browse files Browse the repository at this point in the history
Conflicts:
	zanata-war/src/main/java/org/zanata/webtrans/client/Application.java
	zanata-war/src/main/java/org/zanata/webtrans/client/resources/UiMessages.java
	zanata-war/src/main/java/org/zanata/webtrans/client/view/GlossaryView.java
  • Loading branch information
Alex Eng committed Sep 5, 2012
2 parents db04247 + 198e181 commit 7a21233
Show file tree
Hide file tree
Showing 32 changed files with 1,329 additions and 350 deletions.
Expand Up @@ -144,19 +144,21 @@ private void transferGlossaryEntry(GlossaryEntry from)
HLocale termHLocale = localeServiceImpl.validateSourceLocale(glossaryTerm.getLocale());

// check if there's existing term with same content, overrides comments
HGlossaryTerm hGlossaryTerm = getOrCreateGlossaryTerm(to, termHLocale, glossaryTerm.getContent());
HGlossaryTerm hGlossaryTerm = getOrCreateGlossaryTerm(to, termHLocale, glossaryTerm);

hGlossaryTerm.getComments().clear();

for (String comment : glossaryTerm.getComments())
{
hGlossaryTerm.getComments().add(new HTermComment(comment));
}

to.getGlossaryTerms().put(termHLocale, hGlossaryTerm);
}
glossaryDAO.makePersistent(to);
}

private HGlossaryEntry getOrCreateGlossaryEntry(LocaleId srcLocale, String srcContent)
public HGlossaryEntry getOrCreateGlossaryEntry(LocaleId srcLocale, String srcContent)
{
HGlossaryEntry hGlossaryEntry = glossaryDAO.getEntryBySrcLocaleAndContent(srcLocale, srcContent);

Expand All @@ -169,17 +171,21 @@ private HGlossaryEntry getOrCreateGlossaryEntry(LocaleId srcLocale, String srcCo
return hGlossaryEntry;
}

private HGlossaryTerm getOrCreateGlossaryTerm(HGlossaryEntry hGlossaryEntry, HLocale termHLocale, String content)
private HGlossaryTerm getOrCreateGlossaryTerm(HGlossaryEntry hGlossaryEntry, HLocale termHLocale, GlossaryTerm newTerm)
{
HGlossaryTerm hGlossaryTerm = hGlossaryEntry.getGlossaryTerms().get(termHLocale);

if (hGlossaryTerm == null)
{
hGlossaryTerm = new HGlossaryTerm(content);
hGlossaryTerm = new HGlossaryTerm(newTerm.getContent());
hGlossaryTerm.setLocale(termHLocale);
hGlossaryTerm.setGlossaryEntry(hGlossaryEntry);
hGlossaryEntry.getGlossaryTerms().put(termHLocale, hGlossaryTerm);
}
else if(!hGlossaryTerm.getContent().equals(newTerm.getContent()))
{
hGlossaryTerm.setContent(newTerm.getContent());
}

return hGlossaryTerm;
}

Expand Down
Expand Up @@ -200,6 +200,21 @@ public static void redirectToLogin()
redirectToUrl(getModuleParentBaseUrl() + "account/sign_in?continue=" + URL.encodeQueryString(Window.Location.getHref()));
}

public static void redirectToLogout()
{
redirectToUrl(getModuleParentBaseUrl() + "account/sign_out");
}

public static void redirectToZanataProjectHome(WorkspaceId workspaceId)
{
redirectToUrl(getModuleParentBaseUrl() + "project/view/" + workspaceId.getProjectIterationId().getProjectSlug());
}

public static void redirectToIterationFiles(WorkspaceId workspaceId)
{
redirectToUrl(getModuleParentBaseUrl() + "iteration/files/" + workspaceId.getProjectIterationId().getProjectSlug() + "/" + workspaceId.getProjectIterationId().getIterationSlug() + "/" + workspaceId.getLocaleId().getId());
}

public static native void redirectToUrl(String url)/*-{
$wnd.location = url;
}-*/;
Expand Down
Expand Up @@ -26,6 +26,7 @@
import net.customware.gwt.presenter.client.widget.WidgetPresenter;

import org.zanata.common.TranslationStats;
import org.zanata.webtrans.client.Application;
import org.zanata.webtrans.client.events.DocumentSelectionEvent;
import org.zanata.webtrans.client.events.DocumentStatsUpdatedEvent;
import org.zanata.webtrans.client.events.DocumentStatsUpdatedEventHandler;
Expand All @@ -51,6 +52,7 @@
import org.zanata.webtrans.shared.model.UserWorkspaceContext;

import com.allen_sauer.gwt.log.client.Log;
import com.google.common.base.Strings;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.HasClickHandlers;
Expand All @@ -66,9 +68,13 @@ public interface Display extends net.customware.gwt.presenter.client.widget.Widg
{
void showInMainView(MainView editor);

HasClickHandlers getProjectLink();

HasClickHandlers getIterationFilesLink();

HasClickHandlers getDocumentsLink();

void setWorkspaceNameLabel(String workspaceNameLabel, String workspaceTitle);
void setProjectLinkLabel(String workspaceNameLabel);

void setDocumentLabel(String docPath, String docName);

Expand Down Expand Up @@ -97,6 +103,8 @@ public interface Display extends net.customware.gwt.presenter.client.widget.Widg
void setResizeVisible(boolean visible);

void showSideMenu(boolean isShowing);

void setIterationFilesLabel(String iterationSlug);
}

private final KeyShortcutPresenter keyShortcutPresenter;
Expand Down Expand Up @@ -221,7 +229,25 @@ public void onProjectStatsRetrieved(ProjectStatsUpdatedEvent event)
@Override
public void onClick(ClickEvent event)
{
gotoDocumentListView();
Application.redirectToIterationFiles(userWorkspaceContext.getWorkspaceContext().getWorkspaceId());
}
}));

registerHandler(display.getProjectLink().addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
Application.redirectToZanataProjectHome(userWorkspaceContext.getWorkspaceContext().getWorkspaceId());
}
}));

registerHandler(display.getIterationFilesLink().addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
Application.redirectToIterationFiles(userWorkspaceContext.getWorkspaceContext().getWorkspaceId());
}
}));

Expand Down Expand Up @@ -341,9 +367,18 @@ public void onKeyShortcut(KeyShortcutEvent event)
}
}));

display.setProjectLinkLabel(userWorkspaceContext.getWorkspaceContext().getWorkspaceId().getProjectIterationId().getProjectSlug());
display.setIterationFilesLabel(userWorkspaceContext.getWorkspaceContext().getWorkspaceId().getProjectIterationId().getIterationSlug() + "(" + userWorkspaceContext.getWorkspaceContext().getWorkspaceId().getLocaleId().getId() + ")");

String workspaceTitle = windowLocation.getParameter(WORKSPACE_TITLE_QUERY_PARAMETER_KEY);
display.setWorkspaceNameLabel(userWorkspaceContext.getWorkspaceContext().getWorkspaceName(), workspaceTitle);
window.setTitle(messages.windowTitle(userWorkspaceContext.getWorkspaceContext().getWorkspaceName(), userWorkspaceContext.getWorkspaceContext().getLocaleName()));
if (!Strings.isNullOrEmpty(workspaceTitle))
{
window.setTitle(messages.windowTitle2(userWorkspaceContext.getWorkspaceContext().getWorkspaceName(), userWorkspaceContext.getWorkspaceContext().getLocaleName(), workspaceTitle));
}
else
{
window.setTitle(messages.windowTitle(userWorkspaceContext.getWorkspaceContext().getWorkspaceName(), userWorkspaceContext.getWorkspaceContext().getLocaleName()));
}

display.setReadOnlyVisible(userWorkspaceContext.hasReadOnlyAccess());

Expand Down
@@ -1,17 +1,25 @@
package org.zanata.webtrans.client.presenter;

import java.util.List;

import net.customware.gwt.presenter.client.EventBus;
import net.customware.gwt.presenter.client.widget.WidgetDisplay;
import net.customware.gwt.presenter.client.widget.WidgetPresenter;

import org.zanata.webtrans.client.events.NotificationEvent;
import org.zanata.webtrans.client.events.NotificationEvent.Severity;
import org.zanata.webtrans.client.resources.UiMessages;
import org.zanata.webtrans.client.rpc.CachingDispatchAsync;
import org.zanata.webtrans.shared.model.GlossaryDetails;
import org.zanata.webtrans.shared.model.GlossaryResultItem;
import org.zanata.webtrans.shared.model.UserWorkspaceContext;
import org.zanata.webtrans.shared.rpc.GetGlossaryDetailsAction;
import org.zanata.webtrans.shared.rpc.GetGlossaryDetailsResult;
import org.zanata.webtrans.shared.rpc.UpdateGlossaryTermAction;
import org.zanata.webtrans.shared.rpc.UpdateGlossaryTermResult;

import com.allen_sauer.gwt.log.client.Log;
import com.google.common.base.Strings;
import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
Expand All @@ -24,8 +32,6 @@

public class GlossaryDetailsPresenter extends WidgetPresenter<GlossaryDetailsPresenter.Display>
{
private final CachingDispatchAsync dispatcher;

public interface Display extends WidgetDisplay
{
void hide();
Expand All @@ -36,9 +42,9 @@ public interface Display extends WidgetDisplay

HasText getTargetText();

HasText getSourceComment();
void setSourceComment(List<String> comments);

HasText getTargetComment();
void setTargetComment(List<String> comments);

HasText getSourceLabel();

Expand All @@ -52,30 +58,111 @@ public interface Display extends WidgetDisplay

HasClickHandlers getDismissButton();

HasClickHandlers getSaveButton();

void clearEntries();

void addEntry(String text);

HasText getLastModified();

HasClickHandlers getAddNewCommentButton();

void addRowIntoTargetComment(int row, String comment);

HasText getNewCommentText();

int getTargetCommentRowCount();

List<String> getCurrentTargetComments();

void showLoading(boolean visible);

void setHasUpdateAccess(boolean hasGlossaryUpdateAccess);
}

private GetGlossaryDetailsResult glossaryDetails;

private GlossaryDetails selectedDetailEntry;

private final UiMessages messages;

private final CachingDispatchAsync dispatcher;

private final UserWorkspaceContext userWorkspaceContext;

private HasGlossaryEvent glossaryListener;

@Inject
public GlossaryDetailsPresenter(final Display display, EventBus eventBus, UiMessages messages, CachingDispatchAsync dispatcher)
public GlossaryDetailsPresenter(final Display display, final EventBus eventBus, final UiMessages messages, final CachingDispatchAsync dispatcher, final UserWorkspaceContext userWorkspaceContext)
{
super(display, eventBus);
this.dispatcher = dispatcher;
this.messages = messages;
this.userWorkspaceContext = userWorkspaceContext;

registerHandler(display.getDismissButton().addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
display.hide();
selectedDetailEntry = null;
}
}));

registerHandler(display.getSaveButton().addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
if (selectedDetailEntry != null && userWorkspaceContext.hasGlossaryUpdateAccess())
{
// check if there's any changes on the target term or the target
// comments and save
if (!display.getTargetText().getText().equals(selectedDetailEntry.getTarget()))
{
display.showLoading(true);
UpdateGlossaryTermAction action = new UpdateGlossaryTermAction(selectedDetailEntry, display.getTargetText().getText(), display.getCurrentTargetComments());

dispatcher.execute(action, new AsyncCallback<UpdateGlossaryTermResult>()
{
@Override
public void onFailure(Throwable caught)
{
Log.error(caught.getMessage(), caught);
eventBus.fireEvent(new NotificationEvent(Severity.Error, messages.saveGlossaryFailed()));
display.showLoading(false);
}

@Override
public void onSuccess(UpdateGlossaryTermResult result)
{
Log.info("Glossary term updated:" + result.getDetail().getTarget());
glossaryListener.fireSearchEvent();
selectedDetailEntry = result.getDetail();
populateDisplayData();
display.showLoading(false);
}
});
}
}
}
}));

registerHandler(display.getAddNewCommentButton().addClickHandler(new ClickHandler()
{
@Override
public void onClick(ClickEvent event)
{
if (!Strings.isNullOrEmpty(display.getNewCommentText().getText()) && userWorkspaceContext.hasGlossaryUpdateAccess())
{
display.addRowIntoTargetComment(display.getTargetCommentRowCount(), display.getNewCommentText().getText());
display.getNewCommentText().setText("");
}
}
}));

registerHandler(display.getEntryListBox().addChangeHandler(new ChangeHandler()
{
@Override
Expand All @@ -84,6 +171,8 @@ public void onChange(ChangeEvent event)
selectEntry(display.getSelectedDocumentIndex());
}
}));

display.setHasUpdateAccess(userWorkspaceContext.hasGlossaryUpdateAccess());
}

public void show(final GlossaryResultItem item)
Expand Down Expand Up @@ -119,31 +208,21 @@ public void onSuccess(GetGlossaryDetailsResult result)
});
}

protected void selectEntry(int selected)
private void populateDisplayData()
{
display.getSrcRef().setText(selectedDetailEntry.getSourceRef());
display.setSourceComment(selectedDetailEntry.getSourceComment());
display.setTargetComment(selectedDetailEntry.getTargetComment());
display.getLastModified().setText(messages.lastModifiedOn(selectedDetailEntry.getLastModified()));
}

private void selectEntry(int selected)
{
StringBuilder srcComments = new StringBuilder();
StringBuilder targetComments = new StringBuilder();
String srcRef = "";
if (selected >= 0)
{
GlossaryDetails item = glossaryDetails.getGlossaryDetails().get(selected);
srcRef = item.getSourceRef();
for (String srcComment : item.getSourceComment())
{
srcComments.append(srcComment);
srcComments.append("\n");
}

for (String targetComment : item.getTargetComment())
{
targetComments.append(targetComment);
targetComments.append("\n");
}
selectedDetailEntry = glossaryDetails.getGlossaryDetails().get(selected);
}

display.getSrcRef().setText(srcRef);
display.getSourceComment().setText(srcComments.toString());
display.getTargetComment().setText(targetComments.toString());
populateDisplayData();
}

@Override
Expand All @@ -160,4 +239,9 @@ protected void onUnbind()
public void onRevealDisplay()
{
}

public void setGlossaryListener(HasGlossaryEvent glossaryListener)
{
this.glossaryListener = glossaryListener;
}
}

0 comments on commit 7a21233

Please sign in to comment.