CLASS ztf_handler DEFINITION PUBLIC FINAL CREATE PUBLIC. PUBLIC SECTION. INTERFACES if_http_extension. PROTECTED SECTION. TYPES t_sap_tables TYPE STANDARD TABLE OF dd02t WITH EMPTY KEY. DATA path TYPE string. DATA searched_string TYPE string. DATA page TYPE i. METHODS html_page RETURNING VALUE(html) TYPE string. METHODS html_shellbar RETURNING VALUE(html) TYPE string. METHODS html_searchbar RETURNING VALUE(html) TYPE string. METHODS html_table RETURNING VALUE(html) TYPE string. METHODS html_table_rows RETURNING VALUE(html) TYPE string. METHODS sap_table_getcount RETURNING VALUE(count) TYPE i. METHODS sap_table_getlist RETURNING VALUE(sap_tables) TYPE t_sap_tables. PRIVATE SECTION. ENDCLASS. CLASS ztf_handler IMPLEMENTATION. METHOD if_http_extension~handle_request. IF server->request->get_header_field( if_http_header_fields_sap=>request_method ) = `GET`. me->path = server->request->get_header_field( if_http_header_fields_sap=>path_translated_expanded ). me->searched_string = escape( val = server->request->get_form_field( `q` ) format = cl_abap_format=>e_html_text ). IF server->request->get_header_field( `hx-request` ) IS INITIAL. server->response->append_cdata( html_page( ) ). server->response->append_cdata( html_shellbar( ) ). server->response->append_cdata( html_searchbar( ) ). server->response->append_cdata( html_table( ) ). ELSE. CASE server->request->get_header_field( `app-action` ). WHEN `search`. server->response->append_cdata( html_table( ) ). WHEN `search_init`. CLEAR searched_string. server->response->append_cdata( html_searchbar( ) ). server->response->append_cdata( html_table( ) ). WHEN `scroll`. page = server->request->get_header_field( `app-page` ). server->response->append_cdata( html_table_rows( ) ). ENDCASE. ENDIF. server->response->set_status( code = 200 reason = if_http_status=>reason_200 ). server->response->set_content_type( `text/html` ). ENDIF. ENDMETHOD. METHOD html_page. CONCATENATE `https://sap.github.io/fundamental-styles/` `theming-base-content/content/Base/baseLib/baseTheme/fonts` INTO DATA(fonts_url). CONCATENATE `` `` `
` `` `` `` 'Table'(tab) `` `` table_count `` `` ` | ` `` 'Description'(des) ` | ` `
---|