Link zum Starten des Arbeitsabluafes in die Task Tabelle mit aufgenommen. (#1269)
git-svn-id: https://svn.libreccm.org/ccm/trunk@2299 8810af33-2d31-482b-a856-94f89814c4dfmaster
parent
0e89aeca3f
commit
2a89454821
|
|
@ -706,7 +706,7 @@ cms.ui.workflow.intro=Arbeitsablauf w\u00e4hlen oder einen neuen hinzuf\u00fcgen
|
|||
cms.ui.workflow.lock_tasks=Meine Aufgaben f\u00fcr diesen Inhaltstyp reservieren
|
||||
cms.ui.workflow.no_users_were_selected=Keine Benutzer ausgew\u00e4hlt.
|
||||
cms.ui.workflow.num_tasks=Anzahl der Aufgaben
|
||||
cms.ui.workflow.restart_stopped_workflow=Gestoppter Arbeitsablauf erneut starten
|
||||
cms.ui.workflow.restart_stopped_workflow=Gestoppten Arbeitsablauf erneut starten
|
||||
cms.ui.workflow.stop_workflow=Arbeitsablauf stoppen
|
||||
cms.ui.workflow.task.add=Aufgabe hinzuf\u00fcgen
|
||||
cms.ui.workflow.task.approve=Akzeptieren
|
||||
|
|
|
|||
|
|
@ -35,25 +35,23 @@ import com.arsdigita.toolbox.ui.Section;
|
|||
import com.arsdigita.web.Web;
|
||||
import com.arsdigita.workflow.simple.Engine;
|
||||
import com.arsdigita.workflow.simple.Workflow;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author unknown
|
||||
* @author Sören Bernstein
|
||||
* @version $Id: AssignedTaskSection.java 1280 2006-07-27 09:12:09Z cgyg9330 $
|
||||
*/
|
||||
public final class AssignedTaskSection extends Section {
|
||||
|
||||
private static final Logger s_log = Logger.getLogger
|
||||
(AssignedTaskSection.class);
|
||||
|
||||
private static final Logger s_log = Logger.getLogger(AssignedTaskSection.class);
|
||||
private final WorkflowRequestLocal m_workflow;
|
||||
private final WorkflowFacade m_facade;
|
||||
|
||||
public AssignedTaskSection(final WorkflowRequestLocal workflow,
|
||||
final Component subject) {
|
||||
final Component subject) {
|
||||
super(gz("cms.ui.workflow.task.assigned"));
|
||||
|
||||
m_workflow = workflow;
|
||||
|
|
@ -63,26 +61,52 @@ public final class AssignedTaskSection extends Section {
|
|||
setBody(group);
|
||||
|
||||
group.setSubject(subject);
|
||||
group.addAction(new RestartLink());
|
||||
group.addAction(new LockLink());
|
||||
group.addAction(new UnlockLink());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean isVisible(final PageState state) {
|
||||
return m_workflow.getWorkflow(state) != null;
|
||||
}
|
||||
|
||||
private class RestartLink extends ActionLink {
|
||||
|
||||
RestartLink() {
|
||||
super(new Label(gz("cms.ui.workflow.restart_stopped_workflow")));
|
||||
|
||||
addActionListener(new Listener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean isVisible(final PageState state) {
|
||||
return m_facade.workflowState(state, Workflow.INIT) || m_facade.workflowState(state, Workflow.STOPPED);
|
||||
}
|
||||
|
||||
private class Listener implements ActionListener {
|
||||
|
||||
public final void actionPerformed(final ActionEvent e) {
|
||||
m_facade.restartWorkflow(e.getPageState());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class LockLink extends ActionLink {
|
||||
|
||||
LockLink() {
|
||||
super(new Label(gz("cms.ui.workflow.task.assigned.lock_all")));
|
||||
|
||||
addActionListener(new Listener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean isVisible(final PageState state) {
|
||||
return m_facade.tasksExist(state) && !m_facade.tasksLocked(state);
|
||||
return m_facade.workflowState(state, Workflow.STARTED) && m_facade.tasksExist(state) && !m_facade.tasksLocked(state);
|
||||
}
|
||||
|
||||
private class Listener implements ActionListener {
|
||||
|
||||
public final void actionPerformed(final ActionEvent e) {
|
||||
m_facade.lockTasks(e.getPageState());
|
||||
}
|
||||
|
|
@ -90,17 +114,20 @@ public final class AssignedTaskSection extends Section {
|
|||
}
|
||||
|
||||
private class UnlockLink extends ActionLink {
|
||||
|
||||
UnlockLink() {
|
||||
super(new Label(gz("cms.ui.workflow.task.assigned.unlock_all")));
|
||||
|
||||
addActionListener(new Listener());
|
||||
addActionListener(new UnlockLink.Listener());
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean isVisible(final PageState state) {
|
||||
return m_facade.tasksExist(state) && m_facade.tasksLocked(state);
|
||||
return m_facade.workflowState(state, Workflow.STARTED) && m_facade.tasksExist(state) && m_facade.tasksLocked(state);
|
||||
}
|
||||
|
||||
private class Listener implements ActionListener {
|
||||
|
||||
public final void actionPerformed(final ActionEvent e) {
|
||||
m_facade.unlockTasks(e.getPageState());
|
||||
}
|
||||
|
|
@ -108,6 +135,7 @@ public final class AssignedTaskSection extends Section {
|
|||
}
|
||||
|
||||
private class WorkflowFacade {
|
||||
|
||||
private final WorkflowRequestLocal m_flow;
|
||||
private final TaskListRequestLocal m_tasks;
|
||||
|
||||
|
|
@ -117,11 +145,12 @@ public final class AssignedTaskSection extends Section {
|
|||
}
|
||||
|
||||
private class TaskListRequestLocal extends RequestLocal {
|
||||
|
||||
@Override
|
||||
protected final Object initialValue(final PageState state) {
|
||||
final Workflow workflow = m_flow.getWorkflow(state);
|
||||
final Engine engine = Engine.getInstance(CMSEngine.CMS_ENGINE_TYPE);
|
||||
return engine.getEnabledTasks
|
||||
(Web.getContext().getUser(), workflow.getID());
|
||||
return engine.getEnabledTasks(Web.getContext().getUser(), workflow.getID());
|
||||
}
|
||||
|
||||
final ArrayList getTasks(final PageState state) {
|
||||
|
|
@ -129,6 +158,12 @@ public final class AssignedTaskSection extends Section {
|
|||
}
|
||||
}
|
||||
|
||||
final void restartWorkflow(final PageState state) {
|
||||
final Workflow workflow = m_flow.getWorkflow(state);
|
||||
workflow.start(Web.getContext().getUser());
|
||||
workflow.save();
|
||||
}
|
||||
|
||||
final void lockTasks(final PageState state) {
|
||||
final Iterator iter = m_tasks.getTasks(state).iterator();
|
||||
|
||||
|
|
@ -169,13 +204,17 @@ public final class AssignedTaskSection extends Section {
|
|||
return true;
|
||||
}
|
||||
|
||||
final boolean workflowState(final PageState state, int processState) {
|
||||
return m_flow.getWorkflow(state).getProcessState() == processState;
|
||||
}
|
||||
|
||||
final boolean tasksExist(final PageState state) {
|
||||
return !m_tasks.getTasks(state).isEmpty();
|
||||
}
|
||||
|
||||
private boolean relevant(final CMSTask task) {
|
||||
return task.getTaskType().getID().equals(CMSTaskType.AUTHOR)
|
||||
|| task.getTaskType().getID().equals(CMSTaskType.EDIT);
|
||||
|| task.getTaskType().getID().equals(CMSTaskType.EDIT);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,9 +33,8 @@ import com.arsdigita.cms.workflow.CMSTask;
|
|||
import com.arsdigita.globalization.GlobalizedMessage;
|
||||
import com.arsdigita.kernel.User;
|
||||
import com.arsdigita.web.Web;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -63,6 +62,7 @@ public final class AssignedTaskTable extends Table {
|
|||
}
|
||||
|
||||
private static class LockListener extends TableActionAdapter {
|
||||
@Override
|
||||
public final void cellSelected(final TableActionEvent e) {
|
||||
final int column = e.getColumn().intValue();
|
||||
|
||||
|
|
@ -91,7 +91,7 @@ public final class AssignedTaskTable extends Table {
|
|||
BoxPanel p = new BoxPanel();
|
||||
User lockingUser = (User) value;
|
||||
if (lockingUser != null) {
|
||||
StringBuffer sb = new StringBuffer("Locked by <br />");
|
||||
StringBuilder sb = new StringBuilder("Locked by <br />");
|
||||
if (lockingUser.equals(Web.getContext().getUser())) {
|
||||
sb.append("you");
|
||||
p.add(new ControlLink(new Label(
|
||||
|
|
|
|||
|
|
@ -28,9 +28,9 @@ import com.arsdigita.util.Assert;
|
|||
import com.arsdigita.web.Web;
|
||||
import com.arsdigita.workflow.simple.Engine;
|
||||
import com.arsdigita.workflow.simple.Workflow;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -38,9 +38,7 @@ import java.util.Iterator;
|
|||
*/
|
||||
class AssignedTaskTableModelBuilder extends AbstractTableModelBuilder {
|
||||
|
||||
private static final Logger s_log = Logger.getLogger
|
||||
(AssignedTaskTableModelBuilder.class);
|
||||
|
||||
private static final Logger s_log = Logger.getLogger(AssignedTaskTableModelBuilder.class);
|
||||
private final WorkflowRequestLocal m_workflow;
|
||||
|
||||
public AssignedTaskTableModelBuilder(final WorkflowRequestLocal workflow) {
|
||||
|
|
@ -52,18 +50,24 @@ class AssignedTaskTableModelBuilder extends AbstractTableModelBuilder {
|
|||
}
|
||||
|
||||
private static class Model implements TableModel {
|
||||
|
||||
private final Iterator m_iter;
|
||||
private CMSTask m_task;
|
||||
|
||||
Model(final Workflow workflow) {
|
||||
Assert.exists(workflow, Workflow.class);
|
||||
|
||||
final Engine engine = Engine.getInstance(CMSEngine.CMS_ENGINE_TYPE);
|
||||
if (workflow.getProcessState() == Workflow.STARTED) {
|
||||
|
||||
Assert.exists(engine, Engine.class);
|
||||
final Engine engine = Engine.getInstance(CMSEngine.CMS_ENGINE_TYPE);
|
||||
|
||||
Assert.exists(engine, Engine.class);
|
||||
|
||||
m_iter = engine.getEnabledTasks(Web.getContext().getUser(), workflow.getID()).iterator();
|
||||
} else {
|
||||
m_iter = Collections.emptyList().iterator();
|
||||
}
|
||||
|
||||
m_iter = engine.getEnabledTasks
|
||||
(Web.getContext().getUser(), workflow.getID()).iterator();
|
||||
}
|
||||
|
||||
public final int getColumnCount() {
|
||||
|
|
@ -86,17 +90,17 @@ class AssignedTaskTableModelBuilder extends AbstractTableModelBuilder {
|
|||
|
||||
public final Object getElementAt(final int column) {
|
||||
switch (column) {
|
||||
case 0:
|
||||
return m_task.getLabel();
|
||||
case 1:
|
||||
// SF patch [ 1587168 ] Show locking user
|
||||
return m_task.isLocked() ? m_task.getLockedUser() : null;
|
||||
case 2:
|
||||
return m_task.getTaskType().getID().equals(CMSTaskType.DEPLOY) ?
|
||||
(Object) new Label("") : // null should work as well
|
||||
(Object) lz("cms.ui.workflow.task.finish");
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
case 0:
|
||||
return m_task.getLabel();
|
||||
case 1:
|
||||
// SF patch [ 1587168 ] Show locking user
|
||||
return m_task.isLocked() ? m_task.getLockedUser() : null;
|
||||
case 2:
|
||||
return m_task.getTaskType().getID().equals(CMSTaskType.DEPLOY)
|
||||
? (Object) new Label("") : // null should work as well
|
||||
(Object) lz("cms.ui.workflow.task.finish");
|
||||
default:
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue