0

I have a question. I need to make PHP Request to my FelexAjax Function in vTiger, can anybody help?

This is my code: MenuReorder.php

class Settings_FlexSuite_MenuReorder_Action extends Settings_Vtiger_Basic_Action {

    public function process(Vtiger_Request $request) {
        $adb = \PearDatabase::getInstance();
        $modules = \FlexSuite\VtUtils::getEntityModules(true);
        echo json_encode($modules);
    }

    public function validateRequest(Vtiger_Request $request) {
        $request->validateWriteAccess();
    }
}

This is my code: MenuEditor.js

$( document ).ready(function() {

    FlexAjax("FlexSuite").postSettingsAction("MenuReorder", { parameter1:value1 }, "json").then(function(response) {
        var RecordLabel = response.label;
    });

});

1 Answers1

2

Use the following code: PHP Side:

class Settings_FlexSuite_MenuReorder_Action extends Settings_Vtiger_Basic_Action {

    public function checkPermission(Vtiger_Request $request)        {
        $currentUser = Users_Record_Model::getCurrentUserModel();
        if(!$currentUser->isAdminUser()) {
            throw new AppException(vtranslate('LBL_PERMISSION_DENIED', 'Vtiger'));
        }
    }

    public function process(Vtiger_Request $request) {
        $adb = \PearDatabase::getInstance();
        $modules = \FlexSuite\VtUtils::getEntityModules(true);
        $response = new Vtiger_Response();
        $response->setResult($modules);
        $response->emit();
    }

}

Java Script Code:

$( document ).ready(function() {
    params = {
        data: {
            module: 'FlexSuite',
            parent: 'Settings',
            action: 'MenuReorder',
        }
    };
    app.helper.showProgress();
    app.request.post(params).then(function(error, data) {
        app.helper.hideProgress();
        if(error === null) {
            var RecordLabel = data.label;
            app.helper.showSuccessNotification({message: RecordLabel});
        }
    });
});
Hamid
  • 378
  • 3
  • 8