Skip to content

Commit 4edd06d

Browse files
committed
- BZ-984233: fixing missing assignment tab
- BZ-983499: fixing Personal filter in task lists - BZ-983372: fixing sorting columns - general style fixes in task lists
1 parent 9defa13 commit 4edd06d

File tree

6 files changed

+89
-122
lines changed

6 files changed

+89
-122
lines changed

jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-backend/src/main/java/org/jbpm/console/ng/ht/backend/server/TaskServiceEntryPointImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ public List<TaskSummary> getTasksOwnedByExpirationDateOptional(String userId, Li
101101
statuses.add(Status.valueOf(s));
102102
}
103103
List<TaskSummary> taskSummaries = TaskSummaryHelper.adaptCollection(
104-
taskService.getTasksOwnedByExpirationDateOptional(
105-
userId, statuses, from));
104+
taskService.getTasksOwnedByStatus(
105+
userId, statuses, "en-UK"));
106106
setPotentionalOwners(taskSummaries);
107107
return taskSummaries;
108108
}

jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-client/src/main/java/org/jbpm/console/ng/ht/client/editors/taskform/FormDisplayPopupPresenter.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,9 +195,23 @@ public void onClick(ClickEvent event) {
195195
else changeTab(ACTION_TASK_COMMENTS);
196196
}
197197
});
198+
199+
NavLink assignmentsLink = new NavLink( constants.Assignments());
200+
assignmentsLink.addClickHandler( new ClickHandler() {
201+
202+
@Override
203+
public void onClick( ClickEvent event ) {
204+
close();
205+
PlaceRequest placeRequestImpl = new DefaultPlaceRequest( "Task Assignments Popup" );
206+
placeRequestImpl.addParameter( "taskId", String.valueOf( taskId ) );
207+
placeManager.goTo( placeRequestImpl );
208+
}
209+
} );
210+
198211

199212
view.getNavBarUL().add(workLink);
200213
view.getNavBarUL().add(detailsLink);
214+
view.getNavBarUL().add(assignmentsLink);
201215
view.getNavBarUL().add(commentsLink);
202216

203217
formServices.call( new RemoteCallback<String>() {

jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-client/src/main/java/org/jbpm/console/ng/ht/client/editors/taskslist/TasksListPresenter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ public void filterTasks(String text) {
134134
if(text.equals("")){
135135
if(allTaskSummaries != null){
136136
dataProvider.getList().clear();
137-
dataProvider.setList(new ArrayList<TaskSummary>(allTaskSummaries));
137+
dataProvider.getList().addAll(new ArrayList<TaskSummary>(allTaskSummaries));
138138
dataProvider.refresh();
139139

140140
}
@@ -155,7 +155,7 @@ public void filterTasks(String text) {
155155
}
156156
}
157157
dataProvider.getList().clear();
158-
dataProvider.setList(filteredTasksSimple);
158+
dataProvider.getList().addAll(filteredTasksSimple);
159159
dataProvider.refresh();
160160
}
161161
if(currentDayTasks != null){

jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-client/src/main/java/org/jbpm/console/ng/ht/client/editors/taskslist/TasksListViewImpl.html

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,45 @@
11
<div>
22
<div class="row-fluid">
3-
<h4 style="display: inline" data-field="taskCalendarViewLabel">
3+
<h4 style="display: inline; margin-left: 15px" data-field="taskListViewLabel">
44
</h4>
5-
<ul style="display: inline" class="nav">
6-
<li style="display: inline"><a title="Refresh" class="icon-jbpm-refresh" data-field="refreshIcon" href="#"><i></i></a></li>
7-
</ul>
5+
6+
87
</div>
98
<div class="navbar navbar-static-top" id="task-nav">
109
<div class="navbar-inner">
11-
<div class="container">
12-
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse.filters">
13-
<span class="icon-bar"></span>
14-
<span class="icon-bar"></span>
15-
<span class="icon-bar"></span>
16-
</a>
17-
<div class="nav-collapse filters collapse">
18-
<div class="row-fluid">
19-
<ul class="nav navtask">
20-
<li data-field="createQuickTaskNavLink"></li>
21-
</ul>
22-
<ul class="nav navtask">
23-
<li data-field="gridViewTasksNavLink"></li>
24-
25-
<li class="divider-vertical"></li>
26-
<li class="active" data-field="dayViewTasksNavLink"></li>
27-
<li data-field="weekViewTasksNavLink"></li>
28-
<li data-field="monthViewTasksNavLink"></li>
29-
30-
<li class="divider-vertical"></li>
31-
<li class="active" data-field="showActiveTasksNavLink"></li>
32-
<li data-field="showPersonalTasksNavLink"></li>
33-
<li data-field="showGroupTasksNavLink"></li>
34-
<li data-field="showAllTasksNavLink"></li>
35-
</ul>
36-
<ul>
37-
<div class="navbar-form pull-right">
38-
<input type="text" class="search-query" data-field="searchBox" placeholder="Type & press enter to search ...">
39-
</div>
40-
</ul>
41-
</div>
42-
</div>
10+
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse.filters">
11+
<span class="icon-bar"></span>
12+
<span class="icon-bar"></span>
13+
<span class="icon-bar"></span>
14+
</a>
15+
<div class="nav-collapse filters collapse">
16+
17+
<ul class="nav navtask">
18+
<li class="divider-vertical"></li>
19+
<li data-field="createQuickTaskNavLink"></li>
20+
<li class="divider-vertical"></li>
21+
</ul>
22+
<ul class="nav navtask">
23+
<li data-field="gridViewTasksNavLink"></li>
24+
25+
<li class="divider-vertical"></li>
26+
<li class="active" data-field="dayViewTasksNavLink"></li>
27+
<li data-field="weekViewTasksNavLink"></li>
28+
<li data-field="monthViewTasksNavLink"></li>
29+
30+
<li class="divider-vertical"></li>
31+
<li class="active" data-field="showActiveTasksNavLink"></li>
32+
<li data-field="showPersonalTasksNavLink"></li>
33+
<li data-field="showGroupTasksNavLink"></li>
34+
<li data-field="showAllTasksNavLink"></li>
35+
</ul>
36+
<ul class="navbar-form pull-right">
37+
<input type="text" class="search-query" data-field="searchBox" placeholder="Type & press enter to search ..."/>
38+
</ul>
39+
4340
</div>
4441
</div>
42+
4543
</div>
4644
<div class="row-fluid" data-field="calendarPicker"></div>
4745
<div id="section-content" data-field="tasksViewContainer" class="day"></div>

jbpm-console-ng-human-tasks/jbpm-console-ng-human-tasks-client/src/main/java/org/jbpm/console/ng/ht/client/editors/taskslist/TasksListViewImpl.java

Lines changed: 37 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
import javax.enterprise.event.Event;
3232
import javax.inject.Inject;
3333

34-
import com.github.gwtbootstrap.client.ui.Label;
3534
import com.github.gwtbootstrap.client.ui.NavLink;
3635
import com.github.gwtbootstrap.client.ui.TextBox;
3736
import com.github.gwtbootstrap.client.ui.base.IconAnchor;
@@ -44,13 +43,13 @@
4443
import com.google.gwt.event.logical.shared.ValueChangeHandler;
4544
import com.google.gwt.resources.client.ImageResource;
4645
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
47-
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
4846
import com.google.gwt.user.cellview.client.Column;
4947
import com.google.gwt.user.cellview.client.ColumnSortEvent;
5048
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
5149
import com.google.gwt.user.client.ui.AbstractImagePrototype;
5250
import com.google.gwt.user.client.ui.Composite;
5351
import com.google.gwt.user.client.ui.FlowPanel;
52+
import com.google.gwt.user.client.ui.HTMLPanel;
5453
import com.google.gwt.view.client.DefaultSelectionEventManager;
5554
import com.google.gwt.view.client.MultiSelectionModel;
5655
import com.google.gwt.view.client.SelectionChangeEvent;
@@ -135,7 +134,7 @@ public class TasksListViewImpl extends Composite implements TasksListPresenter.T
135134

136135

137136
@DataField
138-
public Heading taskCalendarViewLabel = new Heading(4);
137+
public Heading taskListViewLabel = new Heading(4);
139138

140139
@Inject
141140
@DataField
@@ -161,7 +160,6 @@ public class TasksListViewImpl extends Composite implements TasksListPresenter.T
161160
private Event<TaskSelectionEvent> taskSelection;
162161

163162
@Inject
164-
@DataField
165163
public IconAnchor refreshIcon;
166164

167165
private Set<TaskSummary> selectedTasks;
@@ -172,9 +170,6 @@ public class TasksListViewImpl extends Composite implements TasksListPresenter.T
172170
public DataGrid<TaskSummary> myTaskListGrid;
173171

174172
public SimplePager pager;
175-
176-
177-
178173

179174
@Override
180175
public void init( final TasksListPresenter presenter ) {
@@ -338,10 +333,13 @@ public void onClick( ClickEvent event ) {
338333

339334
}
340335
} );
341-
342-
taskCalendarViewLabel.setText( constants.Tasks_List() );
343-
taskCalendarViewLabel.setStyleName( "" );
344-
336+
//taskListViewLabel.setText( constants.Tasks_List() );
337+
HTMLPanel span2 = new HTMLPanel(constants.Tasks_List());
338+
span2.setStyleName("span2");
339+
taskListViewLabel.add(span2);
340+
refreshIcon.setCustomIconStyle("icon-jbpm-refresh");
341+
taskListViewLabel.add(refreshIcon);
342+
345343
searchBox.addKeyUpHandler(new KeyUpHandler() {
346344

347345
@Override
@@ -380,14 +378,14 @@ private void initializeGridView() {
380378
tasksViewContainer.add(myTaskListGrid);
381379
tasksViewContainer.add(pager);
382380

383-
myTaskListGrid.setHeight("350px");
381+
myTaskListGrid.setHeight("400px");
384382
// Set the message to display when the table is empty.
385-
myTaskListGrid.setEmptyTableWidget(new Label(constants.No_Tasks_Found()));
383+
myTaskListGrid.setEmptyTableWidget(new HTMLPanel(constants.No_Tasks_Found()));
386384

387385
// Attach a column sort handler to the ListDataProvider to sort the list.
388-
sortHandler = new ColumnSortEvent.ListHandler<TaskSummary>(presenter.getAllTaskSummaries());
386+
sortHandler = new ColumnSortEvent.ListHandler<TaskSummary>(presenter.getDataProvider().getList());
389387

390-
myTaskListGrid.addColumnSortHandler(sortHandler);
388+
391389

392390
// Add a selection model so we can select cells.
393391
selectionModel = new MultiSelectionModel<TaskSummary>();
@@ -404,6 +402,8 @@ public void onSelectionChange(SelectionChangeEvent event) {
404402
myTaskListGrid.setSelectionModel(selectionModel, DefaultSelectionEventManager.<TaskSummary> createCheckboxManager());
405403

406404
initTableColumns(selectionModel);
405+
406+
myTaskListGrid.addColumnSortHandler(sortHandler);
407407
presenter.addDataDisplay(myTaskListGrid);
408408

409409
}
@@ -449,7 +449,7 @@ public Boolean getValue(TaskSummary object) {
449449
return selectionModel.isSelected(object);
450450
}
451451
};
452-
myTaskListGrid.addColumn(checkColumn, SafeHtmlUtils.fromSafeConstant("<br/>"));
452+
myTaskListGrid.addColumn(checkColumn, new ResizableHeader("", myTaskListGrid, checkColumn));
453453
myTaskListGrid.setColumnWidth(checkColumn, "40px");
454454

455455
// Id
@@ -460,7 +460,7 @@ public Number getValue(TaskSummary object) {
460460
}
461461
};
462462
taskIdColumn.setSortable(true);
463-
myTaskListGrid.setColumnWidth(taskIdColumn, "40px");
463+
myTaskListGrid.setColumnWidth(taskIdColumn, "50px");
464464

465465
myTaskListGrid.addColumn(taskIdColumn, new ResizableHeader(constants.Id(), myTaskListGrid, taskIdColumn));
466466
sortHandler.setComparator(taskIdColumn, new Comparator<TaskSummary>() {
@@ -548,24 +548,6 @@ public int compare(TaskSummary o1, TaskSummary o2) {
548548

549549

550550
List<HasCell<TaskSummary, ?>> cells = new LinkedList<HasCell<TaskSummary, ?>>();
551-
cells.add(new StartActionHasCell("Start", new ActionCell.Delegate<TaskSummary>() {
552-
@Override
553-
public void execute(TaskSummary task) {
554-
List<Long> tasks = new ArrayList<Long>(1);
555-
tasks.add(task.getId());
556-
presenter.startTasks(tasks, identity.getName());
557-
}
558-
}));
559-
560-
cells.add(new CompleteActionHasCell("Complete", new ActionCell.Delegate<TaskSummary>() {
561-
@Override
562-
public void execute(TaskSummary task) {
563-
List<Long> tasks = new ArrayList<Long>(1);
564-
tasks.add(task.getId());
565-
presenter.completeTasks(tasks, identity.getName());
566-
}
567-
}));
568-
569551
cells.add(new ClaimActionHasCell("Claim", new ActionCell.Delegate<TaskSummary>() {
570552
@Override
571553
public void execute(TaskSummary task) {
@@ -584,16 +566,25 @@ public void execute(TaskSummary task) {
584566
}
585567
}));
586568

587-
cells.add(new DetailsHasCell("Edit", new ActionCell.Delegate<TaskSummary>() {
569+
cells.add(new DetailsHasCell("Details", new ActionCell.Delegate<TaskSummary>() {
588570
@Override
589571
public void execute(TaskSummary task) {
590572
PlaceRequest placeRequestImpl = new DefaultPlaceRequest("Task Details Popup");
591573
placeRequestImpl.addParameter("taskId", Long.toString(task.getId()));
592574
placeManager.goTo(placeRequestImpl);
593575
}
594576
}));
595-
596-
cells.add(new PopupActionHasCell("Work Popup", new ActionCell.Delegate<TaskSummary>() {
577+
578+
cells.add(new StartActionHasCell("Start", new ActionCell.Delegate<TaskSummary>() {
579+
@Override
580+
public void execute(TaskSummary task) {
581+
List<Long> tasks = new ArrayList<Long>(1);
582+
tasks.add(task.getId());
583+
presenter.startTasks(tasks, identity.getName());
584+
}
585+
}));
586+
587+
cells.add(new CompleteActionHasCell("Complete", new ActionCell.Delegate<TaskSummary>() {
597588
@Override
598589
public void execute(TaskSummary task) {
599590
PlaceRequest placeRequestImpl = new DefaultPlaceRequest("Form Display");
@@ -610,7 +601,9 @@ public TaskSummary getValue(TaskSummary object) {
610601
return object;
611602
}
612603
};
613-
myTaskListGrid.addColumn(actionsColumn, constants.Actions());
604+
myTaskListGrid.addColumn(actionsColumn, new ResizableHeader(constants.Actions(), myTaskListGrid, actionsColumn));
605+
myTaskListGrid.setColumnWidth(actionsColumn, "120px");
606+
614607

615608
}
616609

@@ -662,7 +655,7 @@ public void render(Cell.Context context, TaskSummary value, SafeHtmlBuilder sb)
662655
if (value.getActualOwner() != null && (value.getStatus().equals("Reserved"))) {
663656
AbstractImagePrototype imageProto = AbstractImagePrototype.create(images.startGridIcon());
664657
SafeHtmlBuilder mysb = new SafeHtmlBuilder();
665-
mysb.appendHtmlConstant("<span title='" + constants.Start() + "'>");
658+
mysb.appendHtmlConstant("<span title='" + constants.Start() + "' style='margin-right:5px;'>");
666659
mysb.append(imageProto.getSafeHtml());
667660
mysb.appendHtmlConstant("</span>");
668661
sb.append(mysb.toSafeHtml());
@@ -698,7 +691,7 @@ public void render(Cell.Context context, TaskSummary value, SafeHtmlBuilder sb)
698691
if (value.getActualOwner() != null && value.getStatus().equals("InProgress")) {
699692
AbstractImagePrototype imageProto = AbstractImagePrototype.create(images.completeGridIcon());
700693
SafeHtmlBuilder mysb = new SafeHtmlBuilder();
701-
mysb.appendHtmlConstant("<span title='" + constants.Complete() + "'>");
694+
mysb.appendHtmlConstant("<span title='" + constants.Complete() + "' style='margin-right:5px;'>");
702695
mysb.append(imageProto.getSafeHtml());
703696
mysb.appendHtmlConstant("</span>");
704697
sb.append(mysb.toSafeHtml());
@@ -723,42 +716,7 @@ public TaskSummary getValue(TaskSummary object) {
723716
}
724717
}
725718

726-
private class PopupActionHasCell implements HasCell<TaskSummary, TaskSummary> {
727-
728-
private ActionCell<TaskSummary> cell;
729-
730-
public PopupActionHasCell(String text, ActionCell.Delegate<TaskSummary> delegate) {
731-
cell = new ActionCell<TaskSummary>(text, delegate) {
732-
@Override
733-
public void render(Cell.Context context, TaskSummary value, SafeHtmlBuilder sb) {
734-
if (value.getActualOwner() != null
735-
&& (value.getStatus().equals("Reserved") || value.getStatus().equals("InProgress"))) {
736-
AbstractImagePrototype imageProto = AbstractImagePrototype.create(images.popupIcon());
737-
SafeHtmlBuilder mysb = new SafeHtmlBuilder();
738-
mysb.appendHtmlConstant("<span title='" + constants.Work() + "'>");
739-
mysb.append(imageProto.getSafeHtml());
740-
mysb.appendHtmlConstant("</span>");
741-
sb.append(mysb.toSafeHtml());
742-
}
743-
}
744-
};
745-
}
746-
747-
@Override
748-
public Cell<TaskSummary> getCell() {
749-
return cell;
750-
}
751-
752-
@Override
753-
public FieldUpdater<TaskSummary, TaskSummary> getFieldUpdater() {
754-
return null;
755-
}
756-
757-
@Override
758-
public TaskSummary getValue(TaskSummary object) {
759-
return object;
760-
}
761-
}
719+
762720

763721
private class ClaimActionHasCell implements HasCell<TaskSummary, TaskSummary> {
764722

@@ -772,7 +730,7 @@ public void render(Cell.Context context, TaskSummary value, SafeHtmlBuilder sb)
772730
&& value.getStatus().equals("Ready")) {
773731
AbstractImagePrototype imageProto = AbstractImagePrototype.create(images.releaseGridIcon());
774732
SafeHtmlBuilder mysb = new SafeHtmlBuilder();
775-
mysb.appendHtmlConstant("<span title='" + constants.Claim() + "'>");
733+
mysb.appendHtmlConstant("<span title='" + constants.Claim() + "' style='margin-right:5px;'>");
776734
mysb.append(imageProto.getSafeHtml());
777735
mysb.appendHtmlConstant("</span>");
778736
sb.append(mysb.toSafeHtml());
@@ -809,7 +767,7 @@ public void render(Cell.Context context, TaskSummary value, SafeHtmlBuilder sb)
809767
&& ( value.getStatus().equals( "Reserved" ) || value.getStatus().equals( "InProgress" ) )) {
810768
AbstractImagePrototype imageProto = AbstractImagePrototype.create(images.claimGridIcon());
811769
SafeHtmlBuilder mysb = new SafeHtmlBuilder();
812-
mysb.appendHtmlConstant("<span title='" + constants.Release() + "'>");
770+
mysb.appendHtmlConstant("<span title='" + constants.Release() + "' style='margin-right:5px;'>");
813771
mysb.append(imageProto.getSafeHtml());
814772
mysb.appendHtmlConstant("</span>");
815773
sb.append(mysb.toSafeHtml());

0 commit comments

Comments
 (0)