diff options
Diffstat (limited to 'www/js')
-rw-r--r-- | www/js/models/draft.js | 13 | ||||
-rw-r--r-- | www/js/router.js | 6 | ||||
-rw-r--r-- | www/js/views/around.js | 8 | ||||
-rw-r--r-- | www/js/views/details.js | 4 | ||||
-rw-r--r-- | www/js/views/fms.js | 6 | ||||
-rw-r--r-- | www/js/views/reports.js | 8 | ||||
-rw-r--r-- | www/js/views/sent.js | 11 | ||||
-rw-r--r-- | www/js/views/submit.js | 24 |
8 files changed, 68 insertions, 12 deletions
diff --git a/www/js/models/draft.js b/www/js/models/draft.js index b033f21..97a92ff 100644 --- a/www/js/models/draft.js +++ b/www/js/models/draft.js @@ -28,6 +28,19 @@ return desc; }, + isPartial: function() { + if ( + this.get('title') || + this.get('details') || + this.get('category') || + this.get('file') + ) { + return true; + } + + return false; + }, + createdDate: function() { return moment.utc( this.get('created') ).format( 'H:mm Do MMM' ); } diff --git a/www/js/router.js b/www/js/router.js index f14c279..2646fb0 100644 --- a/www/js/router.js +++ b/www/js/router.js @@ -18,6 +18,7 @@ 'submit-email': 'submitEmail', 'submit-name': 'submitName', 'submit-password': 'submitPassword', + 'submit-set-password': 'submitSetPassword', 'save_offline': 'saveOffline', 'sent': 'sent', 'reports': 'reports', @@ -108,6 +109,11 @@ this.changeView(submitPasswordView); }, + submitSetPassword: function(){ + var submitSetPasswordView = new FMS.SubmitSetPasswordView({ model: FMS.currentDraft }); + this.changeView(submitSetPasswordView); + }, + saveOffline: function(){ var saveOfflineView = new FMS.SaveOfflineView({ model: FMS.currentDraft }); this.changeView(saveOfflineView); diff --git a/www/js/views/around.js b/www/js/views/around.js index d1075f6..39d58e5 100644 --- a/www/js/views/around.js +++ b/www/js/views/around.js @@ -165,8 +165,12 @@ $('#view-my-reports').show(); $('#login-options').show(); $('#mark-here').show(); - this.model.set('lat', null); - this.model.set('lon', null); + if ( this.model.isPartial() ) { + FMS.clearCurrentDraft(); + } else { + this.model.set('lat', null); + this.model.set('lon', null); + } fixmystreet.markers.setVisibility(true); fixmystreet.select_feature.activate(); }, diff --git a/www/js/views/details.js b/www/js/views/details.js index 67fbab6..b5e94e5 100644 --- a/www/js/views/details.js +++ b/www/js/views/details.js @@ -22,8 +22,8 @@ if ( this.model.get('category') ) { this.$('#form_category').val( this.model.get('category') ); - this.setSelectClass(); } + this.setSelectClass(); }, @@ -74,7 +74,7 @@ }, setSelectClass: function() { - var cat = $('#form_category'); + var cat = this.$('#form_category'); if ( cat.val() !== "" && cat.val() !== '-- Pick a category --' ) { cat.removeClass('noselection'); } else { diff --git a/www/js/views/fms.js b/www/js/views/fms.js index 7196941..640d5e6 100644 --- a/www/js/views/fms.js +++ b/www/js/views/fms.js @@ -57,11 +57,13 @@ FMS.router.navigate( route, { trigger: true } ); }, - onClickButtonPrev: function() { + onClickButtonPrev: function(e) { + e.preventDefault(); this.navigate( this.prev, true ); }, - onClickButtonNext: function() { + onClickButtonNext: function(e) { + e.preventDefault(); this.navigate( this.next ); }, diff --git a/www/js/views/reports.js b/www/js/views/reports.js index 5241319..f5c1cbb 100644 --- a/www/js/views/reports.js +++ b/www/js/views/reports.js @@ -16,8 +16,9 @@ }, deleteReport: function(e) { + e.preventDefault(); var el = $(e.target); - var id = el.parent('li').attr('id'); + var id = el.parents('li').attr('id'); var del = FMS.removeDraft( id, true ); var that = this; del.done( function() { that.onRemoveDraft(el); } ); @@ -25,14 +26,15 @@ }, useReport: function(e) { + e.preventDefault(); var el = $(e.target); - var id = el.parent('li').attr('id'); + var id = el.parents('li').attr('id'); FMS.currentDraft = FMS.allDrafts.get(id); this.navigate('around'); }, onRemoveDraft: function(el) { - el.parent('li').remove(); + el.parents('li').remove(); }, render: function(){ diff --git a/www/js/views/sent.js b/www/js/views/sent.js index 03ec7a7..179d9f7 100644 --- a/www/js/views/sent.js +++ b/www/js/views/sent.js @@ -10,6 +10,17 @@ 'pagebeforeshow': 'beforeDisplay', 'pageshow': 'afterDisplay', 'vclick .ui-btn-left': 'onClickButtonPrev' + }, + + render: function(){ + if ( !this.template ) { + console.log('no template to render'); + return; + } + template = _.template( tpl.get( this.template ) ); + this.$el.html(template(FMS.createdReport.toJSON())); + this.afterRender(); + return this; } }) }); diff --git a/www/js/views/submit.js b/www/js/views/submit.js index bab9396..e408a2e 100644 --- a/www/js/views/submit.js +++ b/www/js/views/submit.js @@ -55,6 +55,12 @@ if ( FMS.currentUser ) { FMS.currentUser.save(); } + if (resp.report) { + this.report.set('site_id', resp.report); + this.report.set('site_url', CONFIG.FMS_URL + '/report/' + resp.report); + } else { + this.report.set('email_confirm', 1); + } var reset = FMS.removeDraft( model.id, true); var that = this; reset.done( function() { that.onRemoveDraft(); } ); @@ -115,14 +121,16 @@ return isValid; }, - onClickPassword: function() { + onClickPassword: function(e) { + e.preventDefault(); if ( this.validate() ) { FMS.currentUser.set('email', $('#form_email').val()); this.navigate( 'submit-password' ); } }, - onClickConfirm: function() { + onClickConfirm: function(e) { + e.preventDefault(); if ( this.validate() ) { FMS.currentUser.set('email', $('#form_email').val()); this.navigate( 'submit-name' ); @@ -180,7 +188,7 @@ this.model.set('submit_clicked', 'submit_register'); FMS.currentUser.set('name', $('#form_name').val()); FMS.currentUser.set('phone', $('#form_phone').val()); - this.navigate( 'submit-password' ); + this.navigate( 'submit-set-password' ); } }, @@ -265,6 +273,16 @@ (function (FMS, Backbone, _, $) { _.extend( FMS, { + SubmitSetPasswordView: FMS.SubmitPasswordView.extend({ + template: 'submit_password', + id: 'submit--set-password-page', + prev: 'submit-name' + }) + }); +})(FMS, Backbone, _, $); + +(function (FMS, Backbone, _, $) { + _.extend( FMS, { SubmitConfirmView: FMS.SubmitView.extend({ template: 'submit_confirm', id: 'submit-confirm-page', |