[Mapbender-commits] r1715 - in trunk/mapbender/http: extensions frames javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Mon Oct 8 04:29:43 EDT 2007


Author: nimix
Date: 2007-10-08 04:29:43 -0400 (Mon, 08 Oct 2007)
New Revision: 1715

Added:
   trunk/mapbender/http/extensions/jqjson.js
Modified:
   trunk/mapbender/http/frames/index.php
   trunk/mapbender/http/javascripts/mod_savewmc.php
Log:
http://trac.osgeo.org/mapbender/ticket/113

Added: trunk/mapbender/http/extensions/jqjson.js
===================================================================
--- trunk/mapbender/http/extensions/jqjson.js	                        (rev 0)
+++ trunk/mapbender/http/extensions/jqjson.js	2007-10-08 08:29:43 UTC (rev 1715)
@@ -0,0 +1,96 @@
+(function ($) {
+    var m = {
+            '\b': '\\b',
+            '\t': '\\t',
+            '\n': '\\n',
+            '\f': '\\f',
+            '\r': '\\r',
+            '"' : '\\"',
+            '\\': '\\\\'
+        },
+        s = {
+            'array': function (x) {
+                var a = ['['], b, f, i, l = x.length, v;
+                for (i = 0; i < l; i += 1) {
+                    v = x[i];
+                    f = s[typeof v];
+                    if (f) {
+                        v = f(v);
+                        if (typeof v == 'string') {
+                            if (b) {
+                                a[a.length] = ',';
+                            }
+                            a[a.length] = v;
+                            b = true;
+                        }
+                    }
+                }
+                a[a.length] = ']';
+                return a.join('');
+            },
+            'boolean': function (x) {
+                return String(x);
+            },
+            'null': function (x) {
+                return "null";
+            },
+            'number': function (x) {
+                return isFinite(x) ? String(x) : 'null';
+            },
+            'object': function (x) {
+                if (x) {
+                    if (x instanceof Array) {
+                        return s.array(x);
+                    }
+                    var a = ['{'], b, f, i, v;
+                    for (i in x) {
+                        v = x[i];
+                        f = s[typeof v];
+                        if (f) {
+                            v = f(v);
+                            if (typeof v == 'string') {
+                                if (b) {
+                                    a[a.length] = ',';
+                                }
+                                a.push(s.string(i), ':', v);
+                                b = true;
+                            }
+                        }
+                    }
+                    a[a.length] = '}';
+                    return a.join('');
+                }
+                return 'null';
+            },
+            'string': function (x) {
+                if (/["\\\x00-\x1f]/.test(x)) {
+                    x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
+                        var c = m[b];
+                        if (c) {
+                            return c;
+                        }
+                        c = b.charCodeAt();
+                        return '\\u00' +
+                            Math.floor(c / 16).toString(16) +
+                            (c % 16).toString(16);
+                    });
+                }
+                return '"' + x + '"';
+            }
+        };
+
+	$.toJSON = function(v) {
+		var f = isNaN(v) ? s[typeof v] : s['number'];
+		if (f) return f(v);
+	};
+	
+	$.parseJSON = function(v, safe) {
+		if (safe === undefined) safe = $.parseJSON.safe;
+		if (safe && !/^("(\\.|[^"\\\n\r])*?"|[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t])+?$/.test(v))
+			return undefined;
+		return eval('('+v+')');
+	};
+	
+	$.parseJSON.safe = false;
+
+})(jQuery);

Modified: trunk/mapbender/http/frames/index.php
===================================================================
--- trunk/mapbender/http/frames/index.php	2007-10-05 14:27:41 UTC (rev 1714)
+++ trunk/mapbender/http/frames/index.php	2007-10-08 08:29:43 UTC (rev 1715)
@@ -78,7 +78,7 @@
 -->
 </style>
 <script type='text/javascript' src="../extensions/jquery.js"></script>
-<script type='text/javascript' src="../extensions/json.js"></script>
+<script type='text/javascript' src="../extensions/jqjson.js"></script>
 <script type='text/javascript' src="../javascripts/point.js"></script>
 <script type='text/javascript' src="../javascripts/map_obj.js"></script>
 <script type='text/javascript' src="../javascripts/wfs_obj.js"></script>

Modified: trunk/mapbender/http/javascripts/mod_savewmc.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_savewmc.php	2007-10-05 14:27:41 UTC (rev 1714)
+++ trunk/mapbender/http/javascripts/mod_savewmc.php	2007-10-08 08:29:43 UTC (rev 1715)
@@ -63,7 +63,7 @@
 	var ind = getMapObjIndexByName(mod_savewmc_target);
 	var generalTitle = "session";
 	window.frames['ajax'].$.ajaxSetup({async:false}); //TODO: find out why async doesn't work sometimes
-	window.frames['ajax'].$.post("../php/mod_insertWmcIntoDb.php", {"saveInSession":1, "generalTitle":generalTitle, "mapObject":toJSONString(mb_mapObj[ind])}, function (result, status) {
+	window.frames['ajax'].$.post("../php/mod_insertWmcIntoDb.php", {"saveInSession":1, "generalTitle":generalTitle, "mapObject":$.toJSON(mb_mapObj[ind])}, function (result, status) {
 	});
 }
 
@@ -78,7 +78,7 @@
 		generalTitle = prompt("Save WMC as...");
 	}
 	window.frames['ajax'].$.ajaxSetup({async:false}); //TODO: find out why async doesn't work onunload
-	window.frames['ajax'].$.post("../php/mod_insertWmcIntoDb.php", {"saveInSession":0, "generalTitle":generalTitle, "mapObject":toJSONString(mb_mapObj[ind])}, function (result, status) {
+	window.frames['ajax'].$.post("../php/mod_insertWmcIntoDb.php", {"saveInSession":0, "generalTitle":generalTitle, "mapObject":$.toJSON(mb_mapObj[ind])}, function (result, status) {
 		alert(status + ": " + result);
 	});
 }
\ No newline at end of file



More information about the Mapbender_commits mailing list