diff --git a/server/services/src/main/java/org/zanata/action/VersionGroupHome.java b/server/services/src/main/java/org/zanata/action/VersionGroupHome.java index 015a091e74..836e09ab0a 100644 --- a/server/services/src/main/java/org/zanata/action/VersionGroupHome.java +++ b/server/services/src/main/java/org/zanata/action/VersionGroupHome.java @@ -40,6 +40,7 @@ import javax.inject.Named; import org.zanata.common.EntityStatus; import org.zanata.dao.ProjectIterationDAO; +import org.zanata.dao.VersionGroupDAO; import org.zanata.i18n.Messages; import org.zanata.model.HAccount; import org.zanata.model.HIterationGroup; @@ -97,6 +98,8 @@ public class VersionGroupHome extends SlugHome private GroupLocaleAutocomplete localeAutocomplete; @Inject private UrlUtil urlUtil; + @Inject + private VersionGroupDAO versionGroupDAO; private AbstractListFilter maintainerFilter = new InMemoryListFilter() { @@ -201,8 +204,14 @@ private String update( } @Transactional - public void setStatus(char initial) { - getInstance().setStatus(EntityStatus.valueOf(initial)); + public void deleteSelf() { + identity.checkPermission(getInstance(), "update"); + String slug = getInstance().getSlug(); + versionGroupDAO.makeTransient(getInstance()); + versionGroupDAO.flush(); + facesMessages.addGlobal(FacesMessage.SEVERITY_INFO, + msgs.format("jsf.group.notification.deleted", slug)); + urlUtil.redirectToInternal(urlUtil.dashboardUrl()); } @Transactional diff --git a/server/services/src/main/resources/messages.properties b/server/services/src/main/resources/messages.properties index 5559192c5f..4d25d82901 100644 --- a/server/services/src/main/resources/messages.properties +++ b/server/services/src/main/resources/messages.properties @@ -608,6 +608,7 @@ jsf.group.FindGroup=Find Group jsf.GroupName=Group Name jsf.GroupDescription=Group Description jsf.GroupStatus=Group Status +jsf.group.notification.deleted=Group "{0}" deleted. jsf.UpdateGeneralSettings=Update general settings jsf.SelectGroup=Select group jsf.Select=Select @@ -760,8 +761,7 @@ jsf.VersionAddedToGroup=Version "{0}" of Project "{1}" has been added to group. jsf.LanguageAlreadyInGroup=Language "{0}" is already added to group. jsf.InvalidProjectVersion=Invalid project version jsf.VersionAlreadyInGroup=Version "{0}" is already added to group. -jsf.ArchiveThisGroup=Archive this Group -jsf.UnArchiveThisGroup=Unarchive this Group +jsf.DeleteThisGroup=Delete this Group jsf.MaintainerRemoveFromGroup=Maintainer "{0}" has been removed from group. jsf.MaintainerAddedToGroup=Maintainer "{0}" has been added to group. jsf.InvalidUsername=Invalid username. @@ -770,8 +770,7 @@ jsf.ProjectMissingLanguage={0} project missing for this language jsf.ProjectsMissingLanguage={0} projects missing for this language jsf.LanguageMissingProject={0} language missing for this project jsf.LanguagesMissingProject={0} languages missing for this project -jsf.ArchiveGroupMessage=This will set the group's status to archived and remove it from the public groups list, you will still be able to access it and unarchive it later. -jsf.ActivateGroupMessage=This will set the group's status to active and make it visible in the public groups list. +jsf.DeleteGroupMessage=This will delete this group and remove it from the public groups list. You will not be able to access it any more. jsf.Missing=missing jsf.project.search.placeholder=Search project names jsf.ClearSearch=Clear search diff --git a/server/zanata-war/src/main/webapp/WEB-INF/layout/version-group/delete_group_confirmation_modal.xhtml b/server/zanata-war/src/main/webapp/WEB-INF/layout/version-group/delete_group_confirmation_modal.xhtml new file mode 100644 index 0000000000..7e0855b811 --- /dev/null +++ b/server/zanata-war/src/main/webapp/WEB-INF/layout/version-group/delete_group_confirmation_modal.xhtml @@ -0,0 +1,89 @@ + + + + + + + + + diff --git a/server/zanata-war/src/main/webapp/WEB-INF/layout/version-group/settings-tab.xhtml b/server/zanata-war/src/main/webapp/WEB-INF/layout/version-group/settings-tab.xhtml index 555449609b..4f682288ea 100644 --- a/server/zanata-war/src/main/webapp/WEB-INF/layout/version-group/settings-tab.xhtml +++ b/server/zanata-war/src/main/webapp/WEB-INF/layout/version-group/settings-tab.xhtml @@ -6,6 +6,9 @@ xmlns:f="http://java.sun.com/jsf/core" xmlns:zanata="http://java.sun.com/jsf/composite/zanata"> + + +

#{msgs['jsf.Settings']}

@@ -63,33 +66,15 @@

- -

- - #{msgs['jsf.ArchiveThisGroup']} - -

- -

#{msgs['jsf.ArchiveGroupMessage']}

-
- - -

- - #{msgs['jsf.UnArchiveThisGroup']} - -

- -

- #{msgs['jsf.ActivateGroupMessage']} -

-
+

+ + #{msgs['jsf.DeleteThisGroup']} + +

+

#{msgs['jsf.DeleteGroupMessage']}

@@ -274,4 +259,7 @@ + + +