changeset 1480:9b81ac91a43e

fix: linting
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 04 Dec 2018 10:02:31 +0100
parents 858af4614209
children 7be4e0dfa104
files client/src/components/App.vue client/src/components/Login.vue client/src/components/admin/Importqueue.vue client/src/components/admin/Logs.vue client/src/components/admin/Systemconfiguration.vue client/src/components/admin/importschedule/Importschedule.vue client/src/components/admin/importschedule/Importscheduledetail.vue client/src/components/admin/usermanagement/Passwordfield.vue client/src/components/admin/usermanagement/Userdetail.vue client/src/components/admin/usermanagement/Usermanagement.vue client/src/components/map/Identify.vue client/src/components/map/Pdftool.vue client/src/components/map/Search.vue client/src/components/map/Zoom.vue client/src/components/map/contextbox/Bottlenecks.vue client/src/components/map/contextbox/Staging.vue client/src/components/map/fairway/Fairwayprofile.vue client/src/components/map/fairway/Infobar.vue client/src/components/map/fairway/Profiles.vue client/src/components/map/layers/Layers.vue client/src/components/map/layers/Layerselect.vue client/src/components/map/toolbar/Identify.vue client/src/components/map/toolbar/Layers.vue client/src/components/map/toolbar/Linetool.vue client/src/components/map/toolbar/Pdftool.vue client/src/components/map/toolbar/Polygontool.vue client/src/components/map/toolbar/Profiles.vue client/src/components/map/toolbar/Toolbar.vue client/src/store/bottlenecks.js
diffstat 29 files changed, 486 insertions(+), 252 deletions(-) [+]
line wrap: on
line diff
--- a/client/src/components/App.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/App.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -27,9 +27,7 @@
       </div>
       <Zoom v-if="routeName == 'mainview'"></Zoom>
     </div>
-    <div class="d-flex flex-column">
-      <router-view/>
-    </div>
+    <div class="d-flex flex-column"><router-view /></div>
     <vue-snotify></vue-snotify>
   </div>
 </template>
--- a/client/src/components/Login.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/Login.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -3,16 +3,19 @@
     <div class="m-5">
       <!-- logo section -->
       <div class="d-flex flex-row justify-content-center mb-3">
-        <div class="logo mr-3">
-          <img src="../assets/logo.png">
-        </div>
+        <div class="logo mr-3"><img src="../assets/logo.png" /></div>
         <div class="title">
           <h1>{{ appTitle }}</h1>
         </div>
       </div>
       <!-- end logo section -->
       <form class="loginform mx-auto" @submit.prevent="login">
-        <div id="alert" :style="errorMessageStyle" :class="errorMessageClass" role="alert">
+        <div
+          id="alert"
+          :style="errorMessageStyle"
+          :class="errorMessageClass"
+          role="alert"
+        >
           <span>{{ errorMessage }}</span>
         </div>
         <div class="input-group mb-3">
@@ -24,7 +27,7 @@
             :placeholder="usernameLabel"
             required
             autofocus
-          >
+          />
         </div>
         <div class="input-group mb-3">
           <input
@@ -35,16 +38,20 @@
             :placeholder="passwordLabel"
             :required="!showPasswordReset"
             :disabled="showPasswordReset"
-          >
+          />
           <div class="input-group-append">
-            <span class="input-group-text disabled" id="basic-addon2" @click="showPassword">
-              <font-awesome-icon icon="eye" v-if="!readablePassword"/>
-              <font-awesome-icon icon="eye-slash" v-if="readablePassword"/>
+            <span
+              class="input-group-text disabled"
+              id="basic-addon2"
+              @click="showPassword"
+            >
+              <font-awesome-icon icon="eye" v-if="!readablePassword" />
+              <font-awesome-icon icon="eye-slash" v-if="readablePassword" />
             </span>
           </div>
         </div>
         <button
-          v-if="showPasswordReset==false"
+          v-if="showPasswordReset == false"
           class="btn btn-primary btn-block shadow-sm"
           :disabled="submitted || showPasswordReset"
           type="submit"
@@ -52,7 +59,11 @@
           <translate>Login</translate>
         </button>
         <div v-if="showPasswordReset" class="passwordreset">
-          <button class="btn btn-block btn-info" type="button" @click="resetPassword">
+          <button
+            class="btn btn-block btn-info"
+            type="button"
+            @click="resetPassword"
+          >
             <translate>Request password reset!</translate>
           </button>
           <div class="pull-right">
@@ -70,11 +81,11 @@
 
       <!-- bottom logo section -->
       <div class="mb-3 secondary-logo mx-auto mb-auto">
-        <img :src="secondaryLogo">
+        <img :src="secondaryLogo" />
       </div>
     </div>
-  </div>
-</template>)
+  </div> </template
+>)
 
 <style lang="scss" scoped>
 .login {
--- a/client/src/components/admin/Importqueue.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/admin/Importqueue.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -3,7 +3,9 @@
     <div :class="spacerStyle"></div>
     <div class="mt-3">
       <div class="card importqueuecard shadow-xs">
-        <h6 class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center">
+        <h6
+          class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center"
+        >
           <font-awesome-icon icon="tasks" class="mr-2"></font-awesome-icon>
           <translate class="headline">Importqueue</translate>
         </h6>
@@ -23,10 +25,13 @@
                   placeholder
                   aria-label="Search"
                   aria-describedby="search"
-                >
+                />
               </div>
               <div class="filters">
-                <button @click="setFilter('successful')" :class="successfulStyle">
+                <button
+                  @click="setFilter('successful')"
+                  :class="successfulStyle"
+                >
                   <translate>Successful</translate>
                 </button>
                 <button @click="setFilter('failed')" :class="failedStyle">
@@ -46,26 +51,18 @@
             <table class="table">
               <thead>
                 <tr>
-                  <th>
-                    <translate>Enqueued</translate>
-                  </th>
-                  <th>
-                    <translate>Kind</translate>
-                  </th>
-                  <th>
-                    <translate>User</translate>
-                  </th>
-                  <th>
-                    <translate>State</translate>
-                  </th>
+                  <th><translate>Enqueued</translate></th>
+                  <th><translate>Kind</translate></th>
+                  <th><translate>User</translate></th>
+                  <th><translate>State</translate></th>
                 </tr>
               </thead>
               <tbody>
                 <tr v-for="job in filteredImports" :key="job.id">
-                  <td>{{job.enqueued}}</td>
-                  <td>{{job.kind}}</td>
-                  <td>{{job.user}}</td>
-                  <td>{{job.state}}</td>
+                  <td>{{ job.enqueued }}</td>
+                  <td>{{ job.kind }}</td>
+                  <td>{{ job.user }}</td>
+                  <td>{{ job.state }}</td>
                 </tr>
               </tbody>
             </table>
--- a/client/src/components/admin/Logs.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/admin/Logs.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -3,7 +3,10 @@
     <div class="d-flex flex-row">
       <div :class="spacer"></div>
       <div class="logoutput text-left bg-white shadow-xs mt-3 mx-3">
-        <pre id="code" v-highlightjs="logs"><code class="bash hljs hljs-string"></code></pre>
+        <pre
+          id="code"
+          v-highlightjs="logs"
+        ><code class="bash hljs hljs-string"></code></pre>
       </div>
     </div>
     <div class="d-flex flex-row logmenu">
@@ -31,10 +34,7 @@
       </div>
       <div class="statuscontainer d-flex flex-row">
         <div class="statusline ml-3 mt-1 align-self-center">
-          <h3>
-            <translate>Last refresh:</translate>
-            {{refreshed}}
-          </h3>
+          <h3><translate>Last refresh:</translate> {{ refreshed }}</h3>
         </div>
         <div class="refresh">
           <button class="btn btn-dark" @click="fetch(currentFile, currentLog)">
--- a/client/src/components/admin/Systemconfiguration.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/admin/Systemconfiguration.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -2,7 +2,9 @@
   <div class="d-flex flex-row">
     <div :class="spacerStyle"></div>
     <div class="card sysconfig mt-3 shadow-xs">
-      <h6 class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center">
+      <h6
+        class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center"
+      >
         <font-awesome-icon icon="wrench" class="mr-2"></font-awesome-icon>
         <translate class="headline">Systemconfiguration</translate>
       </h6>
@@ -11,13 +13,13 @@
           <h4 class="card-title">
             <translate>Bottleneck Areas stroke-color</translate>
           </h4>
-          <compact-picker v-model="strokeColor"/>
+          <compact-picker v-model="strokeColor" />
         </section>
         <section>
           <h4 class="card-title">
             <translate>Bottleneck Areas fill-color</translate>
           </h4>
-          <chrome-picker v-model="fillColor"/>
+          <chrome-picker v-model="fillColor" />
         </section>
         <div class="sendbutton">
           <a @click.prevent="submit" class="btn btn-info text-white">
--- a/client/src/components/admin/importschedule/Importschedule.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/admin/importschedule/Importschedule.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -3,7 +3,9 @@
     <div :class="spacerStyle"></div>
     <div class="mt-3">
       <div class="card schedulecard shadow-xs">
-        <h6 class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center">
+        <h6
+          class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center"
+        >
           <font-awesome-icon icon="clock" class="mr-2"></font-awesome-icon>
           <translate class="headline">Importschedule</translate>
         </h6>
@@ -23,27 +25,17 @@
                   placeholder
                   aria-label="Search"
                   aria-describedby="search"
-                >
+                />
               </div>
             </div>
             <table v-if="schedules.length" class="table">
               <thead>
                 <tr>
-                  <th>
-                    <translate>Import</translate>
-                  </th>
-                  <th>
-                    <translate>Type</translate>
-                  </th>
-                  <th>
-                    <translate>Author</translate>
-                  </th>
-                  <th>
-                    <translate>Schedule</translate>
-                  </th>
-                  <th>
-                    <translate>Email</translate>
-                  </th>
+                  <th><translate>Import</translate></th>
+                  <th><translate>Type</translate></th>
+                  <th><translate>Author</translate></th>
+                  <th><translate>Schedule</translate></th>
+                  <th><translate>Email</translate></th>
                   <th>&nbsp;</th>
                   <th>&nbsp;</th>
                 </tr>
@@ -56,10 +48,17 @@
                   <td></td>
                   <td></td>
                   <td>
-                    <font-awesome-icon icon="pencil-alt" fixed-width></font-awesome-icon>
+                    <font-awesome-icon
+                      icon="pencil-alt"
+                      fixed-width
+                    ></font-awesome-icon>
                   </td>
                   <td>
-                    <font-awesome-icon @click="deleteSchedule" icon="trash" fixed-width></font-awesome-icon>
+                    <font-awesome-icon
+                      @click="deleteSchedule"
+                      icon="trash"
+                      fixed-width
+                    ></font-awesome-icon>
                   </td>
                 </tr>
               </tbody>
@@ -67,7 +66,10 @@
             <div v-else class="mt-4 small text-center py-3">
               <translate>No schedules</translate>
             </div>
-            <button @click="newImport" class="btn btn-info position-absolute newbutton">
+            <button
+              @click="newImport"
+              class="btn btn-info position-absolute newbutton"
+            >
               <translate>New Import</translate>
             </button>
           </div>
--- a/client/src/components/admin/importschedule/Importscheduledetail.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/admin/importschedule/Importscheduledetail.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,7 +1,9 @@
 <template>
   <div class="importscheduledetails" v-if="importScheduleDetailVisible">
     <div class="card shadow-xs">
-      <h6 class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center">
+      <h6
+        class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center"
+      >
         <translate>New import</translate>
         <span @click="closeDetailview" class="closebutton">
           <font-awesome-icon icon="times"></font-awesome-icon>
--- a/client/src/components/admin/usermanagement/Passwordfield.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/admin/usermanagement/Passwordfield.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,6 +1,6 @@
 <template>
   <div>
-    <label for="password">{{this.label}}</label>
+    <label for="password">{{ this.label }}</label>
     <div class="d-flex d-row">
       <input
         :type="isPasswordVisible"
@@ -8,15 +8,17 @@
         class="form-control"
         :placeholder="placeholder"
         :required="required"
-      >
+      />
       <span class="input-group-text" @click="showPassword">
-        <font-awesome-icon :icon="readablePassword ? 'eye-slash' : 'eye'"></font-awesome-icon>
+        <font-awesome-icon
+          :icon="readablePassword ? 'eye-slash' : 'eye'"
+        ></font-awesome-icon>
       </span>
     </div>
     <div v-show="passworderrors" class="text-danger">
       <small>
         <font-awesome-icon icon="exclamation-triangle"></font-awesome-icon>
-        {{ this.passworderrors}}
+        {{ this.passworderrors }}
       </small>
     </div>
   </div>
--- a/client/src/components/admin/usermanagement/Userdetail.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/admin/usermanagement/Userdetail.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,7 +1,9 @@
 <template>
   <div class="userdetails h-100 mt-3 mr-auto shadow fadeIn animated">
     <div class="card">
-      <h6 class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center">
+      <h6
+        class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center"
+      >
         {{ this.cardHeader }}
         <span @click="closeDetailview" class="closebutton">
           <font-awesome-icon icon="times"></font-awesome-icon>
@@ -11,9 +13,7 @@
         <form @submit.prevent="save" class="ml-3">
           <div class="formfields">
             <div v-if="currentUser.isNew" class="form-group row">
-              <label for="user">
-                <translate>Username</translate>
-              </label>
+              <label for="user"> <translate>Username</translate> </label>
               <input
                 type="user"
                 :placeholder="userNamePlaceholder"
@@ -21,18 +21,18 @@
                 id="user"
                 aria-describedby="userHelp"
                 v-model="currentUser.user"
-              >
+              />
               <div v-show="errors.user" class="text-danger">
                 <small>
-                  <font-awesome-icon icon="exclamation-triangle"></font-awesome-icon>
+                  <font-awesome-icon
+                    icon="exclamation-triangle"
+                  ></font-awesome-icon>
                   {{ errors.user }}
                 </small>
               </div>
             </div>
             <div class="form-group row">
-              <label for="country">
-                <translate>Country</translate>
-              </label>
+              <label for="country"> <translate>Country</translate> </label>
               <select
                 class="form-control form-control-sm"
                 v-on:change="validateCountry"
@@ -45,19 +45,20 @@
                   v-for="country in countries"
                   v-bind:value="country"
                   v-bind:key="country"
-                >{{country}}</option>
+                  >{{ country }}</option
+                >
               </select>
               <div v-show="errors.country" class="text-danger">
                 <small>
-                  <font-awesome-icon icon="exclamation-triangle"></font-awesome-icon>
+                  <font-awesome-icon
+                    icon="exclamation-triangle"
+                  ></font-awesome-icon>
                   {{ errors.country }}
                 </small>
               </div>
             </div>
             <div class="form-group row">
-              <label for="email">
-                <translate>Email address</translate>
-              </label>
+              <label for="email"> <translate>Email address</translate> </label>
               <input
                 type="email"
                 v-on:change="validateEmailaddress"
@@ -65,18 +66,18 @@
                 id="email"
                 aria-describedby="emailHelp"
                 v-model="currentUser.email"
-              >
+              />
               <div v-show="errors.email" class="text-danger">
                 <small>
-                  <font-awesome-icon icon="exclamation-triangle"></font-awesome-icon>
+                  <font-awesome-icon
+                    icon="exclamation-triangle"
+                  ></font-awesome-icon>
                   {{ errors.email }}
                 </small>
               </div>
             </div>
             <div class="form-group row">
-              <label for="role">
-                <translate>Role</translate>
-              </label>
+              <label for="role"> <translate>Role</translate> </label>
               <select
                 class="form-control form-control-sm"
                 v-on:change="validateRole"
@@ -97,7 +98,9 @@
               </select>
               <div v-show="errors.role" class="text-danger">
                 <small>
-                  <font-awesome-icon icon="exclamation-triangle"></font-awesome-icon>
+                  <font-awesome-icon
+                    icon="exclamation-triangle"
+                  ></font-awesome-icon>
                   {{ errors.role }}
                 </small>
               </div>
@@ -120,21 +123,23 @@
             </div>
           </div>
           <div>
-            <button type="submit" :disabled="submitted" class="shadow-sm btn btn-info pull-right">
+            <button
+              type="submit"
+              :disabled="submitted"
+              class="shadow-sm btn btn-info pull-right"
+            >
               <translate>Submit</translate>
             </button>
           </div>
           <div
-            v-if="currentUser.role !='waterway_user' "
+            v-if="currentUser.role != 'waterway_user'"
             class="form-group row d-flex flex-row justify-content-start mailbutton"
           >
             <a @click="sendTestMail" class="btn btn-light">
               <font-awesome-icon icon="paper-plane"></font-awesome-icon>
               <translate>Send testmail</translate>
             </a>
-            <div v-if="mailsent">
-              <translate>Mail was sent</translate>
-            </div>
+            <div v-if="mailsent"><translate>Mail was sent</translate></div>
           </div>
         </form>
       </div>
--- a/client/src/components/admin/usermanagement/Usermanagement.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/admin/usermanagement/Usermanagement.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -5,8 +5,13 @@
       <div class="d-flex flex-row">
         <div :class="userlistStyle">
           <div class="card">
-            <h6 class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center">
-              <font-awesome-icon icon="users-cog" class="mr-2"></font-awesome-icon>
+            <h6
+              class="mb-0 py-2 px-3 border-bottom d-flex text-info align-items-center"
+            >
+              <font-awesome-icon
+                icon="users-cog"
+                class="mr-2"
+              ></font-awesome-icon>
               <translate class="headline">Users</translate>
             </h6>
             <div class="card-body">
@@ -14,38 +19,64 @@
                 <thead>
                   <tr>
                     <th scope="col" @click="sortBy('user')">
-                      <span>Username&nbsp;
-                        <font-awesome-icon v-if="sortCriterion=='user'" icon="angle-down"></font-awesome-icon>
+                      <span
+                        >Username&nbsp;
+                        <font-awesome-icon
+                          v-if="sortCriterion == 'user'"
+                          icon="angle-down"
+                        ></font-awesome-icon>
                       </span>
                     </th>
                     <th scope="col" @click="sortBy('country')">
-                      <span>Country&nbsp;
-                        <font-awesome-icon v-if="sortCriterion=='country'" icon="angle-down"></font-awesome-icon>
+                      <span
+                        >Country&nbsp;
+                        <font-awesome-icon
+                          v-if="sortCriterion == 'country'"
+                          icon="angle-down"
+                        ></font-awesome-icon>
                       </span>
                     </th>
                     <th scope="col" @click="sortBy('email')">
-                      <span>Email&nbsp;
-                        <font-awesome-icon v-if="sortCriterion=='email'" icon="angle-down"></font-awesome-icon>
+                      <span
+                        >Email&nbsp;
+                        <font-awesome-icon
+                          v-if="sortCriterion == 'email'"
+                          icon="angle-down"
+                        ></font-awesome-icon>
                       </span>
                     </th>
                     <th scope="col" @click="sortBy('role')">
-                      <span>Role&nbsp;
-                        <font-awesome-icon v-if="sortCriterion=='role'" icon="angle-down"></font-awesome-icon>
+                      <span
+                        >Role&nbsp;
+                        <font-awesome-icon
+                          v-if="sortCriterion == 'role'"
+                          icon="angle-down"
+                        ></font-awesome-icon>
                       </span>
                     </th>
                     <th scope="col"></th>
                   </tr>
                 </thead>
                 <tbody>
-                  <tr v-for="user in users" :key="user.user" @click="selectUser(user.user)">
+                  <tr
+                    v-for="user in users"
+                    :key="user.user"
+                    @click="selectUser(user.user)"
+                  >
                     <td>{{ user.user }}</td>
                     <td>{{ user.country }}</td>
-                    <td>{{ user.email}}</td>
+                    <td>{{ user.email }}</td>
                     <td>
-                      <font-awesome-icon :icon="roleIcon(user.role)" @click="deleteUser(user.user)"></font-awesome-icon>
+                      <font-awesome-icon
+                        :icon="roleIcon(user.role)"
+                        @click="deleteUser(user.user)"
+                      ></font-awesome-icon>
                     </td>
                     <td>
-                      <font-awesome-icon icon="trash" @click="deleteUser(user.user)"></font-awesome-icon>
+                      <font-awesome-icon
+                        icon="trash"
+                        @click="deleteUser(user.user)"
+                      ></font-awesome-icon>
                     </td>
                   </tr>
                 </tbody>
@@ -59,7 +90,7 @@
               >
                 <font-awesome-icon icon="angle-left"></font-awesome-icon>
               </button>
-              {{this.currentPage}} / {{this.pages}}
+              {{ this.currentPage }} / {{ this.pages }}
               <button
                 @click="nextPage"
                 v-if="this.currentPage !== this.pages"
@@ -69,13 +100,16 @@
               </button>
             </div>
             <div class="mr-3 pb-3">
-              <button @click="addUser " class="btn btn-info pull-right shadow-sm">
+              <button
+                @click="addUser"
+                class="btn btn-info pull-right shadow-sm"
+              >
                 <translate>Add User</translate>
               </button>
             </div>
           </div>
         </div>
-        <Userdetail v-if="isUserDetailsVisible "></Userdetail>
+        <Userdetail v-if="isUserDetailsVisible"></Userdetail>
       </div>
     </div>
   </div>
--- a/client/src/components/map/Identify.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/Identify.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,5 +1,10 @@
 <template>
-  <div :class="['box ui-element rounded bg-white text-nowrap', { expanded: showIdentify }]">
+  <div
+    :class="[
+      'box ui-element rounded bg-white text-nowrap',
+      { expanded: showIdentify }
+    ]"
+  >
     <div style="width: 20rem">
       <h6 class="mb-0 py-2 px-3 border-bottom d-flex align-items-center">
         <font-awesome-icon icon="info" class="mr-2"></font-awesome-icon>
@@ -13,17 +18,30 @@
       <div class="d-flex flex-column features p-3 flex-grow-1 text-left">
         <div v-if="currentMeasurement">
           <b>
-            {{ currentMeasurement.quantity }}
-            ({{ currentMeasurement.unitSymbol }}):
+            {{ currentMeasurement.quantity }} ({{
+              currentMeasurement.unitSymbol
+            }}):
           </b>
-          <br>
+          <br />
           <small>{{ currentMeasurement.value }}</small>
         </div>
         <div v-for="(feature, i) of identifiedFeatures" :key="feature.getId()">
           <div v-if="feature.getId()" :class="{ 'mt-2': i }">
-            <b>{{ feature.getId().replace(/[.][^.]*$/,"") /* cut away everything from the last . to the end */}}:</b>
-            <small v-for="(value, key) in prepareProperties(feature)" :key="key">
-              <div v-if="value">{{key}}:{{value}}</div>
+            <b
+              >{{
+                feature
+                  .getId()
+                  .replace(
+                    /[.][^.]*$/,
+                    ""
+                  ) /* cut away everything from the last . to the end */
+              }}:</b
+            >
+            <small
+              v-for="(value, key) in prepareProperties(feature)"
+              :key="key"
+            >
+              <div v-if="value">{{ key }}:{{ value }}</div>
             </small>
           </div>
         </div>
@@ -35,23 +53,19 @@
         </div>
       </div>
       <div class="versioninfo border-top p-3 text-left">
-        <span v-translate="{license: 'AGPL-3.0-or-later'}">
-          This app uses
-          <i>gemma</i>, which is Free Software under
-          <br>
-          %{ license }
-          without warranty, see docs for details.
+        <span v-translate="{ license: 'AGPL-3.0-or-later' }">
+          This app uses <i>gemma</i>, which is Free Software under <br />
+          %{ license } without warranty, see docs for details.
         </span>
-        <br>
+        <br />
         <a href="https://hg.intevation.de/gemma/file/tip">
           <translate>source-code</translate>
         </a>
-        {{ versionStr }}
-        <br>© via donau. &#x24D4; Intevation.
-        <br>
-        <span v-translate="{name: 'OpenSteetMap'}">Some data ©
-        <a href="https://www.openstreetmap.org/copyright">%{ name }</a>
-        <span >contributors.</span>
+        {{ versionStr }} <br />© via donau. &#x24D4; Intevation. <br />
+        <span v-translate="{ name: 'OpenSteetMap' }"
+          >Some data ©
+          <a href="https://www.openstreetmap.org/copyright">%{ name }</a>
+          <span>contributors.</span>
         </span>
       </div>
     </div>
--- a/client/src/components/map/Pdftool.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/Pdftool.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,8 +1,14 @@
 <template>
-  <div :class="['box ui-element rounded bg-white text-nowrap', { expanded: showPdfTool }]">
+  <div
+    :class="[
+      'box ui-element rounded bg-white text-nowrap',
+      { expanded: showPdfTool }
+    ]"
+  >
     <div style="width: 20rem">
       <h6 class="mb-0 py-2 px-3 border-bottom d-flex align-items-center">
-        <font-awesome-icon icon="file-pdf" class="mr-2"></font-awesome-icon><translate>Generate PDF</translate>
+        <font-awesome-icon icon="file-pdf" class="mr-2"></font-awesome-icon
+        ><translate>Generate PDF</translate>
         <font-awesome-icon
           icon="times"
           class="ml-auto text-muted"
@@ -22,21 +28,27 @@
             value="download"
             v-model="form.downloadType"
             selected
+          />
+          <label for="pdfexport-downloadtype-download" class="ml-1 mr-2"
+            ><translate>Download</translate></label
           >
-          <label for="pdfexport-downloadtype-download" class="ml-1 mr-2"><translate>Download</translate></label>
           <input
             type="radio"
             id="pdfexport-downloadtype-open"
             value="open"
             v-model="form.downloadType"
+          />
+          <label for="pdfexport-downloadtype-open" class="ml-1"
+            ><translate>Open in new window</translate></label
           >
-          <label for="pdfexport-downloadtype-open" class="ml-1"><translate>Open in new window</translate></label>
         </small>
         <button
           @click="download"
           type="button"
           class="btn btn-sm btn-info d-block w-100"
-        ><translate>Generate PDF</translate></button>
+        >
+          <translate>Generate PDF</translate>
+        </button>
       </div>
     </div>
   </div>
--- a/client/src/components/map/Search.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/Search.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -6,7 +6,15 @@
       </span>
     </div>
     <div
-      :class="['searchgroup', {'searchgroup-collapsed': !showSearchbar, big: showContextBox && ['bottlenecks', 'staging'].indexOf(contextBoxContent) !== -1 }]"
+      :class="[
+        'searchgroup',
+        {
+          'searchgroup-collapsed': !showSearchbar,
+          big:
+            showContextBox &&
+            ['bottlenecks', 'staging'].indexOf(contextBoxContent) !== -1
+        }
+      ]"
     >
       <input
         @keyup.enter="takeFirstSearchresult"
@@ -14,22 +22,40 @@
         v-model="searchQuery"
         type="text"
         :class="searchInputStyle"
-      >
+      />
     </div>
     <div
       v-if="showSearchbar && searchResults !== null && !showContextBox"
       class="searchresults border-top ui-element bg-white rounded-bottom d-print-none position-absolute"
     >
-      <div v-for="entry of searchResults" :key="entry.name" class="border-top text-left">
-        <a href="#" @click.prevent="moveToSearchResult(entry)" class="p-2 d-block text-nowrap">
+      <div
+        v-for="entry of searchResults"
+        :key="entry.name"
+        class="border-top text-left"
+      >
+        <a
+          href="#"
+          @click.prevent="moveToSearchResult(entry)"
+          class="p-2 d-block text-nowrap"
+        >
           <font-awesome-icon
             icon="ship"
             v-if="entry.type === 'bottleneck'"
             class="mr-1"
             fixed-width
           />
-          <font-awesome-icon icon="water" v-if="entry.type === 'rhm'" class="mr-1" fixed-width/>
-          <font-awesome-icon icon="city" v-if="entry.type === 'city'" class="mr-1" fixed-width/>
+          <font-awesome-icon
+            icon="water"
+            v-if="entry.type === 'rhm'"
+            class="mr-1"
+            fixed-width
+          />
+          <font-awesome-icon
+            icon="city"
+            v-if="entry.type === 'city'"
+            class="mr-1"
+            fixed-width
+          />
           {{ entry.name }}
         </a>
       </div>
--- a/client/src/components/map/Zoom.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/Zoom.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -3,7 +3,10 @@
     class="d-flex buttoncontainer shadow-xs mb-3 position-absolute"
     :style="showSplitscreen ? 'margin-bottom: 51vh !important' : ''"
   >
-    <button class="zoomButton border-0 bg-white rounded-left ui-element" @click="zoomOut">
+    <button
+      class="zoomButton border-0 bg-white rounded-left ui-element"
+      @click="zoomOut"
+    >
       <font-awesome-icon icon="minus"></font-awesome-icon>
     </button>
     <button
--- a/client/src/components/map/contextbox/Bottlenecks.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/contextbox/Bottlenecks.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -9,21 +9,32 @@
         <a href="#" @click="sortBy('name')" class="sort-link">
           <translate>Name</translate>
         </a>
-        <font-awesome-icon :icon="sortIcon" class="ml-1" v-if="sortColumn === 'name'"></font-awesome-icon>
+        <font-awesome-icon
+          :icon="sortIcon"
+          class="ml-1"
+          v-if="sortColumn === 'name'"
+        ></font-awesome-icon>
       </div>
       <div class="col-2">
         <a href="#" @click="sortBy('latestMeasurement')" class="sort-link">
-          <translate>Latest</translate>
-          <br>
+          <translate>Latest</translate> <br />
           <translate>Measurement</translate>
         </a>
-        <font-awesome-icon :icon="sortIcon" class="ml-1" v-if="sortColumn === 'latestMeasurement'"></font-awesome-icon>
+        <font-awesome-icon
+          :icon="sortIcon"
+          class="ml-1"
+          v-if="sortColumn === 'latestMeasurement'"
+        ></font-awesome-icon>
       </div>
       <div class="col-3">
         <a href="#" @click="sortBy('chainage')" class="sort-link">
           <translate>Chainage</translate>
         </a>
-        <font-awesome-icon :icon="sortIcon" class="ml-1" v-if="sortColumn === 'chainage'"></font-awesome-icon>
+        <font-awesome-icon
+          :icon="sortIcon"
+          class="ml-1"
+          v-if="sortColumn === 'chainage'"
+        ></font-awesome-icon>
       </div>
       <div class="col-2"></div>
     </div>
@@ -38,12 +49,21 @@
         class="border-top row bottleneck-row mx-0"
       >
         <div class="col-5 py-2 text-left">
-          <a href="#" @click="selectBottleneck(bottleneck)">{{ bottleneck.properties.name }}</a>
+          <a href="#" @click="selectBottleneck(bottleneck)">{{
+            bottleneck.properties.name
+          }}</a>
+        </div>
+        <div class="col-2 py-2">
+          {{ displayCurrentSurvey(bottleneck.properties.current) }}
         </div>
-        <div class="col-2 py-2">{{ displayCurrentSurvey(bottleneck.properties.current) }}</div>
-        <div
-          class="col-3 py-2"
-        >{{ displayCurrentChainage(bottleneck.properties.from, bottleneck.properties.from) }}</div>
+        <div class="col-3 py-2">
+          {{
+            displayCurrentChainage(
+              bottleneck.properties.from,
+              bottleneck.properties.from
+            )
+          }}
+        </div>
         <div class="col-2 pr-0 text-right">
           <button
             type="button"
@@ -60,17 +80,27 @@
             <font-awesome-icon
               icon="angle-down"
               fixed-width
-              v-if="loading !== bottleneck.properties.name && openBottleneck !== bottleneck.properties.name"
+              v-if="
+                loading !== bottleneck.properties.name &&
+                  openBottleneck !== bottleneck.properties.name
+              "
             ></font-awesome-icon>
             <font-awesome-icon
               icon="angle-up"
               fixed-width
-              v-if="loading !== bottleneck.properties.name && openBottleneck === bottleneck.properties.name"
+              v-if="
+                loading !== bottleneck.properties.name &&
+                  openBottleneck === bottleneck.properties.name
+              "
             ></font-awesome-icon>
           </button>
         </div>
         <div
-          :class="['col-12 p-0', 'surveys', {open: openBottleneck === bottleneck.properties.name}]"
+          :class="[
+            'col-12 p-0',
+            'surveys',
+            { open: openBottleneck === bottleneck.properties.name }
+          ]"
         >
           <a
             href="#"
@@ -78,7 +108,8 @@
             v-for="(survey, index) in openBottleneckSurveys"
             :key="index"
             @click="selectSurvey(survey, bottleneck)"
-          >{{ survey.date_info }}</a>
+            >{{ survey.date_info }}</a
+          >
         </div>
       </div>
     </div>
--- a/client/src/components/map/contextbox/Staging.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/contextbox/Staging.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,27 +1,20 @@
 <template>
   <div class="w-90">
     <h6 class="mb-0 py-2 px-3 border-bottom d-flex align-items-center">
-      <font-awesome-icon icon="clipboard-check" class="mr-2"></font-awesome-icon>
+      <font-awesome-icon
+        icon="clipboard-check"
+        class="mr-2"
+      ></font-awesome-icon>
       <translate>Staging Area</translate>
     </h6>
     <table class="table mb-0">
       <thead>
         <tr>
-          <th>
-            <translate>Name</translate>
-          </th>
-          <th>
-            <translate>Type</translate>
-          </th>
-          <th>
-            <translate>Date</translate>
-          </th>
-          <th>
-            <translate>Imported</translate>
-          </th>
-          <th>
-            <translate>Username</translate>
-          </th>
+          <th><translate>Name</translate></th>
+          <th><translate>Type</translate></th>
+          <th><translate>Date</translate></th>
+          <th><translate>Imported</translate></th>
+          <th><translate>Username</translate></th>
           <th>&nbsp;</th>
           <th>&nbsp;</th>
         </tr>
@@ -29,7 +22,9 @@
       <tbody v-if="filteredData.length">
         <tr v-for="data in filteredData" :key="data.id">
           <td>
-            <a @click="zoomTo(data.id)" href="#">{{ data.summary.bottleneck }}</a>
+            <a @click="zoomTo(data.id)" href="#">{{
+              data.summary.bottleneck
+            }}</a>
           </td>
           <td>{{ data.kind.toUpperCase() }}</td>
           <td>{{ data.summary.date }}</td>
@@ -38,7 +33,12 @@
           <td>
             <button
               @click="toggleApproval(data.id, $options.STATES.APPROVED)"
-              :class="{btn:true, 'btn-sm':true, 'btn-outline-success':needsApproval(data) || isRejected(data), 'btn-success':isApproved(data)}"
+              :class="{
+                btn: true,
+                'btn-sm': true,
+                'btn-outline-success': needsApproval(data) || isRejected(data),
+                'btn-success': isApproved(data)
+              }"
             >
               <font-awesome-icon icon="check"></font-awesome-icon>
             </button>
@@ -46,7 +46,12 @@
           <td>
             <button
               @click="toggleApproval(data.id, $options.STATES.REJECTED)"
-              :class="{btn:true,  'btn-sm':true, 'btn-outline-danger':needsApproval(data) || isApproved(data), 'btn-danger':isRejected(data)}"
+              :class="{
+                btn: true,
+                'btn-sm': true,
+                'btn-outline-danger': needsApproval(data) || isApproved(data),
+                'btn-danger': isRejected(data)
+              }"
             >
               <font-awesome-icon icon="times"></font-awesome-icon>
             </button>
--- a/client/src/components/map/fairway/Fairwayprofile.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/fairway/Fairwayprofile.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,30 +1,32 @@
 <template>
-  <div :class="['position-relative', {show: showSplitscreen}]">
+  <div :class="['position-relative', { show: showSplitscreen }]">
     <button
       class="rounded-bottom bg-white border-0 position-absolute splitscreen-toggle"
       @click="$store.commit('application/showSplitscreen', false)"
       v-if="showSplitscreen"
     >
-      <font-awesome-icon icon="angle-down"/>
+      <font-awesome-icon icon="angle-down" />
     </button>
     <button
       class="rounded-bottom bg-white border-0 position-absolute clear-selection"
-      @click="$store.dispatch('fairwayprofile/clearSelection');"
+      @click="$store.dispatch('fairwayprofile/clearSelection')"
       v-if="showSplitscreen"
     >
-      <font-awesome-icon icon="times"/>
+      <font-awesome-icon icon="times" />
     </button>
     <div class="profile bg-white position-relative d-flex flex-column">
       <h5
         class="headline border-bottom mb-0 py-2"
         v-if="selectedBottleneck && selectedSurvey"
-      >{{ selectedBottleneck }} ({{ selectedSurvey.date_info }})</h5>
+      >
+        {{ selectedBottleneck }} ({{ selectedSurvey.date_info }})
+      </h5>
       <div class="d-flex flex-fill">
         <div
           class="loading d-flex justify-content-center align-items-center"
           v-if="surveysLoading || profileLoading"
         >
-          <font-awesome-icon icon="spinner" spin/>
+          <font-awesome-icon icon="spinner" spin />
         </div>
         <div class="fairwayprofile m-3 mt-0 bg-white flex-grow-1"></div>
       </div>
--- a/client/src/components/map/fairway/Infobar.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/fairway/Infobar.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -5,8 +5,7 @@
   >
     <div class="d-flex flex-row justify-content-between h-100">
       <h6 class="my-auto px-2">
-        {{ selectedBottleneck }}
-        ({{ selectedSurvey.date_info }})
+        {{ selectedBottleneck }} ({{ selectedSurvey.date_info }})
       </h6>
       <span
         class="p-2 border-left d-flex align-items-center"
--- a/client/src/components/map/fairway/Profiles.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/fairway/Profiles.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,5 +1,10 @@
 <template>
-  <div :class="['box ui-element rounded bg-white text-nowrap', { expanded: showProfiles }]">
+  <div
+    :class="[
+      'box ui-element rounded bg-white text-nowrap',
+      { expanded: showProfiles }
+    ]"
+  >
     <div style="width: 20rem">
       <h6 class="mb-0 py-2 px-3 border-bottom d-flex align-items-center">
         <font-awesome-icon icon="chart-area" class="mr-2"></font-awesome-icon>
@@ -10,12 +15,14 @@
           @click="$store.commit('application/showProfiles', false)"
         ></font-awesome-icon>
       </h6>
-      <div class="d-flex flex-column p-3 flex-grow-1 text-left position-relative">
+      <div
+        class="d-flex flex-column p-3 flex-grow-1 text-left position-relative"
+      >
         <div
           class="loading d-flex justify-content-center align-items-center"
           v-if="surveysLoading || profileLoading"
         >
-          <font-awesome-icon icon="spinner" spin/>
+          <font-awesome-icon icon="spinner" spin />
         </div>
         <select
           @click="moveToBottleneck"
@@ -29,7 +36,8 @@
             v-for="bn in bottlenecks"
             :key="bn.properties.name"
             :value="bn.properties.name"
-          >{{ bn.properties.name }}</option>
+            >{{ bn.properties.name }}</option
+          >
         </select>
         <div v-if="selectedBottleneck">
           <div class="d-flex mt-2">
@@ -37,60 +45,79 @@
               <small class="text-muted">
                 <translate>Sounding Result</translate>:
               </small>
-              <select v-model="selectedSurvey" class="form-control form-control-sm">
+              <select
+                v-model="selectedSurvey"
+                class="form-control form-control-sm"
+              >
                 <option
                   v-for="survey in surveys"
                   :key="survey.date_info"
                   :value="survey"
-                >{{ survey.date_info }}</option>
+                  >{{ survey.date_info }}</option
+                >
               </select>
             </div>
-            <div class="flex-fill ml-3" v-if="selectedSurvey && surveys.length > 1">
+            <div
+              class="flex-fill ml-3"
+              v-if="selectedSurvey && surveys.length > 1"
+            >
               <small class="text-muted mt-1">
                 <translate>Compare with</translate>:
               </small>
-              <select v-model="additionalSurvey" class="form-control form-control-sm">
+              <select
+                v-model="additionalSurvey"
+                class="form-control form-control-sm"
+              >
                 <option :value="null">None</option>
                 <option
                   v-for="survey in additionalSurveys"
                   :key="survey.date_info"
                   :value="survey"
-                >{{ survey.date_info }}</option>
+                  >{{ survey.date_info }}</option
+                >
               </select>
             </div>
           </div>
-          <hr class="w-100 mb-0">
+          <hr class="w-100 mb-0" />
           <small class="text-muted d-block mt-2">
             <translate>Saved cross profiles</translate>:
           </small>
           <div class="d-flex">
             <select
-              :class="['form-control form-control-sm flex-fill', { 'rounded-left-only': selectedCut }]"
+              :class="[
+                'form-control form-control-sm flex-fill',
+                { 'rounded-left-only': selectedCut }
+              ]"
               v-model="selectedCut"
             >
               <option></option>
-              <option v-for="(cut, index) in previousCuts" :value="cut" :key="index">{{ cut.label }}</option>
+              <option
+                v-for="(cut, index) in previousCuts"
+                :value="cut"
+                :key="index"
+                >{{ cut.label }}</option
+              >
             </select>
             <button
               class="btn btn-sm btn-danger input-button-right"
               @click="confirmDeleteSelectedCut = true"
               v-if="selectedCut && !confirmDeleteSelectedCut"
             >
-              <font-awesome-icon icon="trash"/>
+              <font-awesome-icon icon="trash" />
             </button>
             <button
               class="btn btn-sm btn-info rounded-0"
               @click="confirmDeleteSelectedCut = false"
               v-if="selectedCut && confirmDeleteSelectedCut"
             >
-              <font-awesome-icon icon="times"/>
+              <font-awesome-icon icon="times" />
             </button>
             <button
               class="btn btn-sm btn-danger input-button-right"
               @click="deleteSelectedCut"
               v-if="selectedCut && confirmDeleteSelectedCut"
             >
-              <font-awesome-icon icon="check"/>
+              <font-awesome-icon icon="check" />
             </button>
           </div>
           <small class="text-muted d-block mt-2">
@@ -101,31 +128,25 @@
               class="form-control form-control-sm pr-5"
               placeholder="Lat,Lon,Lat,Lon"
               v-model="coordinatesInput"
-            >
+            />
             <button
               class="btn btn-sm btn-info position-absolute input-button-right"
               @click="applyManualCoordinates"
               style="top: 0; right: 0;"
               v-if="coordinatesInputIsValid"
             >
-              <font-awesome-icon icon="check"/>
+              <font-awesome-icon icon="check" />
             </button>
           </div>
           <small class="d-flex text-left mt-2" v-if="startPoint && endPoint">
             <div class="text-nowrap mr-3">
-              <b>
-                <translate>Start</translate>:
-              </b>
-              <br>
-              Lat: {{ startPoint[1] }}
-              <br>
+              <b> <translate>Start</translate>: </b> <br />
+              Lat: {{ startPoint[1] }} <br />
               Lon: {{ startPoint[0] }}
             </div>
             <div class="text-nowrap">
-              <b>End:</b>
-              <br>
-              Lat: {{ endPoint[1] }}
-              <br>
+              <b>End:</b> <br />
+              Lat: {{ endPoint[1] }} <br />
               Lon: {{ endPoint[0] }}
             </div>
             <button
@@ -133,19 +154,29 @@
               v-clipboard:success="onCopyCoordinates"
               class="btn btn-info btn-sm ml-auto mt-auto"
             >
-              <font-awesome-icon icon="copy"/>
+              <font-awesome-icon icon="copy" />
             </button>
           </small>
           <div class="d-flex mt-3">
-            <div class="pr-3 w-50" v-if="startPoint && endPoint && !selectedCut">
-              <button class="btn btn-info btn-sm w-100" @click="showLabelInput = !showLabelInput">
-                <font-awesome-icon :icon="showLabelInput ? 'times' : 'check'"/>
+            <div
+              class="pr-3 w-50"
+              v-if="startPoint && endPoint && !selectedCut"
+            >
+              <button
+                class="btn btn-info btn-sm w-100"
+                @click="showLabelInput = !showLabelInput"
+              >
+                <font-awesome-icon :icon="showLabelInput ? 'times' : 'check'" />
                 {{ showLabelInput ? "Cancel" : "Save" }}
               </button>
             </div>
-            <div :class="startPoint && endPoint && !selectedCut ? 'w-50' : 'w-100'">
+            <div
+              :class="startPoint && endPoint && !selectedCut ? 'w-50' : 'w-100'"
+            >
               <button class="btn btn-info btn-sm w-100" @click="toggleCutTool">
-                <font-awesome-icon :icon="cutTool && cutTool.getActive() ? 'times' : 'plus'"></font-awesome-icon>
+                <font-awesome-icon
+                  :icon="cutTool && cutTool.getActive() ? 'times' : 'plus'"
+                ></font-awesome-icon>
                 {{ cutTool && cutTool.getActive() ? "Cancel" : "New" }}
               </button>
             </div>
@@ -155,14 +186,17 @@
               <translate>Enter label for cross profile</translate>:
             </small>
             <div class="position-relative">
-              <input class="form-control form-control-sm pr-5" v-model="cutLabel">
+              <input
+                class="form-control form-control-sm pr-5"
+                v-model="cutLabel"
+              />
               <button
                 class="btn btn-sm btn-info position-absolute input-button-right"
                 @click="saveCut"
                 v-if="cutLabel"
                 style="top: 0; right: 0;"
               >
-                <font-awesome-icon icon="check"/>
+                <font-awesome-icon icon="check" />
               </button>
             </div>
           </div>
--- a/client/src/components/map/layers/Layers.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/layers/Layers.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,8 +1,14 @@
 <template>
-  <div :class="['box ui-element rounded bg-white text-nowrap', { expanded: showLayers }]">
+  <div
+    :class="[
+      'box ui-element rounded bg-white text-nowrap',
+      { expanded: showLayers }
+    ]"
+  >
     <div style="width: 20rem">
       <h6 class="mb-0 py-2 px-3 border-bottom d-flex align-items-center">
-        <font-awesome-icon icon="layer-group" class="mr-2"></font-awesome-icon><translate>Layers</translate>
+        <font-awesome-icon icon="layer-group" class="mr-2"></font-awesome-icon
+        ><translate>Layers</translate>
         <font-awesome-icon
           icon="times"
           class="ml-auto text-muted"
--- a/client/src/components/map/layers/Layerselect.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/layers/Layerselect.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -7,12 +7,17 @@
         :id="layername"
         type="checkbox"
         :checked="isVisible"
-      >
-      <LegendElement :layername="layername" :layerindex="layerindex"></LegendElement>
-      <label class="layername form-check-label" @click="visibilityToggled">{{layername}}</label>
+      />
+      <LegendElement
+        :layername="layername"
+        :layerindex="layerindex"
+      ></LegendElement>
+      <label class="layername form-check-label" @click="visibilityToggled">{{
+        layername
+      }}</label>
     </div>
-    <div v-if="isVisible && (layername == 'Bottleneck isolines')">
-      <img class="rounded my-1 d-block" :src="isolinesLegendImgUrl">
+    <div v-if="isVisible && layername == 'Bottleneck isolines'">
+      <img class="rounded my-1 d-block" :src="isolinesLegendImgUrl" />
     </div>
   </div>
 </template>
@@ -26,7 +31,6 @@
 }
 </style>
 
-
 <script>
 /* This is Free Software under GNU Affero General Public License v >= 3.0
  * without warranty, see README.md and license for details.
--- a/client/src/components/map/toolbar/Identify.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/toolbar/Identify.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,10 +1,24 @@
 <template>
-    <div @click="$store.commit('application/showIdentify', !showIdentify)" class="toolbar-button">
-        <font-awesome-icon icon="info" :class="{'text-info': showIdentify}"></font-awesome-icon>
-        <span :class="['indicator', { show: !showIdentify && (identifiedFeatures.length || currentMeasurement) }]">
-          {{ badgeCount }}
-        </span>
-    </div>
+  <div
+    @click="$store.commit('application/showIdentify', !showIdentify)"
+    class="toolbar-button"
+  >
+    <font-awesome-icon
+      icon="info"
+      :class="{ 'text-info': showIdentify }"
+    ></font-awesome-icon>
+    <span
+      :class="[
+        'indicator',
+        {
+          show:
+            !showIdentify && (identifiedFeatures.length || currentMeasurement)
+        }
+      ]"
+    >
+      {{ badgeCount }}
+    </span>
+  </div>
 </template>
 
 <script>
--- a/client/src/components/map/toolbar/Layers.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/toolbar/Layers.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,7 +1,13 @@
 <template>
-    <div @click="$store.commit('application/showLayers', !showLayers)" class="toolbar-button">
-        <font-awesome-icon icon="layer-group" :class="{'text-info': showLayers}"></font-awesome-icon>
-    </div>
+  <div
+    @click="$store.commit('application/showLayers', !showLayers)"
+    class="toolbar-button"
+  >
+    <font-awesome-icon
+      icon="layer-group"
+      :class="{ 'text-info': showLayers }"
+    ></font-awesome-icon>
+  </div>
 </template>
 
 <script>
--- a/client/src/components/map/toolbar/Linetool.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/toolbar/Linetool.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,7 +1,10 @@
 <template>
-    <div @click="toggleLineTool" class="toolbar-button">
-        <font-awesome-icon icon="ruler" :class="{'text-info': lineTool && lineTool.getActive()}"></font-awesome-icon>
-    </div>
+  <div @click="toggleLineTool" class="toolbar-button">
+    <font-awesome-icon
+      icon="ruler"
+      :class="{ 'text-info': lineTool && lineTool.getActive() }"
+    ></font-awesome-icon>
+  </div>
 </template>
 
 <script>
--- a/client/src/components/map/toolbar/Pdftool.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/toolbar/Pdftool.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,7 +1,13 @@
 <template>
-    <div @click="$store.commit('application/showPdfTool', !showPdfTool)" class="toolbar-button">
-        <font-awesome-icon icon="file-pdf" :class="{'text-info': showPdfTool}"></font-awesome-icon>
-    </div>
+  <div
+    @click="$store.commit('application/showPdfTool', !showPdfTool)"
+    class="toolbar-button"
+  >
+    <font-awesome-icon
+      icon="file-pdf"
+      :class="{ 'text-info': showPdfTool }"
+    ></font-awesome-icon>
+  </div>
 </template>
 
 <script>
--- a/client/src/components/map/toolbar/Polygontool.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/toolbar/Polygontool.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,7 +1,10 @@
 <template>
-    <div @click="togglePolygonTool" class="toolbar-button">
-        <font-awesome-icon icon="draw-polygon" :class="{'text-info': polygonTool && polygonTool.getActive()}"></font-awesome-icon>
-    </div>
+  <div @click="togglePolygonTool" class="toolbar-button">
+    <font-awesome-icon
+      icon="draw-polygon"
+      :class="{ 'text-info': polygonTool && polygonTool.getActive() }"
+    ></font-awesome-icon>
+  </div>
 </template>
 
 <script>
--- a/client/src/components/map/toolbar/Profiles.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/toolbar/Profiles.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,7 +1,13 @@
 <template>
-    <div @click="$store.commit('application/showProfiles', !showProfiles)" class="toolbar-button">
-        <font-awesome-icon icon="chart-area" :class="{ 'text-info': showProfiles }"></font-awesome-icon>
-    </div>
+  <div
+    @click="$store.commit('application/showProfiles', !showProfiles)"
+    class="toolbar-button"
+  >
+    <font-awesome-icon
+      icon="chart-area"
+      :class="{ 'text-info': showProfiles }"
+    ></font-awesome-icon>
+  </div>
 </template>
 
 <script>
--- a/client/src/components/map/toolbar/Toolbar.vue	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/components/map/toolbar/Toolbar.vue	Tue Dec 04 10:02:31 2018 +0100
@@ -1,6 +1,11 @@
 <template>
   <div class="ml-2">
-    <div :class="'rounded-top toolbar toolbar-' + (expandToolbar ? 'expanded' : 'collapsed')">
+    <div
+      :class="
+        'rounded-top toolbar toolbar-' +
+          (expandToolbar ? 'expanded' : 'collapsed')
+      "
+    >
       <Identify></Identify>
       <Layers></Layers>
       <Profiles></Profiles>
@@ -12,7 +17,9 @@
       @click="$store.commit('application/expandToolbar', !expandToolbar)"
       class="toolbar-button toolbar-toggle rounded-bottom bg-info text-white"
     >
-      <font-awesome-icon :icon="expandToolbar ? 'angle-up' : 'angle-down'"></font-awesome-icon>
+      <font-awesome-icon
+        :icon="expandToolbar ? 'angle-up' : 'angle-down'"
+      ></font-awesome-icon>
     </div>
   </div>
 </template>
--- a/client/src/store/bottlenecks.js	Tue Dec 04 09:56:11 2018 +0100
+++ b/client/src/store/bottlenecks.js	Tue Dec 04 10:02:31 2018 +0100
@@ -100,8 +100,8 @@
           }
         })
           .then(response => {
-            const surveys = response.data.surveys.sort(
-              (a, b) => (a.date_info < b.date_info ? 1 : -1)
+            const surveys = response.data.surveys.sort((a, b) =>
+              a.date_info < b.date_info ? 1 : -1
             );
             commit("selectedSurvey", surveys[0]);
             commit("setSurveys", surveys);