password-manager-mirror/frontend/delta/js/Clipperz/PM/UI/CertificateDownloadControll...

277 lines
57 KiB
JavaScript
Raw Normal View History

/*
2018-11-25 17:31:43 +01:00
Copyright 2008-2018 Clipperz Srl
This file is part of Clipperz, the online password manager.
For further information about its features and functionalities please
refer to http://www.clipperz.com.
* Clipperz is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published
by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
* Clipperz is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Affero General Public License for more details.
* You should have received a copy of the GNU Affero General Public
License along with Clipperz. If not, see http://www.gnu.org/licenses/.
*/
"use strict";
Clipperz.Base.module('Clipperz.PM.UI');
// https://github.com/eligrey/FileSaver.js
// https://github.com/eligrey/Blob.js
Clipperz.PM.UI.CertificateDownloadController = function(args) {
this._style = "" +
"body {" +
"background-color: rgba(0,0,0, 0.8);" +
"font-family: 'DejaVu Sans Mono', monospace;" +
// "font-size: 12pt;" +
"}" +
".certificateContent {" +
"background-color: white;" +
"margin: 20px;" +
"border-radius: 10px;" +
"background: url(data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAAC4AAAAdCAAAAADwPAHoAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAE/SURBVDjLfZRbCsQgDEXd/yKDIJYiiAhC6N9EY2N8dPxoqx7z8qYG8iOjOAjWRvrKbTlaG8CVAWQzcIzgS39WvHiI2J87ntlu8xETpPjaJR95xfGCS4wQAO/haU9wCmGESIAdh2lQQAtuh8t1UJh2xT16uPEA4w20t+HPk6xNG82LJ/zBQIZm0x5CXTniNHejIC0jx9sfeC2Rkyo7eM9+4uJ/iuwb5+xwzvsfXgvt52uYcXIM+hppHvT0Ap4zXtWVra5J1rquGmOdVbwrqKZWDnjh1BtF+C05VeXigqPouFbgNqCjJJc44ahDJP8mqt4iAx3L8p5kVMwikA2fZaTwdv0brqWg8C6uHZ+a1UgW7POEi4xefAjkiA/A8GFpuw+cW7DhUavpC+//IZN04v/wVjqjhNJWWJgdJ6FoW8X/AOUu8u73+9MlAAAAAElFTkSuQmCC);" +
"padding: 20px;" +
"}" +
"h1 {" +
"float: right;" +
"font-size: 24pt;" +
"font-weight: bold;" +
"padding: 9px;" +
"margin: 0px;" +
"}" +
"h3 {" +
"float: left;" +
"visibility: hidden;" +
"margin: 0px;" +
"margin-top: -25px;" +
"margin-left: -12px;" +
"}" +
"h3:after {" +
"visibility: visible;" +
"display: block;" +
"content: \" \";" +
"width: 255px;" +
"height: 65px;" +
"background: url(data:image/png;charset=utf-8;base64,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
"background-size: 255px 65px;" +
"background-repeat: no-repeat;" +
"}" +
"p {" +
"margin: 0px;" +
"padding: 0px;" +
"}" +
"ul {" +
"list-style-type: none;" +
"margin: 0px;" +
"padding: 0px;" +
"}" +
"ul.attachments li {" +
"border: 1px solid black;" +
"margin: 10px;" +
"}" +
"dl {" +
"padding: 2px 10px;" +
"margin: 0px;" +
"}" +
"dl.file {" +
"font-weight: bold;" +
"}" +
"dl:first-child {" +
"padding-top: 10px;" +
"}" +
"dt {" +
"display: inline-block;" +
"}" +
"dt:after {" +
"content: \": \";" +
"padding-right: 4px;" +
"}" +
"dd {" +
"display: inline-block;" +
"margin: 0px;" +
"}" +
".info {" +
"clear: both;" +
"}" +
".info dl {" +
"padding-left: 0px;" +
"}" +
".info dl.cardLabel {" +
"font-weight: bold;" +
"}" +
".certificateContent > div {" +
"border: 1px solid black;" +
"padding: 10px;" +
"margin-bottom: 10px;" +
"}" +
".certificateContent > div:first-child {" +
"border: 0px;" +
"padding: 0px;" +
"}" +
".certificateContent > div:last-child {" +
"margin-bottom: 0px;" +
"}" +
"textarea {" +
"display: none;" +
"visibility: hidden;" +
"}" +
".details {" +
"border: 1px solid black;" +
"padding-top: 0px;" +
"margin-top: 10px;" +
"}" +
".details ul.transactionInfo > li:first-child {" +
"border-bottom: 1px solid black;" +
"background-color: rgba(100, 100, 100, 0.5);" +
"padding: 3px 10px;" +
"font-size: 10pt;" +
"}" +
".details ul.transactionInfo > li .metadata {" +
"margin: 10px;" +
"border: 1px solid black;" +
"}" +
"div.transactionInfo {" +
"border: 0px;" +
"padding-left: 0px;" +
"padding-right: 0px;" +
"text-align: left;" +
"}" +
"div.reviewInfo {" +
"border: 0px;" +
"padding-left: 0px;" +
"padding-right: 0px;" +
"}" +
"svg {" +
"margin-top: 10px;" +
"width: auto;" +
"}" +
".address {" +
"margin-left: 10%;" +
"margin-top: 10px;" +
"border-left: 1px solid black;" +
"border-top: 1px solid black;" +
"background-color: rgba(100,100,100,0.5);" +
"text-align: right;" +
"padding: 3px 10px;" +
"font-size: 10pt;" +
"}" +
".metadata header {" +
"padding-left: 10px;" +
"padding-top: 8px;" +
"padding-bottom: 4px;" +
"text-transform: uppercase;" +
"font-weight: bold;" +
"}" +
".metadata header:after {" +
"content: ':';" +
"}" +
".metadata > dl dt {" +
"font-weight: bold" +
"}" +
".metadata > dl dt:before {" +
"content: '-';" +
"}" +
"";
return this;
}
MochiKit.Base.update(Clipperz.PM.UI.CertificateDownloadController.prototype, {
'toString': function() {
return "Clipperz.PM.UI.CertificateDownloadController";
},
//==============================================================================
'renderToHtml': function (someCertificateInfo) {
var title;
var style;
var body;
title = "Clipperz Certificate - " + someCertificateInfo['certificateDetails']['transaction']['reference'];
style = this._style;
body = React.renderToString(Clipperz.PM.UI.Components.Cards.CertificateRenderer(someCertificateInfo));
return '<html>'+
'<head>' +
'<title>' + title + '</title>' +
// '<meta name="viewport" content="width=device-width, height=device-height, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />' +
'<style type="text/css">' + style + '</style>' +
'<link rel="apple-touch-icon" sizes="144x144" href="data:image/png;charset=utf-8;base64,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
'<link rel="apple-touch-icon" sizes="114x114" href="data:image/png;charset=utf-8;base64,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
'<link rel="apple-touch-icon" sizes="72x72" href="data:image/png;charset=utf-8;base64,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
'<link rel="apple-touch-icon" href="data:image/png;charset=utf-8;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAEJGlDQ1BJQ0MgUHJvZmlsZQAAOBGFVd9v21QUPolvUqQWPyBYR4eKxa9VU1u5GxqtxgZJk6XtShal6dgqJOQ6N4mpGwfb6baqT3uBNwb8AUDZAw9IPCENBmJ72fbAtElThyqqSUh76MQPISbtBVXhu3ZiJ1PEXPX6yznfOec7517bRD1fabWaGVWIlquunc8klZOnFpSeTYrSs9RLA9Sr6U4tkcvNEi7BFffO6+EdigjL7ZHu/k72I796i9zRiSJPwG4VHX0Z+AxRzNRrtksUvwf7+Gm3BtzzHPDTNgQCqwKXfZwSeNHHJz1OIT8JjtAq6xWtCLwGPLzYZi+3YV8DGMiT4VVuG7oiZpGzrZJhcs/hL49xtzH/Dy6bdfTsXYNY+5yluWO4D4neK/ZUvok/17X0HPBLsF+vuUlhfwX4j/rSfAJ4H1H0qZJ9dN7nR19frRTeBt4Fe9FwpwtN+2p1MXscGLHR9SXrmMgjONd1ZxKzpBeA71b4tNhj6JGoyFNp4GHgwUp9qplfmnFW5oTdy7NamcwCI49kv6fN5IAHgD+0rbyoBc3SOjczohbyS1drbq6pQdqumllRC/0ymTtej8gpbbuVwpQfyw66dqEZyxZKxtHpJn+tZnpnEdrYBbueF9qQn93S7HQGGHnYP7w6L+YGHNtd1FJitqPAR+hERCNOFi1i1alKO6RQnjKUxL1GNjwlMsiEhcPLYTEiT9ISbN15OY/jx4SMshe9LaJRpTvHr3C/ybFYP1PZAfwfYrPsMBtnE6SwN9ib7AhLwTrBDgUKcm06FSrTfSj187xPdVQWOk5Q8vxAfSiIUc7Z7xr6zY/+hpqwSyv0I0/QMTRb7RMgBxNodTfSPqdraz/sDjzKBrv4zu2+a2t0/HHzjd2Lbcc2sG7GtsL42K+xLfxtUgI7YHqKlqHK8HbCCXgjHT1cAdMlDetv4FnQ2lLasaOl6vmB0CMmwT/IPszSueHQqv6i/qluqF+oF9TfO2qEGTumJH0qfSv9KH0nfS/9TIp0Wboi/SRdlb6RLgU5u++9nyXYe69fYRPdil1o1WufNSdTTsp75BfllPy8/LI8G7AUuV8ek6fkvfDsCfbNDP0dvRh0CrNqTbV7LfEEGDQPJQadBtfGVMWEq3QWWdufk6ZSNsjG2PQjp3ZcnOWWing6noonSInvi0/Ex+IzAreevPhe+CawpgP1/pMTMDo64G0sTCXIM+KdOnFWRfQKdJvQzV1+Bt8OokmrdtY2yhVX2a+qrykJfMq4Ml3VR4cVzTQVz+UoNne4vcKLoyS+gyKO6EHe+75Fdt0Mbe5bRIf/wjvrVmhbqBN97RD1vxrahvBOfOYzoosH9bq94uejSOQGkVM6sN/7HelL4t10t9F4gPdVzydEOx83Gv+uNxo7XyL/FtFl8z9ZAHF4bBsrEwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAYBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDUuNC4wIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIj4KICAgICAgICAgPHBob3Rvc2hvcDpIZWFkbGluZT5DTElQUEVSWl9TT0xPX0xPR08tYXJhbmNpbzwvcGhvdG9zaG9wOkhlYWRsaW5lPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KGJtNZAAABphJREFUWAnFV1uIVVUY/v+19jl7z+XMMPbQQ4gvqYREkGF0o0kUhAqE0IF6EF8KoqyXasZ6GFDPmXrLGM1LL1aIDkagdHNSCMJ6MAgy8kF76DKReZsZZ/ZtrdX3r33OzJkZTR2R1mHvvS7/+i/ff1nrkHPE9D81kR0wk3Nbo0VG0SroYcnhx4VSGmsGI/nKD313S7oKH6Iy3kYHPMw8+XsgDI22D+iy2ksGA4unCRMtBDIuMUER8iyETRMNRjfWYIHfl4E8t0/hXSigvX0YCmN5mhsE2ZxiytyvfpqpHahpwCeqyiONBck5e/0KWBZuFtpABXSXpyvQII8AFizleIkDAAiewr6CJWhcgplhpdweitPTwojb2tsptXo8U6a9nS2l7uqYgONE6nQbXRnNyi33Uu6OKqZKDjeAT6EAekorvKAp1NRQwzOTF9g6xdxJil62Oa+kMNyhVPIhvzb+tzC4meYGaARGigQK6tgVCBSWF7yaXOC7hVKOc2IV0TJSPGgnoldM1Q1OUGl/ZfP4OdnotlNIFzyCwBLtFIxYhrF8V2HXC5TBvBbxlqfyRHUEYB2LN634VTKgSQlPByUECRd72BQUWQJo3m1Lsg2uGr1PaXyAN9Go0LpdVKJhsjwE2qFCiltXfL2UWbwbCGiqMKnYKZtRCnKZh1OaWuEWT28RklgpqRZ1P3y621G0Ma/Szt/SeAiWxrLLKzJChvunArWJ2XTXC9ElfcKMun0QnqlWLivlhQuUhacEk+YHwmXNTrrUgYpb6CHE0L5F5egzt61lPSzWArkId/0w5mfsvkZjSZGGV7Jq9Dg0ehG061QLZhP4xALKa20XtRjriGhQRxxCqwTOcTRsrXsveCs53CzXvRMuthn/gFRsB3Jr+M3kyxkKCDFcxHktXK1JvQSjn6YWSJ/lt2amU30EkG8oWKh1RJPI4Uk6YR1vH8vCL7r6L11y1XAJguyk0tMKFKV4oHQf2WAx9U0e8mj0JV8BumFTLq+lCbUGc9rZeoBOSZzZaYDkEpcDAQBLrQjdVlb0RKU0eRnUnycI9VIRS1ObfVAZE9yjtdtvauGnWY0Hg974awiF/9NPQCnPLTWfouAQIpWtVJmmVgQhm5zaYGa7WotidMRUw6FsS7Sqie6muxJ8kOSBQYomngFiZKb4eh1A3v2kx9wxHDYrVZuEEj9jr7gnTTU6gPw/iqw2KF6SG85IpZjdMC+HlnEu0MRnefPkt8gAX5CgSIQli7Gkd10l3yuGIFA+XVDJzHj0LCDZCBGPMRDxSRgXDp0rdZqJ9ARXuI2scZcc8wGtzE7uzX5sprp6FohOgpV/g9EAdVoX9YDXBsw97LOgmcv1+hJVJTwXkJuGDsLleylIvuM3aCxGFpTmZAFkZrWWR0zNdasg2FMcMvHu0WrlUJtJe9y4W+kL03WyoKGXVHQUB4s06IRpd8JjPdZGMDEeDhHYyNYZYPosQNosVBFvtXG2DpmwW3HyMfeOnQfTHe4g7aKL8P7I7PBpiJz+nvyTePlyjLugxHp/btD5fupY0NEBOb5CC7F4a6p5BbQ2k4Q7GarffYjXQWOjDXmN9ugk/giMZKc/u6d23UTnjn45pPw5JYVVoQ7MaF4BRLaWKMZZQApVDIMVELvClKPnTJWOY0kiWs5MNxtC4YbUFWDBgicUmSO8Of1F5iUV8QloAcozUjEMsN/nhqwWrUBA4l16KU3YlM6hVC5CZSdtXTdWuptB84WjsXvOF5rkapOpRR8orXfx61f+AslMkbMQqPPDdaOM0GH6A2b24KB4FSfdiE9DuYkWdtzQlyu8UHVyv83y02ZbNBBvCZceL5CgBJVwts4eAXEwLqZSwIPxNDjT0T/2vatFh4HG8wjo1ViGbohsuaBdr8WCFyoBczs6PWVFdz9K0Q4E4TGfBbP2N1zQmOZKa9qFwT/cF5/Ft9fVOt8md1no7Hg614LGxsa3I
'<link rel="shortcut icon" href="data:image/png;charset=utf-8;base64,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
'<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />' +
'</head>' +
'<body>' + body + '</body>' +
'</html>';
},
//------------------------------------------------------------------------------
'saveResult': function (someCertificateInfo) {
var blob;
var filename;
blob = new Blob([this.renderToHtml(someCertificateInfo)], {type: "text/html;charset=utf-8"});
// filename = 'Clipperz Certificate - ' + someCertificateInfo['certificateDetails']['transaction']['reference'] + '.html';
filename = (new XDate(someCertificateInfo['certificateInfo']['creationDate'])).toString("yyMMddHHmm") + ' - Clipperz certificate - ' + someCertificateInfo['certificateDetails']['metadata']['label'].substring(0,20) + '.html';
saveAs(blob, filename);
},
//==============================================================================
'run': function (someCertificateInfo) {
console.log("CertificateDownloadController.run", someCertificateInfo);
return this.saveResult(someCertificateInfo);
},
//==============================================================================
__syntaxFix__: "syntax fix"
});