Import/Export - change signature of method that gets options to allow definition-specific values

Do export too, for consistency
This commit is contained in:
nathangray 2018-11-29 10:33:56 -07:00
parent 8451836a92
commit c83d30512e
3 changed files with 60 additions and 25 deletions

View File

@ -175,12 +175,19 @@ class admin_export_acl_csv implements importexport_iface_export_plugin
} }
/** /**
* return html for options. * Return array of settings for export dialog
* this way the plugin has all opportunities for options tab
* *
* @return string html * @param $definition Specific definition
*
* @return array (
* name => string,
* content => array,
* sel_options => array,
* readonlys => array,
* preserv => array,
* )
*/ */
public function get_options_etpl() public function get_options_etpl(importexport_definition &$definition = NULL)
{ {
return false; return false;
} }

View File

@ -85,12 +85,20 @@ class admin_export_groups_csv implements importexport_iface_export_plugin
} }
/** /**
* return html for options. * Return array of settings for export dialog
* this way the plugin has all opportunities for options tab
* *
* @return string html * @param $definition Specific definition
*
* @return array (
* name => string,
* content => array,
* sel_options => array,
* readonlys => array,
* preserv => array,
* )
*/ */
public function get_options_etpl() { public function get_options_etpl(importexport_definition &$definition = NULL)
{
return false; return false;
} }

View File

@ -21,13 +21,15 @@ class admin_export_users_csv implements importexport_iface_export_plugin
* *
* @param egw_record $_definition * @param egw_record $_definition
*/ */
public function export( $_stream, importexport_definition $_definition) { public function export( $_stream, importexport_definition $_definition)
{
$options = $_definition->plugin_options; $options = $_definition->plugin_options;
$query = array( $query = array(
'type' => 'accounts', 'type' => 'accounts',
); );
if($options['selection']['group_id']) { if($options['selection']['group_id'])
{
$query['type'] = (int)$options['selection']['group_id']; $query['type'] = (int)$options['selection']['group_id'];
} }
$selection = $GLOBALS['egw']->accounts->search($query); $selection = $GLOBALS['egw']->accounts->search($query);
@ -41,15 +43,20 @@ class admin_export_users_csv implements importexport_iface_export_plugin
); );
// $_record is an array, that's what search() returns // $_record is an array, that's what search() returns
foreach ($selection as $_record) { foreach ($selection as $_record)
{
$record = new admin_egw_user_record($_record); $record = new admin_egw_user_record($_record);
if($options['convert']) { if($options['convert'])
{
$never_expires = ($record->account_expires == -1); $never_expires = ($record->account_expires == -1);
importexport_export_csv::convert($record, admin_egw_user_record::$types, 'admin', $lookups); importexport_export_csv::convert($record, admin_egw_user_record::$types, 'admin', $lookups);
if($never_expires) $record->account_expires = 'never'; // Has to be 'never' for admin_cmd_edit_user to parse it if($never_expires) $record->account_expires = 'never'; // Has to be 'never' for admin_cmd_edit_user to parse it
} else { }
else
{
// Implode arrays, so they don't say 'Array' // Implode arrays, so they don't say 'Array'
foreach($record->get_record_array() as $key => $value) { foreach($record->get_record_array() as $key => $value)
{
if(is_array($value)) $record->$key = implode(',', $value); if(is_array($value)) $record->$key = implode(',', $value);
} }
} }
@ -63,7 +70,8 @@ class admin_export_users_csv implements importexport_iface_export_plugin
* *
* @return string name * @return string name
*/ */
public static function get_name() { public static function get_name()
{
return lang('User CSV export'); return lang('User CSV export');
} }
@ -72,7 +80,8 @@ class admin_export_users_csv implements importexport_iface_export_plugin
* *
* @return string descriprion * @return string descriprion
*/ */
public static function get_description() { public static function get_description()
{
return lang("Exports users into a CSV File. "); return lang("Exports users into a CSV File. ");
} }
@ -81,21 +90,31 @@ class admin_export_users_csv implements importexport_iface_export_plugin
* *
* @return string suffix * @return string suffix
*/ */
public static function get_filesuffix() { public static function get_filesuffix()
{
return 'csv'; return 'csv';
} }
public static function get_mimetype() { public static function get_mimetype()
{
return 'text/csv'; return 'text/csv';
} }
/** /**
* return html for options. * Return array of settings for export dialog
* this way the plugin has all opportunities for options tab
* *
* @return string html * @param $definition Specific definition
*
* @return array (
* name => string,
* content => array,
* sel_options => array,
* readonlys => array,
* preserv => array,
* )
*/ */
public function get_options_etpl() { public function get_options_etpl(importexport_definition &$definition = NULL)
{
return false; return false;
} }
@ -103,7 +122,8 @@ class admin_export_users_csv implements importexport_iface_export_plugin
* returns slectors of this plugin via xajax * returns slectors of this plugin via xajax
* *
*/ */
public function get_selectors_etpl() { public function get_selectors_etpl()
{
return array( return array(
'name' => 'admin.export_users_csv_selectors', 'name' => 'admin.export_users_csv_selectors',
'preserv' => array('no_error_for_all'), 'preserv' => array('no_error_for_all'),