aapis
aapis

Reputation: 33

Joomla custom admin button actions

I have no idea why this doesn't work, but none of my custom button actions (tasks) do anything in my component. In my view.html.php file I have:

JToolBarHelper::custom('reports.export_csv', 'csv', '', 'CSV', false);
JToolBarHelper::custom('reports.export_mailchimp', 'mailchimp', '', 'Mailchimp', false);

Then in my ReportsControllerReports file I have 2 methods (not just 2, there are some others but they aren't relevant), export_csv() and export_mailchimp(). Whenever I click the buttons I get a JS error which I assume is preventing the action from executing the code in those methods. Something about "b is undefined". I cannot find any differences between my code and that used in other Joomla (core) components, so if anyone could shed some light on this issue it would be greatly appreciated (as usual, the Joomla forums are totally useless).

Upvotes: 0

Views: 4574

Answers (2)

Goran Usljebrka
Goran Usljebrka

Reputation: 854

@Cfyzz solution works.

I added this to view file:

<script type="text/javascript">

    Joomla.submitbutton = function(pressbutton) {
        switch(pressbutton) {
            case 'google':

                window.location = '<?=JRoute::_( 'http://google.com', false );?>';

            break;
            case 'stackoverflow':

                window.location = '<?=JRoute::_( 'http://stackoverflow.com', false );?>';

            break;
        }

    }
</script>

and this in view.html.php

JToolBarHelper::cancel('stackoverflow', 'Go Overflow');
JToolBarHelper::custom('google', 'checkin', '', 'Go Google', false);

Obviously you dont have to use "JRoute::_(" in this situation. I replaced inner links with 2 samples so it`s easier to understand.

Upvotes: 6

Cfyzz
Cfyzz

Reputation: 11

You should override the Joomla's JS framework behavour
You should use the function in your custom JS file:
Joomla.submitbutton = function(pressbutton) {
switch(pressbutton) {
case 'export_cvs':
URL = JURI::base.'index.php?option=yourController&task=export_cvs&....
$.ajax({
url: URL, type: post, etc });
}
}

In my component everytrhing is ok and working properly

Upvotes: 0

Related Questions