From cd1020e6147a7ec42c3c3a29b7bff29fa6fd0f9c Mon Sep 17 00:00:00 2001 From: Harley Monteiro Date: Tue, 28 Feb 2012 11:52:23 -0300 Subject: [PATCH] keeping view setting between cells --- src/application/models.py | 13 +- src/application/resources/report.py | 5 + src/static/js/app.js | 215 +++++++++++++++++++++++++++- src/static/js/models/layers.js | 9 +- 4 files changed, 236 insertions(+), 6 deletions(-) diff --git a/src/application/models.py b/src/application/models.py index 053d902..e8eb1b2 100755 --- a/src/application/models.py +++ b/src/application/models.py @@ -173,7 +173,13 @@ class Cell(db.Model): done = db.BooleanProperty(default=False); last_change_by = db.UserProperty() last_change_on = db.DateTimeProperty(auto_now=True) - + compare_view = db.StringProperty(default='four') + map_one_layer_status = db.StringProperty(default='"Brazil Legal Amazon","false","Brazil Municipalities Public","false","Brazil States Public","false","Brazil Federal Conservation Unit Public","false","Brazil State Conservation Unit Public","false","LANDSAT/L7_L1T","false","SMA","false","RGB","false","NDFI t0","false","NDFI t1","false","NDFI analysis","true","True color RGB141","false","False color RGB421","false","F color infrared RGB214","false","Validated polygons","true",*') + map_two_layer_status = db.StringProperty(default='"Brazil Legal Amazon","false","Brazil Municipalities Public","false","Brazil States Public","false","Brazil Federal Conservation Unit Public","false","Brazil State Conservation Unit Public","false","LANDSAT/L7_L1T","false","SMA","false","RGB","false","NDFI t0","true","NDFI t1","false","NDFI analysis","true","True color RGB141","false","False color RGB421","false","F color infrared RGB214","false","Validated polygons","true",*') + map_three_layer_status = db.StringProperty(default='"Brazil Legal Amazon","false","Brazil Municipalities Public","false","Brazil States Public","false","Brazil Federal Conservation Unit Public","false","Brazil State Conservation Unit Public","false","LANDSAT/L7_L1T","false","SMA","false","RGB","false","NDFI t0","false","NDFI t1","true","NDFI analysis","true","True color RGB141","false","False color RGB421","false","F color infrared RGB214","false","Validated polygons","true",*') + map_four_layer_status = db.StringProperty(default='"Brazil Legal Amazon","false","Brazil Municipalities Public","false","Brazil States Public","false","Brazil Federal Conservation Unit Public","false","Brazil State Conservation Unit Public","false","Terrain","true","Satellite","false","Hybrid","false","Roadmap","false","LANDSAT/L7_L1T","true","NDFI t0","false","True color RGB141","false","False color RGB421","false","F color infrared RGB214","false",*') + + @staticmethod def get_cell(report, x, y, z): q = Cell.all() @@ -301,6 +307,11 @@ def as_dict(self): 'ndfi_low': self.ndfi_low, 'ndfi_high': self.ndfi_high, 'ndfi_change_value': self.ndfi_change_value, + 'compare_view':self.compare_view, + 'map_one_layer_status': self.map_one_layer_status, + 'map_two_layer_status': self.map_two_layer_status, + 'map_three_layer_status': self.map_three_layer_status, + 'map_four_layer_status': self.map_four_layer_status, 'done': self.done, 'latest_change': t, 'added_by': by, diff --git a/src/application/resources/report.py b/src/application/resources/report.py index e6ee2fe..1077ad7 100755 --- a/src/application/resources/report.py +++ b/src/application/resources/report.py @@ -145,6 +145,11 @@ def update(self, report_id, id): data = json.loads(request.data) cell.ndfi_low = float(data['ndfi_low']) cell.ndfi_high = float(data['ndfi_high']) + cell.compare_view = str(data['compare_view']) + cell.map_one_layer_status = str(data['map_one_layer_status']) + cell.map_two_layer_status = str(data['map_two_layer_status']) + cell.map_three_layer_status = str(data['map_three_layer_status']) + cell.map_four_layer_status = str(data['map_four_layer_status']) cell.done = data['done'] cell.last_change_by = users.get_current_user() cell.put() diff --git a/src/static/js/app.js b/src/static/js/app.js index 756095a..cf6e991 100755 --- a/src/static/js/app.js +++ b/src/static/js/app.js @@ -202,22 +202,221 @@ $(function() { this.map.adjustSize(); this.compare_layout = this.$("#compare_layout_2").show(); this.compare_maps = []; - this.compare_maps.push(this.get_map("#map_half")); + this.compare_maps.push(this.get_map("#map_half")); + }, + + status_layer_map_save: function(number){ + var cell = this.gridstack.current_cell; + if(number === 'one') { + cell.set({'map_one_layer_status':this.status_layer_map(this.map)}); + cell.save(); + }else if(number === 'two') { + cell.set({'map_one_layer_status':this.status_layer_map(this.map)}); + var map2 = this.compare_maps[0]; + cell.set({'map_two_layer_status':this.status_layer_map(map2)}); + cell.save(); + } else if(number === 'four'){ + cell.set({'map_one_layer_status':this.status_layer_map(this.map)}); + var map2 = this.compare_maps[0]; + cell.set({'map_two_layer_status':this.status_layer_map(map2)}); + map2 = this.compare_maps[1]; + cell.set({'map_three_layer_status':this.status_layer_map(map2)}); + map2 = this.compare_maps[2]; + cell.set({'map_four_layer_status':this.status_layer_map(map2)}); + cell.save(); + } + }, + + get_status_layer_map: function(number){ + if(number === 'one') { + var cell = this.gridstack.current_cell; + var layers = cell.get('map_one_layer_status'); + while(layers!='*'){ + var layer = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var flag = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var lay = this.map.layers.get_by_name(layer); + if(lay) { + if(flag==='true'){ + lay.set_enabled(true); + }else{ + lay.set_enabled(false); + } + } + } + }else if(number === 'two') { + var cell = this.gridstack.current_cell; + var layers = cell.get('map_one_layer_status'); + while(layers!='*'){ + var layer = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var flag = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var lay = this.map.layers.get_by_name(layer); + if(lay) { + if(flag==='true'){ + lay.set_enabled(true); + }else{ + lay.set_enabled(false); + } + } + } + layers = ""; + layers = cell.get('map_two_layer_status'); + var map2 = this.compare_maps[0]; + while(layers!='*'){ + var layer = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var flag = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var lay = map2.layers.get_by_name(layer); + if(lay) { + if(flag==='true'){ + lay.set_enabled(true); + }else{ + lay.set_enabled(false); + } + } + } + } else if(number === 'four'){ + var cell = this.gridstack.current_cell; + var layers = cell.get('map_one_layer_status'); + while(layers!='*'){ + var layer = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var flag = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var lay = this.map.layers.get_by_name(layer); + if(lay) { + if(flag==='true'){ + lay.set_enabled(true); + }else{ + lay.set_enabled(false); + } + } + } + layers = ""; + layers = cell.get('map_two_layer_status'); + var map2 = this.compare_maps[0]; + while(layers!='*'){ + var layer = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var flag = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var lay = map2.layers.get_by_name(layer); + if(lay) { + if(flag==='true'){ + lay.set_enabled(true); + }else{ + lay.set_enabled(false); + } + } + } + layers = ""; + layers = cell.get('map_three_layer_status'); + var map2 = this.compare_maps[1]; + while(layers!='*'){ + var layer = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var flag = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var lay = map2.layers.get_by_name(layer); + if(lay) { + if(flag==='true'){ + lay.set_enabled(true); + }else{ + lay.set_enabled(false); + } + } + } + layers = ""; + layers = cell.get('map_four_layer_status'); + var map2 = this.compare_maps[2]; + while(layers!='*'){ + var layer = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var flag = layers.slice(layers.indexOf("\"")+1,layers.indexOf("\",")); + layers = layers.slice(layers.indexOf(",")+1); + var lay = map2.layers.get_by_name(layer); + if(lay) { + if(flag==='true'){ + lay.set_enabled(true); + }else{ + lay.set_enabled(false); + } + } + } + } + }, + + status_layer_map: function(map_name){ + // enable layer, amazonas bounds + /* + * id{1} name{Brazil Legal Amazon} + * id{2} name{Brazil Municipalities Public} + * id{3} name{Brazil States Public} + * id{4} name{Brazil Federal Conservation Unit Public} + * id{5} name{Brazil State Conservation Unit Public} + * id{6} name{Terrain} this's not saving + * id{7} name{Satellite} this's not saving + * id{8} name{Hybrid} this's not saving + * id{9} name{Roadmap} this's not saving + * id{9affcec73a8b645dc4974ff4da8830f0} name{LANDSAT/L7_L1T} + * id{f69b3bb6add9276eef4d0ab158de74e8} name{NDFI t0} + * id{?} name{True color RGB141} + * id{?} name{False color RGB421} + * id{?} name{F color infrared RGB214} + * + */ + var arraylayer = new Array("Brazil Legal Amazon","Brazil Municipalities Public","Brazil States Public","Brazil Federal Conservation Unit Public", + "Brazil State Conservation Unit Public","LANDSAT/L7_L1T","SMA","RGB","NDFI t0","NDFI t1","NDFI analysis","True color RGB141","False color RGB421", + "F color infrared RGB214","Validated polygons"); + var save_status_layer=""; + for(var num=0; num