facilmap/frontend/js/fpMapToolbox.js

52 wiersze
1.4 KiB
JavaScript

(function(fp, $, ng, undefined) {
fp.app.directive("fpVariableMenuItem", function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
setTimeout(function() {
var toolbox = $(element).closest(".fp-toolbox");
if(toolbox.hasClass("ui-menu"))
toolbox.menu("destroy");
toolbox.menu();
}, 0);
}
}
});
fp.app.factory("fpMapToolbox", [ "$compile", "$templateCache", "fpTable", function($compile, $templateCache, fpTable) {
return function(map) {
var scope = map.socket.$new();
scope.addObject = function(type) {
if(type.type == "marker")
map.markersUi.addMarker(type);
else if(type.type == "line")
map.linesUi.addLine(type);
};
scope.displayView = map.displayView.bind(map);
scope.saveView = map.viewsUi.saveView.bind(map.viewsUi);
scope.manageViews = map.viewsUi.manageViews.bind(map.viewsUi);
scope.layers = map.getLayerInfo();
scope.setLayer = function(layer) {
map.showLayer(layer.permalinkName, !layer.visibility);
scope.layers = map.getLayerInfo();
};
scope.editPadSettings = map.padUi.editPadSettings.bind(map.padUi);
scope.editObjectTypes = map.typesUi.editTypes.bind(map.typesUi);
scope.showTable = fpTable.showTable.bind(fpTable);
$compile($($templateCache.get("map-toolbox.html")).appendTo(map.map.div))(scope);
scope.$evalAsync(); // $compile only replaces variables on next digest
}
} ]);
})(FacilPad, jQuery, angular);