Also support user export as csv
This commit is contained in:
@@ -596,8 +596,16 @@
|
||||
<i class="fa fa-user-plus"></i> {{ 'users.newUserAction' | tr }}
|
||||
</button>
|
||||
<div class="btn-group pull-right" style="margin-left: 5px;">
|
||||
<button class="btn btn-primary btn-outline" ng-click="userImport.show()" uib-tooltip="Import Users" tooltip-append-to-body="true"><i class="fa fa-file-import"></i></button>
|
||||
<button class="btn btn-primary btn-outline" ng-click="userExport()" uib-tooltip="Export Users" tooltip-append-to-body="true"><i class="fa fa-file-export"></i></button>
|
||||
<button class="btn btn-primary" ng-click="userImport.show()" uib-tooltip="Import Users" tooltip-append-to-body="true"><i class="fa fa-file-import"></i></button>
|
||||
<div class="btn-group" role="group">
|
||||
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" uib-tooltip="Export Users" tooltip-append-to-body="true" tooltip-placement="bottom">
|
||||
<i class="fa fa-file-export"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu dropdown-menu-right">
|
||||
<li><a href="" ng-click="userExport('csv')">Export as CSV</a></li>
|
||||
<li><a href="" ng-click="userExport('json')">Export as JSON</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<input type="text" id="userSearchInput" class="form-control pull-right" style="max-width: 350px;" ng-model="userSearchString" ng-model-options="{ debounce: 1000 }" ng-change="updateFilter()" placeholder="{{ 'main.searchPlaceholder' | tr }}"/>
|
||||
</h1>
|
||||
|
||||
@@ -184,14 +184,20 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
|
||||
}
|
||||
};
|
||||
|
||||
$scope.userExport = function () {
|
||||
// supported types are 'json' and 'csv'
|
||||
$scope.userExport = function (type) {
|
||||
Client.getUsers(function (error, result) {
|
||||
if (error) {
|
||||
Client.error('Failed to list users. Full error in the webinspector.');
|
||||
return console.error('Failed to list users.', error);
|
||||
}
|
||||
|
||||
var file = new Blob([ JSON.stringify(result, null, 2) ], { type: 'application/json' });
|
||||
var content = '';
|
||||
if (type === 'json') content = JSON.stringify(result, null, 2);
|
||||
else if (type === 'csv') content = result.map(function (user) { return `${user.id},${user.username},${user.email},${user.displayName}`; }).join('\n');
|
||||
else return;
|
||||
|
||||
var file = new Blob([ content ], { type: 'application/json' });
|
||||
var a = document.createElement('a');
|
||||
a.href = URL.createObjectURL(file);
|
||||
a.download = 'users.json';
|
||||
|
||||
Reference in New Issue
Block a user