Skip to content

Commit

Permalink
tasks tab visibility + ui authorizations
Browse files Browse the repository at this point in the history
  • Loading branch information
KaterynaHonchar committed Mar 9, 2020
1 parent e3ac323 commit 9d149c3
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 29 deletions.
Expand Up @@ -93,4 +93,37 @@ public class ComponentConstants {
public static final QName UI_CASE_TAB_OVERVIEW_APPROVAL = new QName(NS_COMPONENTS_PREFIX, "caseTabOverviewApproval");
public static final String UI_CASE_TAB_OVERVIEW_APPROVAL_URL = QNameUtil.qNameToUri(UI_CASE_TAB_OVERVIEW_APPROVAL);

public static final QName UI_TASK_TAB_BASIC = new QName(NS_COMPONENTS_PREFIX, "taskTabBasic");
public static final String UI_TASK_TAB_BASIC_URL = QNameUtil.qNameToUri(UI_TASK_TAB_BASIC);

public static final QName UI_TASK_TAB_SCHEDULE = new QName(NS_COMPONENTS_PREFIX, "taskTabSchedule");
public static final String UI_TASK_TAB_SCHEDULE_URL = QNameUtil.qNameToUri(UI_TASK_TAB_SCHEDULE);

public static final QName UI_TASK_TAB_WORK_MANAGEMENT = new QName(NS_COMPONENTS_PREFIX, "taskTabWorkManagement");
public static final String UI_TASK_TAB_WORK_MANAGEMENT_URL = QNameUtil.qNameToUri(UI_TASK_TAB_WORK_MANAGEMENT);

public static final QName UI_TASK_TAB_CLEANUP_POLICIES = new QName(NS_COMPONENTS_PREFIX, "taskTabCleanupPolicies");
public static final String UI_TASK_TAB_CLEANUP_POLICIES_URL = QNameUtil.qNameToUri(UI_TASK_TAB_CLEANUP_POLICIES);

public static final QName UI_TASK_TAB_SUBTASKS = new QName(NS_COMPONENTS_PREFIX, "taskTabSubtasks");
public static final String UI_TASK_TAB_SUBTASKS_URL = QNameUtil.qNameToUri(UI_TASK_TAB_SUBTASKS);

public static final QName UI_TASK_TAB_OPERATION_STATISTICS = new QName(NS_COMPONENTS_PREFIX, "taskTabOperationStatistics");
public static final String UI_TASK_TAB_OPERATION_STATISTICS_URL = QNameUtil.qNameToUri(UI_TASK_TAB_OPERATION_STATISTICS);

public static final QName UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE = new QName(NS_COMPONENTS_PREFIX, "taskTabEnvironmentalPerformance");
public static final String UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE_URL = QNameUtil.qNameToUri(UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE);

public static final QName UI_TASK_TAB_OPERATION = new QName(NS_COMPONENTS_PREFIX, "taskTabOperation");
public static final String UI_TASK_TAB_OPERATION_URL = QNameUtil.qNameToUri(UI_TASK_TAB_OPERATION);

public static final QName UI_TASK_TAB_INTERNAL_PERFORMANCE = new QName(NS_COMPONENTS_PREFIX, "taskTabInternalPerformance");
public static final String UI_TASK_TAB_INTERNAL_PERFORMANCE_URL = QNameUtil.qNameToUri(UI_TASK_TAB_INTERNAL_PERFORMANCE);

public static final QName UI_TASK_TAB_RESULT = new QName(NS_COMPONENTS_PREFIX, "taskTabResult");
public static final String UI_TASK_TAB_RESULT_URL = QNameUtil.qNameToUri(UI_TASK_TAB_RESULT);

public static final QName UI_TASK_TAB_ERRORS = new QName(NS_COMPONENTS_PREFIX, "taskTabErrors");
public static final String UI_TASK_TAB_ERRORS_URL = QNameUtil.qNameToUri(UI_TASK_TAB_ERRORS);

}
Expand Up @@ -6,6 +6,7 @@
*/
package com.evolveum.midpoint.web.page.admin.server;

import com.evolveum.midpoint.gui.api.ComponentConstants;
import com.evolveum.midpoint.gui.api.component.tabs.PanelTab;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.prism.ItemStatus;
Expand All @@ -24,6 +25,7 @@
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.web.component.AjaxSubmitButton;
import com.evolveum.midpoint.web.component.objectdetails.AbstractObjectMainPanel;
import com.evolveum.midpoint.web.component.objectdetails.AssignmentHolderTypeMainPanel;
import com.evolveum.midpoint.web.component.prism.ItemVisibility;
import com.evolveum.midpoint.web.component.util.VisibleEnableBehaviour;
import com.evolveum.midpoint.web.model.PrismContainerWrapperModel;
Expand All @@ -41,7 +43,7 @@
import java.util.ArrayList;
import java.util.List;

public class TaskMainPanel extends AbstractObjectMainPanel<TaskType> {
public class TaskMainPanel extends AssignmentHolderTypeMainPanel<TaskType> {

private static final transient Trace LOGGER = TraceManager.getTrace(TaskMainPanel.class);

Expand Down Expand Up @@ -70,13 +72,13 @@ protected List<ITab> createTabs(PageAdminObjectDetails<TaskType> parentPage) {
taskTabsVisibility.computeAll((PageTask) parentPage, getObjectWrapper());

ObjectTabVisibleBehavior<TaskType> basicTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", (PageTask) parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_BASIC_URL, (PageTask) parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isBasicVisible();
return super.isVisible() && taskTabsVisibility.isBasicVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.basic.title"), basicTabVisibility) {
Expand All @@ -90,13 +92,13 @@ public WebMarkupContainer createPanel(String panelId) {
});

ObjectTabVisibleBehavior<TaskType> scheduleTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_SCHEDULE_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isSchedulingVisible();
return super.isVisible() && taskTabsVisibility.isSchedulingVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.schedule.title"), scheduleTabVisibility) {
Expand All @@ -110,13 +112,13 @@ public WebMarkupContainer createPanel(String panelId) {
});

ObjectTabVisibleBehavior<TaskType> workManagementTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_CASE_TAB_WORKITEMS_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isWorkManagementVisible();
return super.isVisible() && taskTabsVisibility.isWorkManagementVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.workManagement.title"), workManagementTabVisibility) {
Expand All @@ -130,13 +132,13 @@ public WebMarkupContainer createPanel(String panelId) {
});

ObjectTabVisibleBehavior<TaskType> cleanupPoliciesTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_CLEANUP_POLICIES_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isCleanupPolicyVisible();
return super.isVisible() && taskTabsVisibility.isCleanupPolicyVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.cleanupPolicies.title"), cleanupPoliciesTabVisibility) {
Expand All @@ -150,13 +152,13 @@ public WebMarkupContainer createPanel(String panelId) {
});

ObjectTabVisibleBehavior<TaskType> subtasksTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_SUBTASKS_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isSubtasksAndThreadsVisible();
return super.isVisible() && taskTabsVisibility.isSubtasksAndThreadsVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.subtasks.title"), subtasksTabVisibility) {
Expand All @@ -170,13 +172,13 @@ public WebMarkupContainer createPanel(String panelId) {
});

ObjectTabVisibleBehavior<TaskType> operationStatsAndInternalPerfTabsVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_OPERATION_STATISTICS_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isInternalPerformanceVisible();
return super.isVisible() && taskTabsVisibility.isInternalPerformanceVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.operationStats.title"), operationStatsAndInternalPerfTabsVisibility) {
Expand All @@ -190,13 +192,13 @@ public WebMarkupContainer createPanel(String panelId) {
});

ObjectTabVisibleBehavior<TaskType> envPerfTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_ENVIRONMENTAL_PERFORMANCE_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isEnvironmentalPerformanceVisible();
return super.isVisible() && taskTabsVisibility.isEnvironmentalPerformanceVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.environmentalPerformance.title"), envPerfTabVisibility) {
Expand All @@ -210,13 +212,13 @@ public WebMarkupContainer createPanel(String panelId) {
});

ObjectTabVisibleBehavior<TaskType> operationTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_OPERATION_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isOperationVisible();
return super.isVisible() && taskTabsVisibility.isOperationVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTaskEdit.operation"), operationTabVisibility) {
Expand All @@ -228,7 +230,17 @@ public WebMarkupContainer createPanel(String panelId) {
}
});

tabs.add(new PanelTab(parentPage.createStringResource("pageTask.internalPerformance.title"), operationStatsAndInternalPerfTabsVisibility) {
ObjectTabVisibleBehavior<TaskType> internalPerfTabsVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_INTERNAL_PERFORMANCE_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return super.isVisible() && taskTabsVisibility.isInternalPerformanceVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.internalPerformance.title"), internalPerfTabsVisibility) {
private static final long serialVersionUID = 1L;

@Override
Expand All @@ -238,13 +250,13 @@ public WebMarkupContainer createPanel(String panelId) {
});

ObjectTabVisibleBehavior<TaskType> resultTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_RESULT_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isResultVisible();
return super.isVisible() && taskTabsVisibility.isResultVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.result.title"), resultTabVisibility) {
Expand All @@ -258,13 +270,13 @@ public WebMarkupContainer createPanel(String panelId) {


ObjectTabVisibleBehavior<TaskType> errorsTabVisibility = new ObjectTabVisibleBehavior<TaskType>
(Model.of(getObjectWrapper().getObject()), "", parentPage){
(Model.of(getObjectWrapper().getObject()), ComponentConstants.UI_TASK_TAB_ERRORS_URL, parentPage){

private static final long serialVersionUID = 1L;

@Override
public boolean isVisible(){
return taskTabsVisibility.isErrorsVisible();
return super.isVisible() && taskTabsVisibility.isErrorsVisible();
}
};
tabs.add(new PanelTab(parentPage.createStringResource("pageTask.errors.title"), errorsTabVisibility) {
Expand Down
Expand Up @@ -89,18 +89,11 @@ public boolean configuresWorkerThreads(TaskType task) {
public boolean computeEnvironmentalPerformanceVisible(PageTask parentPage, PrismObjectWrapper<TaskType> taskWrapper) {
final OperationStatsType operationStats = taskWrapper.getObject().asObjectable().getOperationStats();
environmentalPerformanceVisible = parentPage.isEditingFocus();
//todo does it make sense to check operationStats? it may be null for partitioned task
// && isTaskItemReadable(taskWrapper, TaskType.F_OPERATION_STATS)
// && operationStats != null
// && !StatisticsUtil.isEmpty(operationStats.getEnvironmentalPerformanceInformation());
return environmentalPerformanceVisible;
}

public boolean computeInternalPerformanceVisible(PageTask parentPage, PrismObjectWrapper<TaskType> taskWrapper) {
internalPerformanceVisible = parentPage.isEditingFocus();
//todo doea it make sense to check operationStats? it may be null for partitioned task
// && isTaskItemReadable(taskWrapper, TaskType.F_OPERATION_STATS)
// && taskWrapper.getObject().asObjectable().getOperationStats() != null;
return internalPerformanceVisible;
}

Expand Down

0 comments on commit 9d149c3

Please sign in to comment.