public function __construct(UserService $userService, CampaignService $campaignService)
 {
     $this->columnModel = array(array('label' => 'Campaigns', 'width' => 300, 'table' => 'campaign', 'id' => 'name', 'alias' => 'campaigns', 'searchType' => 'select', 'svalues' => $userService->getCampaignListForSelectFilter()), array('label' => 'Country', 'width' => 300, 'table' => 'campaign_country', 'id' => 'id', 'alias' => 'country', 'searchType' => 'select', 'svalues' => $userService->getCountryListForMultiSelectFilter(), 'editable' => true, 'edittype' => 'multiselect', 'editvalues' => $userService->getCountryIdsForSelectFilter()), array('label' => 'Platform', 'width' => 300, 'table' => 'campaign_platform', 'alias' => 'platforms', 'id' => 'platform_id', 'searchType' => 'select', 'svalues' => $userService->getPlatformListForSelectFilter(), 'editable' => true, 'edittype' => 'multifind', 'editvalues' => $userService->getPlatformIdsForSelectFilter(), 'multiple' => false, 'type' => 'select'));
     $this->rawQueryParamFields = array(array('field' => 'campaigns', 'type' => 'multiselect', 'sort' => false, 'queryOp' => 'inclusive', 'dbField' => 'campaign.id'), array('field' => 'country', 'type' => 'multiselect', 'sort' => false, 'queryOp' => 'inclusive', 'dbField' => 'campaign_country.country_id'), array('field' => 'platforms', 'type' => 'multiselect', 'sort' => false, 'queryOp' => 'inclusive', 'dbField' => 'campaign_platform.platform_id'));
     $this->url = route('campaign-api');
     $this->connectionName = 'ott';
     $this->customNavButtons = array('exportCsv');
     parent::__construct($userService);
     $this->grid->setSortName('id')->setMultiselect(true)->setSortOrder('ASC')->setInlineNavOptions(['editParams' => ['restoreAfterError' => false, 'successfunc' => new Expr('
                     function(response){
                         if(response.responseJSON.success){
                             toastr.success("Campaign updated");
                             jQuery("' . $this->grid->getGridIdentifier() . '").trigger("reloadGrid");
                         } else {
                             jQuery.each(jQuery.parseJSON(response.responseJSON.message), function( index, value ) {
                                 toastr.error(value);
                             });
                             return false;
                         }
                     }
                 ')]])->setEditUrl($this->url);
 }