@@ -720,23 +720,27 @@ impl Dms {
720720 }
721721 let mut page = Page :: new ( ) ;
722722 self . title ( View :: Control , & mut page. frag :: < html:: Div > ( ) ) ;
723+ self . render_state_row ( anc, & mut page. frag :: < html:: Div > ( ) ) ;
724+ self . render_current_msg ( anc, & mut page. frag :: < html:: Div > ( ) ) ;
723725 let mut div = page. frag :: < html:: Div > ( ) ;
724- div. class ( "row fill" ) ;
726+ div. class ( "info fill" )
727+ . cdata_len ( opt_ref ( & self . location ) , 64 )
728+ . close ( ) ;
729+ self . message_composer_html ( anc, & mut page. frag :: < html:: Div > ( ) ) ;
730+ self . action_plans_html ( anc, & mut page. frag :: < html:: Details > ( ) ) ;
731+ String :: from ( page)
732+ }
733+
734+ /// Render item state row as an HTML div element
735+ fn render_state_row < ' p > ( & self , anc : & DmsAnc , div : & ' p mut html:: Div < ' p > ) {
736+ div. id ( "state_row" ) . class ( "row fill" ) ;
725737 self . item_states ( anc) . tooltips ( & mut div. span ( ) ) ;
726738 if let Some ( lock) = & self . lock
727739 && let Some ( expires) = lock. expires ( )
728740 {
729741 div. span ( ) . cdata ( expires) ;
730742 }
731743 div. close ( ) ;
732- self . render_current_msg ( anc, & mut page. frag :: < html:: Div > ( ) ) ;
733- div = page. frag :: < html:: Div > ( ) ;
734- div. class ( "info fill" )
735- . cdata_len ( opt_ref ( & self . location ) , 64 )
736- . close ( ) ;
737- self . message_composer_html ( anc, & mut page. frag :: < html:: Div > ( ) ) ;
738- self . action_plans_html ( anc, & mut page. frag :: < html:: Details > ( ) ) ;
739- String :: from ( page)
740744 }
741745
742746 /// Render current message as an HTML div element
@@ -1421,6 +1425,12 @@ impl Card for Dms {
14211425
14221426 /// Handle updating a card in response to an SSE notification
14231427 fn handle_update ( & self , anc : DmsAnc ) {
1428+ if let Some ( state_row) = Doc :: get ( ) . try_elem :: < HtmlElement > ( "state_row" )
1429+ {
1430+ let mut page = Page :: new ( ) ;
1431+ self . render_state_row ( & anc, & mut page. frag :: < html:: Div > ( ) ) ;
1432+ state_row. set_outer_html ( & String :: from ( page) ) ;
1433+ }
14241434 if let Some ( sign_msg) = Doc :: get ( ) . try_elem :: < HtmlElement > ( "sign_msg" ) {
14251435 let mut page = Page :: new ( ) ;
14261436 self . render_current_msg ( & anc, & mut page. frag :: < html:: Div > ( ) ) ;
0 commit comments