false, 'name' => '', 'module' => '', ); public function indexJSON($input, $vars = array()) { return AjaxResponse::I()->refreshPage($this->indexHTML($input, $vars))->toArray(); } public function indexHTML($input, $vars = array()) { $vars['available_submodules'] = custom\dns\Core::getAvailableSubmodules(); $path = main\addon::getMainDIR() . DS . 'mgLibs' . DS . 'custom' . DS . 'cache' . DS . 'storage'; if(!is_writable($path) || !is_readable($path)) { $vars['error'] = str_replace(':path:', $path, main\mgLibs\lang::T('cache_warning')); } return array( 'tpl' => 'main' ,'vars' => $vars ); } public function refreshServersTableJSON($input, $vars = array()) { $rep = new server\Repository(); $helper = new custom\RepoTableHelper($rep, $input); $vars = $helper->getDataTableArray(); foreach($helper->get() as $server) $vars['data'][] = $this->dataTablesParseRow('server-row', array('server' => $server)); return $vars; } public function getModuleConfigurationJSON($input, $vars = array()) { try { $vars['server']['module'] = $input['server_module']; $vars['server']['configuration'] = custom\CoreManager::getConfiguration($input['server_module']); } catch(DNSException $e) { AjaxResponse::I()->addError("Module {$input['server_module']} is unsupported"); } AjaxResponse::I()->html = main\mgLibs\smarty::I()->view('module-configuration', $vars, main\addon::getModuleTemplatesDir().DS.'pages' . DS . 'servers' . DS . 'modal'); return AjaxResponse::I()->toArray(); } public function testConnectionJSON($input, $vars = array()) { try { custom\CoreManager::testConnection($input['server_module_test'], $input['conf']); AjaxResponse::I()->addInfo("connection_success"); } catch(custom\dns\exceptions\DNSSubmoduleException $e) { AjaxResponse::I()->addRawError($e->getMessage()); } catch(custom\dns\exceptions\DNSException $e) { AjaxResponse::I()->addError('module_is_unsupported', array(':module:' => $input['server_module'])); } return AjaxResponse::I()->toArray(); } public function addServerJSON($input, $vars = array()) { $vars['server'] = $this->form; $vars['available_submodules'] = custom\dns\Core::getAvailableSubmodules(); AjaxResponse::I()->modal('server', $vars); return AjaxResponse::I()->toArray(); } public function editServerJSON($input, $vars = array()) { $server = new server\Server($input['id']); $form = $this->form; $form['edit'] = true; $form['id'] = $server->id; $form['name'] = $server->name; $form['module'] = $server->module; $form['configuration'] = custom\CoreManager::getConfiguration($server->module); foreach($form['configuration'] as $key => &$arr) { $arr['value'] = $server->getModuleConfiguration($key); } foreach($server->getNameservers() as $nameserver) { $form['nameserver'][$nameserver->index] = $nameserver->toArray(false); } $form['setting'] = array(); foreach($server->getSettings() as $k => $v) { $form['setting'][$k] = $v->value; } $vars['server'] = $form; $vars['available_submodules'] = custom\dns\Core::getAvailableSubmodules(); $vars['configuration_html'] = main\mgLibs\smarty::I()->view('module-configuration', $vars, main\addon::getModuleTemplatesDir().DS.'pages' . DS . main\addon::I()->page . DS . 'modal'); AjaxResponse::I()->modal('server', $vars); return AjaxResponse::I()->toArray(); } public function serverSaveJSON($input, $vars = array()) { if(empty($input['server_module'])) { AjaxResponse::I()->addError('server_module_cannot_be_empty'); return AjaxResponse::I()->toArray(); } $server = new server\Server($input['id']?:false); $input['id']? '' : $server->status = 0; $server->module = $input['server_module']; $server->name = $input['name']; $server->save(); foreach($input['ns'] as $k => $v) { $server->setNameserver($k, $v['name'], $v['ip']); } $server->setSetting(server\setting\ServerSettingEnum::MODULE_CONFIGURATION, serialize($input['conf'])); foreach($input['setting'] as $k => $v) { $server->setSetting($k, $v); } AjaxResponse::I()->refreshPage($this->indexHTML($input, $vars)); if($input['id']) { AjaxResponse::I()->addInfo('changes_saved'); } else { AjaxResponse::I()->addInfo('new_server_added'); } return AjaxResponse::I()->toArray(); } public function deleteServerJSON($input, $vars = array()) { $server = new server\Server($input['id']); if(pserver\Repository::factory()->byServerID($server->id)->count() > 0) { return AjaxResponse::I()->addError('this_server_is_already_in_use_by_some_packages')->toArray(); } if(zone\Repository::factory()->byServerID($server->id)->count() > 0) { return AjaxResponse::I()->addError('there_are_zones_on_this_server')->toArray(); } $server->delete(); AjaxResponse::I()->addInfo('server_removed'); return AjaxResponse::I()->toArray(); } public function turnOnServerJSON($input, $vars = array()) { server\Server::factory($input['id'])->turnOn(); AjaxResponse::I()->addInfo('server_turned_on'); return AjaxResponse::I()->toArray(); } public function turnOffServerJSON($input, $vars = array()) { server\Server::factory($input['id'])->turnOff(); AjaxResponse::I()->addInfo('server_turned_off'); return AjaxResponse::I()->toArray(); } }