moved to pug from swig and fixed public form when subdomains are disabled
This commit is contained in:
parent
62a34f9ab6
commit
25ce55b4c7
@ -25,10 +25,13 @@ module.exports = function(app) {
|
||||
} else {
|
||||
app.route('/forms/:formIdFast([a-zA-Z0-9]+)/render')
|
||||
.get(forms.readForRender);
|
||||
|
||||
app.route('/view/')
|
||||
.get(core.form);
|
||||
}
|
||||
|
||||
app.route('/forms/:formIdFast([a-zA-Z0-9]+)')
|
||||
.post(forms.createSubmission)
|
||||
.post(forms.createSubmission)
|
||||
|
||||
app.route('/forms')
|
||||
.get(auth.isAuthenticatedOrApiKey, forms.list)
|
||||
|
||||
10
app/views/404.server.view.pug
Normal file
10
app/views/404.server.view.pug
Normal file
@ -0,0 +1,10 @@
|
||||
extends layout.server.view.pug
|
||||
|
||||
block content
|
||||
section.public-form.auth.sigin-view.valign-wrapper
|
||||
div.row.valign
|
||||
h3.col-md-12.text-center=__('404_Header')
|
||||
div.col-md-4.col-md-offset-4
|
||||
div.col-md-12.text-center(style="padding-bottom: 50px;")
|
||||
| #{url} is not a valid path.
|
||||
|
||||
9
app/views/500.server.view.pug
Normal file
9
app/views/500.server.view.pug
Normal file
@ -0,0 +1,9 @@
|
||||
extends layout.server.view.pug
|
||||
|
||||
block content
|
||||
section.public-form.auth.sigin-view.valign-wrapper
|
||||
div.row.valign
|
||||
h3.col-md-12.text-center=__('500_Header')
|
||||
div.col-md-4.col-md-offset-4
|
||||
div.col-md-12.text-center(style="padding-bottom: 50px;")
|
||||
| #{error}
|
||||
110
app/views/form.server.view.pug
Normal file
110
app/views/form.server.view.pug
Normal file
@ -0,0 +1,110 @@
|
||||
doctype html
|
||||
html(lang='en', xmlns='http://www.w3.org/1999/xhtml')
|
||||
head
|
||||
title #{title} Form
|
||||
// General META
|
||||
meta(charset='utf-8')
|
||||
meta(http-equiv='Content-type', content='text/html;charset=UTF-8')
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
|
||||
meta(name='viewport', content='width=device-width,initial-scale=1,maximum-scale=1')
|
||||
meta(name='apple-mobile-web-app-capable', content='yes')
|
||||
meta(name='apple-mobile-web-app-status-bar-style', content='black')
|
||||
// Semantic META
|
||||
meta(name='keywords', content='#{keywords}')
|
||||
meta(name='description', content='#{description}')
|
||||
// Facebook META
|
||||
meta(property='og:site_name', content='#{title}')
|
||||
meta(property='og:title', content='#{title}')
|
||||
meta(property='og:description', content='#{description}')
|
||||
meta(property='og:url', content='#{url}')
|
||||
meta(property='og:image', content='/img/brand/logo.png')
|
||||
meta(property='og:type', content='website')
|
||||
// Twitter META
|
||||
meta(name='twitter:title', content='#{title}')
|
||||
meta(name='twitter:description', content='#{description}')
|
||||
meta(name='twitter:url', content='#{url}')
|
||||
meta(name='twitter:image', content='/img/brand/logo.png')
|
||||
style.
|
||||
.loader {
|
||||
position: fixed;
|
||||
left: 0px;
|
||||
top: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 9999;
|
||||
background: url('/static/dist/page-loader.gif') 50% 35% no-repeat rgb(249,249,249);
|
||||
background-size: 50px 50px;
|
||||
}
|
||||
// Fav Icon
|
||||
link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon')
|
||||
|
||||
body(ng-cloak='')
|
||||
.loader
|
||||
section.content
|
||||
section(ui-view='')
|
||||
//Embedding The User Object signupDisabled, socketPort and socketUrl Boolean
|
||||
script(type='text/javascript').
|
||||
var signupDisabled = !{signupDisabled};
|
||||
var socketPort = false;
|
||||
var socketUrl = false;
|
||||
var subdomainsDisabled = !{subdomainsDisabled};
|
||||
|
||||
//Embedding socketPort
|
||||
if socketPort
|
||||
script(type='text/javascript').
|
||||
socketPort = !{socketPort}
|
||||
|
||||
//Embedding socketUrl
|
||||
if socketUrl
|
||||
script(type='text/javascript').
|
||||
socketUrl = !{socketUrl}
|
||||
script(src='/static/lib/jquery/dist/jquery.min.js', type='text/javascript')
|
||||
link(rel='stylesheet', href='/static/lib/font-awesome/css/font-awesome.min.css')
|
||||
link(rel='stylesheet', href='/static/lib/bootstrap/dist/css/bootstrap.min.css')
|
||||
|
||||
//Bower CSS dependencies
|
||||
each bowerCssFile in bowerCssFiles
|
||||
link(rel='stylesheet', href='#{bowerCssFile}')
|
||||
|
||||
link(rel='stylesheet', href='/static/lib/angular-input-stars/angular-input-stars.css')
|
||||
link(rel='stylesheet', href='/static/lib/jquery-ui/themes/flick/jquery-ui.min.css')
|
||||
// end Bower CSS dependencies
|
||||
|
||||
//Application CSS Files
|
||||
each cssFile in cssFiles
|
||||
link(rel='stylesheet', href=cssFile)
|
||||
// end Application CSS Files
|
||||
|
||||
//Socket.io Client Dependency
|
||||
script(src='/static/lib/socket.io-client/dist/socket.io.min.js')
|
||||
script(src='/static/lib/jquery-ui/jquery-ui.js', type='text/javascript')
|
||||
script(src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js', integrity='sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa', crossorigin='anonymous')
|
||||
|
||||
//Minified Bower Dependencies
|
||||
script(src='/static/dist/vendor.min.js')
|
||||
script(src='/static/lib/angular-ui-date/src/date.js', type='text/javascript')
|
||||
|
||||
//Application JavaScript Files
|
||||
each jsFile in formJSFiles
|
||||
script(type='text/javascript', src=jsFile)
|
||||
// end Application Javascript dependencies
|
||||
|
||||
if process.env.NODE_ENV === 'development'
|
||||
//Livereload script rendered
|
||||
script(async='', type='text/javascript', src='http://#{request.hostname}:35729/livereload.js')
|
||||
|
||||
script Raven.config('https://825fefd6b4ed4a4da199c1b832ca845c@sentry.tellform.com/2').install();
|
||||
|
||||
if google_analytics_id
|
||||
script(type='text/javascript').
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{google_analytics_id}}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
script(type="text/javascript").
|
||||
window.heap=window.heap||[],heap.load=function(e,t){window.heap.appid=e,window.heap.config=t=t||{};var r=t.forceSSL||"https:"===document.location.protocol,a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=(r?"https:":"http:")+"//cdn.heapanalytics.com/js/heap-"+e+".js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n);for(var o=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=["addEventProperties","addUserProperties","clearEventProperties","identify","removeEventProperty","setEventProperties","track","unsetEventProperty"],c=0;c<p.length;c++)heap[p[c]]=o(p[c])};
|
||||
heap.load("2213510609");
|
||||
4
app/views/index.server.view.pug
Normal file
4
app/views/index.server.view.pug
Normal file
@ -0,0 +1,4 @@
|
||||
extends layout.server.view.pug
|
||||
|
||||
block content
|
||||
section.content(ui-view='')
|
||||
@ -122,8 +122,8 @@
|
||||
<script>
|
||||
window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;
|
||||
ga('create','{{google_analytics_id}}','auto');ga('send','pageview')
|
||||
</script>
|
||||
<script src="https://www.google-analytics.com/analytics.js" async defer></script>
|
||||
</script>
|
||||
<script src="https://www.google-analytics.com/analytics.js" async defer></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
window.heap=window.heap||[],heap.load=function(e,t){window.heap.appid=e,window.heap.config=t=t||{};var r=t.forceSSL||"https:"===document.location.protocol,a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=(r?"https:":"http:")+"//cdn.heapanalytics.com/js/heap-"+e+".js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n);for(var o=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=["addEventProperties","addUserProperties","clearEventProperties","identify","removeEventProperty","setEventProperties","track","unsetEventProperty"],c=0;c<p.length;c++)heap[p[c]]=o(p[c])};
|
||||
|
||||
106
app/views/layout.server.view.pug
Normal file
106
app/views/layout.server.view.pug
Normal file
@ -0,0 +1,106 @@
|
||||
doctype html
|
||||
html(lang='en', xmlns='http://www.w3.org/1999/xhtml')
|
||||
head
|
||||
title=title
|
||||
|
||||
// General META
|
||||
meta(charset='utf-8')
|
||||
meta(http-equiv='Content-type', content='text/html;charset=UTF-8')
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
|
||||
meta(name='viewport', content='width=device-width,initial-scale=1,maximum-scale=1')
|
||||
meta(name='apple-mobile-web-app-capable', content='yes')
|
||||
meta(name='apple-mobile-web-app-status-bar-style', content='black')
|
||||
|
||||
// Semantic META
|
||||
meta(name='keywords', content=keywords)
|
||||
meta(name='description', content=description)
|
||||
|
||||
// Facebook META
|
||||
meta(property='og:site_name', content=title)
|
||||
meta(property='og:title', content=title)
|
||||
meta(property='og:description', content=description)
|
||||
meta(property='og:url', content=url)
|
||||
meta(property='og:image', content='/img/brand/logo.png')
|
||||
meta(property='og:type', content='website')
|
||||
|
||||
// Twitter META
|
||||
meta(name='twitter:title', content=title)
|
||||
meta(name='twitter:description', content=description)
|
||||
meta(name='twitter:url', content=url)
|
||||
meta(name='twitter:image', content='/img/brand/logo.png')
|
||||
|
||||
// Fav Icon
|
||||
link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon')
|
||||
link(rel='stylesheet', href='https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css')
|
||||
link(rel='stylesheet', href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css', integrity='sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u', crossorigin='anonymous')
|
||||
link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900')
|
||||
|
||||
//Bower CSS dependencies
|
||||
each bowerCssFile in bowerCssFiles
|
||||
link(rel='stylesheet', href=bowerCssFile)
|
||||
link(rel='stylesheet', href='/static/lib/angular-input-stars/angular-input-stars.css')
|
||||
link(rel='stylesheet', href='/static/lib/jquery-ui/themes/flick/jquery-ui.css')
|
||||
link(rel='stylesheet', href='/static/modules/core/css/github-fork-ribbon.css')
|
||||
// end Bower CSS dependencies
|
||||
|
||||
//Application CSS Files
|
||||
each cssFile in cssFiles
|
||||
link(rel='stylesheet', href=cssFile)
|
||||
// end Application CSS Files
|
||||
|
||||
body(ng-cloak='')
|
||||
|
||||
block content
|
||||
|
||||
script(src='/static/lib/file-saver.js/FileSaver.js', type='text/javascript')
|
||||
|
||||
//Embedding The User Object
|
||||
script(type='text/javascript') var user = null;
|
||||
|
||||
//Embedding The signupDisabled Boolean
|
||||
script(type='text/javascript').
|
||||
var signupDisabled = !{signupDisabled};
|
||||
var socketPort = false;
|
||||
var socketUrl = false;
|
||||
var subdomainsDisabled = !{subdomainsDisabled};
|
||||
|
||||
//Embedding socketPort
|
||||
if socketPort
|
||||
script(type='text/javascript').
|
||||
socketPort = !{socketPort}
|
||||
|
||||
//Embedding socketUrl
|
||||
if socketUrl
|
||||
script(type='text/javascript').
|
||||
socketUrl = !{socketUrl}
|
||||
|
||||
script(src='https://code.jquery.com/jquery-3.2.1.min.js')
|
||||
script(src='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js', integrity='sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa', crossorigin='anonymous')
|
||||
|
||||
//Socket.io Client Dependency
|
||||
script(src='https://cdn.socket.io/socket.io-1.4.5.js')
|
||||
|
||||
//Bower JS dependencies
|
||||
each bowerJSFile in bowerJSFiles
|
||||
script(type='text/javascript', src=bowerJSFile)
|
||||
// end Bower JS dependencies
|
||||
|
||||
script(type='text/javascript', src='https://cdnjs.cloudflare.com/ajax/libs/angular-strap/2.3.8/angular-strap.min.js')
|
||||
|
||||
//Application JavaScript Files
|
||||
each jsFile in jsFiles
|
||||
script(type='text/javascript', src=jsFile)
|
||||
// end Application Javascript dependencies
|
||||
|
||||
if process.env.NODE_ENV === 'development'
|
||||
script(type='text/javascript', src='http://#{request.hostname}:35729/livereload.js')
|
||||
script(src='https://cdn.ravenjs.com/2.3.0/angular/raven.min.js')
|
||||
script Raven.config('https://825fefd6b4ed4a4da199c1b832ca845c@sentry.tellform.com/2').install();
|
||||
|
||||
script window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;ga('create','{{google_analytics_id}}','auto');ga('send','pageview')
|
||||
|
||||
script(src='https://www.google-analytics.com/analytics.js', async='', defer='')
|
||||
|
||||
script(type="text/javascript").
|
||||
window.heap=window.heap||[],heap.load=function(e,t){window.heap.appid=e,window.heap.config=t=t||{};var r=t.forceSSL||"https:"===document.location.protocol,a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=(r?"https:":"http:")+"//cdn.heapanalytics.com/js/heap-"+e+".js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n);for(var o=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=["addEventProperties","addUserProperties","clearEventProperties","identify","removeEventProperty","setEventProperties","track","unsetEventProperty"],c=0;c<p.length;c++)heap[p[c]]=o(p[c])};
|
||||
heap.load("2213510609");
|
||||
62
app/views/redoc.server.view.pug
Normal file
62
app/views/redoc.server.view.pug
Normal file
@ -0,0 +1,62 @@
|
||||
doctype html
|
||||
html(lang='en', xmlns='http://www.w3.org/1999/xhtml')
|
||||
head
|
||||
title #{title}
|
||||
|
||||
// General META
|
||||
meta(charset='utf-8')
|
||||
meta(http-equiv='Content-type', content='text/html;charset=UTF-8')
|
||||
meta(http-equiv='X-UA-Compatible', content='IE=edge,chrome=1')
|
||||
meta(name='viewport', content='width=device-width,initial-scale=1,maximum-scale=1')
|
||||
meta(name='apple-mobile-web-app-capable', content='yes')
|
||||
meta(name='apple-mobile-web-app-status-bar-style', content='black')
|
||||
|
||||
// Semantic META
|
||||
meta(name='keywords', content='#{keywords}')
|
||||
meta(name='description', content='#{description}')
|
||||
|
||||
// Facebook META
|
||||
meta(property='og:site_name', content='#{title}')
|
||||
meta(property='og:title', content='#{title}')
|
||||
meta(property='og:description', content='#{description}')
|
||||
meta(property='og:url', content='{{url}}')
|
||||
meta(property='og:image', content='/img/brand/logo.png')
|
||||
meta(property='og:type', content='website')
|
||||
|
||||
// Twitter META
|
||||
meta(name='twitter:title', content='#{title}')
|
||||
meta(name='twitter:description', content='#{description}')
|
||||
meta(name='twitter:url', content='{{url}}')
|
||||
meta(name='twitter:image', content='/img/brand/logo.png')
|
||||
|
||||
// Fav Icon
|
||||
link(href='/static/modules/core/img/brand/favicon.ico', rel='shortcut icon', type='image/x-icon')
|
||||
link(rel='stylesheet', href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900')
|
||||
|
||||
//Application CSS Files
|
||||
each cssFile in cssFiles
|
||||
link(rel='stylesheet', href='#{cssFile}')
|
||||
// end Application CSS Files
|
||||
body
|
||||
redoc(spec-url='/static/swagger.json')
|
||||
script(src='https://rebilly.github.io/ReDoc/releases/latest/redoc.min.js')
|
||||
|
||||
//Bower JS dependencies
|
||||
each bowerJSFile in bowerJSFiles
|
||||
script(type='text/javascript', src='#{bowerJSFile}')
|
||||
// end Bower JS dependencies
|
||||
|
||||
script(type='text/javascript', src='https://cdnjs.cloudflare.com/ajax/libs/angular-strap/2.3.8/angular-strap.min.js')
|
||||
|
||||
if process.env.NODE_ENV === 'development'
|
||||
script(src='https://cdn.ravenjs.com/2.3.0/angular/raven.min.js')
|
||||
|
||||
script Raven.config('https://825fefd6b4ed4a4da199c1b832ca845c@sentry.tellform.com/2').install();
|
||||
|
||||
script (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||||
|
||||
ga('create', '{{google_analytics_id}}', 'auto');
|
||||
ga('send', 'pageview');
|
||||
51
app/views/verification.email.view.pug
Normal file
51
app/views/verification.email.view.pug
Normal file
@ -0,0 +1,51 @@
|
||||
doctype html
|
||||
html
|
||||
head
|
||||
body(style='padding: 0; width: 100% !important; -webkit-text-size-adjust: 100%; margin: 0; -ms-text-size-adjust: 100%', marginheight='0', marginwidth='0')
|
||||
| @import url(//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&subset=latin,latin-ext);
|
||||
style a {
|
||||
color: #007ee6;
|
||||
text-decoration: none;
|
||||
}
|
||||
meta(content='text/html; charset=utf-8', http-equiv='Content-Type')
|
||||
center
|
||||
table(cellpadding='8', cellspacing='0', style='*width: 540px; padding: 0; width: 100% !important; background: #ffffff; margin: 0; background-color: #ffffff', border='0')
|
||||
tbody
|
||||
tr
|
||||
td(valign='top')
|
||||
table(cellpadding='0', cellspacing='0', style='border-radius: 6px; -webkit-border-radius: 6px; border: 1px #c0c0c0 solid; -moz-border-radius: 6px', border='0', align='center')
|
||||
tbody
|
||||
tr
|
||||
td(colspan='3', height='6')
|
||||
tr
|
||||
td
|
||||
table(cellpadding='0', cellspacing='0', style='line-height: 25px', border='0', align='center')
|
||||
tbody
|
||||
tr
|
||||
td(colspan='3', height='30')
|
||||
tr
|
||||
td(width='36')
|
||||
td(width='454', align='left', style='color: #444444; border-collapse: collapse; font-size: 11pt; font-family: 'Open Sans', 'Lucida Grande', 'Segoe UI', Arial, Verdana, 'Lucida Sans Unicode', Tahoma, 'Sans Serif'; max-width: 454px', valign='top')
|
||||
p Hello there!
|
||||
p Welcome to TellForm! Here is a special link to activate your new account:
|
||||
p
|
||||
a(href='https://${URL}') Activate my account
|
||||
p
|
||||
| Thanks so much for using our services! If you have any questions, or suggestions, please feel free to email us here at
|
||||
a(href='mailto:team@tellform.com') team@tellform.com
|
||||
| .
|
||||
p - The TellForm team
|
||||
td(width='36')
|
||||
tr
|
||||
td(colspan='3', height='36')
|
||||
table(cellpadding='0', cellspacing='0', align='center', border='0')
|
||||
tbody
|
||||
tr
|
||||
td(height='10')
|
||||
tr
|
||||
td(style='padding: 0; border-collapse: collapse')
|
||||
table(cellpadding='0', cellspacing='0', align='center', border='0')
|
||||
tbody
|
||||
tr(style='color: #c0c0c0; font-size: 11px; font-family: 'Open Sans', 'Lucida Grande', 'Segoe UI', Arial, Verdana, 'Lucida Sans Unicode', Tahoma, 'Sans Serif'; -webkit-text-size-adjust: none')
|
||||
td(width='400', align='left')
|
||||
td(width='128', align='right') © TellForm 2017
|
||||
49
app/views/welcome.email.view.pug
Normal file
49
app/views/welcome.email.view.pug
Normal file
@ -0,0 +1,49 @@
|
||||
doctype html
|
||||
html
|
||||
head
|
||||
body(style='padding: 0; width: 100% !important; -webkit-text-size-adjust: 100%; margin: 0; -ms-text-size-adjust: 100%', marginheight='0', marginwidth='0')
|
||||
| @import url(//fonts.googleapis.com/css?family=Open+Sans:300,400,600,700&subset=latin,latin-ext);
|
||||
style a {
|
||||
color: #007ee6;
|
||||
text-decoration: none;
|
||||
}
|
||||
meta(content='text/html; charset=utf-8', http-equiv='Content-Type')
|
||||
center
|
||||
table(cellpadding='8', cellspacing='0', style='*width: 540px; padding: 0; width: 100% !important; background: #ffffff; margin: 0; background-color: #ffffff', border='0')
|
||||
tbody
|
||||
tr
|
||||
td(valign='top')
|
||||
table(cellpadding='0', cellspacing='0', style='border-radius: 6px; -webkit-border-radius: 6px; border: 1px #c0c0c0 solid; -moz-border-radius: 6px', border='0', align='center')
|
||||
tbody
|
||||
tr
|
||||
td(colspan='3', height='6')
|
||||
tr
|
||||
td
|
||||
table(cellpadding='0', cellspacing='0', style='line-height: 25px', border='0', align='center')
|
||||
tbody
|
||||
tr
|
||||
td(colspan='3', height='30')
|
||||
tr
|
||||
td(width='36')
|
||||
td(width='454', align='left', style='color: #444444; border-collapse: collapse; font-size: 11pt; font-family: 'Open Sans', 'Lucida Grande', 'Segoe UI', Arial, Verdana, 'Lucida Sans Unicode', Tahoma, 'Sans Serif'; max-width: 454px', valign='top')
|
||||
p Hello there!
|
||||
p We would like to welcome you as our newest member!
|
||||
p
|
||||
| Thanks so much for using TellForm! If you have any questions, or suggestions, please feel free to email us here at
|
||||
a(href='mailto:team@tellform.com') team@tellform.com
|
||||
| .
|
||||
p - The TellForm team
|
||||
td(width='36')
|
||||
tr
|
||||
td(colspan='3', height='36')
|
||||
table(cellpadding='0', cellspacing='0', align='center', border='0')
|
||||
tbody
|
||||
tr
|
||||
td(height='10')
|
||||
tr
|
||||
td(style='padding: 0; border-collapse: collapse')
|
||||
table(cellpadding='0', cellspacing='0', align='center', border='0')
|
||||
tbody
|
||||
tr(style='color: #c0c0c0; font-size: 11px; font-family: 'Open Sans', 'Lucida Grande', 'Segoe UI', Arial, Verdana, 'Lucida Sans Unicode', Tahoma, 'Sans Serif'; -webkit-text-size-adjust: none')
|
||||
td(width='400', align='left')
|
||||
td(width='128', align='right') © TellForm 2017
|
||||
2
config/env/all.js
vendored
2
config/env/all.js
vendored
@ -28,7 +28,7 @@ module.exports = {
|
||||
socketPort: process.env.SOCKET_PORT || 20523,
|
||||
socketPortExternallyVisible: (process.env.SOCKET_PORT_EXTERN_VISIBLE === 'TRUE'),
|
||||
|
||||
templateEngine: 'swig',
|
||||
templateEngine: 'pug',
|
||||
|
||||
signupDisabled: (process.env.SIGNUP_DISABLED === 'TRUE'),
|
||||
enableClusterMode: (process.env.ENABLE_CLUSTER_MODE === 'TRUE'),
|
||||
|
||||
@ -20,7 +20,8 @@ var fs = require('fs'),
|
||||
config = require('./config'),
|
||||
consolidate = require('consolidate'),
|
||||
path = require('path'),
|
||||
client = new raven.Client(config.DSN);
|
||||
client = new raven.Client(config.DSN),
|
||||
i18n = require('i18n');
|
||||
|
||||
var mongoose = require('mongoose');
|
||||
|
||||
@ -152,6 +153,23 @@ module.exports = function(db) {
|
||||
}
|
||||
});
|
||||
|
||||
//Setup i18n
|
||||
i18n.configure({
|
||||
locales: ['en', 'es', 'fr', 'de', 'it'],
|
||||
cookie: 'i18n_cookie',
|
||||
directory: __dirname + '/locales'
|
||||
});
|
||||
app.use(function(req, res, next) {
|
||||
// express helper for natively supported engines
|
||||
res.locals.__ = res.__ = function() {
|
||||
console.log('res.locals.__');
|
||||
console.log(arguments);
|
||||
return i18n.__.apply(req, arguments);
|
||||
};
|
||||
|
||||
next();
|
||||
});
|
||||
|
||||
//Setup Prerender.io
|
||||
app.use(require('prerender-node').set('prerenderToken', process.env.PRERENDER_TOKEN));
|
||||
|
||||
@ -176,11 +194,11 @@ module.exports = function(db) {
|
||||
}));
|
||||
|
||||
|
||||
// Set swig as the template engine
|
||||
app.engine('server.view.html', consolidate[config.templateEngine]);
|
||||
// Set template engine as defined in the config files
|
||||
app.engine('server.view.pug', consolidate.pug);
|
||||
|
||||
// Set views path and view engine
|
||||
app.set('view engine', 'server.view.html');
|
||||
app.set('view engine', 'server.view.pug');
|
||||
app.set('views', './app/views');
|
||||
|
||||
// Enable logger (morgan)
|
||||
|
||||
4
config/locales/de.json
Normal file
4
config/locales/de.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"404_Header": "404 - Seite nicht gefunden",
|
||||
"500_Header": "500 - Interner Serverfehler",
|
||||
}
|
||||
4
config/locales/en.json
Normal file
4
config/locales/en.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"404_Header": "404 - Page not found",
|
||||
"500_Header": "500 - Internal Server Error"
|
||||
}
|
||||
4
config/locales/es.json
Normal file
4
config/locales/es.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"404_Header": "404 - Página no encontrada",
|
||||
"500_Header": "500 - Error interno del servidor",
|
||||
}
|
||||
4
config/locales/fr.json
Normal file
4
config/locales/fr.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"404_Header": "404 - Page non trouvée",
|
||||
"500_Header": "500 - Erreur interne du serveur",
|
||||
}
|
||||
4
config/locales/it.json
Normal file
4
config/locales/it.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"404_Header": "404 - Pagina non trovata",
|
||||
"500_Header": "500 - Errore Server Interno",
|
||||
}
|
||||
@ -33,7 +33,7 @@
|
||||
"compression": "~1.6.0",
|
||||
"connect": "^3.4.1",
|
||||
"connect-mongo": "~0.8.2",
|
||||
"consolidate": "~0.13.1",
|
||||
"consolidate": "~0.14.5",
|
||||
"cookie-parser": "~1.4.0",
|
||||
"deep-diff": "^0.3.4",
|
||||
"dotenv": "^2.0.0",
|
||||
@ -51,6 +51,11 @@
|
||||
"grunt-html2js": "~0.3.5",
|
||||
"grunt-ng-annotate": "~1.0.1",
|
||||
"helmet": "3.5.0",
|
||||
"i18n": "^0.8.3",
|
||||
"i18n-node": "^2.1.5",
|
||||
"i18n-x": "^0.1.5",
|
||||
"i18next": "^10.0.3",
|
||||
"i18next-express-middleware": "^1.0.7",
|
||||
"jit-grunt": "^0.9.1",
|
||||
"lodash": "^4.17.4",
|
||||
"main-bower-files": "~2.9.0",
|
||||
@ -65,6 +70,7 @@
|
||||
"passport-localapikey-update": "^0.5.0",
|
||||
"path-exists": "^2.1.0",
|
||||
"prerender-node": "^2.2.1",
|
||||
"pug": "^2.0.0-rc.4",
|
||||
"random-js": "^1.0.8",
|
||||
"raven": "^0.9.0",
|
||||
"request": "^2.83.0",
|
||||
|
||||
12
public/dist/form_populate_template_cache.js
vendored
12
public/dist/form_populate_template_cache.js
vendored
@ -1,9 +1,9 @@
|
||||
angular.module('TellForm-Form.form_templates', []).run(['$templateCache', function ($templateCache) {
|
||||
"use strict";
|
||||
$templateCache.put("form_modules/forms/base/views/form-not-found.client.view.html",
|
||||
"<script>$(\".loader\").fadeOut(\"slow\");</script><section class=\"public-form auth sigin-view valign-wrapper\"><div class=\"row valign\"><h3 class=\"col-md-12 text-center\">404 - Form Does not Exist</h3><div class=\"col-md-4 col-md-offset-4\"><div class=\"col-md-12 text-center\" style=\"padding-bottom: 50px\">The form you are trying to access does not exist. Sorry about that!</div></div></div></section>");
|
||||
"<script>$(\".loader\").fadeOut(\"slow\");</script><section class=\"public-form auth sigin-view valign-wrapper\"><div class=\"row valign\"><h3 class=\"col-md-12 text-center\">{{ 'FORM_404_HEADER' | translate }}</h3><div class=\"col-md-4 col-md-offset-4\"><div class=\"col-md-12 text-center\" style=\"padding-bottom: 50px\">{{ 'FORM_404_BODY' | translate }}</div></div></div></section>");
|
||||
$templateCache.put("form_modules/forms/base/views/form-unauthorized.client.view.html",
|
||||
"<script>$(\".loader\").fadeOut(\"slow\");</script><section class=\"public-form auth sigin-view valign-wrapper\"><div class=\"row valign\"><h3 class=\"col-md-12 text-center\">Not Authorized to Access Form</h3><div class=\"col-md-4 col-md-offset-4\"><div class=\"col-md-12 text-center\" style=\"padding-bottom: 50px\">The form you are trying to access is currently private and not accesible publically.<br>If you are the owner of the form, you can set it to \"Public\" in the \"Configuration\" panel in the form admin.</div></div></div></section>");
|
||||
"<script>$(\".loader\").fadeOut(\"slow\");</script><section class=\"public-form auth sigin-view valign-wrapper\"><div class=\"row valign\"><h3 class=\"col-md-12 text-center\">{{ 'FORM_UNAUTHORIZED_HEADER' | translate }}</h3><div class=\"col-md-4 col-md-offset-4\"><div class=\"col-md-12 text-center\" style=\"padding-bottom: 50px\">{{ 'FORM_UNAUTHORIZED_BODY1' | translate }}<br>{{ 'FORM_UNAUTHORIZED_BODY2' | translate }}</div></div></div></section>");
|
||||
$templateCache.put("form_modules/forms/base/views/submit-form.client.view.html",
|
||||
"<section class=public-form><submit-form-directive myform=myform></submit-form-directive></section><script ng-if=myform.analytics.gaCode>window.ga=function(){ga.q.push(arguments)};ga.q=[];ga.l=+new Date;\n" +
|
||||
" ga('create', '{{myform.analytics.gaCode}}', 'auto'); ga('send', 'pageview');</script><script ng-if=myform.analytics.gaCode src=https://www.google-analytics.com/analytics.js async defer></script>");
|
||||
@ -12,11 +12,11 @@ angular.module('TellForm-Form.form_templates', []).run(['$templateCache', functi
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/date.html",
|
||||
"<div class=\"field row\" ng-click=\"setActiveField(field._id, index, true)\"><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=\"!field.required && !field.fieldValue\">{{ 'OPTIONAL' | translate }}</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><div class=\"control-group input-append\"><input class=focusOn ng-focus=\"setActiveField(field._id, null, false)\" ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" ng-class=\"{ 'no-border': !!field.fieldValue }\" ui-date=dateOptions ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required placeholder=MM/DD/YYYY on-tab-key=nextField() on-tab-and-shift-key=prevField() ng-change=nextField()></div></div></div>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/dropdown.html",
|
||||
"<div class=\"field row dropdown\" ng-if=\"field.fieldOptions.length > 0\"><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><ui-select ng-model=field.fieldValue ng-focus=\"setActiveField(field._id, null, false)\" theme=selectize search-enabled=true search-by=option_value set-search-to-answer=true ng-required=field.required on-tab-and-shift-key=prevField() on-tab-key=nextField() ng-change=nextField()><ui-select-match placeholder=\"Type or select an option\"></ui-select-match><ui-select-choices repeat=\"option in field.fieldOptions | filter: $select.search\" ng-class=\"{'active': option.option_value === field.fieldValue }\"><span ng-bind-html=\"option.option_value | highlight: $select.search\"></span></ui-select-choices></ui-select></div></div><br>");
|
||||
"<div class=\"field row dropdown\" ng-if=\"field.fieldOptions.length > 0\"><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><ui-select ng-model=field.fieldValue ng-focus=\"setActiveField(field._id, null, false)\" theme=selectize search-enabled=true search-by=option_value set-search-to-answer=true ng-required=field.required on-tab-and-shift-key=prevField() on-tab-key=nextField() ng-change=nextField()><ui-select-match placeholder=\"{{ 'OPTION_PLACEHOLDER' | translate }}\"></ui-select-match><ui-select-choices repeat=\"option in field.fieldOptions | filter: $select.search\" ng-class=\"{'active': option.option_value === field.fieldValue }\"><span ng-bind-html=\"option.option_value | highlight: $select.search\"></span></ui-select-choices></ui-select></div></div><br>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/hidden.html",
|
||||
"<input type=hidden>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/legal.html",
|
||||
"<div class=\"field row radio legal\" on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() key-to-truthy key-char-truthy=y key-char-falsey=n field=field on-valid-key=nextField()><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><br><p class=col-xs-12>{{field.description}}</p></div><div class=\"col-xs-12 field-input container\"><div class=row-fluid><label class=\"btn col-md-5 col-xs-12\" ng-class=\"{activeBtn: field.fieldValue == 'true'}\"><input class=focusOn ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" type=radio value=true ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=nextField()><div class=letter style=float:left>Y</div><span>{{ 'LEGAL_ACCEPT' | translate }}</span></label><label class=\"btn col-md-5 col-md-offset-1 col-xs-12\" ng-class=\"{activeBtn: field.fieldValue == 'false'}\"><input class=focusOn ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" type=radio value=false ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=nextField()><div class=letter style=float:left>N</div><span>{{ 'LEGAL_NO_ACCEPT' | translate }}</span></label></div></div></div><br>");
|
||||
"<div class=\"field row radio legal\" on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() key-to-truthy key-char-truthy=y key-char-falsey=n field=field on-valid-key=nextField()><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><br><p class=col-xs-12>{{field.description}}</p></div><div class=\"col-xs-12 field-input container\"><div class=row-fluid><label class=\"btn col-md-5 col-xs-12\" ng-class=\"{activeBtn: field.fieldValue == 'true'}\"><input class=focusOn ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" type=radio value=true ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=nextField()><div class=letter style=float:left>{{ 'Y' | translate }}</div><span>{{ 'LEGAL_ACCEPT' | translate }}</span></label><label class=\"btn col-md-5 col-md-offset-1 col-xs-12\" ng-class=\"{activeBtn: field.fieldValue == 'false'}\"><input class=focusOn ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" type=radio value=false ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=nextField()><div class=letter style=float:left>{{ 'N' | translate }}</div><span>{{ 'LEGAL_NO_ACCEPT' | translate }}</span></label></div></div></div><br>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/radio.html",
|
||||
"<div class=\"field row radio\" on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() key-to-option field=field ng-if=\"field.fieldOptions.length > 0\"><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><div ng-repeat=\"option in field.fieldOptions\" class=row-fluid><label class=\"btn col-md-4 col-xs-12 col-sm-12\" style=\"margin: 0.5em; padding-left:30px\" ng-class=\"{activeBtn: field.fieldValue == field.fieldOptions[$index].option_value}\"><div class=letter style=float:left>{{$index+1}}</div><input ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" ng-focus=\"setActiveField(field._id, null, false)\" type=radio class=focusOn value={{option.option_value}} ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=$root.nextField()> <span ng-bind=option.option_value></span></label></div></div></div><br>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/rating.html",
|
||||
@ -24,10 +24,10 @@ angular.module('TellForm-Form.form_templates', []).run(['$templateCache', functi
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/statement.html",
|
||||
"<div class=\"statement field row\" on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField()><div class=\"row field-title field-title\"><div class=col-xs-1><i class=\"fa fa-quote-left fa-1\"></i></div><h2 class=\"text-left col-xs-9\">{{field.title}}</h2><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"row field-title field-input\"><p class=col-xs-12 ng-if=field.description.length>{{field.description}}</p><br><div class=\"col-xs-offset-1 col-xs-11\"><button class=\"btn focusOn\" ng-style=\"{'font-size': '1.3em', 'background-color':design.colors.buttonColor, 'color':design.colors.buttonTextColor}\" ng-click=nextField()>{{ 'CONTINUE' | translate }}</button></div></div></div>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/textarea.html",
|
||||
"<div class=\"field row\" ng-click=\"setActiveField(field._id, index, true)\"><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><small>{{ 'NEWLINE' | translate }}</small><p><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><small style=font-size:0.6em>Press SHIFT+ENTER to add a newline</small><textarea class=\"textarea focusOn\" type=text ng-focus=\"setActiveField(field._id, null, false)\" ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-class=\"{ 'no-border': !!field.fieldValue }\" value={{field.fieldValue}} ng-required=field.required on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() style=\"border: none; border-left: lightgrey dashed 2px\">\n" +
|
||||
"<div class=\"field row\" ng-click=\"setActiveField(field._id, index, true)\"><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><small>{{ 'NEWLINE' | translate }}</small><p><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><small style=font-size:0.6em>{{ 'ADD_NEW_LINE_INSTR' | translate }}</small><textarea class=\"textarea focusOn\" type=text ng-focus=\"setActiveField(field._id, null, false)\" ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-class=\"{ 'no-border': !!field.fieldValue }\" value={{field.fieldValue}} ng-required=field.required on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() style=\"border: none; border-left: lightgrey dashed 2px\">\n" +
|
||||
" </textarea></div></div><div><div class=\"btn btn-lg btn-default\" style=\"padding: 4px; margin-top:8px; background: rgba(255,255,255,0.5)\"><button ng-disabled=\"!field.fieldValue || forms.myForm.{{field.fieldType}}{{$index}}.$invalid\" ng-style=\"{'background-color':design.colors.buttonColor, 'color':design.colors.buttonTextColor}\" ng-click=$root.nextField() class=\"btn col-sm-5 col-xs-5\">{{ 'OK' | translate }} <i class=\"fa fa-check\"></i></button><div class=\"col-sm-3 col-xs-6\" style=margin-top:0.2em><small style=\"color:#ddd; font-size:70%\">{{ 'ENTER' | translate }}</small></div></div></div>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/textfield.html",
|
||||
"<div class=\"textfield field row\" ng-click=\"setActiveField(field._id, index, true)\"><div class=\"col-xs-12 field-title row-fluid\" ng-style=\"{'color': design.colors.questionColor}\"><h3 class=col-xs-12><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>({{ 'OPTIONAL' | translate }})</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><input ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" name={{field.fieldType}}{{index}} type={{input_type}} ng-pattern=validateRegex placeholder={{placeholder}} ng-class=\"{ 'no-border': !!field.fieldValue }\" class=\"focusOn text-field-input\" ng-focus=\"setActiveField(field._id, null, false)\" ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" value=field.fieldValue on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() ng-required=field.required aria-describedby=inputError2Status></div><div class=col-xs-12><div ng-show=\"forms.myForm.{{field.fieldType}}{{index}}.$invalid && !!forms.myForm.{{field.fieldType}}{{index}}.$viewValue \" class=\"alert alert-danger\" role=alert><span class=\"glyphicon glyphicon-exclamation-sign\" aria-hidden=true></span> <span class=sr-only>Error:</span> <span ng-if=\"field.fieldType == 'email'\">{{ 'ERROR_EMAIL_INVALID' | translate }} </span><span ng-if=\"field.fieldType == 'number'\">{{ 'ERROR_NOT_A_NUMBER' | translate }} </span><span ng-if=\"field.fieldType == 'link'\">{{ 'ERROR_URL_INVALID' | translate }}</span></div></div></div><div><div class=\"btn btn-lg btn-default\" ng-disabled=\"!field.fieldValue || field.$invalid\" style=\"padding: 4px; margin-top:8px; background: rgba(255,255,255,0.5)\"><button ng-disabled=\"!field.fieldValue || field.$invalid\" ng-style=\"{'background-color':design.colors.buttonColor, 'color':design.colors.buttonTextColor}\" ng-click=nextField() class=\"btn col-sm-5 col-xs-5\">{{ 'OK' | translate }} <i class=\"fa fa-check\"></i></button><div class=\"col-xs-6 col-sm-3\" style=margin-top:0.2em><small style=\"color:#ddd; font-size:70%\">{{ 'ENTER' | translate }}</small></div></div></div>");
|
||||
"<div class=\"textfield field row\" ng-click=\"setActiveField(field._id, index, true)\"><div class=\"col-xs-12 field-title row-fluid\" ng-style=\"{'color': design.colors.questionColor}\"><h3 class=col-xs-12><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>({{ 'OPTIONAL' | translate }})</span></h3><p class=col-xs-12><small>{{field.description}}</small></p></div><div class=\"col-xs-12 field-input\"><input ng-style=\"{'color': design.colors.answerColor, 'border-color': design.colors.answerColor}\" name={{field.fieldType}}{{index}} type={{input_type}} ng-pattern=validateRegex placeholder={{placeholder}} ng-class=\"{ 'no-border': !!field.fieldValue }\" class=\"focusOn text-field-input\" ng-focus=\"setActiveField(field._id, null, false)\" ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" value=field.fieldValue on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() ng-required=field.required aria-describedby=inputError2Status></div><div class=col-xs-12><div ng-show=\"forms.myForm.{{field.fieldType}}{{index}}.$invalid && !!forms.myForm.{{field.fieldType}}{{index}}.$viewValue \" class=\"alert alert-danger\" role=alert><span class=\"glyphicon glyphicon-exclamation-sign\" aria-hidden=true></span> <span class=sr-only>{{ 'ERROR' | translate }}:</span> <span ng-if=\"field.fieldType == 'email'\">{{ 'ERROR_EMAIL_INVALID' | translate }} </span><span ng-if=\"field.fieldType == 'number'\">{{ 'ERROR_NOT_A_NUMBER' | translate }} </span><span ng-if=\"field.fieldType == 'link'\">{{ 'ERROR_URL_INVALID' | translate }}</span></div></div></div><div><div class=\"btn btn-lg btn-default\" ng-disabled=\"!field.fieldValue || field.$invalid\" style=\"padding: 4px; margin-top:8px; background: rgba(255,255,255,0.5)\"><button ng-disabled=\"!field.fieldValue || field.$invalid\" ng-style=\"{'background-color':design.colors.buttonColor, 'color':design.colors.buttonTextColor}\" ng-click=nextField() class=\"btn col-sm-5 col-xs-5\">{{ 'OK' | translate }} <i class=\"fa fa-check\"></i></button><div class=\"col-xs-6 col-sm-3\" style=margin-top:0.2em><small style=\"color:#ddd; font-size:70%\">{{ 'ENTER' | translate }}</small></div></div></div>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/field/yes_no.html",
|
||||
"<div class=\"field row radio\" ng-click=\"setActiveField(field._id, index, true)\" key-to-truthy key-char-truthy=y key-char-falsey=n field=field on-tab-key=nextField() on-tab-and-shift-key=prevField() on-valid-key=nextField()><div class=\"col-xs-12 field-title\" ng-style=\"{'color': design.colors.questionColor}\"><h3 class=row><small class=field-number>{{index+1}} <i class=\"fa fa-angle-double-right\" aria-hidden=true></i> </small>{{field.title}} <span class=required-error ng-show=!field.required>{{ 'OPTIONAL' | translate }}</span></h3><p class=row>{{field.description}}</p></div><div class=\"col-xs-12 field-input\"><div class=row><label class=\"btn btn-default col-md-2 col-sm-3 col-xs-7\" style=\"background: rgba(0,0,0,0.1); text-align:left\"><input type=radio value=true class=focusOn style=\"opacity: 0; margin-left: 0px\" ng-focus=\"setActiveField(field._id, null, false)\" ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=nextField()><div class=letter>{{ 'Y' | translate }}</div><span>{{ 'YES' | translate }}</span> <i ng-show=\"field.fieldValue === 'true'\" class=\"fa fa-check\" aria-hidden=true></i></label></div><div class=row style=\"margin-top: 10px\"><label class=\"btn btn-default col-md-2 col-sm-3 col-xs-7\" style=\"background: rgba(0,0,0,0.1); text-align:left\"><input type=radio value=false style=\"opacity:0; margin-left:0px\" ng-focus=\"setActiveField(field._id, null, false)\" ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=nextField()><div class=letter>{{ 'N' | translate }}</div><span>{{ 'NO' | translate }}</span> <i ng-show=\"field.fieldValue === 'false'\" class=\"fa fa-check\" aria-hidden=true></i></label></div></div></div><br>");
|
||||
$templateCache.put("form_modules/forms/base/views/directiveViews/form/submit-form.client.view.html",
|
||||
|
||||
@ -45,7 +45,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
CONTINUE_TO_LOGIN: 'Allez à la page de connexion',
|
||||
|
||||
VERIFY_SUCCESS: 'Votre compte est activé !',
|
||||
VERIFY_ERROR: 'Le lien de vérification est invalide ou à expiré'
|
||||
VERIFY_ERROR: 'Le lien de vérification est invalide ou à expiré',
|
||||
ERROR: 'Erreur'
|
||||
});
|
||||
|
||||
|
||||
@ -23,7 +23,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
|
||||
SIGNUP_ERROR_TEXT: 'Konnte die Registrierung aufgrund von Fehlern nicht abschließen',
|
||||
ENTER_ACCOUNT_EMAIL: 'Geben Sie Ihre Konto-E-Mail ein.',
|
||||
RESEND_VERIFICATION_EMAIL: Bestätigungs-E-Mail erneut senden
|
||||
RESEND_VERIFICATION_EMAIL: 'Bestätigungs-E-Mail erneut senden',
|
||||
SAVE_CHANGES: 'Änderungen speichern',
|
||||
CANCEL_BTN: 'Abbrechen',
|
||||
|
||||
@ -47,7 +47,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
VERIFICATION_EMAIL_SENT_TO: 'Es wurde eine Bestätigungs-E-Mail gesendet.',
|
||||
NOT_ACTIVATED_YET: 'Dein Account ist noch nicht aktiviert',
|
||||
BEFORE_YOU_CONTINUE: 'Bevor Sie fortfahren, überprüfen Sie bitte Ihre E-Mail-Adresse auf Überprüfung. Wenn Sie nicht innerhalb von 24 Stunden erhalten Sie uns eine Zeile bei ',
|
||||
CHECK_YOUR_EMAIL: 'Überprüfe deine E-Mail und klicke auf den Aktivierungslink, um deinen Account zu aktivieren. Wenn Sie irgendwelche Fragen haben, lassen Sie uns eine Zeile bei '
|
||||
CHECK_YOUR_EMAIL: 'Überprüfe deine E-Mail und klicke auf den Aktivierungslink, um deinen Account zu aktivieren. Wenn Sie irgendwelche Fragen haben, lassen Sie uns eine Zeile bei ',
|
||||
WEITER: 'Weiter',
|
||||
|
||||
PASSWORD_RESTORE_HEADER: 'Wiederherstellen Ihres Passworts',
|
||||
|
||||
@ -51,7 +51,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
||||
CONTINUA: 'Continua',
|
||||
|
||||
PASSWORD_RESTORE_HEADER: 'Ripristina password',
|
||||
ENTER_YOUR_EMAIL: 'Inserisci l\'email del tuo account'.
|
||||
ENTER_YOUR_EMAIL: 'Inserisci l\'email del tuo account',
|
||||
SUBMIT_BTN: 'Invia',
|
||||
|
||||
ASK_FOR_NEW_PASSWORD: 'Richiedi nuova password reimpostata',
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user