8 namespace Fossology\UI\Page;
16 use Symfony\Component\HttpFoundation\Request;
17 use Symfony\Component\HttpFoundation\Response;
24 const NAME =
"admin_bulk_text_export";
32 function __construct()
34 parent::__construct(self::NAME, array(
35 self::TITLE =>
"Admin Bulk Text Export",
36 self::MENU_LIST =>
"Admin::Bulk::Bulk Text Export",
37 self::REQUIRES_LOGIN =>
true,
41 $this->userDao = $this->
getObject(
'dao.user');
48 protected function handle(Request $request)
50 if ($request->get(
'export',
false)) {
55 return $this->
render(
'admin_bulk_text_export.html.twig', $this->mergeWithDefault($vars));
65 $groupMap = $this->userDao->getAdminGroupMap($userId, $_SESSION[
Auth::USER_LEVEL]);
67 'users' => $this->userDao->getUsersByGroup(),
80 $exportFormat = $request->get(
'export_format',
'csv');
81 $filterType = $request->get(
'filter_type',
'all');
82 $user_pk = intval($request->get(
'selected_user', 0));
83 $group_pk = intval($request->get(
'selected_group', 0));
84 $delimiter = $request->get(
'delimiter',
',');
85 $enclosure = $request->get(
'enclosure',
'"');
86 $includeLicenseText = $request->get(
'include_license_text',
false) ? true :
false;
88 if (!in_array($exportFormat, array(
'csv',
'json'))) {
89 $exportFormat =
'csv';
92 if ($exportFormat ===
'json') {
93 $fileName =
"fossology-bulk-text-export-" . date(
"YMj-Gis") .
'.json';
94 $contentType =
'application/json';
97 $fileName =
"fossology-bulk-text-export-" . date(
"YMj-Gis") .
'.csv';
98 $contentType =
'text/csv';
99 $generateJson =
false;
105 if ($filterType ===
'user' && $user_pk > 0) {
106 $filterUserPk = $user_pk;
107 } elseif ($filterType ===
'group' && $group_pk > 0) {
108 $filterGroupPk = $group_pk;
112 if (!$generateJson) {
114 $bulkTextExporter->setDelimiter($delimiter);
115 $bulkTextExporter->setEnclosure($enclosure);
116 }
catch (\InvalidArgumentException $e) {
117 return new Response($e->getMessage(), 400, array(
'Content-Type' =>
'text/plain; charset=UTF-8'));
121 $content = $bulkTextExporter->exportBulkText($filterUserPk, $filterGroupPk, $generateJson, $includeLicenseText);
127 register_plugin(
new AdminBulkTextExport());
Helper class to export license reference bulk data as CSV or JSON from the DB.
Contains the constants and helpers for authentication of user.
static getUserId()
Get the current user's id.
render($templateName, $vars=null, $headers=null)
static getDownloadResponse($content, $fileName, $contentType='text/csv')
Export bulk text license data as CSV or JSON.
handleExport(Request $request)
fo_dbManager * dbManager
fo_dbManager object