[entity] upgrade fetch_[unrelated_]order to benefit from changes introduced in 3.14 (closes #1942758)
of rql generation parts of the ORM now based on rql syntax tree. This allows more powerful and
flexible sort control by giving them the syntax tree instead of manipulating string.
Also:
* prefix new methods by 'cw_'
* fix cases that currently crash in 3.14 due to the refactoring
/**
* :organization: Logilab
* :copyright: 2003-2010 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
* :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
*/
Widgets.GMapWidget = defclass('GMapWidget', null, {
__init__: function(wdgnode) {
// Assume we have imported google maps JS
if (GBrowserIsCompatible()) {
var uselabelstr = wdgnode.getAttribute('cubicweb:uselabel');
var uselabel = true;
if (uselabelstr) {
if (uselabelstr == 'True') {
uselabel = true;
}
else {
uselabel = false;
}
}
var map = new GMap2(wdgnode);
map.addControl(new GSmallMapControl());
var jsonurl = wdgnode.getAttribute('cubicweb:loadurl');
var self = this; // bind this to a local variable
jQuery.getJSON(jsonurl, function(geodata) {
if (geodata.center) {
var zoomLevel = geodata.zoomlevel;
map.setCenter(new GLatLng(geodata.center.latitude, geodata.center.longitude), zoomLevel);
}
for (var i = 0; i < geodata.markers.length; i++) {
var marker = geodata.markers[i];
self.createMarker(map, marker, i + 1, uselabel);
}
});
jQuery(wdgnode).after(this.legendBox);
} else { // incompatible browser
jQuery.unload(GUnload);
}
},
createMarker: function(map, marker, i, uselabel) {
var point = new GLatLng(marker.latitude, marker.longitude);
var icon = new GIcon();
icon.image = marker.icon[0];
icon.iconSize = new GSize(marker.icon[1][0], marker.icon[1][1]);
icon.iconAnchor = new GPoint(marker.icon[2][0], marker.icon[2][1]);
if (marker.icon[3]) {
icon.shadow4 = marker.icon[3];
}
if (typeof LabeledMarker == "undefined") {
var gmarker = new GMarker(point, {
icon: icon,
title: marker.title
});
} else {
var gmarker = new LabeledMarker(point, {
icon: icon,
title: marker.title,
labelText: uselabel ? '<strong>' + i + '</strong>': '',
labelOffset: new GSize(2, - 32)
});
}
map.addOverlay(gmarker);
GEvent.addListener(gmarker, 'click', function() {
jQuery.post(marker.bubbleUrl, function(data) {
map.openInfoWindowHtml(point, data);
});
});
}
});