Skip to content

Commit d0d524e

Browse files
352: post with websocket (#556)
1 parent a993d79 commit d0d524e

File tree

2 files changed

+36
-47
lines changed

2 files changed

+36
-47
lines changed

src/00/z2ui5_cl_demo_app_352.clas.abap

Lines changed: 22 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,10 @@ CLASS z2ui5_cl_demo_app_352 DEFINITION PUBLIC.
2121

2222
METHODS z2ui5_on_event.
2323
METHODS z2ui5_on_render.
24+
METHODS z2ui5_display_popover.
2425

2526
PRIVATE SECTION.
2627

27-
METHODS distribute_news
28-
IMPORTING
29-
i_news TYPE z2ui5_cl_demo_app_352=>t_news.
30-
METHODS z2ui5_display_popover.
31-
3228
ENDCLASS.
3329

3430

@@ -58,14 +54,6 @@ CLASS z2ui5_cl_demo_app_352 IMPLEMENTATION.
5854
DATA: news TYPE z2ui5_cl_demo_app_352=>t_news.
5955

6056
CASE client->get( )-event.
61-
WHEN `SEND`.
62-
63-
news = VALUE t_news( text = news_input
64-
author = author_input ).
65-
distribute_news( news ).
66-
67-
CLEAR: news_input.
68-
6957
WHEN `CLEAR`.
7058

7159
CLEAR: news_list.
@@ -105,7 +93,10 @@ CLASS z2ui5_cl_demo_app_352 IMPLEMENTATION.
10593

10694
form->feed_input(
10795
value = client->_bind_edit( news_input )
108-
post = client->_event( 'SEND' ) ).
96+
post = client->_event_client(
97+
val = `Z2UI5`
98+
t_arg = VALUE #( ( `feedInputPost` ) )
99+
) ).
109100

110101
form->label( text = `Author`
111102
)->input( value = client->_bind_edit( author_input )
@@ -150,37 +141,31 @@ CLASS z2ui5_cl_demo_app_352 IMPLEMENTATION.
150141
` } else if (msg.data === '` && z2ui5_cl_demo_app_352_ws=>c_msg-__closed__ && `') {` &&
151142
` data.XX.CONNECTIONS -= 1;` &&
152143
` } else {` &&
153-
` data.XX.NEWS_LIST.push(JSON.parse(msg.data).NEWS_ITEM);` &&
144+
` data.XX.NEWS_LIST.push(JSON.parse(msg.data));` &&
154145
` }` &&
155146
` model.setData(data);` &&
156147
` };` &&
157148
` ws.onclose = (msg)=>{};` &&
158149
`})()` ).
159-
ENDIF.
160-
161-
client->view_display( view->stringify( ) ).
162-
163-
ENDMETHOD.
164-
165-
166150

167-
METHOD distribute_news.
168-
169-
IF i_news-text IS INITIAL.
170-
RETURN.
151+
view->_generic( name = `script`
152+
ns = `html`
153+
)->_cc_plain_xml(
154+
`z2ui5.feedInputPost = () => { ` &&
155+
` const model = z2ui5.oView.getModel();` &&
156+
` const data = model.getData();` &&
157+
` ws.send(JSON.stringify({ ` &&
158+
` TEXT : data.XX.NEWS_INPUT,` &&
159+
` AUTHOR : data.XX.AUTHOR_INPUT ` &&
160+
` }));` &&
161+
` setTimeout( () => { ` &&
162+
` data.XX.NEWS_INPUT = "";` &&
163+
` model.setData(data);` &&
164+
` }, 10 ); ` &&
165+
`}` ).
171166
ENDIF.
172167

173-
TRY.
174-
INSERT i_news INTO TABLE news_list.
175-
176-
z2ui5_cl_demo_app_352_ws=>send( z2ui5_cl_ajson=>create_empty( ii_custom_mapping = z2ui5_cl_ajson_mapping=>create_upper_case( )
177-
)->set( iv_path = `NEWS_ITEM`
178-
iv_val = i_news
179-
)->stringify( ) ).
180-
181-
CATCH cx_root INTO DATA(error).
182-
RAISE SHORTDUMP error.
183-
ENDTRY.
168+
client->view_display( view->stringify( ) ).
184169

185170
ENDMETHOD.
186171

src/00/z2ui5_cl_demo_app_352_ws.clas.abap

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,9 @@ CLASS z2ui5_cl_demo_app_352_ws DEFINITION PUBLIC
33

44
PUBLIC SECTION.
55

6-
CLASS-METHODS:
7-
send
8-
IMPORTING
9-
i_message TYPE string
10-
RAISING
11-
cx_amc_error,
12-
13-
get_active_connections
14-
RETURNING
15-
VALUE(result) TYPE i.
6+
CLASS-METHODS: get_active_connections
7+
RETURNING
8+
VALUE(result) TYPE i.
169

1710
METHODS:
1811
if_apc_wsp_extension~on_message REDEFINITION,
@@ -33,6 +26,11 @@ CLASS z2ui5_cl_demo_app_352_ws DEFINITION PUBLIC
3326
get_producer
3427
RETURNING
3528
VALUE(producer) TYPE REF TO if_amc_message_producer_text
29+
RAISING
30+
cx_amc_error,
31+
send
32+
IMPORTING
33+
i_message TYPE string
3634
RAISING
3735
cx_amc_error.
3836

@@ -52,6 +50,12 @@ CLASS z2ui5_cl_demo_app_352_ws IMPLEMENTATION.
5250

5351
METHOD if_apc_wsp_extension~on_message.
5452

53+
TRY.
54+
send( i_message->get_text( ) ).
55+
CATCH cx_root INTO DATA(error).
56+
RAISE SHORTDUMP error.
57+
ENDTRY.
58+
5559
ENDMETHOD.
5660

5761

0 commit comments

Comments
 (0)