1
DepartmentViewController = BaseViewController.extend( {
2
el: '#department_view_container',
5
initialize: function( options ) {
6
this._super( 'initialize', options );
7
this.edit_view_tpl = 'DepartmentEditView.html';
8
this.permission_id = 'department';
9
this.viewId = 'Department';
10
this.script_name = 'DepartmentView';
11
this.table_name_key = 'department';
12
this.context_menu_name = $.i18n._( 'Departments' );
13
this.navigation_label = $.i18n._( 'Department' ) + ':';
14
this.api = new (APIFactory.getAPIClass( 'APIDepartment' ))();
17
this.buildContextMenu();
20
this.setSelectRibbonMenuIfNecessary( 'Department' );
24
initOptions: function() {
26
this.initDropDownOption( 'status' );
30
buildEditViewUI: function() {
32
this._super( 'buildEditViewUI' );
37
'tab_department': $.i18n._( 'Department' ),
38
'tab_audit': $.i18n._( 'Audit' )
42
this.navigation.AComboBox( {
43
api_class: (APIFactory.getAPIClass( 'APIDepartment' )),
44
id: this.script_name + '_navigation',
45
allow_multiple_selection: false,
46
layout_name: ALayoutIDs.DEPARTMENT,
47
navigation_mode: true,
48
show_search_inputs: true
55
var tab_department = this.edit_view_tab.find( '#tab_department' );
57
var tab_department_column1 = tab_department.find( '.first-column' );
59
this.edit_view_tabs[0] = [];
61
this.edit_view_tabs[0].push( tab_department_column1 );
65
var form_item_input = Global.loadWidgetByName( FormItemType.COMBO_BOX );
66
form_item_input.TComboBox( {field: 'status_id'} );
67
form_item_input.setSourceData( Global.addFirstItemToArray( $this.status_array ) );
68
this.addEditFieldToColumn( $.i18n._( 'Status' ), form_item_input, tab_department_column1, '' );
71
form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
73
form_item_input.TTextInput( {field: 'name', width: '100%'} );
74
this.addEditFieldToColumn( $.i18n._( 'Name' ), form_item_input, tab_department_column1 );
75
form_item_input.parent().width( '45%' );
80
form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT );
82
form_item_input.TTextInput( {field: 'manual_id', width: 65} );
83
this.addEditFieldToColumn( $.i18n._( 'Code' ), form_item_input, tab_department_column1 );
86
if ( LocalCacheData.getCurrentCompany().product_edition_id >= 20 ) {
87
form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX );
88
form_item_input.AComboBox( {
89
api_class: (APIFactory.getAPIClass( 'APIGEOFence' )),
90
allow_multiple_selection: true,
91
layout_name: ALayoutIDs.GEO_FENCE,
92
show_search_inputs: true,
94
field: 'geo_fence_ids'
96
this.addEditFieldToColumn( $.i18n._( 'Allowed GEO Fences' ), form_item_input, tab_department_column1 );
100
form_item_input = Global.loadWidgetByName( FormItemType.TAG_INPUT );
102
form_item_input.TTagInput( {field: 'tag', object_type_id: 120} );
103
this.addEditFieldToColumn( $.i18n._( 'Tags' ), form_item_input, tab_department_column1, '' );
107
buildSearchFields: function() {
109
this._super( 'buildSearchFields' );
110
this.search_fields = [
112
new SearchField( {label: $.i18n._( 'Status' ),
117
layout_name: ALayoutIDs.OPTION_COLUMN,
118
form_item_type: FormItemType.AWESOME_BOX} ),
119
new SearchField( {label: $.i18n._( 'Name' ),
124
form_item_type: FormItemType.TEXT_INPUT} ),
126
new SearchField( {label: $.i18n._( 'Tags' ),
130
form_item_type: FormItemType.TAG_INPUT} ),
131
new SearchField( {label: $.i18n._( 'Code' ),
136
form_item_type: FormItemType.TEXT_INPUT} ),
137
new SearchField( {label: $.i18n._( 'Created By' ),
140
layout_name: ALayoutIDs.USER,
141
api_class: (APIFactory.getAPIClass( 'APIUser' )),
145
form_item_type: FormItemType.AWESOME_BOX} ),
147
new SearchField( {label: $.i18n._( 'Updated By' ),
150
layout_name: ALayoutIDs.USER,
151
api_class: (APIFactory.getAPIClass( 'APIUser' )),
155
form_item_type: FormItemType.AWESOME_BOX} )
159
buildContextMenuModels: function() {
160
var menu = this._super('buildContextMenuModels')[0];
162
var import_csv = new RibbonSubMenu( {
163
label: $.i18n._( 'Import' ),
164
id: ContextMenuIconName.import_icon,
165
group: this.getContextMenuGroupByName(menu,'other'),
166
icon: Icons.import_icon,
167
permission_result: PermissionManager.checkTopLevelPermission( 'ImportCSVDepartment' ),
175
onContextMenuClick: function( context_btn, menu_name ) {
177
this._super( 'onContextMenuClick', context_btn, menu_name );
181
if ( Global.isSet( menu_name ) ) {
184
context_btn = $( context_btn );
186
id = $( context_btn.find( '.ribbon-sub-menu-icon' ) ).attr( 'id' );
188
if ( context_btn.hasClass( 'disable-image' ) ) {
194
case ContextMenuIconName.import_icon:
195
ProgressBar.showOverlay();
196
this.onImportClick();
202
onImportClick: function() {
205
IndexViewController.openWizard( 'ImportCSVWizard', 'department', function(){