merged to stage

This commit is contained in:
David Baldwynn 2016-08-26 15:16:59 -07:00
commit eb96506da5
29 changed files with 444 additions and 301 deletions

View file

@ -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) [![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) [See examples here](https://tellform.com/examples)
####Sponsored by ####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://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="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/) [<img src="http://bcsrq.com/wp-content/uploads/2014/04/StickerMuleLogo300.png" width="250px">](https://stickermule.com/)

View file

@ -13,8 +13,8 @@ exports.index = function(req, res) {
}; };
exports.form = function(req, res) { exports.form = function(req, res) {
//Allow form to be embeded //Allow form to be embedded
res.removeHeader('X-Frame-Options'); res.set('X-Frame-Options', 'GOFORIT');
res.render('form', { res.render('form', {
user: req.user || null, user: req.user || null,

View file

@ -61,11 +61,11 @@
</head> </head>
<body ng-cloak> <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"> <div class="github-fork-ribbon">
<a href="https://github.com/whitef0x0/tellform">Fork me on GitHub</a> <a href="https://github.com/whitef0x0/tellform">Fork me on GitHub</a>
</div> </div>
</div> </div>-->
<section class="content"> <section class="content">
<section ui-view></section> <section ui-view></section>
</section> </section>

View file

@ -32,15 +32,9 @@
<!-- Fav Icon --> <!-- Fav Icon -->
<link href="/static/modules/core/img/brand/favicon.ico" rel="shortcut icon" type="image/x-icon"> <link href="/static/modules/core/img/brand/favicon.ico" rel="shortcut icon" type="image/x-icon">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.1/css/font-awesome.min.css">
<link rel="stylesheet" href="/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'> <link rel='stylesheet' href='https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,900'>
<!--Bower CSS dependencies--> <!--Bower CSS dependencies-->
{% for bowerCssFile in bowerCssFiles %}
<link rel="stylesheet" href="{{bowerCssFile}}">
{% endfor %}
<link rel="stylesheet" href="/static//lib/jquery-ui/themes/flick/jquery-ui.css"/>
<!-- end Bower CSS dependencies--> <!-- end Bower CSS dependencies-->

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -6,11 +6,12 @@ angular.module('core').controller('HeaderController', ['$rootScope', '$scope', '
$rootScope.signupDisabled = $window.signupDisabled; $rootScope.signupDisabled = $window.signupDisabled;
$scope.user = $rootScope.user = Auth.ensureHasCurrentUser(User); $scope.user = $rootScope.user = Auth.ensureHasCurrentUser(User);
console.log(Auth.ensureHasCurrentUser(User));
$scope.authentication = $rootScope.authentication = Auth; $scope.authentication = $rootScope.authentication = Auth;
$rootScope.languages = $scope.languages = ['en', 'fr', 'es', 'it', 'de']; $rootScope.languages = $scope.languages = ['en', 'fr', 'es', 'it', 'de'];
console.log($locale.id);
//Set global app language //Set global app language
if($scope.authentication.isAuthenticated()){ if($scope.authentication.isAuthenticated()){
$rootScope.language = $scope.user.language; $rootScope.language = $scope.user.language;

View file

@ -10,6 +10,27 @@ body {
float: none; 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 Custom CSS*/
.navbar { .navbar {
min-height: 60px; min-height: 60px;
@ -33,6 +54,7 @@ body {
min-height: 60px; min-height: 60px;
} }
.navbar-nav > li > a { .navbar-nav > li > a {
padding-top: 20px;
color: white; color: white;
} }
.navbar-nav > li:hover, .navbar-nav > li.active { .navbar-nav > li:hover, .navbar-nav > li.active {

View file

@ -1,8 +1,12 @@
'use strict'; 'use strict';
// Forms controller // Forms controller
angular.module('forms').controller('AdminFormController', ['$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) { function($rootScope, $scope, $stateParams, $state, Forms, CurrentForm, $http, $uibModal, myForm, $filter, $sce) {
$scope.trustSrc = function(src) {
return $sce.trustAsResourceUrl(src);
};
$scope = $rootScope; $scope = $rootScope;
$scope.animationsEnabled = true; $scope.animationsEnabled = true;
@ -11,24 +15,34 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
CurrentForm.setForm($scope.myform); 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'), heading: $filter('translate')('CREATE_TAB'),
route: 'viewForm.create' templateName: 'create'
}, },
{ /*{
heading: $filter('translate')('DESIGN_TAB'), heading: $filter('translate')('DESIGN_TAB'),
route: 'viewForm.design' templateName: 'design'
}, },*/
{ {
heading: $filter('translate')('CONFIGURE_TAB'), heading: $filter('translate')('CONFIGURE_TAB'),
route: 'viewForm.configure' templateName: 'configure'
}, },
{ {
heading: $filter('translate')('ANALYZE_TAB'), heading: $filter('translate')('ANALYZE_TAB'),
route: 'viewForm.analyze' templateName: 'analyze'
} }
]; ];
@ -93,6 +107,7 @@ angular.module('forms').controller('AdminFormController', ['$rootScope', '$scope
// Update existing Form // Update existing Form
$scope.update = $rootScope.update = function(updateImmediately, cb){ $scope.update = $rootScope.update = function(updateImmediately, cb){
refreshFrame();
var continueUpdate = true; var continueUpdate = true;
if(!updateImmediately){ if(!updateImmediately){

View file

@ -2,7 +2,7 @@
<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> <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 --> <!-- Modal Delete Dialog Template -->
<script type="text/ng-template" id="myModalContent.html"> <script type="text/ng-template" id="myModalContent.html">
@ -29,7 +29,7 @@
</div> </div>
</script> </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"> <div class="col-xs-10 col-sm-8">
<h1 class="hidden-sm hidden-xs" data-ng-bind="myform.title" style="margin-bottom: 0px;"></h1> <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> <h2 class="hidden-md hidden-lg" data-ng-bind="myform.title" style="margin-bottom: 0px;"></h2>
@ -45,13 +45,13 @@
</div> </div>
<div class="col-xs-1 col-sm-2"> <div class="col-xs-1 col-sm-2">
<small class="pull-right"> <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"> <span class="hidden-xs hidden-sm">
{{ 'VIEW' | translate }} {{ 'VIEW' | translate }}
<span ng-show="myform.isLive"> <span ng-show="myform.isLive">
{{ 'LIVE' | translate }} {{ 'LIVE' | translate }}
</span> </span>
<span ng-hide="myform.isLive">{{ 'PREVIEW' | translate }}</span> {{ 'FORM' | translate }} <span ng-hide="myform.isLive">{{ 'PREVIEW' | translate }}</span>
</span> </span>
<span class="hidden-xs hidden-md hidden-lg"> <span class="hidden-xs hidden-md hidden-lg">
View View
@ -65,16 +65,84 @@
</div> </div>
</div> </div>
<div class="row-fluid"> <div class="row">
<div class="col-xs-12"> <div class="col-xs-12">
<!-- <tabset> --> <uib-tabset active="activePill" vertical="true" type="pills">
<tabs data="tabData"></tabs> <uib-tab ng-repeat="tab in tabData" index="$index" heading="{{tab.heading}}">
<!-- </tabset> --> <div class='row' data-ng-include="'/static/modules/forms/admin/views/adminTabs/'+tab.templateName+'.html'" onload="form_url = trustSrc(formURL)"></div>
</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"> <div class="row field">
<ui-view></ui-view> <div class="field-title col-sm-5">
</div> <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> </div>
</section> </section>

View file

@ -1,21 +1,12 @@
<div class="config-form design container"> <div class="config-form design container">
<div class="row"> <div class="row">
<div class="col-md-12 container"> <div class="col-md-4 col-sm-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="row field"> <div class="row field">
<div class="field-title col-sm-3"> <div class="field-title col-sm-3">
<h5>{{ 'BACKGROUND_COLOR' | translate }}</h5> <h5>{{ 'BACKGROUND_COLOR' | translate }}</h5>
</div> </div>
<div class="field-input col-sm-6">
<div class="field-input col-sm-9"> <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 }"/>
<input colorpicker="hex" type="text" ng-model="myform.design.colors.backgroundColor" ng-style="{ 'background-color': myform.design.colors.backgroundColor }"/>
</div> </div>
</div> </div>
@ -24,11 +15,8 @@
<h5>{{ 'QUESTION_TEXT_COLOR' | translate }}</h5> <h5>{{ 'QUESTION_TEXT_COLOR' | translate }}</h5>
</div> </div>
<div class="field-input col-sm-9"> <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 }"/>
<input colorpicker="hex" type="text" ng-model="myform.design.colors.questionColor" ng-style="{ 'background-color': myform.design.colors.questionColor }"/>
</div> </div>
</div> </div>
@ -37,8 +25,8 @@
<h5>{{ 'ANSWER_TEXT_COLOR' | translate }}</h5> <h5>{{ 'ANSWER_TEXT_COLOR' | translate }}</h5>
</div> </div>
<div class="field-input col-sm-9"> <div class="field-input col-sm-6">
<input colorpicker="hex" type="text" ng-model="myform.design.colors.answerColor" ng-style="{ 'background-color': myform.design.colors.answerColor }"/> <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>
</div> </div>
@ -47,8 +35,8 @@
<h5>{{ 'BTN_BACKGROUND_COLOR' | translate }}</h5> <h5>{{ 'BTN_BACKGROUND_COLOR' | translate }}</h5>
</div> </div>
<div class="field-input col-sm-9"> <div class="field-input col-sm-6">
<input colorpicker="hex" type="text" <input ng-change="refreshIframe()" class="form-control" colorpicker="hex" type="text"
ng-model="myform.design.colors.buttonColor" ng-model="myform.design.colors.buttonColor"
ng-style="{ 'background-color': myform.design.colors.buttonColor }"/> ng-style="{ 'background-color': myform.design.colors.buttonColor }"/>
</div> </div>
@ -58,21 +46,24 @@
<h5>{{ 'BTN_TEXT_COLOR' | translate }}</h5> <h5>{{ 'BTN_TEXT_COLOR' | translate }}</h5>
</div> </div>
<div class="field-input col-sm-9"> <div class="field-input col-sm-6">
<input colorpicker="hex" type="text" <input ng-change="refreshIframe()" class="form-control" colorpicker="hex" type="text"
ng-model="myform.design.colors.buttonTextColor" ng-model="myform.design.colors.buttonTextColor"
ng-style="{ 'background-color': myform.design.colors.buttonTextColor }"/> ng-style="{ 'background-color': myform.design.colors.buttonTextColor }"/>
</div> </div>
</div> </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>
<div class="row"> <div class="row">
<div class="col-sm-offset-4 col-sm-2"> <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-signup btn-rounded" type="button" ng-click="update(false, null)"><i class="icon-arrow-left icon-white"></i>{{ 'SAVE_CHANGES' | translate }}</button>
</div> </div>
<div class="col-sm-1"> <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-secondary btn-rounded" type="button" ng-click="resetForm()"><i class="icon-eye-open icon-white"></i>{{ 'CANCEL' | translate }}</button>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,22 +1,21 @@
<div class="config-form container"> <div class="config-form container">
<div class="row"> <!--<div class="row">
<div class="col-sm-offset-2 col-sm-10">
<!-- Settings --> <h2 class="hidden-sm hidden-xs">{{ 'ADVANCED_SETTINGS' | translate }}</h2>
<div class="col-sm-12 container-fluid"> <h3 class="hidden-lg hidden-md">{{ 'ADVANCED_SETTINGS' | translate }}</h3>
<div class="row"> </div>
<div class="col-sm-12"> </div>-->
<h2 class="hidden-sm hidden-xs">{{ 'ADVANCED_SETTINGS' | translate }}</h2> <!-- Settings -->
<h3 class="hidden-lg hidden-md">{{ 'ADVANCED_SETTINGS' | translate }}</h3> <div class="row">
</div> <div class="col-sm-offset-2 col-sm-4">
</div>
<div class="row field"> <div class="row field">
<div class="field-title col-sm-4"> <div class="field-title col-sm-12">
<h5>{{ 'FORM_NAME' | translate }}</h5> <h5>{{ 'FORM_NAME' | translate }}</h5>
</div> </div>
<div class="col-sm-8"> <div class="col-sm-12">
<input type="text" <input class="form-control"
type="text"
ng-model="myform.title" ng-model="myform.title"
value="{{myform.title}}" value="{{myform.title}}"
style="width: 100%;" style="width: 100%;"
@ -26,44 +25,28 @@
</div> </div>
<div class="row field"> <div class="row field">
<div class="field-title col-sm-6"> <div class="field-title col-sm-12">
<h5>{{ 'FORM_STATUS' | translate }}</h5> <h5>{{ 'FORM_STATUS' | translate }}</h5>
</div> </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;"/> <input type="radio" data-ng-value="true" ng-model="myform.isLive" ng-required="true" style="background-color:#33CC00;"/>
&nbsp;<span>{{ 'PUBLIC' | translate }}</span> &nbsp;<span>{{ 'PUBLIC' | translate }}</span>
</label> </label>
<label> <label style="display: inline-block;">
<input type="radio" data-ng-value="false" ng-model="myform.isLive" ng-required="true" /> <input type="radio" data-ng-value="false" ng-model="myform.isLive" ng-required="true" />
&nbsp;<span>{{ 'PRIVATE' | translate }}</span> &nbsp;<span>{{ 'PRIVATE' | translate }}</span>
</label> </label>
</div> </div>
</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="row field">
<div class="col-xs-6 field-title">Language</div> <div class="col-sm-12 field-title">Language</div>
<div class="col-xs-4 field-input"> <div class="col-sm-12 field-input">
<select ng-model="myform.language"> <select ng-model="myform.language">
<option ng-repeat="language in languages" <option ng-repeat="language in languages"
ng-selected="language == myform.language" ng-selected="language == myform.language"
@ -74,51 +57,69 @@
<span class="required-error" ng-show="field.required && !field.fieldValue">* required</span> <span class="required-error" ng-show="field.required && !field.fieldValue">* required</span>
</div> </div>
</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" />
&nbsp;<span>{{ 'YES' | translate }}</span>
</label>
<label>
<input type="radio" data-ng-value="true" ng-model="myform.hideFooter" ng-required="true" />
&nbsp;<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;"/>
&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' | translate }}</span>
</label>
</div>
</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" />
&nbsp;<span>{{ 'YES' | translate }}</span>
</label>
<label style="display: inline-block;">
<input type="radio" data-ng-value="true" ng-model="myform.hideFooter" ng-required="true" />
&nbsp;<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;"/>
&nbsp;<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" />
&nbsp;<span>{{ 'NO' | translate }}</span>
</label>
</div>
</div>
</div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-sm-offset-4 col-sm-2"> <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> <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>
<div class="col-sm-1"> <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> <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> </div>
</div> </div>

View file

@ -1,7 +1,7 @@
<form class="row container" name="editForm" auto-save-form auto-save-watch="myform" auto-save-callback="update"> <form class="row container" name="editForm" auto-save-form auto-save-watch="myform" auto-save-callback="update">
<!-- Add Fields Element --> <!-- 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"> <div class="row add-field-title">
<h3 class="col-md-12 hidden-sm hidden-xs">{{ 'ADD_FIELD_LG' | translate }}</h3> <h3 class="col-md-12 hidden-sm hidden-xs">{{ 'ADD_FIELD_LG' | translate }}</h3>

View file

@ -1,8 +1,5 @@
<div class="submissions-table row container"> <div class="submissions-table row container">
<div class="row text-center analytics"> <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="row col-xs-12 header-title">
<div class="col-xs-3"> <div class="col-xs-3">
{{ 'TOTAL_VIEWS' | translate }} {{ 'TOTAL_VIEWS' | translate }}
@ -37,9 +34,6 @@
{{AverageTimeElapsed | secondsToDateTime | date:'mm:ss'}} {{AverageTimeElapsed | secondsToDateTime | date:'mm:ss'}}
</div> </div>
</div> </div>
<div class="row col-xs-12 header-numbers">
Device Analytics
</div>
<div class="row col-xs-12 detailed-title"> <div class="row col-xs-12 detailed-title">
<div class="col-xs-3"> <div class="col-xs-3">
{{ 'DESKTOP_AND_LAPTOP' | translate }} {{ 'DESKTOP_AND_LAPTOP' | translate }}
@ -210,9 +204,6 @@
</div> </div>
</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="row col-xs-12 field-title-row">
<div class="col-xs-3"> <div class="col-xs-3">
@ -247,9 +238,6 @@
</div> </div>
</div> </div>
<br> <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="row table-tools">
<div class="col-xs-2"> <div class="col-xs-2">
<button class="btn btn-danger" ng-click="deleteSelectedSubmissions()" ng-disabled="!isAtLeastOneChecked();"> <button class="btn btn-danger" ng-click="deleteSelectedSubmissions()" ng-disabled="!isAtLeastOneChecked();">

View file

@ -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 { .panel-default.startPage {
border-style: dashed; border-style: dashed;
border-color: #a9a9a9; border-color: #a9a9a9;
@ -302,6 +318,8 @@ div.config-form .row.field {
} }
.admin-form .page-header { .admin-form .page-header {
border: none; border: none;
margin-top: none;
margin-bottom: none;
} }
/*Styles for admin view tabs */ /*Styles for admin view tabs */

View file

@ -4,7 +4,8 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
$translateProvider.translations('en', { $translateProvider.translations('en', {
ACCESS_DENIED_TEXT: 'You need to be logged in to access this page', ACCESS_DENIED_TEXT: 'You need to be logged in to access this page',
USERNAME_LABEL: 'Username or Email', USERNAME_OR_EMAIL_LABEL: 'Username or Email',
USERNAME_LABEL: 'Username',
PASSWORD_LABEL: 'Password', PASSWORD_LABEL: 'Password',
CURRENT_PASSWORD_LABEL: 'Current Password', CURRENT_PASSWORD_LABEL: 'Current Password',
NEW_PASSWORD_LABEL: 'New Password', NEW_PASSWORD_LABEL: 'New Password',
@ -21,6 +22,9 @@ angular.module('users').config(['$translateProvider', function ($translateProvid
SIGNIN_HEADER_TEXT: 'Sign in', SIGNIN_HEADER_TEXT: 'Sign in',
SIGNUP_ERROR_TEXT: 'Couldn\'t complete registration due to errors', 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', UPDATE_PROFILE_BTN: 'Update Profile',
PROFILE_SAVE_SUCCESS: 'Profile saved successfully', PROFILE_SAVE_SUCCESS: 'Profile saved successfully',

View file

@ -2,8 +2,9 @@
angular.module('users').controller('PasswordController', ['$scope', '$stateParams', '$state', 'User', angular.module('users').controller('PasswordController', ['$scope', '$stateParams', '$state', 'User',
function($scope, $stateParams, $state, User) { function($scope, $stateParams, $state, User) {
$scope.error = '';
$scope.error = '';
// Submit forgotten password account id // Submit forgotten password account id
$scope.askForPasswordReset = function() { $scope.askForPasswordReset = function() {
User.askForPasswordReset($scope.credentials).then( User.askForPasswordReset($scope.credentials).then(
@ -37,4 +38,4 @@ angular.module('users').controller('PasswordController', ['$scope', '$stateParam
); );
}; };
} }
]); ]);

View file

@ -1,10 +1,11 @@
'use strict'; 'use strict';
angular.module('users').controller('SettingsController', ['$scope', '$rootScope', '$http', '$state', 'Users', angular.module('users').controller('SettingsController', ['$scope', '$rootScope', '$http', '$state', 'Users', 'Auth',
function($scope, $rootScope, $http, $state, Users) { function($scope, $rootScope, $http, $state, Users, Auth) {
$scope.user = $rootScope.user;
// Check if there are additional accounts $scope.user = Auth.currentUser;
// Check if there are additional accounts
$scope.hasConnectedAdditionalSocialAccounts = function(provider) { $scope.hasConnectedAdditionalSocialAccounts = function(provider) {
for (var i in $scope.user.additionalProvidersData) { for (var i in $scope.user.additionalProvidersData) {
return true; return true;
@ -12,6 +13,10 @@ angular.module('users').controller('SettingsController', ['$scope', '$rootScope'
return false; return false;
}; };
$scope.cancel = function(){
$scope.user = Auth.currentUser;
};
// Check if provider is already in use with current user // Check if provider is already in use with current user
$scope.isConnectedSocialAccount = function(provider) { $scope.isConnectedSocialAccount = function(provider) {
return $scope.user.provider === provider || ($scope.user.additionalProvidersData && $scope.user.additionalProvidersData[provider]); return $scope.user.provider === provider || ($scope.user.additionalProvidersData && $scope.user.additionalProvidersData[provider]);
@ -65,4 +70,4 @@ angular.module('users').controller('SettingsController', ['$scope', '$rootScope'
}; };
} }
]); ]);

View file

@ -6,7 +6,7 @@ section.auth {
left: 0; left: 0;
width: 100%; width: 100%;
color: white; color: white;
background-color: #1e5799; /* Old browsers */ background-color: #50B5C1; /* Old browsers */
background: -moz-linear-gradient(137deg, #50B5C1 0%, #6450A0 85%); /* FF3.6-15 */ 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: -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%);
@ -55,6 +55,7 @@ section.auth {
color: #4c4c4c; color: #4c4c4c;
} }
<<<<<<< HEAD
section.auth .btn { section.auth .btn {
border-radius: 100px; border-radius: 100px;
font-size: 14px; font-size: 14px;
@ -63,18 +64,31 @@ section.auth {
text-transform: uppercase; text-transform: uppercase;
} }
section.auth .btn-signup {
.btn-rounded.btn-signup {
background-color: #FFD747; background-color: #FFD747;
color: #896D0B; color: #896D0B;
border: 2px #FFD747 solid; border: 2px #FFD747 solid;
width: 100%;
} }
section.auth .btn-signup:hover {
.btn-rounded.btn-signup:hover {
color: #FFD747; color: #FFD747;
background-color: #896D0B; background-color: #896D0B;
border: 2px #896D0B solid; 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) { @media (min-width: 992px) {
.nav-users { .nav-users {
position: fixed; position: fixed;
@ -90,10 +104,12 @@ section.auth {
position: absolute; position: absolute;
} }
input.form-control { section.auth input.form-control {
border: none; border: none;
}
input.form-control {
border-radius: 4px; border-radius: 4px;
color: white;
box-shadow: none; box-shadow: none;
font-size: 18px; font-size: 18px;
padding: 30px 20px; padding: 30px 20px;

View file

@ -23,7 +23,6 @@
<div class="col-md-4 col-md-offset-4"> <div class="col-md-4 col-md-offset-4">
<div class="col-md-12 text-center" style="padding-bottom: 50px;"> <div class="col-md-12 text-center" style="padding-bottom: 50px;">
<img src="/static/modules/core/img/logo_white.svg" height="100px"> <img src="/static/modules/core/img/logo_white.svg" height="100px">
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<form class="signin form-horizontal" autocomplete="off"> <form class="signin form-horizontal" autocomplete="off">
@ -33,14 +32,14 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<!--<label for="username">{{ 'USERNAME_LABEL' | translate }}</label>--> <!--<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-minlength="4"> <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>
<div class="form-group"> <div class="form-group">
<!--<label for="password">{{ 'PASSWORD_LABEL' | translate }}</label>--> <!--<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"> <input type="password" id="password" name="password" class="form-control" data-ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}" ng-minlength="4">
</div> </div>
<div class="form-group"> <div class="form-group">
<button class="btn btn-signup" ng-click="signin()">{{ 'SIGNIN_BTN' | translate }}</button> <button class="btn btn-signup btn-rounded btn-block" ng-click="signin()">{{ 'SIGNIN_BTN' | translate }}</button>
</div> </div>
<div class="text-center forgot-password"> <div class="text-center forgot-password">
<a ui-sref="forgot">{{ 'FORGOT_PASSWORD_LINK' | translate }}</a> <a ui-sref="forgot">{{ 'FORGOT_PASSWORD_LINK' | translate }}</a>

View file

@ -29,7 +29,7 @@
<p> <p>
<strong>{{ 'BEFORE_YOU_CONTINUE' | translate }}</strong> <a href="mail:polydaic@gmail.com">polydaic@gmail.com</a></p> <strong>{{ 'BEFORE_YOU_CONTINUE' | translate }}</strong> <a href="mail:polydaic@gmail.com">polydaic@gmail.com</a></p>
<div class="text-center form-group"> <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> <a href="/#!/" style="color: white; text-decoration: none;">Continue</a>
</button> </button>
</div> </div>

View file

@ -30,29 +30,6 @@
{{'SIGNUP_ERROR_TEXT' | translate}}: <br> {{'SIGNUP_ERROR_TEXT' | translate}}: <br>
<strong data-ng-bind="error"></strong> <strong data-ng-bind="error"></strong>
</div> </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>
</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>
</div>
<hr>-->
<div class="form-group"> <div class="form-group">
<!--<label for="username">{{ 'USERNAME_LABEL' | translate }}</label>--> <!--<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"> <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">
@ -66,7 +43,7 @@
<input type="password" id="password" name="password" class="form-control" ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}" ng-minlength="4"> <input type="password" id="password" name="password" class="form-control" ng-model="credentials.password" placeholder="{{ 'PASSWORD_LABEL' | translate }}" ng-minlength="4">
</div> </div>
<div class="text-center form-group"> <div class="text-center form-group">
<button type="submit" class="btn btn-signup">{{ 'SIGNUP_BTN' | translate }}</button> <button type="submit" class="btn btn-signup btn-rounded btn-block">{{ 'SIGNUP_BTN' | translate }}</button>
</div> </div>
</fieldset> </fieldset>

View file

@ -1,22 +1,27 @@
<section class="auth row" data-ng-controller="PasswordController"> <section class="auth valign-wrapper" data-ng-controller="PasswordController">
<h3 class="col-md-12 text-center">{{ 'PASSWORD_RESTORE_HEADER' | translate }}</h3> <div class="row valign">
<p class="small text-center">{{ 'ENTER_YOUR_EMAIL' | translate }}</p> <div class="col-md-4 col-md-offset-4">
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6"> <div class="col-md-12 text-center" style="padding-bottom: 50px;">
<form data-ng-submit="askForPasswordReset()" class="signin form-horizontal" autocomplete="off"> <img src="/static/modules/core/img/logo_white.svg" height="100px">
<fieldset> </div>
<div class="form-group"> <div class="col-md-12">
<input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_LABEL' | translate }}"> <form data-ng-submit="askForPasswordReset()" autocomplete="off">
</div> <fieldset>
<div class="text-center form-group"> <div class="form-group">
<button type="submit" class="btn btn-primary">{{ 'UPDATE_PASSWORD_LABEL' | translate }}</button> <input type="text" id="username" name="username" class="form-control" data-ng-model="credentials.username" placeholder="{{ 'USERNAME_OR_EMAIL_LABEL' | translate }}">
</div> </div>
<div data-ng-show="error" class="text-center text-danger"> <div class="text-center form-group">
<strong>{{error}}</strong> <button type="submit" class="btn btn-signup btn-rounded btn-block">{{ 'PASSWORD_RESTORE_HEADER' | translate }}</button>
</div> </div>
<div data-ng-show="success" class="text-center text-success"> <div data-ng-show="error" class="text-center text-danger">
<strong>{{success}}</strong> <strong>{{error}}</strong>
</div> </div>
</fieldset> <div data-ng-show="success" class="text-center text-success">
</form> <strong>{{success}}</strong>
</div>
</fieldset>
</form>
</div>
</div>
</div> </div>
</section> </section>

View file

@ -1,7 +1,7 @@
<header data-ng-include="'/static/modules/core/views/header.client.view.html'"></header> <header data-ng-include="'/static/modules/core/views/header.client.view.html'"></header>
<section class="row" data-ng-controller="SettingsController"> <section class="row" data-ng-controller="SettingsController">
<h3 class="col-xs-offset-1 col-xs-10 text-center">Edit your profile</h3> <h2 class="col-xs-offset-1 col-xs-10 text-center">Edit your profile</h2>
<div class="col-xs-offset-3 col-xs-6"> <div class="col-xs-offset-3 col-xs-6">
<form name="userForm" data-ng-submit="updateUserProfile(userForm.$valid)" class="signin form-horizontal" autocomplete="off"> <form name="userForm" data-ng-submit="updateUserProfile(userForm.$valid)" class="signin form-horizontal" autocomplete="off">
<fieldset> <fieldset>
@ -15,18 +15,18 @@
<div class="form-group row"> <div class="form-group row">
<div class="col-xs-7 field-title"> <div class="col-xs-7 field-title">
<b>{{ 'FIRST_NAME_LABEL' | translate }}</b> {{ 'FIRST_NAME_LABEL' | translate }}
</div> </div>
<div class="col-xs-12 field-input"> <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> </div>
<div class="form-group row"> <div class="form-group row">
<div class="col-xs-7 field-title"> <div class="col-xs-7 field-title">
<b>Last Name</b> {{ 'LAST_NAME_LABEL' | translate }}
</div> </div>
<div class="col-xs-12 field-input"> <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> </div>
<div class="row"> <div class="row">
@ -34,7 +34,7 @@
</div> </div>
<div class="row form-group"> <div class="row form-group">
<div class="col-xs-7 field-title"> <div class="col-xs-7 field-title">
<b>{{ 'LANGUAGE_LABEL' | translate }}</b> {{ 'LANGUAGE_LABEL' | translate }}
</div> </div>
<div class="col-xs-12 field-input"> <div class="col-xs-12 field-input">
<select ng-model="user.language" required> <select ng-model="user.language" required>
@ -49,25 +49,28 @@
<div class="row form-group"> <div class="row form-group">
<div class="col-xs-7 field-title"> <div class="col-xs-7 field-title">
<b>Username</b> {{ 'USERNAME_LABEL' | translate }}
</div> </div>
<div class="col-xs-12 field-input"> <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> </div>
<div class="row form-group"> <div class="row form-group">
<div class="col-xs-7 field-title"> <div class="col-xs-7 field-title">
<b>{{ 'EMAIL_LABEL' | translate }}</b> {{ 'EMAIL_LABEL' | translate }}
</div> </div>
<div class="col-xs-12 field-input"> <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> </div>
<div class="text-center form-group"> <div class="text-center form-group">
<button type="submit" class="btn btn-large btn-primary" style="font-size:1.6em;"> <button type="submit" class="btn btn-signup btn-rounded">
{{ 'SUBMIT_BTN' | translate }} {{ 'SAVE_CHANGES' | translate }}
</button>
<button type="none" ng-click="cancel()" class="btn btn-rounded">
{{ 'CANCEL' | translate }}
</button> </button>
</div> </div>

View file

@ -1,36 +1,45 @@
<section class="auth" data-ng-controller="VerifyController"> <section class="auth valign-wrapper" data-ng-controller="VerifyController">
<section ng-if="!isResetSent">
<h3 class="col-md-12 text-center">Resend your account verification email</h3> <section class="row valign" ng-if="!isResetSent">
<p class="small text-center">Enter your account email.</p> <div class="col-md-4 col-md-offset-4">
<div data-ng-show="error" class="text-center text-danger"> <div class="col-md-12 text-center" style="padding-bottom: 50px;">
<strong>{{error}}</strong> <img src="/static/modules/core/img/logo_white.svg" height="100px">
</div> </div>
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6"> <div data-ng-show="error" class="text-center text-danger">
<form data-ng-submit="resendVerifyEmail()" class="signin form-horizontal" autocomplete="off"> <strong>{{error}}</strong>
<fieldset> </div>
<div class="form-group"> <div class="col-md-12">
<input type="text" id="email" name="email" class="form-control" data-ng-model="credentials.email" placeholder="bob@example.com"> <form data-ng-submit="resendVerifyEmail()" class="signin form-horizontal" autocomplete="off">
</div> <fieldset>
<div class="text-center form-group"> <div class="form-group">
<button type="submit" class="btn btn-primary" ng-click="resendVerifyEmail()">{{ 'SUBMIT_BTN' | translate }}</button> <input type="text" id="email" name="email" class="form-control" data-ng-model="credentials.email" placeholder="{{ 'ENTER_ACCOUNT_EMAIL' | translate}}">
</div> </div>
</fieldset> <div class="text-center form-group">
</form> <button type="submit" class="btn btn-signup btn-rounded btn-block" ng-click="resendVerifyEmail()">{{ 'RESEND_VERIFICATION_EMAIL' | translate }}</button>
</div>
</fieldset>
</form>
</div>
</div> </div>
</section> </section>
<section ng-if="isResetSent"> <section class="row valign" 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-md-4 col-md-offset-4">
<div class="col-xs-offset-2 col-xs-8 col-md-offset-3 col-md-6"> <div class="col-md-12 text-center" style="padding-bottom: 50px;">
<h2> <img src="/static/modules/core/img/logo_white.svg" height="100px">
{{ 'VERIFICATION_EMAIL_SENT' | translate }} {{username}}. </div>
<br> {{ 'NOT_ACTIVATED_YET' | translate }} <h3 class="col-md-12 text-center">Verification Email has been Sent</h3>
</h2> <div class="col-md-12">
<p> {{ 'CHECK_YOUR_EMAIL' | translate }} <a href="mail:polydaic@gmail.com">polydaic@gmail.com</a></p> <h2>
<div class="text-center form-group"> {{ 'VERIFICATION_EMAIL_SENT' | translate }} {{username}}.
<button type="submit" class="btn btn-large btn-primary"> <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> <a href="/#!/" style="color:white;">Continue</a>
</button> </button>
</div>
</div> </div>
</div> </div>
</section> </section>

View file

@ -1,14 +1,35 @@
<section class="auth" 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"> <section class="row text-center" ng-if="isResetSent">
<h3 class="col-md-12"></h3> <div class="col-md-4 col-md-offset-4">
<a href="/#!/signin" class="col-md-12">{{ 'CONTINUE_TO_LOGIN' | translate }}</a> <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>
<section class="row text-center" ng-if="!isResetSent"> <section class="row text-center" ng-if="!isResetSent">
<h3 class="col-md-12">{{ 'VERIFY_ERROR' | translate }}</h3> <div class="col-md-4 col-md-offset-4">
<a href="/#!/verify" class="col-md-6">{{ 'REVERIFY_ACCOUNT_LINK' | translate }}</a> <div class="col-md-12 text-center" style="padding-bottom: 50px;">
<a href="/#!/signin" class="col-md-6">{{ 'SIGNIN_BTN' | translate }}</a> <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>
</section> </section>