[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