|
1 | 1 | <template> |
2 | 2 | <div class="yeti-subpanel"> |
3 | 3 | <sub-panel-title><span v-translate>Route</span></sub-panel-title> |
4 | | - <div class="route-buttons" v-if="features.length"> |
5 | | - <button class="button is-secondary is-small" :title="$gettext('Delete route')" @click="onRemoveFeatures"> |
6 | | - <fa-icon icon="trash" /> |
7 | | - <span v-translate class="is-sr-only">Delete route</span> |
8 | | - </button> |
9 | | - <button class="button is-secondary is-small" :title="$gettext('Fit map to route')" @click="fitMapToFeatures"> |
10 | | - <fa-icon icon="location-crosshairs" /> |
11 | | - <span v-translate class="is-sr-only">Fit map to route</span> |
12 | | - </button> |
| 4 | + <div class="route-buttons"> |
| 5 | + <edit-mode-button is-small icon-only /> |
| 6 | + <span v-if="features.length"> |
| 7 | + <button class="button is-secondary is-small" :title="$gettext('Delete route')" @click="onRemoveFeatures"> |
| 8 | + <fa-icon icon="trash" /> |
| 9 | + <span v-translate class="is-sr-only">Delete route</span> |
| 10 | + </button> |
| 11 | + <button class="button is-secondary is-small" :title="$gettext('Fit map to route')" @click="fitMapToFeatures"> |
| 12 | + <fa-icon icon="location-crosshairs" /> |
| 13 | + <span v-translate class="is-sr-only">Fit map to route</span> |
| 14 | + </button> |
| 15 | + </span> |
13 | 16 | </div> |
14 | 17 | <div v-if="features.length"> |
15 | 18 | <div class="columns is-mobile"> |
|
50 | 53 | </template> |
51 | 54 | </dropdown-content> |
52 | 55 | <simplify-tool ref="simplifyTool" /> |
53 | | - <info type="help"> |
54 | | - <p v-translate>Drawing tips</p> |
55 | | - <ul class="content-ul"> |
56 | | - <li><strong v-translate translate-context="yeti">Draw</strong> <span v-translate>new lines chunks</span></li> |
57 | | - <li> |
58 | | - <strong v-translate translate-context="yeti">Delete</strong> |
59 | | - <span v-translate>last point with the Backspace key</span> |
60 | | - </li> |
61 | | - </ul> |
62 | | - <p v-translate>On a drawn line</p> |
63 | | - <ul class="content-ul"> |
64 | | - <li> |
65 | | - <strong v-translate translate-context="yeti">Edit</strong> <span v-translate>points by moving them</span> |
66 | | - </li> |
67 | | - <li> |
68 | | - <strong v-translate translate-context="yeti">Create</strong> |
69 | | - <span v-translate>a new point on an existing line</span> |
70 | | - </li> |
71 | | - <li><strong v-translate>Delete a point</strong> <span v-translate>with Alt + clic</span></li> |
72 | | - </ul> |
73 | | - <p v-translate>From the interface</p> |
74 | | - <ul class="content-ul"> |
75 | | - <li><strong v-translate>Delete a line chunk</strong></li> |
76 | | - <li><strong v-translate>Delete route</strong> <span v-translate>to start or load a new one</span></li> |
77 | | - </ul> |
78 | | - </info> |
79 | | - <sub-panel-title><span v-translate>Export</span></sub-panel-title> |
| 56 | + </div> |
| 57 | + <div v-else class="columns is-vcentered is-mobile"> |
| 58 | + <div class="column"> |
| 59 | + <p v-translate class="mb-2">No route right now</p> |
| 60 | + </div> |
| 61 | + </div> |
| 62 | + |
| 63 | + <sub-panel-title><span v-translate>Winter routes</span></sub-panel-title> |
| 64 | + <div v-if="winterRouteLayer" class="columns is-vcentered is-mobile"> |
| 65 | + <div class="column"> |
| 66 | + <input-checkbox v-model="winterRouteLayer.checked" @change="winterRouteLayer.action"> |
| 67 | + <span v-translate>Visible layer</span> |
| 68 | + </input-checkbox> |
| 69 | + <component :is="winterRouteLayer.contentComponent" v-if="winterRouteLayer.checked" class="mt-2" /> |
| 70 | + </div> |
| 71 | + </div> |
| 72 | + |
| 73 | + <div v-if="features.length"> |
| 74 | + <sub-panel-title><span v-translate key="export">Export</span></sub-panel-title> |
80 | 75 | <div class="columns is-vcentered is-mobile"> |
81 | 76 | <div class="column"> |
82 | 77 | <ul class="form-export"> |
|
105 | 100 | </div> |
106 | 101 | </div> |
107 | 102 | </div> |
| 103 | + |
108 | 104 | <div v-else> |
109 | | - <p v-translate>No route right now</p> |
110 | | - <div class="load-gpx"> |
111 | | - <div class="buttons"> |
112 | | - <button |
113 | | - class="button is-primary mr-2" |
114 | | - :class="{ 'is-loading': loading }" |
115 | | - :disabled="loading" |
116 | | - @click="onLoadGpx" |
117 | | - v-translate |
118 | | - > |
119 | | - Upload a GPS track |
120 | | - </button> |
121 | | - <edit-mode-button /> |
122 | | - </div> |
123 | | - <div class="control upload-button"> |
124 | | - <input ref="gpxFileInput" type="file" @change="uploadGpx" accept=".gpx" /> |
125 | | - </div> |
126 | | - <info type="help" class="mt-5"> |
127 | | - <p> |
128 | | - <strong v-translate>To draw (and edit) directly on the map</strong> |
129 | | - <span v-translate>you need to activate edit mode</span> |
130 | | - </p> |
131 | | - </info> |
| 105 | + <sub-panel-title><span v-translate key="import">Import</span></sub-panel-title> |
| 106 | + <div class="buttons"> |
| 107 | + <button |
| 108 | + class="button is-primary mr-2" |
| 109 | + :class="{ 'is-loading': loading }" |
| 110 | + :disabled="loading" |
| 111 | + @click="onLoadGpx" |
| 112 | + v-translate |
| 113 | + > |
| 114 | + Upload a GPS track |
| 115 | + </button> |
| 116 | + </div> |
| 117 | + <div class="control upload-button"> |
| 118 | + <input ref="gpxFileInput" type="file" @change="uploadGpx" accept=".gpx" /> |
132 | 119 | </div> |
133 | 120 | </div> |
| 121 | + |
| 122 | + <hr /> |
| 123 | + |
| 124 | + <info type="help"> |
| 125 | + <p v-translate>Drawing tips</p> |
| 126 | + <ul class="content-ul"> |
| 127 | + <li><strong v-translate translate-context="yeti">Draw</strong> <span v-translate>new lines chunks</span></li> |
| 128 | + <li> |
| 129 | + <strong v-translate translate-context="yeti">Delete</strong> |
| 130 | + <span v-translate>last point with the Backspace key</span> |
| 131 | + </li> |
| 132 | + </ul> |
| 133 | + <p v-translate>On a drawn line</p> |
| 134 | + <ul class="content-ul"> |
| 135 | + <li> |
| 136 | + <strong v-translate translate-context="yeti">Edit</strong> <span v-translate>points by moving them</span> |
| 137 | + </li> |
| 138 | + <li> |
| 139 | + <strong v-translate translate-context="yeti">Create</strong> |
| 140 | + <span v-translate>a new point on an existing line</span> |
| 141 | + </li> |
| 142 | + <li><strong v-translate>Delete a point</strong> <span v-translate>with Alt + clic</span></li> |
| 143 | + <li><strong v-translate>Split a line</strong> with Ctrl + clic</li> |
| 144 | + </ul> |
| 145 | + <p v-translate>From the interface</p> |
| 146 | + <ul class="content-ul"> |
| 147 | + <li><strong v-translate>Delete a line chunk</strong></li> |
| 148 | + <li><strong v-translate>Delete route</strong> <span v-translate>to start or load a new one</span></li> |
| 149 | + </ul> |
| 150 | + </info> |
134 | 151 | </div> |
135 | 152 | </template> |
136 | 153 |
|
@@ -180,6 +197,9 @@ export default { |
180 | 197 | hasFeaturesTitle() { |
181 | 198 | return !(!this.featuresTitle.length && !this.newFeaturesTitle); |
182 | 199 | }, |
| 200 | + winterRouteLayer() { |
| 201 | + return Yetix.overlaysLayersSelector.filter((layer) => layer.id === 'winter-route')[0]; |
| 202 | + }, |
183 | 203 | }, |
184 | 204 | methods: { |
185 | 205 | onEditFeaturesTitle(e) { |
@@ -319,10 +339,6 @@ input[type='file'] { |
319 | 339 | cursor: pointer; |
320 | 340 | } |
321 | 341 |
|
322 | | -.load-gpx { |
323 | | - margin-top: 2rem; |
324 | | -} |
325 | | -
|
326 | 342 | .form-export { |
327 | 343 | display: flex; |
328 | 344 | } |
|
0 commit comments