2014-04-07 00:33:49 +00:00
|
|
|
|
<!DOCTYPE html>
|
2014-04-10 00:11:39 +00:00
|
|
|
|
<html ng-controller="PadCtrl">
|
2014-04-07 00:33:49 +00:00
|
|
|
|
<head>
|
2014-04-07 23:10:53 +00:00
|
|
|
|
<meta charset="utf-8">
|
2014-05-14 13:23:23 +00:00
|
|
|
|
<title fp-title="padData.name + ' – FacilPad'">FacilPad</title>
|
2014-04-07 00:33:49 +00:00
|
|
|
|
<script src="js/pad.js"></script>
|
|
|
|
|
<style type="text/css">
|
|
|
|
|
@import "pad.css";
|
2014-04-27 12:34:33 +00:00
|
|
|
|
@import "lib/jquery.ui.spinner-1.10.4.min.css";
|
2014-04-07 00:33:49 +00:00
|
|
|
|
</style>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
2014-04-09 23:30:29 +00:00
|
|
|
|
<div ng-hide="loaded" style="position:absolute; top:0; left:0; right:0; bottom:0; padding:10px; background: #fff; z-index:100000; font-size:1.5em; font-weight:bold;">
|
|
|
|
|
Loading...
|
|
|
|
|
</div>
|
2014-04-07 00:33:49 +00:00
|
|
|
|
<div id="map"></div>
|
2014-04-09 23:58:36 +00:00
|
|
|
|
<div id="map-disabled-cover" ng-show="!loaded || error"></div>
|
2014-04-07 00:33:49 +00:00
|
|
|
|
|
|
|
|
|
<ul id="toolbox">
|
2014-05-10 16:51:51 +00:00
|
|
|
|
<li><a href="javascript:" ng-click="addMarker()" ng-hide="readonly">Add marker</a></li>
|
|
|
|
|
<li><a href="javascript:" ng-click="addLine()" ng-hide="readonly">Add line</a></li>
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<li><a href="javascript:">Views</a><ul>
|
|
|
|
|
<li ng-repeat="(id, view) in views"><a href="javascript:" ng-click="displayView(view)">{{view.name}}</a></li>
|
2014-05-10 16:51:51 +00:00
|
|
|
|
<li><a href="javascript:" ng-click="openDialog('save-view-dialog')" ng-hide="readonly">Save current view</a></li>
|
|
|
|
|
<li><a href="javascript:" ng-click="openDialog('manage-views-dialog')" ng-hide="readonly">Manage views</a></li>
|
2014-04-07 00:33:49 +00:00
|
|
|
|
</ul></li>
|
2014-04-26 18:05:46 +00:00
|
|
|
|
<li><a href="javascript:">Layers</a><ul>
|
|
|
|
|
<li ng-repeat="layer in layers">
|
|
|
|
|
<a href="javascript:" ng-click="setLayer(layer)">
|
|
|
|
|
<input type="{{layer.isBaseLayer ? 'radio' : 'checkbox'}}" ng-checked="layer.visibility" />
|
|
|
|
|
{{layer.name}}
|
|
|
|
|
</a>
|
|
|
|
|
</li>
|
|
|
|
|
</ul></li>
|
2014-06-19 00:37:30 +00:00
|
|
|
|
<li><a href="javascript:">Tools</a><ul>
|
|
|
|
|
<li><a href="javascript:" ng-click="openDialog('copy-pad-dialog')" ng-hide="readonly">Copy pad</a></li>
|
|
|
|
|
<li><a href="javascript:" ng-click="openDialog('pad-settings-dialog')" ng-hide="readonly">Pad settings</a></li>
|
|
|
|
|
</ul></li>
|
2014-04-07 00:33:49 +00:00
|
|
|
|
</ul>
|
|
|
|
|
|
2014-04-07 23:10:53 +00:00
|
|
|
|
<div id="messages">
|
2014-04-28 15:07:26 +00:00
|
|
|
|
<p ng-repeat="message in messages" class="{{message.type}}">
|
|
|
|
|
{{message.message}}
|
2014-06-19 00:37:30 +00:00
|
|
|
|
<span ng-repeat="button in message.buttons"> <a href="{{button.url || 'javascript:'}}" ng-click="button.click && button.click()">{{button.label}}</a></span>
|
2014-04-28 15:07:26 +00:00
|
|
|
|
<a href="javascript:" class="close-button" ng-click="closeMessage(message)">×</a>
|
|
|
|
|
</p>
|
2014-04-07 23:10:53 +00:00
|
|
|
|
</div>
|
|
|
|
|
|
2014-04-07 00:33:49 +00:00
|
|
|
|
<div id="save-view-dialog" title="Save current view" fp-dialog>
|
|
|
|
|
<form>
|
|
|
|
|
<p class="error" ng-hide="!dialogError">{{dialogError}}</p>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt><label for="save-view-name">Name</label></dt>
|
|
|
|
|
<dd><input id="save-view-name" ng-model="saveViewName"></dd>
|
|
|
|
|
</dl>
|
2014-04-26 13:04:02 +00:00
|
|
|
|
<div>
|
|
|
|
|
<button type="submit" ng-click="saveView()">Save</button>
|
|
|
|
|
<button ng-click="saveView(true)">Save and make default view</button>
|
|
|
|
|
</div>
|
2014-04-07 00:33:49 +00:00
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div id="manage-views-dialog" title="Manage views" fp-dialog>
|
|
|
|
|
<p class="error" ng-hide="!dialogError">{{dialogError}}</p>
|
|
|
|
|
<table>
|
|
|
|
|
<tbody>
|
|
|
|
|
<tr ng-class="{selected: view.id == padData.defaultView.id}" ng-repeat="view in views">
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<td><a href="javascript:" ng-click="displayView(view)">{{view.name}}</a></td>
|
2014-04-07 00:33:49 +00:00
|
|
|
|
<td class="button"><button ng-hide="view.id == padData.defaultView.id" ng-click="setDefaultView(view)">Make default</button></td>
|
|
|
|
|
<td class="button"><button ng-click="deleteView(view)">Delete</button></td>
|
|
|
|
|
</tr>
|
|
|
|
|
</tbody>
|
|
|
|
|
</table>
|
|
|
|
|
</div>
|
2014-04-07 23:10:53 +00:00
|
|
|
|
|
2014-04-27 17:39:50 +00:00
|
|
|
|
<div id="view-marker-popup" fp-popup="currentMarker.xy">
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<div class="content">
|
|
|
|
|
<h2>{{currentMarker.name}}</h2>
|
2014-04-14 02:43:40 +00:00
|
|
|
|
<p class="pos">Coordinates: {{round(currentMarker.position.lat, 5)}}, {{round(currentMarker.position.lon, 5)}}</p>
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<div ng-bind-html="currentMarker.descriptionHtml"></div>
|
2014-04-07 23:10:53 +00:00
|
|
|
|
</div>
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<div class="buttons">
|
2014-05-10 16:51:51 +00:00
|
|
|
|
<button ng-click="openDialog('edit-marker-dialog')" ng-hide="readonly">Edit</button>
|
2014-06-17 11:34:26 +00:00
|
|
|
|
<button ng-click="moveMarker(currentMarker)" ng-hide="readonly">Move</button>
|
|
|
|
|
<button ng-click="deleteMarker(currentMarker)" ng-hide="readonly">Remove</button>
|
2014-04-09 23:27:12 +00:00
|
|
|
|
</div>
|
|
|
|
|
<a href="javascript:" ng-click="currentMarker=null" class="close-button">×</a>
|
2014-04-07 23:10:53 +00:00
|
|
|
|
</div>
|
|
|
|
|
|
2014-04-27 17:39:50 +00:00
|
|
|
|
<div id="view-line-popup" fp-popup="currentLine.clickXy">
|
2014-04-14 01:47:11 +00:00
|
|
|
|
<div class="content">
|
|
|
|
|
<h2>{{currentLine.name}}</h2>
|
2014-04-14 02:43:40 +00:00
|
|
|
|
<p class="distance">Distance: {{round(currentLine.distance, 2)}} km <span ng-show="currentLine.time != null">({{formatTime(currentLine.time)}} h{{routingMode(currentLine.mode)}})</span></p>
|
2014-04-14 01:47:11 +00:00
|
|
|
|
<div ng-bind-html="currentLine.descriptionHtml"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="buttons">
|
2014-05-10 16:51:51 +00:00
|
|
|
|
<button ng-click="openDialog('edit-line-dialog')" ng-hide="readonly">Edit</button>
|
2014-06-17 11:34:26 +00:00
|
|
|
|
<button ng-click="moveLine(currentLine)" ng-hide="readonly">Move</button>
|
|
|
|
|
<button ng-click="deleteLine(currentLine)" ng-hide="readonly">Remove</button>
|
2014-04-14 01:47:11 +00:00
|
|
|
|
</div>
|
|
|
|
|
<a href="javascript:" ng-click="currentLine=null" class="close-button">×</a>
|
|
|
|
|
</div>
|
|
|
|
|
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<div id="edit-marker-dialog" title="Edit marker" fp-dialog fp-preserve="markers[currentMarker.id]">
|
2014-04-07 23:10:53 +00:00
|
|
|
|
<form>
|
|
|
|
|
<p class="error" ng-show="dialogError">{{dialogError}}</p>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt><label for="edit-marker-name">Name</label></dt>
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<dd><input id="edit-marker-name" ng-model="currentMarker.name" /></dd>
|
2014-04-07 23:10:53 +00:00
|
|
|
|
|
2014-04-13 21:45:51 +00:00
|
|
|
|
<dt><label for="edit-marker-style">Style</label></dt>
|
|
|
|
|
<dd><select id="edit-marker-style" ng-model="currentMarker.style">
|
|
|
|
|
<option value="red">Red</option>
|
|
|
|
|
<option value="green">Green</option>
|
|
|
|
|
<option value="blue">Blue</option>
|
|
|
|
|
<option value="gold">Yellow</option>
|
|
|
|
|
</select></dd>
|
|
|
|
|
|
2014-04-07 23:10:53 +00:00
|
|
|
|
<dt><label for="edit-marker-description">Description</label></dt>
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<dd><textarea id="edit-marker-description" ng-model="currentMarker.description"></textarea></dd>
|
2014-04-07 23:10:53 +00:00
|
|
|
|
</dl>
|
|
|
|
|
<div>
|
|
|
|
|
<button ng-click="saveMarker(currentMarker)">Save</button>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
2014-04-07 23:24:14 +00:00
|
|
|
|
|
2014-04-14 01:47:11 +00:00
|
|
|
|
<div id="edit-line-dialog" title="Edit line" fp-dialog fp-preserve="lines[currentLine.id]">
|
|
|
|
|
<form>
|
|
|
|
|
<p class="error" ng-show="dialogError">{{dialogError}}</p>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt><label for="edit-line-name">Name</label></dt>
|
|
|
|
|
<dd><input id="edit-line-name" ng-model="currentLine.name" /></dd>
|
|
|
|
|
|
|
|
|
|
<dt><label for="edit-line-mode">Routing mode</label></dt>
|
|
|
|
|
<dd><select id="edit-line-mode" ng-model="currentLine.mode">
|
|
|
|
|
<option value="">None</option>
|
2014-04-14 02:43:40 +00:00
|
|
|
|
<option value="fastest">Car (fastest)</option>
|
|
|
|
|
<option value="shortest">Car (shortest)</option>
|
2014-04-14 01:47:11 +00:00
|
|
|
|
<option value="bicycle">Bicycle</option>
|
2014-04-14 02:43:40 +00:00
|
|
|
|
<option value="pedestrian">Pedestrian</option>
|
2014-04-14 01:47:11 +00:00
|
|
|
|
</select></dd>
|
|
|
|
|
|
2014-04-14 03:47:15 +00:00
|
|
|
|
<dt><label for="edit-line-colour">Colour</label></dt>
|
2014-04-27 16:01:16 +00:00
|
|
|
|
<dd><input id="edit-line-colour" ng-model="currentLine.colour" fp-colour-picker></dd>
|
2014-04-14 03:47:15 +00:00
|
|
|
|
|
2014-04-14 04:00:18 +00:00
|
|
|
|
<dt><label for="edit-line-width">Width</label></dt>
|
2014-04-27 12:34:33 +00:00
|
|
|
|
<dd><input id="edit-line-width" ng-model="currentLine.width" fp-spinner /></dd>
|
2014-04-14 04:00:18 +00:00
|
|
|
|
|
2014-04-14 01:47:11 +00:00
|
|
|
|
<dt><label for="edit-line-description">Description</label></dt>
|
|
|
|
|
<dd><textarea id="edit-line-description" ng-model="currentLine.description"></textarea></dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<div>
|
|
|
|
|
<button ng-click="saveLine(currentLine)">Save</button>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<div id="pad-settings-dialog" title="Pad settings" fp-dialog fp-preserve="padData">
|
2014-04-07 23:24:14 +00:00
|
|
|
|
<form>
|
|
|
|
|
<p class="error" ng-show="dialogError">{{dialogError}}</p>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt>Link</dt>
|
2014-05-10 16:51:51 +00:00
|
|
|
|
<dd>{{urlPrefix}}{{padId}}</dd>
|
|
|
|
|
|
|
|
|
|
<dt>Read-only link</dt>
|
|
|
|
|
<dd>{{urlPrefix}}{{padData.id}}</dd>
|
2014-04-07 23:24:14 +00:00
|
|
|
|
|
|
|
|
|
<dt><label for="pad-name-input">Pad name</label></dt>
|
2014-04-09 23:27:12 +00:00
|
|
|
|
<dd><input id="pad-name-input" ng-model="padData.name" /></dd>
|
2014-04-07 23:24:14 +00:00
|
|
|
|
</dl>
|
|
|
|
|
<div>
|
|
|
|
|
<button ng-click="savePadData()">Save</button>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
2014-04-27 16:01:16 +00:00
|
|
|
|
|
2014-06-19 00:37:30 +00:00
|
|
|
|
<div id="copy-pad-dialog" title="Copy pad" fp-dialog>
|
|
|
|
|
<form>
|
|
|
|
|
<p class="error" ng-show="dialogError">{{dialogError}}</p>
|
|
|
|
|
<dl>
|
|
|
|
|
<dt>Copy to</dt>
|
|
|
|
|
<dd>{{urlPrefix}}<input ng-model="copyPadId" class="inline" /></dd>
|
|
|
|
|
</dl>
|
|
|
|
|
<div>
|
|
|
|
|
<button ng-click="copyPad()">Copy</button>
|
|
|
|
|
</div>
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
|
2014-04-27 16:01:16 +00:00
|
|
|
|
<ul id="colour-picker">
|
|
|
|
|
<li ng-repeat="colour in colours" ng-style="{ 'background-color': '#'+colour }" data-colour="{{colour}}"></li>
|
|
|
|
|
</ul>
|
2014-04-07 00:33:49 +00:00
|
|
|
|
</body>
|
|
|
|
|
</html>
|