This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/modules/export/classes/Controller/Admin/Export.php
2013-10-10 13:56:13 +11:00

132 lines
3.5 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)->check()) {
$edo->status = 1;
if (! $edo->save())
throw HTTP_Exception::factory(501,'Unable to save data :post',array(':post'=>serialize($_POST)));
SystemMessage::factory()
->title('Record added')
->type('success')
->body(_('Export DataMap record has been added.'));
}
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'])->module()));
}
/**
* 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()) {
$emo->values($_POST);
$emo->save();
if ($emo->saved())
SystemMessage::factory()
->title('Record updated')
->type('success')
->body(_('Export Module record has been updated.'));
}
}
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/')),
))
);
}
}
}
?>