Migrate toolbox to bootstrap

before-leaflet
Candid Dauth 2016-10-04 15:43:57 +03:00
rodzic a2c395e0a2
commit 3d0f9549af
6 zmienionych plików z 71 dodań i 44 usunięć

Wyświetl plik

@ -51,6 +51,12 @@ html,body {
position: absolute;
top: 10px;
right: 10px;
opacity: .5;
transition: opacity .7s;
}
.fp-toolbox:hover {
opacity: 1;
}
@media print {

Wyświetl plik

@ -52,7 +52,7 @@
scope.$evalAsync(); // $compile only replaces variables on next digest
function getMaxHeight() {
var toolbox = $(".fp-toolbox", map.map.div);
var toolbox = map.toolboxUi.div;
return $(map.map.div).outerHeight() - parseInt(el.css("bottom")) - 25 - toolbox.position().top - toolbox.outerHeight(true);
}

Wyświetl plik

@ -244,11 +244,11 @@
};
map.getLayerInfo = function() {
var ret = [ ];
var ret = { base: [ ], overlay: [ ] };
map.map.layers.forEach(function(it) {
if(!it.displayInLayerSwitcher)
return;
ret.push({ isBaseLayer: it.isBaseLayer, visibility: it.getVisibility(), name: it.name, permalinkName: it.permalinkName });
(it.isBaseLayer ? ret.base : ret.overlay).push({ visibility: it.getVisibility(), name: it.name, permalinkName: it.permalinkName });
});
return ret;
};
@ -384,8 +384,8 @@
map.typesUi = fpMapTypes(map);
map.padUi = fpMapPad(map);
map.gpxUi = fpMapGpx(map);
map.toolboxUi = fpMapToolbox(map);
fpMapToolbox(map);
fpMapLegend(map);
fpMapSearch(map);

Wyświetl plik

@ -1,23 +1,53 @@
<ul class="fp-toolbox">
<li ng-hide="readonly" ng-repeat="type in types" fp-variable-menu-item><a href="javascript:" ng-click="addObject(type)">Add {{type.name}}</a></li>
<li><a href="javascript:">Views</a><ul>
<li ng-repeat="(id, view) in views" fp-variable-menu-item><a href="javascript:" ng-click="displayView(view)">{{view.name}}</a></li>
<li ng-hide="readonly"><a href="javascript:" ng-click="saveView()">Save current view</a></li>
<li ng-hide="readonly"><a href="javascript:" ng-click="manageViews()">Manage views</a></li>
</ul></li>
<li><a href="javascript:">Layers</a><ul>
<li ng-repeat="layer in layers" fp-variable-menu-item>
<a href="javascript:" ng-click="setLayer(layer)">
<input type="{{layer.isBaseLayer ? 'radio' : 'checkbox'}}" ng-checked="layer.visibility" />
{{layer.name}}
</a>
</li>
</ul></li>
<li><a href="javascript:">Tools</a><ul>
<!--<li ng-hide="readonly"><a href="javascript:" ng-click="openDialog('copy-pad-dialog')">Copy pad</a></li>-->
<li><a href="javascript:" ng-click="exportGpx()">Export GPX</a></li>
<li><a href="javascript:" ng-click="showTable()">View as table</a></li>
<li ng-hide="readonly"><a href="javascript:" ng-click="editPadSettings()">Pad settings</a></li>
<li ng-hide="readonly"><a href="javascript:" ng-click="editObjectTypes()">Object types</a></li>
</ul></li>
</ul>
<nav class="navbar navbar-default fp-toolbox">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#fp-toolbox-content" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="fp-toolbox-content">
<ul class="nav navbar-nav">
<li role="presentation" uib-dropdown ng-if="!readonly">
<a href="javascript:" id="toolbox-add-dropdown" uib-dropdown-toggle role="button">Add <span class="caret"></span></a>
<ul uib-dropdown-menu aria-labelledby="toolbox-add-dropdown">
<li ng-repeat="type in types"><a href="javascript:" ng-click="addObject(type)">{{type.name}}</a></li>
<li role="separator" class="divider"></li>
<li><a href="javascript:" ng-click="editObjectTypes()">Manage types</a></li>
</ul>
</li>
<li role="presentation" uib-dropdown>
<a href="javascript:" id="toolbox-views-dropdown" uib-dropdown-toggle role="button">Saved views <span class="caret"></span></a>
<ul uib-dropdown-menu aria-labelledby="toolbox-views-dropdown">
<li ng-repeat="(id, view) in views"><a href="javascript:" ng-click="displayView(view)">{{view.name}}</a></li>
<li role="separator" class="divider"></li>
<li ng-if="!readonly"><a href="javascript:" ng-click="saveView()">Save current view</a></li>
<li ng-if="!readonly"><a href="javascript:" ng-click="manageViews()">Manage views</a></li>
</ul></li>
<li role="presentation" uib-dropdown>
<a href="javascript:" id="toolbox-layers-dropdown" uib-dropdown-toggle role="button">Map style <span class="caret"></span></a>
<ul uib-dropdown-menu aria-labelledby="toolbox-layers-dropdown">
<li ng-repeat="layer in layers.base" ng-class="{active: layer.visibility}">
<a href="javascript:" ng-click="setLayer(layer)">{{layer.name}}</a>
</li>
<li role="separator" class="divider" ng-if="layers.base.length > 0 && layers.overlay.length > 0"></li>
<li ng-repeat="layer in layers.overlay" ng-class="{active: layer.visibility}">
<a href="javascript:" ng-click="setLayer(layer)">{{layer.name}}</a>
</li>
</ul>
</li>
<li role="presentation" uib-dropdown>
<a href="javascript:" id="toolbox-tools-dropdown" uib-dropdown-toggle role="button">Tools <span class="caret"></span></a>
<ul uib-dropdown-menu aria-labelledby="toolbox-layers-dropdown" class="dropdown-menu-right">
<!--<li ng-if="!readonly"><a href="javascript:" ng-click="openDialog('copy-pad-dialog')">Copy pad</a></li>-->
<li><a href="javascript:" ng-click="exportGpx()">Export GPX</a></li>
<li><a href="javascript:" ng-click="showTable()">View as table</a></li>
<li ng-if="!readonly"><a href="javascript:" ng-click="editPadSettings()">Settings</a></li>
</ul>
</li>
</ul>
</div>
</div>
</nav>

Wyświetl plik

@ -1,19 +1,5 @@
(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", function($compile, $templateCache, fpTable) {
return function(map) {
var scope = map.socket.$new();
@ -46,8 +32,13 @@
scope.exportGpx = map.gpxUi.exportGpx.bind(map.gpxUi);
$compile($($templateCache.get("map/toolbox/toolbox.html")).appendTo(map.map.div))(scope);
var ret = {
div: $($templateCache.get("map/toolbox/toolbox.html"))
};
$compile(ret.div.insertBefore(map.map.div))(scope);
scope.$evalAsync(); // $compile only replaces variables on next digest
return ret;
}
});

Wyświetl plik

@ -7,8 +7,8 @@ var underscore = require("underscore");
var stream = require("stream");
var DEFAULT_TYPES = [
{ name: "marker", type: "marker", fields: [ { name: "Description", type: "textarea" } ] },
{ name: "line", type: "line", fields: [ { name: "Description", type: "textarea" } ] }
{ name: "Marker", type: "marker", fields: [ { name: "Description", type: "textarea" } ] },
{ name: "Line", type: "line", fields: [ { name: "Description", type: "textarea" } ] }
];
function getPadData(padId, callback) {