Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- angular.module('lecta.admin.factories').factory 'PrintCodesService', [
- '$filter'
- ($filter) ->
- formatCertificate = (certificate) ->
- """
- СЕРТИФИКАТ
- Код активации: #{certificate.code}
- Активировать до: #{moment(certificate.expires_at).format('DD.MM.YYYY')} г. (включительно)
- Чтобы воспользоваться сертификатом:
- 1. Зарегистрируйтесь на сайте www.lecta.ru или в приложении LECTA.
- 2. Нажмите «Активировать код» и введите код активации.
- -----------------------------------------------------
- """
- formatCertificateAsHtml = (certificate) ->
- """
- <div>
- <h3>Сертификат</h3>
- <p>Код активации: <strong>#{certificate.code}</strong></p>
- <p>Активировать до: <b>#{moment(certificate.expires_at).format('DD.MM.YYYY')}</b> г. (включительно)</p>
- <p class="bot">Чтобы воспользоваться сертификатом:</p>
- <p>1. Зарегистрируйтесь на сайте www.lecta.ru или в приложении LECTA.</p>
- <p>2. Нажмите «Активировать код» и введите код активации.</p>
- </div>
- """
- headTemplate = ->
- """
- <style type="text/css">
- body { font-family: Arial; font-size: 8pt; }
- div { border: 1px dashed #b4b3b4; display: inline-block; padding: 14pt; box-sizing: border-box;}
- p { line-height: 0.6; }
- p.bot { border-top: 1px solid #b4b3b4; margin-top: 15pt; padding-top: 15pt; }
- h3 { font-size: 15pt; font-weight: 400; margin: 0; }
- strong { font-size: 12pt; }
- </style>
- <title>Сертификаты LECTA</title>
- """
- pageTemplate = (body) ->
- """
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title>LECTA</title>
- </head>
- <body>#{body}</body>
- </html>
- """
- certificatesAsHtml = (certificates) ->
- certificates.map((certificate) -> formatCertificateAsHtml(certificate)).join('\n')
- {
- view: (certificates) ->
- win = open('LECTA', '_blank')
- win.document.write pageTemplate(certificatesAsHtml(certificates))
- win.focus()
- print: (certificates, no_print) ->
- $iframe = $('.printpage')
- if $iframe.length == 0
- $('<iframe>').hide().addClass('printpage').appendTo 'body'
- $iframe = $('.printpage')
- $iframe.ready -> $iframe.contents().find('head').append headTemplate()
- else
- $iframe.contents().find('body').empty()
- $iframe.ready ->
- $iframe.contents().find('body').append certificatesAsHtml(certificates)
- $iframe.get(0).contentWindow.print()
- download: (certificates) ->
- text = certificates.map((certificate) -> formatCertificate(certificate)).join('')
- day = moment(certificates[0].expires_at).format('DD')
- month = moment(certificates[0].expires_at).format('MM')
- download(text, "certificates_#{certificates.length}_#{day}#{month}.txt", 'text/plain')
- }
- ]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement