- attributes['history']="Retrieved from v"+version.to_s
-
- [0,objname,points,attributes,xmin,xmax,ymin,ymax,version]
- end
-
- # ----- getway_history (way)
- # returns array of previous versions (version,timestamp,visible,user)
- # should also show 'created_by'
-
- def getway_history(wayid)
- history=[]
- sql=<<-EOF
- SELECT version,timestamp,visible,display_name,data_public
- FROM ways,users
- WHERE ways.id=#{wayid}
- AND ways.user_id=users.id
- AND ways.visible=1
- ORDER BY version DESC
- EOF
- histlist=ActiveRecord::Base.connection.select_all(sql)
- histlist.each { |row|
- if row['data_public'] then user=row['display_name'] else user='anonymous' end
- history<<[row['version'],row['timestamp'],row['visible'],user]
- }
- [history]
- end
-
- # ----- putway (user token, way, array of co-ordinates, array of attributes,
- # baselong, basey, masterscale)
- # returns current way ID, new way ID, hash of renumbered nodes,
- # xmin,xmax,ymin,ymax
+ attributes['history']="Retrieved from v"+version.to_s
+
+ [0,wayid,points,attributes,xmin,xmax,ymin,ymax,version]
+ end
+
+ # ----- getway_history
+ # find history of a way
+
+ # in: [0] way id
+ # does: finds history of a way
+ # out: [0] array of previous versions (where each is
+ # [0] version, [1] db timestamp (string),
+ # [2] visible 0 or 1,
+ # [3] username or 'anonymous' (string))
+
+ def getway_history(args)
+ wayid=args[0]
+ history=[]
+ sql=<<-EOF
+ SELECT version,timestamp,visible,display_name,data_public
+ FROM ways,users
+ WHERE ways.id=#{wayid}
+ AND ways.user_id=users.id
+ AND ways.visible=1
+ ORDER BY version DESC
+ EOF
+ histlist=ActiveRecord::Base.connection.select_all(sql)
+ histlist.each { |row|
+ if row['data_public'].to_i==1 then user=row['display_name'] else user='anonymous' end
+ history<<[row['version'],row['timestamp'],row['visible'],user]
+ }
+ [history]
+ end
+
+ # ----- putway
+ # saves a way to the database
+
+ # in: [0] user token (string),
+ # [1] original way id (may be negative),
+ # [2] array of points (as getway/getway_old),
+ # [3] hash of way tags,
+ # [4] original way version (0 if not a reverted/undeleted way),
+ # [5] baselong, [6] basey, [7] masterscale
+ # does: saves way to the database
+ # all constituent nodes are created/updated as necessary
+ # (or deleted if they were in the old version and are otherwise unused)
+ # out: [0] 0 (code for success), [1] original way id (unchanged),
+ # [2] new way id, [3] hash of renumbered nodes (old id=>new id),
+ # [4] xmin, [5] xmax, [6] ymin, [7] ymax (unprojected bbox)