TimeTrex/interface/html5/views/policy/policy_group/PolicyGroupViewController.js

378 lines
11 KiB
JavaScript

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
} )
];
}
}