ping(); $group_values = $ITSM->getGroups(); $priority_values = $ITSM->getPriorities(); $status_values = $ITSM->getStatus(); $object_types_values = $ITSM->getObjectypes(); } catch (\Throwable $th) { $error = $th->getMessage(); $has_connection = false; } if ($has_connection === false && $config['ITSM_enabled']) { ui_print_error_message(__('ITSM API is not reachable, %s', $error)); } $table_enable = new StdClass(); $table_enable->data = []; $table_enable->width = '100%'; $table_enable->id = 'itsm-enable-setup'; $table_enable->class = 'databox filters'; $table_enable->size['name'] = '30%'; $table_enable->style['name'] = 'font-weight: bold'; // Enable Pandora ITSM. $row = []; $row['name'] = __('Enable Pandora ITSM'); $row['control'] = html_print_checkbox_switch('ITSM_enabled', 1, $config['ITSM_enabled'], true); $table_enable->data['ITSM_enabled'] = $row; // Remote config table. $table_remote = new StdClass(); $table_remote->data = []; $table_remote->width = '100%'; $table_remote->styleTable = 'margin-bottom: 10px;'; $table_remote->id = 'ITSM-remote-setup'; $table_remote->class = 'databox filters filter-table-adv'; $table_remote->size['hostname'] = '50%'; $table_remote->size['api_pass'] = '50%'; // Enable ITSM user configuration. $row = []; $row['user_level'] = html_print_label_input_block( __('Pandora ITSM configuration at user level'), html_print_checkbox_switch( 'ITSM_user_level_conf', 1, $config['ITSM_user_level_conf'], true ) ); $table_remote->data['ITSM_user_level_conf'] = $row; // ITSM hostname. $row = []; $row['hostname'] = html_print_label_input_block( __('URL to Pandora ITSM setup').ui_print_help_tip(__('Full URL to your Pandora ITSM setup (e.g., http://192.168.1.20/integria/api/v1).'), true), html_print_input_text( 'ITSM_hostname', $config['ITSM_hostname'], '', 30, 100, true ), ['div_class' => 'ITSM-remote-setup-ITSM_hostname'] ); // ITSM token. $row['password'] = html_print_label_input_block( __('Token'), html_print_input_password( 'ITSM_token', io_output_password($config['ITSM_token']), '', 30, 100, true ), ['div_class' => 'ITSM-remote-setup-ITSM_token'] ); $table_remote->data['ITSM_token'] = $row; $row = []; $row['control'] = __('Inventory'); $row['control'] .= html_print_button( __('Sync inventory'), 'sync-inventory', false, '', [ 'icon' => 'cog', 'mode' => 'secondary mini', ], true ); $row['control'] .= ''; $row['control'] .= ''; $row['control'] .= ''; $table_remote->data['ITSM_sync_inventory'] = $row; // Alert settings. $table_alert_settings = new StdClass(); $table_alert_settings->data = []; $table_alert_settings->rowspan = []; $table_alert_settings->width = '100%'; $table_alert_settings->styleTable = 'margin-bottom: 10px;'; $table_alert_settings->id = 'ITSM-settings-setup'; $table_alert_settings->class = 'databox filters filter-table-adv'; $table_alert_settings->size[0] = '50%'; $table_alert_settings->size[1] = '50%'; // Alert incident title. $table_alert_settings->data[0][0] = html_print_label_input_block( __('Title'), html_print_input_text( 'incident_title', $config['incident_title'], __('Name'), 50, 100, true, false, false ) ); // Alert incident description. $table_alert_settings->rowspan[0][1] = 3; $table_alert_settings->data[0][1] = html_print_label_input_block( __('Ticket body'), html_print_textarea( 'incident_content', 9, 25, $config['incident_content'], '', true ) ); // Alert default group. $table_alert_settings->data[1][0] = html_print_label_input_block( __('Group'), html_print_select( $group_values, 'default_group', $config['default_group'], '', '', 0, true, false, true, '', false ) ); // Alert default owner. $table_alert_settings->data[2][0] = html_print_label_input_block( __('Owner'), html_print_autocomplete_users_from_pandora_itsm( 'default_owner', $config['default_owner'], true, '30', false, false, 'w100p' ), ['div_class' => 'inline'] ); // Alert default incident status. $table_alert_settings->data[3][0] = html_print_label_input_block( __('Status'), html_print_select( $status_values, 'incident_status', $config['incident_status'], '', __('Select'), 0, true, false, true, '', false ) ); // Alert default criticity. $table_alert_settings->data[3][1] = html_print_label_input_block( __('Priority'), html_print_select( $priority_values, 'default_criticity', $config['default_criticity'], '', __('Select'), 0, true, false, true, '', false ) ); // Alert default incident type. $table_alert_settings->data[4][0] = html_print_label_input_block( __('Type'), html_print_select( $object_types_values, 'incident_type', $config['incident_type'], '', __('Select'), 0, true, false, true, '', false ) ); // Custom response settings. $table_cr_settings = new StdClass(); $table_cr_settings->data = []; $table_cr_settings->width = '100%'; $table_cr_settings->styleTable = 'margin-bottom: 10px;'; $table_cr_settings->id = 'ITSM-cr-settings-setup'; $table_cr_settings->class = 'databox filters filter-table-adv'; $table_cr_settings->size[0] = '50%'; $table_cr_settings->size[1] = '50%'; // Custom response incident title. $table_cr_settings->data[0][0] = html_print_label_input_block( __('Title'), html_print_input_text( 'cr_incident_title', $config['cr_incident_title'], __('Name'), 50, 100, true, false, false ) ); // Custom response incident description. $table_cr_settings->rowspan[0][1] = 3; $table_cr_settings->data[0][1] = html_print_label_input_block( __('Ticket body'), html_print_textarea( 'cr_incident_content', 9, 25, $config['cr_incident_content'], '', true ) ); // Custom response default group. $table_cr_settings->data[1][0] = html_print_label_input_block( __('Group'), html_print_select( $group_values, 'cr_default_group', $config['cr_default_group'], '', __('Select'), 0, true, false, true, '', false ) ); // Custom response default owner. $table_cr_settings->data[2][0] = html_print_label_input_block( __('Owner'), html_print_autocomplete_users_from_pandora_itsm( 'cr_default_owner', $config['cr_default_owner'], true, '30', false, false, 'w100p' ), ['div_class' => 'inline'] ); // Custom response default incident status. $row = []; $table_cr_settings->data[3][0] = html_print_label_input_block( __('Status'), html_print_select( $status_values, 'cr_incident_status', $config['cr_incident_status'], '', __('Select'), 0, true, false, true, '', false ) ); // Custom response default criticity. $table_cr_settings->data[3][1] = html_print_label_input_block( __('Priority'), html_print_select( $priority_values, 'cr_default_criticity', $config['cr_default_criticity'], '', __('Select'), 0, true, false, true, '', false ) ); // Custom response default incident type. $table_cr_settings->data[4][0] = html_print_label_input_block( __('Type'), html_print_select( $object_types_values, 'cr_incident_type', $config['cr_incident_type'], '', __('Select'), 0, true, false, true, '', false ) ); // Test. $row = []; $row['control'] = __('Test connection'); $row['control'] .= html_print_button( __('Test'), 'ITSM', false, '', [ 'icon' => 'cog', 'mode' => 'secondary mini', ], true ); $row['control'] .= ''; $row['control'] .= ''; $row['control'] .= ''; $row['control'] .= ' '; $table_remote->data['ITSM_test'] = $row; // Print. echo '
'; echo ''; html_print_image( 'images/pandoraITSM_logo.png', false, ['class' => 'w600px mrgn_top_15px'] ); echo ''; echo '
'; echo '
'; echo __('Pandora ITSM'); echo '
'; echo ''; echo 'https://pandorafms.com/es/itsm/'; echo ''; echo '
'; echo "
"; html_print_input_hidden('update_config', 1); // Form enable. echo '
'; html_print_table($table_enable); echo '
'; // Form remote. echo '
'; echo '
'; echo ''.__('Pandora ITSM API settings').''; html_print_table($table_remote); echo '
'; echo '
'; if ($has_connection != false) { // Form alert default settings. echo '
'; echo '
'; echo ''.__('Alert default values').' '.ui_print_help_icon('alert_macros', true).''; html_print_table($table_alert_settings); echo '
'; echo '
'; // Form custom response default settings. echo '
'; echo '
'; echo ''.__('Event custom response default values').' '.ui_print_help_icon('alert_macros', true).''; html_print_table($table_cr_settings); echo '
'; echo '
'; $update_button = html_print_submit_button( __('Update'), 'update_button', false, ['icon' => 'update'], true ); } else { $update_button = html_print_submit_button( __('Update and continue'), 'update_button', false, ['icon' => 'update'], true ); } html_print_action_buttons($update_button); echo '
'; ui_require_javascript_file('ITSM'); ?>