CCM NG/ccm-cms: More forms for workflow management

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4450 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2016-11-22 08:35:09 +00:00
parent ae05156a71
commit a124b1ebd8
2 changed files with 25 additions and 26 deletions

View File

@ -29,22 +29,17 @@ import com.arsdigita.bebop.event.TableActionEvent;
import com.arsdigita.bebop.table.DefaultTableCellRenderer; import com.arsdigita.bebop.table.DefaultTableCellRenderer;
import com.arsdigita.bebop.table.TableCellRenderer; import com.arsdigita.bebop.table.TableCellRenderer;
import org.librecms.workflow.CmsTask;
import com.arsdigita.globalization.GlobalizedMessage; import com.arsdigita.globalization.GlobalizedMessage;
import com.arsdigita.web.Web;
import java.math.BigDecimal;
import org.apache.log4j.Logger;
import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.cdi.utils.CdiUtil;
import org.libreccm.security.Shiro; import org.libreccm.security.Shiro;
import org.libreccm.security.User; import org.libreccm.security.User;
import org.libreccm.workflow.AssignableTask; import org.libreccm.workflow.AssignableTask;
import org.libreccm.workflow.AssignableTaskManager;
import org.libreccm.workflow.AssignableTaskRepository; import org.libreccm.workflow.AssignableTaskRepository;
import org.libreccm.workflow.WorkflowManager; import org.libreccm.workflow.WorkflowManager;
import org.librecms.CmsConstants; import org.librecms.CmsConstants;
import org.librecms.workflow.CmsTaskTypeRepository;
public final class AssignedTaskTable extends Table { public final class AssignedTaskTable extends Table {
@ -70,21 +65,25 @@ public final class AssignedTaskTable extends Table {
final int column = event.getColumn(); final int column = event.getColumn();
final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final AssignableTaskRepository userTaskRepo = cdiUtil.findBean(AssignableTaskRepository.class); final AssignableTaskRepository userTaskRepo = cdiUtil.findBean(
final WorkflowManager workflowManager = cdiUtil.findBean(WorkflowManager.class); AssignableTaskRepository.class);
final WorkflowManager workflowManager = cdiUtil.findBean(
WorkflowManager.class);
final AssignableTaskManager taskManager = cdiUtil.findBean(
AssignableTaskManager.class);
final Shiro shiro = cdiUtil.findBean(Shiro.class); final Shiro shiro = cdiUtil.findBean(Shiro.class);
if (column == 1) { if (column == 1) {
final AssignableTask task = userTaskRepo.findById((Long) event final AssignableTask task = userTaskRepo.findById((Long) event
.getRowKey()); .getRowKey());
final User currentUser = shiro.getUser(); final User currentUser = shiro.getUser();
final User lockingUser = task.getLockingUser(); final User lockingUser = task.getLockingUser();
if (task.isLocked() if (task.isLocked()
&& lockingUser != null && lockingUser != null
&& lockingUser.equals(currentUser)) { && lockingUser.equals(currentUser)) {
workflowManager.unlockTask(task); taskManager.unlockTask(task);
} else { } else {
workflowManager.lockTask(task); taskManager.lockTask(task);
} }
} }
} }
@ -98,31 +97,31 @@ public final class AssignedTaskTable extends Table {
final PageState state, final PageState state,
final Object value, final Object value,
final boolean isSelected, final boolean isSelected,
final Object key, final Object key,
final int row, final int row,
final int column) { final int column) {
// SF patch [ 1587168 ] Show locking user // SF patch [ 1587168 ] Show locking user
BoxPanel p = new BoxPanel(); final BoxPanel panel = new BoxPanel();
User lockingUser = (User) value; final User lockingUser = (User) value;
if (lockingUser != null) { if (lockingUser != null) {
final StringBuilder sb = new StringBuilder("Locked by <br />"); final StringBuilder sb = new StringBuilder("Locked by <br />");
final CdiUtil cdiUtil = CdiUtil.createCdiUtil(); final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
final Shiro shiro = cdiUtil.findBean(Shiro.class); final Shiro shiro = cdiUtil.findBean(Shiro.class);
if (lockingUser.equals(shiro.getUser())) { if (lockingUser.equals(shiro.getUser())) {
sb.append("you"); sb.append("you");
p.add(new ControlLink(new Label( panel.add(new ControlLink(new Label(
gz("cms.ui.workflow.task.unlock")))); gz("cms.ui.workflow.task.unlock"))));
} else { } else {
sb.append(lockingUser.getName()); sb.append(lockingUser.getName());
p.add(new ControlLink(new Label( panel.add(new ControlLink(new Label(
gz("cms.ui.workflow.task.takeover")))); gz("cms.ui.workflow.task.takeover"))));
} }
p.add(new Label(sb.toString(), false)); panel.add(new Label(sb.toString(), false));
} else { } else {
p.add(new ControlLink( panel.add(new ControlLink(
new Label(gz("cms.ui.workflow.task.lock")))); new Label(gz("cms.ui.workflow.task.lock"))));
} }
return p; return panel;
} }
} }

View File

@ -26,12 +26,12 @@ import com.arsdigita.util.Assert;
import org.libreccm.cdi.utils.CdiUtil; import org.libreccm.cdi.utils.CdiUtil;
import org.libreccm.workflow.Workflow; import org.libreccm.workflow.Workflow;
import org.libreccm.workflow.WorkflowConstants;
import org.libreccm.workflow.WorkflowManager; import org.libreccm.workflow.WorkflowManager;
import org.librecms.CmsConstants; import org.librecms.CmsConstants;
import java.util.Collections; import java.util.Collections;
import java.util.Iterator; import java.util.Iterator;
import org.libreccm.workflow.WorkflowState;
/** /**
* *
@ -62,7 +62,7 @@ class AssignedTaskTableModelBuilder extends AbstractTableModelBuilder {
final CdiUtil cdiUtil= CdiUtil.createCdiUtil(); final CdiUtil cdiUtil= CdiUtil.createCdiUtil();
final WorkflowManager workflowManager = cdiUtil.findBean(WorkflowManager.class); final WorkflowManager workflowManager = cdiUtil.findBean(WorkflowManager.class);
if (workflowManager.getState(workflow) == WorkflowConstants.STARTED) { if (workflow.getState() == WorkflowState.STARTED) {
final AssignedTaskController controller = cdiUtil.findBean( final AssignedTaskController controller = cdiUtil.findBean(
AssignedTaskController.class); AssignedTaskController.class);
m_iter = controller.getAssignedTasks(workflow).iterator(); m_iter = controller.getAssignedTasks(workflow).iterator();