<?php defined('SYSPATH') or die('No direct access allowed.'); /** * This class supports OSB Web Hosting * * @package Host * @category Models * @author Deon George * @copyright (c) 2009-2013 Open Source Billing * @license http://dev.osbill.net/license.html */ class Model_Host_Server extends ORM_OSB { // Host Server doesnt use the update column protected $_updated_column = FALSE; protected $_serialize_column = array( 'provision_plugin_data', ); /** * Return the object of the product plugin */ public function plugin($type='') { $c = Kohana::classname('Host_Plugin_'.$this->provision_plugin); if (! $this->provision_plugin OR ! class_exists($c)) return NULL; $o = new $c($this); return $type ? $o->$type : $o; } /** * Enable the plugin to update */ public function admin_update() { if (is_null($plugin = $this->plugin())) return NULL; else return $plugin->admin_update(); } public function manage_button($t='') { static $k = ''; // If $k is already set, we've rendered this JS if (! $k) { $k = Random::char(); Session::instance()->set('manage_button',$k); Script::add(array('type'=>'stdin','data'=>' $(document).ready(function() { var x=0; $("button[name=submit]").click(function() { var t=$(this).val().split(":"); if (x++) { alert("Session expired, please refresh the page!"); return false; } $.getJSON("'.URL::link('admin','host/ajaxmanage/'.$this->id,TRUE).'", { k: "'.$k.'",t: t[1] }, function(data) { $.each(data, function(key, val) { $("#"+key+"_"+t[0]+"_"+t[1]).val(val); }); }) .error(function() { alert("There was a problem with the request"); return false; }) .success(function() { $("form[id=id_"+t[0]+"_"+t[1]+"]").submit(); }); }); });' )); } return is_null($this->plugin()) ? '' : $this->plugin()->admin_manage_button($this,$t); } } ?>