aboutsummaryrefslogtreecommitdiffstats
path: root/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js')
-rw-r--r--www/js/app.js2
-rw-r--r--www/js/models/report.js33
-rw-r--r--www/js/router.js18
-rw-r--r--www/js/views/details.js2
-rw-r--r--www/js/views/submit.js134
5 files changed, 147 insertions, 42 deletions
diff --git a/www/js/app.js b/www/js/app.js
index 54fc8b9..6b68902 100644
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -38,7 +38,7 @@ var tpl = {
;(function (FMS, Backbone, _, $) {
_.extend(FMS, {
templates: [
- 'home', 'around', 'photo', 'details', 'submit', 'sent'
+ 'home', 'around', 'photo', 'details', 'submit', 'submit_email', 'submit_name', 'submit_password', 'sent'
],
initialized: 0,
diff --git a/www/js/models/report.js b/www/js/models/report.js
index 44d1aef..4334ba4 100644
--- a/www/js/models/report.js
+++ b/www/js/models/report.js
@@ -61,34 +61,19 @@
lat: model.get('lat'),
lon: model.get('lon'),
pc: model.get('pc'),
- may_show_name: $('#form_may_show_name').val() || 0,
- used_map: 1
+ may_show_name: model.get('may_show_name'),
+ used_map: 1,
+ name: model.get('user').get('name'),
+ email: model.get('user').get('email'),
+ phone: model.get('user').get('phone')
};
- if ( FMS.currentUser && FMS.currentUser.get('password') ) {
- params.name = FMS.currentUser.get('name');
- params.email = FMS.currentUser.get('email');
- params.phone = FMS.currentUser.get('phone');
- params.password_sign_in = FMS.currentUser.get('password');
+ if ( this.submit_clicked == 'submit_sign_in' ) {
params.submit_sign_in = 1;
+ params.password_sign_in = model.get('user').get('password');
} else {
- params.name = $('#form_name').val();
- params.email = $('#form_email').val();
- params.phone = $('#form_phone').val();
- params.password_sign_in = $('#password_sign_in').val();
-
- if ( this.submit_clicked == 'submit_sign_in' ) {
- params.submit_sign_in = 1;
- } else {
- params.submit_register = 1;
- }
-
- FMS.currentUser.set({
- name: params.name,
- email: params.email,
- phone: params.phone,
- password: params.password
- });
+ params.password_register = model.get('user').get('password') || '';
+ params.submit_register = 1;
}
var that = this;
diff --git a/www/js/router.js b/www/js/router.js
index f241184..3abbe49 100644
--- a/www/js/router.js
+++ b/www/js/router.js
@@ -10,6 +10,9 @@
'photo': 'photo',
'details': 'details',
'submit': 'submit',
+ 'submit-email': 'submitEmail',
+ 'submit-name': 'submitName',
+ 'submit-password': 'submitPassword',
'sent': 'sent'
},
@@ -47,6 +50,21 @@
this.changeView(submitView);
},
+ submitEmail: function(){
+ var submitEmailView = new FMS.SubmitEmailView({ model: FMS.currentReport });
+ this.changeView(submitEmailView);
+ },
+
+ submitName: function(){
+ var submitNameView = new FMS.SubmitNameView({ model: FMS.currentReport });
+ this.changeView(submitNameView);
+ },
+
+ submitPassword: function(){
+ var submitPasswordView = new FMS.SubmitPasswordView({ model: FMS.currentReport });
+ this.changeView(submitPasswordView);
+ },
+
sent: function(){
var sentView = new FMS.SentView({ model: FMS.currentReport });
this.changeView(sentView);
diff --git a/www/js/views/details.js b/www/js/views/details.js
index a5a5eee..13d1100 100644
--- a/www/js/views/details.js
+++ b/www/js/views/details.js
@@ -4,7 +4,7 @@
template: 'details',
id: 'details-page',
prev: 'photo',
- next: 'submit',
+ next: 'submit-email',
onClickButtonPrev: function() {
this.model.set('title', $('#form_title').val());
diff --git a/www/js/views/submit.js b/www/js/views/submit.js
index 6d6e57b..a19ead6 100644
--- a/www/js/views/submit.js
+++ b/www/js/views/submit.js
@@ -35,6 +35,52 @@
return this;
},
+ onClickSubmit: function(e) {
+ this.beforeSubmit();
+
+ if ( this.validate() ) {
+ this.model.set('user', FMS.currentUser);
+ this.model.save();
+ }
+ },
+
+ onReportSync: function(model, resp, options) {
+ if ( FMS.currentUser ) {
+ FMS.currentUser.save();
+ }
+ this.navigate( 'sent', 'left' );
+ },
+
+ onReportError: function(model, err, options) {
+ alert( FMS.strings.sync_error + ': ' + err.errors);
+ },
+
+ beforeSubmit: function() {},
+
+ _destroy: function() {
+ this.model.off('sync');
+ this.model.off('error');
+ }
+ })
+ });
+})(FMS, Backbone, _, $);
+
+
+;(function (FMS, Backbone, _, $) {
+ _.extend( FMS, {
+ SubmitEmailView: FMS.SubmitView.extend({
+ template: 'submit_email',
+ id: 'submit-email-page',
+ prev: 'details',
+
+ events: {
+ 'pagehide': 'destroy',
+ 'pageshow': 'afterDisplay',
+ 'click .ui-btn-left': 'onClickButtonPrev',
+ 'click #have_password': 'onClickPassword',
+ 'click #email_confirm': 'onClickConfirm'
+ },
+
validate: function() {
this.clearValidationErrors();
var isValid = 1;
@@ -49,6 +95,53 @@
this.validationError('form_email', FMS.validationStrings.email.email);
}
+ return isValid;
+ },
+
+ onClickPassword: function() {
+ if ( this.validate() ) {
+ FMS.currentUser.set('email', $('#form_email').val());
+ this.navigate( 'submit-password' );
+ }
+ },
+
+ onClickConfirm: function() {
+ if ( this.validate() ) {
+ FMS.currentUser.set('email', $('#form_email').val());
+ this.navigate( 'submit-name' );
+ }
+ },
+
+ _destroy: function() {}
+ })
+ });
+})(FMS, Backbone, _, $);
+
+;(function (FMS, Backbone, _, $) {
+ _.extend( FMS, {
+ SubmitNameView: FMS.SubmitView.extend({
+ template: 'submit_name',
+ id: 'submit-name-page',
+ prev: 'submit-email',
+
+ events: {
+ 'pagehide': 'destroy',
+ 'pageshow': 'afterDisplay',
+ 'click .ui-btn-left': 'onClickButtonPrev',
+ 'click #send_confirm': 'onClickSubmit',
+ 'click #set_password': 'onClickPassword'
+ },
+
+ initialize: function() {
+ console.log('submit name initalize');
+ this.model.on('sync', this.onReportSync, this );
+ this.model.on('error', this.onReportError, this );
+ },
+
+ validate: function() {
+ this.clearValidationErrors();
+ var isValid = 1;
+
var name = $('#form_name').val();
if ( !name ) {
isValid = 0;
@@ -64,29 +157,38 @@
return isValid;
},
- onClickSubmit: function(e) {
- this.model.set( 'submit_clicked', $(e.target).attr('id') );
-
+ onClickPassword: function() {
if ( this.validate() ) {
- this.model.save();
+ FMS.currentUser.set('name', $('#form_name').val());
+ FMS.currentUser.set('phone', $('#form_phone').val());
+ this.navigate( 'submit-password' );
}
},
- onReportSync: function(model, resp, options) {
- if ( FMS.currentUser ) {
- FMS.currentUser.save();
- }
- this.navigate( 'sent', 'left' );
- },
+ beforeSubmit: function() {
+ FMS.currentUser.set('name', $('#form_name').val());
+ FMS.currentUser.set('phone', $('#form_phone').val());
+ }
+ })
+ });
+})(FMS, Backbone, _, $);
- onReportError: function(model, err, options) {
- alert( FMS.strings.sync_error + ': ' + err.errors);
+;(function (FMS, Backbone, _, $) {
+ _.extend( FMS, {
+ SubmitPasswordView: FMS.SubmitView.extend({
+ template: 'submit_password',
+ id: 'submit-password-page',
+ prev: 'submit-email',
+
+ events: {
+ 'pagehide': 'destroy',
+ 'pageshow': 'afterDisplay',
+ 'click .ui-btn-left': 'onClickButtonPrev',
+ 'click #report': 'onClickSubmit',
},
- _destroy: function() {
- this.model.off('sync');
- this.model.off('error');
- }
+ validate: function() { return 1; }
})
});
})(FMS, Backbone, _, $);
+