added whole-app translation

This commit is contained in:
David Baldwynn 2016-06-15 17:38:22 -07:00
parent 38f9aba54c
commit 637ff4dc70
40 changed files with 535 additions and 373 deletions

View file

@ -72,9 +72,9 @@ var FormSchema = new Schema({
},
language: {
type: String,
enum: ['english', 'french', 'spanish', 'german', 'italian'],
required: 'Form must have a language',
default: 'english'
enum: ['en', 'fr', 'es', 'it', 'de'],
default: 'en',
required: 'Form must have a language'
},
description: {
type: String,

View file

@ -94,8 +94,8 @@ var UserSchema = new Schema({
},
language: {
type: String,
enum: ['english', 'french', 'spanish', 'italian', 'german'],
default: 'english',
enum: ['en', 'fr', 'es', 'it', 'de'],
default: 'en',
required: 'User must have a language'
},
lastModified: {

View file

@ -4,7 +4,7 @@
var ApplicationConfiguration = (function() {
// Init module configuration options
var applicationModuleName = 'NodeForm';
var applicationModuleVendorDependencies = ['duScroll', 'ui.select', 'cgBusy', 'ngSanitize', 'vButton', 'ngResource', 'NodeForm.templates', 'ui.router', 'ui.bootstrap', 'ui.utils'];
var applicationModuleVendorDependencies = ['duScroll', 'ui.select', 'cgBusy', 'ngSanitize', 'vButton', 'ngResource', 'NodeForm.templates', 'ui.router', 'ui.bootstrap', 'ui.utils', 'pascalprecht.translate'];
// Add a new vertical module
var registerModule = function(moduleName, dependencies) {

View file

@ -4,7 +4,7 @@
var ApplicationConfiguration = (function() {
// Init module configuration options
var applicationModuleName = 'NodeForm';
var applicationModuleVendorDependencies = ['duScroll', 'ui.select', 'cgBusy', 'ngSanitize', 'vButton', 'ngResource', 'NodeForm.templates', 'ui.router', 'ui.bootstrap', 'ui.utils'];
var applicationModuleVendorDependencies = ['duScroll', 'ui.select', 'cgBusy', 'ngSanitize', 'vButton', 'ngResource', 'NodeForm.templates', 'ui.router', 'ui.bootstrap', 'ui.utils', 'pascalprecht.translate'];
// Add a new vertical module
var registerModule = function(moduleName, dependencies) {
@ -120,9 +120,7 @@ angular.element(document).ready(function() {
angular.module('NodeForm.templates', []).run(['$templateCache', function($templateCache) {
"use strict";
$templateCache.put("modules/core/views/header.client.view.html",
"<section class=\"navbar navbar-fixed-top navbar-inverse\" data-ng-controller=HeaderController ng-hide=hideNav><div class=container><div class=navbar-header><button class=navbar-toggle type=button data-ng-click=toggleCollapsibleMenu()><span class=sr-only>Toggle navigation</span> <span class=icon-bar></span> <span class=icon-bar></span> <span class=icon-bar></span></button> <a href=\"https://www.tellform.com/#!/\" class=navbar-brand><i class=\"fa fa-archive\" style=\"padding-right: 0.3em\"></i>Tell<span>Form</span></a></div><nav class=\"collapse navbar-collapse\" collapse=!isCollapsed role=navigation><ul class=\"nav navbar-nav\" data-ng-if=authentication.isAuthenticated()><li data-ng-repeat=\"item in menu.items | orderBy: 'position'\" data-ng-if=item.shouldRender(authentication.isAuthenticated()); ng-switch=item.menuItemType ui-route={{item.uiRoute}} class={{item.menuItemClass}} ng-class=\"{active: ($uiRoute)}\" dropdown=\"item.menuItemType === 'dropdown'\"><a ng-switch-when=dropdown class=dropdown-toggle dropdown-toggle><span data-ng-bind=item.title></span> <b class=caret></b></a><ul ng-switch-when=dropdown class=dropdown-menu><li data-ng-repeat=\"subitem in item.items | orderBy: 'position'\" data-ng-if=subitem.shouldRender(authentication.isAuthenticated()); ui-route={{subitem.uiRoute}} ng-class=\"{active: $uiRoute}\"><a href=/#!/{{subitem.link}} data-ng-bind=subitem.title></a></li></ul><a ng-switch-default href=/#!/{{item.link}} data-ng-bind=item.title></a></li></ul><ul class=\"nav navbar-nav navbar-right\" data-ng-hide=authentication.isAuthenticated()><li ng-hide=$root.signupDisabled ui-route=/signup ng-class=\"{active: $uiRoute}\"><a href=/#!/signup>Sign Up</a></li><li class=divider-vertical></li><li ui-route=/signin ng-class=\"{active: $uiRoute}\"><a href=/#!/signin>Sign In</a></li></ul><ul class=\"nav navbar-nav navbar-right\" data-ng-show=authentication.isAuthenticated()><li class=dropdown uib-dropdown><a href=# class=dropdown-toggle data-toggle=dropdown dropdown-toggle><span>My Settings</span> <b class=caret></b></a><ul class=dropdown-menu><li><a href=/#!/settings/profile>Edit Profile</a></li><li class=divider></li><li><a href=/#!/settings/password>Change Password</a></li><li data-ng-show=\"authentication.isAuthenticated().provider === 'local'\"><a href=/#!/settings/password>Change Password</a></li></ul></li><li ng-click=signout()><a>Signout</a></li></ul></nav></div></section>");
$templateCache.put("modules/core/views/home.client.view.html",
"<section data-ng-controller=HomeController class=hero-section style=overflow:hidden><div class=opacity-background></div><div class=image-background></div><div class=\"jumbotron text-center\"><div class=container data-ng-if=!authentication.isAuthenticated()><div class=\"row text-center logo\" style=\"border-bottom: 1px solid rgba(255,255,255,.2); margin-bottom: 30px\"><h3 class=col-xs-12 style=\"color: #FA787E; margin-bottom:0px\"><i class=\"fa fa-archive fa-3x\"></i></h3><h2 class=col-xs-12 style=margin-top:0px><span>Tell<span style=\"text-decoration: underline; color: #FA787E\">Form</span></span></h2></div><div class=row style=margin-top:0px><h1 class=\"lead col-md-10 col-md-offset-1 hidden-xs hidden-sm\" style=font-size:3.8em>Craft beautiful forms in seconds.</h1><h2 class=\"lead col-sm-12 text-center hidden-md hidden-lg\" style=font-size:2.8em>Craft beautiful forms.</h2><p class=\"lead hidden-xs hidden-sm col-md-10 col-md-offset-1 col-lg-8 col-lg-offset-2\" style=\"font-size:1.5em; color:rgba(255,255,255,.75)\"><i>TellForm is an opensource <b>alternative to TypeForm</b> that can create stunning forms from PDFs or from scratch</i></p><p class=\"lead col-xs-12 hidden-md hidden-lg\" style=\"font-size:1.5em; color:rgba(255,255,255,.75)\"><i>TellForm is an opensource <b>alternative to TypeForm</b> that can create stunning forms from PDFs or from scratch</i></p></div></div></div><div class=\"jumbotron text-center\"><div class=container data-ng-if=!authentication.isAuthenticated()><div class=row style=margin-top:0px><h1 class=\"lead col-md-10 col-md-offset-1 hidden-xs hidden-sm\" style=font-size:3.8em>Create your next ______.</h1><h1 class=\"lead col-md-10 col-md-offset-1 hidden-xs hidden-sm\" style=font-size:2.5em>Tell a story with a form.</h1></div><div class=row style=margin-top:7%><a class=\"col-xs-4 col-xs-offset-4 btn btn-info signup-btn\" href=/#!/signup style=\"background-color:#FA787E; border: none; font-size: 2em; padding: 0.3em 0.9em; color: white\">sign me up!</a></div></div></div></section><footer class=footer-basic-centered><p class=footer-company-motto>The company motto.</p><p class=footer-links><a href=\"/#!/\">Home</a> · <a href=/#!/blog>Blog</a> · <a href=https://github.com/whitef0x0/tellform>Github Source</a> · <a href=/#!/about>About</a> . <a href=/#!/terms>Privacy & Terms</a> · <a href=https://status.tellform.com>System Status</a> · <a href=mailto:polydaic@gmail.com>Contact</a></p><p class=footer-company-name>TellForm © 2016</p></footer>");
"<section class=\"navbar navbar-fixed-top navbar-inverse\" data-ng-controller=HeaderController ng-hide=hideNav><div class=container><div class=navbar-header><button class=navbar-toggle type=button data-ng-click=toggleCollapsibleMenu()><span class=sr-only>Toggle navigation</span> <span>{{ 'MENU_BTN' | translate }}</span></button> <a href=\"https://www.tellform.com/#!/\" class=navbar-brand><i class=\"fa fa-archive\" style=\"padding-right: 0.3em\"></i>Tell<span>Form</span></a></div><nav class=\"collapse navbar-collapse\" collapse=!isCollapsed role=navigation><ul class=\"nav navbar-nav\" data-ng-if=authentication.isAuthenticated()><li data-ng-repeat=\"item in menu.items | orderBy: 'position'\" data-ng-if=item.shouldRender(authentication.isAuthenticated()); ng-switch=item.menuItemType ui-route={{item.uiRoute}} class={{item.menuItemClass}} ng-class=\"{active: ($uiRoute)}\" dropdown=\"item.menuItemType === 'dropdown'\"><a ng-switch-when=dropdown class=dropdown-toggle dropdown-toggle><span data-ng-bind=item.title></span> <b class=caret></b></a><ul ng-switch-when=dropdown class=dropdown-menu><li data-ng-repeat=\"subitem in item.items | orderBy: 'position'\" data-ng-if=subitem.shouldRender(authentication.isAuthenticated()); ui-route={{subitem.uiRoute}} ng-class=\"{active: $uiRoute}\"><a href=/#!/{{subitem.link}} data-ng-bind=subitem.title></a></li></ul><a ng-switch-default href=/#!/{{item.link}} data-ng-bind=item.title></a></li></ul><ul class=\"nav navbar-nav navbar-right\" data-ng-hide=authentication.isAuthenticated()><li ng-hide=$root.signupDisabled ui-route=/signup ng-class=\"{active: $uiRoute}\"><a href=/#!/signup>Sign Up</a></li><li class=divider-vertical></li><li ui-route=/signin ng-class=\"{active: $uiRoute}\"><a href=/#!/signin>Sign In</a></li></ul><ul class=\"nav navbar-nav navbar-right\" data-ng-show=authentication.isAuthenticated()><li class=dropdown uib-dropdown><a href=# class=dropdown-toggle data-toggle=dropdown dropdown-toggle><span>My Settings</span> <b class=caret></b></a><ul class=dropdown-menu><li><a href=/#!/settings/profile>{{ 'EDIT_PROFILE_TAB' | translate }}</a></li><li class=divider></li><li><a href=/#!/settings/password>{{ 'CHANGE_PASSWORD_TAB' | translate }}</a></li></ul></li><li ng-click=signout()><a>Signout</a></li></ul></nav></div></section>");
$templateCache.put("modules/forms/admin/views/admin-form.client.view.html",
"<div class=container cg-busy=\"{promise:updatePromise,templateUrl:'modules/forms/admin/views/directiveViews/cgBusy/update-form-message-TypeB.html',message:'Updating form...', backdrop:false, wrapperClass:'.busy-updating-wrapper'}\"></div><section class=\"container admin-form\"><script type=text/ng-template id=myModalContent.html><div class=\"modal-header\">\n" +
" <h2 class=\"modal-title hidden-md hidden-lg\">Are you ABSOLUTELY sure?</h2>\n" +
@ -146,7 +144,7 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
" </button>\n" +
" </div></script><div class=\"page-header row\" style=\"padding-bottom: 0px\"><div class=\"col-xs-10 col-sm-8\"><h1 class=\"hidden-sm hidden-xs\" data-ng-bind=myform.title style=\"margin-bottom: 0px\"></h1><h2 class=\"hidden-md hidden-lg\" data-ng-bind=myform.title style=\"margin-bottom: 0px\"></h2></div><div class=\"col-xs-1 col-sm-2\"><small class=pull-right><button class=\"btn btn-danger\" ng-click=openDeleteModal()><i class=\"fa fa-trash-o\"></i> <span class=hidden-xs>Delete</span> <span class=\"hidden-xs hidden-sm\">Form</span></button></small></div><div class=\"col-xs-1 col-sm-2\"><small class=pull-right><a class=\"btn btn-default view-form-btn\" href=/#!/forms/{{myform._id}}><span class=\"hidden-xs hidden-sm\">View <span ng-show=myform.isLive>Live</span> <span ng-hide=myform.isLive>Preview</span> Form</span> <span class=\"hidden-xs hidden-md hidden-lg\">View <span ng-if=myform.isLive>Live</span> <span ng-if=!myform.isLive>Preview</span></span> <i class=\"status-light status-light-on fa fa-dot-circle-o\" ng-if=myform.isLive></i> <i class=\"status-light status-light-off fa fa-dot-circle-o\" ng-if=!myform.isLive></i></a></small></div></div><div class=row><div class=col-xs-12><tabs data=tabData></tabs></div><div class=col-xs-12><ui-view></ui-view></div></div></section>");
$templateCache.put("modules/forms/admin/views/list-forms.client.view.html",
"<section class=overlay ng-if=showCreateModal ng-click=closeCreateModal()></section><section data-ng-controller=\"ListFormsController as ctrl\" data-ng-init=findAll() class=container><br><div class=row><div ng-click=openCreateModal() class=\"col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-1 col-md-3 col-md-offset-1 form-item create-new\"><div class=\"title-row col-xs-12\"><h4 class=\"fa fa-plus fa-6\"></h4></div><div class=\"col-xs-12 details-row\"><small class=list-group-item-text>Create a new form</small></div></div><form name=forms.createForm class=\"col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-1 col-md-3 col-md-offset-1 form-item create-new new-form\" ng-if=showCreateModal><div class=\"title-row row\"><div class=\"col-xs-5 field-title text-left\">Name</div><div class=\"col-xs-12 field-input\"><input name=title required ng-model=formTitle ng-pattern=\"/^[a-zA-Z0-9 \\-.]*$/\" ng-minlength=\"4\"></div></div><div class=\"details-row row\"><div class=\"col-xs-5 field-title text-left\">Language</div><div class=\"col-xs-12 field-input\"><div class=\"button custom-select\"><select style=color:black name=language required ng-model=formLanguage ng-init=\"formLanguage = user.language\"><option ng-repeat=\"language in languages\" value={{language}}>{{language}}</option></select></div></div></div><div class=\"details-row submit row\"><div class=\"col-xs-12 field-title text-center\"><button class=\"btn btn-primary\" ng-disabled=forms.createForm.$invalid ng-click=createNewForm()>Create Form</button></div></div></form><div data-ng-repeat=\"form in myforms\" ng-style=\"{ 'background-color': form.design.colors.backgroundColor, 'color': form.design.colors.answerColor }\" class=\"col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-1 col-md-3 col-md-offset-1 form-item container\"><div class=row><span class=pull-right><i style=cursor:pointer class=\"fa fa-trash-o\" ng-click=removeForm($index)></i> <i style=cursor:pointer class=\"fa fa-files-o\" ng-click=duplicateForm($index)></i></span></div><div class=row><a data-ng-href=#!/forms/{{form._id}}/admin/create ng-style=\"{ 'color': form.design.colors.answerColor }\" class=\"title-row col-xs-12\"><h4 class=list-group-item-heading data-ng-bind=form.title></h4></a></div><div class=\"row footer\"><div class=\"col-xs-12 details-row\"><small class=list-group-item-text>Created on <span data-ng-bind=\"form.created | date:'shortDate'\"></span></small></div></div></div></div></section>");
"<section class=overlay ng-if=showCreateModal ng-click=closeCreateModal()></section><section data-ng-controller=\"ListFormsController as ctrl\" data-ng-init=findAll() class=container><br><div class=row><div ng-click=openCreateModal() class=\"col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-1 col-md-3 col-md-offset-1 form-item create-new\"><div class=\"title-row col-xs-12\"><h4 class=\"fa fa-plus fa-6\"></h4></div><div class=\"col-xs-12 details-row\"><small class=list-group-item-text>Create a new form</small></div></div><form name=forms.createForm class=\"col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-1 col-md-3 col-md-offset-1 form-item create-new new-form\" ng-if=showCreateModal><div class=\"title-row row\"><div class=\"col-xs-5 field-title text-left\">Name</div><div class=\"col-xs-12 field-input\"><input name=title required ng-model=formTitle ng-pattern=languageRegExp ng-minlength=4 style=\"color:black\"></div></div><div class=\"details-row row\"><div class=\"col-xs-5 field-title text-left\">Language</div><div class=\"col-xs-12 field-input\"><div class=\"button custom-select\"><select style=color:black name=language required ng-model=formLanguage ng-init=\"formLanguage = user.language\"><option ng-repeat=\"language in languages\" value={{language}}>{{language}}</option></select></div></div></div><div class=\"details-row submit row\"><div class=\"col-xs-12 field-title text-center\"><button class=\"btn btn-primary\" ng-disabled=forms.createForm.$invalid ng-click=createNewForm()>Create Form</button></div></div></form><div data-ng-repeat=\"form in myforms\" ng-style=\"{ 'background-color': form.design.colors.backgroundColor, 'color': form.design.colors.answerColor }\" class=\"col-xs-6 col-xs-offset-3 col-sm-4 col-sm-offset-1 col-md-3 col-md-offset-1 form-item container\"><div class=row><span class=pull-right><i style=cursor:pointer class=\"fa fa-trash-o\" ng-click=removeForm($index)></i> <i style=cursor:pointer class=\"fa fa-files-o\" ng-click=duplicateForm($index)></i></span></div><div class=row><a data-ng-href=#!/forms/{{form._id}}/admin/create ng-style=\"{ 'color': form.design.colors.answerColor }\" class=\"title-row col-xs-12\"><h4 class=list-group-item-heading data-ng-bind=form.title></h4></a></div><div class=\"row footer\"><div class=\"col-xs-12 details-row\"><small class=list-group-item-text>Created on <span data-ng-bind=\"form.created | date:'shortDate'\"></span></small></div></div></div></div></section>");
$templateCache.put("modules/forms/base/views/submit-form.client.view.html",
"<section class=public-form ng-style=\"{ 'background-color': myform.design.colors.backgroundColor }\"><submit-form-directive myform=myform></submit-form-directive></section><script ng-if=myform.analytics.gaCode>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){\n" +
" (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),\n" +
@ -195,7 +193,7 @@ angular.module('NodeForm.templates', []).run(['$templateCache', function($templa
"<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-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-class=\"{ 'no-border': !!field.fieldValue }\" value={{field.fieldValue}} ng-required=field.required ng-disabled=field.disabled ng-focus=\"setActiveField(field._id, index, true)\" 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 col-xs-12 col-sm-4 hidden-xs\" 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("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={{field.input_type}} ng-pattern=field.validateRegex placeholder={{field.placeholder}} ng-class=\"{ 'no-border': !!field.fieldValue }\" class=\"focusOn text-field-input\" ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" value=field.fieldValue ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" value=field.fieldValue ng-focus=\"setActiveField(field._id, index, true)\" on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() ng-required=field.required ng-disabled=field.disabled 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.validateRegex>{{ '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 col-xs-12 col-sm-4 hidden-xs\" 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-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={{field.input_type}} ng-pattern=field.validateRegex placeholder={{field.placeholder}} ng-class=\"{ 'no-border': !!field.fieldValue }\" class=\"focusOn text-field-input\" ng-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" value=field.fieldValue ng-focus=\"setActiveField(field._id, index, true)\" on-enter-or-tab-key=nextField() on-tab-and-shift-key=prevField() ng-required=field.required ng-disabled=field.disabled 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.validateRegex>{{ '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 col-xs-12 col-sm-4 hidden-xs\" 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-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("modules/forms/base/views/directiveViews/field/yes_no.html",
"<div class=\"field row radio\" ng-click=\"setActiveField(field._id, index, true)\" on-tab-and-shift-key=prevField() key-to-truthy key-char-truthy=y key-char-falsey=n field=field><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-model=field.fieldValue ng-focus=\"setActiveField(field._id, index, true)\" ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=$root.nextField() ng-disabled=\"field.disabled\"><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-model=field.fieldValue ng-model-options=\"{ debounce: 250 }\" ng-required=field.required ng-change=$root.nextField() ng-disabled=\"field.disabled\"><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("modules/forms/base/views/directiveViews/form/submit-form.client.view.html",
@ -238,7 +236,7 @@ ApplicationConfiguration.registerModule('core', ['users']);
// Use Application configuration module to register a new module
ApplicationConfiguration.registerModule('forms', [
'ngFileUpload', 'ui.router.tabs', 'ui.date', 'ui.sortable',
'angular-input-stars', 'users', 'pascalprecht.translate'
'angular-input-stars', 'users'
]);//, 'colorpicker.module' @TODO reactivate this module
'use strict';
@ -274,7 +272,7 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
DELETE: 'Delete',
CANCEL: 'Cancel',
SUBMIT: 'Submit',
UPLOAD_FILE: 'Upload your File',
UPLOAD_FILE: 'Upload your File'
});
$translateProvider.preferredLanguage('english')
@ -314,7 +312,7 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
SUBMIT: 'Enregistrer',
UPLOAD_FILE: 'Envoyer un fichier',
Y: 'O',
N: 'N',
N: 'N'
});
}]);
@ -327,8 +325,8 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
FORM_SUCCESS: 'Ihre Angaben wurden gespeichert.',
REVIEW: 'Unvollständig',
BACK_TO_FORM: 'Zurück zum Formular',
EDIT_FORM: '',
CREATE_FORM: '',
EDIT_FORM: 'Bearbeiten Sie diese TellForm',
CREATE_FORM: 'Erstellen Sie eine TellForm',
ADVANCEMENT: '{{done}} von {{total}} beantwortet',
CONTINUE_FORM: 'Zum Formular',
REQUIRED: 'verpflichtend',
@ -343,14 +341,14 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
NO: 'Nein',
NEWLINE: 'Für eine neue Zeile SHIFT+ENTER drücken',
CONTINUE: 'Weiter',
LEGAL_ACCEPT: 'I accept',
LEGAL_NO_ACCEPT: 'I dont accept',
LEGAL_ACCEPT: 'Ich akzeptiere',
LEGAL_NO_ACCEPT: 'Ich akzeptiere nicht',
DELETE: 'Entfernen',
CANCEL: 'Canceln',
SUBMIT: 'Speichern',
UPLOAD_FILE: 'Datei versenden',
Y: 'J',
N: 'N',
N: 'N'
});
}]);
@ -363,8 +361,8 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
FORM_SUCCESS: 'Il formulario è stato inviato con successo!',
REVIEW: 'Incompleto',
BACK_TO_FORM: 'Ritorna al formulario',
EDIT_FORM: '',
CREATE_FORM: '',
EDIT_FORM: 'Modifica questo Tellform',
CREATE_FORM: 'Creare un TellForm',
ADVANCEMENT: '{{done}} su {{total}} completate',
CONTINUE_FORM: 'Vai al formulario',
REQUIRED: 'obbligatorio',
@ -379,14 +377,14 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
NO: 'No',
NEWLINE: 'premere SHIFT+INVIO per creare una nuova linea',
CONTINUE: 'Continua',
LEGAL_ACCEPT: 'I accept',
LEGAL_NO_ACCEPT: 'I dont accept',
LEGAL_ACCEPT: 'Accetto',
LEGAL_NO_ACCEPT: 'Non accetto',
DELETE: 'Cancella',
CANCEL: 'Reset',
SUBMIT: 'Registra',
UPLOAD_FILE: 'Invia un file',
Y: 'S',
N: 'N',
N: 'N'
});
}]);
@ -399,8 +397,8 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
FORM_SUCCESS: '¡El formulario ha sido enviado con éxito!',
REVIEW: 'Revisar',
BACK_TO_FORM: 'Regresar al formulario',
EDIT_FORM: '',
CREATE_FORM: '',
EDIT_FORM: 'Crear un TellForm',
CREATE_FORM: 'Editar este TellForm',
ADVANCEMENT: '{{done}} de {{total}} contestadas',
CONTINUE_FORM: 'Continuar al formulario',
REQUIRED: 'Información requerida',
@ -415,8 +413,8 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
NO: 'No',
NEWLINE: 'presione SHIFT+INTRO para crear una nueva línea',
CONTINUE: 'Continuar',
LEGAL_ACCEPT: 'I accept',
LEGAL_NO_ACCEPT: 'I dont accept',
LEGAL_ACCEPT: 'Acepto',
LEGAL_NO_ACCEPT: 'No acepto',
DELETE: 'Eliminar',
CANCEL: 'Cancelar',
SUBMIT: 'Registrar',
@ -439,8 +437,9 @@ angular.module('core').config(['$stateProvider', '$urlRouterProvider',
'use strict';
angular.module('core').controller('HeaderController', ['$rootScope', '$scope', 'Menus', '$state', 'Auth', 'User', '$window',
function ($rootScope, $scope, Menus, $state, Auth, User, $window) {
angular.module('core').controller('HeaderController', ['$rootScope', '$scope', 'Menus', '$state', 'Auth', 'User', '$window', '$translate',
function ($rootScope, $scope, Menus, $state, Auth, User, $window, $translate) {
$rootScope.signupDisabled = $window.signupDisabled;
$scope.user = $rootScope.user = Auth.ensureHasCurrentUser(User);
@ -448,6 +447,8 @@ angular.module('core').controller('HeaderController', ['$rootScope', '$scope', '
$rootScope.languages = $scope.languages = ['english', 'french', 'spanish', 'italian', 'german'];
$translate.use($scope.user.language);
$scope.isCollapsed = false;
$rootScope.hideNav = false;
$scope.menu = Menus.getMenu('topbar');
@ -486,15 +487,6 @@ angular.module('core').controller('HeaderController', ['$rootScope', '$scope', '
'use strict';
angular.module('core').controller('HomeController', ['$rootScope', '$scope', 'User', '$state',
function($rootScope, $scope, User, $state) {
$scope = $rootScope;
}
]);
'use strict';
//Menu service used for managing menus
angular.module('core').service('Menus', [
@ -690,11 +682,7 @@ angular.module('core').service('Menus', [
// Connect to Socket.io server
function connect(url) {
<<<<<<< HEAD
service.socket = io(url, {'transports': ['websocket', 'polling']});
=======
service.socket = io('https://stage.tellform.com', { transports: ['websocket', 'polling'] });
>>>>>>> ffc615a26240cdaebe88ff1064508f7120f0f4d5
}
// Wrap the Socket.io 'emit' method
@ -1130,7 +1118,7 @@ angular.module('users').controller('AuthenticationController', ['$scope', '$loca
angular.module('users').controller('PasswordController', ['$scope', '$stateParams', '$state', 'User',
function($scope, $stateParams, $state, User) {
$scope.error = '';
// Submit forgotten password account id
$scope.askForPasswordReset = function() {
User.askForPasswordReset($scope.credentials).then(
@ -1171,7 +1159,7 @@ angular.module('users').controller('SettingsController', ['$scope', '$rootScope'
function($scope, $rootScope, $http, $state, Users) {
$scope.user = $rootScope.user;
// Check if there are additional accounts
// Check if there are additional accounts
$scope.hasConnectedAdditionalSocialAccounts = function(provider) {
for (var i in $scope.user.additionalProvidersData) {
return true;
@ -1521,6 +1509,27 @@ angular.module('users').factory('Users', ['$resource',
]);
'use strict';
angular.module('core').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('english', {
MENU: 'MENU',
SIGNUP_TAB: 'Sign Up',
SIGNIN_TAB: 'Sign In',
SIGNOUT_TAB: 'Signout',
EDIT_PROFILE: 'Edit Profile',
MY_FORMS: 'My Forms',
MY_SETTINGS: 'My Settings',
CHANGE_PASSWORD: 'Change Password'
});
$translateProvider.preferredLanguage('english')
.fallbackLanguage('english')
.useSanitizeValueStrategy('escape');
}]);
'use strict';
// Forms controller
angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope', '$stateParams', '$state', 'Forms', 'CurrentForm', '$http', '$uibModal', 'myForm',
function($rootScope, $scope, $stateParams, $state, Forms, CurrentForm, $http, $uibModal, myForm) {
@ -1657,6 +1666,15 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope
$scope.forms = {};
$scope.showCreateModal = false;
$scope.languageRegExp = $scope.myPt = {
regExp: /[@!#$%^&*()\-+={}\[\]|\\/'";:`.,~№?<>]+/i,
test: function(val) {
console.log(val);
return !this.regExp.test(val);
}
};
// Return all user's Forms
$scope.findAll = function() {
Forms.query(function(_forms){
@ -1735,6 +1753,7 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope
};
}
]);
'use strict';
@ -2343,7 +2362,7 @@ angular.module('forms').directive('editSubmissionsFormDirective', ['$rootScope',
};
console.log($scope.table.rows);
angular.element('#table-submission-data').tableExport({type: type, escape:false});
/*
@ -2423,15 +2442,15 @@ angular.module('forms').service('FormFields', [
// },
// {
// name : 'stripe',
// value : 'Payment'
// value : 'Payment'
// },
{
name : 'statement',
value : 'Statement'
value : 'Statement'
}
];
}
]);
'use strict';
@ -2444,7 +2463,7 @@ angular.module('forms').factory('Submissions', ['$resource',
formId: '@_id'
}, {
'query' : {
method: 'GET',
method: 'GET',
isArray: true,
},
'update': {
@ -2459,33 +2478,6 @@ angular.module('forms').factory('Submissions', ['$resource',
'use strict';
// Configuring the Forms drop-down menus
angular.module('forms')
.filter('formValidity', function(){
return function(formObj){
if(formObj && formObj.form_fields && formObj.visible_form_fields){
//get keys
var formKeys = Object.keys(formObj);
//we only care about things that don't start with $
var fieldKeys = formKeys.filter(function(key){
return key[0] !== '$';
});
var fields = formObj.form_fields;
var valid_count = fields.filter(function(field){
if(typeof field === 'object' && field.fieldType !== 'statement' && field.fieldType !== 'rating'){
return !!(field.fieldValue);
}
}).length;
return valid_count - (formObj.form_fields.length - formObj.visible_form_fields.length);
}
return 0;
};
});
angular.module('forms').value('supportedFields', [
'textfield',
'textarea',
@ -2755,7 +2747,7 @@ angular.module('forms').directive('onFinishRender', ["$rootScope", "$timeout", f
return {
restrict: 'A',
link: function (scope, element, attrs) {
//Don't do anything if we don't have a ng-repeat on the current element
if(!element.attr('ng-repeat') && !element.attr('data-ng-repeat')){
return;
@ -3117,3 +3109,24 @@ angular.module('forms').service('TimeCounter', [
}
]);
'use strict';
angular.module('users').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('english', {
MENU_BTN: 'MENU',
SIGNUP_TAB: 'Sign Up',
SIGNIN_TAB: 'Sign In',
SIGNOUT_TAB: 'Signout',
EDIT_PROFILE_TAB: 'Edit Profile',
MY_FORMS_TAB: 'My Forms',
MY_SETTINGS_TAB: 'My Settings',
CHANGE_PASSWORD_TAB: 'Change Password'
});
$translateProvider.preferredLanguage('english')
.fallbackLanguage('english')
.useSanitizeValueStrategy('escape');
}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,20 @@
'use strict';
angular.module('core').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('en', {
MENU: 'MENU',
SIGNUP_TAB: 'Sign Up',
SIGNIN_TAB: 'Sign In',
SIGNOUT_TAB: 'Signout',
EDIT_PROFILE: 'Edit Profile',
MY_FORMS: 'My Forms',
MY_SETTINGS: 'My Settings',
CHANGE_PASSWORD: 'Change Password'
});
$translateProvider.preferredLanguage('en')
.fallbackLanguage('en')
.useSanitizeValueStrategy('escape');
}]);

View file

@ -0,0 +1,15 @@
'use strict';
angular.module('core').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('fr', {
MENU: 'MENU',
SIGNUP_TAB: 'Créer un Compte',
SIGNIN_TAB: 'Connexion',
SIGNOUT_TAB: 'Créer un compte',
EDIT_PROFILE: 'Modifier Mon Profil',
MY_FORMS: 'Mes Formulaires',
MY_SETTINGS: 'Mes Paramètres',
CHANGE_PASSWORD: 'Changer mon Mot de Pass'
});
}]);

View file

@ -1,13 +1,23 @@
'use strict';
angular.module('core').controller('HeaderController', ['$rootScope', '$scope', 'Menus', '$state', 'Auth', 'User', '$window',
function ($rootScope, $scope, Menus, $state, Auth, User, $window) {
angular.module('core').controller('HeaderController', ['$rootScope', '$scope', 'Menus', '$state', 'Auth', 'User', '$window', '$translate', '$locale',
function ($rootScope, $scope, Menus, $state, Auth, User, $window, $translate, $locale) {
$rootScope.signupDisabled = $window.signupDisabled;
$scope.user = $rootScope.user = Auth.ensureHasCurrentUser(User);
$scope.authentication = $rootScope.authentication = Auth;
$rootScope.languages = $scope.languages = ['english', 'french', 'spanish', 'italian', 'german'];
$rootScope.languages = $scope.languages = ['en', 'fr', 'es', 'it', 'de'];
console.log($locale.id);
//Set global app language
if($scope.authentication.isAuthenticated()){
$rootScope.language = $scope.user.language;
}else {
$rootScope.language = $locale.id.substring(0,2);
}
$translate.use($rootScope.language);
$scope.isCollapsed = false;
$rootScope.hideNav = false;

View file

@ -1,8 +0,0 @@
'use strict';
angular.module('core').controller('HomeController', ['$rootScope', '$scope', 'User', '$state',
function($rootScope, $scope, User, $state) {
$scope = $rootScope;
}
]);

View file

@ -3,7 +3,7 @@
<div class="navbar-header">
<button class="navbar-toggle" type="button" data-ng-click="toggleCollapsibleMenu()">
<span class="sr-only">Toggle navigation</span>
<span>MENU</span>
<span>{{ 'MENU_BTN' | translate }}</span>
</button>
<a href="https://www.tellform.com/#!/" class="navbar-brand">
<i class="fa fa-archive" style="padding-right: 0.3em;"></i>Tell<span>Form</span>
@ -26,34 +26,31 @@
</ul>
<ul class="nav navbar-nav navbar-right" data-ng-hide="authentication.isAuthenticated()">
<li ng-hide="$root.signupDisabled" ui-route="/signup" ng-class="{active: $uiRoute}">
<a href="/#!/signup">Sign Up</a>
<a href="/#!/signup">{{ 'SIGNUP_TAB' | translate }}</a>
</li>
<li class="divider-vertical"></li>
<li ui-route="/signin" ng-class="{active: $uiRoute}">
<a href="/#!/signin">Sign In</a>
<a href="/#!/signin">{{ 'SIGNIN_TAB' | translate }}</a>
</li>
</ul>
<ul class="nav navbar-nav navbar-right" data-ng-show="authentication.isAuthenticated()">
<li class="dropdown" uib-dropdown>
<a href="#" class="dropdown-toggle" data-toggle="dropdown" dropdown-toggle>
<span>My Settings</span>
<span>{{ 'MY_SETTINGS' | translate }}</span>
<b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li>
<a href="/#!/settings/profile">Edit Profile</a>
<a href="/#!/settings/profile">{{ 'EDIT_PROFILE' | translate }}</a>
</li>
<li class="divider"></li>
<li>
<a href="/#!/settings/password">Change Password</a>
</li>
<li data-ng-show="authentication.isAuthenticated().provider === 'local'">
<a href="/#!/settings/password">Change Password</a>
<a href="/#!/settings/password"> {{ 'CHANGE_PASSWORD' | translate }}</a>
</li>
</ul>
</li>
<li ng-click="signout()">
<a>Signout</a>
<a>{{ 'SIGNOUT_TAB' | translate }}</a>
</li>
</ul>
</nav>

View file

@ -0,0 +1,97 @@
'use strict';
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('en', {
//Configure Form Tab View
PDF_GENERATION_EMR: 'PDF Generation/EMR',
SAVE_PDF_SUBMISSIONS: 'Save Submissions as PDFs?',
UPLOAD_YOUR_PDF: 'Upload Your PDF Template',
ADVANCED_SETTINGS: 'Advanced Settings',
FORM_NAME: 'Form Name',
FORM_STATUS: 'Form Status',
PUBLIC: 'Public',
PRIVATE: 'Private',
GA_TRACKING_CODE: 'Google Analytics Tracking Code',
DISPLAY_FOOTER: 'Display Form Footer?',
SAVE_CHANGES: 'Save Changes',
CANCEL: 'Cancel',
//List Forms View
CREATE_A_NEW_FORM: 'Create a new form',
CREATE_FORM: 'Create form',
CREATED_ON: 'Created on',
//Admin Form View
ARE_YOU_SURE: 'Are you ABSOLUTELY sure?',
READ_WARNING: 'Unexpected bad things will happen if you dont read this!',
DELETE_WARNING1: 'This action CANNOT be undone.This will permanently delete the',
DELETE_WARNING2: 'form, form submissions and remove all associated pdfs.',
DELETE_CONFIRM: 'Please type in the name of the form to confirm',
I_UNDERSTAND: 'I understand the consequences, delete this form',
DELETE_FORM_SM: 'Delete',
DELETE_FORM_MD: 'Delete Form',
DELETE: 'Delete',
FORM: 'Form',
VIEW: 'View',
LIVE: 'Live',
PREVIEW: 'Preview',
//Edit Form View
ADD_FIELD_LG: 'Click to Add New Field',
ADD_FIELD_MD: 'Add New Field',
ADD_FIELD_SM: 'Add Field',
PREVIEW_START_PAGE: 'Preview Start Page',
EDIT_START_PAGE: 'Edit Start Page',
INTRO_TTILE: 'Intro Title',
INTRO_PARAGRAPH: 'Intro Paragraph',
INTRO_BTN: 'Intro Button',
BUTTONS: 'Buttons',
BUTTON_TEXT: 'Text',
BUTTON_LINK: 'Link',
ADD_BUTTON: 'Add Button',
PREVIEW_FIELD: 'Preview Field',
EDIT_FIELD: 'Edit Field',
QUESTION_TITLE: 'Question Title',
QUESTION_DESCRIPTION: 'Question Description',
OPTIONS: 'Options',
ADD_OPTION: 'Add Option',
NUM_OF_STEPS: 'Number of Steps',
CLICK_FIELDS_FOOTER: 'Click on fields to add them here',
//Edit Submissions View
TOTAL_VIEWS: 'Total Views',
SUBMISSIONS: 'Submissions',
CONVERSION_RATE: 'Conversion Rate',
FIELD_TITLE: 'Field Title',
FIELD_VIEWS: 'Field Views',
FIELD_DROPOFF: 'User dropoff rate at this field',
DELETE_SELECTED: 'Delete Selected',
EXPORT_TO_EXCEL: 'Export to Excel',
EXPORT_TO_CSV: 'Export to CSV',
EXPORT_TO_JSON: 'Export to JSON',
PERCENTAGE_COMPLETE: 'Percentage Complete',
TIME_ELAPSED: 'Time Elapsed',
DEVICE: 'Device',
LOCATION: 'Location',
IP_ADDRESS: 'IP Address',
DATE_SUBMITTED: 'Date Submitted',
GENERATED_PDF: 'Generated PDF',
//Design View
BACKGROUND_COLOR: 'Background Color',
DESIGN_HEADER: 'Change how your Form Looks',
QUESTION_TEXT_COLOR: 'Question Text Color',
ANSWER_TEXT_COLOR: 'Answer Text Color',
BTN_BACKGROUND_COLOR: 'Button Background Color',
BTN_TEXT_COLOR: 'Button Text Color',
//Admin Tabs
CREATE_TAB: 'Create',
DESIGN_TAB: 'Design',
CONFIGURE_TAB: 'Configure',
ANALYZE_TAB: 'Analyze'
});
}]);

View file

@ -1,8 +1,8 @@
'use strict';
// Forms controller
angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope', '$stateParams', '$state', 'Forms', 'CurrentForm', '$http', '$uibModal', 'myForm',
function($rootScope, $scope, $stateParams, $state, Forms, CurrentForm, $http, $uibModal, myForm) {
angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope', '$stateParams', '$state', 'Forms', 'CurrentForm', '$http', '$uibModal', 'myForm', '$filter',
function($rootScope, $scope, $stateParams, $state, Forms, CurrentForm, $http, $uibModal, myForm, $filter) {
$scope = $rootScope;
$scope.animationsEnabled = true;
@ -13,19 +13,19 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
$scope.tabData = [
{
heading: 'Create',
heading: $filter('translate')('CREATE_TAB'),
route: 'viewForm.create'
},
{
heading: 'Design',
heading: $filter('translate')('DESIGN_TAB'),
route: 'viewForm.design'
},
{
heading: 'Configure',
heading: $filter('translate')('CONFIGURE_TAB'),
route: 'viewForm.configure'
},
{
heading: 'Analyze',
heading: $filter('translate')('ANALYZE_TAB'),
route: 'viewForm.analyze'
}
];

View file

@ -11,12 +11,10 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope
$scope.languageRegExp = $scope.myPt = {
regExp: /[@!#$%^&*()\-+={}\[\]|\\/'";:`.,~№?<>]+/i,
test: function(val) {
console.log(val);
return !this.regExp.test(val);
}
};
// Return all user's Forms
$scope.findAll = function() {
Forms.query(function(_forms){
@ -69,7 +67,7 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope
if($scope.forms.createForm.$valid && $scope.forms.createForm.$dirty){
$http.post('/forms', {form: form})
.success(function(data, status, headers){
console.log('new form created');
//console.log('new form created');
// Redirect after save
$scope.goToWithId('viewForm.create', data._id+'');
}).error(function(errorResponse){
@ -86,10 +84,10 @@ angular.module('forms').controller('ListFormsController', ['$rootScope', '$scope
$http.delete('/forms/'+$scope.myforms[form_index]._id)
.success(function(data, status, headers){
console.log('form deleted successfully');
//console.log('form deleted successfully');
$scope.myforms.splice(form_index, 1);
}).error(function(error){
console.log('ERROR: Form could not be deleted.');
//console.log('ERROR: Form could not be deleted.');
console.error(error);
});
};

View file

@ -5,24 +5,24 @@
<!-- Modal Delete Dialog Template -->
<script type="text/ng-template" id="myModalContent.html">
<div class="modal-header">
<h2 class="modal-title hidden-md hidden-lg">Are you ABSOLUTELY sure?</h2>
<h3 class="modal-title hidden-xs hidden-sm">Are you ABSOLUTELY sure?</h3>
<h2 class="modal-title hidden-md hidden-lg">{{ 'ARE_YOU_SURE' | translate }}</h2>
<h3 class="modal-title hidden-xs hidden-sm">{{ 'ARE_YOU_SURE' | translate }}</h3>
</div>
<div class="modal-body">
<div class="modal-body-alert">
Unexpected bad things will happen if you dont read this!
{{ 'READ_WARNING' | translate }}
</div>
<p class="hidden-xs hidden-sm">
This action <strong>CANNOT</strong> be undone.This will permanently delete the <strong>{{myform.title}}</strong> form, form submissions and remove all associated pdfs.
{{ 'DELETE_WARNING1' | translate }}<strong>{{myform.title}}</strong> {{ 'DELETE_WARNING2' | translate }}
</p>
<p>Please type in the name of the form to confirm.</p>
<p>{{ 'DELETE_CONFIRM' | translate }}</p>
</div>
<div class="modal-footer">
<p>
<input type="text" data-ng-model="deleteConfirm" class="input-block" autofocus required aria-label="Type in the name of the form to confirm that you want to delete this form.">
</p>
<button type="submit" ng-click="removeCurrentForm()" class="btn btn-block btn-danger" ng-disabled="myform.title != deleteConfirm">
I understand the consequences, delete this form
{{ 'I_UNDERSTAND' | translate }}
</button>
</div>
</script>
@ -36,8 +36,8 @@
<small class="pull-right">
<button class="btn btn-danger" ng-click="openDeleteModal()">
<i class="fa fa-trash-o"></i>
<span class="hidden-xs">Delete</span>
<span class="hidden-xs hidden-sm">Form</span>
<span class="show-sm hidden-lg hidden-md hidden-xs">{{ 'DELETE_FORM_SM' | translate}}</span>
<span class="hidden-xs hidden-sm">{{ 'DELETE_FORM_MD' | translate}}</span>
</button>
</small>
</div>
@ -45,16 +45,16 @@
<small class="pull-right">
<a class="btn btn-default view-form-btn" href="/#!/forms/{{myform._id}}">
<span class="hidden-xs hidden-sm">
View
{{ 'VIEW' | translate }}
<span ng-show="myform.isLive">
Live
{{ 'LIVE' | translate }}
</span>
<span ng-hide="myform.isLive">Preview</span> Form
<span ng-hide="myform.isLive">{{ 'PREVIEW' | translate }}</span> {{ 'FORM' | translate }}
</span>
<span class="hidden-xs hidden-md hidden-lg">
View
<span ng-if="myform.isLive">Live</span>
<span ng-if="!myform.isLive">Preview</span>
<span ng-if="myform.isLive">{{ 'LIVE' | translate }}</span>
<span ng-if="!myform.isLive">{{ 'PREVIEW' | translate }}</span>
</span>
<i class="status-light status-light-on fa fa-dot-circle-o" ng-if="myform.isLive"></i>
<i class="status-light status-light-off fa fa-dot-circle-o" ng-if="!myform.isLive"></i>

View file

@ -3,14 +3,14 @@
<div class="col-md-12 container">
<div class="row">
<div class="col-sm-12">
<h2 class="hidden-sm hidden-xs">Change how your Form Looks</h2>
<h3 class="hidden-lg hidden-md">Change how your Form Looks</h3>
<h2 class="hidden-sm hidden-xs">{{ 'DESIGN_HEADER' | translate }}</h2>
<h3 class="hidden-lg hidden-md">{{ 'DESIGN_HEADER' | translate }}</h3>
</div>
</div>
<div class="row field">
<div class="field-title col-sm-3">
<h5>Background Color</h5>
<h5>{{ 'BACKGROUND_COLOR' | translate }}</h5>
</div>
<div class="field-input col-sm-9">
@ -21,7 +21,7 @@
<div class="row field">
<div class="field-title col-sm-3">
<h5>Question Text Color</h5>
<h5>{{ 'QUESTION_TEXT_COLOR' | translate }}</h5>
</div>
<div class="field-input col-sm-9">
@ -34,7 +34,7 @@
<div class="row field">
<div class="field-title col-sm-3">
<h5>Answer Text Color</h5>
<h5>{{ 'ANSWER_TEXT_COLOR' | translate }}</h5>
</div>
<div class="field-input col-sm-9">
@ -44,7 +44,7 @@
<div class="row field">
<div class="field-title col-sm-3">
<h5>Button Background Color</h5>
<h5>{{ 'BTN_BACKGROUND_COLOR' | translate }}</h5>
</div>
<div class="field-input col-sm-9">
@ -55,7 +55,7 @@
</div>
<div class="row field">
<div class="field-title col-sm-3">
<h5>Button Text Color</h5>
<h5>{{ 'BTN_TEXT_COLOR' | translate }}</h5>
</div>
<div class="field-input col-sm-9">

View file

@ -5,37 +5,35 @@
<div class="col-md-6 col-sm-12 container">
<div class="row">
<div class="col-sm-12">
<h2 class="hidden-sm hidden-xs">PDF Generation/EMR</h2>
<h3 class="hidden-lg hidden-md">PDF Generation/EMR</h3>
<h2 class="hidden-sm hidden-xs">{{ 'PDF Generation/EMR' | translate }}</h2>
<h3 class="hidden-lg hidden-md">{{ 'PDF Generation/EMR' | translate }}</h3>
</div>
</div>
<!-- autofillPDFs yes/no field -->
<div class="row field">
<div class="field-title col-sm-6">
<h5>Save Submissions as PDFs?</h5>
<h5>{{ 'SAVE_PDF_SUBMISSIONS' | translate }}</h5>
</div>
<div class="field-input col-sm-6">
<label>
<input type="radio" data-ng-value="true" ng-model="myform.autofillPDFs" ng-required="true" />
&nbsp;<span>Yes</span>
&nbsp;<span>{{ 'YES' | translate }}</span>
</label>
<label>
<input type="radio" data-ng-value="false" ng-model="myform.autofillPDFs" ng-required="true" />
&nbsp;<span>No</span>
&nbsp;<span>{{ 'NO' | translate }}</span>
</label>
<!-- <span class="required-error" ng-show="field.required && !field.fieldValue">* required</span> -->
</div>
</div>
</div>
<!-- Upload PDF Field -->
<div class="row field" ng-if="myform.autofillPDFs || myform.isGenerated">
<div class="col-sm-6 field-title">
<h5>Upload Your PDF Template</h5>
<h5>{{ 'UPLOAD_YOUR_PDF' | translate }}</h5>
</div>
<div class="col-sm-6 field-input">
<div class="input-group ">
@ -60,7 +58,7 @@
<div class="btn btn-success btn-file" ngf-select="uploadPDF($file)">
<i class="glyphicon glyphicon-upload"></i>
Upload your PDF
{{ 'UPLOAD_YOUR_PDF' | translate }}
</div>
</div>
</div>
@ -70,7 +68,7 @@
<!-- Generate form from PDF yes/no field -->
<div class="row field">
<div class="col-sm-6 field-title">
<h5>Autogenerate Form?</h5>
<h5>{{ 'Autogenerate Form?' | translate }}</h5>
</div>
<div class="col-sm-6 field-input">
@ -86,80 +84,6 @@
</div>
</div>
<!-- activate oscarhost API yes/no field -->
<div class="row field">
<div class="field-title col-sm-6">
<h5>Use Oscarhost API?</h5>
</div>
<div class="field-input col-sm-6">
<label>
<input type="radio" data-ng-value="true" ng-model="oscarhostAPI" ng-required="true" />
&nbsp;<span>Yes</span>
</label>
<label>
<input type="radio" data-ng-value="false" ng-model="oscarhostAPI" ng-required="true" />
&nbsp;<span>No</span>
</label>
<!-- <span class="required-error" ng-show="field.required && !field.fieldValue">* required</span> -->
</div>
</div>
<div class="row field" ng-if="oscarhostAPI">
<div class="field-title col-sm-4">
<h5>Oscarhost API Username</h5>
</div>
<div class="col-sm-8">
<input type="text"
ng-model="myform.plugins.oscarhost.auth.user"
value="{{myform.plugins.oscarhost.auth.user}}"
style="width: 100%;"
required>
</div>
</div>
<div class="row field" ng-if="oscarhostAPI">
<div class="field-title col-sm-4">
<h5>Oscarhost API Password</h5>
</div>
<div class="col-sm-8">
<input type="password"
ng-model="myform.plugins.oscarhost.auth.pass"
value="{{myform.plugins.oscarhost.auth.pass}}"
style="width: 100%;"
required>
</div>
</div>
<div class="row field" ng-if="oscarhostAPI">
<div class="field-title col-sm-4">
<h5>Oscarhost API URL</h5>
</div>
<div class="col-sm-8">
<input type="link"
ng-model="myform.plugins.oscarhost.baseUrl"
value="{{myform.plugins.oscarhost.baseUrl}}"
style="width: 100%;"
required>
</div>
</div>
<div class="row field" ng-if="oscarhostAPI">
<div class="field-title col-sm-4">
<h5>Oscarhost API Update Type</h5>
</div>
<div class="col-sm-8">
<select ng-model="myform.plugins.oscarhost.settings.updateType">
<option ng-repeat="updateType in myform.plugins.oscarhost.settings.validUpdateTypes" ng-selected="myform.plugins.oscarhost.settings.updateType == updateType" ng-value="updateType">
{{updateType}}
</option>
</select>
</div>
</div>
<!-- Generate typeform from TellForm yes/no field -->
<!-- <div class="row field">
@ -231,14 +155,14 @@
<div class="col-md-5 col-md-offset-1 col-sm-12 container">
<div class="row">
<div class="col-sm-12">
<h2 class="hidden-sm hidden-xs">Advanced Settings</h2>
<h3 class="hidden-lg hidden-md">Advanced Settings</h3>
<h2 class="hidden-sm hidden-xs">{{ 'ADVANCED_SETTINGS' | translate }}</h2>
<h3 class="hidden-lg hidden-md">{{ 'ADVANCED_SETTINGS' | translate }}</h3>
</div>
</div>
<div class="row field">
<div class="field-title col-sm-4">
<h5>Form Name</h5>
<h5>{{ 'FORM_NAME' | translate }}</h5>
</div>
<div class="col-sm-8">
@ -253,28 +177,27 @@
<div class="row field">
<div class="field-title col-sm-6">
<h5>Form Status</h5>
<h5>{{ 'FORM_STATUS' | translate }}</h5>
</div>
<div class="field-input col-sm-6">
<label>
<input type="radio" data-ng-value="true" ng-model="myform.isLive" ng-required="true" style="background-color:#33CC00;"/>
&nbsp;<span>Public</span>
&nbsp;<span>{{ 'PUBLIC' | translate }}</span>
</label>
<label>
<input type="radio" data-ng-value="false" ng-model="myform.isLive" ng-required="true" />
&nbsp;<span>Private</span>
&nbsp;<span>{{ 'PRIVATE' | translate }}</span>
</label>
<!-- <span class="required-error" ng-show="field.required && !field.fieldValue">* required</span> -->
</div>
</div>
<div class="row field">
<div class="field-title col-sm-4">
<h5>Google Analytics Tracking Code</h5>
<h5>{{ 'GA_TRACKING_CODE' | translate }}</h5>
</div>
<div class="col-sm-8">
@ -303,18 +226,18 @@
</div>
<div class="row field">
<div class="field-title col-sm-6">
<h5>Display Form Footer?</h5>
<h5>{{ 'DISPLAY_FOOTER' | translate }}</h5>
</div>
<div class="field-input col-sm-6">
<label>
<input type="radio" data-ng-value="false" ng-model="myform.hideFooter" ng-required="true" />
&nbsp;<span>Yes</span>
&nbsp;<span>{{ 'YES' | translate }}</span>
</label>
<label>
<input type="radio" data-ng-value="true" ng-model="myform.hideFooter" ng-required="true" />
&nbsp;<span>No</span>
&nbsp;<span>{{ 'No' | translate }}</span>
</label>
</div>
</div>
@ -328,25 +251,24 @@
<label>
<input type="radio" data-ng-value="true" ng-model="myform.startPage.showStart" ng-required="true" style="background-color:#33CC00;"/>
&nbsp;<span>Yes</span>
&nbsp;<span>{{ 'YES' | translate }}</span>
</label>
<label>
<input type="radio" data-ng-value="false" ng-model="myform.startPage.showStart" ng-required="true" />
&nbsp;<span>No</span>
&nbsp;<span>{{ 'NO' | translate }}</span>
</label>
<!-- <span class="required-error" ng-show="field.required && !field.fieldValue">* required</span> -->
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-offset-4 col-sm-2">
<button class="btn btn-primary btn-large" type="button" ng-click="update(false, null)"><i class="icon-arrow-left icon-white"></i> Save Changes</button>
<button class="btn btn-primary btn-large" type="button" ng-click="update(false, null)"><i class="icon-arrow-left icon-white"></i>{{ 'SAVE_CHANGES' | translate }}</button>
</div>
<div class="col-sm-1">
<button class="btn btn-default" type="button" ng-click="resetForm()"><i class="icon-eye-open icon-white"></i> Cancel</button>
<button class="btn btn-default" type="button" ng-click="resetForm()"><i class="icon-eye-open icon-white"></i>{{ 'CANCEL' | translate }}</button>
</div>
</div>
</div>

View file

@ -3,9 +3,9 @@
<div class="col-xs-2 col-sm-4 col-md-5 add-field">
<div class="row add-field-title">
<h3 class="col-md-12 hidden-sm hidden-xs">Click to Add New Field</h3>
<h4 class="col-sm-12 hidden-xs hidden-md hidden-lg">Add New Field</h4>
<h5 class="col-sm-12 hidden-sm hidden-md hidden-lg">Add Field</h5>
<h3 class="col-md-12 hidden-sm hidden-xs">{{ 'ADD_FIELD_LG' | translate }}</h3>
<h4 class="col-sm-12 hidden-xs hidden-md hidden-lg">{{ 'ADD_FIELD_MD' | translate }}</h4>
<h5 class="col-sm-12 hidden-sm hidden-md hidden-lg">{{ 'ADD_FIELD_SM' | translate }}</h5>
</div>
<div class="panel-group row" class="draggable" ng-model="addField.types">
@ -45,7 +45,7 @@
<div class="row hidden-sm hidden-xs">
<div class="col-md-12">
<h4>Preview Start Page</h4>
<h4>{{ 'PREVIEW_START_PAGE' | translate }}</h4>
</div>
<ul class="col-md-12 container" style="list-style:none;border:2px lightgray solid;">
@ -78,13 +78,13 @@
<div class="row">
<div class="col-xs-12">
<h4>Edit Start Page</h4>
<h4>{{ 'EDIT_START_PAGE' | translate }}</h4>
<br>
</div>
</div>
<div class="row question">
<div class="col-md-4 col-sm-12">Intro Title:</div>
<div class="col-md-4 col-sm-12">{{ 'INTRO_TITLE' | translate }}:</div>
<div class="col-md-8 col-sm-12">
<input type="text"
ng-model="myform.startPage.introTitle"
@ -94,7 +94,7 @@
</div>
<div class="row question">
<div class="col-md-4 col-sm-12">Intro Paragraph:</div>
<div class="col-md-4 col-sm-12">{{ 'INTRO_PARAGRAPH' | translate }}:</div>
<div class="col-md-8 col-sm-12">
<textarea type="text"
ng-model="myform.startPage.introParagraph"
@ -103,7 +103,7 @@
</div>
<div class="row question">
<div class="col-md-4 col-sm-12">Intro Button:</div>
<div class="col-md-4 col-sm-12">{{ 'INTRO_BTN' | translate }}:</div>
<div class="col-md-8 col-sm-12">
<input type="text"
ng-model="myform.startPage.introButtonText"
@ -120,7 +120,7 @@
<div ng-repeat="button in myform.startPage.buttons track by button._id" class="row" style="padding-bottom:1em;">
<div class="col-xs-5">
<span>Text</span>
<span>{{ 'BUTTON_TEXT' | translate }}</span>
<input type="text"
name="{{button.text}}_buttonText_startPage"
ng-model="button.text"
@ -130,7 +130,7 @@
<div class="col-xs-5">
<span>Link</span>
<span>{{ 'BUTTON_LINK' | translate }}</span>
<input type="text"
name="{{button.url}}_url_startPage"
ng-model="button.url"
@ -148,7 +148,7 @@
<div class="row"><br></div>
<div class="row">
<button class="btn btn-primary btn-small col-md-offset-6 col-md-6 col-sm-4 col-sm-offset-8 col-xs-4 col-xs-offset-8" type="button" ng-click="addButton()">
<i class="icon-plus icon-white"></i> Add Button
<i class="icon-plus icon-white"></i> {{ 'ADD_BUTTON' | translate }}
</button>
</div>
</div>
@ -196,7 +196,7 @@
<div class="row hidden-sm hidden-xs">
<div class="col-md-12">
<h4>Preview Field</h4>
<h4>{{ 'PREVIEW_FIELD' | translate }}</h4>
</div>
<ul class="col-md-12 container" style="list-style:none;border:2px lightgray solid;">
<field-directive field="field" validate="false">
@ -207,13 +207,13 @@
<div class="row">
<div class="col-xs-12">
<h4>Edit Field</h4>
<h4>{{ 'EDIT_FIELD' | translate }}</h4>
<br>
</div>
</div>
<div class="row question">
<div class="col-md-4 col-sm-12">Question Title:</div>
<div class="col-md-4 col-sm-12">{{ 'QUESTION_TITLE' | translate }}:</div>
<div class="col-md-8 col-sm-12">
<input type="text" ng-model="field.title" name="title{{field._id}}" value="{{field.title}}" required></div>
</div>
@ -221,13 +221,13 @@
<div class="row"><br></div>
<div class="row description" ng-hide="showRatingOptions(field)">
<div class="col-md-4 col-sm-12">Description:</div>
<div class="col-md-4 col-sm-12">{{ 'QUESTION_DESCRIPTION' | translate }}:</div>
<div class="col-md-8 col-sm-12"><textarea type="text" ng-model="field.description" name="description{{field._id}}"value="{{field.description}}"></textarea> </div>
</div>
<div class="row" ng-show="showAddOptions(field)"><br></div>
<div class="row options" ng-if="showAddOptions(field)">
<div class="col-md-4 col-xs-12">Options:</div>
<div class="col-md-4 col-xs-12">{{ 'OPTIONS' | translate }}:</div>
<div class="col-md-8 col-xs-12">
<div ng-repeat="option in field.fieldOptions track by option.option_id" class="row">
<input type="text" name="{{option.option_value}}{{field._id}}" ng-model="option.option_value" class="col-xs-5">
@ -238,7 +238,7 @@
</div>
<div class="row">
<button class="btn btn-primary btn-small col-md-offset-0 col-md-6 col-sm-4 col-sm-offset-4 col-xs-6 col-xs-offset-6" type="button" ng-click="addOption($index)">
<i class="icon-plus icon-white"></i> Add Option
<i class="icon-plus icon-white"></i> {{ 'ADD_OPTION' | translate }}
</button>
</div>
</div>
@ -247,7 +247,7 @@
<div class="row" ng-show="showRatingOptions(field)"><br></div>
<div class="row" ng-if="showRatingOptions(field)">
<div class="col-md-9 col-sm-9">Number of Steps:</div>
<div class="col-md-9 col-sm-9">{{ 'NUM_OF_STEPS' | translate }}</div>
<div class="col-md-3 col-sm-3">
<input style="width:100%" type="number"
min="1" max="10"
@ -277,12 +277,12 @@
<div class="col-md-8 col-xs-12 field-input">
<label class="btn col-xs-5">
<input type="radio" ng-value="true" ng-model="field.required" name="required{{field._id}}"/>
<span> &nbsp; Yes</span>
<span> &nbsp; {{ 'YES' | translate }}</span>
</label>
<label class="btn col-xs-5 col-xs-offset-1">
<input type="radio" ng-value="false" ng-model="field.required" name="required{{field._id}}"/>
<span> &nbsp; No</span>
<span> &nbsp; {{ 'NO' | translate }}</span>
</label>
</div>
</div>
@ -293,13 +293,13 @@
<label class="btn col-xs-5">
<input type="radio" ng-value="true"
ng-model="field.disabled" name="disabled{{field._id}}"/>
<span> &nbsp; Yes</span>
<span> &nbsp; {{ 'YES' | translate }}</span>
</label>
<label class="btn col-xs-5 col-xs-offset-1">
<input type="radio" ng-value="false"
ng-model="field.disabled" name="disabled{{field._id}}"/>
<span> &nbsp; No</span>
<span> &nbsp; {{ 'NO' | translate }}</span>
</label>
</div>
</div>
@ -310,7 +310,7 @@
<div class="panel panel-default" style="border-style: dashed; border-color: #a9a9a9;">
<div class="panel-heading">
<h4 class="panel-title text-center" style="color: #a9a9a9;">
Click on Fields to add them here
{{ 'CLICK_FIELDS_FOOTER' | translate }}
</h4>
</div>
</div>

View file

@ -1,15 +1,15 @@
<div class="submissions-table row container" ng-init="initFormSubmissions()">
<div class="row">
<div class="col-xs-4">
Total Views: {{myform.analytics.views}}
{{ 'TOTAL_VIEWS' | translate }}: {{myform.analytics.views}}
</div>
<div class="col-xs-4">
Submissions: {{myform.analytics.submissions}}
{{ 'SUBMISSIONS' | translate }}: {{myform.analytics.submissions}}
</div>
<div class="col-xs-4">
Conversion Rate: {{myform.analytics.conversionRate}}%
{{ 'CONVERSION_RATE' | translate }}: {{myform.analytics.conversionRate}}%
</div>
</div>
<br>
@ -17,14 +17,14 @@
<div class="col-xs-12">
<div class="col-xs-2">
<strong>Field Title</strong>
<strong>{{ 'FIELD_TITLE' | translate }}</strong>
</div>
<div class="col-xs-2">
<strong>Field Views</strong>
<strong>{{ 'FIELD_VIEWS' | translate }}</strong>
</div>
<div class="col-xs-4">
<strong>User dropoff rate at this field</strong>
<strong>{{ 'FIELD_DROPOFF' | translate }}</strong>
</div>
</div>
<div class="col-xs-12" ng-repeat="fieldStats in myform.analytics.fields">
@ -45,22 +45,22 @@
<div class="row">
<div class="col-xs-2">
<button class="btn btn-danger" ng-click="deleteSelectedSubmissions()" ng-disabled="!isAtLeastOneChecked();">
<i class="fa fa-trash-o"></i> Delete Selected
<i class="fa fa-trash-o"></i> {{ 'DELETE_SELECTED' | translate }}
</button>
</div>
<div class="col-xs-2 col-xs-offset-4 text-right">
<button class="btn btn-default" ng-click="exportSubmissions('xml')">
<small>Export to Excel</small>
<small>{{ 'EXPORT_TO_EXCEL' | translate }}</small>
</button>
</div>
<div class="col-md-2 text-right">
<button class="btn btn-default" ng-click="exportSubmissions('csv')">
<small>Export to CSV</small>
<small>{{ 'EXPORT_TO_CSV' | translate }}</small>
</button>
</div>
<div class="col-md-2 text-right">
<button class="btn btn-default" ng-click="exportSubmissions('json')">
<small>Export to JSON</small>
<small>{{ 'EXPORT_TO_JSON' | translate }}</small>
</button>
</div>
</div>
@ -76,29 +76,26 @@
<th data-ng-repeat="(key, value) in myform.form_fields">
{{value.title}}
</th>
<th ng-if="myform.plugins.oscarhost.baseUrl">
OscarEMR User Profile
<th>
{{ 'PERCENTAGE_COMPLETE' | translate }}
</th>
<th>
Percentage Complete
{{ 'TIME_ELAPSED' | translate }}
</th>
<th>
Time Elapsed
{{ 'DEVICE' | translate }}
</th>
<th>
Device
{{ 'LOCATION' | translate }}
</th>
<th>
Location
{{ 'IP_ADDRESS' | translate }}
</th>
<th>
IP Address
</th>
<th>
Date Submitted (UTC)
{{ 'DATE_SUBMITTED' | translate }} (UTC)
</th>
<th ng-if="myform.autofillPDFs">
Generated PDF
{{ 'GENERATED_PDF' | translate }}
</th>
</tr>
</thead>
@ -115,11 +112,6 @@
<td data-ng-repeat="field in row.form_fields">
{{field.fieldValue}}
</td>
<td ng-if="myform.plugins.oscarhost.baseUrl">
<a href="{{myform.plugins.oscarhost.baseUrl.split('ws')[0]}}demographic/demographiccontrol.jsp?demographic_no={{row.oscarDemoNum}}&displaymode=edit">
User Profile #{{row.oscarDemoNum}}
</a>
</td>
<td>
{{row.percentageComplete}}%
</td>
@ -139,7 +131,7 @@
{{row.created | date:'yyyy-MM-dd HH:mm:ss'}}
</td>
<td ng-if="row.pdf">
<a href="{{row.pdfFilePath}}" download="{{row.pdf.name}}" target="_self">Generated PDF</a>
<a href="{{row.pdfFilePath}}" download="{{row.pdf.name}}" target="_self">{{ 'GENERATED_PDF' | translate }}</a>
</td>
</tr>
</tbody>

View file

@ -10,7 +10,7 @@
<div class="col-xs-12 details-row">
<small class="list-group-item-text">
Create a new form
{{ 'CREATE_A_NEW_FORM' | translate }}
</small>
</div>
@ -38,7 +38,7 @@
<div class="details-row submit row">
<div class="col-xs-12 field-title text-center">
<button class="btn btn-primary" ng-disabled="forms.createForm.$invalid" ng-click="createNewForm()">
Create Form
{{ 'CREATE_FORM' | translate }}
</button>
</div>
</div>
@ -67,12 +67,9 @@
<div class="col-xs-12 details-row">
<small class="list-group-item-text">
Created on
{{ 'CREATED_ON' | translate }}
<span data-ng-bind="form.created | date:'shortDate'"></span>
</small>
<!--by
<span data-ng-bind="form.admin.username"></span>
</small> -->
</div>
</div>

View file

@ -2,7 +2,7 @@
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('english', {
$translateProvider.translations('en', {
FORM_SUCCESS: 'Form entry successfully submitted!',
REVIEW: 'Review',
BACK_TO_FORM: 'Go back to Form',
@ -29,9 +29,5 @@ angular.module('forms').config(['$translateProvider', function ($translateProvid
SUBMIT: 'Submit',
UPLOAD_FILE: 'Upload your File'
});
$translateProvider.preferredLanguage('english')
.fallbackLanguage('english')
.useSanitizeValueStrategy('escape');
}]);

View file

@ -2,7 +2,7 @@
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('french', {
$translateProvider.translations('fr', {
FORM_SUCCESS: 'Votre formulaire a été enregistré!',
REVIEW: 'Incomplet',
BACK_TO_FORM: 'Retourner au formulaire',

View file

@ -2,7 +2,7 @@
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('german', {
$translateProvider.translations('de', {
FORM_SUCCESS: 'Ihre Angaben wurden gespeichert.',
REVIEW: 'Unvollständig',
BACK_TO_FORM: 'Zurück zum Formular',

View file

@ -2,7 +2,7 @@
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('italian', {
$translateProvider.translations('it', {
FORM_SUCCESS: 'Il formulario è stato inviato con successo!',
REVIEW: 'Incompleto',
BACK_TO_FORM: 'Ritorna al formulario',

View file

@ -2,7 +2,7 @@
angular.module('forms').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('spanish', {
$translateProvider.translations('es', {
FORM_SUCCESS: '¡El formulario ha sido enviado con éxito!',
REVIEW: 'Revisar',
BACK_TO_FORM: 'Regresar al formulario',

View file

@ -3,5 +3,5 @@
// Use Application configuration module to register a new module
ApplicationConfiguration.registerModule('forms', [
'ngFileUpload', 'ui.router.tabs', 'ui.date', 'ui.sortable',
'angular-input-stars', 'users', 'pascalprecht.translate'
'angular-input-stars', 'users'
]);//, 'colorpicker.module' @TODO reactivate this module

View file

@ -0,0 +1,55 @@
'use strict';
angular.module('users').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('en', {
ACCESS_DENIED_TEXT: 'You need to be logged in to access this page',
USERNAME_LABEL: 'Username',
PASSWORD_LABEL: 'Password',
CURRENT_PASSWORD_LABEL: 'Current Password',
NEW_PASSWORD_LABEL: 'New Password',
VERIFY_PASSWORD_LABEL: 'Verify Password',
UPDATE_PASSWORD_LABEL: 'Update Password',
FIRST_NAME_LABEL: 'First Name',
LAST_NAME_LABEL: 'Last Name',
LANGUAGE_LABEL: 'Language',
EMAIL_LABEL: 'Email',
UPDATE_PROFILE_BTN: 'Update Profile',
PROFILE_SAVE_SUCCESS: 'Profile saved successfully',
PROFILE_SAVE_ERROR: 'Could\'t Save Your Profile.',
FORGOT_PASSWORD_LINK: 'Forgot your password?',
REVERIFY_ACCOUNT_LINK: 'Resend your verification email',
SIGNIN_BTN: 'Sign in',
SIGNUP_BTN: 'Sign up',
SAVE_PASSWORD_BTN: 'Save Password',
SUCCESS_HEADER: 'Signup Successful',
SUCCESS_TEXT: 'You\'ve successfully registered an account at TellForm.',
VERIFICATION_EMAIL_SENT: 'A verification email has been sent to',
NOT_ACTIVATED_YET: 'But your account is not activated yet',
BEFORE_YOU_CONTINUE: 'Before you continue, make sure to check your email for our verification. If you don\'t receive it within 24h drop us a line at ',
CHECK_YOUR_EMAIL: 'Check your email and click on the activation link to activate your account. If you have any questions drop us a line at',
PASSWORD_RESTORE_HEADER: 'Restore your password',
ENTER_YOUR_EMAIL: 'Enter your account email.',
SUBMIT_BTN: 'Submit',
ASK_FOR_NEW_PASSWORD: 'Ask for new password reset',
PASSWORD_RESET_INVALID: 'Password reset is invalid',
PASSWORD_RESET_SUCCESS: 'Passport successfully reset',
PASSWORD_CHANGE_SUCCESS: 'Passport successfully changed',
CONTINUE_TO_LOGIN: 'Continue to login page',
VERIFY_SUCCESS: 'Account successfully activated',
VERIFY_ERROR: 'Verification link is invalid or has expired'
});
$translateProvider.preferredLanguage('en')
.fallbackLanguage('en')
.useSanitizeValueStrategy('escape');
}]);

View file

@ -0,0 +1,51 @@
'use strict';
angular.module('users').config(['$translateProvider', function ($translateProvider) {
$translateProvider.translations('en', {
ACCESS_DENIED_TEXT: 'Vouz est pas autorisé pour accese cete page.',
USERNAME_LABEL: 'Nom de Compte',
PASSWORD_LABEL: 'Mot de Pass',
CURRENT_PASSWORD_LABEL: 'Current Password',
NEW_PASSWORD_LABEL: 'Nouveau Mot de Pass Password',
VERIFY_PASSWORD_LABEL: 'Verify Password',
UPDATE_PASSWORD_LABEL: 'Update Password',
FIRST_NAME_LABEL: 'Premiere Nom Name',
LAST_NAME_LABEL: 'Surnom',
LANGUAGE_LABEL: 'Language',
EMAIL_LABEL: 'Email',
UPDATE_PROFILE_BTN: 'Modifier Profile',
PROFILE_SAVE_SUCCESS: 'Profile saved successfully',
PROFILE_SAVE_ERROR: 'Erreur: On peux pas enregistré votre Profile.',
FORGOT_PASSWORD_LINK: 'Oublier votre mot de pass?',
REVERIFY_ACCOUNT_LINK: 'Re-envoyez ton email de verification',
SIGNIN_BTN: 'Connexion',
SIGNUP_BTN: 'Créer un compte',
SAVE_PASSWORD_BTN: 'Enregistreé ton nouveau Mot de Pass',
SUCCESS_HEADER: 'Votre Compte a été enregistré!',
SUCCESS_TEXT: 'Vouz a enregistré un compte a TellForm.',
VERIFICATION_EMAIL_SENT: 'Un email de verification a été envoyer a',
NOT_ACTIVATED_YET: 'Mais votre compte n\'est pas activé',
BEFORE_YOU_CONTINUE: 'Plutôt que vouz continué, vouz devrez voire ton inbox pour notre message de verification. Si tu receivoir-pas un message de verification dan le prochaine 24h, contactez nous a ',
CHECK_YOUR_EMAIL: 'Check your email and click on the activation link to activate your account. If you have any questions drop us a line at',
PASSWORD_RESTORE_HEADER: 'Restore your password',
ENTER_YOUR_EMAIL: 'Entrer votre email de compte',
SUBMIT_BTN: 'Enregistrer',
ASK_FOR_NEW_PASSWORD: 'Demander un nouveau mot de pass ',
PASSWORD_RESET_INVALID: 'Password reset is invalid',
PASSWORD_RESET_SUCCESS: 'Passport successfully reset',
PASSWORD_CHANGE_SUCCESS: 'Passport successfully changed',
CONTINUE_TO_LOGIN: 'Allez au page de connexion',
VERIFY_SUCCESS: 'Compte est activé!',
VERIFY_ERROR: 'Le fléche de verification est invalid ou expireé'
});
}]);

View file

@ -1,4 +1,4 @@
<section class="row text-center auth">
<h3 class="col-md-12">You need to be logged in to access this page</h3>
<a href="/#!/sigin" class="col-md-12">Login</a>
</section>
<h3 class="col-md-12">{{ 'ACCESS_DENIED_TEXT' | translate }}</h3>
<a href="/#!/sigin" class="col-md-12">{{ 'SIGNIN_BTN' | translate }}</a>
</section>

View file

@ -25,22 +25,24 @@
Error: <strong data-ng-bind="error"></strong>
</div>
<div class="form-group">
<label for="username">Account Email</label>
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="Username">
<label for="username">{{ 'EMAIL_LABEL' | translate }}</label>
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'EMAIL_LABEL' | translate }}">
</div>
<div class="form-group">
<label for="password">Password</label>
<input type="password" id="password" name="password" class="form-control" data-ng-model="credentials.password" placeholder="Password">
<label for="password">{{ 'PASSWORD_LABEL' | translate }}</label>
<input type="password" id="password" name="password" class="form-control" data-ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}">
</div>
<div class="forgot-password">
<a ui-sref="forgot">Forgot your password?</a>
<a ui-sref="forgot">{{ 'FORGOT_PASSWORD_LINK' | translate }}</a>
<br>
<a ui-sref="verify">{{ 'REVERIFY_ACCOUNT_LINK' | translate }}</a>
</div>
<div class="text-center form-group">
<button class="btn btn-primary" ng-click="signin()">Sign in</button>
<button class="btn btn-primary" ng-click="signin()">{{ 'SIGNIN_BTN' | translate }}</button>
<span ng-hide="$root.signupDisabled">
&nbsp; or&nbsp;
<a ui-sref="signup">Sign up</a
<a ui-sref="signup">{{ 'SIGNUP_BTN' | translate }}</a>
</span>
</div>

View file

@ -17,16 +17,17 @@
<img src="/modules/users/img/buttons/github.png">
</a>
</div> -->
<h3 class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6 text-center">Signup Successful</h3>
<h3 class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6 text-center">{{ 'SUCCESS_HEADER' | translate }}</h3>
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6">
<h2>
You've successfully registered an account at TellForm.
<br><br>But your account is <b>not activated yet</b>
{{ 'SUCCESS_TEXT' | translate }}
<br><br>
{{ 'NOT_ACTIVATED_YET' | translate }}
</h2>
<br><br>
<p>Before you continue, make sure to check your email for our verification. If you don't receive it within 24h drop us a line at <a href="mail:polydaic@gmail.com">polydaic@gmail.com</a></p>
<p>
<strong>{{ 'BEFORE_YOU_CONTINUE' | translate }}</strong> <a href="mail:polydaic@gmail.com">polydaic@gmail.com</a></p>
<div class="text-center form-group">
<button type="submit" class="btn btn-large btn-primary">
<a href="/#!/" style="color: white; text-decoration: none;">Continue</a>

View file

@ -22,28 +22,42 @@
<form name="userForm" data-ng-submit="signup()" class="signin form-horizontal" novalidate autocomplete="off">
<fieldset>
<div data-ng-show="error" id="signup_errors" class="text-center text-danger">
Couldn't submit form due to errors: <br>
Couldn't complete registration due to errors: <br>
<strong data-ng-bind="error"></strong>
</div>
<div class="form-group">
<label for="firstName">First Name</label>
<label for="firstName">{{ 'FIRST_NAME_LABEL' | translate }}</label>
<input type="text" ng-pattern="/^[a-zA-Z0-9 \-.]*$/" required id="firstName" name="firstName" class="form-control" ng-model="credentials.firstName" placeholder="First Name">
</div>
<div class="form-group">
<label for="lastName">Last Name</label>
<label for="lastName">{{ 'LAST_NAME_LABEL' | translate }}</label>
<input type="text" ng-pattern="/^[a-zA-Z0-9 \-.]*$/" required id="lastName" name="lastName" class="form-control" ng-model="credentials.lastName" placeholder="Last Name">
</div>
<div class="row form-group">
<div class="col-xs-7 field-title">
<b>{{ 'LANGUAGE_LABEL' | translate }}</b>
</div>
<div class="col-xs-12 field-input">
<select ng-model="user.language" required>
<option ng-repeat="language in languages"
ng-selected="language == user.language"
value="{{language}}">
{{language}}
</option>
</select>
</div>
</div>
<hr>
<div class="form-group">
<label for="email">Email</label>
<label for="email">{{ 'EMAIL_LABEL' | translate }}</label>
<input type="email" id="email" name="email" class="form-control" ng-model="credentials.email" placeholder="Email">
</div>
<div class="form-group">
<label for="password">Password</label>
<label for="password">{{ 'PASSWORD_LABEL' | translate }}</label>
<input type="password" id="password" name="password" class="form-control" ng-model="credentials.password" placeholder="Password">
</div>
<div class="text-center form-group">
<button type="submit" class="btn btn-large btn-primary">Sign up</button>
<button type="submit" class="btn btn-large btn-primary">{{ 'SIGNUP_BTN' | translate }}</button>
</div>
</fieldset>

View file

@ -1,14 +1,14 @@
<section class="auth row" data-ng-controller="PasswordController">
<h3 class="col-md-12 text-center">Restore your password</h3>
<p class="small text-center">Enter your account email.</p>
<h3 class="col-md-12 text-center">{{ 'PASSWORD_RESTORE_HEADER' | translate }}</h3>
<p class="small text-center">{{ 'ENTER_YOUR_EMAIL' | translate }}</p>
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6">
<form data-ng-submit="askForPasswordReset()" class="signin form-horizontal" autocomplete="off">
<fieldset>
<div class="form-group">
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="Username">
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_LABEL' | translate }}">
</div>
<div class="text-center form-group">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="submit" class="btn btn-primary">{{ 'UPDATE_PASSWORD_LABEL' | translate }}</button>
</div>
<div data-ng-show="error" class="text-center text-danger">
<strong>{{error}}</strong>
@ -19,4 +19,4 @@
</fieldset>
</form>
</div>
</section>
</section>

View file

@ -1,4 +1,4 @@
<section class="row text-center">
<h3 class="col-md-12">Password reset is invalid</h3>
<a href="/#!/password/forgot" class="col-md-12">Ask for a new password reset</a>
</section>
<h3 class="col-md-12">{{ 'PASSWORD_RESET_INVALID' | translate }}</h3>
<a href="/#!/password/forgot" class="col-md-12">{{ 'ASK_FOR_NEW_PASSWORD' | translate }}</a>
</section>

View file

@ -1,4 +1,4 @@
<section class="row text-center">
<h3 class="col-md-12">Password successfully reset</h3>
<a href="/#!/" class="col-md-12">Continue to home page</a>
</section>
<h3 class="col-md-12">{{ 'PASSWORD_RESET_SUCCESS' | translate }}</h3>
<a href="/#!/" class="col-md-12">{{ 'CONTINUE_TO_LOGIN' | translate }}</a>
</section>

View file

@ -4,11 +4,11 @@
<form data-ng-submit="resetUserPassword()" class="signin form-horizontal" autocomplete="off">
<fieldset>
<div class="form-group">
<label for="newPassword">New Password</label>
<label for="newPassword">{{ 'NEW_PASSWORD_LABEL' | translate }}</label>
<input type="password" id="newPassword" name="newPassword" class="form-control" data-ng-model="passwordDetails.newPassword" placeholder="New Password">
</div>
<div class="form-group">
<label for="verifyPassword">Verify Password</label>
<label for="verifyPassword">{{ 'VERIFY_PASSWORD_LABEL' | translate }}</label>
<input type="password" id="verifyPassword" name="verifyPassword" class="form-control" data-ng-model="passwordDetails.verifyPassword" placeholder="Verify Password">
</div>
<div class="text-center form-group">
@ -23,4 +23,4 @@
</fieldset>
</form>
</div>
</section>
</section>

View file

@ -9,18 +9,18 @@
</div>
<hr>
<div class="form-group">
<label for="newPassword">New Password</label>
<label for="newPassword">{{ 'NEW_PASSWORD_LABEL' | translate }}</label>
<input type="password" id="newPassword" name="newPassword" class="form-control" data-ng-model="passwordDetails.newPassword" placeholder="New Password">
</div>
<div class="form-group">
<label for="verifyPassword">Verify Password</label>
<label for="verifyPassword">{{ 'VERIFY_PASSWORD_LABEL' | translate }}</label>
<input type="password" id="verifyPassword" name="verifyPassword" class="form-control" data-ng-model="passwordDetails.verifyPassword" placeholder="Verify Password">
</div>
<div class="text-center form-group">
<button type="submit" class="btn btn-large btn-primary">Save Password</button>
<button type="submit" class="btn btn-large btn-primary">{{ 'SAVE_PASSWORD_BTN' | translate }}</button>
</div>
<div data-ng-show="success" class="text-center text-success">
<strong>Password Changed Successfully</strong>
<strong>{{ 'PASSWORD_CHANGE_SUCCESS' | translate }}</strong>
</div>
<div data-ng-show="error" class="text-center text-danger">
<strong data-ng-bind="error"></strong>
@ -28,4 +28,4 @@
</fieldset>
</form>
</div>
</section>
</section>

View file

@ -4,16 +4,16 @@
<form name="userForm" data-ng-submit="updateUserProfile(userForm.$valid)" class="signin form-horizontal" autocomplete="off">
<fieldset>
<div data-ng-show="success" class="text-center text-success">
<strong>Profile Saved Successfully</strong>
<strong>{{ 'PROFILE_SAVE_SUCCESS' | translate }}</strong>
</div>
<div data-ng-show="error" class="text-center text-danger">
Couldn't Save Your Profile.<br>
Error: <strong data-ng-bind="error"></strong>
{{ 'PROFILE_SAVE_ERROR' | translate }}<br>
<strong data-ng-bind="error"></strong>
</div>
<div class="form-group row">
<div class="col-xs-7 field-title">
<b>First Name</b>
<b>{{ 'FIRST_NAME_LABEL' | translate }}</b>
</div>
<div class="col-xs-12 field-input">
<input type="text" id="firstName" name="firstName" class="form-control" data-ng-model="user.firstName" placeholder="First Name" ng-pattern="/^[a-zA-Z0-9 \-.]*$/">
@ -32,7 +32,7 @@
</div>
<div class="row form-group">
<div class="col-xs-7 field-title">
<b>Language</b>
<b>{{ 'LANGUAGE_LABEL' | translate }}</b>
</div>
<div class="col-xs-12 field-input">
<select ng-model="user.language" required>
@ -47,8 +47,7 @@
<div class="row form-group">
<div class="col-xs-7 field-title">
<b>Email</b>
<small>(also your username)</small>
<b>{{ 'EMAIL_LABEL' | translate }}</b>
</div>
<div class="col-xs-12 field-input">
<input type="email" id="email" name="email" class="form-control" data-ng-model="user.email" placeholder="Email">
@ -56,10 +55,12 @@
</div>
<div class="text-center form-group">
<button type="submit" class="btn btn-large btn-primary" style="font-size:1.6em;">Update Profile</button>
<button type="submit" class="btn btn-large btn-primary" style="font-size:1.6em;">
{{ 'SUBMIT_BTN' | translate }}
</button>
</div>
</fieldset>
</form>
</div>
</section>
</section>

View file

@ -12,13 +12,8 @@
<input type="text" id="username" name="email" class="form-control" data-ng-model="credentials.email" placeholder="bob@example.com">
</div>
<div class="text-center form-group">
<button type="submit" class="btn btn-primary" ng-click="resendVerifyEmail()">Submit</button>
<button type="submit" class="btn btn-primary" ng-click="resendVerifyEmail()">{{ 'SUBMIT_BTN' | translate }}</button>
</div>
<!-- <div data-ng-show="success" class="text-center text-success">
<strong>{{success}}</strong>
</div> -->
</fieldset>
</form>
</div>
@ -28,9 +23,10 @@
<h3 class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6 text-center">Verification Email has been Sent </h3>
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6">
<h2>
A verification email has been sent to {{username}}.<br>But your account is still <b>not activated yet</b>
{{ 'VERIFICATION_EMAIL_SENT' | translate }} {{username}}.
<br> {{ 'NOT_ACTIVATED_YET' | translate }}
</h2>
<p>Check your email and click on the activation link to activate your account. If you have any questions drop us a line at <a href="mail:polydaic@gmail.com">polydaic@gmail.com</a></p>
<p> {{ 'CHECK_YOUR_EMAIL' | translate }} <a href="mail:polydaic@gmail.com">polydaic@gmail.com</a></p>
<div class="text-center form-group">
<button type="submit" class="btn btn-large btn-primary">
<a href="/#!/" style="color:white;">Continue</a>

View file

@ -1,14 +1,14 @@
<section style="margin-top:50px;" class="row text-center" data-ng-controller="VerifyController" ng-init="validateVerifyToken()">
<section class="row text-center" ng-if="isResetSent">
<h3 class="col-md-12">Account successfuly activated</h3>
<a href="/#!/signin" class="col-md-12">Continue to login page</a>
<h3 class="col-md-12"></h3>
<a href="/#!/signin" class="col-md-12">{{ 'CONTINUE_TO_LOGIN' | translate }}</a>
</section>
<section class="row text-center" ng-if="!isResetSent">
<h3 class="col-md-12">Verification link is invalid or has expired</h3>
<a href="/#!/verify" class="col-md-6">Resend your verification email</a>
<a href="/#!/signin" class="col-md-6">Signin to your account</a>
<h3 class="col-md-12">{{ 'VERIFY_ERROR' | translate }}</h3>
<a href="/#!/verify" class="col-md-6">{{ 'REVERIFY_ACCOUNT_LINK' | translate }}</a>
<a href="/#!/signin" class="col-md-6">{{ 'SIGNIN_BTN' | translate }}</a>
</section>
</section>