How to override the onclick for SearchForm to specific action Sugarcrm

1.6k views Asked by At

i have created a controller with action subscribers

like this

class LeadsController extends SugarController
{
public function action_subscriber()
{   
    $this->view = 'sub';     
}  
}

and i have added a button callled as subscribers in my search form

now on click on that button if i want to make search happen so i am calling SUGAR.savedViews.setChooser(); SUGAR.ajaxUI.submitForm(this.form); this two function in SearchFormGeneric.tpl

<input tabindex='2' title='go_select' id='go_select_b' ondblclick="SUGAR.savedViews.setChooser(); SUGAR.ajaxUI.submitForm(this.form);" class='button' type='button' name='subscriber' value='Subscriber'/>

but when i click on the button its going to

module=Leads&action=index

i have my logic written in action called subscriber , so when i click on my custom button it should search with .

module=Leads&action=subscriber

so how can i change the action on click of "SUGAR.savedViews.setChooser(); SUGAR.ajaxUI.submitForm(this.form); this function

Search with this SUGAR.ajaxUI.submitForm(document.forms[‘DetailView’]); on post

i found one post related to this and i tried some thing like this SUGAR.ajaxUI.submitForm(document.forms[‘SubView’]);, but it did not work.

other post related to this

please can any one guide me on this ????

1

There are 1 answers

0
Abhi Adr On BEST ANSWER

finally got the solution , so what we where trying was based on custom button on search view we were trying to modify the search .

so , go to search view under : suitecrm/custom/include/SearchForm/tpls/SearchFormGeneric.tpl

and add the button

{if $module eq 'o_order'}
    <input tabindex='2' title='Subscribers' id='get_report' onclick ="SUGAR.ajaxUI.submitForm(this.form);" class='button' type='submit' name='button' value='Subscribers'/>
{/if}

and put the condition under the method where we are generating the list based in search condition

go to : suitecrm/custom/modules/o_order/views/view.list.php

the function which is generating the list data based on query is listViewProcess()

    public function listViewProcess()        // genrating listview 
{
    $this->processSearchForm();
    $this->lv->searchColumns = $this->searchForm->searchColumns;
    if(!$this->headers)
        return;
    if(empty($_REQUEST['search_form_only']) || $_REQUEST['search_form_only'] == false){
        $this->lv->ss->assign("SEARCH",true);
        $this->lv->setup($this->seed, 'include/ListView/ListViewGeneric.tpl', $this->where, $this->params);
        $savedSearchName = empty($_REQUEST['saved_search_select_name']) ? '' : (' - ' . $_REQUEST['saved_search_select_name']);
        $configObject = new Configurator();
        $configObject->loadConfig();
        $configObject->config['save_query'] = 'no';
        $configObject->saveConfig();
        echo $this->lv->display();
        if($_REQUEST['button']=='Subscriber'){
            $this->getpdf($this->where);
        }
    }
}

so we are passing the search condition to getpdf() function as parameter

that's it do repair and rebuild from the admin log in and you can see the changes .

hope this helps some one !