Search code examples
dotnetnuke-module2sxc

Add custom button to 2sxc toolbar for dnn


What is the easiest way to add a custom button to toolbar, with access to content item? I already check : Toolbar item for delete - for 2sxc module But because delete is not possible with already defined buttons, I like to make my own button.


Solution

  • As of now there is no official way to do this. It's easy, but since not official, it could break one day.

    Basically all the buttons are provided from here: https://github.com/2sic/2sxc/blob/master/src/inpage/2sxc._actions.js

    As you can see, there is a function $2sxc._actions.create which will get all the actions possible for something, based on what that something is. So you could either

    1. Overwrite the _actions.create
    2. in your module-specific 2sxc-object - the one given by $2sxc(moduleid) - you could change the actions (but this would be tricky in terms of timing)
    3. change the
    4. setup which contains all the buttons after the toolbars are built, to add yours
    5. build an "official" way to add buttons and sync it with the core team to get it into the client-api
    6. develop the delete function yourself, the main issue here is that often you'll get a "failed-because-in-use", in which case you would have to ask the user if they want to force-delete-it, and if yes, send the second webapi-call with force-delete. You can see how this is done in the normal EAV-entities-management, as that is implemented there using a toastr