diff options
Diffstat (limited to 'www/js/views/details.js')
-rw-r--r-- | www/js/views/details.js | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/www/js/views/details.js b/www/js/views/details.js deleted file mode 100644 index 90d1f76..0000000 --- a/www/js/views/details.js +++ /dev/null @@ -1,149 +0,0 @@ -(function (FMS, Backbone, _, $) { - _.extend( FMS, { - DetailsView: FMS.FMSView.extend({ - template: 'details', - id: 'details-page', - prev: 'photo', - next: 'submit-start', - bottomMargin: -20, - - events: { - 'pagehide': 'destroy', - 'pagebeforeshow': 'beforeDisplay', - 'pageshow': 'afterDisplay', - 'vclick .ui-btn-left': 'onClickButtonPrev', - 'vclick .ui-btn-right': 'onClickButtonNext', - 'blur textarea': 'updateCurrentReport', - 'change select': 'updateSelect', - 'blur input': 'updateCurrentReport' - }, - - afterRender: function() { - this.$('#form_category').attr('data-role', 'none'); - - if ( this.model.get('category') ) { - this.$('#form_category').val( this.model.get('category') ); - } - this.setSelectClass(); - - }, - - beforeDisplay: function() { - this.fixPageHeight(); - var header = this.$("div[data-role='header']:visible"), - detail = this.$('#form_detail'), - top = detail.position().top, - viewHeight = $(window).height(), - contentHeight = viewHeight - header.outerHeight() + 15; - - detail.height( contentHeight - top ); - }, - - onClickButtonPrev: function(e) { - e.preventDefault(); - this.updateCurrentReport(); - this.navigate( this.prev, true ); - }, - - onClickButtonNext: function(e) { - e.preventDefault(); - this.clearValidationErrors(); - var valid = 1; - - if ( !$('#form_title').val() ) { - valid = 0; - this.validationError( 'form_title', FMS.validationStrings.title ); - } - - if ( !$('#form_detail').val() ) { - valid = 0; - this.validationError( 'form_detail', FMS.validationStrings.detail ); - } - - var cat = $('#form_category').val(); - if ( cat == '-- Pick a category --' ) { - valid = 0; - this.validationError( 'form_category', FMS.validationStrings.category ); - } - - if ( valid ) { - this.clearValidationErrors(); - this.updateCurrentReport(); - if ( FMS.isOffline ) { - this.navigate( 'save_offline' ); - } else { - var that = this; - $.ajax( { - url: CONFIG.FMS_URL + '/report/new/category_extras', - type: 'POST', - data: { - category: this.model.get('category'), - latitude: this.model.get('lat'), - longitude: this.model.get('lon') - }, - dataType: 'json', - timeout: 30000, - success: function( data, status ) { - if ( data && data.category_extra && data.category_extra.length > 0 ) { - that.model.set('category_extras', data.category_extra); - that.navigate('details_extra'); - } else { - that.navigate( that.next ); - } - }, - error: function() { - this.navigate( that.next ); - } - } ); - } - } - }, - - validationError: function(id, error) { - var el_id = '#' + id; - var el = $(el_id); - - el.addClass('error'); - if ( el.val() === '' ) { - el.attr('orig-placeholder', el.attr('placeholder')); - el.attr('placeholder', error); - } - }, - - clearValidationErrors: function() { - $('.error').removeClass('error'); - $('.error').each(function(el) { if ( el.attr('orig-placeholder') ) { el.attr('placeholder', el.attr('orig-placeholder') ); } } ); - }, - - setSelectClass: function() { - var cat = this.$('#form_category'); - if ( cat.val() !== "" && cat.val() !== '-- Pick a category --' ) { - cat.removeClass('noselection'); - } else { - cat.addClass('noselection'); - } - }, - - updateSelect: function() { - this.updateCurrentReport(); - this.setSelectClass(); - }, - - updateCurrentReport: function() { - var category = $('#form_category').val(); - if ( category === '-- Pick a category --' ) { - category = ''; - } - if ( category && $('#form_title').val() && $('#form_detail').val() ) { - $('#next').addClass('page_complete_btn'); - } else { - $('#next').removeClass('page_complete_btn'); - } - this.model.set('category', category); - this.model.set('title', $('#form_title').val()); - this.model.set('details', $('#form_detail').val()); - FMS.saveCurrentDraft(); - } - }) - }); -})(FMS, Backbone, _, $); |