You are here

public function InstapageCmsPluginAjaxController::doAction in Instapage plugin 8.3

Same name and namespace in other branches
  1. 7.3 core/InstapageCmsPluginAjaxController.php \InstapageCmsPluginAjaxController::doAction()

Executes an action set in the request.

Parameters

string $action Action to execute.:

mixed $data Data passed to action.:

File

core/InstapageCmsPluginAjaxController.php, line 31

Class

InstapageCmsPluginAjaxController
Main controller for AJAX actions. Results are returned as encoded JSON objects. Data for actions are stored in $_POST['data'] table.

Code

public function doAction($action, $data = null) {
  InstapageCmsPluginHelper::writeDiagnostics($action, 'AJAX Action');
  if (!InstapageCmsPluginConnector::currentUserCanManage()) {
    echo InstapageCmsPluginHelper::formatJsonMessage(InstapageCmsPluginConnector::lang('You don\'t have permission to perform that action.'), 'ERROR');
    exit;
  }
  switch ($action) {
    case 'loginUser':
      $this
        ->loginUser();
      break;
    case 'getApiTokens':
      $this
        ->getApiTokens();
      break;
    case 'connectSubAccounts':
      $subaccount = InstapageCmsPluginSubaccountModel::getInstance();
      $subaccount
        ->setSubAccountsStatus('connect');
      break;
    case 'disconnectSubAccounts':
      $subaccount = InstapageCmsPluginSubaccountModel::getInstance();
      $subaccount
        ->setSubAccountsStatus('disconnect');
      break;
    case 'disconnectAccountBoundSubaccounts':
      $subaccount = InstapageCmsPluginSubaccountModel::getInstance();
      $subaccount
        ->disconnectAccountBoundSubaccounts();
      break;
    case 'getAccountBoundSubAccounts':
      $subaccount = InstapageCmsPluginSubaccountModel::getInstance();
      $subaccount
        ->getAccountBoundSubAccounts();
      break;
    case 'updateOptions':
      if (InstapageCmsPluginHelper::updateOptions($data) !== false) {
        echo InstapageCmsPluginHelper::formatJsonMessage(InstapageCmsPluginConnector::lang('Configuration updated'), 'OK');
      }
      else {
        echo InstapageCmsPluginHelper::formatJsonMessage(InstapageCmsPluginConnector::lang('There was an error during configuration save'), 'ERROR');
      }
      break;
    case 'getOptions':
      echo json_encode((object) array(
        'status' => 'OK',
        'data' => InstapageCmsPluginHelper::getOptions(),
      ));
      break;
    case 'getLog':
      $this
        ->getLog();
      break;
    case 'clearLog':
      $log = InstapageCmsPluginDebugLogModel::getInstance();
      $log
        ->clear();
      echo InstapageCmsPluginHelper::formatJsonMessage(InstapageCmsPluginConnector::lang('Log cleared'), 'OK');
      break;
    case 'getMasterToken':
      $this
        ->getMasterToken();
      break;
    case 'loadListPages':
      $this
        ->loadListPages();
      break;
    case 'loadEditPage':
      $this
        ->loadEditPage();
      break;
    case 'getLandingPages':
      $this
        ->getLandingPages();
      break;
    case 'getStats':
      $this
        ->getStats();
      break;
    case 'publishPage':
      $this
        ->publishPage();
      break;
    case 'deletePage':
      $this
        ->deletePage();
      break;
    case 'loadSettings':
      echo json_encode((object) array(
        'status' => 'OK',
        'html' => InstapageCmsPluginHelper::loadTemplate('settings', false),
        'initialData' => InstapageCmsPluginHelper::getOptions(),
      ));
      break;
    case 'getProhibitedSlugs':
      $data = InstapageCmsPluginConnector::getSelectedConnector()
        ->getProhibitedSlugs();
      echo json_encode((object) array(
        'status' => 'OK',
        'data' => $data,
      ));
      break;
    case 'isProhibitedSlug':
      $data = InstapageCmsPluginConnector::getSelectedConnector()
        ->isProhibitedSlug($data);
      echo json_encode((object) array(
        'status' => 'OK',
        'data' => $data,
      ));
      break;
    case 'validateToken':
      $this
        ->validateToken();
      break;
    case 'migrateDeprecatedData':
      $data = InstapageCmsPluginConnector::getSelectedConnector()
        ->getDeprecatedData();
      $page = InstapageCmsPluginPageModel::getInstance();
      $raport = $page
        ->migrateDeprecatedData($data);
      $raportStr = implode('<br />', $raport);
      echo InstapageCmsPluginHelper::formatJsonMessage($raportStr);
      break;
    default:
      echo InstapageCmsPluginHelper::formatJsonMessage(InstapageCmsPluginConnector::lang('Unsupported InstapageCmsPluginAjaxController action'), 'ERROR');
  }
}