118 lines
3.2 KiB
PHP
118 lines
3.2 KiB
PHP
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
|
|
/**
|
|
* This class provides OSB exporting capabilities.
|
|
*
|
|
* @package Export
|
|
* @category Controllers/Admin
|
|
* @author Deon George
|
|
* @copyright (c) 2009-2013 Open Source Billing
|
|
* @license http://dev.osbill.net/license.html
|
|
*/
|
|
class Controller_Admin_Export extends Controller_Export {
|
|
protected $secure_actions = array(
|
|
'add'=>TRUE,
|
|
'index'=>TRUE,
|
|
'module'=>TRUE,
|
|
);
|
|
|
|
/**
|
|
* Add Export Maping items
|
|
*/
|
|
public function action_add() {
|
|
if (empty($_POST['export_module_id']) OR empty($_POST['module_id']))
|
|
HTTP::redirect(URL::link('admin','export/index'));
|
|
|
|
$edo = ORM::factory('Export_DataMap');
|
|
|
|
if ($_POST AND isset($_POST['item_id']) AND $edo->values($_POST)->changed()) {
|
|
$edo->status = 1;
|
|
|
|
$this->save($edo);
|
|
}
|
|
|
|
Block::factory()
|
|
->title('Add Export Item Map')
|
|
->title_icon('icon-plus-sign')
|
|
->type('form-horizontal')
|
|
->body(View::factory('export/admin/add')
|
|
->set('o',$edo)
|
|
->set('emo',ORM::factory('Export_Module',$_POST['export_module_id']))
|
|
->set('module',ORM::factory('Module',$_POST['module_id'])->instance()));
|
|
}
|
|
|
|
/**
|
|
* Select our primary export target
|
|
*/
|
|
public function action_index() {
|
|
$output = '';
|
|
|
|
if ($_POST and isset($_POST['eid'])) {
|
|
$select = array();
|
|
foreach (ORM::factory('Export_Module')->where('export_id','=',$_POST['eid'])->find_all() as $emo)
|
|
$select[$emo->id] = $emo->module->name;
|
|
|
|
$output .= Form::open(URL::link('admin','export/add'));
|
|
$output .= Form::select('export_module_id',$select);
|
|
$output .= Form::button('submit','Submit',array('class'=>'btn btn-primary'));
|
|
|
|
// @todo This shouldnt be hard coded.
|
|
$output .= Form::hidden('module_id',ORM::factory('Product')->mid());
|
|
|
|
} else {
|
|
|
|
$output .= Form::open();
|
|
$output .= Form::select('eid',ORM::factory('Export')->list_select());
|
|
$output .= Form::button('submit','Submit',array('class'=>'btn btn-primary'));
|
|
}
|
|
|
|
$output .= Form::close();
|
|
|
|
Block::factory()
|
|
->title('Select Export Target')
|
|
->title_icon('icon-share')
|
|
->body($output);
|
|
}
|
|
|
|
/**
|
|
* Update the export module settings
|
|
*/
|
|
public function action_module() {
|
|
if ($_POST AND isset($_POST['export_module_id'])) {
|
|
$emo = ORM::factory('Export_Module',$_POST['export_module_id']);
|
|
|
|
if ($emo->loaded() AND $emo->values($_POST)->changed() AND ! $this->save($emo))
|
|
$emo->reload();
|
|
}
|
|
|
|
if ($x = $this->request->param('id')) {
|
|
$emo = ORM::factory('Export_Module',$x);
|
|
|
|
if ($emo->loaded())
|
|
Block::factory()
|
|
->title(sprintf('Export Module: %s for %s',$emo->module->display('name'),$emo->export->display('name')))
|
|
->title_icon('icon-wrench')
|
|
->type('form-horizontal')
|
|
->body(View::factory('export/module/admin/edit')->set('o',$emo));
|
|
|
|
} else {
|
|
Block::factory()
|
|
->title('Export Module Update')
|
|
->title_icon('icon-th-list')
|
|
->body(Table::factory()
|
|
->data(ORM::factory('Export_Module')->find_all())
|
|
->jssort(TRUE)
|
|
->columns(array(
|
|
'id'=>'ID',
|
|
'export->name'=>'Name',
|
|
'module->name'=>'Module'
|
|
))
|
|
->prepend(array(
|
|
'id'=>array('url'=>URL::link('admin','export/module/')),
|
|
))
|
|
);
|
|
}
|
|
}
|
|
}
|
|
?>
|