TRUE, 'ajaxtranslate'=>TRUE, 'category'=>TRUE, 'edit'=>TRUE, 'list'=>TRUE, 'view'=>TRUE, ); public function action_ajaxtranslate() { $po = ORM::factory('Product',$this->request->param('id')); if (! $po->loaded() OR ! isset($_REQUEST['key'])) { $output = _('Unable to find translate data'); } else { $pto = $po->translate->where('language_id','=',$_REQUEST['key'])->find(); $output = View::factory('product/admin/ajaxtranslate') ->set('o',$pto); } $this->template->content = $output; } /** * Retrieve the product category translate record */ public function action_ajaxtranslatecategory() { $pco = ORM::factory('Product_Category',$this->request->param('id')); if (! $pco->loaded() OR ! isset($_REQUEST['key'])) { $output = _('Unable to find translate data'); } else { $pcto = $pco->product_category_translate->where('language_id','=',$_REQUEST['key'])->find(); $output = View::factory('product/category/admin/ajaxtranslate') ->set('o',$pcto); } $this->template->content = $output; } /** * Update the product category */ public function action_category() { $pco = ORM::factory('Product_Category',$this->request->param('id')); if (! $pco->loaded()) HTTP::redirect(URL::link('admin','product/list')); if ($_POST AND $pco->values($_POST)->changed() AND (! $this->save($pco))) $pco->reload(); Script::factory() ->type('stdin') ->data(' $(document).ready(function() { $("select[name=language_id]").change(function() { // If we select a blank, then dont continue if (this.value == 0) return false; // Send the request and update sub category dropdown $.ajax({ type: "GET", data: "key="+$(this).val(), dataType: "html", cache: false, url: "'.URL::link('admin','product/ajaxtranslatecategory/'.$pco->id,TRUE).'", timeout: 2000, error: function(x) { alert("Failed to submit"); }, success: function(data) { $("div[id=translate]").empty().append(data); } }); }); }); '); Block::factory() ->type('form-horizontal') ->title('Update Category') ->title_icon('icon-wrench') ->body(View::factory('product/category/admin/edit') ->set('o',$pco)); } /** * Edit a product configuration */ public function action_edit() { $po = ORM::factory('Product',$this->request->param('id')); if (! $po->loaded()) HTTP::redirect('welcome/index'); if ($_POST AND $po->values($_POST)->changed() AND (! $this->save($po))) $po->reload(); Script::factory() ->type('stdin') ->data(' $(document).ready(function() { $("select[name=language_id]").change(function() { // If we select a blank, then dont continue if (this.value == 0) return false; // Send the request and update sub category dropdown $.ajax({ type: "GET", data: "key="+$(this).val(), dataType: "html", cache: false, url: "'.URL::link('admin','product/ajaxtranslate/'.$po->id,TRUE).'", timeout: 2000, error: function(x) { alert("Failed to submit"); }, success: function(data) { $("div[id=translate]").empty().append(data); } }); }); }); '); Block::factory() ->type('form-horizontal') ->title('Update Product') ->title_icon('icon-wrench') ->body(View::factory('product/admin/edit') ->set('plugin_form',$po->plugin_edit()) ->set('o',$po)); } /** * Show a list of products */ public function action_list() { $products = ($x=$this->request->param('id')) ? ORM::factory('Product_Category',$x)->products() : ORM::factory('Product')->order_by('status','DESC')->order_by('prod_plugin_file')->find_all(); Block::factory() ->title(_('Products')) ->title_icon('icon-th') ->body(Table::display( $products, 25, array( 'id'=>array('label'=>'ID','url'=>URL::link('admin','product/view/')), 'title()'=>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'), ))); } public function action_view() { $po = ORM::factory('Product',$this->request->param('id')); if (! $po->loaded()) throw HTTP_Exception::factory(403,'Product either doesnt exist, or you are not authorised to see it'); Block::factory() ->title(sprintf('%s: %s',_('Current Services Using this Product'),$po->title())) ->title_icon('icon-th-list') ->body(Table::display( $po->services()->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'), ))); } } ?>