Merge branch 'stage' into logic_jump
This commit is contained in:
commit
fbf11011dd
|
@ -1,4 +1,4 @@
|
|||
TellForm
|
||||
[<img src="/" width="250px">](https://digitalocean.com/)
|
||||
========
|
||||
|
||||
[![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=UY555MCBZM722)
|
||||
|
@ -14,7 +14,7 @@ TellForm is an *opensource alternative to TypeForm* built ontop of nodejs that c
|
|||
[See examples here](https://tellform.com/examples)
|
||||
|
||||
####Sponsored by
|
||||
[<img src="https://www.digitalocean.com/assets/images/logos-badges/png/DO_Logo_Horizontal_Blue-3db19536.png" width="250px">](https://digitalocean.com/)
|
||||
[<img src="https://www.digitalocean.com/assets/media/logos-badges/png/DO_Logo_Horizontal_Blue-3db19536.png" width="250px">](https://digitalocean.com/)
|
||||
[<img src="https://a0wx592cvgzripj.global.ssl.fastly.net/_static/780f0361d74cc3da6680cfa4f855336a/getsentry/images/branding/png/sentry-horizontal-black.png" width="250px">](https://getsentry.com/)
|
||||
[<img src="https://dka575ofm4ao0.cloudfront.net/assets/base/logos/common-aececb0b4319b8fb61ac5b47a6983f96.png" width="250px">](https://statuspage.io/)
|
||||
[<img src="http://bcsrq.com/wp-content/uploads/2014/04/StickerMuleLogo300.png" width="250px">](https://stickermule.com/)
|
||||
|
|
|
@ -13,9 +13,8 @@ exports.index = function(req, res) {
|
|||
};
|
||||
|
||||
exports.form = function(req, res) {
|
||||
console.log('\n\n\nRENDERING FORM\n\n\n');
|
||||
//Allow form to be embeded
|
||||
res.removeHeader('X-Frame-Options');
|
||||
//Allow form to be embedded
|
||||
res.set('X-Frame-Options', 'GOFORIT');
|
||||
|
||||
res.render('form', {
|
||||
user: req.user || null,
|
||||
|
|
|
@ -20,6 +20,7 @@ var config_nev = function () {
|
|||
|
||||
var User = require('../../models/user.server.model');
|
||||
|
||||
|
||||
nev.configure({
|
||||
persistentUserModel: User,
|
||||
tempUserCollection: config.tempUserCollection,
|
||||
|
@ -30,7 +31,7 @@ var config_nev = function () {
|
|||
verifyMailOptions: {
|
||||
from: config.mailer.from,
|
||||
subject: 'Confirm your account',
|
||||
html: '<p>Please verify your account by clicking <a href="${URL}">this link</a>. If you are unable to do so, copy and ' +
|
||||
html: '<p>Please verify your account by clicking <a href="http://${URL}">this link</a>. If you are unable to do so, copy and ' +
|
||||
'paste the following link into your browser:</p><p>${URL}</p>',
|
||||
text: 'Please verify your account by clicking the following link, or by copying and pasting it into your browser: ${URL}'
|
||||
},
|
||||
|
@ -86,7 +87,6 @@ exports.resendVerificationEmail = function(req, res, next){
|
|||
}
|
||||
|
||||
if (userFound){
|
||||
console.log('hello');
|
||||
res.status(200).send('Verification email successfully Re-Sent');
|
||||
}else {
|
||||
// user hasn't been found yet
|
||||
|
|
|
@ -46,19 +46,19 @@ var UserSchema = new Schema({
|
|||
type: String,
|
||||
trim: true,
|
||||
default: '',
|
||||
validate: {
|
||||
/*validate: {
|
||||
validator: validateLocalStrategyProperty,
|
||||
message: 'Please fill in your first name'
|
||||
}
|
||||
}*/
|
||||
},
|
||||
lastName: {
|
||||
type: String,
|
||||
trim: true,
|
||||
default: '',
|
||||
validate: {
|
||||
/*validate: {
|
||||
validator: validateLocalStrategyProperty,
|
||||
message: 'Please fill in your last name'
|
||||
}
|
||||
}*/
|
||||
},
|
||||
email: {
|
||||
type: String,
|
||||
|
|
|
@ -61,11 +61,11 @@
|
|||
</head>
|
||||
|
||||
<body ng-cloak>
|
||||
<div class="github-fork-ribbon-wrapper right-bottom hidden-xs">
|
||||
<!--<div class="github-fork-ribbon-wrapper right-bottom hidden-xs">
|
||||
<div class="github-fork-ribbon">
|
||||
<a href="https://github.com/whitef0x0/tellform">Fork me on GitHub</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
<section class="content">
|
||||
<section ui-view></section>
|
||||
</section>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
{% extends 'layout.server.view.html' %}
|
||||
{% block content %}
|
||||
<section ui-view></section>
|
||||
<section class="content" ui-view></section>
|
||||
{% endblock %}
|
||||
|
|
|
@ -34,6 +34,8 @@
|
|||
<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="/static/lib/bootstrap/dist/css/bootstrap.min.css">
|
||||
<link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900'>
|
||||
|
||||
<!--Bower CSS dependencies-->
|
||||
{% for bowerCssFile in bowerCssFiles %}
|
||||
<link rel="stylesheet" href="{{bowerCssFile}}">
|
||||
|
@ -61,15 +63,12 @@
|
|||
</head>
|
||||
|
||||
<body ng-cloak>
|
||||
<div class="github-fork-ribbon-wrapper right-bottom hidden-xs">
|
||||
<!--<div class="github-fork-ribbon-wrapper right-bottom hidden-xs">
|
||||
<div class="github-fork-ribbon">
|
||||
<a href="https://github.com/whitef0x0/tellform">Fork me on GitHub</a>
|
||||
</div>
|
||||
</div>
|
||||
<header data-ng-include="'/static/modules/core/views/header.client.view.html'"></header>
|
||||
<section class="content">
|
||||
{% block content %}{% endblock %}
|
||||
</section>
|
||||
</div>-->
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
<script src="/static/lib/file-saver.js/FileSaver.js" type="text/javascript"></script>
|
||||
<!--Embedding The User Object-->
|
||||
|
|
|
@ -1,18 +1,71 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<p>Dear {{name}},</p>
|
||||
<br>
|
||||
<p>
|
||||
You have just created a new account at {{appName}}. To use your account you must activate it.s
|
||||
</p>
|
||||
<p>Please visit this url to activate your account:</p>
|
||||
<p>{{url}}</p>
|
||||
<strong>If you didn't make this request, you can ignore this email.</strong>
|
||||
<br>
|
||||
<br>
|
||||
<p>The {{appName}} Support Team</p>
|
||||
</body>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
|
||||
</head>
|
||||
<body style="padding: 0; width: 100% !important; -webkit-text-size-adjust: 100%; margin: 0; -ms-text-size-adjust: 100%;" marginheight="0" marginwidth="0">
|
||||
<center>
|
||||
<table cellpadding="8" cellspacing="0" style="*width: 540px; padding: 0; width: 100% !important; background: #ffffff; margin: 0; background-color: #ffffff;" border="0">
|
||||
<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">
|
||||
<tr>
|
||||
<td colspan="3" height="6"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table cellpadding="0" cellspacing="0" style="line-height: 25px;" border="0" align="center">
|
||||
<tr>
|
||||
<td colspan="3" height="30"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="36"></td>
|
||||
<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">
|
||||
//- -----------------------------------------------------------------------------------
|
||||
//- Only Edit Here
|
||||
//- -----------------------------------------------------------------------------------
|
||||
p Hello {{name}}!
|
||||
p
|
||||
| Welcome to {{appName}}! Here is a special link to activate your new account:
|
||||
p
|
||||
a(href='${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:{{contactEmail}}') {{contactEmail}}
|
||||
| .
|
||||
p - The {{appName}} team
|
||||
//- ----------------------------------------------------------------------------------
|
||||
|
||||
</td>
|
||||
<td width="36"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="36"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table cellpadding="0" cellspacing="0" align="center" border="0">
|
||||
<tr>
|
||||
<td height="10"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="padding: 0; border-collapse: collapse;">
|
||||
<table cellpadding="0" cellspacing="0" align="center" border="0">
|
||||
<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;"></tr>
|
||||
<td width="400" align="left">
|
||||
<td width="128" align="right">© </td>
|
||||
</td>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,10 @@ module.exports = function() {
|
|||
},
|
||||
function(username, password, done) {
|
||||
User.findOne({
|
||||
username: username
|
||||
$or: [
|
||||
{ "username": username},
|
||||
{ "email": username}
|
||||
]
|
||||
}, function(err, user) {
|
||||
if (err) {
|
||||
return done(err);
|
||||
|
|
|
@ -82,6 +82,7 @@
|
|||
"passport-google-oauth": "~0.2.0",
|
||||
"passport-linkedin": "~1.0.0",
|
||||
"passport-local": "~1.0.0",
|
||||
"passport-localapikey-update": "^0.5.0",
|
||||
"passport-twitter": "~1.0.2",
|
||||
"path-exists": "^2.1.0",
|
||||
"pdffiller": "~0.1.1",
|
||||
|
|
37
public/dist/application.js
vendored
37
public/dist/application.js
vendored
File diff suppressed because one or more lines are too long
4
public/dist/application.min.css
vendored
4
public/dist/application.min.css
vendored
File diff suppressed because one or more lines are too long
10
public/dist/application.min.js
vendored
10
public/dist/application.min.js
vendored
File diff suppressed because one or more lines are too long
24
public/dist/form-application.js
vendored
24
public/dist/form-application.js
vendored
File diff suppressed because one or more lines are too long
8
public/dist/form-application.min.js
vendored
8
public/dist/form-application.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -6,11 +6,12 @@ angular.module('core').controller('HeaderController', ['$rootScope', '$scope', '
|
|||
$rootScope.signupDisabled = $window.signupDisabled;
|
||||
|
||||
$scope.user = $rootScope.user = Auth.ensureHasCurrentUser(User);
|
||||
|
||||
console.log(Auth.ensureHasCurrentUser(User));
|
||||
$scope.authentication = $rootScope.authentication = Auth;
|
||||
|
||||
$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;
|
||||
|
@ -30,9 +31,12 @@ angular.module('core').controller('HeaderController', ['$rootScope', '$scope', '
|
|||
Auth.ensureHasCurrentUser(User);
|
||||
$scope.user = $rootScope.user = null;
|
||||
$state.go('listForms');
|
||||
|
||||
//Refresh view
|
||||
$state.reload();
|
||||
},
|
||||
function(reason) {
|
||||
console.log('Logout Failed: ' + reason);
|
||||
console.error('Logout Failed: ' + reason);
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -1,64 +1,89 @@
|
|||
body {
|
||||
overflow-x: hidden;
|
||||
font-family: 'Source Sans Pro', sans-serif;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.vcenter {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
float: none;
|
||||
}
|
||||
|
||||
/* Custom CSS for Buttons */
|
||||
.btn-rounded {
|
||||
border-radius: 100px;
|
||||
font-size: 14px;
|
||||
padding: 10px 28px;
|
||||
margin: 0 2px;
|
||||
margin-top: 1em;
|
||||
text-transform: uppercase;
|
||||
text-decoration: none!important;
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
background: #DDDDDD;
|
||||
color: #4c4c4c;
|
||||
border: 2px #4c4c4c solid;
|
||||
}
|
||||
.btn-secondary:hover {
|
||||
background: #cacaca;
|
||||
border-color: #cacaca;
|
||||
}
|
||||
|
||||
/*Navbar Custom CSS*/
|
||||
.navbar {
|
||||
min-height: 60px;
|
||||
}
|
||||
.navbar-inverse {
|
||||
background-color:#fafafa;
|
||||
background-color:#588EB4;
|
||||
border: 0;
|
||||
color: white!important;
|
||||
}
|
||||
.navbar .navbar-brand {
|
||||
font-size: 1.6em;
|
||||
font-weight: 900;
|
||||
color: rgb(255,131,131);
|
||||
}
|
||||
.navbar .navbar-brand:hover, .navbar .navbar-brand:visited {
|
||||
color: #FA787E;
|
||||
}
|
||||
.navbar li.dropdown a.dropdown-toggle:hover > *{
|
||||
color: black;
|
||||
}
|
||||
.navbar li.dropdown a.dropdown-toggle > *{
|
||||
color: #d9d9d9;
|
||||
}
|
||||
.navbar li.dropdown.open a.dropdown-toggle:hover > *{
|
||||
color: white;
|
||||
}
|
||||
.navbar .navbar-brand span {
|
||||
text-decoration: underline;
|
||||
}
|
||||
.nav.navbar-nav.navbar-right li {
|
||||
padding-right: 20px;
|
||||
min-height: 60px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-nav>li>a, .navbar li.dropdown a.dropdown-toggle > * {
|
||||
color: rgb(131,131,131);
|
||||
.navbar-nav {
|
||||
min-height: 60px;
|
||||
}
|
||||
.navbar-inverse .navbar-nav .active > a, .navbar li.dropdown.open a.dropdown-toggle > *, .navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:focus, .navbar-inverse .navbar-nav>.open>a:hover {
|
||||
background-color: rgb(131,131,131);
|
||||
color: white!important;
|
||||
|
||||
.navbar-nav > li {
|
||||
|
||||
min-height: 60px;
|
||||
}
|
||||
.navbar-inverse .navbar-toggle {
|
||||
background-color: #ddd;
|
||||
border:none;
|
||||
}
|
||||
.navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {
|
||||
.navbar-nav > li > a {
|
||||
padding-top: 20px;
|
||||
color: white;
|
||||
}
|
||||
.navbar-inverse .navbar-collapse{
|
||||
.navbar-nav > li:hover, .navbar-nav > li.active {
|
||||
background-color: #4b7096;
|
||||
}
|
||||
.navbar-inverse .navbar-nav>.open>a, .navbar-inverse .navbar-nav>.open>a:focus, .navbar-inverse .navbar-nav>.open>a:hover {
|
||||
background-color: transparent;
|
||||
color: inherit;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.navbar-inverse .navbar-nav>li>a {
|
||||
color: white;
|
||||
}
|
||||
.navbar li.dropdown a.dropdown-toggle:hover > *{
|
||||
color: #f9f9f9;
|
||||
}
|
||||
.navbar-inverse .navbar-toggle {
|
||||
border:none;
|
||||
}
|
||||
.undecorated-link:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
|
||||
display: none !important;
|
||||
}
|
||||
.browsehappy.jumbotron.hide,
|
||||
body.ng-cloak
|
||||
{
|
||||
display: block;
|
||||
|
||||
.dropdown-menu>li>a {
|
||||
color: #515151;
|
||||
}
|
||||
|
||||
/*Hero Section CSS (for /home)*/
|
||||
|
|
|
@ -1,114 +0,0 @@
|
|||
/* columns of same height styles */
|
||||
|
||||
.row-height {
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.col-height {
|
||||
display: table-cell;
|
||||
float: none;
|
||||
height: 100%;
|
||||
}
|
||||
.col-top {
|
||||
vertical-align: top;
|
||||
}
|
||||
.col-middle {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.col-bottom {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
@media (min-width: 480px) {
|
||||
.row-xs-height {
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.col-xs-height {
|
||||
display: table-cell;
|
||||
float: none;
|
||||
height: 100%;
|
||||
}
|
||||
.col-xs-top {
|
||||
vertical-align: top;
|
||||
}
|
||||
.col-xs-middle {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.col-xs-bottom {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.row-sm-height {
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.col-sm-height {
|
||||
display: table-cell;
|
||||
float: none;
|
||||
height: 100%;
|
||||
}
|
||||
.col-sm-top {
|
||||
vertical-align: top;
|
||||
}
|
||||
.col-sm-middle {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.col-sm-bottom {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.row-md-height {
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.col-md-height {
|
||||
display: table-cell;
|
||||
float: none;
|
||||
height: 100%;
|
||||
}
|
||||
.col-md-top {
|
||||
vertical-align: top;
|
||||
}
|
||||
.col-md-middle {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.col-md-bottom {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px) {
|
||||
.row-lg-height {
|
||||
display: table;
|
||||
table-layout: fixed;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.col-lg-height {
|
||||
display: table-cell;
|
||||
float: none;
|
||||
height: 100%;
|
||||
}
|
||||
.col-lg-top {
|
||||
vertical-align: top;
|
||||
}
|
||||
.col-lg-middle {
|
||||
vertical-align: middle;
|
||||
}
|
||||
.col-lg-bottom {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
}
|
16
public/modules/core/img/logo_white.svg
Normal file
16
public/modules/core/img/logo_white.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 9.3 KiB |
|
@ -1,4 +1,4 @@
|
|||
<section class="navbar navbar-fixed-top navbar-inverse" data-ng-controller="HeaderController" ng-hide="hideNav">
|
||||
<section class="navbar 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()">
|
||||
|
@ -6,7 +6,7 @@
|
|||
<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>
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100%">
|
||||
</a>
|
||||
</div>
|
||||
<nav class="collapse navbar-collapse" collapse="!isCollapsed" role="navigation">
|
||||
|
@ -49,8 +49,8 @@
|
|||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li ng-click="signout()">
|
||||
<a>{{ 'SIGNOUT_TAB' | translate }}</a>
|
||||
<li>
|
||||
<a href='/' ng-click="signout()">{{ 'SIGNOUT_TAB' | translate }}</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
|
|
@ -1,8 +1,12 @@
|
|||
'use strict';
|
||||
|
||||
// Forms controller
|
||||
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) {
|
||||
angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope', '$stateParams', '$state', 'Forms', 'CurrentForm', '$http', '$uibModal', 'myForm', '$filter', '$sce',
|
||||
function($rootScope, $scope, $stateParams, $state, Forms, CurrentForm, $http, $uibModal, myForm, $filter, $sce) {
|
||||
|
||||
$scope.trustSrc = function(src) {
|
||||
return $sce.trustAsResourceUrl(src);
|
||||
};
|
||||
|
||||
$scope = $rootScope;
|
||||
$scope.animationsEnabled = true;
|
||||
|
@ -11,24 +15,34 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
|
|||
|
||||
CurrentForm.setForm($scope.myform);
|
||||
|
||||
$scope.formURL = $scope.myform.admin.username + '.tellform.com';
|
||||
$scope.formURL = "/#!/forms/" + $scope.myform._id;
|
||||
|
||||
$scope.tabData = [
|
||||
|
||||
console.log($scope.myform);
|
||||
$scope.actualFormURL = window.location.protocol + '//' + $scope.myform.admin.username + '.' + window.location.host + "/#!/forms/" + $scope.myform._id;
|
||||
|
||||
|
||||
var refreshFrame = $scope.refreshFrame = function(){
|
||||
document.getElementById('iframe').contentWindow.location.reload();
|
||||
};
|
||||
|
||||
|
||||
$scope.tabData = [
|
||||
{
|
||||
heading: $filter('translate')('CREATE_TAB'),
|
||||
route: 'viewForm.create'
|
||||
templateName: 'create'
|
||||
},
|
||||
{
|
||||
/*{
|
||||
heading: $filter('translate')('DESIGN_TAB'),
|
||||
route: 'viewForm.design'
|
||||
},
|
||||
templateName: 'design'
|
||||
},*/
|
||||
{
|
||||
heading: $filter('translate')('CONFIGURE_TAB'),
|
||||
route: 'viewForm.configure'
|
||||
templateName: 'configure'
|
||||
},
|
||||
{
|
||||
heading: $filter('translate')('ANALYZE_TAB'),
|
||||
route: 'viewForm.analyze'
|
||||
templateName: 'analyze'
|
||||
}
|
||||
];
|
||||
|
||||
|
@ -93,6 +107,7 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
|
|||
|
||||
// Update existing Form
|
||||
$scope.update = $rootScope.update = function(updateImmediately, cb){
|
||||
refreshFrame();
|
||||
|
||||
var continueUpdate = true;
|
||||
if(!updateImmediately){
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
<header data-ng-include="'/static/modules/core/views/header.client.view.html'"></header>
|
||||
|
||||
<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">
|
||||
<section class="admin-form">
|
||||
|
||||
<!-- Modal Delete Dialog Template -->
|
||||
<script type="text/ng-template" id="myModalContent.html">
|
||||
|
@ -27,7 +29,7 @@
|
|||
</div>
|
||||
</script>
|
||||
|
||||
<div class="page-header row-fluid" style="padding-bottom: 1em;">
|
||||
<div class="page-header" style="padding-bottom: 1em;">
|
||||
<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>
|
||||
|
@ -43,13 +45,13 @@
|
|||
</div>
|
||||
<div class="col-xs-1 col-sm-2">
|
||||
<small class="pull-right">
|
||||
<a class="btn btn-default view-form-btn" href="//{{formURL}}/#!/forms/{{myform._id}}">
|
||||
<a class="btn btn-secondary view-form-btn" href="{{actualFormURL}}">
|
||||
<span class="hidden-xs hidden-sm">
|
||||
{{ 'VIEW' | translate }}
|
||||
<span ng-show="myform.isLive">
|
||||
{{ 'LIVE' | translate }}
|
||||
</span>
|
||||
<span ng-hide="myform.isLive">{{ 'PREVIEW' | translate }}</span> {{ 'FORM' | translate }}
|
||||
<span ng-hide="myform.isLive">{{ 'PREVIEW' | translate }}</span>
|
||||
</span>
|
||||
<span class="hidden-xs hidden-md hidden-lg">
|
||||
View
|
||||
|
@ -63,16 +65,84 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<!-- <tabset> -->
|
||||
<tabs data="tabData"></tabs>
|
||||
<!-- </tabset> -->
|
||||
</div>
|
||||
<uib-tabset active="activePill" vertical="true" type="pills">
|
||||
<uib-tab ng-repeat="tab in tabData" index="$index" heading="{{tab.heading}}">
|
||||
<div class='row' data-ng-include="'/static/modules/forms/admin/views/adminTabs/'+tab.templateName+'.html'" onload="form_url = trustSrc(formURL)"></div>
|
||||
</uib-tab>
|
||||
<uib-tab heading="Design" index="5">
|
||||
<div class="config-form design container">
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-sm-12 container">
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-5">
|
||||
<h5>{{ 'BACKGROUND_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
<div class="field-input col-sm-6">
|
||||
<input class="form-control" colorpicker="hex" type="text" ng-model="myform.design.colors.backgroundColor" ng-style="{ 'background-color': myform.design.colors.backgroundColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12">
|
||||
<ui-view></ui-view>
|
||||
</div>
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-5">
|
||||
<h5>{{ 'QUESTION_TEXT_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-6">
|
||||
<input class="form-control" colorpicker="hex" type="text" ng-model="myform.design.colors.questionColor" ng-style="{ 'background-color': myform.design.colors.questionColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-5">
|
||||
<h5>{{ 'ANSWER_TEXT_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-6">
|
||||
<input class="form-control" colorpicker="hex" type="text" ng-model="myform.design.colors.answerColor" ng-style="{ 'background-color': myform.design.colors.answerColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-5">
|
||||
<h5>{{ 'BTN_BACKGROUND_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-6">
|
||||
<input class="form-control" colorpicker="hex" type="text"
|
||||
ng-model="myform.design.colors.buttonColor"
|
||||
ng-style="{ 'background-color': myform.design.colors.buttonColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-5">
|
||||
<h5>{{ 'BTN_TEXT_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-6">
|
||||
<input class="form-control" colorpicker="hex" type="text"
|
||||
ng-model="myform.design.colors.buttonTextColor"
|
||||
ng-style="{ 'background-color': myform.design.colors.buttonTextColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-8 hide-md hide-lg">
|
||||
<iframe id="iframe" ng-if="!!formURL" src="{{trustSrc(formURL)}}" style="border: none; box-shadow: 0px 0px 10px 0px grey; overflow: hidden; height: 400px; width: 90%; position: absolute;"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-sm-offset-4 col-sm-2">
|
||||
<button class="btn btn-signup btn-rounded" 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-secondary btn-rounded" type="button" ng-click="resetForm()"><i class="icon-eye-open icon-white"></i>{{ 'CANCEL' | translate }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</uib-tab>
|
||||
</uib-tabset>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -1,21 +1,12 @@
|
|||
<div class="config-form design container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 container">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<h2 class="hidden-sm hidden-xs">{{ 'DESIGN_HEADER' | translate }}</h2>
|
||||
<h3 class="hidden-lg hidden-md">{{ 'DESIGN_HEADER' | translate }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 col-sm-12 container">
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-3">
|
||||
<h5>{{ 'BACKGROUND_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-9">
|
||||
|
||||
<input colorpicker="hex" type="text" ng-model="myform.design.colors.backgroundColor" ng-style="{ 'background-color': myform.design.colors.backgroundColor }"/>
|
||||
<div class="field-input col-sm-6">
|
||||
<input ng-change="refreshIframe()" class="form-control" colorpicker="hex" type="text" ng-model="myform.design.colors.backgroundColor" ng-style="{ 'background-color': myform.design.colors.backgroundColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -24,11 +15,8 @@
|
|||
<h5>{{ 'QUESTION_TEXT_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-9">
|
||||
|
||||
<input colorpicker="hex" type="text" ng-model="myform.design.colors.questionColor" ng-style="{ 'background-color': myform.design.colors.questionColor }"/>
|
||||
|
||||
|
||||
<div class="field-input col-sm-6">
|
||||
<input ng-change="refreshIframe()" class="form-control" colorpicker="hex" type="text" ng-model="myform.design.colors.questionColor" ng-style="{ 'background-color': myform.design.colors.questionColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -37,8 +25,8 @@
|
|||
<h5>{{ 'ANSWER_TEXT_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-9">
|
||||
<input colorpicker="hex" type="text" ng-model="myform.design.colors.answerColor" ng-style="{ 'background-color': myform.design.colors.answerColor }"/>
|
||||
<div class="field-input col-sm-6">
|
||||
<input ng-change="refreshIframe()" class="form-control" colorpicker="hex" type="text" ng-model="myform.design.colors.answerColor" ng-style="{ 'background-color': myform.design.colors.answerColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -47,8 +35,8 @@
|
|||
<h5>{{ 'BTN_BACKGROUND_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-9">
|
||||
<input colorpicker="hex" type="text"
|
||||
<div class="field-input col-sm-6">
|
||||
<input ng-change="refreshIframe()" class="form-control" colorpicker="hex" type="text"
|
||||
ng-model="myform.design.colors.buttonColor"
|
||||
ng-style="{ 'background-color': myform.design.colors.buttonColor }"/>
|
||||
</div>
|
||||
|
@ -58,21 +46,24 @@
|
|||
<h5>{{ 'BTN_TEXT_COLOR' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-9">
|
||||
<input colorpicker="hex" type="text"
|
||||
<div class="field-input col-sm-6">
|
||||
<input ng-change="refreshIframe()" class="form-control" colorpicker="hex" type="text"
|
||||
ng-model="myform.design.colors.buttonTextColor"
|
||||
ng-style="{ 'background-color': myform.design.colors.buttonTextColor }"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-8 hide-md hide-lg">
|
||||
<iframe refreshable="refreshDesign" ng-if="!!form_url" src="{{form_url}}" style="border: none; box-shadow: 0px 0px 10px 0px grey; overflow: hidden; height: 95vh; width: 90%; position: absolute;"></iframe>
|
||||
</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>
|
||||
</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>
|
||||
</div>
|
||||
<div class="col-sm-offset-4 col-sm-2">
|
||||
<button class="btn btn-signup btn-rounded" 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-secondary btn-rounded" type="button" ng-click="resetForm()"><i class="icon-eye-open icon-white"></i>{{ 'CANCEL' | translate }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,22 +1,21 @@
|
|||
<div class="config-form container">
|
||||
<div class="row">
|
||||
|
||||
<!-- Settings -->
|
||||
<div class="col-sm-12 container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<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">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<h2 class="hidden-sm hidden-xs">{{ 'ADVANCED_SETTINGS' | translate }}</h2>
|
||||
<h3 class="hidden-lg hidden-md">{{ 'ADVANCED_SETTINGS' | translate }}</h3>
|
||||
</div>
|
||||
</div>-->
|
||||
<!-- Settings -->
|
||||
<div class="row">
|
||||
<div class="col-sm-offset-2 col-sm-4">
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-4">
|
||||
<div class="field-title col-sm-12">
|
||||
<h5>{{ 'FORM_NAME' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<input type="text"
|
||||
<div class="col-sm-12">
|
||||
<input class="form-control"
|
||||
type="text"
|
||||
ng-model="myform.title"
|
||||
value="{{myform.title}}"
|
||||
style="width: 100%;"
|
||||
|
@ -26,44 +25,28 @@
|
|||
</div>
|
||||
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-6">
|
||||
<div class="field-title col-sm-12">
|
||||
<h5>{{ 'FORM_STATUS' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-6">
|
||||
<div class="field-input col-sm-12">
|
||||
|
||||
<label>
|
||||
<label style="display: inline-block;">
|
||||
<input type="radio" data-ng-value="true" ng-model="myform.isLive" ng-required="true" style="background-color:#33CC00;"/>
|
||||
<span>{{ 'PUBLIC' | translate }}</span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<label style="display: inline-block;">
|
||||
<input type="radio" data-ng-value="false" ng-model="myform.isLive" ng-required="true" />
|
||||
<span>{{ 'PRIVATE' | translate }}</span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-4">
|
||||
<h5>{{ 'GA_TRACKING_CODE' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-8">
|
||||
<input type="text"
|
||||
ng-model="myform.analytics.gaCode"
|
||||
value="{{myform.analytics.gaCode}}"
|
||||
style="width: 100%;"
|
||||
ng-minlength="4"
|
||||
placeholder="UA-XXXXX-Y"
|
||||
ng-pattern="/\bUA-\d{4,10}-\d{1,4}\b/">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row field">
|
||||
<div class="col-xs-6 field-title">Language</div>
|
||||
<div class="col-xs-4 field-input">
|
||||
<div class="col-sm-12 field-title">Language</div>
|
||||
<div class="col-sm-12 field-input">
|
||||
<select ng-model="myform.language">
|
||||
<option ng-repeat="language in languages"
|
||||
ng-selected="language == myform.language"
|
||||
|
@ -74,51 +57,69 @@
|
|||
<span class="required-error" ng-show="field.required && !field.fieldValue">* required</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-6">
|
||||
<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" />
|
||||
<span>{{ 'YES' | translate }}</span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="radio" data-ng-value="true" ng-model="myform.hideFooter" ng-required="true" />
|
||||
<span>{{ 'No' | translate }}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-6">
|
||||
<h5>Display Start Page?</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-6">
|
||||
|
||||
<label>
|
||||
<input type="radio" data-ng-value="true" ng-model="myform.startPage.showStart" ng-required="true" style="background-color:#33CC00;"/>
|
||||
<span>{{ 'YES' | translate }}</span>
|
||||
</label>
|
||||
|
||||
<label>
|
||||
<input type="radio" data-ng-value="false" ng-model="myform.startPage.showStart" ng-required="true" />
|
||||
<span>{{ 'NO' | translate }}</span>
|
||||
</label>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-sm-4">
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-12">
|
||||
<h5>{{ 'GA_TRACKING_CODE' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12">
|
||||
<input class="form-control"
|
||||
type="text"
|
||||
ng-model="myform.analytics.gaCode"
|
||||
value="{{myform.analytics.gaCode}}"
|
||||
style="width: 100%;"
|
||||
ng-minlength="4"
|
||||
placeholder="UA-XXXXX-Y"
|
||||
ng-pattern="/\bUA-\d{4,10}-\d{1,4}\b/">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-12">
|
||||
<h5>{{ 'DISPLAY_FOOTER' | translate }}</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-12">
|
||||
<label style="display: inline-block;">
|
||||
<input type="radio" data-ng-value="false" ng-model="myform.hideFooter" ng-required="true" />
|
||||
<span>{{ 'YES' | translate }}</span>
|
||||
</label>
|
||||
|
||||
<label style="display: inline-block;">
|
||||
<input type="radio" data-ng-value="true" ng-model="myform.hideFooter" ng-required="true" />
|
||||
<span>{{ 'No' | translate }}</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row field">
|
||||
<div class="field-title col-sm-12">
|
||||
<h5>Display Start Page?</h5>
|
||||
</div>
|
||||
|
||||
<div class="field-input col-sm-12">
|
||||
|
||||
<label style="display: inline-block;">
|
||||
<input type="radio" data-ng-value="true" ng-model="myform.startPage.showStart" ng-required="true" style="background-color:#33CC00;"/>
|
||||
<span>{{ 'YES' | translate }}</span>
|
||||
</label>
|
||||
|
||||
<label style="display: inline-block;">
|
||||
<input type="radio" data-ng-value="false" ng-model="myform.startPage.showStart" ng-required="true" />
|
||||
<span>{{ 'NO' | translate }}</span>
|
||||
</label>
|
||||
|
||||
</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' | 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' | translate }}</button>
|
||||
</div>
|
||||
<div class="col-sm-offset-4 col-sm-2">
|
||||
<button class="btn btn-signup btn-rounded" 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-secondary btn-rounded" type="button" ng-click="resetForm()"><i class="icon-eye-open icon-white"></i>{{ 'CANCEL' | translate }}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<form class="row container" name="editForm" auto-save-form auto-save-watch="myform" auto-save-callback="update">
|
||||
|
||||
<!-- Add Fields Element -->
|
||||
<div class="col-xs-2 col-sm-4 col-md-4 add-field">
|
||||
<div class="col-xs-2 col-sm-4 add-field">
|
||||
|
||||
<div class="row add-field-title">
|
||||
<h3 class="col-md-12 hidden-sm hidden-xs">{{ 'ADD_FIELD_LG' | translate }}</h3>
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
<div class="submissions-table row container">
|
||||
<div class="row text-center analytics">
|
||||
<div class="row col-xs-12 header-numbers">
|
||||
Overview Analytics
|
||||
</div>
|
||||
<div class="row col-xs-12 header-title">
|
||||
<div class="col-xs-3">
|
||||
{{ 'TOTAL_VIEWS' | translate }}
|
||||
|
@ -37,9 +34,6 @@
|
|||
{{AverageTimeElapsed | secondsToDateTime | date:'mm:ss'}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row col-xs-12 header-numbers">
|
||||
Device Analytics
|
||||
</div>
|
||||
<div class="row col-xs-12 detailed-title">
|
||||
<div class="col-xs-3">
|
||||
{{ 'DESKTOP_AND_LAPTOP' | translate }}
|
||||
|
@ -210,9 +204,6 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row col-xs-12 text-center" style="font-size:5em;">
|
||||
Field Analytics
|
||||
</div>
|
||||
<div class="row col-xs-12 field-title-row">
|
||||
|
||||
<div class="col-xs-3">
|
||||
|
@ -247,9 +238,6 @@
|
|||
</div>
|
||||
</div>
|
||||
<br>
|
||||
<div class="row col-xs-12 header-numbers text-center" style="font-size:5em;">
|
||||
Responses Table
|
||||
</div>
|
||||
<div class="row table-tools">
|
||||
<div class="col-xs-2">
|
||||
<button class="btn btn-danger" ng-click="deleteSelectedSubmissions()" ng-disabled="!isAtLeastOneChecked();">
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
<header data-ng-include="'/static/modules/core/views/header.client.view.html'"></header>
|
||||
|
||||
<section class="overlay" ng-if="showCreateModal" ng-click="closeCreateModal()"></section>
|
||||
|
||||
<section data-ng-controller="ListFormsController as ctrl" data-ng-init="findAll()" class="container">
|
||||
|
|
|
@ -1,3 +1,19 @@
|
|||
/* Custom Tab CSS */
|
||||
.nav.nav-pills.nav-stacked {
|
||||
width: 16.66666667%;
|
||||
float: left;
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
div.tab-content {
|
||||
width: 83.33333333%;
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
float:left;
|
||||
padding-top: 0!important;
|
||||
}
|
||||
|
||||
.panel-default.startPage {
|
||||
border-style: dashed;
|
||||
border-color: #a9a9a9;
|
||||
|
@ -60,11 +76,11 @@ section.content p.breakwords {
|
|||
word-break: break-all;
|
||||
}
|
||||
|
||||
.btn {
|
||||
.public-form .btn {
|
||||
border: 1px solid #c6c6c6;
|
||||
}
|
||||
|
||||
.btn[type='submit'] {
|
||||
.public-form .btn[type='submit'] {
|
||||
font-size: 1.5em;
|
||||
padding: 0.35em 1.2em 0.35em 1.2em;
|
||||
}
|
||||
|
@ -82,7 +98,7 @@ section.content > section > section.container {
|
|||
font-size: 18px;
|
||||
font-weight: normal;
|
||||
}
|
||||
.input-block {
|
||||
.public-form .input-block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -116,7 +132,7 @@ div.form-fields {
|
|||
position: relative;
|
||||
padding-top: 35vh;
|
||||
}
|
||||
.letter {
|
||||
.public-form .letter {
|
||||
position: relative;
|
||||
display: -moz-inline-stack;
|
||||
display: inline-block;
|
||||
|
@ -302,6 +318,8 @@ div.config-form .row.field {
|
|||
}
|
||||
.admin-form .page-header {
|
||||
border: none;
|
||||
margin-top: none;
|
||||
margin-bottom: none;
|
||||
}
|
||||
|
||||
/*Styles for admin view tabs */
|
||||
|
|
|
@ -4,6 +4,7 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
|||
|
||||
$translateProvider.translations('en', {
|
||||
ACCESS_DENIED_TEXT: 'You need to be logged in to access this page',
|
||||
USERNAME_OR_EMAIL_LABEL: 'Username or Email',
|
||||
USERNAME_LABEL: 'Username',
|
||||
PASSWORD_LABEL: 'Password',
|
||||
CURRENT_PASSWORD_LABEL: 'Current Password',
|
||||
|
@ -15,10 +16,15 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
|
|||
LANGUAGE_LABEL: 'Language',
|
||||
EMAIL_LABEL: 'Email',
|
||||
|
||||
SIGNUP_HEADER_TEXT: 'Sign up with your email',
|
||||
SIGNIN_HEADER_TEXT: 'Sign in with your email or username',
|
||||
SIGNUP_ACCOUNT_LINK: 'Don\'t have an account? Sign up here',
|
||||
SIGN_IN_ACCOUNT_LINK: 'Already have an account? Sign in here',
|
||||
SIGNUP_HEADER_TEXT: 'Sign up',
|
||||
SIGNIN_HEADER_TEXT: 'Sign in',
|
||||
|
||||
SIGNUP_ERROR_TEXT: 'Couldn\'t complete registration due to errors',
|
||||
ENTER_ACCOUNT_EMAIL: 'Enter your account email.',
|
||||
RESEND_VERIFICATION_EMAIL: 'Resend Verification Email',
|
||||
SAVE_CHANGES: 'Save Changes',
|
||||
|
||||
UPDATE_PROFILE_BTN: 'Update Profile',
|
||||
PROFILE_SAVE_SUCCESS: 'Profile saved successfully',
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
angular.module('users').controller('PasswordController', ['$scope', '$stateParams', '$state', 'User',
|
||||
function($scope, $stateParams, $state, User) {
|
||||
$scope.error = '';
|
||||
|
||||
$scope.error = '';
|
||||
|
||||
// Submit forgotten password account id
|
||||
$scope.askForPasswordReset = function() {
|
||||
User.askForPasswordReset($scope.credentials).then(
|
||||
|
@ -37,4 +38,4 @@ angular.module('users').controller('PasswordController', ['$scope', '$stateParam
|
|||
);
|
||||
};
|
||||
}
|
||||
]);
|
||||
]);
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
'use strict';
|
||||
|
||||
angular.module('users').controller('SettingsController', ['$scope', '$rootScope', '$http', '$state', 'Users',
|
||||
function($scope, $rootScope, $http, $state, Users) {
|
||||
$scope.user = $rootScope.user;
|
||||
angular.module('users').controller('SettingsController', ['$scope', '$rootScope', '$http', '$state', 'Users', 'Auth',
|
||||
function($scope, $rootScope, $http, $state, Users, Auth) {
|
||||
|
||||
// Check if there are additional accounts
|
||||
$scope.user = Auth.currentUser;
|
||||
|
||||
// Check if there are additional accounts
|
||||
$scope.hasConnectedAdditionalSocialAccounts = function(provider) {
|
||||
for (var i in $scope.user.additionalProvidersData) {
|
||||
return true;
|
||||
|
@ -12,6 +13,10 @@ angular.module('users').controller('SettingsController', ['$scope', '$rootScope'
|
|||
return false;
|
||||
};
|
||||
|
||||
$scope.cancel = function(){
|
||||
$scope.user = Auth.currentUser;
|
||||
};
|
||||
|
||||
// Check if provider is already in use with current user
|
||||
$scope.isConnectedSocialAccount = function(provider) {
|
||||
return $scope.user.provider === provider || ($scope.user.additionalProvidersData && $scope.user.additionalProvidersData[provider]);
|
||||
|
@ -65,4 +70,4 @@ angular.module('users').controller('SettingsController', ['$scope', '$rootScope'
|
|||
};
|
||||
|
||||
}
|
||||
]);
|
||||
]);
|
||||
|
|
|
@ -1,11 +1,83 @@
|
|||
.row.auth form .field-input select {
|
||||
padding: 0.45em 0.9em;
|
||||
width: 100%;
|
||||
background: transparent;
|
||||
font-size: 16px;
|
||||
border: 1px solid #ccc;
|
||||
height: 34px;
|
||||
section.auth {
|
||||
padding: 70px 0;
|
||||
position: absolute;
|
||||
min-height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
color: white;
|
||||
background-color: #50B5C1; /* Old browsers */
|
||||
background: -moz-linear-gradient(137deg, #50B5C1 0%, #6450A0 85%); /* FF3.6-15 */
|
||||
background: -webkit-linear-gradient(137deg, #50B5C1 0%, #6450A0 85%); /* Chrome10-25,Safari5.1-6 */
|
||||
background: linear-gradient(137deg, #50B5C1 0%, #6450A0 85%);
|
||||
background: linear-gradient(137deg, #50B5C1 0%, #6450A0 85%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#50B5C1', endColorstr='#6450A0', GradientType=1); /* IE6-9 fallback on horizontal gradient */
|
||||
}
|
||||
section.auth > h3{
|
||||
font-size: 2em;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.valign-wrapper {
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.valign-wrapper .valign {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
section.auth a {
|
||||
color: white;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
section.auth.signup-view > h3 {
|
||||
font-size: 3em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
|
||||
section.auth form .field-input select {
|
||||
padding: 0.45em 0.9em;
|
||||
width: 100%;
|
||||
background: transparent;
|
||||
font-size: 16px;
|
||||
border: 1px solid #ccc;
|
||||
height: 34px;
|
||||
}
|
||||
|
||||
section.auth input {
|
||||
color: #4c4c4c;
|
||||
}
|
||||
|
||||
.btn-rounded.btn-signup {
|
||||
background-color: #FFD747;
|
||||
color: #896D0B;
|
||||
border: 2px #FFD747 solid;
|
||||
}
|
||||
|
||||
.btn-rounded.btn-signup:hover {
|
||||
color: #FFD747;
|
||||
background-color: #896D0B;
|
||||
border: 2px #896D0B solid;
|
||||
}
|
||||
|
||||
.btn-rounded.btn-default {
|
||||
background-color: transparent;
|
||||
color: white;
|
||||
border: 2px white solid;
|
||||
}
|
||||
|
||||
.btn-rounded.btn-default:focus, .btn-rounded.btn-default:hover {
|
||||
color: #6450A0;
|
||||
background-color: white;
|
||||
border-color: white;
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.nav-users {
|
||||
|
@ -22,20 +94,17 @@
|
|||
position: absolute;
|
||||
}
|
||||
|
||||
section.auth {
|
||||
margin-top: 5em;
|
||||
section.auth input.form-control {
|
||||
border: none;
|
||||
}
|
||||
section.auth > h3{
|
||||
font-size: 3em;
|
||||
font-weight: 500;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
section.auth.signup-view > h3 {
|
||||
font-size: 4.4em;
|
||||
padding-bottom: 0.5em;
|
||||
}
|
||||
input.form-control {
|
||||
border-radius: 4px;
|
||||
box-shadow: none;
|
||||
font-size: 18px;
|
||||
padding: 30px 20px;
|
||||
}
|
||||
|
||||
/* section.auth.signup-view.success > h3 {
|
||||
padding-bottom: 1.2em;
|
||||
}*/
|
||||
.btn {
|
||||
border: none;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<section class="row text-center auth">
|
||||
<section class="text-center auth">
|
||||
<h3 class="col-md-12">{{ 'ACCESS_DENIED_TEXT' | translate }}</h3>
|
||||
<a href="/#!/sigin" class="col-md-12">{{ 'SIGNIN_BTN' | translate }}</a>
|
||||
</section>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<section class="row auth" data-ng-controller="AuthenticationController">
|
||||
<h3 class="col-md-12 text-center">{{ 'SIGNIN_HEADER_TEXT' | translate }}</h3>
|
||||
<section class="auth sigin-view valign-wrapper" data-ng-controller="AuthenticationController">
|
||||
<!--<h3 class="col-md-12 text-center">{{ 'SIGNIN_HEADER_TEXT' | translate }}</h3>-->
|
||||
<!-- <div class="col-md-12 text-center">
|
||||
<a href="/auth/facebook" class="undecorated-link">
|
||||
<img src="/modules/users/img/buttons/facebook.png">
|
||||
|
@ -18,35 +18,40 @@
|
|||
</a>
|
||||
</div> -->
|
||||
<!-- <h3 class="col-md-12 text-center">Or with your account</h3> -->
|
||||
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6">
|
||||
<form class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
<div data-ng-show="error" class="text-center text-danger">
|
||||
Error: <strong data-ng-bind="error"></strong>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="username">{{ 'USERNAME_LABEL' | translate }}</label>
|
||||
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_LABEL' | translate }}" ng-pattern="languageRegExp" ng-minlength="4">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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_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()">{{ 'SIGNIN_BTN' | translate }}</button>
|
||||
|
||||
<span ng-hide="$root.signupDisabled">
|
||||
or
|
||||
<a ui-sref="signup">{{ 'SIGNUP_BTN' | translate }}</a>
|
||||
</span>
|
||||
<div class="row valign">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<form class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
<div data-ng-show="error" class="text-center text-danger">
|
||||
Error: <strong data-ng-bind="error"></strong>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!--<label for="username">{{ 'USERNAME_LABEL' | translate }}</label>-->
|
||||
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_OR_EMAIL_LABEL' | translate }}" ng-minlength="4">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!--<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 }}" ng-minlength="4">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button class="btn btn-signup btn-rounded btn-block" ng-click="signin()">{{ 'SIGNIN_BTN' | translate }}</button>
|
||||
</div>
|
||||
<div class="text-center forgot-password">
|
||||
<a ui-sref="forgot">{{ 'FORGOT_PASSWORD_LINK' | translate }}</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="text-center forgot-password col-md-12">
|
||||
<a ui-sref="signup">{{ 'SIGNUP_ACCOUNT_LINK' | translate }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<section class="row auth signup-view success" data-ng-controller="AuthenticationController">
|
||||
<section class="auth signup-view success" data-ng-controller="AuthenticationController">
|
||||
<!-- <h3 class="col-md-12 text-center">Sign up using your social accounts</h3>
|
||||
<div class="col-md-12 text-center">
|
||||
<a href="/auth/facebook" class="undecorated-link">
|
||||
|
@ -29,7 +29,7 @@
|
|||
<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">
|
||||
<button type="submit" class="btn btn-primary btn-rounded">
|
||||
<a href="/#!/" style="color: white; text-decoration: none;">Continue</a>
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<section class="row auth signup-view" data-ng-controller="AuthenticationController">
|
||||
<section class="auth signup-view valign-wrapper" data-ng-controller="AuthenticationController">
|
||||
<!-- <h3 class="col-md-12 text-center">Sign up using your social accounts</h3>
|
||||
<div class="col-md-12 text-center">
|
||||
<a href="/auth/facebook" class="undecorated-link">
|
||||
|
@ -17,54 +17,41 @@
|
|||
<img src="/modules/users/img/buttons/github.png">
|
||||
</a>
|
||||
</div> -->
|
||||
<h3 class="col-md-12 text-center">{{ 'SIGNUP_HEADER_TEXT' | translate }}</h3>
|
||||
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6">
|
||||
<form name="userForm" data-ng-submit="signup()" class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
<div data-ng-show="error" id="signup_errors" class="text-center text-danger">
|
||||
{{'SIGNUP_ERROR_TEXT' | translate}}: <br>
|
||||
<strong data-ng-bind="error"></strong>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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' | 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="field-title">
|
||||
<b>{{ 'LANGUAGE_LABEL' | translate }}</b>
|
||||
<!--<h3 class="col-md-12 text-center">{{ 'SIGNUP_HEADER_TEXT' | translate }}</h3>-->
|
||||
|
||||
<div class="row valign">
|
||||
<div class="col-md-12 text-center vcenter" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<div class="col-xs-offset-3 col-xs-6 col-sm-offset-4 col-sm-4">
|
||||
<form name="userForm" data-ng-submit="signup()" class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
<div data-ng-show="error" id="signup_errors" class="text-center text-danger">
|
||||
{{'SIGNUP_ERROR_TEXT' | translate}}: <br>
|
||||
<strong data-ng-bind="error"></strong>
|
||||
</div>
|
||||
<div class="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 class="form-group">
|
||||
<!--<label for="username">{{ 'USERNAME_LABEL' | translate }}</label>-->
|
||||
<input type="text" id="username" name="username" class="form-control" ng-pattern="languageRegExp" ng-minlength="4" ng-model="credentials.username" placeholder="{{ 'USERNAME_LABEL' | translate }}" ng-minlength="4">
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<label for="username">{{ 'USERNAME_LABEL' | translate }}</label>
|
||||
<input type="text" id="username" name="username" class="form-control" ng-pattern="languageRegExp" ng-minlength="4" ng-model="credentials.username" placeholder="Username">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<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' | 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">{{ 'SIGNUP_BTN' | translate }}</button>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
<div class="form-group">
|
||||
<!--<label for="email">{{ 'EMAIL_LABEL' | translate }}</label>-->
|
||||
<input type="email" id="email" name="email" class="form-control" ng-model="credentials.email" placeholder="{{ 'EMAIL_LABEL' | translate }}">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<!--<label for="password">{{ 'PASSWORD_LABEL' | translate }}</label>-->
|
||||
<input type="password" id="password" name="password" class="form-control" ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}" ng-minlength="4">
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<button type="submit" class="btn btn-signup btn-rounded btn-block">{{ 'SIGNUP_BTN' | translate }}</button>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
|
||||
<div class="text-center forgot-password">
|
||||
<a ui-sref="signin">{{ 'SIGN_IN_ACCOUNT_LINK' | translate }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -1,22 +1,27 @@
|
|||
<section class="auth row" data-ng-controller="PasswordController">
|
||||
<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_LABEL' | translate }}">
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<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>
|
||||
</div>
|
||||
<div data-ng-show="success" class="text-center text-success">
|
||||
<strong>{{success}}</strong>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<section class="auth valign-wrapper" data-ng-controller="PasswordController">
|
||||
<div class="row valign">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<form data-ng-submit="askForPasswordReset()" autocomplete="off">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_OR_EMAIL_LABEL' | translate }}">
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<button type="submit" class="btn btn-signup btn-rounded btn-block">{{ 'PASSWORD_RESTORE_HEADER' | translate }}</button>
|
||||
</div>
|
||||
<div data-ng-show="error" class="text-center text-danger">
|
||||
<strong>{{error}}</strong>
|
||||
</div>
|
||||
<div data-ng-show="success" class="text-center text-success">
|
||||
<strong>{{success}}</strong>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
<section class="row auth" data-ng-controller="SettingsController">
|
||||
<header data-ng-include="'/static/modules/core/views/header.client.view.html'"></header>
|
||||
|
||||
<section class="row" data-ng-controller="SettingsController">
|
||||
<h3 class="col-md-12 text-center">Change your password</h3>
|
||||
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6">
|
||||
<form data-ng-submit="changeUserPassword()" class="signin form-horizontal" autocomplete="off">
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
1<section class="row auth" data-ng-controller="SettingsController" >
|
||||
<h3 class="col-xs-offset-1 col-xs-10 text-center">Edit your profile</h3>
|
||||
<header data-ng-include="'/static/modules/core/views/header.client.view.html'"></header>
|
||||
|
||||
<section class="row" data-ng-controller="SettingsController">
|
||||
<h2 class="col-xs-offset-1 col-xs-10 text-center">Edit your profile</h2>
|
||||
<div class="col-xs-offset-3 col-xs-6">
|
||||
<form name="userForm" data-ng-submit="updateUserProfile(userForm.$valid)" class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
|
@ -13,18 +15,18 @@
|
|||
|
||||
<div class="form-group row">
|
||||
<div class="col-xs-7 field-title">
|
||||
<b>{{ 'FIRST_NAME_LABEL' | translate }}</b>
|
||||
{{ 'FIRST_NAME_LABEL' | translate }}
|
||||
</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 \-.]*$/">
|
||||
<input type="text" id="firstName" name="firstName" class="form-control" data-ng-model="user.firstName" ng-pattern="/^[\w0-9 \-.]*$/">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col-xs-7 field-title">
|
||||
<b>Last Name</b>
|
||||
{{ 'LAST_NAME_LABEL' | translate }}
|
||||
</div>
|
||||
<div class="col-xs-12 field-input">
|
||||
<input type="text" id="lastName" name="lastName" class="form-control" data-ng-model="user.lastName" placeholder="Last Name" ng-pattern="/^[a-zA-Z0-9 \-.]*$/">
|
||||
<input type="text" id="lastName" name="lastName" class="form-control" data-ng-model="user.lastName" ng-pattern="/^[\w0-9 \-.]*$/">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
|
@ -32,7 +34,7 @@
|
|||
</div>
|
||||
<div class="row form-group">
|
||||
<div class="col-xs-7 field-title">
|
||||
<b>{{ 'LANGUAGE_LABEL' | translate }}</b>
|
||||
{{ 'LANGUAGE_LABEL' | translate }}
|
||||
</div>
|
||||
<div class="col-xs-12 field-input">
|
||||
<select ng-model="user.language" required>
|
||||
|
@ -47,25 +49,28 @@
|
|||
|
||||
<div class="row form-group">
|
||||
<div class="col-xs-7 field-title">
|
||||
<b>Username</b>
|
||||
{{ 'USERNAME_LABEL' | translate }}
|
||||
</div>
|
||||
<div class="col-xs-12 field-input">
|
||||
<input type="text" id="username" name="username" class="form-control" data-ng-model="user.username" placeholder="Username">
|
||||
<input type="text" id="username" name="username" class="form-control" data-ng-model="user.username">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row form-group">
|
||||
<div class="col-xs-7 field-title">
|
||||
<b>{{ 'EMAIL_LABEL' | translate }}</b>
|
||||
{{ 'EMAIL_LABEL' | translate }}
|
||||
</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">
|
||||
<input type="email" id="email" name="email" class="form-control" data-ng-model="user.email">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="text-center form-group">
|
||||
<button type="submit" class="btn btn-large btn-primary" style="font-size:1.6em;">
|
||||
{{ 'SUBMIT_BTN' | translate }}
|
||||
<button type="submit" class="btn btn-signup btn-rounded">
|
||||
{{ 'SAVE_CHANGES' | translate }}
|
||||
</button>
|
||||
<button type="none" ng-click="cancel()" class="btn btn-rounded">
|
||||
{{ 'CANCEL' | translate }}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
<section class="row auth" data-ng-controller="SettingsController">
|
||||
<header data-ng-include="'/static/modules/core/views/header.client.view.html'"></header>
|
||||
|
||||
<section class="row" data-ng-controller="SettingsController">
|
||||
<h3 class="col-md-12 text-center" data-ng-show="hasConnectedAdditionalSocialAccounts()">Connected social accounts:</h3>
|
||||
<div class="col-md-12 text-center">
|
||||
<div data-ng-repeat="(providerName, providerData) in user.additionalProvidersData" class="remove-account-container">
|
||||
|
@ -26,4 +28,4 @@
|
|||
<img src="/modules/users/img/buttons/github.png">
|
||||
</a>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -1,36 +1,45 @@
|
|||
<section class="auth row" data-ng-controller="VerifyController">
|
||||
<section ng-if="!isResetSent">
|
||||
<h3 class="col-md-12 text-center">Resend your account verification email</h3>
|
||||
<p class="small text-center">Enter your account email.</p>
|
||||
<div data-ng-show="error" class="text-center text-danger">
|
||||
<strong>{{error}}</strong>
|
||||
</div>
|
||||
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6">
|
||||
<form data-ng-submit="resendVerifyEmail()" class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<input type="text" id="email" 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_BTN' | translate }}</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
<section class="auth valign-wrapper" data-ng-controller="VerifyController">
|
||||
|
||||
<section class="row valign" ng-if="!isResetSent">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<div data-ng-show="error" class="text-center text-danger">
|
||||
<strong>{{error}}</strong>
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<form data-ng-submit="resendVerifyEmail()" class="signin form-horizontal" autocomplete="off">
|
||||
<fieldset>
|
||||
<div class="form-group">
|
||||
<input type="text" id="email" name="email" class="form-control" data-ng-model="credentials.email" placeholder="{{ 'ENTER_ACCOUNT_EMAIL' | translate}}">
|
||||
</div>
|
||||
<div class="text-center form-group">
|
||||
<button type="submit" class="btn btn-signup btn-rounded btn-block" ng-click="resendVerifyEmail()">{{ 'RESEND_VERIFICATION_EMAIL' | translate }}</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section ng-if="isResetSent">
|
||||
<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>
|
||||
{{ 'VERIFICATION_EMAIL_SENT' | translate }} {{username}}.
|
||||
<br> {{ 'NOT_ACTIVATED_YET' | translate }}
|
||||
</h2>
|
||||
<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">
|
||||
<section class="row valign" ng-if="isResetSent">
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<h3 class="col-md-12 text-center">Verification Email has been Sent</h3>
|
||||
<div class="col-md-12">
|
||||
<h2>
|
||||
{{ 'VERIFICATION_EMAIL_SENT' | translate }} {{username}}.
|
||||
<br> {{ 'NOT_ACTIVATED_YET' | translate }}
|
||||
</h2>
|
||||
<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 btn-rounded">
|
||||
<a href="/#!/" style="color:white;">Continue</a>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
@ -1,14 +1,35 @@
|
|||
<section style="margin-top:50px;" class="row text-center" data-ng-controller="VerifyController" ng-init="validateVerifyToken()">
|
||||
<section class="auth" data-ng-controller="VerifyController" ng-init="validateVerifyToken()">
|
||||
|
||||
<section class="row text-center" ng-if="isResetSent">
|
||||
<h3 class="col-md-12"></h3>
|
||||
<a href="/#!/signin" class="col-md-12">{{ 'CONTINUE_TO_LOGIN' | translate }}</a>
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<div class="col-md-12">
|
||||
<a href="/#!/signin" class="btn btn-signup btn-rounded btn-block">{{ 'CONTINUE_TO_LOGIN' | translate }}</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="row text-center" ng-if="!isResetSent">
|
||||
<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>
|
||||
<div class="col-md-4 col-md-offset-4">
|
||||
<div class="col-md-12 text-center" style="padding-bottom: 50px;">
|
||||
<img src="/static/modules/core/img/logo_white.svg" height="100px">
|
||||
</div>
|
||||
<h3 class="col-md-12">
|
||||
{{ 'VERIFY_ERROR' | translate }}
|
||||
</h3>
|
||||
<div class="col-md-12">
|
||||
<a href="/#!/verify" class="btn btn-rounded btn-default">
|
||||
{{ 'REVERIFY_ACCOUNT_LINK' | translate }}
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<a href="/#!/signin" class="btn btn-rounded btn-primary">
|
||||
{{ 'SIGNIN_BTN' | translate }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</section>
|
||||
|
|
Loading…
Reference in a new issue