aboutsummaryrefslogtreecommitdiffstats
path: root/www/js/views/reports.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/views/reports.js')
-rw-r--r--www/js/views/reports.js104
1 files changed, 104 insertions, 0 deletions
diff --git a/www/js/views/reports.js b/www/js/views/reports.js
new file mode 100644
index 0000000..ff65700
--- /dev/null
+++ b/www/js/views/reports.js
@@ -0,0 +1,104 @@
+(function (FMS, Backbone, _, $) {
+ _.extend( FMS, {
+ ReportsView: FMS.FMSView.extend({
+ template: 'reports',
+ id: 'reports',
+ next: 'around',
+ prev: 'around',
+ contentSelector: '#drafts',
+
+ events: {
+ 'pagehide': 'destroy',
+ 'pagebeforeshow': 'beforeDisplay',
+ 'pageshow': 'afterDisplay',
+ 'vclick .del_report': 'deleteReport',
+ 'vclick .use_report': 'useReport',
+ 'vclick .ui-btn-left': 'onClickButtonPrev',
+ 'vclick .ui-btn-right': 'onClickButtonNext'
+ },
+
+ onClickButtonPrev: function(e) {
+ $('#drafts').hide();
+ $('body')[0].scrollTop = 0;
+ e.preventDefault();
+ this.navigate( this.prev, true );
+ },
+
+ onClickButtonNext: function(e) {
+ $('#drafts').hide();
+ $('body')[0].scrollTop = 0;
+ e.preventDefault();
+ this.navigate( this.next );
+ },
+
+ deleteReport: function(e) {
+ e.preventDefault();
+ var el = $(e.target);
+ var id = el.parents('li').attr('id');
+ var del = FMS.removeDraft( id, true );
+ var that = this;
+ del.done( function() { that.onRemoveDraft(el); } );
+ del.fail( function() { that.onRemoveDraft(el); } );
+ },
+
+ setHeight: function(content, height) {
+ content.css( 'min-height', content + 'px');
+ },
+
+ beforeDisplay: function() {
+ if ( FMS.allDrafts.length === 0 ) {
+ $('#noreports').show();
+ } else {
+ $('#report-list').show();
+ }
+ },
+
+ useReport: function(e) {
+ e.preventDefault();
+ var el = $(e.target);
+ var id = el.parents('li').attr('id');
+ FMS.currentDraft = FMS.allDrafts.get(id);
+ $('#drafts').hide();
+ if ( FMS.currentDraft && FMS.currentDraft.get('lat') ) {
+ var coords = { latitude: FMS.currentDraft.get('lat'), longitude: FMS.currentDraft.get('lon') };
+ fixmystreet.latitude = coords.latitude;
+ fixmystreet.longitude = coords.longitude;
+
+ if ( fixmystreet.map ) {
+ var centre = new OpenLayers.LonLat( coords.longitude, coords.latitude );
+ centre.transform(
+ new OpenLayers.Projection("EPSG:4326"),
+ fixmystreet.map.getProjectionObject()
+ );
+
+ fixmystreet.map.panTo(centre);
+ }
+ }
+ this.navigate('around');
+ },
+
+ onRemoveDraft: function(el) {
+ el.parents('li').remove();
+ if ( FMS.allDrafts.length === 0 ) {
+ $('#report-list').hide();
+ $('#noreports').show();
+ }
+ },
+
+ render: function(){
+ if ( !this.template ) {
+ FMS.printDebug('no template to render');
+ return;
+ }
+ template = _.template( tpl.get( this.template ) );
+ if ( this.model ) {
+ this.$el.html(template({ model: this.model.toJSON(), drafts: FMS.allDrafts }));
+ } else {
+ this.$el.html(template());
+ }
+ this.afterRender();
+ return this;
+ }
+ })
+ });
+})(FMS, Backbone, _, $);