Author Topic: 2 questions about toolbars - enable/disable and listeners  (Read 1265 times)

Rimokas

  • Pro Enterprise
  • Newbie
  • *
  • Posts: 32
    • View Profile
2 questions about toolbars - enable/disable and listeners
« on: September 21, 2021, 06:14:11 pm »
Hi,

have some problems with toolbars.

1-st - Exist possibility to enable/disable toolbar buttons, like in the contextMenu? In contextMenu is option "disabled" - so I can control this. How to control buttons in toolbar for conditions from record ?

2-nd - I'm formatting toolbar from database table with php ... It return object of items. One problem, from php return as json object. So javascript function name in object for listener is as string, for example - listener: { click: "grid_gen" } . Then to click on this button, it runs here ( from 6773 line )
Code: [Select]
_onEvent: function(e, n, r) {
return function(i) {
var o = r.type;
"checkbox" == o ? r.value = t(i.target).prop("checked") : r.value = t(i.target).val(), n.call( e, i ), "file" == o && t(this).val("")
}
},

It fails in n.call() . I tried, to change it to "window[ n ].call( e, i )" . Then it run ... But if in function have confirmation or other dialogs it not run ...

How to run own function from string as I wanna ? How to override "listener" methods ?

Or maybe I something don't understanding, how to work with toolbars ...  :-\. Sorry, but documnetation and samples not helped to me ... 

Thanks ...


paramvir

  • Administrator
  • Hero Member
  • *****
  • Posts: 6310
    • View Profile
Re: 2 questions about toolbars - enable/disable and listeners
« Reply #1 on: September 21, 2021, 10:27:53 pm »
1. Add options.disabled: true to the toolbar control

Code: [Select]
options:{
disabled: true
},

2. use

Code: [Select]
listener: obj["grid_gen"]

where

Code: [Select]
var obj = {grid_gen: function(){
  ...
}}

Rimokas

  • Pro Enterprise
  • Newbie
  • *
  • Posts: 32
    • View Profile
Re: 2 questions about toolbars - enable/disable and listeners
« Reply #2 on: September 21, 2021, 11:46:08 pm »
Thanks for the answers! :)

with the second - I did what you directed ... but it's not working with confirmation dialog "Yes" or "No" .
I added jpg picture ... In debugger you can see that direction to function exist ... until confirm . It not appears ...  :-\
It return nothing - no error, no reaction ... :(  How to solve that ?

confirm - jqueryui dialog with defered :
Code: [Select]
window.confirm = function( message_confirm )
{
   var defer = $.Deferred();
   $( '<div/>', { title: 'Question!', 'class': 'confirm', 'id': 'dialogconfirm', text: message_confirm } )
   .dialog(
   {
      buttons:
      {
         Taip: function()
         {
            defer.resolve( "yes" )
            $( this ).attr( 'yesno', true)
            $( this ).dialog( 'close' )
         },
         Ne: function()
         {
            defer.resolve( "no" )
            $( this ).attr( 'yesno', false )
            $( this ).dialog( 'close' )
         }
     },
     close: function()
     {
       if ( $( this ).attr( 'yesno' ) === undefined )
       {
           defer.resolve( "no" )
       }
       $( this ).remove()
     },
     draggable: true,
     modal    : true,
     resizable: false,
     width    : 'auto',
     hide     : { effect: "fade", duration: 300 }
  })
  return defer.promise()
}

Rimokas

  • Pro Enterprise
  • Newbie
  • *
  • Posts: 32
    • View Profile
Re: 2 questions about toolbars - enable/disable and listeners
« Reply #3 on: September 22, 2021, 12:48:25 am »
Ok, I solved dialog problem with another popup solution - it's working ...

Thank you!  ;D