@@ -109,7 +109,7 @@ qx.Class.define("osparc.conversation.MessageUI", {
109109 column : isMyMessage ? 0 : 2 ,
110110 } ) ;
111111 break ;
112- case "edit-options- menu-button" : {
112+ case "menu-button" : {
113113 const buttonSize = 22 ;
114114 control = new qx . ui . form . MenuButton ( ) . set ( {
115115 width : buttonSize ,
@@ -164,8 +164,50 @@ qx.Class.define("osparc.conversation.MessageUI", {
164164 this . getChildControl ( "spacer" ) ;
165165
166166 if ( this . self ( ) . isMyMessage ( this . __message ) ) {
167- this . getChildControl ( "edit-options-menu-button" ) ;
167+ const menuButton = this . getChildControl ( "menu-button" ) ;
168+
169+ const menu = new qx . ui . menu . Menu ( ) . set ( {
170+ position : "bottom-right" ,
171+ } ) ;
172+ menuButton . setMenu ( menu ) ;
173+
174+ const editButton = new qx . ui . menu . Button ( this . tr ( "Edit..." ) ) ;
175+ editButton . addListener ( "execute" , ( ) => this . __editMessage ( ) , this ) ;
176+ menu . add ( editButton ) ;
177+
178+ const deleteButton = new qx . ui . menu . Button ( this . tr ( "Delete..." ) ) ;
179+ deleteButton . addListener ( "execute" , ( ) => this . __deleteMessage ( ) , this ) ;
180+ menu . add ( deleteButton ) ;
168181 }
169- }
182+ } ,
183+
184+ __editMessage : function ( ) {
185+ const messageContent = this . getChildControl ( "message-content" ) ;
186+ const editDialog = new osparc . ui . dialog . EditMessageDialog ( this . __message , messageContent . getValue ( ) ) ;
187+ editDialog . addListener ( "messageEdited" , e => {
188+ messageContent . setValue ( e . getData ( ) ) ;
189+ this . fireDataEvent ( "messageEdited" , e . getData ( ) ) ;
190+ } ) ;
191+ editDialog . open ( ) ;
192+ } ,
193+
194+ __deleteMessage : function ( ) {
195+ const win = new osparc . ui . window . Confirmation ( this . tr ( "Delete message?" ) ) . set ( {
196+ caption : this . tr ( "Delete" ) ,
197+ confirmText : this . tr ( "Delete" ) ,
198+ confirmAction : "delete" ,
199+ } ) ;
200+ win . open ( ) ;
201+ win . addListener ( "close" , ( ) => {
202+ if ( win . getConfirmed ( ) ) {
203+ console . log ( this . __message ) ;
204+ osparc . study . Conversations . deleteMessage ( this . __message [ "studyId" ] , this . __message [ "conversationId" ] , this . __message [ "messageId" ] )
205+ . then ( data => {
206+ this . fireDataEvent ( "commentAdded" , data ) ;
207+ osparc . FlashMessenger . logAs ( this . tr ( "Message deleted" ) , "INFO" ) ;
208+ } ) ;
209+ }
210+ } ) ;
211+ } ,
170212 }
171213} ) ;
0 commit comments