Commit faa2d26b authored by Alejandro E. Rendon's avatar Alejandro E. Rendon
Browse files

Get pdf from users list

parent db515175
......@@ -2,3 +2,4 @@ node_modules/
public/semantic/
config/
*.log
docs/
......@@ -5,6 +5,7 @@ const User = require('../models/user').User,
nodemailer = require('nodemailer'),
ejs = require('ejs'),
pdf = require('html-pdf'),
open = require('open'),
{ auth } = require('../config/email'),
{
emailAdmin,
......@@ -115,23 +116,31 @@ exports.getUsersListPrint = (req, res) => {
user: req.user,
conect: req.user
},
function(err, result) {
(err, result) => {
// render on success
if (result) {
const html = result;
const options = {
format: 'Letter',
orientation: 'landscape'
orientation: 'landscape',
border: {
top: '1cm',
right: '1cm',
bottom: '1cm',
left: '1cm'
}
};
console.log(html);
// pdf.convertHTMLString(html, './html.pdf', (err, sucess) => {
// if (err) console.log(err);
// else console.log(sucess);
// });
pdf.create(html, options).toFile('./html.pdf', function(err, res) {
if (err) return console.log(err);
console.log(res); // { filename: '/app/businesscard.pdf' }
});
pdf
.create(html, options)
.toFile('./public/docs/account.pdf', (err, res) => {
if (err)
return console.log(err);
else {
open('http://localhost/docs/account.pdf', function(err) {
if (err) throw err;
});
}
});
} else {
// render or error
res.end('An error occurred');
......@@ -167,23 +176,24 @@ exports.new = (req, res) => {
res.redirect('/');
} else {
console.log('here');
User.update({ username: id }, { state: user.state, uid: uid }, (
err,
data
) => {
if (err) {
console.log(err);
res.redirect('/');
} else {
sshKey(user, err => {
if (err) {
console.log(err);
res.redirect('/');
} else
res.redirect('/admin/users');
});
User.update(
{ username: id },
{ state: user.state, uid: uid },
(err, data) => {
if (err) {
console.log(err);
res.redirect('/');
} else {
sshKey(user, err => {
if (err) {
console.log(err);
res.redirect('/');
} else
res.redirect('/admin/users');
});
}
}
});
);
// createUserCluster(uid, user, err => {
// if (err) {
// console.log(err);
......
File deleted
......@@ -31,6 +31,7 @@
</div>
<div class="ui main text right aligned container">
<div class="ui icon buttons">
<a class="ui red compact icon button" data-content="Generar PDF" href="/admin/users/list/print"><i class="file pdf outline icon"></i></a>
<a class="ui compact icon button" data-content="Usuarios" href="/admin/users/"><i class="block layout icon"></i></a>
</div>
<div class="ui icon buttons">
......
......@@ -3,142 +3,87 @@
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<link href="https://fonts.googleapis.com/css?family=Droid+Sans:400,700" rel="stylesheet">
<!-- Site Properties -->
<title>Admin | Cluster Lovelace</title>
<link rel="stylesheet" type="text/css" href="/semantic-ui/semantic.min.css">
<link rel="stylesheet" type="text/css" href="/css/font.css">
<script src="/js/jquery-3.1.1.min.js"></script>
<script src="/semantic-ui/semantic.min.js"></script>
<style type="text/css">
/*.pusher {
display: flex;
min-height: 100vh;
flex-direction: column;
}
.pusher > .footer {
flex: 1;
}*/
.description {
font-size: 0.8em;
}
.ui.cards>.card .meta {
font-size: 0.9em;
}
.ui.card>.content>.header:not(.ui), .ui.cards>.card>.content>.header:not(.ui) {
font-size: 1em;
}
.main.container {
margin-top: 2em;
}
.main.menu {
margin-top: 4em;
border-radius: 0;
border: none;
box-shadow: none;
transition:
box-shadow 0.5s ease,
padding 0.5s ease
;
}
.main.menu .item img.logo {
margin-right: 1.5em;
}
.overlay {
float: left;
margin: 0em 3em 1em 0em;
}
.overlay .menu {
position: relative;
left: 0;
transition: left 0.5s ease;
}
.main.menu.fixed {
background-color: #FFFFFF;
border: 1px solid #DDD;
box-shadow: 0px 3px 5px rgba(0, 0, 0, 0.2);
}
.overlay.fixed .menu {
left: 800px;
}
.ui.footer.segment {
margin: 5em 0em 0em;
padding: 5em 0em;
}
</style>
<!-- <% include ../navbar.ejs %> -->
<div class="ui main text center aligned container">
<!-- <% if(message.length > 0){ %>
<div class="ui warning message">
<i class="close icon"></i>
<div class="header">Aviso</div>
<ul class="list">
<% for (msg in message) { %>
<li><%= message[msg] %></li>
<% } %>
</ul>
</div>
<% } %>
<h1 class="ui header">Panel de Administración</h1> -->
<style>
body {
font-family: 'Droid Sans', sans-serif;
font-size: 10px;
}
table {
border-collapse: collapse;
width: 100%;
}
table, th, td {
border: 1px solid #DADFE1;
}
th {
background-color: #DADFE1;
font-weight: bold;
padding: 10px;
}
td {
padding: 5px;
}
.membrete {
margin-bottom: 50px;
text-align: center;
}
.membrete > img {
margin: auto 20px;
}
.membrete > img.sirius {
width: auto;
height: 50px;
}
.membrete > img.cidt {
width: auto;
height: 40px;
}
.membrete > img.utp {
width: auto;
height: 40px;
}
</style>
</head>
<body>
<div class="membrete">
<img class="sirius" src="http://localhost/images/membrete.png">
<img class="cidt" src="http://localhost/images/cidt.jpg">
<img class="utp" src="http://localhost/images/utp.png">
</div>
<div class="ui main text right aligned container">
<div class="ui icon buttons">
<a class="ui compact icon button" data-content="Usuarios" href="/admin/users/"><i class="block layout icon"></i></a>
</div>
<div class="ui icon buttons">
<a class="ui compact icon button" data-content="Todos los Usuarios" href="/admin/users/"><i class="users icon"></i></a>
<a class="ui compact icon button" data-content="Usuarios Activos" href="/admin/users/active/"><i class="checkmark icon"></i></a>
<a class="ui compact icon button" data-content="Usuarios Inactivos" href="/admin/users/inactive/"><i class="remove icon"></i></a>
<a class="ui compact icon button" data-content="Usuarios Pendientes" href="/admin/users/pending/"><i class="warning icon"></i></a>
<a class="ui compact icon button" data-content="Agregar Usuario" href="/signup"><i class="add user icon"></i></a>
<%# <a class="ui compact icon button" data-content="Importar desde SO" href="/admin/users/linux"><i class="linux icon"></i></a>%>
</div>
</div>
<div class="ui main text container">
<table class="ui tablet stackable small very compact table">
<thead>
<tr>
<th>Fecha</th>
<th>ID</th>
<th class="right aligned">Comentario</th>
</tr>
</thead>
<tbody>
<% for (var userbd in users) { %>
<tr>
<td>
<div class="description">
<%= ("0" + users[userbd].createdAt.getDate()).slice(-2) + "/" + ("0" + (users[userbd].createdAt.getMonth() + 1)).slice(-2) + "/" + users[userbd].createdAt.getFullYear() %>
<%= ("0" + users[userbd].createdAt.getHours()).slice(-2) + ":" + ("0" + (users[userbd].createdAt.getMinutes() + 1)).slice(-2) %>
</div>
</td>
<td><%= users[userbd].user_id %><br />
<%= users[userbd].name + ' ' + users[userbd].last_name %><br />
<div class="description">
<i><b><%= users[userbd].email %></b></i>
<h2>Informe de Usuarios - Solicitud de Cuenta | Cluster Lovelace</h2>
<table>
<thead>
<tr>
<th>Fecha</th>
<th>ID</th>
<th>Comentario</th>
</tr>
</thead>
<tbody>
<% for (var userbd in users) { %>
<tr>
<td>
<div>
<%= ("0" + users[userbd].createdAt.getDate()).slice(-2) + "/" + ("0" + (users[userbd].createdAt.getMonth() + 1)).slice(-2) + "/" + users[userbd].createdAt.getFullYear() %>
<%= ("0" + users[userbd].createdAt.getHours()).slice(-2) + ":" + ("0" + (users[userbd].createdAt.getMinutes() + 1)).slice(-2) %>
</div>
</td>
<td class="right aligned">
<div class="description">
<i><%= users[userbd].text %></i>
</div>
</td>
</tr>
<% } %>
</tbody>
</table>
</div>
<!-- <% include ../footer %> -->
</td>
<td><%= users[userbd].user_id %><br />
<%= users[userbd].name + ' ' + users[userbd].last_name %><br />
<div>
<i><b><%= users[userbd].email %></b></i>
</div>
</td>
<td>
<div>
<i><%= users[userbd].text %></i>
</div>
</td>
</tr>
<% } %>
</tbody>
</table>
</body>
</html>
......@@ -31,7 +31,7 @@ ajv-keywords@^1.0.0:
version "1.5.1"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
ajv@^4.7.0, ajv@^4.9.1:
ajv@^4.7.0:
version "4.11.5"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.5.tgz#b6ee74657b993a01dce44b7944d56f485828d5bd"
dependencies:
......@@ -273,10 +273,6 @@ caseless@~0.11.0:
version "0.11.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7"
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
......@@ -1148,10 +1144,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9:
version "1.0.1"
resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
har-schema@^1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e"
har-validator@~2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d"
......@@ -1161,13 +1153,6 @@ har-validator@~2.0.6:
is-my-json-valid "^2.12.4"
pinkie-promise "^2.0.0"
har-validator@~4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a"
dependencies:
ajv "^4.9.1"
har-schema "^1.0.5"
has-ansi@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
......@@ -1208,12 +1193,6 @@ html-pdf@^2.1.0:
optionalDependencies:
phantomjs-prebuilt "^2.1.4"
html-to-pdf@^0.1.11:
version "0.1.11"
resolved "https://registry.yarnpkg.com/html-to-pdf/-/html-to-pdf-0.1.11.tgz#21820abcac8d25c75a06aa715f526ca0cdee10c5"
dependencies:
node-uuid "^1.4.1"
htmlparser2@3.8.x:
version "3.8.3"
resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068"
......@@ -1890,10 +1869,6 @@ node-pre-gyp@^0.6.29:
tar "~2.2.1"
tar-pack "~3.3.0"
node-uuid@^1.4.1:
version "1.4.7"
resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.7.tgz#6da5a17668c4b3dd59623bda11cf7fa4c1f60a6f"
nodemailer@^3.1.4:
version "3.1.7"
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-3.1.7.tgz#1f03b649ef060f660b5413e47f77c24189a7dca3"
......@@ -1987,6 +1962,10 @@ onetime@^1.0.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
open@^0.0.5:
version "0.0.5"
resolved "https://registry.yarnpkg.com/open/-/open-0.0.5.tgz#42c3e18ec95466b6bf0dc42f3a2945c3f0cad8fc"
optionator@^0.8.2:
version "0.8.2"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
......@@ -2087,10 +2066,6 @@ pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
performance-now@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5"
phantomjs-prebuilt@^2.1.4:
version "2.1.14"
resolved "https://registry.yarnpkg.com/phantomjs-prebuilt/-/phantomjs-prebuilt-2.1.14.tgz#d53d311fcfb7d1d08ddb24014558f1188c516da0"
......@@ -2160,7 +2135,7 @@ punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
qs@6.4.0, qs@~6.4.0:
qs@6.4.0:
version "6.4.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233"
......@@ -2311,34 +2286,7 @@ request-progress@~2.0.1:
dependencies:
throttleit "^1.0.0"
request@^2.79.0:
version "2.81.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0"
dependencies:
aws-sign2 "~0.6.0"
aws4 "^1.2.1"
caseless "~0.12.0"
combined-stream "~1.0.5"
extend "~3.0.0"
forever-agent "~0.6.1"
form-data "~2.1.1"
har-validator "~4.2.1"
hawk "~3.1.3"
http-signature "~1.1.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
mime-types "~2.1.7"
oauth-sign "~0.8.1"
performance-now "^0.2.0"
qs "~6.4.0"
safe-buffer "^5.0.1"
stringstream "~0.0.4"
tough-cookie "~2.3.0"
tunnel-agent "^0.6.0"
uuid "^3.0.0"
request@~2.79.0:
request@^2.79.0, request@~2.79.0:
version "2.79.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de"
dependencies:
......@@ -2703,12 +2651,6 @@ tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
dependencies:
safe-buffer "^5.0.1"
tunnel-agent@~0.4.1:
version "0.4.3"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb"
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment