export class PolicyGroupViewController extends BaseViewController { constructor( options = {} ) { _.defaults( options, { el: '#policy_group_view_container', sub_document_view_controller: null, document_object_type_id: null, exception_policy_control_api: null } ); super( options ); } init( options ) { //this._super('initialize', options ); this.edit_view_tpl = 'PolicyGroupEditView.html'; this.permission_id = 'policy_group'; this.viewId = 'PolicyGroup'; this.script_name = 'PolicyGroupView'; this.table_name_key = 'policy_group'; this.document_object_type_id = 200; this.context_menu_name = $.i18n._( 'Policy Group' ); this.navigation_label = $.i18n._( 'Policy Group' ); this.api = TTAPI.APIPolicyGroup; this.exception_policy_control_api = TTAPI.APIExceptionPolicyControl; this.render(); this.buildContextMenu(); this.initData(); } buildEditViewUI() { super.buildEditViewUI(); var $this = this; var tab_model = { 'tab_policy_group': { 'label': $.i18n._( 'Policy Group' ) }, 'tab_attachment': true, 'tab_audit': true, }; this.setTabModel( tab_model ); this.navigation.AComboBox( { api_class: TTAPI.APIPolicyGroup, id: this.script_name + '_navigation', allow_multiple_selection: false, layout_name: 'global_policy_group', navigation_mode: true, show_search_inputs: true } ); this.setNavigation(); //Tab 0 start var tab_policy_group = this.edit_view_tab.find( '#tab_policy_group' ); var tab_policy_group_column1 = tab_policy_group.find( '.first-column' ); this.edit_view_tabs[0] = []; this.edit_view_tabs[0].push( tab_policy_group_column1 ); //Name var form_item_input = Global.loadWidgetByName( FormItemType.TEXT_INPUT ); form_item_input.TTextInput( { field: 'name', width: '100%' } ); this.addEditFieldToColumn( $.i18n._( 'Name' ), form_item_input, tab_policy_group_column1, '' ); form_item_input.parent().width( '45%' ); // Description form_item_input = Global.loadWidgetByName( FormItemType.TEXT_AREA ); form_item_input.TTextArea( { field: 'description', width: '100%' } ); this.addEditFieldToColumn( $.i18n._( 'Description' ), form_item_input, tab_policy_group_column1, '', null, null, true ); form_item_input.parent().width( '45%' ); // Employee form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIUser, allow_multiple_selection: true, layout_name: 'global_user', show_search_inputs: true, set_empty: true, field: 'user' } ); var default_args = {}; default_args.permission_section = 'policy_group'; form_item_input.setDefaultArgs( default_args ); this.addEditFieldToColumn( $.i18n._( 'Employees' ), form_item_input, tab_policy_group_column1 ); // Regular Time Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIRegularTimePolicy, allow_multiple_selection: true, layout_name: 'global_regular_time', show_search_inputs: true, set_empty: true, field: 'regular_time_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Regular Time Policies' ), form_item_input, tab_policy_group_column1 ); // Overtime Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIOverTimePolicy, allow_multiple_selection: true, layout_name: 'global_over_time', show_search_inputs: true, set_empty: true, field: 'over_time_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Overtime Policies' ), form_item_input, tab_policy_group_column1 ); // Rounding Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIRoundIntervalPolicy, allow_multiple_selection: true, layout_name: 'global_round_interval', show_search_inputs: true, set_empty: true, field: 'round_interval_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Rounding Policies' ), form_item_input, tab_policy_group_column1 ); // Meal Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIMealPolicy, allow_multiple_selection: true, layout_name: 'global_meal', show_search_inputs: true, set_empty: true, field: 'meal_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Meal Policies' ), form_item_input, tab_policy_group_column1 ); // Break Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIBreakPolicy, allow_multiple_selection: true, layout_name: 'global_break', show_search_inputs: true, set_empty: true, field: 'break_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Break Policies' ), form_item_input, tab_policy_group_column1 ); // Accrual Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIAccrualPolicy, allow_multiple_selection: true, layout_name: 'global_accrual', show_search_inputs: true, set_empty: true, field: 'accrual_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Accrual Policies' ), form_item_input, tab_policy_group_column1 ); // Premium Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIPremiumPolicy, allow_multiple_selection: true, layout_name: 'global_premium', show_search_inputs: true, set_empty: true, field: 'premium_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Premium Policies' ), form_item_input, tab_policy_group_column1 ); // Holiday Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIHolidayPolicy, allow_multiple_selection: true, layout_name: 'global_holiday', show_search_inputs: true, set_empty: true, field: 'holiday_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Holiday Policies' ), form_item_input, tab_policy_group_column1 ); if ( Global.getProductEdition() >= 25 ) { // Expense Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIExpensePolicy, allow_multiple_selection: true, layout_name: 'global_expense_policy', show_search_inputs: true, set_empty: true, field: 'expense_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Expense Policies' ), form_item_input, tab_policy_group_column1 ); } // Exception Policy form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIExceptionPolicyControl, allow_multiple_selection: false, layout_name: 'global_exception', show_search_inputs: true, set_empty: true, field: 'exception_policy_control_id' } ); this.addEditFieldToColumn( $.i18n._( 'Exception Policies' ), form_item_input, tab_policy_group_column1 ); // Absence Policies form_item_input = Global.loadWidgetByName( FormItemType.AWESOME_BOX ); form_item_input.AComboBox( { api_class: TTAPI.APIAbsencePolicy, allow_multiple_selection: true, layout_name: 'global_absences', show_search_inputs: true, set_empty: true, field: 'absence_policy' } ); this.addEditFieldToColumn( $.i18n._( 'Absence Policies' ), form_item_input, tab_policy_group_column1, '' ); } buildSearchFields() { super.buildSearchFields(); var default_args = {}; default_args.permission_section = 'policy_group'; this.search_fields = [ new SearchField( { label: $.i18n._( 'Name' ), in_column: 1, field: 'name', multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.TEXT_INPUT } ), new SearchField( { label: $.i18n._( 'Employees' ), in_column: 1, field: 'user', default_args: default_args, layout_name: 'global_user', api_class: TTAPI.APIUser, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Overtime Policy' ), in_column: 1, field: 'over_time_policy', layout_name: 'global_over_time', api_class: TTAPI.APIOverTimePolicy, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Rounding Policies' ), in_column: 1, field: 'round_interval_policy', layout_name: 'global_round_interval', api_class: TTAPI.APIRoundIntervalPolicy, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Absence Policies' ), in_column: 1, field: 'absence_policy', layout_name: 'global_absences', api_class: TTAPI.APIAbsencePolicy, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Accrual Policies' ), in_column: 2, field: 'accrual_policy', layout_name: 'global_accrual', api_class: TTAPI.APIAccrualPolicy, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Premium Policies' ), in_column: 2, field: 'premium_policy', layout_name: 'global_premium', api_class: TTAPI.APIPremiumPolicy, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Holiday Policies' ), in_column: 2, field: 'holiday_policy', layout_name: 'global_holiday', api_class: TTAPI.APIHolidayPolicy, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Exception Policy' ), in_column: 2, field: 'exception_policy_control', layout_name: 'global_exception', api_class: TTAPI.APIExceptionPolicyControl, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Created By' ), in_column: 2, field: 'created_by', layout_name: 'global_user', api_class: TTAPI.APIUser, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ), new SearchField( { label: $.i18n._( 'Updated By' ), in_column: 2, field: 'updated_by', layout_name: 'global_user', api_class: TTAPI.APIUser, multiple: true, basic_search: true, adv_search: false, form_item_type: FormItemType.AWESOME_BOX } ) ]; } }