1
1
import { Component , Inject } from '@angular/core' ;
2
2
import {
3
3
DataGroup ,
4
- extractFilterFromData ,
5
4
extractIconAndTitle ,
6
5
extractSearchTypeFromData ,
7
6
extractFieldValueFromData ,
@@ -15,7 +14,8 @@ import {
15
14
TabContent ,
16
15
ViewIdService ,
17
16
FilterExtractionService ,
18
- GroupNavigationConstants
17
+ GroupNavigationConstants ,
18
+ hasView
19
19
} from '@netgrif/components-core' ;
20
20
import { DefaultTabbedCaseViewComponent } from '../default-tabbed-case-view/default-tabbed-case-view.component' ;
21
21
import { DefaultTabbedTaskViewComponent } from '../default-tabbed-task-view/default-tabbed-task-view.component' ;
@@ -38,30 +38,33 @@ export class DefaultTabViewComponent {
38
38
constructor ( @Inject ( NAE_NAVIGATION_ITEM_TASK_DATA ) protected _navigationItemTaskData : Array < DataGroup > ,
39
39
protected translationService : TranslateService ,
40
40
protected extractionService : FilterExtractionService ) {
41
- const filter = extractFilterFromData ( this . _navigationItemTaskData ) ;
42
- this . tabs = this . getTabs ( filter . type ) ;
41
+ this . tabs = this . getTabs ( ) ;
43
42
}
44
43
45
- protected getTabs ( type : FilterType ) : TabContent [ ] {
46
- switch ( type ) {
47
- case FilterType . CASE :
48
- return this . getCaseTabs ( ) ;
49
- case FilterType . TASK :
50
- return this . getTaskTabs ( ) ;
44
+ protected getTabs ( ) : TabContent [ ] {
45
+ const menuItemDataGroups : Array < DataGroup > = this . _navigationItemTaskData . slice ( 0 , 4 )
46
+ const viewDataGroups : Array < DataGroup > = this . _navigationItemTaskData . slice ( 4 , this . _navigationItemTaskData . length ) ;
47
+
48
+ const viewType : string = extractFieldValueFromData ( menuItemDataGroups , "view_configuration_type" )
49
+ switch ( viewType ) {
50
+ case "tabbed_case_view" :
51
+ return this . getCaseTabs ( menuItemDataGroups , viewDataGroups ) ;
52
+ case "tabbed_task_view" :
53
+ return this . getTaskTabs ( menuItemDataGroups , viewDataGroups ) ;
51
54
default :
52
- throw new Error ( `Cannot resolve tabs for '${ type } ' filter type` ) ;
55
+ throw new Error ( `Cannot resolve tabs for '${ viewType } ' view type` ) ;
53
56
}
54
57
}
55
58
56
- protected getCaseTabs ( ) : TabContent [ ] {
57
- const labelData = extractIconAndTitle ( this . _navigationItemTaskData , this . translationService ) ;
59
+ protected getCaseTabs ( menuItemDataGroups : Array < DataGroup > , viewDataGroups : Array < DataGroup > ) : TabContent [ ] {
60
+ const labelData = extractIconAndTitle ( menuItemDataGroups , this . translationService ) ;
58
61
59
- const blockNetsString = extractFieldValueFromData < string > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CASE_BANNED_PROCESS_CREATION ) ;
62
+ const blockNetsString = extractFieldValueFromData < string > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CASE_BANNED_PROCESS_CREATION ) ;
60
63
const blockNets = blockNetsString === undefined ? [ ] : blockNetsString . split ( ',' )
61
- const createCaseButtonTitle : string = extractFieldValueFromData < string > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CREATE_CASE_BUTTON_TITLE ) ;
62
- const createCaseButtonIcon : string = extractFieldValueFromData < string > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CREATE_CASE_BUTTON_ICON ) ;
63
- const requireTitle : boolean = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CASE_TITLE_IN_CREATION ) ;
64
- const showCreateCaseButton : boolean = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_SHOW_CREATE_CASE_BUTTON ) ;
64
+ const createCaseButtonTitle : string = extractFieldValueFromData < string > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CREATE_CASE_BUTTON_TITLE ) ;
65
+ const createCaseButtonIcon : string = extractFieldValueFromData < string > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CREATE_CASE_BUTTON_ICON ) ;
66
+ const requireTitle : boolean = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CASE_TITLE_IN_CREATION ) ;
67
+ const showCreateCaseButton : boolean = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_SHOW_CREATE_CASE_BUTTON ) ;
65
68
const newCaseButtonConfig : NewCaseCreationConfigurationData = {
66
69
enableCaseTitle : requireTitle ,
67
70
isCaseTitleRequired : requireTitle ,
@@ -72,32 +75,36 @@ export class DefaultTabViewComponent {
72
75
} ,
73
76
blockNets : blockNets
74
77
} ;
75
- const caseSearchType = extractSearchTypeFromData ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CASE_VIEW_SEARCH_TYPE ) ;
78
+ const caseSearchType = extractSearchTypeFromData ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CASE_VIEW_SEARCH_TYPE ) ;
76
79
const caseSearchTypeConfig : SearchComponentConfiguration = {
77
80
showSearchIcon : true ,
78
81
showSearchToggleButton : caseSearchType === SearchMode . ADVANCED ,
79
82
initialSearchMode : ( caseSearchType === undefined ) ? undefined : SearchMode . FULLTEXT ,
80
83
}
81
- const caseShowMoreMenu = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CASE_SHOW_MORE_MENU ) ;
82
- const caseViewHeadersChangeable = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CASE_HEADERS_CHANGEABLE ) ;
83
- const caseViewHeadersMode = extractFieldValueFromData < string [ ] > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CASE_HEADERS_MODE ) ;
84
- const caseViewAllowTableMode = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CASE_ALLOW_TABLE_MODE ) ;
85
- const caseViewDefaultHeadersMode = extractFieldValueFromData < string [ ] > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_CASE_DEFAULT_HEADERS_MODE ) ;
84
+ const caseShowMoreMenu = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CASE_SHOW_MORE_MENU ) ;
85
+ const caseViewHeadersChangeable = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CASE_HEADERS_CHANGEABLE ) ;
86
+ const caseViewHeadersMode = extractFieldValueFromData < string [ ] > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CASE_HEADERS_MODE ) ;
87
+ const caseViewAllowTableMode = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CASE_ALLOW_TABLE_MODE ) ;
88
+ const caseViewDefaultHeadersMode = extractFieldValueFromData < string [ ] > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_CASE_DEFAULT_HEADERS_MODE ) ;
89
+
90
+ if ( ! hasView ( viewDataGroups ) ) {
91
+ throw new Error ( `Case view has missing configuration for task view.` ) ;
92
+ }
86
93
87
- const taskSearchType = extractSearchTypeFromData ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE ) ;
88
- const taskShowMoreMenu = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_SHOW_MORE_MENU ) ;
94
+ const taskSearchType = extractSearchTypeFromData ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE ) ;
95
+ const taskShowMoreMenu = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_SHOW_MORE_MENU ) ;
89
96
const taskSearchTypeConfig : SearchComponentConfiguration = {
90
97
showSearchIcon : true ,
91
98
showSearchToggleButton : taskSearchType === SearchMode . ADVANCED ,
92
99
initialSearchMode : ( taskSearchType === undefined ) ? undefined : SearchMode . FULLTEXT ,
93
100
}
94
- const taskViewHeadersChangeable = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_HEADERS_CHANGEABLE ) ;
95
- const taskViewHeadersMode = extractFieldValueFromData < string [ ] > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_HEADERS_MODE ) ;
96
- const taskViewAllowTableMode = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_ALLOW_TABLE_MODE ) ;
97
- const taskViewDefaultHeadersMode = extractFieldValueFromData < string [ ] > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_DEFAULT_HEADERS_MODE ) ;
98
- const taskViewAdditionalFilter = this . extractionService . extractCompleteAdditionalFilterFromData ( this . _navigationItemTaskData ) ;
99
- const mergeWithBaseFilter = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_MERGE_FILTERS ) ;
100
- const additionalAllowedNets = this . extractionService . extractAdditionalFilterAllowedNets ( this . _navigationItemTaskData ) ?. allowedNetsIdentifiers ;
101
+ const taskViewHeadersChangeable = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_HEADERS_CHANGEABLE ) ;
102
+ const taskViewHeadersMode = extractFieldValueFromData < string [ ] > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_HEADERS_MODE ) ;
103
+ const taskViewAllowTableMode = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_ALLOW_TABLE_MODE ) ;
104
+ const taskViewDefaultHeadersMode = extractFieldValueFromData < string [ ] > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_DEFAULT_HEADERS_MODE ) ;
105
+ const taskViewAdditionalFilter = this . extractionService . extractCompleteAdditionalFilterFromData ( viewDataGroups ) ;
106
+ const mergeWithBaseFilter = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_MERGE_FILTERS ) ;
107
+ const additionalAllowedNets = this . extractionService . extractAdditionalFilterAllowedNets ( viewDataGroups ) ?. allowedNetsIdentifiers ;
101
108
102
109
return [
103
110
{
@@ -131,22 +138,22 @@ export class DefaultTabViewComponent {
131
138
] ;
132
139
}
133
140
134
- private getTaskTabs ( ) : TabContent [ ] {
135
- const labelData = extractIconAndTitle ( this . _navigationItemTaskData , this . translationService ) ;
136
- const taskSearchType = extractSearchTypeFromData ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE ) ;
137
- const headersChangeable = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_HEADERS_CHANGEABLE ) ;
138
- const headersMode = extractFieldValueFromData < string [ ] > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_HEADERS_MODE ) ;
139
- const allowTableMode = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_ALLOW_TABLE_MODE ) ;
140
- const defaultHeadersMode = extractFieldValueFromData < string [ ] > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_DEFAULT_HEADERS_MODE ) ;
141
+ private getTaskTabs ( menuItemDataGroups : Array < DataGroup > , viewDataGroups : Array < DataGroup > ) : TabContent [ ] {
142
+ const labelData = extractIconAndTitle ( menuItemDataGroups , this . translationService ) ;
143
+ const taskSearchType = extractSearchTypeFromData ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_VIEW_SEARCH_TYPE ) ;
144
+ const headersChangeable = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_HEADERS_CHANGEABLE ) ;
145
+ const headersMode = extractFieldValueFromData < string [ ] > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_HEADERS_MODE ) ;
146
+ const allowTableMode = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_ALLOW_TABLE_MODE ) ;
147
+ const defaultHeadersMode = extractFieldValueFromData < string [ ] > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_DEFAULT_HEADERS_MODE ) ;
141
148
const showToggleButton = taskSearchType === SearchMode . ADVANCED
142
149
const searchTypeConfig : SearchComponentConfiguration = {
143
150
showSearchIcon : true ,
144
151
showSearchToggleButton : showToggleButton ,
145
152
initialSearchMode : ( taskSearchType === undefined ) ? undefined : SearchMode . FULLTEXT ,
146
153
}
147
- const showMoreMenu = extractFieldValueFromData < boolean > ( this . _navigationItemTaskData , GroupNavigationConstants . ITEM_FIELD_ID_TASK_SHOW_MORE_MENU ) ;
154
+ const showMoreMenu = extractFieldValueFromData < boolean > ( viewDataGroups , GroupNavigationConstants . ITEM_FIELD_ID_TASK_SHOW_MORE_MENU ) ;
148
155
149
- const filter = this . extractionService . extractCompleteFilterFromData ( this . _navigationItemTaskData ) ;
156
+ const filter = this . extractionService . extractCompleteFilterFromData ( viewDataGroups ) ;
150
157
return [
151
158
{
152
159
label : { text : labelData . name , icon : labelData . icon } ,
0 commit comments