TRUE, 'list'=>TRUE, 'update'=>TRUE, 'view'=>TRUE, ); public function action_ajaxtranslateform() { $this->auto_render = FALSE; $po = ORM::factory('Product',$this->request->param('id')); if (! $this->request->is_ajax() OR ! $po->loaded() OR ! isset($_REQUEST['key'])) $this->response->body(_('Unable to find translate data')); else { $pto = $po->product_translate->where('language_id','=',$_REQUEST['key'])->find(); $this->response->body(View::factory($this->viewpath())->set('pto',$pto)); } } /** * Show a list of products */ public function action_list() { if ($this->request->param('id')) $prods = ORM::factory('Product_Category',$this->request->param('id'))->products(); else $prods = ORM::factory('Product')->order_by('status DESC,prod_plugin_file')->find_all(); Block::add(array( 'title'=>_('Customer Products'), 'body'=>Table::display( $prods, 25, array( 'id'=>array('label'=>'ID','url'=>URL::link('admin','product/view/')), 'name()'=>array('label'=>'Details'), 'status'=>array('label'=>'Active'), 'prod_plugin_file'=>array('label'=>'Plugin Name'), 'prod_plugin_data'=>array('label'=>'Plugin Data'), 'price_type'=>array('label'=>'Price Type'), 'taxable'=>array('label'=>'Taxable'), 'count_services()'=>array('label'=>'Services'), 'count_invoices()'=>array('label'=>'Invoices'), ), array( 'page'=>TRUE, 'type'=>'select', 'form'=>URL::link('admin','product/view'), )), )); } /** * Edit a product configuration */ public function action_update() { $po = ORM::factory('Product',$this->request->param('id')); if (! $po->loaded()) HTTP::redirect('welcome/index'); if ($_POST) { if (isset($_POST['product_translate']['id']) AND ($pto=ORM::factory('Product_Translate',$_POST['product_translate']['id'])) AND $pto->loaded()) if (! $pto->values($_POST['product_translate'])->save()) throw new Kohana_Exception('Failed to save updates to product_translate data for record :record',array(':record'=>$po->id())); if (! $po->values($_POST)->save()) throw new Kohana_Exception('Failed to save updates to product data for record :record',array(':record'=>$so->id())); } Block::add(array( 'title'=>sprintf('%s %s:%s',_('Update Product'),$po->id,$po->name()), 'body'=>View::factory($this->viewpath()) ->set('po',$po) ->set('mediapath',Route::get('default/media')) ->set('plugin_form',$po->admin_update()), )); Script::add(array('type'=>'stdin','data'=>' $(document).ready(function() { $("select[name=language_id]").change(function() { // Send the request and update sub category dropdown $.ajax({ type: "GET", data: "key="+$(this).val(), dataType: "html", cache: false, url: "'.URL::link('admin','product/ajaxtranslateform/'.$po->id,TRUE).'", timeout: 2000, error: function(x) { alert("Failed to submit"); }, success: function(data) { $("div[id=translate]").replaceWith(data); } }); }); }); ')); } public function action_view() { $po = ORM::factory('Product',$this->request->param('id')); Block::add(array( 'title'=>sprintf('%s: %s',_('Current Services Using this Product'),$po->name()), 'body'=>Table::display( ORM::factory('Service')->where('product_id','=',$po->id)->find_all(), 25, array( 'id'=>array('label'=>'ID','url'=>URL::link('user','service/view/')), 'account->accnum()'=>array(), 'account->name()'=>array('label'=>'Account'), 'name()'=>array('label'=>'Details'), 'status'=>array('label'=>'Active'), 'price(TRUE,TRUE)'=>array('label'=>'Price','align'=>'right'), ), array( 'page'=>TRUE, 'type'=>'select', 'form'=>URL::link('user','service/view'), )), )); } } ?>