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

Commit

Permalink
Squashed commit of the following:
Browse files Browse the repository at this point in the history
commit ffa2b63
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 23 09:38:45 2013 +1000

    Update comments on method

commit e6b261b
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 23 09:33:56 2013 +1000

    Replace treemap with hashmap

commit 3b56302
Merge: f597acf b2714d6
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 23 09:19:53 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

commit f597acf
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 23 09:19:34 2013 +1000

    Fire validation event when workspace context changes

commit 436b9bf
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 20 17:23:52 2013 +1000

    Refactor comments and method name, remove translatWithoutValidation as it only apply for revert translation

commit c8cb5ff
Merge: 101682d 49b2450
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 20 15:48:46 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

    Conflicts:
    	zanata-war/src/main/java/org/zanata/webtrans/client/ui/ShortcutContextAwareDialogBox.java

commit 101682d
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 20 15:46:42 2013 +1000

    Add comments on methos

commit d83a16e
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 20 15:45:13 2013 +1000

    Refactor ValidationServiceImpl, to reuse implemented method

commit 5ec5002
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 20 15:31:14 2013 +1000

    Rename variables, method name

commit fe2d17e
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 20 14:42:36 2013 +1000

    Refactor names and implementation

commit 6c851f5
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 20 09:15:54 2013 +1000

    Merge project/version validationOptionsAction, create validation_options template for both project and version create/edit page

commit 0ed29a3
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 20 07:02:32 2013 +1000

    Rename and refactor implementation

commit e860f85
Author: Alex Eng <aeng@redhat.com>
Date:   Wed Sep 18 08:35:17 2013 +1000

    Fix sharing same validation action in different session

commit 292b87f
Author: Alex Eng <aeng@redhat.com>
Date:   Wed Sep 18 08:25:00 2013 +1000

    fix sharing of validation action between sessions

commit c8f9121
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 17 15:59:55 2013 +1000

    move validation check before Htarget attached to textflow

commit e3cbde8
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 17 14:30:35 2013 +1000

    disable mutual exclusive validation option in editor

commit 4827f73
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 17 13:30:16 2013 +1000

    Implement validation check on copy trans service

commit 6e648e4
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 17 11:31:24 2013 +1000

    Add validation help in create project/version page

commit f3e3709
Merge: af77b2c 7a06c68
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 17 10:31:47 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

commit af77b2c
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 17 10:31:20 2013 +1000

    Add validation option help in edit project/version page

commit ee5f8f8
Merge: 38f0411 c906adc
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 13 15:28:42 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

commit 38f0411
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 13 15:28:13 2013 +1000

    Fix unit test, fix validation warning dialog to disable editor shortcut

commit 30cfd18
Merge: 1723848 6a43a65
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 13 10:48:57 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

commit 1723848
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 12 17:02:06 2013 +1000

    Fix validation row shown if changes made in project/version page

commit fb16f00
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 12 15:06:01 2013 +1000

    Add validation list for creating new project/version

commit 4c7f7ba
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 12 14:22:28 2013 +1000

    Fix missing set instantiate

commit ecb1ce4
Merge: 6f1eb98 cb251ee
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 12 13:38:26 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

commit 6f1eb98
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 12 13:38:03 2013 +1000

    Remove unused fields, refactor validationwarningpanel to use TextContetnsDisplay rather than hightlighting label

commit 298cbf6
Merge: 1a100e8 bf11906
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 12 09:39:14 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

    Conflicts:
    	zanata-model/src/main/java/org/zanata/model/SlugEntityBase.java
    	zanata-war/src/main/java/org/zanata/action/ProjectIterationHome.java
    	zanata-war/src/main/java/org/zanata/webtrans/server/rpc/AddReviewCommentHandler.java
    	zanata-war/src/test/java/org/zanata/webtrans/client/presenter/TransMemoryMergePresenterTest.java

commit 1a100e8
Merge: fda5c2c 8344ad3
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 10 12:25:21 2013 +1000

    Merge branch 'enforcedValidation' of github.com:zanata/zanata-server into enforcedValidation

commit fda5c2c
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 10 12:24:49 2013 +1000

    fix unit test

commit a72aea8
Merge: 1aba6bc 627dd85
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 10 10:38:29 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

commit 8344ad3
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 9 14:21:01 2013 +1000

    Disable editor keyshortcut when popup

commit 38f17d5
Merge: bc7c3b6 e5cdc12
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 9 14:00:59 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

commit bc7c3b6
Merge: 1aba6bc b3634f3
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 9 10:35:06 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

commit 1aba6bc
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Sep 6 09:40:27 2013 +1000

    Refactor validation warning popup

commit 6c8a258
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 5 15:57:10 2013 +1000

    Refactor implementation on validation check in translationservice

commit 1092756
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 5 15:54:14 2013 +1000

    Implement validation check on document uploads via zanata client on REST and UI

commit 5f69d2f
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 5 11:01:11 2013 +1000

    Add unit test for validation warning popup

commit 7cd4781
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 5 10:39:58 2013 +1000

    Fix unit test

commit 632ecc9
Merge: e13fcf8 b370025
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 5 09:56:45 2013 +1000

    Merge branch 'integration/master' into enforcedValidation

    Conflicts:
    	zanata-war/src/main/java/org/zanata/service/impl/TranslationServiceImpl.java

commit e13fcf8
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Sep 5 09:41:29 2013 +1000

    Implemen TM merge and searchreplace to handle validation error

commit b34ef8f
Author: Alex Eng <aeng@redhat.com>
Date:   Wed Sep 4 07:16:42 2013 +1000

    Refactor validation service

commit fcfea91
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Sep 3 15:13:01 2013 +1000

    Refactor validation service

commit 150a92a
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 2 14:57:15 2013 +1000

    Work in progress: server side validation checking on editor update translation

commit 72697ef
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 2 10:48:25 2013 +1000

    Implement validation warning popup when save translation that has error

commit 8f9fa9d
Merge: 4db56e7 36974bd
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 2 08:55:26 2013 +1000

    Merge branch 'enforcedValidation' of github.com:zanata/zanata-server into enforcedValidation

    Conflicts:
    	zanata-war/src/main/java/org/zanata/webtrans/client/presenter/TargetContentsPresenter.java

commit 4db56e7
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Sep 2 08:54:23 2013 +1000

    work in progress: validation warning popup

commit 36974bd
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Aug 30 16:06:13 2013 +1000

    Work in progress: implementing popup validation warning when save

commit fac276a
Author: Alex Eng <aeng@redhat.com>
Date:   Wed Aug 28 13:36:15 2013 +1000

    Implement locked, enabled, disabled validation according to server rules in client

commit 5743dfc
Author: Alex Eng <aeng@redhat.com>
Date:   Tue Aug 27 09:59:55 2013 +1000

    Work in progress: handling new states for validation

commit 1306059
Author: Alex Eng <aeng@redhat.com>
Date:   Mon Aug 26 15:13:55 2013 +1000

    Work in progress: applying new validation action state in editor

commit 2d27fff
Author: Alex Eng <aeng@redhat.com>
Date:   Fri Aug 23 15:36:01 2013 +1000

    Work in progress: refactoring validationservice for new state

commit 8277879
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Aug 22 16:25:27 2013 +1000

    Make validation option visible all the time

commit c06e94e
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Aug 22 16:15:53 2013 +1000

    reformat xhtml file

commit f38d7b2
Author: Alex Eng <aeng@redhat.com>
Date:   Thu Aug 22 16:06:23 2013 +1000

    Work in progress: new states for validation action in project/version edit page
  • Loading branch information
Alex Eng committed Sep 22, 2013
1 parent b2714d6 commit 08a06ad
Show file tree
Hide file tree
Showing 125 changed files with 2,754 additions and 2,413 deletions.
68 changes: 20 additions & 48 deletions zanata-model/src/main/java/org/zanata/model/HIterationGroup.java
Expand Up @@ -20,96 +20,68 @@
*/
package org.zanata.model;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.Access;
import javax.persistence.AccessType;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import lombok.Getter;
import lombok.Setter;

import org.hibernate.annotations.Type;
import org.hibernate.search.annotations.Field;
import org.hibernate.validator.constraints.NotEmpty;
import org.zanata.common.EntityStatus;

import com.google.common.collect.Sets;

/**
* @author Alex Eng <a href="mailto:aeng@redhat.com">aeng@redhat.com</a>
*/
@Entity
@Setter
// @EqualsAndHashCode(callSuper = true)
@Getter
@Access(AccessType.FIELD)
public class HIterationGroup extends SlugEntityBase implements HasEntityStatus
{
private static final long serialVersionUID = 5682522115222479842L;
private String name;

private String description;

private Set<HPerson> maintainers;

private Set<HProjectIteration> projectIterations;

private EntityStatus status = EntityStatus.ACTIVE;

@Size(max = 80)
@NotEmpty
@Field()
public String getName()
{
return name;
}
private String name;

@Size(max = 100)
@Field()
public String getDescription()
{
return description;
}
private String description;

@ManyToMany
@JoinTable(name = "HIterationGroup_Maintainer", joinColumns = @JoinColumn(name = "iterationGroupId"), inverseJoinColumns = @JoinColumn(name = "personId"))
public Set<HPerson> getMaintainers()
{
if (maintainers == null)
{
maintainers = new HashSet<HPerson>();
}
return maintainers;
}
@JoinTable(name = "HIterationGroup_Maintainer", joinColumns = @JoinColumn(name = "iterationGroupId"),
inverseJoinColumns = @JoinColumn(name = "personId"))
private Set<HPerson> maintainers = Sets.newHashSet();

@ManyToMany
@JoinTable(name = "HIterationGroup_ProjectIteration", joinColumns = @JoinColumn(name = "iterationGroupId"), inverseJoinColumns = @JoinColumn(name = "projectIterationId"))
private Set<HProjectIteration> projectIterations = Sets.newHashSet();

@Type(type = "entityStatus")
@NotNull
private EntityStatus status = EntityStatus.ACTIVE;

public void addMaintainer(HPerson maintainer)
{
this.getMaintainers().add(maintainer);
maintainer.getMaintainerVersionGroups().add(this);
}

@ManyToMany
@JoinTable(name = "HIterationGroup_ProjectIteration", joinColumns = @JoinColumn(name = "iterationGroupId"), inverseJoinColumns = @JoinColumn(name = "projectIterationId"))
public Set<HProjectIteration> getProjectIterations()
{
if (projectIterations == null)
{
projectIterations = new HashSet<HProjectIteration>();
}
return projectIterations;
}

public void addProjectIteration(HProjectIteration iteration)
{
this.getProjectIterations().add(iteration);
}

@Type(type = "entityStatus")
@NotNull
@Override
public EntityStatus getStatus()
{
return status;
}

}
185 changes: 56 additions & 129 deletions zanata-model/src/main/java/org/zanata/model/HProject.java
Expand Up @@ -25,11 +25,12 @@
import static org.jboss.seam.security.EntityAction.UPDATE;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import javax.persistence.Access;
import javax.persistence.AccessType;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
Expand All @@ -39,11 +40,13 @@
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.MapKeyColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

Expand All @@ -52,182 +55,106 @@
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.search.annotations.Field;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.validator.constraints.NotEmpty;
import org.jboss.seam.annotations.security.Restrict;
import org.zanata.annotation.EntityRestrict;
import org.zanata.common.EntityStatus;
import org.zanata.common.ProjectType;
import org.zanata.model.type.EntityStatusType;
import org.zanata.rest.dto.Project;

import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;

/**
* @see Project
*
*/
@Entity
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@Access(AccessType.FIELD)
@TypeDef(name = "entityStatus", typeClass = EntityStatusType.class)
@Restrict
@EntityRestrict({INSERT, UPDATE, DELETE})
@EntityRestrict({ INSERT, UPDATE, DELETE })
@Setter
@Getter
@Indexed
@ToString(callSuper = true, of = "name")
public class HProject extends SlugEntityBase implements Serializable, HasEntityStatus
{
private static final long serialVersionUID = 1L;
private String name;
private String description;
private String homeContent;
private String sourceViewURL;
private String sourceCheckoutURL;
private boolean overrideLocales = false;
private boolean restrictedByRoles = false;
private boolean overrideValidations = false;
private HCopyTransOptions defaultCopyTransOpts;
private Set<HLocale> customizedLocales;
private ProjectType defaultProjectType;

private Set<HPerson> maintainers;
private Set<HAccountRole> allowedRoles;
private Set<String> customizedValidations;

private List<HProjectIteration> projectIterations = new ArrayList<HProjectIteration>();
private EntityStatus status = EntityStatus.ACTIVE;

@OneToMany(mappedBy = "project")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public List<HProjectIteration> getProjectIterations()
{
return projectIterations;
}

public void addIteration(HProjectIteration iteration)
{
projectIterations.add(iteration);
iteration.setProject(this);
}

@Size(max = 80)
@NotEmpty
@Field()
public String getName()
{
return name;
}

public boolean getOverrideLocales()
{
return this.overrideLocales;
}

public boolean getOverrideValidations()
{
return overrideValidations;
}

public boolean isRestrictedByRoles()
{
return restrictedByRoles;
}

@Enumerated(EnumType.STRING)
public ProjectType getDefaultProjectType()
{
return defaultProjectType;
}
private String name;

@Size(max = 100)
@Field()
public String getDescription()
{
return description;
}
private String description;

@Type(type = "text")
public String getHomeContent()
{
return homeContent;
}
private String homeContent;

public String getSourceViewURL()
{
return sourceViewURL;
}
private String sourceViewURL;

public String getSourceCheckoutURL()
{
return sourceCheckoutURL;
}
private String sourceCheckoutURL;

private boolean overrideLocales = false;

private boolean restrictedByRoles = false;

@OneToOne(fetch = FetchType.LAZY, optional = true)
@JoinColumn(name = "default_copy_trans_opts_id")
public HCopyTransOptions getDefaultCopyTransOpts()
{
return defaultCopyTransOpts;
}
private HCopyTransOptions defaultCopyTransOpts;

@ManyToMany
@JoinTable(name = "HProject_Locale", joinColumns = @JoinColumn(name = "projectId"),
inverseJoinColumns = @JoinColumn(name = "localeId"))
private Set<HLocale> customizedLocales = Sets.newHashSet();

@Enumerated(EnumType.STRING)
private ProjectType defaultProjectType;

/**
* @see {@link #addMaintainer(HPerson)}
*/
@ManyToMany
@JoinTable(name = "HProject_Maintainer", joinColumns = @JoinColumn(name = "projectId"), inverseJoinColumns = @JoinColumn(name = "personId"))
@JoinTable(name = "HProject_Maintainer", joinColumns = @JoinColumn(name = "projectId"),
inverseJoinColumns = @JoinColumn(name = "personId"))
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public Set<HPerson> getMaintainers()
{
if (maintainers == null)
{
maintainers = new HashSet<HPerson>();
}
return maintainers;
}

public void addMaintainer( HPerson maintainer )
{
this.getMaintainers().add(maintainer);
maintainer.getMaintainerProjects().add(this);
}
private Set<HPerson> maintainers = Sets.newHashSet();

@ManyToMany
@JoinTable(name = "HProject_Locale", joinColumns = @JoinColumn(name = "projectId"), inverseJoinColumns = @JoinColumn(name = "localeId"))
public Set<HLocale> getCustomizedLocales()
{
if (customizedLocales == null)
{
customizedLocales = new HashSet<HLocale>();
}
return customizedLocales;
}
@JoinTable(name = "HProject_AllowedRole", joinColumns = @JoinColumn(name = "projectId"),
inverseJoinColumns = @JoinColumn(name = "roleId"))
private Set<HAccountRole> allowedRoles = Sets.newHashSet();

@ManyToMany
@JoinTable(name = "HProject_AllowedRole", joinColumns = @JoinColumn(name = "projectId"), inverseJoinColumns = @JoinColumn(name = "roleId"))
public Set<HAccountRole> getAllowedRoles()
{
if(allowedRoles == null)
{
allowedRoles = new HashSet<HAccountRole>();
}
return allowedRoles;
}
@ElementCollection
@JoinTable(name = "HProject_Validation", joinColumns = { @JoinColumn(name = "projectId") })
@MapKeyColumn(name = "validation")
@Column(name = "state", nullable = false)
private Map<String, String> customizedValidations = Maps.newHashMap();

@JoinTable(name = "HProject_Validation", joinColumns = @JoinColumn(name = "projectId"))
@Type(type = "text")
@ElementCollection(fetch = FetchType.LAZY)
@Column(name = "validation", nullable = false)
public Set<String> getCustomizedValidations()
{
if (customizedValidations == null)
{
customizedValidations = new HashSet<String>();
}
return customizedValidations;
}
@OneToMany(mappedBy = "project")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
private List<HProjectIteration> projectIterations = Lists.newArrayList();

@Type(type = "entityStatus")
@NotNull
@Override
public EntityStatus getStatus()
private EntityStatus status = EntityStatus.ACTIVE;

public void addIteration(HProjectIteration iteration)
{
return status;
projectIterations.add(iteration);
iteration.setProject(this);
}

public void addMaintainer(HPerson maintainer)
{
this.getMaintainers().add(maintainer);
maintainer.getMaintainerProjects().add(this);
}
}

0 comments on commit 08a06ad

Please sign in to comment.