Merge pull request #2580 from tsiegleauq/accessDataListPdfMake
Creates the access data list with PdfMake
This commit is contained in:
commit
ef36962221
@ -173,6 +173,11 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
margin: [0,0,0,20],
|
margin: [0,0,0,20],
|
||||||
bold: true
|
bold: true
|
||||||
},
|
},
|
||||||
|
userDataTitle: {
|
||||||
|
fontSize: 26,
|
||||||
|
margin: [0,0,0,0],
|
||||||
|
bold: true
|
||||||
|
},
|
||||||
textItem: {
|
textItem: {
|
||||||
fontSize: 11,
|
fontSize: 11,
|
||||||
margin: [0,7]
|
margin: [0,7]
|
||||||
@ -182,6 +187,19 @@ angular.module('OpenSlidesApp.core.pdf', [])
|
|||||||
margin: [0,0,0,10],
|
margin: [0,0,0,10],
|
||||||
bold: true
|
bold: true
|
||||||
},
|
},
|
||||||
|
userDataHeading: {
|
||||||
|
fontSize: 14,
|
||||||
|
margin: [0,10],
|
||||||
|
bold: true
|
||||||
|
},
|
||||||
|
userDataTopic: {
|
||||||
|
fontSize: 12,
|
||||||
|
margin: [0,5]
|
||||||
|
},
|
||||||
|
userDataValue: {
|
||||||
|
fontSize: 12,
|
||||||
|
margin: [15,5]
|
||||||
|
},
|
||||||
tableofcontent: {
|
tableofcontent: {
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
margin: [0,3]
|
margin: [0,3]
|
||||||
|
@ -103,6 +103,151 @@ angular.module('OpenSlidesApp.users.pdf', ['OpenSlidesApp.core.pdf'])
|
|||||||
createInstance: createInstance
|
createInstance: createInstance
|
||||||
};
|
};
|
||||||
|
|
||||||
}]);
|
}])
|
||||||
|
|
||||||
|
.factory('UserAccessDataListContentProvider', [
|
||||||
|
'gettextCatalog',
|
||||||
|
'PdfPredefinedFunctions',
|
||||||
|
function(gettextCatalog, PdfPredefinedFunctions) {
|
||||||
|
|
||||||
|
var createInstance = function(userList, groups, Config) {
|
||||||
|
|
||||||
|
var getConfigValue = function(val) {
|
||||||
|
if (Config.get(val).value) {
|
||||||
|
return Config.get(val).value;
|
||||||
|
} else {
|
||||||
|
return "-";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var creadeUserHeadLine = function(user) {
|
||||||
|
var titleLine = [];
|
||||||
|
titleLine.push({
|
||||||
|
text: user.get_short_name(),
|
||||||
|
style: 'userDataTitle'
|
||||||
|
});
|
||||||
|
if (user.structure_level) {
|
||||||
|
titleLine.push({
|
||||||
|
text: user.structure_level,
|
||||||
|
style: 'userDataHeading'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return titleLine;
|
||||||
|
};
|
||||||
|
|
||||||
|
var createAccessDataContent = function(user) {
|
||||||
|
var accessDataColumns = {
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
stack: [
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("WLAN access data"),
|
||||||
|
style: 'userDataHeading'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("WLAN name (SSID)") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: getConfigValue('users_pdf_wlan_ssid'),
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("WLAN password") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: getConfigValue('users_pdf_wlan_password'),
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("WLAN encryption") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: getConfigValue('users_pdf_wlan_encryption'),
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
stack: [
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("OpenSlides access data"),
|
||||||
|
style: 'userDataHeading'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("Username") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: user.username,
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: gettextCatalog.getString("Initial password") + ":",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: user.default_password,
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: "URL:",
|
||||||
|
style: 'userDataTopic'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: getConfigValue('users_pdf_url'),
|
||||||
|
link: getConfigValue('users_pdf_url'),
|
||||||
|
style: 'userDataValue'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
margin: [0,20]
|
||||||
|
};
|
||||||
|
|
||||||
|
return accessDataColumns;
|
||||||
|
};
|
||||||
|
|
||||||
|
var createWelcomeText = function() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
text: getConfigValue('users_pdf_welcometitle'),
|
||||||
|
style: 'userDataHeading'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: getConfigValue('users_pdf_welcometext'),
|
||||||
|
style: 'userDataTopic'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
var getContent = function() {
|
||||||
|
var content = [];
|
||||||
|
angular.forEach(userList, function (user) {
|
||||||
|
content.push(creadeUserHeadLine(user));
|
||||||
|
content.push(createAccessDataContent(user));
|
||||||
|
content.push(createWelcomeText());
|
||||||
|
content.push({
|
||||||
|
text: '',
|
||||||
|
pageBreak: 'after'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
return [
|
||||||
|
content
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
getContent: getContent
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
createInstance: createInstance
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]);
|
||||||
}());
|
}());
|
||||||
|
@ -428,10 +428,12 @@ angular.module('OpenSlidesApp.users.site', [
|
|||||||
'Projector',
|
'Projector',
|
||||||
'ProjectionDefault',
|
'ProjectionDefault',
|
||||||
'UserListContentProvider',
|
'UserListContentProvider',
|
||||||
|
'Config',
|
||||||
|
'UserAccessDataListContentProvider',
|
||||||
'PdfMakeDocumentProvider',
|
'PdfMakeDocumentProvider',
|
||||||
'gettextCatalog',
|
'gettextCatalog',
|
||||||
function($scope, $state, $http, ngDialog, UserForm, User, Group, PasswordGenerator, Projector, ProjectionDefault,
|
function($scope, $state, $http, ngDialog, UserForm, User, Group, PasswordGenerator, Projector, ProjectionDefault,
|
||||||
UserListContentProvider, PdfMakeDocumentProvider, gettextCatalog) {
|
UserListContentProvider, Config, UserAccessDataListContentProvider, PdfMakeDocumentProvider, gettextCatalog) {
|
||||||
User.bindAll({}, $scope, 'users');
|
User.bindAll({}, $scope, 'users');
|
||||||
Group.bindAll({where: {id: {'>': 1}}}, $scope, 'groups');
|
Group.bindAll({where: {id: {'>': 1}}}, $scope, 'groups');
|
||||||
$scope.$watch(function () {
|
$scope.$watch(function () {
|
||||||
@ -563,6 +565,14 @@ angular.module('OpenSlidesApp.users.site', [
|
|||||||
var documentProvider = PdfMakeDocumentProvider.createInstance(userListContentProvider);
|
var documentProvider = PdfMakeDocumentProvider.createInstance(userListContentProvider);
|
||||||
pdfMake.createPdf(documentProvider.getDocument()).download(filename);
|
pdfMake.createPdf(documentProvider.getDocument()).download(filename);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
$scope.makePDF_userAccessDataList = function () {
|
||||||
|
var filename = gettextCatalog.getString("List of access data")+".pdf";
|
||||||
|
var userAccessDataListContentProvider = UserAccessDataListContentProvider.createInstance(
|
||||||
|
$scope.users, $scope.groups, Config);
|
||||||
|
var documentProvider = PdfMakeDocumentProvider.createInstance(userAccessDataListContentProvider);
|
||||||
|
pdfMake.createPdf(documentProvider.getDocument()).download(filename);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
|
@ -13,21 +13,21 @@
|
|||||||
<i class="fa fa-download fa-lg"></i>
|
<i class="fa fa-download fa-lg"></i>
|
||||||
<translate>Import</translate>
|
<translate>Import</translate>
|
||||||
</a>
|
</a>
|
||||||
<div class="btn-group" uib-dropdown>
|
<div class="dropdown pull-right" uib-dropdown>
|
||||||
<button os-perms="users.can_manage" class="btn btn-default btn-sm" uib-dropdown-toggle
|
<button os-perms="users.can_manage" class="btn btn-default btn-sm" uib-dropdown-toggle
|
||||||
id="user-pdf-dropdown">
|
id="user-pdf-dropdown">
|
||||||
<i class="fa fa-file-pdf-o fa-lg"></i>
|
<i class="fa fa-file-pdf-o fa-lg"></i>
|
||||||
<translate>PDF</translate>
|
<translate>PDF</translate>
|
||||||
<span class="caret"></span>
|
<span class="caret"></span>
|
||||||
</button>
|
</button>
|
||||||
<ul class="dropdown-menu" uib-dropdown-menu aria-labelledby="user-pdf-dropdown">
|
<ul class="dropdown-menu" dropdown-menu-right aria-labelledby="user-pdf-dropdown">
|
||||||
<li>
|
<li>
|
||||||
<a ng-click="makePDF_userList()" class="btn">
|
<a href="" ng-click="makePDF_userList()">
|
||||||
<i class="fa fa-list fa-fw"></i>
|
<i class="fa fa-list fa-fw"></i>
|
||||||
<translate>List of participants</translate>
|
<translate>List of participants</translate>
|
||||||
</a>
|
</a>
|
||||||
<li os-perms="users.can_manage">
|
<li os-perms="users.can_manage">
|
||||||
<a ui-sref="user_passwordspdf" target="_blank">
|
<a href="" ng-click="makePDF_userAccessDataList()">
|
||||||
<i class="fa fa-qrcode fa-fw"></i>
|
<i class="fa fa-qrcode fa-fw"></i>
|
||||||
<translate>List of access data</translate>
|
<translate>List of access data</translate>
|
||||||
</a>
|
</a>
|
||||||
|
Loading…
Reference in New Issue
Block a user