Mercurial > gemma
changeset 2224:5176ea7fbc53 pdf-export
merge default in pdf-branch
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Tue, 12 Feb 2019 11:11:32 +0100 |
parents | 85142493096c (current diff) 35c56ace42b9 (diff) |
children | bc1780dd7cd1 |
files | client/src/assets/application.scss client/src/components/Pdftool.vue client/src/main.js client/src/store/map.js |
diffstat | 66 files changed, 3302 insertions(+), 1455 deletions(-) [+] |
line wrap: on
line diff
--- a/client/package.json Tue Feb 12 10:53:01 2019 +0100 +++ b/client/package.json Tue Feb 12 11:11:32 2019 +0100 @@ -35,6 +35,7 @@ "glob-all": "^3.1.0", "jspdf": "^1.5.3", "locale2": "^2.2.0", + "lodash.debounce": "^4.0.8", "ol": "^5.3.0", "path": "^0.12.7", "prettier": "^1.15.3",
--- a/client/src/assets/application.scss Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/assets/application.scss Tue Feb 12 11:11:32 2019 +0100 @@ -137,3 +137,7 @@ opacity: 0; transform: translateY(20px); } + +.pointer { + cursor: pointer; +}
--- a/client/src/components/Bottlenecks.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/Bottlenecks.vue Tue Feb 12 11:11:32 2019 +0100 @@ -71,12 +71,14 @@ v-if="bottleneck.properties.current" > <font-awesome-icon + class="pointer" icon="spinner" fixed-width spin v-if="loading === bottleneck.properties.name" ></font-awesome-icon> <font-awesome-icon + class="pointer" icon="angle-down" fixed-width v-if=" @@ -85,6 +87,7 @@ " ></font-awesome-icon> <font-awesome-icon + class="pointer" icon="angle-up" fixed-width v-if="
--- a/client/src/components/Contextbox.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/Contextbox.vue Tue Feb 12 11:11:32 2019 +0100 @@ -1,7 +1,7 @@ <template> <div :class="style"> <div @click="close" class="ui-element close-contextbox text-muted"> - <font-awesome-icon icon="times"></font-awesome-icon> + <font-awesome-icon icon="times" class="pointer"></font-awesome-icon> </div> <Bottlenecks v-if="contextBoxContent === 'bottlenecks'"></Bottlenecks> <Staging v-if="contextBoxContent === 'staging'"></Staging>
--- a/client/src/components/ImportApprovedGaugeMeasurement.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/ImportApprovedGaugeMeasurement.vue Tue Feb 12 11:11:32 2019 +0100 @@ -22,7 +22,7 @@ class="custom-file-input" id="uploadFile" /> - <label class="custom-file-label" for="uploadFile"> + <label class="pointer custom-file-label" for="uploadFile"> {{ uploadLabel }} </label> </div>
--- a/client/src/components/ImportSoundingresults.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/ImportSoundingresults.vue Tue Feb 12 11:11:32 2019 +0100 @@ -104,7 +104,7 @@ class="custom-file-input" id="uploadFile" /> - <label class="custom-file-label" for="uploadFile"> + <label class="pointer custom-file-label" for="uploadFile"> {{ uploadLabel }} </label> </div>
--- a/client/src/components/ImportStretches.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/ImportStretches.vue Tue Feb 12 11:11:32 2019 +0100 @@ -41,6 +41,7 @@ <td>{{ stretch.properties["source_organization"] }}</td> <td> <font-awesome-icon + class="pointer" @click="editStretch(index)" icon="pencil-alt" fixed-width @@ -48,6 +49,7 @@ </td> <td> <font-awesome-icon + class="pointer" @click="deleteStretch(index)" icon="trash" fixed-width @@ -481,9 +483,6 @@ message: `${status}: ${data.message || data}` }); }); - }, - sanitizeRHM(rhm) { - return rhm.replace(/,|\(|\)/g, ""); } }, watch: { @@ -493,7 +492,7 @@ }; const distanceMark = this.identifiedFeatures.filter(filterDistanceMarks); if (distanceMark.length > 0) { - const value = this.sanitizeRHM(distanceMark[0]["id_"].split(".")[1]); + const value = distanceMark[0].getProperties()["location"]; this.startrhm = this.pipetteStart ? value : this.startrhm; this.endrhm = this.pipetteEnd ? value : this.endrhm; this.pipetteStart = false;
--- a/client/src/components/ImportWaterwayProfiles.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/ImportWaterwayProfiles.vue Tue Feb 12 11:11:32 2019 +0100 @@ -79,7 +79,7 @@ class="custom-file-input" id="uploadFile" /> - <label class="custom-file-label" for="uploadFile"> + <label class="pointer custom-file-label" for="uploadFile"> {{ uploadLabel }} </label> </div>
--- a/client/src/components/Maplayer.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/Maplayer.vue Tue Feb 12 11:11:32 2019 +0100 @@ -38,6 +38,7 @@ import { WFS, GeoJSON } from "ol/format.js"; import { equalTo } from "ol/format/filter.js"; import { Stroke, Style, Fill } from "ol/style.js"; +import { displayError } from "@/lib/errors.js"; /* for the sake of debugging */ /* eslint-disable no-console */ @@ -179,39 +180,73 @@ }); this.$store.dispatch("map/openLayersMap", map); + var currentUser = this.$store.state.user.user; + HTTP.get("/users/" + currentUser, { + headers: { + "X-Gemma-Auth": localStorage.getItem("token"), + "Content-type": "text/xml; charset=UTF-8" + } + }) + .then(response => { + this.$store.commit("map/moveToBoundingBox", { + boundingBox: [ + response.data.extent.x1, + response.data.extent.y1, + response.data.extent.x2, + response.data.extent.y2 + ], + zoom: 17, + preventZoomOut: true + }); + }) + .catch(error => { + const { status, data } = error.response; + displayError({ + title: this.$gettext("Backend Error"), + message: `${status}: ${data.message || data}` + }); + }); + // TODO make display of layers more dynamic, e.g. from a list // load different fairway dimension layers (level of service) ["1", "2", "3"].forEach(los => { - // loading the full WFS layer, by not setting the loader function - // and without bboxStrategy - var featureRequest = new WFS().writeGetFeature({ - srsName: "EPSG:3857", - featureNS: "gemma", - featurePrefix: "gemma", - featureTypes: ["fairway_dimensions"], - outputFormat: "application/json", - filter: equalTo("level_of_service", los) - }); + // loading the full WFS layer without bboxStrategy + var source = this.getVSourceByName("Fairway Dimensions LOS " + los); + /*eslint-disable no-unused-vars */ + var loader = function(extent, resolution, projection) { + var featureRequest = new WFS().writeGetFeature({ + srsName: "EPSG:3857", + featureNS: "gemma", + featurePrefix: "gemma", + featureTypes: ["fairway_dimensions"], + outputFormat: "application/json", + filter: equalTo("level_of_service", los) + }); - // NOTE: loading the full fairway_dimensions makes sure - // that all are available for the intersection with the profile - HTTP.post( - "/internal/wfs", - new XMLSerializer().serializeToString(featureRequest), - { - headers: { - "X-Gemma-Auth": localStorage.getItem("token"), - "Content-type": "text/xml; charset=UTF-8" + featureRequest["outputFormat"] = "application/json"; + // NOTE: loading the full fairway_dimensions makes sure + // that all are available for the intersection with the profile + HTTP.post( + "/internal/wfs", + new XMLSerializer().serializeToString(featureRequest), + { + headers: { + "X-Gemma-Auth": localStorage.getItem("token"), + "Content-type": "text/xml; charset=UTF-8" + } } - } - ).then(response => { - this.getVSourceByName("Fairway Dimensions LOS " + los).addFeatures( - new GeoJSON().readFeatures(JSON.stringify(response.data)) - ); - // would scale to the extend of all resulting features - // this.openLayersMap.getView().fit(vectorSrc.getExtent()); - }); + ).then(response => { + source.addFeatures( + new GeoJSON().readFeatures(JSON.stringify(response.data)) + ); + // would scale to the extend of all resulting features + // this.openLayersMap.getView().fit(vectorSrc.getExtent()); + }); + }; + + layer = this.getLayerByName("Fairway Dimensions LOS " + los); + layer.data.getSource().setLoader(loader); }); // load following layers with bboxStrategy (using our request builder) @@ -245,6 +280,20 @@ ) ); + layer = this.getLayerByName("Waterway Profiles"); + layer.data.getSource().setLoader( + this.buildVectorLoader( + { + featureNS: "gemma", + featurePrefix: "gemma", + featureTypes: ["waterway_profiles"], + geometryName: "geom" + }, + "/internal/wfs", + layer.data.getSource() + ) + ); + layer = this.getLayerByName("Distance marks"); layer.data.getSource().setLoader( this.buildVectorLoader(
--- a/client/src/components/Pdftool.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/Pdftool.vue Tue Feb 12 11:11:32 2019 +0100 @@ -11,7 +11,7 @@ <translate>Generate PDF</translate> <font-awesome-icon icon="times" - class="ml-auto text-muted" + class="ml-auto text-muted pointer" @click="$store.commit('application/showPdfTool', false)" ></font-awesome-icon> </h6> @@ -42,15 +42,9 @@ v-model="form.resolution" class="form-control form-control-sm mb-2 d-block w-100" > - <option value="80"> - <translate>low resolution (80 dpi)</translate> - </option> - <option value="120"> - <translate>medium resolution (120 dpi)</translate> - </option> - <option value="200"> - <translate>high resolution (200 dpi)</translate> - </option> + <option value="80">80 dpi</option> + <option value="120">120 dpi</option> + <option value="200">200 dpi</option> </select> </div> <div class="flex-fill ml-2">
--- a/client/src/components/Zoom.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/Zoom.vue Tue Feb 12 11:11:32 2019 +0100 @@ -10,6 +10,12 @@ <font-awesome-icon icon="minus"></font-awesome-icon> </button> <button + class="zoomButton border-0 bg-white ui-element border-right" + @click="refreshMap" + > + <font-awesome-icon icon="redo"></font-awesome-icon> + </button> + <button class="zoomButton border-0 bg-white rounded-right ui-element border-right" @click="zoomIn" > @@ -49,6 +55,7 @@ * Thomas Junk <thomas.junk@intevation.de> */ import { mapState } from "vuex"; +import { Vector as VectorLayer } from "ol/layer.js"; export default { name: "zoom", @@ -70,6 +77,17 @@ }, zoomOut() { this.zoomLevel = this.zoomLevel - 1; + }, + refreshMap() { + let layers = this.openLayersMap.getLayers().getArray(); + for (let i = 0; i < layers.length; i++) { + let layer = layers[i]; + if (layer instanceof VectorLayer) { + console.log(layer.get("source").loader_); + layer.getSource().clear(true); + layer.getSource().refresh({ force: true }); + } + } } } };
--- a/client/src/components/fairway/Fairwayprofile.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/fairway/Fairwayprofile.vue Tue Feb 12 11:11:32 2019 +0100 @@ -12,7 +12,7 @@ @click="$store.dispatch('fairwayprofile/clearSelection')" v-if="showSplitscreen" > - <font-awesome-icon icon="times" /> + <font-awesome-icon icon="times" class="pointer" /> </button> <div class="profile bg-white position-relative d-flex flex-column"> <h5
--- a/client/src/components/fairway/Infobar.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/fairway/Infobar.vue Tue Feb 12 11:11:32 2019 +0100 @@ -11,13 +11,13 @@ class="p-2 border-left d-flex align-items-center" @click="$store.commit('application/showSplitscreen', true)" > - <font-awesome-icon icon="angle-up"></font-awesome-icon> + <font-awesome-icon class="pointer" icon="angle-up"></font-awesome-icon> </span> <span class="p-2 border-left d-flex align-items-center" @click="$store.dispatch('fairwayprofile/clearSelection')" > - <font-awesome-icon icon="times"></font-awesome-icon> + <font-awesome-icon icon="times" class="pointer"></font-awesome-icon> </span> </div> </div>
--- a/client/src/components/fairway/Profiles.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/fairway/Profiles.vue Tue Feb 12 11:11:32 2019 +0100 @@ -11,7 +11,7 @@ <translate>Profiles</translate> <font-awesome-icon icon="times" - class="ml-auto text-muted" + class="ml-auto text-muted pointer" @click="$store.commit('application/showProfiles', false)" ></font-awesome-icon> </h6> @@ -110,7 +110,7 @@ @click="confirmDeleteSelectedCut = false" v-if="selectedCut && confirmDeleteSelectedCut" > - <font-awesome-icon icon="times" /> + <font-awesome-icon icon="times" class="pointer" /> </button> <button class="btn btn-sm btn-danger input-button-right"
--- a/client/src/components/importqueue/Importqueuedetail.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/importqueue/Importqueuedetail.vue Tue Feb 12 11:11:32 2019 +0100 @@ -23,16 +23,19 @@ </div> <div @click="showDetails(job.id)" class="mt-1 text-info detailsbutton"> <font-awesome-icon + class="pointer" v-if="show" icon="angle-up" fixed-width ></font-awesome-icon> <font-awesome-icon + class="pointer" v-if="loading" icon="spinner" fixed-width ></font-awesome-icon> <font-awesome-icon + class="pointer" v-if="!show && !loading" icon="angle-down" fixed-width
--- a/client/src/components/importschedule/Importscheduledetail.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/importschedule/Importscheduledetail.vue Tue Feb 12 11:11:32 2019 +0100 @@ -9,7 +9,7 @@ > {{ dialogLabel }} <span @click="closeDetailview" class="closebutton"> - <font-awesome-icon icon="times"></font-awesome-icon> + <font-awesome-icon icon="times" class="pointer"></font-awesome-icon> </span> </h6> <div class="card-body"> @@ -355,7 +355,7 @@ </div> </div> <button type="submit" class="shadow-sm btn btn-info submit-button"> - <translate>Submit</translate> + <translate>Save</translate> </button> <button @click="triggerManualImport"
--- a/client/src/components/layers/Layers.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/layers/Layers.vue Tue Feb 12 11:11:32 2019 +0100 @@ -11,7 +11,7 @@ ><translate>Layers</translate> <font-awesome-icon icon="times" - class="ml-auto text-muted" + class="ml-auto text-muted pointer" @click="$store.commit('application/showLayers', false)" ></font-awesome-icon> </h6>
--- a/client/src/components/layers/Layerselect.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/layers/Layerselect.vue Tue Feb 12 11:11:32 2019 +0100 @@ -12,9 +12,11 @@ :layername="layername" :layerindex="layerindex" ></LegendElement> - <label class="layername form-check-label" @click="visibilityToggled">{{ - layername - }}</label> + <label + class="pointer layername form-check-label" + @click="visibilityToggled" + >{{ layername }}</label + > </div> <div v-if="isVisible && layername == 'Bottleneck isolines'"> <img class="rounded my-1 d-block" :src="isolinesLegendImgDataURL" />
--- a/client/src/components/staging/StagingDetail.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/staging/StagingDetail.vue Tue Feb 12 11:11:32 2019 +0100 @@ -4,6 +4,7 @@ <div class="mt-auto d-flex flex-row mb-auto small name text-left"> <a v-if="isSoundingResult(data.kind.toUpperCase())" + class="text-left" @click="zoomTo()" href="#" >{{ data.summary.bottleneck }}</a @@ -13,12 +14,22 @@ data.summary.bottlenecks.length }})</span > - <span v-if="isFairwayDimension(data.kind.toUpperCase())" + <a + v-if="isApprovedGaugeMeasurement(data.kind.toUpperCase())" + class="text-left" + ><translate>Approved Gauge Measurements</translate> ({{ + data.summary.length + }})</a + > + <span + class="text-left" + v-if="isFairwayDimension(data.kind.toUpperCase())" >{{ data.summary["source-organization"] }} (LOS: {{ data.summary.los }})</span > <a href="#" + class="text-left" @click="zoomToStretch(data.summary.stretch)" v-if="isStretch(data.kind.toUpperCase())" >{{ data.summary.stretch }}</a @@ -64,31 +75,52 @@ }" @click="toggleApproval(data.id, $options.STATES.REJECTED)" > - <font-awesome-icon icon="times"></font-awesome-icon> + <font-awesome-icon icon="times" class="pointer"></font-awesome-icon> </button> </div> <div v-if="isBottleneck(data.kind.toUpperCase())"> - <div - @click="showDetails()" - class="mt-auto mb-auto text-info text-left" - > + <div class="mt-auto mb-auto text-info text-left"> <font-awesome-icon + class="pointer" + @click="showDetails()" v-if="show" icon="angle-up" fixed-width ></font-awesome-icon> <font-awesome-icon + class="pointer" + @click="showDetails()" v-if="loading" icon="spinner" fixed-width ></font-awesome-icon> <font-awesome-icon + class="pointer" v-if="!show && !loading" icon="angle-down" fixed-width ></font-awesome-icon> </div> </div> + <div v-if="isApprovedGaugeMeasurement(data.kind.toUpperCase())"> + <div + @click="showAGMDetails = !showAGMDetails" + class="mt-auto mb-auto text-info text-left" + > + <font-awesome-icon + class="pointer" + v-if="showAGMDetails" + icon="angle-up" + fixed-width + ></font-awesome-icon> + <font-awesome-icon + class="pointer" + v-if="!showAGMDetails" + icon="angle-down" + fixed-width + ></font-awesome-icon> + </div> + </div> <div v-else class="empty"></div> </div> </div> @@ -104,23 +136,25 @@ bottleneck.properties.objnam }}</a> <div - @click="showFull = !showFull" + @click="showBottleneckDetails = !showBottleneckDetails" class="small mt-auto mb-auto text-info text-left" > <font-awesome-icon - v-if="showFull" + class="pointer" + v-if="showBottleneckDetails" icon="angle-up" fixed-width ></font-awesome-icon> <font-awesome-icon - v-if="!showFull" + class="pointer" + v-if="!showBottleneckDetails" icon="angle-down" fixed-width ></font-awesome-icon> </div> </div> - <div class="d-flex flex-row" v-if="showFull"> + <div class="d-flex flex-row" v-if="showBottleneckDetails"> <table> <tr v-for="(info, index) in Object.keys(bottleneck.properties)" @@ -137,6 +171,108 @@ </div> </div> </div> + <div v-if="showAGMDetails"> + <div class="pl-3 d-flex flex-row"> + <span class="condensed agmcode text-left" + ><small><translate>ISRS Code</translate></small></span + > + <span class="condensed agmdetail text-left" + ><small><translate>Date of measurement</translate></small></span + > + </div> + <div class="diffs"> + <div v-for="(result, index) in data.summary" :key="index"> + <div class="pl-3 d-flex flex-row"> + <span + v-if="result.versions.length == 1" + class="condensed agmcode text-left" + ><small + >{{ result["fk-gauge-id"] }} + <translate>( New )</translate></small + ></span + > + <span + v-if="result.versions.length == 2" + class="condensed agmcode text-left" + ><small>{{ result["fk-gauge-id"] }}</small></span + > + <span class="condensed agmdetail text-left" + ><small>{{ + formatSurveyDate(result["measure-date"]) + }}</small></span + > + <div + @click="toggleDiff(index)" + class="small ml-auto mt-auto mb-auto text-info text-left" + > + <font-awesome-icon + class="pointer" + v-if="showDiff == index" + icon="angle-up" + fixed-width + ></font-awesome-icon> + <font-awesome-icon + class="pointer" + v-if="showDiff != index" + icon="angle-down" + fixed-width + ></font-awesome-icon> + </div> + </div> + <div v-if="showDiff == index" class="pl-3 d-flex flex-row"> + <div> + <div class="d-flex flex-row condensed pl-3 text-left"> + <div class="header border-bottom agmdetailskeys"> + <small><translate>Value</translate></small> + </div> + <div + v-if="result.versions.length == 2" + class="header border-bottom agmdetailsvalues" + > + <small><translate>Old</translate></small> + </div> + <div class="header border-bottom agmdetailsvalues"> + <small><translate>New</translate></small> + </div> + </div> + <div + class="d-flex flex-row condensed pl-3 text-left" + v-for="(entry, index) in Object.keys(result.versions[0])" + :key="index" + > + <div + v-if=" + result.versions.length == 1 || + result.versions[0][entry] != result.versions[1][entry] + " + class="agmdetailskeys" + > + <small>{{ entry }}</small> + </div> + <div + v-if=" + result.versions.length == 1 || + result.versions[0][entry] != result.versions[1][entry] + " + class="agmdetailsvalues" + > + <small>{{ result.versions[0][entry] }}</small> + </div> + <div + v-if=" + result.versions.length == 2 && + result.versions[0][entry] != result.versions[1][entry] + " + class="agmdetailsvalues" + > + <small>{{ result.versions[1][entry] }}</small> + </div> + </div> + </div> + </div> + </div> + </div> + </div> </div> </template> @@ -164,12 +300,16 @@ import { mapState } from "vuex"; import { LAYERS } from "@/store/map.js"; +const NO_DIFF = -1; + export default { name: "stagingdetail", props: ["data"], data() { return { - showFull: false, + showDiff: NO_DIFF, + showAGMDetails: false, + showBottleneckDetails: false, show: false, loading: false, bottlenecks: [] @@ -198,6 +338,9 @@ } }, watch: { + showAGMDetails() { + if (!this.showAGMDetails) this.showDiff = NO_DIFF; + }, open() { const { review } = this.$route.query; if (review) { @@ -206,6 +349,13 @@ } }, methods: { + toggleDiff(number) { + if (this.showDiff !== number || this.showDiff == -1) { + this.showDiff = number; + } else { + this.showDiff = -1; + } + }, zoomToStretch(name) { this.$store.commit("map/setLayerVisible", LAYERS.STRETCHES); this.$store @@ -281,6 +431,9 @@ isFairwayDimension(kind) { return kind === "FD"; }, + isApprovedGaugeMeasurement(kind) { + return kind === "AGM"; + }, isBottleneck(kind) { return kind === "BN"; }, @@ -342,6 +495,11 @@ </script> <style lang="scss" scoped> +.diffs { + overflow-y: auto; + max-height: 250px; +} + .highlight { background-color: #f9f9f9; } @@ -377,4 +535,20 @@ .controls { width: 60px; } + +.agmcode { + width: 200px; +} + +.agmdate { + width: 100px; +} + +.agmdetailskeys { + width: 130px; +} + +.agmdetailsvalues { + width: 200px; +} </style>
--- a/client/src/components/toolbar/Toolbar.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/toolbar/Toolbar.vue Tue Feb 12 11:11:32 2019 +0100 @@ -6,18 +6,19 @@ (expandToolbar ? 'expanded' : 'collapsed') " > - <Identify></Identify> - <Layers></Layers> - <Profiles></Profiles> - <Linetool></Linetool> - <Polygontool></Polygontool> - <Pdftool></Pdftool> + <Identify class="pointer"></Identify> + <Layers class="pointer"></Layers> + <Profiles class="pointer"></Profiles> + <Linetool class="pointer"></Linetool> + <Polygontool class="pointer"></Polygontool> + <Pdftool class="pointer"></Pdftool> </div> <div @click="$store.commit('application/expandToolbar', !expandToolbar)" class="toolbar-button toolbar-toggle rounded-bottom bg-info text-white" > <font-awesome-icon + class="pointer" :icon="expandToolbar ? 'angle-up' : 'angle-down'" ></font-awesome-icon> </div>
--- a/client/src/components/usermanagement/Userdetail.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/usermanagement/Userdetail.vue Tue Feb 12 11:11:32 2019 +0100 @@ -5,7 +5,7 @@ > {{ this.cardHeader }} <span @click="closeDetailview" class="closebutton"> - <font-awesome-icon icon="times"></font-awesome-icon> + <font-awesome-icon icon="times" class="pointer"></font-awesome-icon> </span> </h6> <div class="card-body">
--- a/client/src/components/usermanagement/Usermanagement.vue Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/components/usermanagement/Usermanagement.vue Tue Feb 12 11:11:32 2019 +0100 @@ -124,7 +124,7 @@ <translate>Delete user</translate> <font-awesome-icon icon="times" - class="ml-auto text-muted" + class="ml-auto text-muted pointer" @click="showDeleteUserPrompt = false" ></font-awesome-icon> </h6>
--- a/client/src/locale/bg_BG/LC_MESSAGES/app.po Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/locale/bg_BG/LC_MESSAGES/app.po Tue Feb 12 11:11:32 2019 +0100 @@ -10,7 +10,8 @@ "POT-Creation-Date: 2019-01-25 10:11+0100\n" "PO-Revision-Date: 2019-01-23 09:40+0000\n" "Last-Translator: Fadi Abbud <fadi.abbud@intevation.de>\n" -"Language-Team: Bulgarian <https://hosted.weblate.org/projects/gemma/client/bg/>\n" +"Language-Team: Bulgarian <https://hosted.weblate.org/projects/gemma/client/" +"bg/>\n" "Language: bg_BG\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,11 +19,23 @@ "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 3.4\n" -#: src/components/Pdftool.vue:400 +#: src/components/ImportWaterwayProfiles.vue:164 +msgid " was successfully uploaded." +msgstr "" + +#: src/components/Pdftool.vue:453 msgid "– generated by:" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:778 +#: src/components/staging/StagingDetail.vue:188 +msgid "( New )" +msgstr "" + +#: src/components/Pdftool.vue:29 +msgid "{{ template.name }}" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:795 msgid "15 minutes" msgstr "" @@ -34,23 +47,27 @@ msgid "Accesslog" msgstr "" -#: src/components/usermanagement/Usermanagement.vue:104 +#: src/components/usermanagement/Usermanagement.vue:102 msgid "Add User" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:798 +#: src/components/staging/StagingDetail.vue:19 +msgid "Approved Gauge Measurements" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:815 msgid "April" msgstr "" -#: src/store/map.js:445 +#: src/store/map.js:565 msgid "Area" msgstr "Район" -#: src/components/importschedule/Importscheduledetail.vue:775 +#: src/components/importschedule/Importscheduledetail.vue:792 msgid "at" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:802 +#: src/components/importschedule/Importscheduledetail.vue:819 msgid "August" msgstr "" @@ -59,45 +76,47 @@ msgstr "" #: src/components/importschedule/Importscheduledetail.vue:34 -msgid "Available fairway fpths" +msgid "Available fairway depths" msgstr "" #: src/components/Login.vue:70 msgid "back to login" msgstr "" -#: src/components/Bottlenecks.vue:274 -#: src/components/ImportApprovedGaugeMeasurement.vue:111 +#: src/components/Bottlenecks.vue:277 +#: src/components/ImportApprovedGaugeMeasurement.vue:108 #: src/components/ImportSoundingresults.vue:216 #: src/components/ImportSoundingresults.vue:255 #: src/components/ImportSoundingresults.vue:286 -#: src/components/ImportStretches.vue:306 -#: src/components/ImportStretches.vue:313 -#: src/components/ImportStretches.vue:485 src/components/Search.vue:258 +#: src/components/ImportStretches.vue:303 +#: src/components/ImportStretches.vue:310 +#: src/components/ImportStretches.vue:482 +#: src/components/ImportWaterwayProfiles.vue:175 src/components/Search.vue:258 #: src/components/Systemconfiguration.vue:114 #: src/components/Systemconfiguration.vue:129 #: src/components/Systemconfiguration.vue:148 #: src/components/Systemconfiguration.vue:165 #: src/components/importqueue/Importqueue.vue:160 #: src/components/importqueue/Importqueue.vue:180 -#: src/components/importqueue/Importqueuedetail.vue:182 +#: src/components/importqueue/Importqueuedetail.vue:214 #: src/components/importschedule/Importschedule.vue:148 #: src/components/importschedule/Importschedule.vue:167 #: src/components/importschedule/Importschedule.vue:176 #: src/components/importschedule/Importschedule.vue:198 -#: src/components/importschedule/Importscheduledetail.vue:647 -#: src/components/importschedule/Importscheduledetail.vue:727 -#: src/components/importschedule/Importscheduledetail.vue:757 -#: src/components/staging/StagingDetail.vue:251 +#: src/components/importschedule/Importscheduledetail.vue:664 +#: src/components/importschedule/Importscheduledetail.vue:744 +#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/staging/StagingDetail.vue:364 +#: src/components/staging/StagingDetail.vue:418 #: src/components/usermanagement/Userdetail.vue:304 #: src/components/usermanagement/Userdetail.vue:376 -#: src/components/usermanagement/Usermanagement.vue:298 -#: src/components/usermanagement/Usermanagement.vue:306 -#: src/components/usermanagement/Usermanagement.vue:340 +#: src/components/usermanagement/Usermanagement.vue:337 +#: src/components/usermanagement/Usermanagement.vue:345 +#: src/components/usermanagement/Usermanagement.vue:379 msgid "Backend Error" msgstr "" -#: src/components/ImportSoundingresults.vue:16 +#: src/components/ImportSoundingresults.vue:16 src/components/Pdftool.vue:496 #, fuzzy msgid "Bottleneck" msgstr "Критични участъци" @@ -112,7 +131,7 @@ #: src/components/Bottlenecks.vue:4 src/components/Sidebar.vue:27 #: src/components/importschedule/Importscheduledetail.vue:25 -#: src/components/staging/StagingDetail.vue:11 +#: src/components/staging/StagingDetail.vue:12 msgid "Bottlenecks" msgstr "" @@ -129,13 +148,15 @@ msgid "choose .zip- file" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:78 -#: src/components/ImportWaterwayProfiles.vue:75 +#: src/components/ImportApprovedGaugeMeasurement.vue:75 +#: src/components/ImportWaterwayProfiles.vue:135 +#: src/components/ImportWaterwayProfiles.vue:169 msgid "choose file to upload" msgstr "" -#: src/components/Pdftool.vue:18 -msgid "Choose format:" +#: src/components/Pdftool.vue:23 +#, fuzzy +msgid "Chose preset" msgstr "Избиране на формат" #: src/components/fairway/Profiles.vue:64 @@ -160,25 +181,29 @@ msgid "Country" msgstr "Държава" -#: src/components/ImportStretches.vue:85 +#: src/components/ImportStretches.vue:87 msgid "Countrycode" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:333 +#: src/components/importschedule/Importscheduledetail.vue:345 msgid "Cronstring" msgstr "" #: src/components/ImportSoundingresults.vue:72 -#: src/components/importqueue/Importqueuedetail.vue:49 +#: src/components/importqueue/Importqueuedetail.vue:54 #: src/components/staging/Staging.vue:13 msgid "Date" msgstr "" -#: src/components/ImportStretches.vue:201 +#: src/components/ImportStretches.vue:198 msgid "Date info" msgstr "" -#: src/components/Pdftool.vue:396 +#: src/components/staging/StagingDetail.vue:179 +msgid "Date of measurement" +msgstr "" + +#: src/components/Pdftool.vue:449 msgid "Date of publication:" msgstr "" @@ -186,11 +211,11 @@ msgid "Datum" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:780 +#: src/components/importschedule/Importscheduledetail.vue:797 msgid "day" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:806 +#: src/components/importschedule/Importscheduledetail.vue:823 msgid "December" msgstr "" @@ -198,11 +223,15 @@ msgid "Define stretches" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:123 +msgid "Delete user" +msgstr "" + #: src/components/importschedule/Importschedule.vue:192 msgid "Deleted import: #" msgstr "" -#: src/components/ImportStretches.vue:361 +#: src/components/ImportStretches.vue:358 msgid "Deleting " msgstr "" @@ -210,14 +239,26 @@ msgid "Depth" msgstr "" +#: src/components/Pdftool.vue:522 +msgid "Depth relativ to" +msgstr "" + #: src/components/ImportSoundingresults.vue:52 msgid "Depthreference" msgstr "" +#: src/components/importschedule/Importscheduledetail.vue:49 +msgid "Distance marks ashore" +msgstr "" + #: src/components/importschedule/Importscheduledetail.vue:46 msgid "Distance marks virtual" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:131 +msgid "Do you really want to delete the following user account:" +msgstr "" + #: src/components/Pdftool.vue:10 msgid "Download" msgstr "" @@ -235,11 +276,11 @@ msgid "Email address" msgstr "Адрес на ел. поща" -#: src/components/importschedule/Importscheduledetail.vue:53 +#: src/components/importschedule/Importscheduledetail.vue:56 msgid "Email Notification" msgstr "" -#: src/components/ImportStretches.vue:131 +#: src/components/ImportStretches.vue:133 msgid "End rhm" msgstr "" @@ -271,7 +312,7 @@ msgid "Errorlog" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:771 +#: src/components/importschedule/Importscheduledetail.vue:788 msgid "Every" msgstr "" @@ -283,13 +324,15 @@ msgid "Fairway dimension" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:34 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:25 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:25 #: src/components/importschedule/importtypes/Waterwayarea.vue:25 #: src/components/importschedule/importtypes/Waterwayaxis.vue:25 msgid "Featuretype" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:796 +#: src/components/importschedule/Importscheduledetail.vue:813 msgid "February" msgstr "" @@ -297,7 +340,11 @@ msgid "Forgot password" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:790 +#: src/components/Pdftool.vue:33 +msgid "Format" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:807 msgid "Friday" msgstr "" @@ -305,11 +352,11 @@ msgid "Gauge measurement" msgstr "" -#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:61 +#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:96 msgid "Generate PDF" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:779 +#: src/components/importschedule/Importscheduledetail.vue:796 msgid "hour" msgstr "" @@ -317,7 +364,7 @@ msgid "Id" msgstr "" -#: src/components/ImportStretches.vue:66 +#: src/components/ImportStretches.vue:68 msgid "ID" msgstr "" @@ -325,19 +372,19 @@ msgid "Identified" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:101 +#: src/components/ImportApprovedGaugeMeasurement.vue:98 #: src/components/ImportSoundingresults.vue:278 -#: src/components/ImportStretches.vue:474 -#: src/components/ImportWaterwayProfiles.vue:88 src/components/Sidebar.vue:58 +#: src/components/ImportStretches.vue:471 +#: src/components/ImportWaterwayProfiles.vue:162 src/components/Sidebar.vue:58 #: src/components/importschedule/Importschedule.vue:33 -#: src/components/importschedule/Importscheduledetail.vue:456 -#: src/components/importschedule/Importscheduledetail.vue:640 -#: src/components/importschedule/Importscheduledetail.vue:710 -#: src/components/importschedule/Importscheduledetail.vue:740 +#: src/components/importschedule/Importscheduledetail.vue:470 +#: src/components/importschedule/Importscheduledetail.vue:657 +#: src/components/importschedule/Importscheduledetail.vue:727 +#: src/components/importschedule/Importscheduledetail.vue:757 msgid "Import" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:11 +#: src/components/ImportApprovedGaugeMeasurement.vue:8 #: src/components/Sidebar.vue:76 msgid "Import approved gaugemeasurements" msgstr "" @@ -354,7 +401,7 @@ msgid "Import waterway profiles" msgstr "" -#: src/components/ImportWaterwayProfiles.vue:11 +#: src/components/ImportWaterwayProfiles.vue:8 msgid "Import Waterwayprofiles" msgstr "" @@ -386,32 +433,36 @@ msgid "Invalid input" msgstr "" -#: src/components/Pdftool.vue:29 +#: src/components/Pdftool.vue:62 msgid "ISO A3" msgstr "" -#: src/components/Pdftool.vue:30 +#: src/components/Pdftool.vue:63 msgid "ISO A4" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:795 +#: src/components/staging/StagingDetail.vue:176 +msgid "ISRS Code" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:812 msgid "January" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:801 +#: src/components/importschedule/Importscheduledetail.vue:818 msgid "July" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:800 +#: src/components/importschedule/Importscheduledetail.vue:817 msgid "June" msgstr "" #: src/components/importqueue/Importqueue.vue:58 -#: src/components/importqueue/Importqueuedetail.vue:45 +#: src/components/importqueue/Importqueuedetail.vue:50 msgid "Kind" msgstr "" -#: src/components/Pdftool.vue:20 +#: src/components/Pdftool.vue:39 msgid "landscape" msgstr "" @@ -428,7 +479,7 @@ msgid "Layers" msgstr "Слоеве" -#: src/store/map.js:424 +#: src/store/map.js:544 msgid "Length" msgstr "" @@ -457,7 +508,7 @@ msgstr "" #: src/components/importschedule/Importschedule.vue:161 -#: src/components/importschedule/Importscheduledetail.vue:641 +#: src/components/importschedule/Importscheduledetail.vue:658 msgid "Manually triggered import: #" msgstr "" @@ -465,15 +516,15 @@ msgid "Map" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:797 +#: src/components/importschedule/Importscheduledetail.vue:814 msgid "March" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:132 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:130 msgid "MaxWidth" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:799 +#: src/components/importschedule/Importscheduledetail.vue:816 msgid "May" msgstr "" @@ -481,28 +532,28 @@ msgid "Measurement" msgstr "" -#: src/components/importqueue/Importqueuedetail.vue:58 +#: src/components/importqueue/Importqueuedetail.vue:63 #, fuzzy msgid "Message" msgstr "Cъобщение" -#: src/components/importschedule/Importscheduledetail.vue:772 +#: src/components/importschedule/Importscheduledetail.vue:789 msgid "minutes past" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:110 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:109 msgid "MinWidth" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:786 +#: src/components/importschedule/Importscheduledetail.vue:803 msgid "Monday" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:782 +#: src/components/importschedule/Importscheduledetail.vue:799 msgid "month" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:198 +#: src/components/importschedule/Importscheduledetail.vue:210 msgid "Monthly" msgstr "" @@ -512,16 +563,20 @@ msgid "Name" msgstr "име" -#: src/components/ImportStretches.vue:182 +#: src/components/ImportStretches.vue:184 msgid "National Object name" msgstr "" +#: src/components/staging/StagingDetail.vue:227 +msgid "New" +msgstr "" + #: src/components/importschedule/Importschedule.vue:93 -#: src/components/importschedule/Importscheduledetail.vue:457 +#: src/components/importschedule/Importscheduledetail.vue:471 msgid "New Import" msgstr "" -#: src/components/ImportStretches.vue:247 +#: src/components/ImportStretches.vue:244 msgid "New stretch" msgstr "" @@ -529,7 +584,7 @@ msgid "No features identified." msgstr "" -#: src/components/Bottlenecks.vue:115 src/components/ImportStretches.vue:59 +#: src/components/Bottlenecks.vue:118 src/components/ImportStretches.vue:61 #: src/components/staging/Staging.vue:36 msgid "No results." msgstr "" @@ -538,35 +593,39 @@ msgid "No scheduled imports" msgstr "" -#: src/components/ImportStretches.vue:360 +#: src/components/ImportStretches.vue:357 msgid "Not implemented" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:805 +#: src/components/importschedule/Importscheduledetail.vue:822 msgid "November" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:776 +#: src/components/importschedule/Importscheduledetail.vue:793 msgid "o' clock" msgstr "" -#: src/components/ImportStretches.vue:164 +#: src/components/ImportStretches.vue:166 msgid "Object name" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:804 +#: src/components/importschedule/Importscheduledetail.vue:821 msgid "October" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/importschedule/Importscheduledetail.vue:791 msgid "of" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:773 +#: src/components/staging/StagingDetail.vue:224 +msgid "Old" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:790 msgid "on" msgstr "" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:19 msgid "Open in new window" msgstr "" @@ -589,7 +648,9 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:346 -msgid "Password should at least be 8 char long including 1 digit and 1 special char like $" +msgid "" +"Password should at least be 8 char long including 1 digit and 1 special char " +"like $" msgstr "" #: src/components/usermanagement/Userdetail.vue:342 @@ -609,19 +670,21 @@ msgid "Please choose a role" msgstr "" -#: src/components/ImportStretches.vue:97 +#: src/components/ImportStretches.vue:99 msgid "Please enter a countrycode" msgstr "" #: src/components/ImportSoundingresults.vue:84 -#: src/components/ImportStretches.vue:212 +#: src/components/ImportStretches.vue:209 msgid "Please enter a date" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:100 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:99 msgid "Please enter a depth" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:46 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:37 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:37 #: src/components/importschedule/importtypes/Waterwayarea.vue:37 #: src/components/importschedule/importtypes/Waterwayaxis.vue:37 @@ -632,11 +695,11 @@ msgid "Please enter a level of service" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:146 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:143 msgid "Please enter a maximum width" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:124 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:122 msgid "Please enter a minimum width" msgstr "" @@ -653,20 +716,22 @@ msgid "Please enter a reference" msgstr "" -#: src/components/ImportStretches.vue:228 +#: src/components/ImportStretches.vue:225 msgid "Please enter a source" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:170 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:167 msgid "Please enter a source orgranization" msgstr "" -#: src/components/ImportStretches.vue:126 +#: src/components/ImportStretches.vue:128 msgid "Please enter a start point" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:25 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:19 #: src/components/importschedule/importtypes/Bottleneck.vue:44 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:19 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:19 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:19 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:19 @@ -681,16 +746,15 @@ msgid "Please enter a Username" msgstr "" -#: src/components/ImportStretches.vue:151 +#: src/components/ImportStretches.vue:153 msgid "Please enter an end point" msgstr "" -#: src/components/ImportStretches.vue:78 +#: src/components/ImportStretches.vue:80 msgid "Please enter an id" msgstr "" -#: src/components/ImportStretches.vue:176 -#: src/components/ImportStretches.vue:194 +#: src/components/ImportStretches.vue:178 msgid "Please enter an objectname" msgstr "" @@ -698,6 +762,8 @@ msgid "Please enter correct coordinates in the format: Lat,Lon,Lat,Lon" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:63 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:57 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:57 #: src/components/importschedule/importtypes/Waterwayarea.vue:57 #: src/components/importschedule/importtypes/Waterwayaxis.vue:57 @@ -713,7 +779,7 @@ msgid "Please select one" msgstr "" -#: src/components/Pdftool.vue:21 +#: src/components/Pdftool.vue:40 msgid "portrait" msgstr "" @@ -733,6 +799,10 @@ msgid "Projection" msgstr "" +#: src/components/Pdftool.vue:514 +msgid "Ref gauge" +msgstr "" + #: src/components/Logs.vue:48 src/components/importqueue/Importqueue.vue:84 msgid "Refresh" msgstr "" @@ -749,11 +819,15 @@ msgid "Request password reset!" msgstr "" +#: src/components/Pdftool.vue:44 +msgid "Resolution" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:78 msgid "Role" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:791 +#: src/components/importschedule/Importscheduledetail.vue:808 msgid "Saturday" msgstr "" @@ -761,16 +835,16 @@ msgid "Saved cross profiles" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:711 +#: src/components/importschedule/Importscheduledetail.vue:728 msgid "Saved import: #" msgstr "" #: src/components/importschedule/Importschedule.vue:36 -#: src/components/importschedule/Importscheduledetail.vue:189 +#: src/components/importschedule/Importscheduledetail.vue:201 msgid "Schedule" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:147 +#: src/components/importschedule/Importscheduledetail.vue:159 msgid "Scheduled" msgstr "" @@ -786,7 +860,7 @@ msgid "Send testmail" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:803 +#: src/components/importschedule/Importscheduledetail.vue:820 msgid "September" msgstr "" @@ -794,10 +868,14 @@ msgid "Signer" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:167 +#: src/components/importschedule/Importscheduledetail.vue:179 msgid "Simple schedule" msgstr "" +#: src/components/Pdftool.vue:56 +msgid "Size" +msgstr "" + #: src/components/Identify.vue:60 msgid "" "Some data ©\n" @@ -805,6 +883,8 @@ " contributors." msgstr "" +#: src/components/ImportWaterwayProfiles.vue:55 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:45 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:45 #: src/components/importschedule/importtypes/Waterwayarea.vue:45 #: src/components/importschedule/importtypes/Waterwayaxis.vue:45 @@ -815,7 +895,7 @@ msgid "Sounding Result" msgstr "" -#: src/components/ImportStretches.vue:217 +#: src/components/ImportStretches.vue:214 msgid "Source" msgstr "" @@ -823,7 +903,7 @@ msgid "Source organization" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:157 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:154 msgid "Source orgranization" msgstr "" @@ -843,7 +923,7 @@ msgid "Start" msgstr "" -#: src/components/ImportStretches.vue:106 +#: src/components/ImportStretches.vue:108 msgid "Start rhm" msgstr "" @@ -851,15 +931,15 @@ msgid "Starting import for " msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:102 +#: src/components/ImportApprovedGaugeMeasurement.vue:99 msgid "Starting import of Approved Gauge Measurements" msgstr "" -#: src/components/ImportStretches.vue:475 +#: src/components/ImportStretches.vue:472 msgid "Starting import of stretch" msgstr "" -#: src/components/ImportStretches.vue:157 +#: src/components/ImportStretches.vue:159 msgid "Startpoint is not before endpoint." msgstr "" @@ -867,8 +947,8 @@ msgid "State" msgstr "" -#: src/components/ImportStretches.vue:241 -#: src/components/importschedule/Importscheduledetail.vue:345 +#: src/components/ImportStretches.vue:238 +#: src/components/importschedule/Importscheduledetail.vue:357 #: src/components/usermanagement/Userdetail.vue:129 msgid "Submit" msgstr "" @@ -881,15 +961,19 @@ msgid "Successful" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:792 +#: src/components/importschedule/Importscheduledetail.vue:809 msgid "Sunday" msgstr "" +#: src/components/Pdftool.vue:506 +msgid "Survey date" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:88 msgid "Sysadmin" msgstr "" -#: src/components/usermanagement/Usermanagement.vue:326 +#: src/components/usermanagement/Usermanagement.vue:365 msgid "System-Administrator" msgstr "" @@ -901,23 +985,27 @@ msgid "Systemconfiguration" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:163 +msgid "this" +msgstr "" + #: src/components/Identify.vue:51 msgid "" "This app uses <i>gemma</i>, which is Free Software under <br/>\n" " %{ license } without warranty, see docs for details." msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:789 +#: src/components/importschedule/Importscheduledetail.vue:806 msgid "Thursday" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:45 -#: src/components/ImportWaterwayProfiles.vue:43 -#: src/components/importschedule/Importscheduledetail.vue:358 +#: src/components/ImportApprovedGaugeMeasurement.vue:42 +#: src/components/ImportWaterwayProfiles.vue:99 +#: src/components/importschedule/Importscheduledetail.vue:370 msgid "Trigger import" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:787 +#: src/components/importschedule/Importscheduledetail.vue:804 msgid "Tuesday" msgstr "" @@ -927,11 +1015,7 @@ msgid "Type" msgstr "Тип" -#: src/components/ImportWaterwayProfiles.vue:89 -msgid "under construction" -msgstr "" - -#: src/components/importschedule/Importscheduledetail.vue:741 +#: src/components/importschedule/Importscheduledetail.vue:758 msgid "update import: #" msgstr "" @@ -939,8 +1023,10 @@ msgid "Upload" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:16 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:5 #: src/components/importschedule/importtypes/Bottleneck.vue:5 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:5 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:5 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:5 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:5 @@ -969,12 +1055,17 @@ #: src/components/Identify.vue:65 msgid "" "Uses\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " under %{ geoLicense }." msgstr "" +#: src/components/staging/StagingDetail.vue:218 +msgid "Value" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:91 -#: src/components/usermanagement/Usermanagement.vue:327 +#: src/components/usermanagement/Usermanagement.vue:366 msgid "Waterway Admin" msgstr "" @@ -991,26 +1082,28 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:94 -#: src/components/usermanagement/Usermanagement.vue:328 +#: src/components/usermanagement/Usermanagement.vue:367 msgid "Waterway User" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:788 +#: src/components/importschedule/Importscheduledetail.vue:805 msgid "Wednesday" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:781 +#: src/components/importschedule/Importscheduledetail.vue:798 msgid "week" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:197 +#: src/components/importschedule/Importscheduledetail.vue:209 msgid "Weekly" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:783 +#: src/components/importschedule/Importscheduledetail.vue:800 msgid "year" msgstr "Година" #: src/components/fairway/Profiles.vue:443 -msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile." +msgid "" +"You can now select these coordinates from the \"Saved cross profiles\" menu " +"to restore this cross profile." msgstr ""
--- a/client/src/locale/de_AT/LC_MESSAGES/app.po Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/locale/de_AT/LC_MESSAGES/app.po Tue Feb 12 11:11:32 2019 +0100 @@ -10,7 +10,8 @@ "POT-Creation-Date: 2019-01-24 09:38+0100\n" "PO-Revision-Date: 2019-01-26 14:04+0000\n" "Last-Translator: Bernhard E. Reiter <bernhard.reiter@intevation.de>\n" -"Language-Team: Austrian German <https://hosted.weblate.org/projects/gemma/client/de_AT/>\n" +"Language-Team: Austrian German <https://hosted.weblate.org/projects/gemma/" +"client/de_AT/>\n" "Language: de_AT\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,11 +19,23 @@ "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 3.5-dev\n" -#: src/components/Pdftool.vue:400 +#: src/components/ImportWaterwayProfiles.vue:164 +msgid " was successfully uploaded." +msgstr "" + +#: src/components/Pdftool.vue:453 msgid "– generated by:" msgstr "– erstellt von:" -#: src/components/importschedule/Importscheduledetail.vue:778 +#: src/components/staging/StagingDetail.vue:188 +msgid "( New )" +msgstr "" + +#: src/components/Pdftool.vue:29 +msgid "{{ template.name }}" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:795 msgid "15 minutes" msgstr "15 Minuten" @@ -34,23 +47,28 @@ msgid "Accesslog" msgstr "Zugriffs-Protokoll" -#: src/components/usermanagement/Usermanagement.vue:104 +#: src/components/usermanagement/Usermanagement.vue:102 msgid "Add User" msgstr "Benutzer hinzufügen" -#: src/components/importschedule/Importscheduledetail.vue:798 +#: src/components/staging/StagingDetail.vue:19 +#, fuzzy +msgid "Approved Gauge Measurements" +msgstr "Messung" + +#: src/components/importschedule/Importscheduledetail.vue:815 msgid "April" msgstr "April" -#: src/store/map.js:445 +#: src/store/map.js:565 msgid "Area" msgstr "Fläche" -#: src/components/importschedule/Importscheduledetail.vue:775 +#: src/components/importschedule/Importscheduledetail.vue:792 msgid "at" msgstr "am" -#: src/components/importschedule/Importscheduledetail.vue:802 +#: src/components/importschedule/Importscheduledetail.vue:819 msgid "August" msgstr "August" @@ -60,45 +78,47 @@ #: src/components/importschedule/Importscheduledetail.vue:34 #, fuzzy -msgid "Available fairway fpths" +msgid "Available fairway depths" msgstr "Verfügbare Fahrrinnen Tiefen" #: src/components/Login.vue:70 msgid "back to login" msgstr "zurück zur Anmeldung" -#: src/components/Bottlenecks.vue:274 -#: src/components/ImportApprovedGaugeMeasurement.vue:111 +#: src/components/Bottlenecks.vue:277 +#: src/components/ImportApprovedGaugeMeasurement.vue:108 #: src/components/ImportSoundingresults.vue:216 #: src/components/ImportSoundingresults.vue:255 #: src/components/ImportSoundingresults.vue:286 -#: src/components/ImportStretches.vue:306 -#: src/components/ImportStretches.vue:313 -#: src/components/ImportStretches.vue:485 src/components/Search.vue:258 +#: src/components/ImportStretches.vue:303 +#: src/components/ImportStretches.vue:310 +#: src/components/ImportStretches.vue:482 +#: src/components/ImportWaterwayProfiles.vue:175 src/components/Search.vue:258 #: src/components/Systemconfiguration.vue:114 #: src/components/Systemconfiguration.vue:129 #: src/components/Systemconfiguration.vue:148 #: src/components/Systemconfiguration.vue:165 #: src/components/importqueue/Importqueue.vue:160 #: src/components/importqueue/Importqueue.vue:180 -#: src/components/importqueue/Importqueuedetail.vue:182 +#: src/components/importqueue/Importqueuedetail.vue:214 #: src/components/importschedule/Importschedule.vue:148 #: src/components/importschedule/Importschedule.vue:167 #: src/components/importschedule/Importschedule.vue:176 #: src/components/importschedule/Importschedule.vue:198 -#: src/components/importschedule/Importscheduledetail.vue:647 -#: src/components/importschedule/Importscheduledetail.vue:727 -#: src/components/importschedule/Importscheduledetail.vue:757 -#: src/components/staging/StagingDetail.vue:251 +#: src/components/importschedule/Importscheduledetail.vue:664 +#: src/components/importschedule/Importscheduledetail.vue:744 +#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/staging/StagingDetail.vue:364 +#: src/components/staging/StagingDetail.vue:418 #: src/components/usermanagement/Userdetail.vue:304 #: src/components/usermanagement/Userdetail.vue:376 -#: src/components/usermanagement/Usermanagement.vue:298 -#: src/components/usermanagement/Usermanagement.vue:306 -#: src/components/usermanagement/Usermanagement.vue:340 +#: src/components/usermanagement/Usermanagement.vue:337 +#: src/components/usermanagement/Usermanagement.vue:345 +#: src/components/usermanagement/Usermanagement.vue:379 msgid "Backend Error" msgstr "Server-Fehler" -#: src/components/ImportSoundingresults.vue:16 +#: src/components/ImportSoundingresults.vue:16 src/components/Pdftool.vue:496 msgid "Bottleneck" msgstr "Seichtstelle" @@ -112,7 +132,7 @@ #: src/components/Bottlenecks.vue:4 src/components/Sidebar.vue:27 #: src/components/importschedule/Importscheduledetail.vue:25 -#: src/components/staging/StagingDetail.vue:11 +#: src/components/staging/StagingDetail.vue:12 msgid "Bottlenecks" msgstr "Seichtstellen" @@ -129,13 +149,15 @@ msgid "choose .zip- file" msgstr "Wählen Sie eine .zip Datei" -#: src/components/ImportApprovedGaugeMeasurement.vue:78 -#: src/components/ImportWaterwayProfiles.vue:75 +#: src/components/ImportApprovedGaugeMeasurement.vue:75 +#: src/components/ImportWaterwayProfiles.vue:135 +#: src/components/ImportWaterwayProfiles.vue:169 msgid "choose file to upload" msgstr "Wähle hochzuladende Datei" -#: src/components/Pdftool.vue:18 -msgid "Choose format:" +#: src/components/Pdftool.vue:23 +#, fuzzy +msgid "Chose preset" msgstr "Format wählen:" #: src/components/fairway/Profiles.vue:64 @@ -159,27 +181,32 @@ msgid "Country" msgstr "Land" -#: src/components/ImportStretches.vue:85 +#: src/components/ImportStretches.vue:87 #, fuzzy msgid "Countrycode" msgstr "Landeskennung" -#: src/components/importschedule/Importscheduledetail.vue:333 +#: src/components/importschedule/Importscheduledetail.vue:345 msgid "Cronstring" msgstr "Crontab-Zeile" #: src/components/ImportSoundingresults.vue:72 -#: src/components/importqueue/Importqueuedetail.vue:49 +#: src/components/importqueue/Importqueuedetail.vue:54 #: src/components/staging/Staging.vue:13 msgid "Date" msgstr "Datum" -#: src/components/ImportStretches.vue:201 +#: src/components/ImportStretches.vue:198 #, fuzzy msgid "Date info" msgstr "Datum" -#: src/components/Pdftool.vue:396 +#: src/components/staging/StagingDetail.vue:179 +#, fuzzy +msgid "Date of measurement" +msgstr "Messung" + +#: src/components/Pdftool.vue:449 #, fuzzy msgid "Date of publication:" msgstr "Veröffentlichungsdatum" @@ -188,11 +215,11 @@ msgid "Datum" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:780 +#: src/components/importschedule/Importscheduledetail.vue:797 msgid "day" msgstr "Tag" -#: src/components/importschedule/Importscheduledetail.vue:806 +#: src/components/importschedule/Importscheduledetail.vue:823 msgid "December" msgstr "Dezember" @@ -200,11 +227,16 @@ msgid "Define stretches" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:123 +#, fuzzy +msgid "Delete user" +msgstr "Löchen " + #: src/components/importschedule/Importschedule.vue:192 msgid "Deleted import: #" msgstr "" -#: src/components/ImportStretches.vue:361 +#: src/components/ImportStretches.vue:358 msgid "Deleting " msgstr "Löchen " @@ -212,14 +244,26 @@ msgid "Depth" msgstr "Tiefe" +#: src/components/Pdftool.vue:522 +msgid "Depth relativ to" +msgstr "" + #: src/components/ImportSoundingresults.vue:52 msgid "Depthreference" msgstr "Tiefenreferenz" +#: src/components/importschedule/Importscheduledetail.vue:49 +msgid "Distance marks ashore" +msgstr "" + #: src/components/importschedule/Importscheduledetail.vue:46 msgid "Distance marks virtual" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:131 +msgid "Do you really want to delete the following user account:" +msgstr "" + #: src/components/Pdftool.vue:10 msgid "Download" msgstr "Herunterladen" @@ -236,11 +280,11 @@ msgid "Email address" msgstr "E-Mail Adresse" -#: src/components/importschedule/Importscheduledetail.vue:53 +#: src/components/importschedule/Importscheduledetail.vue:56 msgid "Email Notification" msgstr "E-Mail Benachrichtigung" -#: src/components/ImportStretches.vue:131 +#: src/components/ImportStretches.vue:133 msgid "End rhm" msgstr "" @@ -272,7 +316,7 @@ msgid "Errorlog" msgstr "Fehlerprotokoll" -#: src/components/importschedule/Importscheduledetail.vue:771 +#: src/components/importschedule/Importscheduledetail.vue:788 msgid "Every" msgstr "" @@ -285,6 +329,8 @@ msgid "Fairway dimension" msgstr "Waterway-Admin" +#: src/components/ImportWaterwayProfiles.vue:34 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:25 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:25 #: src/components/importschedule/importtypes/Waterwayarea.vue:25 #: src/components/importschedule/importtypes/Waterwayaxis.vue:25 @@ -292,7 +338,7 @@ msgid "Featuretype" msgstr "Featuretyp" -#: src/components/importschedule/Importscheduledetail.vue:796 +#: src/components/importschedule/Importscheduledetail.vue:813 msgid "February" msgstr "Februar" @@ -300,7 +346,11 @@ msgid "Forgot password" msgstr "Passwort vergessen" -#: src/components/importschedule/Importscheduledetail.vue:790 +#: src/components/Pdftool.vue:33 +msgid "Format" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:807 msgid "Friday" msgstr "Freitag" @@ -309,11 +359,11 @@ msgid "Gauge measurement" msgstr "Messung" -#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:61 +#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:96 msgid "Generate PDF" msgstr "PDF generieren" -#: src/components/importschedule/Importscheduledetail.vue:779 +#: src/components/importschedule/Importscheduledetail.vue:796 msgid "hour" msgstr "Stunde" @@ -321,7 +371,7 @@ msgid "Id" msgstr "Id" -#: src/components/ImportStretches.vue:66 +#: src/components/ImportStretches.vue:68 msgid "ID" msgstr "ID" @@ -329,19 +379,19 @@ msgid "Identified" msgstr "Identifiziert" -#: src/components/ImportApprovedGaugeMeasurement.vue:101 +#: src/components/ImportApprovedGaugeMeasurement.vue:98 #: src/components/ImportSoundingresults.vue:278 -#: src/components/ImportStretches.vue:474 -#: src/components/ImportWaterwayProfiles.vue:88 src/components/Sidebar.vue:58 +#: src/components/ImportStretches.vue:471 +#: src/components/ImportWaterwayProfiles.vue:162 src/components/Sidebar.vue:58 #: src/components/importschedule/Importschedule.vue:33 -#: src/components/importschedule/Importscheduledetail.vue:456 -#: src/components/importschedule/Importscheduledetail.vue:640 -#: src/components/importschedule/Importscheduledetail.vue:710 -#: src/components/importschedule/Importscheduledetail.vue:740 +#: src/components/importschedule/Importscheduledetail.vue:470 +#: src/components/importschedule/Importscheduledetail.vue:657 +#: src/components/importschedule/Importscheduledetail.vue:727 +#: src/components/importschedule/Importscheduledetail.vue:757 msgid "Import" msgstr "Daten-Import" -#: src/components/ImportApprovedGaugeMeasurement.vue:11 +#: src/components/ImportApprovedGaugeMeasurement.vue:8 #: src/components/Sidebar.vue:76 msgid "Import approved gaugemeasurements" msgstr "" @@ -358,7 +408,7 @@ msgid "Import waterway profiles" msgstr "" -#: src/components/ImportWaterwayProfiles.vue:11 +#: src/components/ImportWaterwayProfiles.vue:8 #, fuzzy msgid "Import Waterwayprofiles" msgstr "Art des Imports" @@ -392,32 +442,36 @@ msgid "Invalid input" msgstr "Ungültige Eingabe" -#: src/components/Pdftool.vue:29 +#: src/components/Pdftool.vue:62 msgid "ISO A3" msgstr "" -#: src/components/Pdftool.vue:30 +#: src/components/Pdftool.vue:63 msgid "ISO A4" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:795 +#: src/components/staging/StagingDetail.vue:176 +msgid "ISRS Code" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:812 msgid "January" msgstr "Januar" -#: src/components/importschedule/Importscheduledetail.vue:801 +#: src/components/importschedule/Importscheduledetail.vue:818 msgid "July" msgstr "Juli" -#: src/components/importschedule/Importscheduledetail.vue:800 +#: src/components/importschedule/Importscheduledetail.vue:817 msgid "June" msgstr "Juni" #: src/components/importqueue/Importqueue.vue:58 -#: src/components/importqueue/Importqueuedetail.vue:45 +#: src/components/importqueue/Importqueuedetail.vue:50 msgid "Kind" msgstr "Art" -#: src/components/Pdftool.vue:20 +#: src/components/Pdftool.vue:39 msgid "landscape" msgstr "Querformat" @@ -433,7 +487,7 @@ msgid "Layers" msgstr "Ebenen" -#: src/store/map.js:424 +#: src/store/map.js:544 msgid "Length" msgstr "Länge" @@ -462,7 +516,7 @@ msgstr "E-Mail wurde gesendet" #: src/components/importschedule/Importschedule.vue:161 -#: src/components/importschedule/Importscheduledetail.vue:641 +#: src/components/importschedule/Importscheduledetail.vue:658 msgid "Manually triggered import: #" msgstr "" @@ -470,16 +524,16 @@ msgid "Map" msgstr "Karte" -#: src/components/importschedule/Importscheduledetail.vue:797 +#: src/components/importschedule/Importscheduledetail.vue:814 msgid "March" msgstr "März" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:132 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:130 #, fuzzy msgid "MaxWidth" msgstr "Maximale Breite" -#: src/components/importschedule/Importscheduledetail.vue:799 +#: src/components/importschedule/Importscheduledetail.vue:816 #, fuzzy msgid "May" msgstr "Karte" @@ -488,28 +542,28 @@ msgid "Measurement" msgstr "Messung" -#: src/components/importqueue/Importqueuedetail.vue:58 +#: src/components/importqueue/Importqueuedetail.vue:63 msgid "Message" msgstr "Nachricht" -#: src/components/importschedule/Importscheduledetail.vue:772 +#: src/components/importschedule/Importscheduledetail.vue:789 msgid "minutes past" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:110 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:109 #, fuzzy msgid "MinWidth" msgstr "Minimale Breite" -#: src/components/importschedule/Importscheduledetail.vue:786 +#: src/components/importschedule/Importscheduledetail.vue:803 msgid "Monday" msgstr "Montag" -#: src/components/importschedule/Importscheduledetail.vue:782 +#: src/components/importschedule/Importscheduledetail.vue:799 msgid "month" msgstr "Monat" -#: src/components/importschedule/Importscheduledetail.vue:198 +#: src/components/importschedule/Importscheduledetail.vue:210 msgid "Monthly" msgstr "monatlich" @@ -518,17 +572,21 @@ msgid "Name" msgstr "Name" -#: src/components/ImportStretches.vue:182 +#: src/components/ImportStretches.vue:184 #, fuzzy msgid "National Object name" msgstr "Narionaler Objektname" +#: src/components/staging/StagingDetail.vue:227 +msgid "New" +msgstr "" + #: src/components/importschedule/Importschedule.vue:93 -#: src/components/importschedule/Importscheduledetail.vue:457 +#: src/components/importschedule/Importscheduledetail.vue:471 msgid "New Import" msgstr "Neuer Import" -#: src/components/ImportStretches.vue:247 +#: src/components/ImportStretches.vue:244 msgid "New stretch" msgstr "" @@ -536,7 +594,7 @@ msgid "No features identified." msgstr "Keine Objekte identifiziert." -#: src/components/Bottlenecks.vue:115 src/components/ImportStretches.vue:59 +#: src/components/Bottlenecks.vue:118 src/components/ImportStretches.vue:61 #: src/components/staging/Staging.vue:36 msgid "No results." msgstr "Keine Ergebnisse." @@ -546,37 +604,41 @@ msgid "No scheduled imports" msgstr "Keine Pläne" -#: src/components/ImportStretches.vue:360 +#: src/components/ImportStretches.vue:357 #, fuzzy msgid "Not implemented" msgstr "Nicht implementiert" -#: src/components/importschedule/Importscheduledetail.vue:805 +#: src/components/importschedule/Importscheduledetail.vue:822 msgid "November" msgstr "November" -#: src/components/importschedule/Importscheduledetail.vue:776 +#: src/components/importschedule/Importscheduledetail.vue:793 #, fuzzy msgid "o' clock" msgstr "Uhr" -#: src/components/ImportStretches.vue:164 +#: src/components/ImportStretches.vue:166 msgid "Object name" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:804 +#: src/components/importschedule/Importscheduledetail.vue:821 msgid "October" msgstr "Oktober" -#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/importschedule/Importscheduledetail.vue:791 msgid "of" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:773 +#: src/components/staging/StagingDetail.vue:224 +msgid "Old" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:790 msgid "on" msgstr "" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:19 msgid "Open in new window" msgstr "In neuem Fenster öffnen" @@ -599,8 +661,12 @@ msgstr "Passwort Zurücksetzung angefragt!" #: src/components/usermanagement/Userdetail.vue:346 -msgid "Password should at least be 8 char long including 1 digit and 1 special char like $" -msgstr "Das Passwort sollte mindestens 8 Zeichen lang sein, eine Ziffer und ein Sonderzeichen wie etwa $ enthalten" +msgid "" +"Password should at least be 8 char long including 1 digit and 1 special char " +"like $" +msgstr "" +"Das Passwort sollte mindestens 8 Zeichen lang sein, eine Ziffer und ein " +"Sonderzeichen wie etwa $ enthalten" #: src/components/usermanagement/Userdetail.vue:342 msgid "Passwords do not match!" @@ -618,21 +684,23 @@ msgid "Please choose a role" msgstr "Bitte wählen Sie eine Rolle aus" -#: src/components/ImportStretches.vue:97 +#: src/components/ImportStretches.vue:99 #, fuzzy msgid "Please enter a countrycode" msgstr "Bitte ein Datum eingeben" #: src/components/ImportSoundingresults.vue:84 -#: src/components/ImportStretches.vue:212 +#: src/components/ImportStretches.vue:209 msgid "Please enter a date" msgstr "Bitte ein Datum eingeben" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:100 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:99 #, fuzzy msgid "Please enter a depth" msgstr "Bitte ein Datum eingeben" +#: src/components/ImportWaterwayProfiles.vue:46 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:37 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:37 #: src/components/importschedule/importtypes/Waterwayarea.vue:37 #: src/components/importschedule/importtypes/Waterwayaxis.vue:37 @@ -645,12 +713,12 @@ msgid "Please enter a level of service" msgstr "Bitte ein Höhenreferenzsystem eingeben" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:146 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:143 #, fuzzy msgid "Please enter a maximum width" msgstr "Bitte ein Datum eingeben" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:124 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:122 #, fuzzy msgid "Please enter a minimum width" msgstr "Bitte ein Datum eingeben" @@ -669,22 +737,24 @@ msgid "Please enter a reference" msgstr "Bitte ein Höhenreferenzsystem eingeben" -#: src/components/ImportStretches.vue:228 +#: src/components/ImportStretches.vue:225 #, fuzzy msgid "Please enter a source" msgstr "Bitte eine Quelle eingeben" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:170 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:167 msgid "Please enter a source orgranization" msgstr "" -#: src/components/ImportStretches.vue:126 +#: src/components/ImportStretches.vue:128 #, fuzzy msgid "Please enter a start point" msgstr "Bitte einen Startpunkt eingeben" +#: src/components/ImportWaterwayProfiles.vue:25 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:19 #: src/components/importschedule/importtypes/Bottleneck.vue:44 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:19 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:19 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:19 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:19 @@ -701,25 +771,27 @@ msgid "Please enter a Username" msgstr "Bitte einen Nutzernamen eingeben" -#: src/components/ImportStretches.vue:151 +#: src/components/ImportStretches.vue:153 #, fuzzy msgid "Please enter an end point" msgstr "Bitte einen Endpunkt eingeben" -#: src/components/ImportStretches.vue:78 +#: src/components/ImportStretches.vue:80 #, fuzzy msgid "Please enter an id" msgstr "Bitte ein Id eingeben" -#: src/components/ImportStretches.vue:176 -#: src/components/ImportStretches.vue:194 +#: src/components/ImportStretches.vue:178 msgid "Please enter an objectname" msgstr "" #: src/components/fairway/Profiles.vue:417 msgid "Please enter correct coordinates in the format: Lat,Lon,Lat,Lon" -msgstr "Bitte geben Sie die Koordinaten in folgendem Format an: Lat,Lon,Lat,Lon" +msgstr "" +"Bitte geben Sie die Koordinaten in folgendem Format an: Lat,Lon,Lat,Lon" +#: src/components/ImportWaterwayProfiles.vue:63 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:57 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:57 #: src/components/importschedule/importtypes/Waterwayarea.vue:57 #: src/components/importschedule/importtypes/Waterwayaxis.vue:57 @@ -735,7 +807,7 @@ msgid "Please select one" msgstr "Bitte auswählen" -#: src/components/Pdftool.vue:21 +#: src/components/Pdftool.vue:40 msgid "portrait" msgstr "Hochformat" @@ -755,6 +827,10 @@ msgid "Projection" msgstr "Projektion" +#: src/components/Pdftool.vue:514 +msgid "Ref gauge" +msgstr "" + #: src/components/Logs.vue:48 src/components/importqueue/Importqueue.vue:84 msgid "Refresh" msgstr "Aktualisieren" @@ -771,11 +847,15 @@ msgid "Request password reset!" msgstr "Passwort-Zurücksetzung anfragen!" +#: src/components/Pdftool.vue:44 +msgid "Resolution" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:78 msgid "Role" msgstr "Rolle" -#: src/components/importschedule/Importscheduledetail.vue:791 +#: src/components/importschedule/Importscheduledetail.vue:808 msgid "Saturday" msgstr "Samstag" @@ -783,17 +863,17 @@ msgid "Saved cross profiles" msgstr "Gespeicherte Profile" -#: src/components/importschedule/Importscheduledetail.vue:711 +#: src/components/importschedule/Importscheduledetail.vue:728 #, fuzzy msgid "Saved import: #" msgstr "Neuer Import" #: src/components/importschedule/Importschedule.vue:36 -#: src/components/importschedule/Importscheduledetail.vue:189 +#: src/components/importschedule/Importscheduledetail.vue:201 msgid "Schedule" msgstr "Zeitplan" -#: src/components/importschedule/Importscheduledetail.vue:147 +#: src/components/importschedule/Importscheduledetail.vue:159 #, fuzzy msgid "Scheduled" msgstr "Zeitplan" @@ -810,7 +890,7 @@ msgid "Send testmail" msgstr "Test-E-Mail versenden" -#: src/components/importschedule/Importscheduledetail.vue:803 +#: src/components/importschedule/Importscheduledetail.vue:820 msgid "September" msgstr "September" @@ -819,11 +899,15 @@ msgid "Signer" msgstr "Überprüft durch" -#: src/components/importschedule/Importscheduledetail.vue:167 +#: src/components/importschedule/Importscheduledetail.vue:179 #, fuzzy msgid "Simple schedule" msgstr "Zeitplan" +#: src/components/Pdftool.vue:56 +msgid "Size" +msgstr "" + #: src/components/Identify.vue:60 msgid "" "Some data ©\n" @@ -831,6 +915,8 @@ " contributors." msgstr "" +#: src/components/ImportWaterwayProfiles.vue:55 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:45 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:45 #: src/components/importschedule/importtypes/Waterwayarea.vue:45 #: src/components/importschedule/importtypes/Waterwayaxis.vue:45 @@ -842,7 +928,7 @@ msgid "Sounding Result" msgstr "Seichtstellenvermessung" -#: src/components/ImportStretches.vue:217 +#: src/components/ImportStretches.vue:214 msgid "Source" msgstr "" @@ -851,7 +937,7 @@ msgid "Source organization" msgstr "Bitte ein Datum eingeben" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:157 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:154 msgid "Source orgranization" msgstr "" @@ -871,7 +957,7 @@ msgid "Start" msgstr "Start" -#: src/components/ImportStretches.vue:106 +#: src/components/ImportStretches.vue:108 #, fuzzy msgid "Start rhm" msgstr "Start" @@ -880,16 +966,16 @@ msgid "Starting import for " msgstr "Import gestartet " -#: src/components/ImportApprovedGaugeMeasurement.vue:102 +#: src/components/ImportApprovedGaugeMeasurement.vue:99 msgid "Starting import of Approved Gauge Measurements" msgstr "" -#: src/components/ImportStretches.vue:475 +#: src/components/ImportStretches.vue:472 #, fuzzy msgid "Starting import of stretch" msgstr "Import gestartet " -#: src/components/ImportStretches.vue:157 +#: src/components/ImportStretches.vue:159 #, fuzzy msgid "Startpoint is not before endpoint." msgstr "Der Startpunkt ist nicht vor dem Endpunkt." @@ -898,8 +984,8 @@ msgid "State" msgstr "Zustand" -#: src/components/ImportStretches.vue:241 -#: src/components/importschedule/Importscheduledetail.vue:345 +#: src/components/ImportStretches.vue:238 +#: src/components/importschedule/Importscheduledetail.vue:357 #: src/components/usermanagement/Userdetail.vue:129 msgid "Submit" msgstr "Abschicken" @@ -912,15 +998,19 @@ msgid "Successful" msgstr "Erfolgreich" -#: src/components/importschedule/Importscheduledetail.vue:792 +#: src/components/importschedule/Importscheduledetail.vue:809 msgid "Sunday" msgstr "Sonntag" +#: src/components/Pdftool.vue:506 +msgid "Survey date" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:88 msgid "Sysadmin" msgstr "Sys-Admin" -#: src/components/usermanagement/Usermanagement.vue:326 +#: src/components/usermanagement/Usermanagement.vue:365 #, fuzzy msgid "System-Administrator" msgstr "System-Administration" @@ -933,24 +1023,28 @@ msgid "Systemconfiguration" msgstr "System-Konfiguation" +#: src/components/ImportWaterwayProfiles.vue:163 +msgid "this" +msgstr "" + #: src/components/Identify.vue:51 msgid "" "This app uses <i>gemma</i>, which is Free Software under <br/>\n" " %{ license } without warranty, see docs for details." msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:789 +#: src/components/importschedule/Importscheduledetail.vue:806 msgid "Thursday" msgstr "Donnerstag" -#: src/components/ImportApprovedGaugeMeasurement.vue:45 -#: src/components/ImportWaterwayProfiles.vue:43 -#: src/components/importschedule/Importscheduledetail.vue:358 +#: src/components/ImportApprovedGaugeMeasurement.vue:42 +#: src/components/ImportWaterwayProfiles.vue:99 +#: src/components/importschedule/Importscheduledetail.vue:370 #, fuzzy msgid "Trigger import" msgstr "Neuer Import" -#: src/components/importschedule/Importscheduledetail.vue:787 +#: src/components/importschedule/Importscheduledetail.vue:804 msgid "Tuesday" msgstr "Dienstag" @@ -959,12 +1053,7 @@ msgid "Type" msgstr "Typ" -#: src/components/ImportWaterwayProfiles.vue:89 -#, fuzzy -msgid "under construction" -msgstr "Im Aufbau" - -#: src/components/importschedule/Importscheduledetail.vue:741 +#: src/components/importschedule/Importscheduledetail.vue:758 #, fuzzy msgid "update import: #" msgstr "Neuer Import" @@ -973,8 +1062,10 @@ msgid "Upload" msgstr "Hochladen" +#: src/components/ImportWaterwayProfiles.vue:16 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:5 #: src/components/importschedule/importtypes/Bottleneck.vue:5 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:5 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:5 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:5 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:5 @@ -1003,15 +1094,21 @@ #: src/components/Identify.vue:65 msgid "" "Uses\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " under %{ geoLicense }." msgstr "" "Verwendet\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " unter %{ geoLicense }." +#: src/components/staging/StagingDetail.vue:218 +msgid "Value" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:91 -#: src/components/usermanagement/Usermanagement.vue:327 +#: src/components/usermanagement/Usermanagement.vue:366 #, fuzzy msgid "Waterway Admin" msgstr "Waterway-Admin" @@ -1030,27 +1127,35 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:94 -#: src/components/usermanagement/Usermanagement.vue:328 +#: src/components/usermanagement/Usermanagement.vue:367 #, fuzzy msgid "Waterway User" msgstr "Waterway-Benutzer" -#: src/components/importschedule/Importscheduledetail.vue:788 +#: src/components/importschedule/Importscheduledetail.vue:805 msgid "Wednesday" msgstr "Mittwoch" -#: src/components/importschedule/Importscheduledetail.vue:781 +#: src/components/importschedule/Importscheduledetail.vue:798 msgid "week" msgstr "Woche" -#: src/components/importschedule/Importscheduledetail.vue:197 +#: src/components/importschedule/Importscheduledetail.vue:209 msgid "Weekly" msgstr "wöchentlich" -#: src/components/importschedule/Importscheduledetail.vue:783 +#: src/components/importschedule/Importscheduledetail.vue:800 msgid "year" msgstr "Jahr" #: src/components/fairway/Profiles.vue:443 -msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile." -msgstr "Sie können diese Koordinaten aus dem \"Gespeicherte Profile\"-Menü auswählen, um diesen Profilschnitt wieder herzustellen." +msgid "" +"You can now select these coordinates from the \"Saved cross profiles\" menu " +"to restore this cross profile." +msgstr "" +"Sie können diese Koordinaten aus dem \"Gespeicherte Profile\"-Menü " +"auswählen, um diesen Profilschnitt wieder herzustellen." + +#, fuzzy +#~ msgid "under construction" +#~ msgstr "Im Aufbau"
--- a/client/src/locale/en_GB/LC_MESSAGES/app.po Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/locale/en_GB/LC_MESSAGES/app.po Tue Feb 12 11:11:32 2019 +0100 @@ -17,11 +17,23 @@ "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: src/components/Pdftool.vue:400 +#: src/components/ImportWaterwayProfiles.vue:164 +msgid " was successfully uploaded." +msgstr "" + +#: src/components/Pdftool.vue:453 msgid "– generated by:" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:778 +#: src/components/staging/StagingDetail.vue:188 +msgid "( New )" +msgstr "" + +#: src/components/Pdftool.vue:29 +msgid "{{ template.name }}" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:795 msgid "15 minutes" msgstr "" @@ -33,23 +45,27 @@ msgid "Accesslog" msgstr "" -#: src/components/usermanagement/Usermanagement.vue:104 +#: src/components/usermanagement/Usermanagement.vue:102 msgid "Add User" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:798 +#: src/components/staging/StagingDetail.vue:19 +msgid "Approved Gauge Measurements" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:815 msgid "April" msgstr "" -#: src/store/map.js:445 +#: src/store/map.js:565 msgid "Area" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:775 +#: src/components/importschedule/Importscheduledetail.vue:792 msgid "at" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:802 +#: src/components/importschedule/Importscheduledetail.vue:819 msgid "August" msgstr "" @@ -58,45 +74,47 @@ msgstr "" #: src/components/importschedule/Importscheduledetail.vue:34 -msgid "Available fairway fpths" +msgid "Available fairway depths" msgstr "" #: src/components/Login.vue:70 msgid "back to login" msgstr "" -#: src/components/Bottlenecks.vue:274 -#: src/components/ImportApprovedGaugeMeasurement.vue:111 +#: src/components/Bottlenecks.vue:277 +#: src/components/ImportApprovedGaugeMeasurement.vue:108 #: src/components/ImportSoundingresults.vue:216 #: src/components/ImportSoundingresults.vue:255 #: src/components/ImportSoundingresults.vue:286 -#: src/components/ImportStretches.vue:306 -#: src/components/ImportStretches.vue:313 -#: src/components/ImportStretches.vue:485 src/components/Search.vue:258 +#: src/components/ImportStretches.vue:303 +#: src/components/ImportStretches.vue:310 +#: src/components/ImportStretches.vue:482 +#: src/components/ImportWaterwayProfiles.vue:175 src/components/Search.vue:258 #: src/components/Systemconfiguration.vue:114 #: src/components/Systemconfiguration.vue:129 #: src/components/Systemconfiguration.vue:148 #: src/components/Systemconfiguration.vue:165 #: src/components/importqueue/Importqueue.vue:160 #: src/components/importqueue/Importqueue.vue:180 -#: src/components/importqueue/Importqueuedetail.vue:182 +#: src/components/importqueue/Importqueuedetail.vue:214 #: src/components/importschedule/Importschedule.vue:148 #: src/components/importschedule/Importschedule.vue:167 #: src/components/importschedule/Importschedule.vue:176 #: src/components/importschedule/Importschedule.vue:198 -#: src/components/importschedule/Importscheduledetail.vue:647 -#: src/components/importschedule/Importscheduledetail.vue:727 -#: src/components/importschedule/Importscheduledetail.vue:757 -#: src/components/staging/StagingDetail.vue:251 +#: src/components/importschedule/Importscheduledetail.vue:664 +#: src/components/importschedule/Importscheduledetail.vue:744 +#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/staging/StagingDetail.vue:364 +#: src/components/staging/StagingDetail.vue:418 #: src/components/usermanagement/Userdetail.vue:304 #: src/components/usermanagement/Userdetail.vue:376 -#: src/components/usermanagement/Usermanagement.vue:298 -#: src/components/usermanagement/Usermanagement.vue:306 -#: src/components/usermanagement/Usermanagement.vue:340 +#: src/components/usermanagement/Usermanagement.vue:337 +#: src/components/usermanagement/Usermanagement.vue:345 +#: src/components/usermanagement/Usermanagement.vue:379 msgid "Backend Error" msgstr "" -#: src/components/ImportSoundingresults.vue:16 +#: src/components/ImportSoundingresults.vue:16 src/components/Pdftool.vue:496 msgid "Bottleneck" msgstr "" @@ -110,7 +128,7 @@ #: src/components/Bottlenecks.vue:4 src/components/Sidebar.vue:27 #: src/components/importschedule/Importscheduledetail.vue:25 -#: src/components/staging/StagingDetail.vue:11 +#: src/components/staging/StagingDetail.vue:12 msgid "Bottlenecks" msgstr "" @@ -127,13 +145,14 @@ msgid "choose .zip- file" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:78 -#: src/components/ImportWaterwayProfiles.vue:75 +#: src/components/ImportApprovedGaugeMeasurement.vue:75 +#: src/components/ImportWaterwayProfiles.vue:135 +#: src/components/ImportWaterwayProfiles.vue:169 msgid "choose file to upload" msgstr "" -#: src/components/Pdftool.vue:18 -msgid "Choose format:" +#: src/components/Pdftool.vue:23 +msgid "Chose preset" msgstr "" #: src/components/fairway/Profiles.vue:64 @@ -157,25 +176,29 @@ msgid "Country" msgstr "" -#: src/components/ImportStretches.vue:85 +#: src/components/ImportStretches.vue:87 msgid "Countrycode" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:333 +#: src/components/importschedule/Importscheduledetail.vue:345 msgid "Cronstring" msgstr "" #: src/components/ImportSoundingresults.vue:72 -#: src/components/importqueue/Importqueuedetail.vue:49 +#: src/components/importqueue/Importqueuedetail.vue:54 #: src/components/staging/Staging.vue:13 msgid "Date" msgstr "" -#: src/components/ImportStretches.vue:201 +#: src/components/ImportStretches.vue:198 msgid "Date info" msgstr "" -#: src/components/Pdftool.vue:396 +#: src/components/staging/StagingDetail.vue:179 +msgid "Date of measurement" +msgstr "" + +#: src/components/Pdftool.vue:449 msgid "Date of publication:" msgstr "" @@ -183,11 +206,11 @@ msgid "Datum" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:780 +#: src/components/importschedule/Importscheduledetail.vue:797 msgid "day" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:806 +#: src/components/importschedule/Importscheduledetail.vue:823 msgid "December" msgstr "" @@ -195,11 +218,15 @@ msgid "Define stretches" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:123 +msgid "Delete user" +msgstr "" + #: src/components/importschedule/Importschedule.vue:192 msgid "Deleted import: #" msgstr "" -#: src/components/ImportStretches.vue:361 +#: src/components/ImportStretches.vue:358 msgid "Deleting " msgstr "" @@ -207,14 +234,26 @@ msgid "Depth" msgstr "" +#: src/components/Pdftool.vue:522 +msgid "Depth relativ to" +msgstr "" + #: src/components/ImportSoundingresults.vue:52 msgid "Depthreference" msgstr "" +#: src/components/importschedule/Importscheduledetail.vue:49 +msgid "Distance marks ashore" +msgstr "" + #: src/components/importschedule/Importscheduledetail.vue:46 msgid "Distance marks virtual" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:131 +msgid "Do you really want to delete the following user account:" +msgstr "" + #: src/components/Pdftool.vue:10 msgid "Download" msgstr "" @@ -231,11 +270,11 @@ msgid "Email address" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:53 +#: src/components/importschedule/Importscheduledetail.vue:56 msgid "Email Notification" msgstr "" -#: src/components/ImportStretches.vue:131 +#: src/components/ImportStretches.vue:133 msgid "End rhm" msgstr "" @@ -267,7 +306,7 @@ msgid "Errorlog" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:771 +#: src/components/importschedule/Importscheduledetail.vue:788 msgid "Every" msgstr "" @@ -279,13 +318,15 @@ msgid "Fairway dimension" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:34 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:25 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:25 #: src/components/importschedule/importtypes/Waterwayarea.vue:25 #: src/components/importschedule/importtypes/Waterwayaxis.vue:25 msgid "Featuretype" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:796 +#: src/components/importschedule/Importscheduledetail.vue:813 msgid "February" msgstr "" @@ -293,7 +334,11 @@ msgid "Forgot password" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:790 +#: src/components/Pdftool.vue:33 +msgid "Format" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:807 msgid "Friday" msgstr "" @@ -301,11 +346,11 @@ msgid "Gauge measurement" msgstr "" -#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:61 +#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:96 msgid "Generate PDF" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:779 +#: src/components/importschedule/Importscheduledetail.vue:796 msgid "hour" msgstr "" @@ -313,7 +358,7 @@ msgid "Id" msgstr "" -#: src/components/ImportStretches.vue:66 +#: src/components/ImportStretches.vue:68 msgid "ID" msgstr "" @@ -321,19 +366,19 @@ msgid "Identified" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:101 +#: src/components/ImportApprovedGaugeMeasurement.vue:98 #: src/components/ImportSoundingresults.vue:278 -#: src/components/ImportStretches.vue:474 -#: src/components/ImportWaterwayProfiles.vue:88 src/components/Sidebar.vue:58 +#: src/components/ImportStretches.vue:471 +#: src/components/ImportWaterwayProfiles.vue:162 src/components/Sidebar.vue:58 #: src/components/importschedule/Importschedule.vue:33 -#: src/components/importschedule/Importscheduledetail.vue:456 -#: src/components/importschedule/Importscheduledetail.vue:640 -#: src/components/importschedule/Importscheduledetail.vue:710 -#: src/components/importschedule/Importscheduledetail.vue:740 +#: src/components/importschedule/Importscheduledetail.vue:470 +#: src/components/importschedule/Importscheduledetail.vue:657 +#: src/components/importschedule/Importscheduledetail.vue:727 +#: src/components/importschedule/Importscheduledetail.vue:757 msgid "Import" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:11 +#: src/components/ImportApprovedGaugeMeasurement.vue:8 #: src/components/Sidebar.vue:76 msgid "Import approved gaugemeasurements" msgstr "" @@ -350,7 +395,7 @@ msgid "Import waterway profiles" msgstr "" -#: src/components/ImportWaterwayProfiles.vue:11 +#: src/components/ImportWaterwayProfiles.vue:8 msgid "Import Waterwayprofiles" msgstr "" @@ -382,32 +427,36 @@ msgid "Invalid input" msgstr "" -#: src/components/Pdftool.vue:29 +#: src/components/Pdftool.vue:62 msgid "ISO A3" msgstr "" -#: src/components/Pdftool.vue:30 +#: src/components/Pdftool.vue:63 msgid "ISO A4" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:795 +#: src/components/staging/StagingDetail.vue:176 +msgid "ISRS Code" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:812 msgid "January" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:801 +#: src/components/importschedule/Importscheduledetail.vue:818 msgid "July" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:800 +#: src/components/importschedule/Importscheduledetail.vue:817 msgid "June" msgstr "" #: src/components/importqueue/Importqueue.vue:58 -#: src/components/importqueue/Importqueuedetail.vue:45 +#: src/components/importqueue/Importqueuedetail.vue:50 msgid "Kind" msgstr "" -#: src/components/Pdftool.vue:20 +#: src/components/Pdftool.vue:39 msgid "landscape" msgstr "" @@ -423,7 +472,7 @@ msgid "Layers" msgstr "" -#: src/store/map.js:424 +#: src/store/map.js:544 msgid "Length" msgstr "" @@ -452,7 +501,7 @@ msgstr "" #: src/components/importschedule/Importschedule.vue:161 -#: src/components/importschedule/Importscheduledetail.vue:641 +#: src/components/importschedule/Importscheduledetail.vue:658 msgid "Manually triggered import: #" msgstr "" @@ -460,15 +509,15 @@ msgid "Map" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:797 +#: src/components/importschedule/Importscheduledetail.vue:814 msgid "March" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:132 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:130 msgid "MaxWidth" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:799 +#: src/components/importschedule/Importscheduledetail.vue:816 msgid "May" msgstr "" @@ -476,27 +525,27 @@ msgid "Measurement" msgstr "" -#: src/components/importqueue/Importqueuedetail.vue:58 +#: src/components/importqueue/Importqueuedetail.vue:63 msgid "Message" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:772 +#: src/components/importschedule/Importscheduledetail.vue:789 msgid "minutes past" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:110 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:109 msgid "MinWidth" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:786 +#: src/components/importschedule/Importscheduledetail.vue:803 msgid "Monday" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:782 +#: src/components/importschedule/Importscheduledetail.vue:799 msgid "month" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:198 +#: src/components/importschedule/Importscheduledetail.vue:210 msgid "Monthly" msgstr "" @@ -505,16 +554,20 @@ msgid "Name" msgstr "" -#: src/components/ImportStretches.vue:182 +#: src/components/ImportStretches.vue:184 msgid "National Object name" msgstr "" +#: src/components/staging/StagingDetail.vue:227 +msgid "New" +msgstr "" + #: src/components/importschedule/Importschedule.vue:93 -#: src/components/importschedule/Importscheduledetail.vue:457 +#: src/components/importschedule/Importscheduledetail.vue:471 msgid "New Import" msgstr "" -#: src/components/ImportStretches.vue:247 +#: src/components/ImportStretches.vue:244 msgid "New stretch" msgstr "" @@ -522,7 +575,7 @@ msgid "No features identified." msgstr "" -#: src/components/Bottlenecks.vue:115 src/components/ImportStretches.vue:59 +#: src/components/Bottlenecks.vue:118 src/components/ImportStretches.vue:61 #: src/components/staging/Staging.vue:36 msgid "No results." msgstr "" @@ -531,35 +584,39 @@ msgid "No scheduled imports" msgstr "" -#: src/components/ImportStretches.vue:360 +#: src/components/ImportStretches.vue:357 msgid "Not implemented" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:805 +#: src/components/importschedule/Importscheduledetail.vue:822 msgid "November" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:776 +#: src/components/importschedule/Importscheduledetail.vue:793 msgid "o' clock" msgstr "" -#: src/components/ImportStretches.vue:164 +#: src/components/ImportStretches.vue:166 msgid "Object name" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:804 +#: src/components/importschedule/Importscheduledetail.vue:821 msgid "October" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/importschedule/Importscheduledetail.vue:791 msgid "of" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:773 +#: src/components/staging/StagingDetail.vue:224 +msgid "Old" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:790 msgid "on" msgstr "" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:19 msgid "Open in new window" msgstr "" @@ -582,7 +639,9 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:346 -msgid "Password should at least be 8 char long including 1 digit and 1 special char like $" +msgid "" +"Password should at least be 8 char long including 1 digit and 1 special char " +"like $" msgstr "" #: src/components/usermanagement/Userdetail.vue:342 @@ -601,19 +660,21 @@ msgid "Please choose a role" msgstr "" -#: src/components/ImportStretches.vue:97 +#: src/components/ImportStretches.vue:99 msgid "Please enter a countrycode" msgstr "" #: src/components/ImportSoundingresults.vue:84 -#: src/components/ImportStretches.vue:212 +#: src/components/ImportStretches.vue:209 msgid "Please enter a date" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:100 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:99 msgid "Please enter a depth" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:46 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:37 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:37 #: src/components/importschedule/importtypes/Waterwayarea.vue:37 #: src/components/importschedule/importtypes/Waterwayaxis.vue:37 @@ -624,11 +685,11 @@ msgid "Please enter a level of service" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:146 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:143 msgid "Please enter a maximum width" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:124 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:122 msgid "Please enter a minimum width" msgstr "" @@ -645,20 +706,22 @@ msgid "Please enter a reference" msgstr "" -#: src/components/ImportStretches.vue:228 +#: src/components/ImportStretches.vue:225 msgid "Please enter a source" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:170 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:167 msgid "Please enter a source orgranization" msgstr "" -#: src/components/ImportStretches.vue:126 +#: src/components/ImportStretches.vue:128 msgid "Please enter a start point" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:25 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:19 #: src/components/importschedule/importtypes/Bottleneck.vue:44 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:19 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:19 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:19 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:19 @@ -673,16 +736,15 @@ msgid "Please enter a Username" msgstr "" -#: src/components/ImportStretches.vue:151 +#: src/components/ImportStretches.vue:153 msgid "Please enter an end point" msgstr "" -#: src/components/ImportStretches.vue:78 +#: src/components/ImportStretches.vue:80 msgid "Please enter an id" msgstr "" -#: src/components/ImportStretches.vue:176 -#: src/components/ImportStretches.vue:194 +#: src/components/ImportStretches.vue:178 msgid "Please enter an objectname" msgstr "" @@ -690,6 +752,8 @@ msgid "Please enter correct coordinates in the format: Lat,Lon,Lat,Lon" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:63 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:57 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:57 #: src/components/importschedule/importtypes/Waterwayarea.vue:57 #: src/components/importschedule/importtypes/Waterwayaxis.vue:57 @@ -705,7 +769,7 @@ msgid "Please select one" msgstr "" -#: src/components/Pdftool.vue:21 +#: src/components/Pdftool.vue:40 msgid "portrait" msgstr "" @@ -725,6 +789,10 @@ msgid "Projection" msgstr "" +#: src/components/Pdftool.vue:514 +msgid "Ref gauge" +msgstr "" + #: src/components/Logs.vue:48 src/components/importqueue/Importqueue.vue:84 msgid "Refresh" msgstr "" @@ -741,11 +809,15 @@ msgid "Request password reset!" msgstr "" +#: src/components/Pdftool.vue:44 +msgid "Resolution" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:78 msgid "Role" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:791 +#: src/components/importschedule/Importscheduledetail.vue:808 msgid "Saturday" msgstr "" @@ -753,16 +825,16 @@ msgid "Saved cross profiles" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:711 +#: src/components/importschedule/Importscheduledetail.vue:728 msgid "Saved import: #" msgstr "" #: src/components/importschedule/Importschedule.vue:36 -#: src/components/importschedule/Importscheduledetail.vue:189 +#: src/components/importschedule/Importscheduledetail.vue:201 msgid "Schedule" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:147 +#: src/components/importschedule/Importscheduledetail.vue:159 msgid "Scheduled" msgstr "" @@ -778,7 +850,7 @@ msgid "Send testmail" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:803 +#: src/components/importschedule/Importscheduledetail.vue:820 msgid "September" msgstr "" @@ -786,10 +858,14 @@ msgid "Signer" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:167 +#: src/components/importschedule/Importscheduledetail.vue:179 msgid "Simple schedule" msgstr "" +#: src/components/Pdftool.vue:56 +msgid "Size" +msgstr "" + #: src/components/Identify.vue:60 msgid "" "Some data ©\n" @@ -797,6 +873,8 @@ " contributors." msgstr "" +#: src/components/ImportWaterwayProfiles.vue:55 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:45 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:45 #: src/components/importschedule/importtypes/Waterwayarea.vue:45 #: src/components/importschedule/importtypes/Waterwayaxis.vue:45 @@ -807,7 +885,7 @@ msgid "Sounding Result" msgstr "" -#: src/components/ImportStretches.vue:217 +#: src/components/ImportStretches.vue:214 msgid "Source" msgstr "" @@ -815,7 +893,7 @@ msgid "Source organization" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:157 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:154 msgid "Source orgranization" msgstr "" @@ -835,7 +913,7 @@ msgid "Start" msgstr "" -#: src/components/ImportStretches.vue:106 +#: src/components/ImportStretches.vue:108 msgid "Start rhm" msgstr "" @@ -843,15 +921,15 @@ msgid "Starting import for " msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:102 +#: src/components/ImportApprovedGaugeMeasurement.vue:99 msgid "Starting import of Approved Gauge Measurements" msgstr "" -#: src/components/ImportStretches.vue:475 +#: src/components/ImportStretches.vue:472 msgid "Starting import of stretch" msgstr "" -#: src/components/ImportStretches.vue:157 +#: src/components/ImportStretches.vue:159 msgid "Startpoint is not before endpoint." msgstr "" @@ -859,8 +937,8 @@ msgid "State" msgstr "" -#: src/components/ImportStretches.vue:241 -#: src/components/importschedule/Importscheduledetail.vue:345 +#: src/components/ImportStretches.vue:238 +#: src/components/importschedule/Importscheduledetail.vue:357 #: src/components/usermanagement/Userdetail.vue:129 msgid "Submit" msgstr "" @@ -873,15 +951,19 @@ msgid "Successful" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:792 +#: src/components/importschedule/Importscheduledetail.vue:809 msgid "Sunday" msgstr "" +#: src/components/Pdftool.vue:506 +msgid "Survey date" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:88 msgid "Sysadmin" msgstr "" -#: src/components/usermanagement/Usermanagement.vue:326 +#: src/components/usermanagement/Usermanagement.vue:365 msgid "System-Administrator" msgstr "" @@ -893,23 +975,27 @@ msgid "Systemconfiguration" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:163 +msgid "this" +msgstr "" + #: src/components/Identify.vue:51 msgid "" "This app uses <i>gemma</i>, which is Free Software under <br/>\n" " %{ license } without warranty, see docs for details." msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:789 +#: src/components/importschedule/Importscheduledetail.vue:806 msgid "Thursday" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:45 -#: src/components/ImportWaterwayProfiles.vue:43 -#: src/components/importschedule/Importscheduledetail.vue:358 +#: src/components/ImportApprovedGaugeMeasurement.vue:42 +#: src/components/ImportWaterwayProfiles.vue:99 +#: src/components/importschedule/Importscheduledetail.vue:370 msgid "Trigger import" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:787 +#: src/components/importschedule/Importscheduledetail.vue:804 msgid "Tuesday" msgstr "" @@ -918,11 +1004,7 @@ msgid "Type" msgstr "" -#: src/components/ImportWaterwayProfiles.vue:89 -msgid "under construction" -msgstr "" - -#: src/components/importschedule/Importscheduledetail.vue:741 +#: src/components/importschedule/Importscheduledetail.vue:758 msgid "update import: #" msgstr "" @@ -930,8 +1012,10 @@ msgid "Upload" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:16 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:5 #: src/components/importschedule/importtypes/Bottleneck.vue:5 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:5 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:5 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:5 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:5 @@ -960,12 +1044,17 @@ #: src/components/Identify.vue:65 msgid "" "Uses\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " under %{ geoLicense }." msgstr "" +#: src/components/staging/StagingDetail.vue:218 +msgid "Value" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:91 -#: src/components/usermanagement/Usermanagement.vue:327 +#: src/components/usermanagement/Usermanagement.vue:366 msgid "Waterway Admin" msgstr "" @@ -982,26 +1071,28 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:94 -#: src/components/usermanagement/Usermanagement.vue:328 +#: src/components/usermanagement/Usermanagement.vue:367 msgid "Waterway User" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:788 +#: src/components/importschedule/Importscheduledetail.vue:805 msgid "Wednesday" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:781 +#: src/components/importschedule/Importscheduledetail.vue:798 msgid "week" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:197 +#: src/components/importschedule/Importscheduledetail.vue:209 msgid "Weekly" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:783 +#: src/components/importschedule/Importscheduledetail.vue:800 msgid "year" msgstr "" #: src/components/fairway/Profiles.vue:443 -msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile." +msgid "" +"You can now select these coordinates from the \"Saved cross profiles\" menu " +"to restore this cross profile." msgstr ""
--- a/client/src/locale/hr_HR/LC_MESSAGES/app.po Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/locale/hr_HR/LC_MESSAGES/app.po Tue Feb 12 11:11:32 2019 +0100 @@ -10,19 +10,33 @@ "POT-Creation-Date: 2019-01-25 10:11+0100\n" "PO-Revision-Date: 2019-01-23 15:28+0000\n" "Last-Translator: Andrija Spaic <andrija.spaic@vodniputovi.hr>\n" -"Language-Team: Croatian <https://hosted.weblate.org/projects/gemma/client/hr/>\n" +"Language-Team: Croatian <https://hosted.weblate.org/projects/gemma/client/hr/" +">\n" "Language: hr_HR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" "X-Generator: Weblate 3.5-dev\n" -#: src/components/Pdftool.vue:400 +#: src/components/ImportWaterwayProfiles.vue:164 +msgid " was successfully uploaded." +msgstr "" + +#: src/components/Pdftool.vue:453 msgid "– generated by:" msgstr "– kreiran od:" -#: src/components/importschedule/Importscheduledetail.vue:778 +#: src/components/staging/StagingDetail.vue:188 +msgid "( New )" +msgstr "" + +#: src/components/Pdftool.vue:29 +msgid "{{ template.name }}" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:795 msgid "15 minutes" msgstr "15 minuta" @@ -34,23 +48,28 @@ msgid "Accesslog" msgstr "Zapis pristupa" -#: src/components/usermanagement/Usermanagement.vue:104 +#: src/components/usermanagement/Usermanagement.vue:102 msgid "Add User" msgstr "Dodaj korisnika" -#: src/components/importschedule/Importscheduledetail.vue:798 +#: src/components/staging/StagingDetail.vue:19 +#, fuzzy +msgid "Approved Gauge Measurements" +msgstr "Uvoz odobrenih podataka o vodostaju" + +#: src/components/importschedule/Importscheduledetail.vue:815 msgid "April" msgstr "Travanj" -#: src/store/map.js:445 +#: src/store/map.js:565 msgid "Area" msgstr "Područje" -#: src/components/importschedule/Importscheduledetail.vue:775 +#: src/components/importschedule/Importscheduledetail.vue:792 msgid "at" msgstr "na" -#: src/components/importschedule/Importscheduledetail.vue:802 +#: src/components/importschedule/Importscheduledetail.vue:819 msgid "August" msgstr "Kolovoz" @@ -60,45 +79,47 @@ #: src/components/importschedule/Importscheduledetail.vue:34 #, fuzzy -msgid "Available fairway fpths" +msgid "Available fairway depths" msgstr "Dostupne dubine plovnog puta" #: src/components/Login.vue:70 msgid "back to login" msgstr "natrag na prijavu" -#: src/components/Bottlenecks.vue:274 -#: src/components/ImportApprovedGaugeMeasurement.vue:111 +#: src/components/Bottlenecks.vue:277 +#: src/components/ImportApprovedGaugeMeasurement.vue:108 #: src/components/ImportSoundingresults.vue:216 #: src/components/ImportSoundingresults.vue:255 #: src/components/ImportSoundingresults.vue:286 -#: src/components/ImportStretches.vue:306 -#: src/components/ImportStretches.vue:313 -#: src/components/ImportStretches.vue:485 src/components/Search.vue:258 +#: src/components/ImportStretches.vue:303 +#: src/components/ImportStretches.vue:310 +#: src/components/ImportStretches.vue:482 +#: src/components/ImportWaterwayProfiles.vue:175 src/components/Search.vue:258 #: src/components/Systemconfiguration.vue:114 #: src/components/Systemconfiguration.vue:129 #: src/components/Systemconfiguration.vue:148 #: src/components/Systemconfiguration.vue:165 #: src/components/importqueue/Importqueue.vue:160 #: src/components/importqueue/Importqueue.vue:180 -#: src/components/importqueue/Importqueuedetail.vue:182 +#: src/components/importqueue/Importqueuedetail.vue:214 #: src/components/importschedule/Importschedule.vue:148 #: src/components/importschedule/Importschedule.vue:167 #: src/components/importschedule/Importschedule.vue:176 #: src/components/importschedule/Importschedule.vue:198 -#: src/components/importschedule/Importscheduledetail.vue:647 -#: src/components/importschedule/Importscheduledetail.vue:727 -#: src/components/importschedule/Importscheduledetail.vue:757 -#: src/components/staging/StagingDetail.vue:251 +#: src/components/importschedule/Importscheduledetail.vue:664 +#: src/components/importschedule/Importscheduledetail.vue:744 +#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/staging/StagingDetail.vue:364 +#: src/components/staging/StagingDetail.vue:418 #: src/components/usermanagement/Userdetail.vue:304 #: src/components/usermanagement/Userdetail.vue:376 -#: src/components/usermanagement/Usermanagement.vue:298 -#: src/components/usermanagement/Usermanagement.vue:306 -#: src/components/usermanagement/Usermanagement.vue:340 +#: src/components/usermanagement/Usermanagement.vue:337 +#: src/components/usermanagement/Usermanagement.vue:345 +#: src/components/usermanagement/Usermanagement.vue:379 msgid "Backend Error" msgstr "Greška Servera" -#: src/components/ImportSoundingresults.vue:16 +#: src/components/ImportSoundingresults.vue:16 src/components/Pdftool.vue:496 msgid "Bottleneck" msgstr "Kritični sektor" @@ -112,7 +133,7 @@ #: src/components/Bottlenecks.vue:4 src/components/Sidebar.vue:27 #: src/components/importschedule/Importscheduledetail.vue:25 -#: src/components/staging/StagingDetail.vue:11 +#: src/components/staging/StagingDetail.vue:12 msgid "Bottlenecks" msgstr "Kritični sektori" @@ -129,13 +150,15 @@ msgid "choose .zip- file" msgstr "odaberi .zip- datoteku" -#: src/components/ImportApprovedGaugeMeasurement.vue:78 -#: src/components/ImportWaterwayProfiles.vue:75 +#: src/components/ImportApprovedGaugeMeasurement.vue:75 +#: src/components/ImportWaterwayProfiles.vue:135 +#: src/components/ImportWaterwayProfiles.vue:169 msgid "choose file to upload" msgstr "odaberi datoteku za učitavanje" -#: src/components/Pdftool.vue:18 -msgid "Choose format:" +#: src/components/Pdftool.vue:23 +#, fuzzy +msgid "Chose preset" msgstr "Odaberite format:" #: src/components/fairway/Profiles.vue:64 @@ -159,25 +182,30 @@ msgid "Country" msgstr "Država" -#: src/components/ImportStretches.vue:85 +#: src/components/ImportStretches.vue:87 msgid "Countrycode" msgstr "Oznaka države" -#: src/components/importschedule/Importscheduledetail.vue:333 +#: src/components/importschedule/Importscheduledetail.vue:345 msgid "Cronstring" msgstr "Crontab - linija" #: src/components/ImportSoundingresults.vue:72 -#: src/components/importqueue/Importqueuedetail.vue:49 +#: src/components/importqueue/Importqueuedetail.vue:54 #: src/components/staging/Staging.vue:13 msgid "Date" msgstr "Datum" -#: src/components/ImportStretches.vue:201 +#: src/components/ImportStretches.vue:198 msgid "Date info" msgstr "Datum" -#: src/components/Pdftool.vue:396 +#: src/components/staging/StagingDetail.vue:179 +#, fuzzy +msgid "Date of measurement" +msgstr "Podatak o vodostaju" + +#: src/components/Pdftool.vue:449 msgid "Date of publication:" msgstr "Datum objavljivanja:" @@ -185,11 +213,11 @@ msgid "Datum" msgstr "Datum" -#: src/components/importschedule/Importscheduledetail.vue:780 +#: src/components/importschedule/Importscheduledetail.vue:797 msgid "day" msgstr "Dan" -#: src/components/importschedule/Importscheduledetail.vue:806 +#: src/components/importschedule/Importscheduledetail.vue:823 msgid "December" msgstr "Prosinac" @@ -197,11 +225,16 @@ msgid "Define stretches" msgstr "Definiraj dionice" +#: src/components/usermanagement/Usermanagement.vue:123 +#, fuzzy +msgid "Delete user" +msgstr "Brisanje " + #: src/components/importschedule/Importschedule.vue:192 msgid "Deleted import: #" msgstr "Obrisan uvoz: #" -#: src/components/ImportStretches.vue:361 +#: src/components/ImportStretches.vue:358 msgid "Deleting " msgstr "Brisanje " @@ -209,15 +242,28 @@ msgid "Depth" msgstr "Dubina" +#: src/components/Pdftool.vue:522 +msgid "Depth relativ to" +msgstr "" + #: src/components/ImportSoundingresults.vue:52 msgid "Depthreference" msgstr "Referentna dubina" +#: src/components/importschedule/Importscheduledetail.vue:49 +#, fuzzy +msgid "Distance marks ashore" +msgstr "Virtualne Oznake Udaljenosti" + #: src/components/importschedule/Importscheduledetail.vue:46 #, fuzzy msgid "Distance marks virtual" msgstr "Virtualne Oznake Udaljenosti" +#: src/components/usermanagement/Usermanagement.vue:131 +msgid "Do you really want to delete the following user account:" +msgstr "" + #: src/components/Pdftool.vue:10 msgid "Download" msgstr "Preuzimanje" @@ -234,11 +280,11 @@ msgid "Email address" msgstr "E-mail adresa" -#: src/components/importschedule/Importscheduledetail.vue:53 +#: src/components/importschedule/Importscheduledetail.vue:56 msgid "Email Notification" msgstr "Email Obavijest" -#: src/components/ImportStretches.vue:131 +#: src/components/ImportStretches.vue:133 msgid "End rhm" msgstr "Završni rkm" @@ -270,7 +316,7 @@ msgid "Errorlog" msgstr "Zapis pogreške" -#: src/components/importschedule/Importscheduledetail.vue:771 +#: src/components/importschedule/Importscheduledetail.vue:788 #, fuzzy msgid "Every" msgstr "Svaki" @@ -284,13 +330,15 @@ msgid "Fairway dimension" msgstr "Dimenzije plovnog puta" +#: src/components/ImportWaterwayProfiles.vue:34 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:25 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:25 #: src/components/importschedule/importtypes/Waterwayarea.vue:25 #: src/components/importschedule/importtypes/Waterwayaxis.vue:25 msgid "Featuretype" msgstr "Tip elementa/ Vrsta značajke" -#: src/components/importschedule/Importscheduledetail.vue:796 +#: src/components/importschedule/Importscheduledetail.vue:813 msgid "February" msgstr "Veljača" @@ -298,7 +346,11 @@ msgid "Forgot password" msgstr "Zaboravljena lozinka" -#: src/components/importschedule/Importscheduledetail.vue:790 +#: src/components/Pdftool.vue:33 +msgid "Format" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:807 msgid "Friday" msgstr "Petak" @@ -306,11 +358,11 @@ msgid "Gauge measurement" msgstr "Podatak o vodostaju" -#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:61 +#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:96 msgid "Generate PDF" msgstr "Kreiraj PDF" -#: src/components/importschedule/Importscheduledetail.vue:779 +#: src/components/importschedule/Importscheduledetail.vue:796 msgid "hour" msgstr "sat" @@ -318,7 +370,7 @@ msgid "Id" msgstr "Id" -#: src/components/ImportStretches.vue:66 +#: src/components/ImportStretches.vue:68 msgid "ID" msgstr "ID" @@ -326,19 +378,19 @@ msgid "Identified" msgstr "Identificirano" -#: src/components/ImportApprovedGaugeMeasurement.vue:101 +#: src/components/ImportApprovedGaugeMeasurement.vue:98 #: src/components/ImportSoundingresults.vue:278 -#: src/components/ImportStretches.vue:474 -#: src/components/ImportWaterwayProfiles.vue:88 src/components/Sidebar.vue:58 +#: src/components/ImportStretches.vue:471 +#: src/components/ImportWaterwayProfiles.vue:162 src/components/Sidebar.vue:58 #: src/components/importschedule/Importschedule.vue:33 -#: src/components/importschedule/Importscheduledetail.vue:456 -#: src/components/importschedule/Importscheduledetail.vue:640 -#: src/components/importschedule/Importscheduledetail.vue:710 -#: src/components/importschedule/Importscheduledetail.vue:740 +#: src/components/importschedule/Importscheduledetail.vue:470 +#: src/components/importschedule/Importscheduledetail.vue:657 +#: src/components/importschedule/Importscheduledetail.vue:727 +#: src/components/importschedule/Importscheduledetail.vue:757 msgid "Import" msgstr "Uvoz" -#: src/components/ImportApprovedGaugeMeasurement.vue:11 +#: src/components/ImportApprovedGaugeMeasurement.vue:8 #: src/components/Sidebar.vue:76 msgid "Import approved gaugemeasurements" msgstr "Uvoz odobrenih podataka o vodostaju" @@ -355,7 +407,7 @@ msgid "Import waterway profiles" msgstr "Uvoz profila plovnog puta" -#: src/components/ImportWaterwayProfiles.vue:11 +#: src/components/ImportWaterwayProfiles.vue:8 msgid "Import Waterwayprofiles" msgstr "Uvoz Profila Plovnog Puta" @@ -387,32 +439,36 @@ msgid "Invalid input" msgstr "nevažeći unos" -#: src/components/Pdftool.vue:29 +#: src/components/Pdftool.vue:62 msgid "ISO A3" msgstr "ISO A3" -#: src/components/Pdftool.vue:30 +#: src/components/Pdftool.vue:63 msgid "ISO A4" msgstr "ISO A4" -#: src/components/importschedule/Importscheduledetail.vue:795 +#: src/components/staging/StagingDetail.vue:176 +msgid "ISRS Code" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:812 msgid "January" msgstr "Siječanj" -#: src/components/importschedule/Importscheduledetail.vue:801 +#: src/components/importschedule/Importscheduledetail.vue:818 msgid "July" msgstr "Srpanj" -#: src/components/importschedule/Importscheduledetail.vue:800 +#: src/components/importschedule/Importscheduledetail.vue:817 msgid "June" msgstr "Lipanj" #: src/components/importqueue/Importqueue.vue:58 -#: src/components/importqueue/Importqueuedetail.vue:45 +#: src/components/importqueue/Importqueuedetail.vue:50 msgid "Kind" msgstr "Tip" -#: src/components/Pdftool.vue:20 +#: src/components/Pdftool.vue:39 msgid "landscape" msgstr "vodoravno" @@ -428,7 +484,7 @@ msgid "Layers" msgstr "Slojevi" -#: src/store/map.js:424 +#: src/store/map.js:544 msgid "Length" msgstr "Duljina" @@ -457,7 +513,7 @@ msgstr "E-mail je poslan" #: src/components/importschedule/Importschedule.vue:161 -#: src/components/importschedule/Importscheduledetail.vue:641 +#: src/components/importschedule/Importscheduledetail.vue:658 msgid "Manually triggered import: #" msgstr "Uvoz pokrenut ručno: #" @@ -465,15 +521,15 @@ msgid "Map" msgstr "Karta" -#: src/components/importschedule/Importscheduledetail.vue:797 +#: src/components/importschedule/Importscheduledetail.vue:814 msgid "March" msgstr "Ožujak" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:132 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:130 msgid "MaxWidth" msgstr "Maksimalna Širina" -#: src/components/importschedule/Importscheduledetail.vue:799 +#: src/components/importschedule/Importscheduledetail.vue:816 msgid "May" msgstr "Svibanj" @@ -481,27 +537,27 @@ msgid "Measurement" msgstr "Mjerenje" -#: src/components/importqueue/Importqueuedetail.vue:58 +#: src/components/importqueue/Importqueuedetail.vue:63 msgid "Message" msgstr "Poruka" -#: src/components/importschedule/Importscheduledetail.vue:772 +#: src/components/importschedule/Importscheduledetail.vue:789 msgid "minutes past" msgstr "prošlo minuta" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:110 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:109 msgid "MinWidth" msgstr "Minimalna Širina" -#: src/components/importschedule/Importscheduledetail.vue:786 +#: src/components/importschedule/Importscheduledetail.vue:803 msgid "Monday" msgstr "Ponedjeljak" -#: src/components/importschedule/Importscheduledetail.vue:782 +#: src/components/importschedule/Importscheduledetail.vue:799 msgid "month" msgstr "mjesec" -#: src/components/importschedule/Importscheduledetail.vue:198 +#: src/components/importschedule/Importscheduledetail.vue:210 msgid "Monthly" msgstr "Mjesečno" @@ -510,16 +566,20 @@ msgid "Name" msgstr "Naziv" -#: src/components/ImportStretches.vue:182 +#: src/components/ImportStretches.vue:184 msgid "National Object name" msgstr "Nacionalni naziv Objekta" +#: src/components/staging/StagingDetail.vue:227 +msgid "New" +msgstr "" + #: src/components/importschedule/Importschedule.vue:93 -#: src/components/importschedule/Importscheduledetail.vue:457 +#: src/components/importschedule/Importscheduledetail.vue:471 msgid "New Import" msgstr "Novi uvoz" -#: src/components/ImportStretches.vue:247 +#: src/components/ImportStretches.vue:244 msgid "New stretch" msgstr "Nova dionica" @@ -527,7 +587,7 @@ msgid "No features identified." msgstr "Nema identificiranih objekata." -#: src/components/Bottlenecks.vue:115 src/components/ImportStretches.vue:59 +#: src/components/Bottlenecks.vue:118 src/components/ImportStretches.vue:61 #: src/components/staging/Staging.vue:36 msgid "No results." msgstr "Nema rezultata." @@ -536,35 +596,39 @@ msgid "No scheduled imports" msgstr "Nema zakazanih uvoza" -#: src/components/ImportStretches.vue:360 +#: src/components/ImportStretches.vue:357 msgid "Not implemented" msgstr "Nije implementirano" -#: src/components/importschedule/Importscheduledetail.vue:805 +#: src/components/importschedule/Importscheduledetail.vue:822 msgid "November" msgstr "Studeni" -#: src/components/importschedule/Importscheduledetail.vue:776 +#: src/components/importschedule/Importscheduledetail.vue:793 msgid "o' clock" msgstr "sati" -#: src/components/ImportStretches.vue:164 +#: src/components/ImportStretches.vue:166 msgid "Object name" msgstr "Naziv objekta" -#: src/components/importschedule/Importscheduledetail.vue:804 +#: src/components/importschedule/Importscheduledetail.vue:821 msgid "October" msgstr "Listopad" -#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/importschedule/Importscheduledetail.vue:791 msgid "of" msgstr "od" -#: src/components/importschedule/Importscheduledetail.vue:773 +#: src/components/staging/StagingDetail.vue:224 +msgid "Old" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:790 msgid "on" msgstr "na" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:19 msgid "Open in new window" msgstr "Otvori u novom prozoru" @@ -587,8 +651,12 @@ msgstr "Zatraženo je poništavanje lozinke!" #: src/components/usermanagement/Userdetail.vue:346 -msgid "Password should at least be 8 char long including 1 digit and 1 special char like $" -msgstr "Lozinka bi trebala sadržavati barem 8 znakova uključujući 1 broj i 1 specijalni znak poput $" +msgid "" +"Password should at least be 8 char long including 1 digit and 1 special char " +"like $" +msgstr "" +"Lozinka bi trebala sadržavati barem 8 znakova uključujući 1 broj i 1 " +"specijalni znak poput $" #: src/components/usermanagement/Userdetail.vue:342 msgid "Passwords do not match!" @@ -606,19 +674,21 @@ msgid "Please choose a role" msgstr "Odaberite ulogu" -#: src/components/ImportStretches.vue:97 +#: src/components/ImportStretches.vue:99 msgid "Please enter a countrycode" msgstr "Unesite kod države" #: src/components/ImportSoundingresults.vue:84 -#: src/components/ImportStretches.vue:212 +#: src/components/ImportStretches.vue:209 msgid "Please enter a date" msgstr "Unesite datum" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:100 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:99 msgid "Please enter a depth" msgstr "Unesite dubinu" +#: src/components/ImportWaterwayProfiles.vue:46 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:37 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:37 #: src/components/importschedule/importtypes/Waterwayarea.vue:37 #: src/components/importschedule/importtypes/Waterwayaxis.vue:37 @@ -629,11 +699,11 @@ msgid "Please enter a level of service" msgstr "Unesite razinu usluge" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:146 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:143 msgid "Please enter a maximum width" msgstr "Unesite maksimalnu širinu" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:124 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:122 msgid "Please enter a minimum width" msgstr "Unesite minimalnu širinu" @@ -650,20 +720,22 @@ msgid "Please enter a reference" msgstr "Unesite referencu" -#: src/components/ImportStretches.vue:228 +#: src/components/ImportStretches.vue:225 msgid "Please enter a source" msgstr "Unesite izvor" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:170 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:167 msgid "Please enter a source orgranization" msgstr "Unesite organizaciju izvora" -#: src/components/ImportStretches.vue:126 +#: src/components/ImportStretches.vue:128 msgid "Please enter a start point" msgstr "Unesite početnu točku" +#: src/components/ImportWaterwayProfiles.vue:25 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:19 #: src/components/importschedule/importtypes/Bottleneck.vue:44 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:19 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:19 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:19 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:19 @@ -678,16 +750,15 @@ msgid "Please enter a Username" msgstr "Unesite Korisničko ime" -#: src/components/ImportStretches.vue:151 +#: src/components/ImportStretches.vue:153 msgid "Please enter an end point" msgstr "Unesite završnu točku" -#: src/components/ImportStretches.vue:78 +#: src/components/ImportStretches.vue:80 msgid "Please enter an id" msgstr "Unesite id" -#: src/components/ImportStretches.vue:176 -#: src/components/ImportStretches.vue:194 +#: src/components/ImportStretches.vue:178 msgid "Please enter an objectname" msgstr "Unesite naziv objekta" @@ -695,6 +766,8 @@ msgid "Please enter correct coordinates in the format: Lat,Lon,Lat,Lon" msgstr "Unesite točne koordinate u formatu: Lat,Lon,Lat,Lon" +#: src/components/ImportWaterwayProfiles.vue:63 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:57 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:57 #: src/components/importschedule/importtypes/Waterwayarea.vue:57 #: src/components/importschedule/importtypes/Waterwayaxis.vue:57 @@ -710,7 +783,7 @@ msgid "Please select one" msgstr "Odaberite jedno" -#: src/components/Pdftool.vue:21 +#: src/components/Pdftool.vue:40 msgid "portrait" msgstr "uspravno" @@ -730,6 +803,10 @@ msgid "Projection" msgstr "Projekcija" +#: src/components/Pdftool.vue:514 +msgid "Ref gauge" +msgstr "" + #: src/components/Logs.vue:48 src/components/importqueue/Importqueue.vue:84 msgid "Refresh" msgstr "Osvježi" @@ -746,11 +823,15 @@ msgid "Request password reset!" msgstr "Zatraži poništavanje lozinke!" +#: src/components/Pdftool.vue:44 +msgid "Resolution" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:78 msgid "Role" msgstr "Uloga" -#: src/components/importschedule/Importscheduledetail.vue:791 +#: src/components/importschedule/Importscheduledetail.vue:808 msgid "Saturday" msgstr "Subota" @@ -758,16 +839,16 @@ msgid "Saved cross profiles" msgstr "Spremljeni poprečni profili" -#: src/components/importschedule/Importscheduledetail.vue:711 +#: src/components/importschedule/Importscheduledetail.vue:728 msgid "Saved import: #" msgstr "Spremljen uvoz: #" #: src/components/importschedule/Importschedule.vue:36 -#: src/components/importschedule/Importscheduledetail.vue:189 +#: src/components/importschedule/Importscheduledetail.vue:201 msgid "Schedule" msgstr "Raspored" -#: src/components/importschedule/Importscheduledetail.vue:147 +#: src/components/importschedule/Importscheduledetail.vue:159 msgid "Scheduled" msgstr "Planiran" @@ -783,7 +864,7 @@ msgid "Send testmail" msgstr "Pošalji testni e-mail" -#: src/components/importschedule/Importscheduledetail.vue:803 +#: src/components/importschedule/Importscheduledetail.vue:820 msgid "September" msgstr "Rujan" @@ -791,11 +872,15 @@ msgid "Signer" msgstr "Potpisnik" -#: src/components/importschedule/Importscheduledetail.vue:167 +#: src/components/importschedule/Importscheduledetail.vue:179 #, fuzzy msgid "Simple schedule" msgstr "Jednostavan Raspored" +#: src/components/Pdftool.vue:56 +msgid "Size" +msgstr "" + #: src/components/Identify.vue:60 msgid "" "Some data ©\n" @@ -806,6 +891,8 @@ " <a href=\"https://www.openstreetmap.org/copyright\">%{ name }</a>\n" " suradnik." +#: src/components/ImportWaterwayProfiles.vue:55 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:45 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:45 #: src/components/importschedule/importtypes/Waterwayarea.vue:45 #: src/components/importschedule/importtypes/Waterwayaxis.vue:45 @@ -816,7 +903,7 @@ msgid "Sounding Result" msgstr "Rezultat Hidrografskog mjerenja" -#: src/components/ImportStretches.vue:217 +#: src/components/ImportStretches.vue:214 msgid "Source" msgstr "Izvor" @@ -824,7 +911,7 @@ msgid "Source organization" msgstr "Organizacija izvora" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:157 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:154 msgid "Source orgranization" msgstr "Organizacija izvora" @@ -844,7 +931,7 @@ msgid "Start" msgstr "Početak" -#: src/components/ImportStretches.vue:106 +#: src/components/ImportStretches.vue:108 msgid "Start rhm" msgstr "Početni rhm" @@ -852,15 +939,15 @@ msgid "Starting import for " msgstr "započinje uvoz za " -#: src/components/ImportApprovedGaugeMeasurement.vue:102 +#: src/components/ImportApprovedGaugeMeasurement.vue:99 msgid "Starting import of Approved Gauge Measurements" msgstr "Započinje uvoz odobrenih vodostaja" -#: src/components/ImportStretches.vue:475 +#: src/components/ImportStretches.vue:472 msgid "Starting import of stretch" msgstr "Započinje uvoz dionice" -#: src/components/ImportStretches.vue:157 +#: src/components/ImportStretches.vue:159 msgid "Startpoint is not before endpoint." msgstr "Početna točka nije prije završne točke." @@ -868,8 +955,8 @@ msgid "State" msgstr "Stanje" -#: src/components/ImportStretches.vue:241 -#: src/components/importschedule/Importscheduledetail.vue:345 +#: src/components/ImportStretches.vue:238 +#: src/components/importschedule/Importscheduledetail.vue:357 #: src/components/usermanagement/Userdetail.vue:129 msgid "Submit" msgstr "Predaj" @@ -882,15 +969,19 @@ msgid "Successful" msgstr "Uspješno" -#: src/components/importschedule/Importscheduledetail.vue:792 +#: src/components/importschedule/Importscheduledetail.vue:809 msgid "Sunday" msgstr "Nedjelja" +#: src/components/Pdftool.vue:506 +msgid "Survey date" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:88 msgid "Sysadmin" msgstr "Sistem admin" -#: src/components/usermanagement/Usermanagement.vue:326 +#: src/components/usermanagement/Usermanagement.vue:365 msgid "System-Administrator" msgstr "Sistem-Administrator" @@ -902,6 +993,10 @@ msgid "Systemconfiguration" msgstr "Konfiguracija sutava" +#: src/components/ImportWaterwayProfiles.vue:163 +msgid "this" +msgstr "" + #: src/components/Identify.vue:51 msgid "" "This app uses <i>gemma</i>, which is Free Software under <br/>\n" @@ -910,17 +1005,17 @@ "Ova aplikacija koristi <i>gemma</i>, koji je Slobodan Softver pod <br/>\n" " %{ license } bez garancije, pogledaj dokumente za detalje." -#: src/components/importschedule/Importscheduledetail.vue:789 +#: src/components/importschedule/Importscheduledetail.vue:806 msgid "Thursday" msgstr "Četvrtak" -#: src/components/ImportApprovedGaugeMeasurement.vue:45 -#: src/components/ImportWaterwayProfiles.vue:43 -#: src/components/importschedule/Importscheduledetail.vue:358 +#: src/components/ImportApprovedGaugeMeasurement.vue:42 +#: src/components/ImportWaterwayProfiles.vue:99 +#: src/components/importschedule/Importscheduledetail.vue:370 msgid "Trigger import" msgstr "Pokretanje uvoza" -#: src/components/importschedule/Importscheduledetail.vue:787 +#: src/components/importschedule/Importscheduledetail.vue:804 msgid "Tuesday" msgstr "Utorak" @@ -929,11 +1024,7 @@ msgid "Type" msgstr "Tip" -#: src/components/ImportWaterwayProfiles.vue:89 -msgid "under construction" -msgstr "u izgradnji" - -#: src/components/importschedule/Importscheduledetail.vue:741 +#: src/components/importschedule/Importscheduledetail.vue:758 msgid "update import: #" msgstr "ažuriraj uvoz: #" @@ -941,8 +1032,10 @@ msgid "Upload" msgstr "Učitaj" +#: src/components/ImportWaterwayProfiles.vue:16 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:5 #: src/components/importschedule/importtypes/Bottleneck.vue:5 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:5 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:5 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:5 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:5 @@ -971,15 +1064,21 @@ #: src/components/Identify.vue:65 msgid "" "Uses\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " under %{ geoLicense }." msgstr "" "Koristi\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " pod %{ geoLicense }." +#: src/components/staging/StagingDetail.vue:218 +msgid "Value" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:91 -#: src/components/usermanagement/Usermanagement.vue:327 +#: src/components/usermanagement/Usermanagement.vue:366 msgid "Waterway Admin" msgstr "Admin Plovnog puta" @@ -997,26 +1096,33 @@ msgstr "Vodomjerna stanica" #: src/components/usermanagement/Userdetail.vue:94 -#: src/components/usermanagement/Usermanagement.vue:328 +#: src/components/usermanagement/Usermanagement.vue:367 msgid "Waterway User" msgstr "Korisnik plovnog puta" -#: src/components/importschedule/Importscheduledetail.vue:788 +#: src/components/importschedule/Importscheduledetail.vue:805 msgid "Wednesday" msgstr "Srijeda" -#: src/components/importschedule/Importscheduledetail.vue:781 +#: src/components/importschedule/Importscheduledetail.vue:798 msgid "week" msgstr "tjedan" -#: src/components/importschedule/Importscheduledetail.vue:197 +#: src/components/importschedule/Importscheduledetail.vue:209 msgid "Weekly" msgstr "Tjedno" -#: src/components/importschedule/Importscheduledetail.vue:783 +#: src/components/importschedule/Importscheduledetail.vue:800 msgid "year" msgstr "godina" #: src/components/fairway/Profiles.vue:443 -msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile." -msgstr "Sada možete odabrati ove koordinate iz izbornika \"Spremljeni poprečni profili\" da biste vratili ovaj poprečni profil." +msgid "" +"You can now select these coordinates from the \"Saved cross profiles\" menu " +"to restore this cross profile." +msgstr "" +"Sada možete odabrati ove koordinate iz izbornika \"Spremljeni poprečni " +"profili\" da biste vratili ovaj poprečni profil." + +#~ msgid "under construction" +#~ msgstr "u izgradnji"
--- a/client/src/locale/hu_HU/LC_MESSAGES/app.po Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/locale/hu_HU/LC_MESSAGES/app.po Tue Feb 12 11:11:32 2019 +0100 @@ -10,7 +10,8 @@ "POT-Creation-Date: 2019-01-24 09:38+0100\n" "PO-Revision-Date: 2019-01-26 14:04+0000\n" "Last-Translator: Bede Csaba <csababede@gmail.com>\n" -"Language-Team: Hungarian <https://hosted.weblate.org/projects/gemma/client/hu/>\n" +"Language-Team: Hungarian <https://hosted.weblate.org/projects/gemma/client/" +"hu/>\n" "Language: hu_HU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,11 +19,23 @@ "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 3.5-dev\n" -#: src/components/Pdftool.vue:400 +#: src/components/ImportWaterwayProfiles.vue:164 +msgid " was successfully uploaded." +msgstr "" + +#: src/components/Pdftool.vue:453 msgid "– generated by:" msgstr "- létrehozta:" -#: src/components/importschedule/Importscheduledetail.vue:778 +#: src/components/staging/StagingDetail.vue:188 +msgid "( New )" +msgstr "" + +#: src/components/Pdftool.vue:29 +msgid "{{ template.name }}" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:795 msgid "15 minutes" msgstr "" @@ -34,23 +47,27 @@ msgid "Accesslog" msgstr "" -#: src/components/usermanagement/Usermanagement.vue:104 +#: src/components/usermanagement/Usermanagement.vue:102 msgid "Add User" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:798 +#: src/components/staging/StagingDetail.vue:19 +msgid "Approved Gauge Measurements" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:815 msgid "April" msgstr "" -#: src/store/map.js:445 +#: src/store/map.js:565 msgid "Area" msgstr "terület" -#: src/components/importschedule/Importscheduledetail.vue:775 +#: src/components/importschedule/Importscheduledetail.vue:792 msgid "at" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:802 +#: src/components/importschedule/Importscheduledetail.vue:819 msgid "August" msgstr "" @@ -59,45 +76,47 @@ msgstr "" #: src/components/importschedule/Importscheduledetail.vue:34 -msgid "Available fairway fpths" +msgid "Available fairway depths" msgstr "" #: src/components/Login.vue:70 msgid "back to login" msgstr "" -#: src/components/Bottlenecks.vue:274 -#: src/components/ImportApprovedGaugeMeasurement.vue:111 +#: src/components/Bottlenecks.vue:277 +#: src/components/ImportApprovedGaugeMeasurement.vue:108 #: src/components/ImportSoundingresults.vue:216 #: src/components/ImportSoundingresults.vue:255 #: src/components/ImportSoundingresults.vue:286 -#: src/components/ImportStretches.vue:306 -#: src/components/ImportStretches.vue:313 -#: src/components/ImportStretches.vue:485 src/components/Search.vue:258 +#: src/components/ImportStretches.vue:303 +#: src/components/ImportStretches.vue:310 +#: src/components/ImportStretches.vue:482 +#: src/components/ImportWaterwayProfiles.vue:175 src/components/Search.vue:258 #: src/components/Systemconfiguration.vue:114 #: src/components/Systemconfiguration.vue:129 #: src/components/Systemconfiguration.vue:148 #: src/components/Systemconfiguration.vue:165 #: src/components/importqueue/Importqueue.vue:160 #: src/components/importqueue/Importqueue.vue:180 -#: src/components/importqueue/Importqueuedetail.vue:182 +#: src/components/importqueue/Importqueuedetail.vue:214 #: src/components/importschedule/Importschedule.vue:148 #: src/components/importschedule/Importschedule.vue:167 #: src/components/importschedule/Importschedule.vue:176 #: src/components/importschedule/Importschedule.vue:198 -#: src/components/importschedule/Importscheduledetail.vue:647 -#: src/components/importschedule/Importscheduledetail.vue:727 -#: src/components/importschedule/Importscheduledetail.vue:757 -#: src/components/staging/StagingDetail.vue:251 +#: src/components/importschedule/Importscheduledetail.vue:664 +#: src/components/importschedule/Importscheduledetail.vue:744 +#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/staging/StagingDetail.vue:364 +#: src/components/staging/StagingDetail.vue:418 #: src/components/usermanagement/Userdetail.vue:304 #: src/components/usermanagement/Userdetail.vue:376 -#: src/components/usermanagement/Usermanagement.vue:298 -#: src/components/usermanagement/Usermanagement.vue:306 -#: src/components/usermanagement/Usermanagement.vue:340 +#: src/components/usermanagement/Usermanagement.vue:337 +#: src/components/usermanagement/Usermanagement.vue:345 +#: src/components/usermanagement/Usermanagement.vue:379 msgid "Backend Error" msgstr "" -#: src/components/ImportSoundingresults.vue:16 +#: src/components/ImportSoundingresults.vue:16 src/components/Pdftool.vue:496 #, fuzzy msgid "Bottleneck" msgstr "Gázlók, szűkületek" @@ -112,7 +131,7 @@ #: src/components/Bottlenecks.vue:4 src/components/Sidebar.vue:27 #: src/components/importschedule/Importscheduledetail.vue:25 -#: src/components/staging/StagingDetail.vue:11 +#: src/components/staging/StagingDetail.vue:12 msgid "Bottlenecks" msgstr "" @@ -129,13 +148,15 @@ msgid "choose .zip- file" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:78 -#: src/components/ImportWaterwayProfiles.vue:75 +#: src/components/ImportApprovedGaugeMeasurement.vue:75 +#: src/components/ImportWaterwayProfiles.vue:135 +#: src/components/ImportWaterwayProfiles.vue:169 msgid "choose file to upload" msgstr "" -#: src/components/Pdftool.vue:18 -msgid "Choose format:" +#: src/components/Pdftool.vue:23 +#, fuzzy +msgid "Chose preset" msgstr "Válasszon formátumot" #: src/components/fairway/Profiles.vue:64 @@ -160,25 +181,29 @@ msgid "Country" msgstr "Ország" -#: src/components/ImportStretches.vue:85 +#: src/components/ImportStretches.vue:87 msgid "Countrycode" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:333 +#: src/components/importschedule/Importscheduledetail.vue:345 msgid "Cronstring" msgstr "" #: src/components/ImportSoundingresults.vue:72 -#: src/components/importqueue/Importqueuedetail.vue:49 +#: src/components/importqueue/Importqueuedetail.vue:54 #: src/components/staging/Staging.vue:13 msgid "Date" msgstr "" -#: src/components/ImportStretches.vue:201 +#: src/components/ImportStretches.vue:198 msgid "Date info" msgstr "" -#: src/components/Pdftool.vue:396 +#: src/components/staging/StagingDetail.vue:179 +msgid "Date of measurement" +msgstr "" + +#: src/components/Pdftool.vue:449 msgid "Date of publication:" msgstr "" @@ -186,11 +211,11 @@ msgid "Datum" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:780 +#: src/components/importschedule/Importscheduledetail.vue:797 msgid "day" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:806 +#: src/components/importschedule/Importscheduledetail.vue:823 msgid "December" msgstr "" @@ -198,11 +223,15 @@ msgid "Define stretches" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:123 +msgid "Delete user" +msgstr "" + #: src/components/importschedule/Importschedule.vue:192 msgid "Deleted import: #" msgstr "" -#: src/components/ImportStretches.vue:361 +#: src/components/ImportStretches.vue:358 msgid "Deleting " msgstr "" @@ -210,14 +239,26 @@ msgid "Depth" msgstr "" +#: src/components/Pdftool.vue:522 +msgid "Depth relativ to" +msgstr "" + #: src/components/ImportSoundingresults.vue:52 msgid "Depthreference" msgstr "" +#: src/components/importschedule/Importscheduledetail.vue:49 +msgid "Distance marks ashore" +msgstr "" + #: src/components/importschedule/Importscheduledetail.vue:46 msgid "Distance marks virtual" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:131 +msgid "Do you really want to delete the following user account:" +msgstr "" + #: src/components/Pdftool.vue:10 msgid "Download" msgstr "" @@ -235,11 +276,11 @@ msgid "Email address" msgstr "Email cím" -#: src/components/importschedule/Importscheduledetail.vue:53 +#: src/components/importschedule/Importscheduledetail.vue:56 msgid "Email Notification" msgstr "" -#: src/components/ImportStretches.vue:131 +#: src/components/ImportStretches.vue:133 msgid "End rhm" msgstr "" @@ -271,7 +312,7 @@ msgid "Errorlog" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:771 +#: src/components/importschedule/Importscheduledetail.vue:788 msgid "Every" msgstr "" @@ -283,13 +324,15 @@ msgid "Fairway dimension" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:34 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:25 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:25 #: src/components/importschedule/importtypes/Waterwayarea.vue:25 #: src/components/importschedule/importtypes/Waterwayaxis.vue:25 msgid "Featuretype" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:796 +#: src/components/importschedule/Importscheduledetail.vue:813 msgid "February" msgstr "" @@ -297,7 +340,11 @@ msgid "Forgot password" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:790 +#: src/components/Pdftool.vue:33 +msgid "Format" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:807 msgid "Friday" msgstr "" @@ -305,11 +352,11 @@ msgid "Gauge measurement" msgstr "" -#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:61 +#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:96 msgid "Generate PDF" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:779 +#: src/components/importschedule/Importscheduledetail.vue:796 msgid "hour" msgstr "" @@ -317,7 +364,7 @@ msgid "Id" msgstr "" -#: src/components/ImportStretches.vue:66 +#: src/components/ImportStretches.vue:68 msgid "ID" msgstr "" @@ -325,19 +372,19 @@ msgid "Identified" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:101 +#: src/components/ImportApprovedGaugeMeasurement.vue:98 #: src/components/ImportSoundingresults.vue:278 -#: src/components/ImportStretches.vue:474 -#: src/components/ImportWaterwayProfiles.vue:88 src/components/Sidebar.vue:58 +#: src/components/ImportStretches.vue:471 +#: src/components/ImportWaterwayProfiles.vue:162 src/components/Sidebar.vue:58 #: src/components/importschedule/Importschedule.vue:33 -#: src/components/importschedule/Importscheduledetail.vue:456 -#: src/components/importschedule/Importscheduledetail.vue:640 -#: src/components/importschedule/Importscheduledetail.vue:710 -#: src/components/importschedule/Importscheduledetail.vue:740 +#: src/components/importschedule/Importscheduledetail.vue:470 +#: src/components/importschedule/Importscheduledetail.vue:657 +#: src/components/importschedule/Importscheduledetail.vue:727 +#: src/components/importschedule/Importscheduledetail.vue:757 msgid "Import" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:11 +#: src/components/ImportApprovedGaugeMeasurement.vue:8 #: src/components/Sidebar.vue:76 msgid "Import approved gaugemeasurements" msgstr "" @@ -354,7 +401,7 @@ msgid "Import waterway profiles" msgstr "" -#: src/components/ImportWaterwayProfiles.vue:11 +#: src/components/ImportWaterwayProfiles.vue:8 msgid "Import Waterwayprofiles" msgstr "" @@ -386,32 +433,36 @@ msgid "Invalid input" msgstr "" -#: src/components/Pdftool.vue:29 +#: src/components/Pdftool.vue:62 msgid "ISO A3" msgstr "" -#: src/components/Pdftool.vue:30 +#: src/components/Pdftool.vue:63 msgid "ISO A4" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:795 +#: src/components/staging/StagingDetail.vue:176 +msgid "ISRS Code" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:812 msgid "January" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:801 +#: src/components/importschedule/Importscheduledetail.vue:818 msgid "July" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:800 +#: src/components/importschedule/Importscheduledetail.vue:817 msgid "June" msgstr "" #: src/components/importqueue/Importqueue.vue:58 -#: src/components/importqueue/Importqueuedetail.vue:45 +#: src/components/importqueue/Importqueuedetail.vue:50 msgid "Kind" msgstr "" -#: src/components/Pdftool.vue:20 +#: src/components/Pdftool.vue:39 msgid "landscape" msgstr "" @@ -428,7 +479,7 @@ msgid "Layers" msgstr "Rétegek" -#: src/store/map.js:424 +#: src/store/map.js:544 msgid "Length" msgstr "" @@ -457,7 +508,7 @@ msgstr "" #: src/components/importschedule/Importschedule.vue:161 -#: src/components/importschedule/Importscheduledetail.vue:641 +#: src/components/importschedule/Importscheduledetail.vue:658 msgid "Manually triggered import: #" msgstr "" @@ -465,15 +516,15 @@ msgid "Map" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:797 +#: src/components/importschedule/Importscheduledetail.vue:814 msgid "March" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:132 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:130 msgid "MaxWidth" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:799 +#: src/components/importschedule/Importscheduledetail.vue:816 msgid "May" msgstr "" @@ -481,28 +532,28 @@ msgid "Measurement" msgstr "" -#: src/components/importqueue/Importqueuedetail.vue:58 +#: src/components/importqueue/Importqueuedetail.vue:63 #, fuzzy msgid "Message" msgstr "Üzenet" -#: src/components/importschedule/Importscheduledetail.vue:772 +#: src/components/importschedule/Importscheduledetail.vue:789 msgid "minutes past" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:110 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:109 msgid "MinWidth" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:786 +#: src/components/importschedule/Importscheduledetail.vue:803 msgid "Monday" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:782 +#: src/components/importschedule/Importscheduledetail.vue:799 msgid "month" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:198 +#: src/components/importschedule/Importscheduledetail.vue:210 msgid "Monthly" msgstr "" @@ -512,16 +563,20 @@ msgid "Name" msgstr "Név" -#: src/components/ImportStretches.vue:182 +#: src/components/ImportStretches.vue:184 msgid "National Object name" msgstr "" +#: src/components/staging/StagingDetail.vue:227 +msgid "New" +msgstr "" + #: src/components/importschedule/Importschedule.vue:93 -#: src/components/importschedule/Importscheduledetail.vue:457 +#: src/components/importschedule/Importscheduledetail.vue:471 msgid "New Import" msgstr "" -#: src/components/ImportStretches.vue:247 +#: src/components/ImportStretches.vue:244 msgid "New stretch" msgstr "" @@ -529,7 +584,7 @@ msgid "No features identified." msgstr "" -#: src/components/Bottlenecks.vue:115 src/components/ImportStretches.vue:59 +#: src/components/Bottlenecks.vue:118 src/components/ImportStretches.vue:61 #: src/components/staging/Staging.vue:36 msgid "No results." msgstr "" @@ -538,35 +593,39 @@ msgid "No scheduled imports" msgstr "" -#: src/components/ImportStretches.vue:360 +#: src/components/ImportStretches.vue:357 msgid "Not implemented" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:805 +#: src/components/importschedule/Importscheduledetail.vue:822 msgid "November" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:776 +#: src/components/importschedule/Importscheduledetail.vue:793 msgid "o' clock" msgstr "" -#: src/components/ImportStretches.vue:164 +#: src/components/ImportStretches.vue:166 msgid "Object name" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:804 +#: src/components/importschedule/Importscheduledetail.vue:821 msgid "October" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/importschedule/Importscheduledetail.vue:791 msgid "of" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:773 +#: src/components/staging/StagingDetail.vue:224 +msgid "Old" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:790 msgid "on" msgstr "" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:19 msgid "Open in new window" msgstr "" @@ -589,7 +648,9 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:346 -msgid "Password should at least be 8 char long including 1 digit and 1 special char like $" +msgid "" +"Password should at least be 8 char long including 1 digit and 1 special char " +"like $" msgstr "" #: src/components/usermanagement/Userdetail.vue:342 @@ -609,19 +670,21 @@ msgid "Please choose a role" msgstr "" -#: src/components/ImportStretches.vue:97 +#: src/components/ImportStretches.vue:99 msgid "Please enter a countrycode" msgstr "" #: src/components/ImportSoundingresults.vue:84 -#: src/components/ImportStretches.vue:212 +#: src/components/ImportStretches.vue:209 msgid "Please enter a date" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:100 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:99 msgid "Please enter a depth" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:46 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:37 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:37 #: src/components/importschedule/importtypes/Waterwayarea.vue:37 #: src/components/importschedule/importtypes/Waterwayaxis.vue:37 @@ -632,11 +695,11 @@ msgid "Please enter a level of service" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:146 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:143 msgid "Please enter a maximum width" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:124 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:122 msgid "Please enter a minimum width" msgstr "" @@ -653,20 +716,22 @@ msgid "Please enter a reference" msgstr "" -#: src/components/ImportStretches.vue:228 +#: src/components/ImportStretches.vue:225 msgid "Please enter a source" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:170 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:167 msgid "Please enter a source orgranization" msgstr "" -#: src/components/ImportStretches.vue:126 +#: src/components/ImportStretches.vue:128 msgid "Please enter a start point" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:25 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:19 #: src/components/importschedule/importtypes/Bottleneck.vue:44 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:19 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:19 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:19 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:19 @@ -681,16 +746,15 @@ msgid "Please enter a Username" msgstr "" -#: src/components/ImportStretches.vue:151 +#: src/components/ImportStretches.vue:153 msgid "Please enter an end point" msgstr "" -#: src/components/ImportStretches.vue:78 +#: src/components/ImportStretches.vue:80 msgid "Please enter an id" msgstr "" -#: src/components/ImportStretches.vue:176 -#: src/components/ImportStretches.vue:194 +#: src/components/ImportStretches.vue:178 msgid "Please enter an objectname" msgstr "" @@ -698,6 +762,8 @@ msgid "Please enter correct coordinates in the format: Lat,Lon,Lat,Lon" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:63 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:57 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:57 #: src/components/importschedule/importtypes/Waterwayarea.vue:57 #: src/components/importschedule/importtypes/Waterwayaxis.vue:57 @@ -713,7 +779,7 @@ msgid "Please select one" msgstr "" -#: src/components/Pdftool.vue:21 +#: src/components/Pdftool.vue:40 msgid "portrait" msgstr "" @@ -733,6 +799,10 @@ msgid "Projection" msgstr "" +#: src/components/Pdftool.vue:514 +msgid "Ref gauge" +msgstr "" + #: src/components/Logs.vue:48 src/components/importqueue/Importqueue.vue:84 msgid "Refresh" msgstr "" @@ -749,11 +819,15 @@ msgid "Request password reset!" msgstr "" +#: src/components/Pdftool.vue:44 +msgid "Resolution" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:78 msgid "Role" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:791 +#: src/components/importschedule/Importscheduledetail.vue:808 msgid "Saturday" msgstr "" @@ -761,16 +835,16 @@ msgid "Saved cross profiles" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:711 +#: src/components/importschedule/Importscheduledetail.vue:728 msgid "Saved import: #" msgstr "" #: src/components/importschedule/Importschedule.vue:36 -#: src/components/importschedule/Importscheduledetail.vue:189 +#: src/components/importschedule/Importscheduledetail.vue:201 msgid "Schedule" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:147 +#: src/components/importschedule/Importscheduledetail.vue:159 msgid "Scheduled" msgstr "" @@ -787,7 +861,7 @@ msgid "Send testmail" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:803 +#: src/components/importschedule/Importscheduledetail.vue:820 msgid "September" msgstr "" @@ -795,10 +869,14 @@ msgid "Signer" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:167 +#: src/components/importschedule/Importscheduledetail.vue:179 msgid "Simple schedule" msgstr "" +#: src/components/Pdftool.vue:56 +msgid "Size" +msgstr "" + #: src/components/Identify.vue:60 msgid "" "Some data ©\n" @@ -806,6 +884,8 @@ " contributors." msgstr "" +#: src/components/ImportWaterwayProfiles.vue:55 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:45 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:45 #: src/components/importschedule/importtypes/Waterwayarea.vue:45 #: src/components/importschedule/importtypes/Waterwayaxis.vue:45 @@ -816,7 +896,7 @@ msgid "Sounding Result" msgstr "" -#: src/components/ImportStretches.vue:217 +#: src/components/ImportStretches.vue:214 msgid "Source" msgstr "" @@ -824,7 +904,7 @@ msgid "Source organization" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:157 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:154 msgid "Source orgranization" msgstr "" @@ -844,7 +924,7 @@ msgid "Start" msgstr "" -#: src/components/ImportStretches.vue:106 +#: src/components/ImportStretches.vue:108 msgid "Start rhm" msgstr "" @@ -852,15 +932,15 @@ msgid "Starting import for " msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:102 +#: src/components/ImportApprovedGaugeMeasurement.vue:99 msgid "Starting import of Approved Gauge Measurements" msgstr "" -#: src/components/ImportStretches.vue:475 +#: src/components/ImportStretches.vue:472 msgid "Starting import of stretch" msgstr "" -#: src/components/ImportStretches.vue:157 +#: src/components/ImportStretches.vue:159 msgid "Startpoint is not before endpoint." msgstr "" @@ -868,8 +948,8 @@ msgid "State" msgstr "" -#: src/components/ImportStretches.vue:241 -#: src/components/importschedule/Importscheduledetail.vue:345 +#: src/components/ImportStretches.vue:238 +#: src/components/importschedule/Importscheduledetail.vue:357 #: src/components/usermanagement/Userdetail.vue:129 msgid "Submit" msgstr "" @@ -882,15 +962,19 @@ msgid "Successful" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:792 +#: src/components/importschedule/Importscheduledetail.vue:809 msgid "Sunday" msgstr "" +#: src/components/Pdftool.vue:506 +msgid "Survey date" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:88 msgid "Sysadmin" msgstr "" -#: src/components/usermanagement/Usermanagement.vue:326 +#: src/components/usermanagement/Usermanagement.vue:365 msgid "System-Administrator" msgstr "" @@ -902,23 +986,27 @@ msgid "Systemconfiguration" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:163 +msgid "this" +msgstr "" + #: src/components/Identify.vue:51 msgid "" "This app uses <i>gemma</i>, which is Free Software under <br/>\n" " %{ license } without warranty, see docs for details." msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:789 +#: src/components/importschedule/Importscheduledetail.vue:806 msgid "Thursday" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:45 -#: src/components/ImportWaterwayProfiles.vue:43 -#: src/components/importschedule/Importscheduledetail.vue:358 +#: src/components/ImportApprovedGaugeMeasurement.vue:42 +#: src/components/ImportWaterwayProfiles.vue:99 +#: src/components/importschedule/Importscheduledetail.vue:370 msgid "Trigger import" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:787 +#: src/components/importschedule/Importscheduledetail.vue:804 msgid "Tuesday" msgstr "" @@ -928,11 +1016,7 @@ msgid "Type" msgstr "Típus" -#: src/components/ImportWaterwayProfiles.vue:89 -msgid "under construction" -msgstr "" - -#: src/components/importschedule/Importscheduledetail.vue:741 +#: src/components/importschedule/Importscheduledetail.vue:758 msgid "update import: #" msgstr "" @@ -940,8 +1024,10 @@ msgid "Upload" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:16 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:5 #: src/components/importschedule/importtypes/Bottleneck.vue:5 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:5 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:5 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:5 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:5 @@ -970,12 +1056,17 @@ #: src/components/Identify.vue:65 msgid "" "Uses\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " under %{ geoLicense }." msgstr "" +#: src/components/staging/StagingDetail.vue:218 +msgid "Value" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:91 -#: src/components/usermanagement/Usermanagement.vue:327 +#: src/components/usermanagement/Usermanagement.vue:366 msgid "Waterway Admin" msgstr "" @@ -992,26 +1083,28 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:94 -#: src/components/usermanagement/Usermanagement.vue:328 +#: src/components/usermanagement/Usermanagement.vue:367 msgid "Waterway User" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:788 +#: src/components/importschedule/Importscheduledetail.vue:805 msgid "Wednesday" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:781 +#: src/components/importschedule/Importscheduledetail.vue:798 msgid "week" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:197 +#: src/components/importschedule/Importscheduledetail.vue:209 msgid "Weekly" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:783 +#: src/components/importschedule/Importscheduledetail.vue:800 msgid "year" msgstr "Év" #: src/components/fairway/Profiles.vue:443 -msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile." +msgid "" +"You can now select these coordinates from the \"Saved cross profiles\" menu " +"to restore this cross profile." msgstr ""
--- a/client/src/locale/ro_RO/LC_MESSAGES/app.po Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/locale/ro_RO/LC_MESSAGES/app.po Tue Feb 12 11:11:32 2019 +0100 @@ -8,21 +8,35 @@ "Project-Id-Version: gemmajs 1.99.0-dev\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-01-25 10:11+0100\n" -"PO-Revision-Date: 2019-01-19 13:20+0000\n" +"PO-Revision-Date: 2019-02-04 22:09+0000\n" "Last-Translator: MANESCU CARMEN <compania@acn.ro>\n" -"Language-Team: Romanian <https://hosted.weblate.org/projects/gemma/client/ro/>\n" +"Language-Team: Romanian <https://hosted.weblate.org/projects/gemma/client/ro/" +">\n" "Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2;\n" -"X-Generator: Weblate 3.4-dev\n" +"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " +"20)) ? 1 : 2;\n" +"X-Generator: Weblate 3.5-dev\n" -#: src/components/Pdftool.vue:400 -msgid "– generated by:" +#: src/components/ImportWaterwayProfiles.vue:164 +msgid " was successfully uploaded." msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:778 +#: src/components/Pdftool.vue:453 +msgid "– generated by:" +msgstr "- generat de:" + +#: src/components/staging/StagingDetail.vue:188 +msgid "( New )" +msgstr "" + +#: src/components/Pdftool.vue:29 +msgid "{{ template.name }}" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:795 msgid "15 minutes" msgstr "15 minute" @@ -32,25 +46,30 @@ #: src/components/Logs.vue:25 msgid "Accesslog" -msgstr "Logul cu acces" +msgstr "Logul de acces" -#: src/components/usermanagement/Usermanagement.vue:104 +#: src/components/usermanagement/Usermanagement.vue:102 msgid "Add User" msgstr "Adauga utilizator" -#: src/components/importschedule/Importscheduledetail.vue:798 +#: src/components/staging/StagingDetail.vue:19 +#, fuzzy +msgid "Approved Gauge Measurements" +msgstr "Import aprobat masura nivel" + +#: src/components/importschedule/Importscheduledetail.vue:815 msgid "April" msgstr "Aprilie" -#: src/store/map.js:445 +#: src/store/map.js:565 msgid "Area" msgstr "Zona" -#: src/components/importschedule/Importscheduledetail.vue:775 +#: src/components/importschedule/Importscheduledetail.vue:792 msgid "at" msgstr "la" -#: src/components/importschedule/Importscheduledetail.vue:802 +#: src/components/importschedule/Importscheduledetail.vue:819 msgid "August" msgstr "August" @@ -60,45 +79,47 @@ #: src/components/importschedule/Importscheduledetail.vue:34 #, fuzzy -msgid "Available fairway fpths" -msgstr "Adancime disponibila Senal Navigabil" +msgid "Available fairway depths" +msgstr "Adâncime disponibilă Senal Navigabil" #: src/components/Login.vue:70 msgid "back to login" msgstr "Inapoi la loggare" -#: src/components/Bottlenecks.vue:274 -#: src/components/ImportApprovedGaugeMeasurement.vue:111 +#: src/components/Bottlenecks.vue:277 +#: src/components/ImportApprovedGaugeMeasurement.vue:108 #: src/components/ImportSoundingresults.vue:216 #: src/components/ImportSoundingresults.vue:255 #: src/components/ImportSoundingresults.vue:286 -#: src/components/ImportStretches.vue:306 -#: src/components/ImportStretches.vue:313 -#: src/components/ImportStretches.vue:485 src/components/Search.vue:258 +#: src/components/ImportStretches.vue:303 +#: src/components/ImportStretches.vue:310 +#: src/components/ImportStretches.vue:482 +#: src/components/ImportWaterwayProfiles.vue:175 src/components/Search.vue:258 #: src/components/Systemconfiguration.vue:114 #: src/components/Systemconfiguration.vue:129 #: src/components/Systemconfiguration.vue:148 #: src/components/Systemconfiguration.vue:165 #: src/components/importqueue/Importqueue.vue:160 #: src/components/importqueue/Importqueue.vue:180 -#: src/components/importqueue/Importqueuedetail.vue:182 +#: src/components/importqueue/Importqueuedetail.vue:214 #: src/components/importschedule/Importschedule.vue:148 #: src/components/importschedule/Importschedule.vue:167 #: src/components/importschedule/Importschedule.vue:176 #: src/components/importschedule/Importschedule.vue:198 -#: src/components/importschedule/Importscheduledetail.vue:647 -#: src/components/importschedule/Importscheduledetail.vue:727 -#: src/components/importschedule/Importscheduledetail.vue:757 -#: src/components/staging/StagingDetail.vue:251 +#: src/components/importschedule/Importscheduledetail.vue:664 +#: src/components/importschedule/Importscheduledetail.vue:744 +#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/staging/StagingDetail.vue:364 +#: src/components/staging/StagingDetail.vue:418 #: src/components/usermanagement/Userdetail.vue:304 #: src/components/usermanagement/Userdetail.vue:376 -#: src/components/usermanagement/Usermanagement.vue:298 -#: src/components/usermanagement/Usermanagement.vue:306 -#: src/components/usermanagement/Usermanagement.vue:340 +#: src/components/usermanagement/Usermanagement.vue:337 +#: src/components/usermanagement/Usermanagement.vue:345 +#: src/components/usermanagement/Usermanagement.vue:379 msgid "Backend Error" msgstr "Eroare Server" -#: src/components/ImportSoundingresults.vue:16 +#: src/components/ImportSoundingresults.vue:16 src/components/Pdftool.vue:496 msgid "Bottleneck" msgstr "Puncte critice" @@ -112,7 +133,7 @@ #: src/components/Bottlenecks.vue:4 src/components/Sidebar.vue:27 #: src/components/importschedule/Importscheduledetail.vue:25 -#: src/components/staging/StagingDetail.vue:11 +#: src/components/staging/StagingDetail.vue:12 msgid "Bottlenecks" msgstr "Puncte critice" @@ -122,22 +143,23 @@ #: src/components/Bottlenecks.vue:30 msgid "Chainage" -msgstr "" +msgstr "Inlantuire" #: src/components/ImportSoundingresults.vue:178 #: src/components/ImportSoundingresults.vue:192 msgid "choose .zip- file" msgstr "alege fisiere de tip .zip" -#: src/components/ImportApprovedGaugeMeasurement.vue:78 -#: src/components/ImportWaterwayProfiles.vue:75 +#: src/components/ImportApprovedGaugeMeasurement.vue:75 +#: src/components/ImportWaterwayProfiles.vue:135 +#: src/components/ImportWaterwayProfiles.vue:169 msgid "choose file to upload" msgstr "alege fisier sa incarci" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:23 #, fuzzy -msgid "Choose format:" -msgstr "Alege formatul" +msgid "Chose preset" +msgstr "Alege formatul:" #: src/components/fairway/Profiles.vue:64 msgid "Compare with" @@ -160,65 +182,86 @@ msgid "Country" msgstr "Tara" -#: src/components/ImportStretches.vue:85 +#: src/components/ImportStretches.vue:87 msgid "Countrycode" msgstr "Cod Tara" -#: src/components/importschedule/Importscheduledetail.vue:333 +#: src/components/importschedule/Importscheduledetail.vue:345 msgid "Cronstring" msgstr "" #: src/components/ImportSoundingresults.vue:72 -#: src/components/importqueue/Importqueuedetail.vue:49 +#: src/components/importqueue/Importqueuedetail.vue:54 #: src/components/staging/Staging.vue:13 msgid "Date" msgstr "Data" -#: src/components/ImportStretches.vue:201 +#: src/components/ImportStretches.vue:198 msgid "Date info" msgstr "Informatii despre data" -#: src/components/Pdftool.vue:396 +#: src/components/staging/StagingDetail.vue:179 +#, fuzzy +msgid "Date of measurement" +msgstr "Masura statie nivel" + +#: src/components/Pdftool.vue:449 msgid "Date of publication:" -msgstr "" +msgstr "Data publicării:" #: src/components/ImportStretches.vue:11 msgid "Datum" -msgstr "" +msgstr "Dată" -#: src/components/importschedule/Importscheduledetail.vue:780 +#: src/components/importschedule/Importscheduledetail.vue:797 msgid "day" msgstr "ziua" -#: src/components/importschedule/Importscheduledetail.vue:806 +#: src/components/importschedule/Importscheduledetail.vue:823 msgid "December" msgstr "Decembrie" #: src/components/ImportStretches.vue:4 src/components/Sidebar.vue:54 +msgid "Define stretches" +msgstr "Defineste secțiunile" + +#: src/components/usermanagement/Usermanagement.vue:123 #, fuzzy -msgid "Define stretches" -msgstr "Defineste sectiunea si intinderile" +msgid "Delete user" +msgstr "Șterge " #: src/components/importschedule/Importschedule.vue:192 msgid "Deleted import: #" msgstr "Import sters: #" -#: src/components/ImportStretches.vue:361 +#: src/components/ImportStretches.vue:358 msgid "Deleting " -msgstr "" +msgstr "Șterge " #: src/components/importschedule/importtypes/Fairwaydimensions.vue:86 msgid "Depth" msgstr "Adancime" +#: src/components/Pdftool.vue:522 +msgid "Depth relativ to" +msgstr "" + #: src/components/ImportSoundingresults.vue:52 msgid "Depthreference" msgstr "Referinta adancime" -#: src/components/importschedule/Importscheduledetail.vue:46 +#: src/components/importschedule/Importscheduledetail.vue:49 #, fuzzy +msgid "Distance marks ashore" +msgstr "Marcaj distanță virtual" + +#: src/components/importschedule/Importscheduledetail.vue:46 msgid "Distance marks virtual" -msgstr "Marcaj distanta virtual" +msgstr "Marcaj distanță virtual" + +#: src/components/usermanagement/Usermanagement.vue:131 +msgid "Do you really want to delete the following user account:" +msgstr "" #: src/components/Pdftool.vue:10 msgid "Download" @@ -236,11 +279,11 @@ msgid "Email address" msgstr "Adresa e-mail" -#: src/components/importschedule/Importscheduledetail.vue:53 +#: src/components/importschedule/Importscheduledetail.vue:56 msgid "Email Notification" msgstr "Notificare e-mail" -#: src/components/ImportStretches.vue:131 +#: src/components/ImportStretches.vue:133 msgid "End rhm" msgstr "Rhm final" @@ -272,7 +315,7 @@ msgid "Errorlog" msgstr "Jurnal de erori" -#: src/components/importschedule/Importscheduledetail.vue:771 +#: src/components/importschedule/Importscheduledetail.vue:788 msgid "Every" msgstr "Orice" @@ -281,17 +324,18 @@ msgstr "Esuat" #: src/components/importschedule/Importscheduledetail.vue:40 -#, fuzzy msgid "Fairway dimension" -msgstr "Dimensiune senal navigabil" +msgstr "Dimensiune șenal navigabil" +#: src/components/ImportWaterwayProfiles.vue:34 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:25 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:25 #: src/components/importschedule/importtypes/Waterwayarea.vue:25 #: src/components/importschedule/importtypes/Waterwayaxis.vue:25 msgid "Featuretype" msgstr "Tip de caracteristica" -#: src/components/importschedule/Importscheduledetail.vue:796 +#: src/components/importschedule/Importscheduledetail.vue:813 msgid "February" msgstr "Februarie" @@ -299,7 +343,11 @@ msgid "Forgot password" msgstr "Ai uitat parola" -#: src/components/importschedule/Importscheduledetail.vue:790 +#: src/components/Pdftool.vue:33 +msgid "Format" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:807 msgid "Friday" msgstr "Vineri" @@ -307,11 +355,11 @@ msgid "Gauge measurement" msgstr "Masura statie nivel" -#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:61 +#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:96 msgid "Generate PDF" msgstr "Genereaza PDF" -#: src/components/importschedule/Importscheduledetail.vue:779 +#: src/components/importschedule/Importscheduledetail.vue:796 msgid "hour" msgstr "ora" @@ -319,7 +367,7 @@ msgid "Id" msgstr "Eticheta" -#: src/components/ImportStretches.vue:66 +#: src/components/ImportStretches.vue:68 msgid "ID" msgstr "Eticheta" @@ -327,19 +375,19 @@ msgid "Identified" msgstr "Identificat" -#: src/components/ImportApprovedGaugeMeasurement.vue:101 +#: src/components/ImportApprovedGaugeMeasurement.vue:98 #: src/components/ImportSoundingresults.vue:278 -#: src/components/ImportStretches.vue:474 -#: src/components/ImportWaterwayProfiles.vue:88 src/components/Sidebar.vue:58 +#: src/components/ImportStretches.vue:471 +#: src/components/ImportWaterwayProfiles.vue:162 src/components/Sidebar.vue:58 #: src/components/importschedule/Importschedule.vue:33 -#: src/components/importschedule/Importscheduledetail.vue:456 -#: src/components/importschedule/Importscheduledetail.vue:640 -#: src/components/importschedule/Importscheduledetail.vue:710 -#: src/components/importschedule/Importscheduledetail.vue:740 +#: src/components/importschedule/Importscheduledetail.vue:470 +#: src/components/importschedule/Importscheduledetail.vue:657 +#: src/components/importschedule/Importscheduledetail.vue:727 +#: src/components/importschedule/Importscheduledetail.vue:757 msgid "Import" msgstr "Import" -#: src/components/ImportApprovedGaugeMeasurement.vue:11 +#: src/components/ImportApprovedGaugeMeasurement.vue:8 #: src/components/Sidebar.vue:76 msgid "Import approved gaugemeasurements" msgstr "Import aprobat masura nivel" @@ -356,7 +404,7 @@ msgid "Import waterway profiles" msgstr "Importa profilele caii navigabile" -#: src/components/ImportWaterwayProfiles.vue:11 +#: src/components/ImportWaterwayProfiles.vue:8 msgid "Import Waterwayprofiles" msgstr "Importa profilele caii navigabile" @@ -388,32 +436,36 @@ msgid "Invalid input" msgstr "Inregistrare nevalida" -#: src/components/Pdftool.vue:29 +#: src/components/Pdftool.vue:62 msgid "ISO A3" msgstr "ISO A3" -#: src/components/Pdftool.vue:30 +#: src/components/Pdftool.vue:63 msgid "ISO A4" msgstr "ISO A4" -#: src/components/importschedule/Importscheduledetail.vue:795 +#: src/components/staging/StagingDetail.vue:176 +msgid "ISRS Code" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:812 msgid "January" msgstr "Ianuarie" -#: src/components/importschedule/Importscheduledetail.vue:801 +#: src/components/importschedule/Importscheduledetail.vue:818 msgid "July" msgstr "Iulie" -#: src/components/importschedule/Importscheduledetail.vue:800 +#: src/components/importschedule/Importscheduledetail.vue:817 msgid "June" msgstr "Iunie" #: src/components/importqueue/Importqueue.vue:58 -#: src/components/importqueue/Importqueuedetail.vue:45 +#: src/components/importqueue/Importqueuedetail.vue:50 msgid "Kind" msgstr "Tip" -#: src/components/Pdftool.vue:20 +#: src/components/Pdftool.vue:39 msgid "landscape" msgstr "orizontala" @@ -429,7 +481,7 @@ msgid "Layers" msgstr "Straturi" -#: src/store/map.js:424 +#: src/store/map.js:544 msgid "Length" msgstr "Lungime" @@ -458,7 +510,7 @@ msgstr "E-mail-ul a fost trimis" #: src/components/importschedule/Importschedule.vue:161 -#: src/components/importschedule/Importscheduledetail.vue:641 +#: src/components/importschedule/Importscheduledetail.vue:658 msgid "Manually triggered import: #" msgstr "Import declansat manual: #" @@ -466,15 +518,15 @@ msgid "Map" msgstr "Harta" -#: src/components/importschedule/Importscheduledetail.vue:797 +#: src/components/importschedule/Importscheduledetail.vue:814 msgid "March" msgstr "Martie" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:132 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:130 msgid "MaxWidth" msgstr "Latime maxima" -#: src/components/importschedule/Importscheduledetail.vue:799 +#: src/components/importschedule/Importscheduledetail.vue:816 msgid "May" msgstr "Mai" @@ -482,27 +534,27 @@ msgid "Measurement" msgstr "Masuratoare" -#: src/components/importqueue/Importqueuedetail.vue:58 +#: src/components/importqueue/Importqueuedetail.vue:63 msgid "Message" msgstr "Mesaj" -#: src/components/importschedule/Importscheduledetail.vue:772 +#: src/components/importschedule/Importscheduledetail.vue:789 msgid "minutes past" msgstr "minute trecute" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:110 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:109 msgid "MinWidth" msgstr "Latime minima" -#: src/components/importschedule/Importscheduledetail.vue:786 +#: src/components/importschedule/Importscheduledetail.vue:803 msgid "Monday" msgstr "Luni" -#: src/components/importschedule/Importscheduledetail.vue:782 +#: src/components/importschedule/Importscheduledetail.vue:799 msgid "month" msgstr "luna" -#: src/components/importschedule/Importscheduledetail.vue:198 +#: src/components/importschedule/Importscheduledetail.vue:210 msgid "Monthly" msgstr "Lunar" @@ -511,25 +563,28 @@ msgid "Name" msgstr "Nume" -#: src/components/ImportStretches.vue:182 +#: src/components/ImportStretches.vue:184 msgid "National Object name" msgstr "Numele national al obiectului" +#: src/components/staging/StagingDetail.vue:227 +msgid "New" +msgstr "" + #: src/components/importschedule/Importschedule.vue:93 -#: src/components/importschedule/Importscheduledetail.vue:457 +#: src/components/importschedule/Importscheduledetail.vue:471 msgid "New Import" msgstr "Import nou" -#: src/components/ImportStretches.vue:247 -#, fuzzy +#: src/components/ImportStretches.vue:244 msgid "New stretch" -msgstr "Sector" +msgstr "Secțiune nouă" #: src/components/Identify.vue:47 msgid "No features identified." -msgstr "Nicio caracteristica identificata" +msgstr "Nicio caracteristica identificata." -#: src/components/Bottlenecks.vue:115 src/components/ImportStretches.vue:59 +#: src/components/Bottlenecks.vue:118 src/components/ImportStretches.vue:61 #: src/components/staging/Staging.vue:36 msgid "No results." msgstr "Niciun rezultat." @@ -538,36 +593,39 @@ msgid "No scheduled imports" msgstr "Niciun import planificat" -#: src/components/ImportStretches.vue:360 -#, fuzzy +#: src/components/ImportStretches.vue:357 msgid "Not implemented" -msgstr "Nu este implementat!" +msgstr "Nu este implementat" -#: src/components/importschedule/Importscheduledetail.vue:805 +#: src/components/importschedule/Importscheduledetail.vue:822 msgid "November" msgstr "Noiembrie" -#: src/components/importschedule/Importscheduledetail.vue:776 +#: src/components/importschedule/Importscheduledetail.vue:793 msgid "o' clock" msgstr "ora" -#: src/components/ImportStretches.vue:164 +#: src/components/ImportStretches.vue:166 msgid "Object name" msgstr "Nume obiect" -#: src/components/importschedule/Importscheduledetail.vue:804 +#: src/components/importschedule/Importscheduledetail.vue:821 msgid "October" msgstr "Octombrie" -#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/importschedule/Importscheduledetail.vue:791 msgid "of" msgstr "al" -#: src/components/importschedule/Importscheduledetail.vue:773 +#: src/components/staging/StagingDetail.vue:224 +msgid "Old" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:790 msgid "on" msgstr "inchis, in" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:19 msgid "Open in new window" msgstr "Deschide in fereastra noua" @@ -590,8 +648,12 @@ msgstr "Solicitat resetare parola!" #: src/components/usermanagement/Userdetail.vue:346 -msgid "Password should at least be 8 char long including 1 digit and 1 special char like $" -msgstr "Parola trebuie sa fie de 8 caractere lungime sa includa 1 digit 1 caracter special , de ex. $" +msgid "" +"Password should at least be 8 char long including 1 digit and 1 special char " +"like $" +msgstr "" +"Parola trebuie sa fie de 8 caractere lungime sa includa 1 digit 1 caracter " +"special , de ex. $" #: src/components/usermanagement/Userdetail.vue:342 msgid "Passwords do not match!" @@ -609,19 +671,21 @@ msgid "Please choose a role" msgstr "Selectati un rol" -#: src/components/ImportStretches.vue:97 +#: src/components/ImportStretches.vue:99 msgid "Please enter a countrycode" msgstr "Introduceti un cod pentru țară" #: src/components/ImportSoundingresults.vue:84 -#: src/components/ImportStretches.vue:212 +#: src/components/ImportStretches.vue:209 msgid "Please enter a date" msgstr "Introduceti o data" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:100 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:99 msgid "Please enter a depth" msgstr "Introduceti o adancime" +#: src/components/ImportWaterwayProfiles.vue:46 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:37 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:37 #: src/components/importschedule/importtypes/Waterwayarea.vue:37 #: src/components/importschedule/importtypes/Waterwayaxis.vue:37 @@ -632,11 +696,11 @@ msgid "Please enter a level of service" msgstr "Introduceti un nivel de servicii" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:146 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:143 msgid "Please enter a maximum width" msgstr "Introduceti o latime maxima" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:124 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:122 msgid "Please enter a minimum width" msgstr "Introduceti o latime minima" @@ -653,20 +717,22 @@ msgid "Please enter a reference" msgstr "Introduceti o referinta" -#: src/components/ImportStretches.vue:228 +#: src/components/ImportStretches.vue:225 msgid "Please enter a source" msgstr "Introduceti o sursa" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:170 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:167 msgid "Please enter a source orgranization" msgstr "Introduceti o sursa (organizatie)" -#: src/components/ImportStretches.vue:126 +#: src/components/ImportStretches.vue:128 msgid "Please enter a start point" msgstr "Introduceti un punct de pornire" +#: src/components/ImportWaterwayProfiles.vue:25 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:19 #: src/components/importschedule/importtypes/Bottleneck.vue:44 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:19 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:19 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:19 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:19 @@ -681,16 +747,15 @@ msgid "Please enter a Username" msgstr "Introduceti nume utilizator" -#: src/components/ImportStretches.vue:151 +#: src/components/ImportStretches.vue:153 msgid "Please enter an end point" msgstr "Introduceti un punct final" -#: src/components/ImportStretches.vue:78 +#: src/components/ImportStretches.vue:80 msgid "Please enter an id" msgstr "Introduceti o eticheta" -#: src/components/ImportStretches.vue:176 -#: src/components/ImportStretches.vue:194 +#: src/components/ImportStretches.vue:178 msgid "Please enter an objectname" msgstr "Introduceti un nume de obiect" @@ -698,6 +763,8 @@ msgid "Please enter correct coordinates in the format: Lat,Lon,Lat,Lon" msgstr "Introduceti coordonatele corect, in format: Lat,Lon,Lat,Lon" +#: src/components/ImportWaterwayProfiles.vue:63 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:57 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:57 #: src/components/importschedule/importtypes/Waterwayarea.vue:57 #: src/components/importschedule/importtypes/Waterwayaxis.vue:57 @@ -713,7 +780,7 @@ msgid "Please select one" msgstr "Selectati unul" -#: src/components/Pdftool.vue:21 +#: src/components/Pdftool.vue:40 msgid "portrait" msgstr "vertical" @@ -733,6 +800,10 @@ msgid "Projection" msgstr "Proiectie" +#: src/components/Pdftool.vue:514 +msgid "Ref gauge" +msgstr "" + #: src/components/Logs.vue:48 src/components/importqueue/Importqueue.vue:84 msgid "Refresh" msgstr "Actualizare" @@ -749,11 +820,15 @@ msgid "Request password reset!" msgstr "Solicitare resetare parola!" +#: src/components/Pdftool.vue:44 +msgid "Resolution" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:78 msgid "Role" msgstr "Rol" -#: src/components/importschedule/Importscheduledetail.vue:791 +#: src/components/importschedule/Importscheduledetail.vue:808 msgid "Saturday" msgstr "Sambata" @@ -761,16 +836,16 @@ msgid "Saved cross profiles" msgstr "Profile transversale salvate" -#: src/components/importschedule/Importscheduledetail.vue:711 +#: src/components/importschedule/Importscheduledetail.vue:728 msgid "Saved import: #" msgstr "Import salvat: #" #: src/components/importschedule/Importschedule.vue:36 -#: src/components/importschedule/Importscheduledetail.vue:189 +#: src/components/importschedule/Importscheduledetail.vue:201 msgid "Schedule" msgstr "Plan, orar" -#: src/components/importschedule/Importscheduledetail.vue:147 +#: src/components/importschedule/Importscheduledetail.vue:159 msgid "Scheduled" msgstr "Programat" @@ -786,7 +861,7 @@ msgid "Send testmail" msgstr "Trimite email de test" -#: src/components/importschedule/Importscheduledetail.vue:803 +#: src/components/importschedule/Importscheduledetail.vue:820 msgid "September" msgstr "Septembrie" @@ -794,10 +869,13 @@ msgid "Signer" msgstr "Semnatar" -#: src/components/importschedule/Importscheduledetail.vue:167 -#, fuzzy +#: src/components/importschedule/Importscheduledetail.vue:179 msgid "Simple schedule" -msgstr "Programare simpla" +msgstr "Programare simplă" + +#: src/components/Pdftool.vue:56 +msgid "Size" +msgstr "" #: src/components/Identify.vue:60 msgid "" @@ -806,9 +884,11 @@ " contributors." msgstr "" "Cateva date . ©\n" -" <a href=\"https://www.openstreetmap.org/copyright\">1%{ name }</a>2\n" -" ...... colaborator" +" <a href=\"https://www.openstreetmap.org/copyright\">1%{ nume }</" +"a>2 ...... colaborator." +#: src/components/ImportWaterwayProfiles.vue:55 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:45 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:45 #: src/components/importschedule/importtypes/Waterwayarea.vue:45 #: src/components/importschedule/importtypes/Waterwayaxis.vue:45 @@ -819,16 +899,15 @@ msgid "Sounding Result" msgstr "Rezultate masuratori hidrografice" -#: src/components/ImportStretches.vue:217 +#: src/components/ImportStretches.vue:214 msgid "Source" msgstr "Sursa" #: src/components/ImportStretches.vue:12 -#, fuzzy msgid "Source organization" msgstr "Organizatia" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:157 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:154 msgid "Source orgranization" msgstr "Organizatia" @@ -848,7 +927,7 @@ msgid "Start" msgstr "Porneste" -#: src/components/ImportStretches.vue:106 +#: src/components/ImportStretches.vue:108 msgid "Start rhm" msgstr "Rhm de pornire" @@ -856,25 +935,24 @@ msgid "Starting import for " msgstr "Incepe importul pentru: " -#: src/components/ImportApprovedGaugeMeasurement.vue:102 +#: src/components/ImportApprovedGaugeMeasurement.vue:99 msgid "Starting import of Approved Gauge Measurements" msgstr "Incepe importul Masuratorilor de la statiile de nivel aprobate" -#: src/components/ImportStretches.vue:475 -#, fuzzy +#: src/components/ImportStretches.vue:472 msgid "Starting import of stretch" -msgstr "Incepe importul pentru: " +msgstr "Incepe importul secțiunii" -#: src/components/ImportStretches.vue:157 +#: src/components/ImportStretches.vue:159 msgid "Startpoint is not before endpoint." -msgstr "" +msgstr "Punctul de început nu este înainte de cel de sfârșit." #: src/components/importqueue/Importqueue.vue:67 msgid "State" msgstr "Status" -#: src/components/ImportStretches.vue:241 -#: src/components/importschedule/Importscheduledetail.vue:345 +#: src/components/ImportStretches.vue:238 +#: src/components/importschedule/Importscheduledetail.vue:357 #: src/components/usermanagement/Userdetail.vue:129 msgid "Submit" msgstr "Trimis" @@ -887,15 +965,19 @@ msgid "Successful" msgstr "Cu succes" -#: src/components/importschedule/Importscheduledetail.vue:792 +#: src/components/importschedule/Importscheduledetail.vue:809 msgid "Sunday" msgstr "Duminica" +#: src/components/Pdftool.vue:506 +msgid "Survey date" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:88 msgid "Sysadmin" msgstr "Administrator de sistem" -#: src/components/usermanagement/Usermanagement.vue:326 +#: src/components/usermanagement/Usermanagement.vue:365 msgid "System-Administrator" msgstr "Administrator de sistem" @@ -907,25 +989,30 @@ msgid "Systemconfiguration" msgstr "Configurare de sistem" +#: src/components/ImportWaterwayProfiles.vue:163 +msgid "this" +msgstr "" + #: src/components/Identify.vue:51 msgid "" "This app uses <i>gemma</i>, which is Free Software under <br/>\n" " %{ license } without warranty, see docs for details." msgstr "" -"Aceasta aplicatie foloseste <i>1gemma</i>2, care este un soft free (fara plata) sub <br/>3\n" +"Aceasta aplicatie foloseste <i>1gemma</i>2, care este un soft free (fara " +"plata) sub <br/>3\n" " %{ license } fara garantie, vezi documentele pentru detalii." -#: src/components/importschedule/Importscheduledetail.vue:789 +#: src/components/importschedule/Importscheduledetail.vue:806 msgid "Thursday" msgstr "Joi" -#: src/components/ImportApprovedGaugeMeasurement.vue:45 -#: src/components/ImportWaterwayProfiles.vue:43 -#: src/components/importschedule/Importscheduledetail.vue:358 +#: src/components/ImportApprovedGaugeMeasurement.vue:42 +#: src/components/ImportWaterwayProfiles.vue:99 +#: src/components/importschedule/Importscheduledetail.vue:370 msgid "Trigger import" msgstr "Import declansat" -#: src/components/importschedule/Importscheduledetail.vue:787 +#: src/components/importschedule/Importscheduledetail.vue:804 msgid "Tuesday" msgstr "Marti" @@ -934,11 +1021,7 @@ msgid "Type" msgstr "Tip" -#: src/components/ImportWaterwayProfiles.vue:89 -msgid "under construction" -msgstr "in constructie" - -#: src/components/importschedule/Importscheduledetail.vue:741 +#: src/components/importschedule/Importscheduledetail.vue:758 msgid "update import: #" msgstr "import pentru actualizare: #" @@ -946,8 +1029,10 @@ msgid "Upload" msgstr "Incarca" +#: src/components/ImportWaterwayProfiles.vue:16 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:5 #: src/components/importschedule/importtypes/Bottleneck.vue:5 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:5 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:5 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:5 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:5 @@ -976,22 +1061,27 @@ #: src/components/Identify.vue:65 msgid "" "Uses\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " under %{ geoLicense }." msgstr "" "Foloseste\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">1GeoNames</a>2\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">1GeoNames</a>2\n" " sub %{ geoLicense }." +#: src/components/staging/StagingDetail.vue:218 +msgid "Value" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:91 -#: src/components/usermanagement/Usermanagement.vue:327 +#: src/components/usermanagement/Usermanagement.vue:366 msgid "Waterway Admin" msgstr "Administrator de cale navigabila" #: src/components/importschedule/Importscheduledetail.vue:37 -#, fuzzy msgid "Waterway area" -msgstr "Zona cale navigabila" +msgstr "Zona cale navigabilă" #: src/components/importschedule/Importscheduledetail.vue:28 msgid "Waterway axis" @@ -1002,26 +1092,33 @@ msgstr "Statie de masura nivel" #: src/components/usermanagement/Userdetail.vue:94 -#: src/components/usermanagement/Usermanagement.vue:328 +#: src/components/usermanagement/Usermanagement.vue:367 msgid "Waterway User" msgstr "Utilizator cale navigabila" -#: src/components/importschedule/Importscheduledetail.vue:788 +#: src/components/importschedule/Importscheduledetail.vue:805 msgid "Wednesday" msgstr "Miercuri" -#: src/components/importschedule/Importscheduledetail.vue:781 +#: src/components/importschedule/Importscheduledetail.vue:798 msgid "week" msgstr "saptamana" -#: src/components/importschedule/Importscheduledetail.vue:197 +#: src/components/importschedule/Importscheduledetail.vue:209 msgid "Weekly" msgstr "Saptamanal" -#: src/components/importschedule/Importscheduledetail.vue:783 +#: src/components/importschedule/Importscheduledetail.vue:800 msgid "year" msgstr "an" #: src/components/fairway/Profiles.vue:443 -msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile." -msgstr "Poti selecta acum aceste coordonate din meniul \" Profile transversale salvate \" pentru a restaura profilul transversal." +msgid "" +"You can now select these coordinates from the \"Saved cross profiles\" menu " +"to restore this cross profile." +msgstr "" +"Poti selecta acum aceste coordonate din meniul \" Profile transversale " +"salvate \" pentru a restaura profilul transversal." + +#~ msgid "under construction" +#~ msgstr "in constructie"
--- a/client/src/locale/sk_SK/LC_MESSAGES/app.po Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/locale/sk_SK/LC_MESSAGES/app.po Tue Feb 12 11:11:32 2019 +0100 @@ -10,7 +10,8 @@ "POT-Creation-Date: 2019-01-25 10:11+0100\n" "PO-Revision-Date: 2019-01-22 12:18+0000\n" "Last-Translator: Fadi Abbud <fadi.abbud@intevation.de>\n" -"Language-Team: Slovak <https://hosted.weblate.org/projects/gemma/client/sk/>\n" +"Language-Team: Slovak <https://hosted.weblate.org/projects/gemma/client/sk/" +">\n" "Language: sk_SK\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,11 +19,23 @@ "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Weblate 3.4-dev\n" -#: src/components/Pdftool.vue:400 +#: src/components/ImportWaterwayProfiles.vue:164 +msgid " was successfully uploaded." +msgstr "" + +#: src/components/Pdftool.vue:453 msgid "– generated by:" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:778 +#: src/components/staging/StagingDetail.vue:188 +msgid "( New )" +msgstr "" + +#: src/components/Pdftool.vue:29 +msgid "{{ template.name }}" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:795 msgid "15 minutes" msgstr "" @@ -34,23 +47,27 @@ msgid "Accesslog" msgstr "" -#: src/components/usermanagement/Usermanagement.vue:104 +#: src/components/usermanagement/Usermanagement.vue:102 msgid "Add User" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:798 +#: src/components/staging/StagingDetail.vue:19 +msgid "Approved Gauge Measurements" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:815 msgid "April" msgstr "" -#: src/store/map.js:445 +#: src/store/map.js:565 msgid "Area" msgstr "Oblasť" -#: src/components/importschedule/Importscheduledetail.vue:775 +#: src/components/importschedule/Importscheduledetail.vue:792 msgid "at" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:802 +#: src/components/importschedule/Importscheduledetail.vue:819 msgid "August" msgstr "" @@ -59,45 +76,47 @@ msgstr "" #: src/components/importschedule/Importscheduledetail.vue:34 -msgid "Available fairway fpths" +msgid "Available fairway depths" msgstr "" #: src/components/Login.vue:70 msgid "back to login" msgstr "" -#: src/components/Bottlenecks.vue:274 -#: src/components/ImportApprovedGaugeMeasurement.vue:111 +#: src/components/Bottlenecks.vue:277 +#: src/components/ImportApprovedGaugeMeasurement.vue:108 #: src/components/ImportSoundingresults.vue:216 #: src/components/ImportSoundingresults.vue:255 #: src/components/ImportSoundingresults.vue:286 -#: src/components/ImportStretches.vue:306 -#: src/components/ImportStretches.vue:313 -#: src/components/ImportStretches.vue:485 src/components/Search.vue:258 +#: src/components/ImportStretches.vue:303 +#: src/components/ImportStretches.vue:310 +#: src/components/ImportStretches.vue:482 +#: src/components/ImportWaterwayProfiles.vue:175 src/components/Search.vue:258 #: src/components/Systemconfiguration.vue:114 #: src/components/Systemconfiguration.vue:129 #: src/components/Systemconfiguration.vue:148 #: src/components/Systemconfiguration.vue:165 #: src/components/importqueue/Importqueue.vue:160 #: src/components/importqueue/Importqueue.vue:180 -#: src/components/importqueue/Importqueuedetail.vue:182 +#: src/components/importqueue/Importqueuedetail.vue:214 #: src/components/importschedule/Importschedule.vue:148 #: src/components/importschedule/Importschedule.vue:167 #: src/components/importschedule/Importschedule.vue:176 #: src/components/importschedule/Importschedule.vue:198 -#: src/components/importschedule/Importscheduledetail.vue:647 -#: src/components/importschedule/Importscheduledetail.vue:727 -#: src/components/importschedule/Importscheduledetail.vue:757 -#: src/components/staging/StagingDetail.vue:251 +#: src/components/importschedule/Importscheduledetail.vue:664 +#: src/components/importschedule/Importscheduledetail.vue:744 +#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/staging/StagingDetail.vue:364 +#: src/components/staging/StagingDetail.vue:418 #: src/components/usermanagement/Userdetail.vue:304 #: src/components/usermanagement/Userdetail.vue:376 -#: src/components/usermanagement/Usermanagement.vue:298 -#: src/components/usermanagement/Usermanagement.vue:306 -#: src/components/usermanagement/Usermanagement.vue:340 +#: src/components/usermanagement/Usermanagement.vue:337 +#: src/components/usermanagement/Usermanagement.vue:345 +#: src/components/usermanagement/Usermanagement.vue:379 msgid "Backend Error" msgstr "" -#: src/components/ImportSoundingresults.vue:16 +#: src/components/ImportSoundingresults.vue:16 src/components/Pdftool.vue:496 msgid "Bottleneck" msgstr "Brody a úžiny" @@ -111,7 +130,7 @@ #: src/components/Bottlenecks.vue:4 src/components/Sidebar.vue:27 #: src/components/importschedule/Importscheduledetail.vue:25 -#: src/components/staging/StagingDetail.vue:11 +#: src/components/staging/StagingDetail.vue:12 msgid "Bottlenecks" msgstr "" @@ -128,14 +147,15 @@ msgid "choose .zip- file" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:78 -#: src/components/ImportWaterwayProfiles.vue:75 +#: src/components/ImportApprovedGaugeMeasurement.vue:75 +#: src/components/ImportWaterwayProfiles.vue:135 +#: src/components/ImportWaterwayProfiles.vue:169 msgid "choose file to upload" msgstr "" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:23 #, fuzzy -msgid "Choose format:" +msgid "Chose preset" msgstr "Vyberte formát" #: src/components/fairway/Profiles.vue:64 @@ -159,25 +179,29 @@ msgid "Country" msgstr "Štát" -#: src/components/ImportStretches.vue:85 +#: src/components/ImportStretches.vue:87 msgid "Countrycode" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:333 +#: src/components/importschedule/Importscheduledetail.vue:345 msgid "Cronstring" msgstr "" #: src/components/ImportSoundingresults.vue:72 -#: src/components/importqueue/Importqueuedetail.vue:49 +#: src/components/importqueue/Importqueuedetail.vue:54 #: src/components/staging/Staging.vue:13 msgid "Date" msgstr "" -#: src/components/ImportStretches.vue:201 +#: src/components/ImportStretches.vue:198 msgid "Date info" msgstr "" -#: src/components/Pdftool.vue:396 +#: src/components/staging/StagingDetail.vue:179 +msgid "Date of measurement" +msgstr "" + +#: src/components/Pdftool.vue:449 msgid "Date of publication:" msgstr "" @@ -185,11 +209,11 @@ msgid "Datum" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:780 +#: src/components/importschedule/Importscheduledetail.vue:797 msgid "day" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:806 +#: src/components/importschedule/Importscheduledetail.vue:823 msgid "December" msgstr "" @@ -197,11 +221,15 @@ msgid "Define stretches" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:123 +msgid "Delete user" +msgstr "" + #: src/components/importschedule/Importschedule.vue:192 msgid "Deleted import: #" msgstr "" -#: src/components/ImportStretches.vue:361 +#: src/components/ImportStretches.vue:358 msgid "Deleting " msgstr "" @@ -209,14 +237,26 @@ msgid "Depth" msgstr "" +#: src/components/Pdftool.vue:522 +msgid "Depth relativ to" +msgstr "" + #: src/components/ImportSoundingresults.vue:52 msgid "Depthreference" msgstr "" +#: src/components/importschedule/Importscheduledetail.vue:49 +msgid "Distance marks ashore" +msgstr "" + #: src/components/importschedule/Importscheduledetail.vue:46 msgid "Distance marks virtual" msgstr "" +#: src/components/usermanagement/Usermanagement.vue:131 +msgid "Do you really want to delete the following user account:" +msgstr "" + #: src/components/Pdftool.vue:10 msgid "Download" msgstr "" @@ -233,11 +273,11 @@ msgid "Email address" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:53 +#: src/components/importschedule/Importscheduledetail.vue:56 msgid "Email Notification" msgstr "" -#: src/components/ImportStretches.vue:131 +#: src/components/ImportStretches.vue:133 msgid "End rhm" msgstr "" @@ -269,7 +309,7 @@ msgid "Errorlog" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:771 +#: src/components/importschedule/Importscheduledetail.vue:788 msgid "Every" msgstr "" @@ -281,13 +321,15 @@ msgid "Fairway dimension" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:34 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:25 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:25 #: src/components/importschedule/importtypes/Waterwayarea.vue:25 #: src/components/importschedule/importtypes/Waterwayaxis.vue:25 msgid "Featuretype" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:796 +#: src/components/importschedule/Importscheduledetail.vue:813 msgid "February" msgstr "" @@ -295,7 +337,11 @@ msgid "Forgot password" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:790 +#: src/components/Pdftool.vue:33 +msgid "Format" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:807 msgid "Friday" msgstr "" @@ -303,11 +349,11 @@ msgid "Gauge measurement" msgstr "" -#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:61 +#: src/components/Pdftool.vue:10 src/components/Pdftool.vue:96 msgid "Generate PDF" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:779 +#: src/components/importschedule/Importscheduledetail.vue:796 msgid "hour" msgstr "" @@ -315,7 +361,7 @@ msgid "Id" msgstr "" -#: src/components/ImportStretches.vue:66 +#: src/components/ImportStretches.vue:68 msgid "ID" msgstr "" @@ -323,19 +369,19 @@ msgid "Identified" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:101 +#: src/components/ImportApprovedGaugeMeasurement.vue:98 #: src/components/ImportSoundingresults.vue:278 -#: src/components/ImportStretches.vue:474 -#: src/components/ImportWaterwayProfiles.vue:88 src/components/Sidebar.vue:58 +#: src/components/ImportStretches.vue:471 +#: src/components/ImportWaterwayProfiles.vue:162 src/components/Sidebar.vue:58 #: src/components/importschedule/Importschedule.vue:33 -#: src/components/importschedule/Importscheduledetail.vue:456 -#: src/components/importschedule/Importscheduledetail.vue:640 -#: src/components/importschedule/Importscheduledetail.vue:710 -#: src/components/importschedule/Importscheduledetail.vue:740 +#: src/components/importschedule/Importscheduledetail.vue:470 +#: src/components/importschedule/Importscheduledetail.vue:657 +#: src/components/importschedule/Importscheduledetail.vue:727 +#: src/components/importschedule/Importscheduledetail.vue:757 msgid "Import" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:11 +#: src/components/ImportApprovedGaugeMeasurement.vue:8 #: src/components/Sidebar.vue:76 msgid "Import approved gaugemeasurements" msgstr "" @@ -352,7 +398,7 @@ msgid "Import waterway profiles" msgstr "" -#: src/components/ImportWaterwayProfiles.vue:11 +#: src/components/ImportWaterwayProfiles.vue:8 msgid "Import Waterwayprofiles" msgstr "" @@ -384,32 +430,36 @@ msgid "Invalid input" msgstr "" -#: src/components/Pdftool.vue:29 +#: src/components/Pdftool.vue:62 msgid "ISO A3" msgstr "" -#: src/components/Pdftool.vue:30 +#: src/components/Pdftool.vue:63 msgid "ISO A4" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:795 +#: src/components/staging/StagingDetail.vue:176 +msgid "ISRS Code" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:812 msgid "January" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:801 +#: src/components/importschedule/Importscheduledetail.vue:818 msgid "July" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:800 +#: src/components/importschedule/Importscheduledetail.vue:817 msgid "June" msgstr "" #: src/components/importqueue/Importqueue.vue:58 -#: src/components/importqueue/Importqueuedetail.vue:45 +#: src/components/importqueue/Importqueuedetail.vue:50 msgid "Kind" msgstr "" -#: src/components/Pdftool.vue:20 +#: src/components/Pdftool.vue:39 msgid "landscape" msgstr "" @@ -425,7 +475,7 @@ msgid "Layers" msgstr "Vrstvy" -#: src/store/map.js:424 +#: src/store/map.js:544 msgid "Length" msgstr "" @@ -454,7 +504,7 @@ msgstr "" #: src/components/importschedule/Importschedule.vue:161 -#: src/components/importschedule/Importscheduledetail.vue:641 +#: src/components/importschedule/Importscheduledetail.vue:658 msgid "Manually triggered import: #" msgstr "" @@ -462,15 +512,15 @@ msgid "Map" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:797 +#: src/components/importschedule/Importscheduledetail.vue:814 msgid "March" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:132 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:130 msgid "MaxWidth" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:799 +#: src/components/importschedule/Importscheduledetail.vue:816 #, fuzzy msgid "May" msgstr "Mapa" @@ -479,27 +529,27 @@ msgid "Measurement" msgstr "" -#: src/components/importqueue/Importqueuedetail.vue:58 +#: src/components/importqueue/Importqueuedetail.vue:63 msgid "Message" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:772 +#: src/components/importschedule/Importscheduledetail.vue:789 msgid "minutes past" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:110 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:109 msgid "MinWidth" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:786 +#: src/components/importschedule/Importscheduledetail.vue:803 msgid "Monday" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:782 +#: src/components/importschedule/Importscheduledetail.vue:799 msgid "month" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:198 +#: src/components/importschedule/Importscheduledetail.vue:210 msgid "Monthly" msgstr "" @@ -508,16 +558,20 @@ msgid "Name" msgstr "Názov" -#: src/components/ImportStretches.vue:182 +#: src/components/ImportStretches.vue:184 msgid "National Object name" msgstr "" +#: src/components/staging/StagingDetail.vue:227 +msgid "New" +msgstr "" + #: src/components/importschedule/Importschedule.vue:93 -#: src/components/importschedule/Importscheduledetail.vue:457 +#: src/components/importschedule/Importscheduledetail.vue:471 msgid "New Import" msgstr "" -#: src/components/ImportStretches.vue:247 +#: src/components/ImportStretches.vue:244 msgid "New stretch" msgstr "" @@ -525,7 +579,7 @@ msgid "No features identified." msgstr "" -#: src/components/Bottlenecks.vue:115 src/components/ImportStretches.vue:59 +#: src/components/Bottlenecks.vue:118 src/components/ImportStretches.vue:61 #: src/components/staging/Staging.vue:36 msgid "No results." msgstr "" @@ -534,35 +588,39 @@ msgid "No scheduled imports" msgstr "" -#: src/components/ImportStretches.vue:360 +#: src/components/ImportStretches.vue:357 msgid "Not implemented" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:805 +#: src/components/importschedule/Importscheduledetail.vue:822 msgid "November" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:776 +#: src/components/importschedule/Importscheduledetail.vue:793 msgid "o' clock" msgstr "" -#: src/components/ImportStretches.vue:164 +#: src/components/ImportStretches.vue:166 msgid "Object name" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:804 +#: src/components/importschedule/Importscheduledetail.vue:821 msgid "October" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:774 +#: src/components/importschedule/Importscheduledetail.vue:791 msgid "of" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:773 +#: src/components/staging/StagingDetail.vue:224 +msgid "Old" +msgstr "" + +#: src/components/importschedule/Importscheduledetail.vue:790 msgid "on" msgstr "" -#: src/components/Pdftool.vue:18 +#: src/components/Pdftool.vue:19 msgid "Open in new window" msgstr "" @@ -585,7 +643,9 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:346 -msgid "Password should at least be 8 char long including 1 digit and 1 special char like $" +msgid "" +"Password should at least be 8 char long including 1 digit and 1 special char " +"like $" msgstr "" #: src/components/usermanagement/Userdetail.vue:342 @@ -604,19 +664,21 @@ msgid "Please choose a role" msgstr "" -#: src/components/ImportStretches.vue:97 +#: src/components/ImportStretches.vue:99 msgid "Please enter a countrycode" msgstr "" #: src/components/ImportSoundingresults.vue:84 -#: src/components/ImportStretches.vue:212 +#: src/components/ImportStretches.vue:209 msgid "Please enter a date" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:100 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:99 msgid "Please enter a depth" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:46 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:37 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:37 #: src/components/importschedule/importtypes/Waterwayarea.vue:37 #: src/components/importschedule/importtypes/Waterwayaxis.vue:37 @@ -627,11 +689,11 @@ msgid "Please enter a level of service" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:146 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:143 msgid "Please enter a maximum width" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:124 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:122 msgid "Please enter a minimum width" msgstr "" @@ -648,20 +710,22 @@ msgid "Please enter a reference" msgstr "" -#: src/components/ImportStretches.vue:228 +#: src/components/ImportStretches.vue:225 msgid "Please enter a source" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:170 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:167 msgid "Please enter a source orgranization" msgstr "" -#: src/components/ImportStretches.vue:126 +#: src/components/ImportStretches.vue:128 msgid "Please enter a start point" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:25 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:19 #: src/components/importschedule/importtypes/Bottleneck.vue:44 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:19 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:19 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:19 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:19 @@ -676,16 +740,15 @@ msgid "Please enter a Username" msgstr "" -#: src/components/ImportStretches.vue:151 +#: src/components/ImportStretches.vue:153 msgid "Please enter an end point" msgstr "" -#: src/components/ImportStretches.vue:78 +#: src/components/ImportStretches.vue:80 msgid "Please enter an id" msgstr "" -#: src/components/ImportStretches.vue:176 -#: src/components/ImportStretches.vue:194 +#: src/components/ImportStretches.vue:178 msgid "Please enter an objectname" msgstr "" @@ -693,6 +756,8 @@ msgid "Please enter correct coordinates in the format: Lat,Lon,Lat,Lon" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:63 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:57 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:57 #: src/components/importschedule/importtypes/Waterwayarea.vue:57 #: src/components/importschedule/importtypes/Waterwayaxis.vue:57 @@ -708,7 +773,7 @@ msgid "Please select one" msgstr "" -#: src/components/Pdftool.vue:21 +#: src/components/Pdftool.vue:40 msgid "portrait" msgstr "" @@ -728,6 +793,10 @@ msgid "Projection" msgstr "" +#: src/components/Pdftool.vue:514 +msgid "Ref gauge" +msgstr "" + #: src/components/Logs.vue:48 src/components/importqueue/Importqueue.vue:84 msgid "Refresh" msgstr "" @@ -744,11 +813,15 @@ msgid "Request password reset!" msgstr "" +#: src/components/Pdftool.vue:44 +msgid "Resolution" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:78 msgid "Role" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:791 +#: src/components/importschedule/Importscheduledetail.vue:808 msgid "Saturday" msgstr "" @@ -756,16 +829,16 @@ msgid "Saved cross profiles" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:711 +#: src/components/importschedule/Importscheduledetail.vue:728 msgid "Saved import: #" msgstr "" #: src/components/importschedule/Importschedule.vue:36 -#: src/components/importschedule/Importscheduledetail.vue:189 +#: src/components/importschedule/Importscheduledetail.vue:201 msgid "Schedule" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:147 +#: src/components/importschedule/Importscheduledetail.vue:159 msgid "Scheduled" msgstr "" @@ -781,7 +854,7 @@ msgid "Send testmail" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:803 +#: src/components/importschedule/Importscheduledetail.vue:820 msgid "September" msgstr "" @@ -789,10 +862,14 @@ msgid "Signer" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:167 +#: src/components/importschedule/Importscheduledetail.vue:179 msgid "Simple schedule" msgstr "" +#: src/components/Pdftool.vue:56 +msgid "Size" +msgstr "" + #: src/components/Identify.vue:60 msgid "" "Some data ©\n" @@ -800,6 +877,8 @@ " contributors." msgstr "" +#: src/components/ImportWaterwayProfiles.vue:55 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:45 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:45 #: src/components/importschedule/importtypes/Waterwayarea.vue:45 #: src/components/importschedule/importtypes/Waterwayaxis.vue:45 @@ -810,7 +889,7 @@ msgid "Sounding Result" msgstr "" -#: src/components/ImportStretches.vue:217 +#: src/components/ImportStretches.vue:214 msgid "Source" msgstr "Zdroj správy" @@ -818,7 +897,7 @@ msgid "Source organization" msgstr "" -#: src/components/importschedule/importtypes/Fairwaydimensions.vue:157 +#: src/components/importschedule/importtypes/Fairwaydimensions.vue:154 msgid "Source orgranization" msgstr "" @@ -838,7 +917,7 @@ msgid "Start" msgstr "" -#: src/components/ImportStretches.vue:106 +#: src/components/ImportStretches.vue:108 msgid "Start rhm" msgstr "" @@ -846,15 +925,15 @@ msgid "Starting import for " msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:102 +#: src/components/ImportApprovedGaugeMeasurement.vue:99 msgid "Starting import of Approved Gauge Measurements" msgstr "" -#: src/components/ImportStretches.vue:475 +#: src/components/ImportStretches.vue:472 msgid "Starting import of stretch" msgstr "" -#: src/components/ImportStretches.vue:157 +#: src/components/ImportStretches.vue:159 msgid "Startpoint is not before endpoint." msgstr "" @@ -862,8 +941,8 @@ msgid "State" msgstr "" -#: src/components/ImportStretches.vue:241 -#: src/components/importschedule/Importscheduledetail.vue:345 +#: src/components/ImportStretches.vue:238 +#: src/components/importschedule/Importscheduledetail.vue:357 #: src/components/usermanagement/Userdetail.vue:129 msgid "Submit" msgstr "" @@ -876,15 +955,19 @@ msgid "Successful" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:792 +#: src/components/importschedule/Importscheduledetail.vue:809 msgid "Sunday" msgstr "" +#: src/components/Pdftool.vue:506 +msgid "Survey date" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:88 msgid "Sysadmin" msgstr "" -#: src/components/usermanagement/Usermanagement.vue:326 +#: src/components/usermanagement/Usermanagement.vue:365 msgid "System-Administrator" msgstr "" @@ -896,23 +979,27 @@ msgid "Systemconfiguration" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:163 +msgid "this" +msgstr "" + #: src/components/Identify.vue:51 msgid "" "This app uses <i>gemma</i>, which is Free Software under <br/>\n" " %{ license } without warranty, see docs for details." msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:789 +#: src/components/importschedule/Importscheduledetail.vue:806 msgid "Thursday" msgstr "" -#: src/components/ImportApprovedGaugeMeasurement.vue:45 -#: src/components/ImportWaterwayProfiles.vue:43 -#: src/components/importschedule/Importscheduledetail.vue:358 +#: src/components/ImportApprovedGaugeMeasurement.vue:42 +#: src/components/ImportWaterwayProfiles.vue:99 +#: src/components/importschedule/Importscheduledetail.vue:370 msgid "Trigger import" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:787 +#: src/components/importschedule/Importscheduledetail.vue:804 msgid "Tuesday" msgstr "" @@ -921,11 +1008,7 @@ msgid "Type" msgstr "Typ" -#: src/components/ImportWaterwayProfiles.vue:89 -msgid "under construction" -msgstr "" - -#: src/components/importschedule/Importscheduledetail.vue:741 +#: src/components/importschedule/Importscheduledetail.vue:758 msgid "update import: #" msgstr "" @@ -933,8 +1016,10 @@ msgid "Upload" msgstr "" +#: src/components/ImportWaterwayProfiles.vue:16 #: src/components/importschedule/importtypes/Availablefairwaydepth.vue:5 #: src/components/importschedule/importtypes/Bottleneck.vue:5 +#: src/components/importschedule/importtypes/Distancemarksashore.vue:5 #: src/components/importschedule/importtypes/Distancemarksvirtual.vue:5 #: src/components/importschedule/importtypes/Fairwaydimensions.vue:5 #: src/components/importschedule/importtypes/Gaugemeasurement.vue:5 @@ -963,12 +1048,17 @@ #: src/components/Identify.vue:65 msgid "" "Uses\n" -" <a href=\"https://download.geonames.org/export/dump/readme.txt\">GeoNames</a>\n" +" <a href=\"https://download.geonames.org/export/dump/readme.txt" +"\">GeoNames</a>\n" " under %{ geoLicense }." msgstr "" +#: src/components/staging/StagingDetail.vue:218 +msgid "Value" +msgstr "" + #: src/components/usermanagement/Userdetail.vue:91 -#: src/components/usermanagement/Usermanagement.vue:327 +#: src/components/usermanagement/Usermanagement.vue:366 msgid "Waterway Admin" msgstr "" @@ -985,26 +1075,28 @@ msgstr "" #: src/components/usermanagement/Userdetail.vue:94 -#: src/components/usermanagement/Usermanagement.vue:328 +#: src/components/usermanagement/Usermanagement.vue:367 msgid "Waterway User" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:788 +#: src/components/importschedule/Importscheduledetail.vue:805 msgid "Wednesday" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:781 +#: src/components/importschedule/Importscheduledetail.vue:798 msgid "week" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:197 +#: src/components/importschedule/Importscheduledetail.vue:209 msgid "Weekly" msgstr "" -#: src/components/importschedule/Importscheduledetail.vue:783 +#: src/components/importschedule/Importscheduledetail.vue:800 msgid "year" msgstr "Rok" #: src/components/fairway/Profiles.vue:443 -msgid "You can now select these coordinates from the \"Saved cross profiles\" menu to restore this cross profile." +msgid "" +"You can now select these coordinates from the \"Saved cross profiles\" menu " +"to restore this cross profile." msgstr ""
--- a/client/src/main.js Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/main.js Tue Feb 12 11:11:32 2019 +0100 @@ -74,7 +74,8 @@ faUser, faUsersCog, faWater, - faWrench + faWrench, + faRedo } from "@fortawesome/free-solid-svg-icons"; import { faAdn } from "@fortawesome/free-brands-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; @@ -127,7 +128,8 @@ faUser, faUsersCog, faWater, - faWrench + faWrench, + faRedo ); import ToggleButton from "vue-js-toggle-button";
--- a/client/src/store/map.js Tue Feb 12 10:53:01 2019 +0100 +++ b/client/src/store/map.js Tue Feb 12 11:11:32 2019 +0100 @@ -42,6 +42,7 @@ FAIRWAYDIMENSIONSLOS2: "Fairway Dimensions LOS 2", FAIRWAYDIMENSIONSLOS3: "Fairway Dimensions LOS 3", WATERWAYAXIS: "Waterway Axis", + WATERWAYPROFILES: "Waterway Profiles", BOTTLENECKS: "Bottlenecks", BOTTLENECKISOLINE: "Bottleneck isolines", DISTANCEMARKS: "Distance marks", @@ -50,6 +51,14 @@ CUTTOOL: "Cut Tool" }; +const moveMap = ({ view, extent, zoom, preventZoomOut }) => { + const currentZoom = view.getZoom(); + view.fit(extent, { + maxZoom: preventZoomOut ? Math.max(zoom, currentZoom) : zoom, + duration: 700 + }); +}; + // initial state const init = () => { return { @@ -228,6 +237,23 @@ showInLegend: true }, { + name: LAYERS.WATERWAYPROFILES, + data: new VectorLayer({ + source: new VectorSource({ + strategy: bboxStrategy + }), + style: new Style({ + stroke: new Stroke({ + color: "rgba(0, 0, 255, .5)", + lineDash: [5, 5], + width: 2 + }) + }) + }), + isVisible: true, + showInLegend: true + }, + { name: LAYERS.BOTTLENECKS, data: new VectorLayer({ source: new VectorSource({ @@ -482,15 +508,16 @@ cutTool: (state, cutTool) => { state.cutTool = cutTool; }, + moveToBoundingBox: (state, { boundingBox, zoom, preventZoomOut }) => { + const extent = transformExtent(boundingBox, "EPSG:4326", "EPSG:3857"); + let view = state.openLayersMap.getView(); + moveMap({ view, extent, zoom, preventZoomOut }); + }, moveToExtent: (state, { feature, zoom, preventZoomOut }) => { const boundingBox = bbox(feature.geometry); const extent = transformExtent(boundingBox, "EPSG:4326", "EPSG:3857"); let view = state.openLayersMap.getView(); - const currentZoom = view.getZoom(); - view.fit(extent, { - maxZoom: preventZoomOut ? Math.max(zoom, currentZoom) : zoom, - duration: 700 - }); + moveMap({ view, extent, zoom, preventZoomOut }); }, moveMap: (state, { coordinates, zoom, preventZoomOut }) => { let view = state.openLayersMap.getView(); @@ -607,7 +634,9 @@ event => { commit("setIdentifiedFeatures", []); // checking our WFS layers - var features = state.openLayersMap.getFeaturesAtPixel(event.pixel); + var features = state.openLayersMap.getFeaturesAtPixel(event.pixel, { + hitTolerance: 7 + }); if (features) { commit("setIdentifiedFeatures", features);
--- a/client/yarn.lock Tue Feb 12 10:53:01 2019 +0100 +++ b/client/yarn.lock Tue Feb 12 11:11:32 2019 +0100 @@ -810,15 +810,20 @@ dependencies: "@types/babel-types" "*" -"@types/node@*", "@types/node@^10.11.7": - version "10.12.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e" - integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ== +"@types/node@*": + version "11.9.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-11.9.0.tgz#35fea17653490dab82e1d5e69731abfdbf13160d" + integrity sha512-ry4DOrC+xenhQbzk1iIPzCZGhhPGEFv7ia7Iu6XXSLVluiJIe9FfG7Iu3mObH9mpxEXCWLCMU4JWbCCR9Oy1Zg== + +"@types/node@^10.11.7": + version "10.12.25" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.25.tgz#0d01a7dd6127de60d861ece4a650963042abb538" + integrity sha512-IcvnGLGSQFDvC07Bz2I8SX+QKErDZbUdiQq7S2u3XyzTyJfUmT0sWJMbeQkMzpTAkO7/N7sZpW/arUM2jfKsbQ== "@types/node@^8.0.7": - version "8.10.39" - resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.39.tgz#e7e87ad00364dd7bc485c940926345b8ec1a26ca" - integrity sha512-rE7fktr02J8ybFf6eysife+WF+L4sAHWzw09DgdCebEu+qDwMvv4zl6Bc+825ttGZP73kCKxa3dhJOoGJ8+5mA== + version "8.10.40" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.40.tgz#4314888d5cd537945d73e9ce165c04cc550144a4" + integrity sha512-RRSjdwz63kS4u7edIwJUn8NqKLLQ6LyqF/X4+4jp38MBT3Vwetewi2N4dgJEshLbDwNgOJXNYoOwzVZUSSLhkQ== "@types/q@^1.5.1": version "1.5.1" @@ -1409,9 +1414,9 @@ integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== acorn@^6.0.1, acorn@^6.0.6: - version "6.0.7" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.7.tgz#490180ce18337270232d9488a44be83d9afb7fd3" - integrity sha512-HNJNgE60C9eOTgn974Tlp3dpLZdUr+SoxxDwPaY9J/kDNOLQTkaDgwBUXAF4SSsrAwD9RpdxuHK/EbuF+W9Ahw== + version "6.1.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.0.tgz#b0a3be31752c97a0f7013c5f4903b71a05db6818" + integrity sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw== address@^1.0.3: version "1.0.3" @@ -1437,9 +1442,9 @@ integrity sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I= ajv-keywords@^3.1.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.3.0.tgz#cb6499da9b83177af8bc1732b2f0a1a1a3aacf8c" - integrity sha512-CMzN9S62ZOO4sA/mJZIO4S++ZM7KFWzH3PPWkveLhy4OZ9i1/VatgwWMD46w/XbGCBy7Ye0gCk+Za6mmyfKK7g== + version "3.4.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.0.tgz#4b831e7b531415a7cc518cd404e73f6193c6349d" + integrity sha512-aUjdRFISbuFOl0EIZc+9e4FfZp0bDZgAdOOf30bJmw8VM9v84SHyVyxDfbWxpGYbdZD/9XoKxfHVNmxPkhwyGw== ajv@^5.2.3, ajv@^5.3.0: version "5.5.2" @@ -1452,9 +1457,9 @@ json-schema-traverse "^0.3.0" ajv@^6.1.0, ajv@^6.5.5: - version "6.8.1" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.8.1.tgz#0890b93742985ebf8973cd365c5b23920ce3cb20" - integrity sha512-eqxCp82P+JfqL683wwsL73XmFs1eG6qjw+RD3YHx+Jll1r0jNd4dh8QG9NYAeNGA/hnZjeEDgtTskgJULbxpWQ== + version "6.9.1" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.9.1.tgz#a4d3683d74abc5670e75f0b16520f70a20ea8dc1" + integrity sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA== dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -1510,6 +1515,11 @@ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= +ansi-regex@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.0.0.tgz#70de791edf021404c3fd615aa89118ae0432e5a9" + integrity sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1695,16 +1705,16 @@ integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= ast-types@0.x.x: - version "0.11.7" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.11.7.tgz#f318bf44e339db6a320be0009ded64ec1471f46c" - integrity sha512-2mP3TwtkY/aTv5X3ZsMpNAbOnyoC/aMJwJSoaELPkHId0nSQgFcnU4dRW3isxiz7+zBexk0ym3WNVjMiQBnJSw== + version "0.12.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.12.2.tgz#341656049ee328ac03fc805c156b49ebab1e4462" + integrity sha512-8c83xDLJM/dLDyXNLiR6afRRm4dPKN6KAnKqytRK3DBJul9lA+atxdQkNDkSVPdTqea5HiRq3lnnOIZ0MBpvdg== astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== -async-each@^1.0.0: +async-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" integrity sha1-GdOGodntxufByF04iu28xW0zYC0= @@ -2100,9 +2110,9 @@ integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= bootstrap@^4.1.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.2.1.tgz#8f8bdca024dbf0e8644da32e918c8a03a90a5757" - integrity sha512-tt/7vIv3Gm2mnd/WeDx36nfGGHleil0Wg8IeB7eMrVkY0fZ5iTaBisSh8oNANc2IBsCc6vCgCNTIM/IEN0+50Q== + version "4.3.0" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.3.0.tgz#2559ccb8d45426ac6c54db23eb3d1c9f4257fa22" + integrity sha512-M0vqY0Z6UDweV2nLFl5dXcb+GIo53EBCGMMVxCGH5vJxl/jsr+HkULBMd4kn9rdpdBZwd3BduCgMOYOwJybo4Q== brace-expansion@^1.0.0, brace-expansion@^1.1.7: version "1.1.11" @@ -2121,7 +2131,7 @@ preserve "^0.2.0" repeat-element "^1.1.2" -braces@^2.3.0, braces@^2.3.1: +braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== @@ -2258,11 +2268,6 @@ ieee754 "^1.1.4" isarray "^1.0.0" -builtin-modules@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" - integrity sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8= - builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" @@ -2426,9 +2431,9 @@ lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000929, caniuse-lite@^1.0.30000932: - version "1.0.30000935" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000935.tgz#d1b59df00b46f4921bb84a8a34c1d172b346df59" - integrity sha512-1Y2uJ5y56qDt3jsDTdBHL1OqiImzjoQcBG6Yl3Qizq8mcc2SgCFpi+ZwLLqkztYnk9l87IYqRlNBnPSOTbFkXQ== + version "1.0.30000936" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000936.tgz#5d33b118763988bf721b9b8ad436d0400e4a116b" + integrity sha512-orX4IdpbFhdNO7bTBhSbahp1EBpqzBc+qrvTRVUFfZgA4zta7TdM6PN5ZxkEUgDnz36m+PfWGcdX7AVfFWItJw== canvg@1.5.3: version "1.5.3" @@ -2484,7 +2489,7 @@ strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2523,24 +2528,23 @@ parse5 "^3.0.1" chokidar@^2.0.0, chokidar@^2.0.2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" - integrity sha512-z9n7yt9rOvIJrMhvDtDictKrkFHeihkNl6uWMmZlmL6tJtX9Cs+87oK+teBx+JIgzvbX3yZHT3eF8vpbDxHJXQ== + version "2.1.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.1.tgz#adc39ad55a2adf26548bd2afa048f611091f9184" + integrity sha512-gfw3p2oQV2wEt+8VuMlNsPjCxDxvvgnm/kz+uATu805mWVF8IJN7uz9DN7iBz+RMJISmiVbCOBFs9qBGMjtPfQ== dependencies: anymatch "^2.0.0" - async-each "^1.0.0" - braces "^2.3.0" + async-each "^1.0.1" + braces "^2.3.2" glob-parent "^3.1.0" - inherits "^2.0.1" + inherits "^2.0.3" is-binary-path "^1.0.0" is-glob "^4.0.0" - lodash.debounce "^4.0.8" - normalize-path "^2.1.1" + normalize-path "^3.0.0" path-is-absolute "^1.0.0" - readdirp "^2.0.0" - upath "^1.0.5" + readdirp "^2.2.1" + upath "^1.1.0" optionalDependencies: - fsevents "^1.2.2" + fsevents "^1.2.7" chownr@^1.0.1, chownr@^1.1.1: version "1.1.1" @@ -2612,7 +2616,7 @@ dependencies: restore-cursor "^2.0.0" -cli-spinners@^1.1.0: +cli-spinners@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== @@ -2970,9 +2974,9 @@ serialize-javascript "^1.4.0" core-js@^2.4.0, core-js@^2.5.0, core-js@^2.5.7, core-js@^2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.3.tgz#4b70938bdffdaf64931e66e2db158f0892289c49" - integrity sha512-l00tmFFZOBHtYhN4Cz7k32VM7vTn3rE2ANjQDxdEN6zmXZ/xq1jQuutnmHvMG1ZJ7xd72+TA5YpUK8wz3rWsfQ== + version "2.6.4" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.4.tgz#b8897c062c4d769dd30a0ac5c73976c47f92ea0d" + integrity sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -3364,9 +3368,9 @@ d3-selection "1" d3-dsv@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.0.10.tgz#4371c489a2a654a297aca16fcaf605a6f31a6f51" - integrity sha512-vqklfpxmtO2ZER3fq/B33R/BIz3A1PV0FaZRuFM8w6jLo7sUX1BZDh73fPlr0s327rzq4H6EN1q9U+eCBCSN8g== + version "1.1.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.1.1.tgz#aaa830ecb76c4b5015572c647cc6441e3c7bb701" + integrity sha512-1EH1oRGSkeDUlDRbhsFytAXU6cAmXFzc52YUe6MRlPClmWb85MP1J5x+YJRzya4ynZWnbELdSAvATFW/MbxaXw== dependencies: commander "2" iconv-lite "0.4" @@ -3429,9 +3433,9 @@ integrity sha512-RHhh1ZUJZfhgoqzWWuRhzQJvO7LavchhitSTHGu9oj6uuLFzYZVeBzaWTQ2qSO6bz2w55RMoOCf0MsLCDB6e0w== d3-quadtree@1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.5.tgz#305394840b01f51a341a0da5008585e837fe7e9b" - integrity sha512-U2tjwDFbZ75JRAg8A+cqMvqPg1G3BE7UTJn3h8DHjY/pnsAfWdbJKgyfcy7zKjqGtLAmI0q8aDSeG1TVIKRaHQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.6.tgz#d1ab2a95a7f27bbde88582c94166f6ae35f32056" + integrity sha512-NUgeo9G+ENQCQ1LsRr2qJg3MQ4DJvxcDNCiohdJGHt5gRhBW6orIB5m5FJ9kK3HNL8g9F4ERVoBzcEwQBfXWVA== d3-random@1: version "1.1.2" @@ -3516,9 +3520,9 @@ d3-transition "1" d3@^5.7.0: - version "5.8.2" - resolved "https://registry.yarnpkg.com/d3/-/d3-5.8.2.tgz#a8ccf5c93424022070f85fe9f98f5fef6c574e2c" - integrity sha512-XUaQCj3DwnLsjhzg7aiICkA7Jy4zIvLFqdynKv/23y8gHnULqC9p7xAjs3Vw3lYtFE5UUmWoUzLj26O2fXAybg== + version "5.9.1" + resolved "https://registry.yarnpkg.com/d3/-/d3-5.9.1.tgz#fde73fa9af7281d2ff0d2a32aa8f306e93a6d1cd" + integrity sha512-JceuBn5VVWySPQc9EA0gfq0xQVgEQXGokHhe+359bmgGeUITLK2r2b9idMzquQne9DKxb7JDCE1gDRXe9OIF2Q== dependencies: d3-array "1" d3-axis "1" @@ -4786,12 +4790,12 @@ write "^0.2.1" flush-write-stream@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.0.tgz#2e89a8bd5eee42f8ec97e43aae81e3d5099c2ddc" - integrity sha512-6MHED/cmsyux1G4/Cek2Z776y9t7WCNd3h2h/HW91vFeU7pzMhA8XvAlDhHcanG5IWuIh/xcC7JASY4WQpG6xg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" - readable-stream "^3.1.1" + readable-stream "^2.3.6" follow-redirects@^1.0.0, follow-redirects@^1.3.0: version "1.6.1" @@ -4899,7 +4903,7 @@ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.2, fsevents@^1.2.3: +fsevents@^1.2.3, fsevents@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.7.tgz#4851b664a3783e52003b3c66eb0eee1074933aa4" integrity sha512-Pxm6sI2MeBD7RdD12RYsqaP0nMiwx8eZBXCa6z2L+mRHm2DYrOYwihmhjpkdjUHwQhslWQjRpEgNq4XvBmaAuw== @@ -5098,9 +5102,9 @@ which "^1.2.14" globals@^11.0.1, globals@^11.1.0: - version "11.10.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.10.0.tgz#1e09776dffda5e01816b3bb4077c8b59c24eaa50" - integrity sha512-0GZF1RiPKU97IHUO5TORo9w1PwrH/NBPl+fS7oMLdaTRiYmYbwK4NWoZWrAdd0/abG9R2BU+OiwyQpTpE6pdfQ== + version "11.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.11.0.tgz#dcf93757fa2de5486fbeed7118538adf789e9c2e" + integrity sha512-WHq43gS+6ufNOEqlrDBxVEbb8ntfXrfAUU2ZOpCxrBdGKW3gyv8mCxAfIBD0DroPKGrJ2eSsXsLtY9MPntsyTw== globals@^9.18.0: version "9.18.0" @@ -5193,9 +5197,9 @@ integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== handlebars@^4.0.3: - version "4.0.12" - resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.12.tgz#2c15c8a96d46da5e266700518ba8cb8d919d5bc5" - integrity sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA== + version "4.1.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.1.0.tgz#0d6a6f34ff1f63cecec8423aa4169827bf787c3a" + integrity sha512-l2jRuU1NAWK6AW5qqcTATWQJvNPEwkM7NEKSiv/gqOsoSQbVoWyqVEY5GS+XPQ88zLNmqASRpzfdm8d79hJS+w== dependencies: async "^2.5.0" optimist "^0.6.1" @@ -5741,9 +5745,9 @@ integrity sha1-6qM9bd16zo9/b+DJygRA5wZzix4= ipaddr.js@^1.5.2: - version "1.8.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.8.1.tgz#fa4b79fa47fd3def5e3b159825161c0a519c9427" - integrity sha1-+kt5+kf9Pe9eOxWYJRYcClGclCc= + version "1.9.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== is-absolute-url@^2.0.0: version "2.1.0" @@ -5786,13 +5790,6 @@ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-builtin-module@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" - integrity sha1-VAVy0096wxGfj3bDDLwbHgN6/74= - dependencies: - builtin-modules "^1.0.0" - is-callable@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" @@ -7828,12 +7825,12 @@ osenv "^0.1.4" normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.4.2" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.2.tgz#6b2abd85774e51f7936f1395e45acb905dc849b2" - integrity sha512-YcMnjqeoUckXTPKZSAsPjUPLxH85XotbpqK3w4RyCwdFQSU5FxxBys8buehkSfg0j9fKvV1hn7O0+8reEgkAiw== + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" - is-builtin-module "^1.0.0" + resolve "^1.10.0" semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" @@ -7870,9 +7867,9 @@ integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== npm-packlist@^1.1.6: - version "1.2.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.2.0.tgz#55a60e793e272f00862c7089274439a4cc31fc7f" - integrity sha512-7Mni4Z8Xkx0/oegoqlcao/JpPCPEMtUvsmB0q7mgvlMinykJLSRTYuFqoQLYgGY8biuxIeiHO+QNJKbCfljewQ== + version "1.3.0" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.3.0.tgz#7f01e8e44408341379ca98cfd756e7b29bd2626c" + integrity sha512-qPBc6CnxEzpOcc4bjoIBJbYdy0D/LFFPUdxvfwor4/w3vxeE0h6TiOVurCEPpQ6trjN77u/ShyfeJGsbAfB3dA== dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" @@ -7946,9 +7943,9 @@ integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== object-keys@^1.0.11, object-keys@^1.0.12: - version "1.0.12" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.12.tgz#09c53855377575310cca62f55bb334abff7b3ed2" - integrity sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag== + version "1.1.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032" + integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg== object-visit@^1.0.0: version "1.0.1" @@ -8078,15 +8075,15 @@ wordwrap "~1.0.0" ora@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-3.0.0.tgz#8179e3525b9aafd99242d63cc206fd64732741d0" - integrity sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg== - dependencies: - chalk "^2.3.1" + version "3.1.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-3.1.0.tgz#dbedd8c03b5d017fb67083e87ee52f5ec89823ed" + integrity sha512-vRBPaNCclUi8pUxRF/G8+5qEQkc6EgzKK1G2ZNJUIGu088Un5qIxFXeDgymvPRM9nmrcUOGzQgS1Vmtz+NtlMw== + dependencies: + chalk "^2.4.2" cli-cursor "^2.1.0" - cli-spinners "^1.1.0" + cli-spinners "^1.3.1" log-symbols "^2.2.0" - strip-ansi "^4.0.0" + strip-ansi "^5.0.0" wcwidth "^1.0.1" original@^1.0.0: @@ -9324,7 +9321,7 @@ isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@3, readable-stream@^3.0.6, readable-stream@^3.1.1: +readable-stream@3, readable-stream@^3.0.6: version "3.1.1" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.1.1.tgz#ed6bbc6c5ba58b090039ff18ce670515795aeb06" integrity sha512-DkN66hPyqDhnIQ6Jcsvx9bFjhw214O4poMBcIMgPVpQvNy9a0e0Uhg5SqySyDKAmUlwt8LonTBz1ezOnM8pUdA== @@ -9333,7 +9330,7 @@ string_decoder "^1.1.1" util-deprecate "^1.0.1" -readdirp@^2.0.0: +readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== @@ -9610,7 +9607,7 @@ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.6, resolve@^1.3.2, resolve@^1.8.1: +resolve@^1.1.6, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1: version "1.10.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.10.0.tgz#3bdaaeaf45cc07f375656dfd2e54ed0810b101ba" integrity sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg== @@ -10380,6 +10377,13 @@ dependencies: ansi-regex "^3.0.0" +strip-ansi@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.0.0.tgz#f78f68b5d0866c20b2c9b8c61b5298508dc8756f" + integrity sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow== + dependencies: + ansi-regex "^4.0.0" + strip-bom@3.0.0, strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -10629,9 +10633,9 @@ integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-emitter@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.0.2.tgz#82d27468aca5ade8e5fd1e6d22b57dd43ebdfb7c" - integrity sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow== + version "2.1.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== tinycolor2@^1.1.2: version "1.4.1" @@ -10931,7 +10935,7 @@ has-value "^0.3.1" isobject "^3.0.0" -upath@^1.0.5: +upath@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" integrity sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw== @@ -11127,14 +11131,14 @@ highlight.js "*" vue-hot-reload-api@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.1.tgz#b2d3d95402a811602380783ea4f566eb875569a2" - integrity sha512-AA86yKZ5uOKz87/q1UpngEXhbRkaYg1b7HMMVRobNV1IVKqZe8oLIzo6iMocVwZXnYitlGwf2k4ZRLOZlS8oPQ== + version "2.3.2" + resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.2.tgz#1fcc1495effe08a790909b46bf7b5c4cfeb6f21b" + integrity sha512-NpznMQoe/DzMG7nJjPkJKT7FdEn9xXfnntG7POfTmqnSaza97ylaBf1luZDh4IgV+vgUoR//id5pf8Ru+Ym+0g== vue-jest@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.2.tgz#c64bf5da9abd0d3ee16071217037696d14b0689c" - integrity sha512-5XIQ1xQFW0ZnWxHWM7adVA2IqbDsdw1vhgZfGFX4oWd75J38KIS3YT41PtiE7lpMLmNM6+VJ0uprT2mhHjUgkA== + version "3.0.3" + resolved "https://registry.yarnpkg.com/vue-jest/-/vue-jest-3.0.3.tgz#80f664712f2678b1d8bb3af0f2c0bef5efa8de31" + integrity sha512-QwFQjkv2vXYPKUkNZkMbV/ZTHyQhRM1JY8nP68dRLQmdvCN+VUEKhlByH/PgPqDr2p/NuhaM3PUjJ9nreR++3w== dependencies: babel-plugin-transform-es2015-modules-commonjs "^6.26.0" chalk "^2.1.0" @@ -11187,9 +11191,9 @@ loader-utils "^1.0.2" vue-template-compiler@^2.5.16, vue-template-compiler@^2.5.17: - version "2.6.2" - resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.2.tgz#6230abf7ca92d565b7471c0cc3f54d5b12aa48e7" - integrity sha512-2dBKNCtBPdx1TFef7T4zwF8IjOx2xbMNryCtFzneP+XIonJwOtnkq4s1mhKv8W79gXcGINQWtuaxituGAcuSnA== + version "2.6.6" + resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.6.tgz#a807acbf3d51971d3721d75ecb1b927b517c1a02" + integrity sha512-OakxDGyrmMQViCjkakQFbDZlG0NibiOzpLauOfyCUVRQc9yPmTqpiz9nF0VeA+dFkXegetw0E5x65BFhhLXO0A== dependencies: de-indent "^1.0.2" he "^1.1.0" @@ -11200,9 +11204,9 @@ integrity sha512-cliV19VHLJqFUYbz/XeWXe5CO6guzwd0yrrqqp0bmjlMP3ZZULY7fu8RTC4+3lmHwo6ESVDHFDsvjB15hcR5IA== vue@^2.5.16: - version "2.6.2" - resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.2.tgz#1cc9c9c8f7ba8df45e9b97c284947de78b76301c" - integrity sha512-NZAb0H+t3/99g2nygURcEJ+ncvzNLPiEiFI5MGhc1Cjsw5uYprF+Ol7SOd1RXPcmVVzK7jUBl0th2tNgt+VQDg== + version "2.6.6" + resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.6.tgz#dde41e483c11c46a7bf523909f4f2f816ab60d25" + integrity sha512-Y2DdOZD8sxApS+iUlwv1v8U1qN41kq6Kw45lM6nVZKhygeWA49q7VCCXkjXqeDBXgurrKWkYQ9cJeEJwAq0b9Q== vuex@^3.0.1: version "3.1.0"
--- a/docker/README.md Tue Feb 12 10:53:01 2019 +0100 +++ b/docker/README.md Tue Feb 12 11:11:32 2019 +0100 @@ -1,4 +1,15 @@ -# Setup dev environment using Docker +# Build and run your dev environment using Docker + +- [Build and run your dev environment using Docker](#build-and-run-your-dev-environment-using-docker) + - [Build and run your gemma application with Docker Compose in one step](#build-and-run-your-gemma-application-with-docker-compose-in-one-step) + - [Hints and tricks](#hints-and-tricks) + - [Build and run the gemma application with Docker manually](#build-and-run-the-gemma-application-with-docker-manually) + - [Network setup](#network-setup) + - [Database setup](#database-setup) + - [Create ER diagrams](#create-er-diagrams) + - [GeoServer setup](#geoserver-setup) + - [Gemma backend setup](#gemma-backend-setup) + - [SPA setup](#spa-setup) Run the `build` commands from the root of your checkout, because it is assumed as the context! @@ -6,89 +17,170 @@ Other example commands, too, assume they are run from the root of your checkout. -## Network setup +## Build and run your gemma application with Docker Compose in one step + +Requires at least Docker Engine release 17.12.0+. Because of Compose file +format 3.5 for named networks. + +If you fiddle around with the following error message: `Version in +"./docker-compose.yml" is unsupported` take a look at the comments in the +head of the `docker-compose.yml` file. -- Create a network to connect containers: - ``` - docker network create gemma - ``` +From your docker directory, start up your gemma application by running +`docker-compose up`. Here an example for build and running the gemma +application: + +```shell +cd docker +docker-compose -p gemma up +``` + +Note: The `-p` flag specifies an alternate project name (default: directory +name). -## Database setup +Now you should be able to use the application in your browser by going to +`http://HOSTNAME:8290`, with `HOSTNAME` being the hostname of your docker +host. + +Stop the application, either by running `docker-compose down` from within your +docker directory in the second terminal, or by hitting `CTRL+C` in the +original terminal where you started the gemma application. + +### Hints and tricks -- Build Dockerfile with e.g.: - ``` - docker build -t gemma_db -f docker/Dockerfile.db . - ``` +If you want to run your services in the background, you can pass the `-d` flag +(for `detached` mode) to `docker-compose up` and use `docker-compose ps` to see +what is currently running. Take a look at the following example. + +```shell +docker-compose up -d +Starting gemma_db ... +Starting gemma_db ... done +Starting gemma_geoserver ... +Starting gemma_geoserver ... done +Starting gemma_backend ... +Starting gemma_backend ... done +Starting gemma_spa ... +Starting gemma_spa ... done +``` -- Get a running instance with e.g.: - ``` - docker run --name gemma_db -d -p 54321:5432 -v $PWD/schema:/opt/gemma \ - --network gemma gemma_db - ``` - Use `--network-alias gemma_db` if your container has a different name +```shell +docker-compose ps + Name Command State Ports +---------------------------------------------------------------------------------- +gemma_backend /usr/local/bin/gemma -c /o ... Up 0.0.0.0:8200->8000/tcp +gemma_db /usr/lib/postgresql/11/bin ... Up 0.0.0.0:54321->5432/tcp +gemma_geoserver /usr/share/tomcat8/bin/cat ... Up 0.0.0.0:8280->8080/tcp +gemma_spa /bin/sh -c make -f Makefil ... Up 0.0.0.0:8290->8080/tcp +``` + +For more infos about Docker Compose take a look at: +https://docs.docker.com/compose/ -- Run tests for RLS policies: - ``` - docker exec gemma_db ./run_tests.sh - ``` +## Build and run the gemma application with Docker manually + +Or build and run your dev enviroment manually by the following steps. + +### Network setup + +Create a network to connect containers: + +```shell +docker network create gemma +``` + +### Database setup + +Build `gemma_db` docker image with e.g.: -## Create ER diagrams +```shell +docker build -t gemma_db -f docker/Dockerfile.db . +``` + +Get a running instance with e.g.: -Assuming you have installed `postgresql_autodoc` and `graphviz` on a machine -from wich you can reach your docker host, you can use the following: +```shell +docker run --name gemma_db -d -p 54321:5432 -v $PWD/schema:/opt/gemma \ + --network gemma gemma_db +``` + +Use `--network-alias gemma_db` if your container has a different name + +Run tests for [Row-Level Security](https://www.postgresql.org/docs/11/ddl-rowsecurity.html) (RLS) +policies: -- ER diagram with waterway related tables: - ``` - postgresql_autodoc -p 54321 -h $dockerhost \ - -d gemma -U sophie --password=so2Phie4 -t dot -l . -s 'waterway' - dot -Tpdf gemma.dot > gemma_waterway.pdf - ``` +```shell +docker exec gemma_db ./run_tests.sh +``` + +### Create ER diagrams + +Assuming you have installed `postgresql-autodoc` and +[graphviz](http://graphviz.org/) on a machine from which you can reach your +docker host, you can use the following: + +ER diagram with waterway related tables: + +```shell +postgresql_autodoc -p 54321 -h $dockerhost \ + -d gemma -U sophie --password=so2Phie4 \ + -t dot -l . -s 'waterway' +dot -Tpdf gemma.dot > gemma_waterway.pdf +``` Omit the `-s` option to get a diagram with all tables or use any other schema name to see other parts of the whole picture. -## GeoServer setup +### GeoServer setup + +Build `gemma_geoserver` docker image with e.g.: -- Build Dockerfile with e.g.: - ``` - docker build -t gemma_geoserver -f docker/Dockerfile.geoserv . - ``` +```shell +docker build -t gemma_geoserver -f docker/Dockerfile.geoserv . +``` + +Get a running instance with e.g.: -- Get a running instance with e.g.: - ``` - docker run --name gemma_geoserver -d -p 8280:8080 --network gemma \ - gemma_geoserver - ``` - Use `--network-alias gemma_geoserver` if you give your container - a different name. +```shell +docker run --name gemma_geoserver -d -p 8280:8080 --network gemma \ + gemma_geoserver +``` -## Gemma backend setup +Use `--network-alias gemma_geoserver` if you give your container +a different name. + +### Gemma backend setup + +Build `gemma_backend` docker image with e.g.: -- Build Dockerfile with e.g.: - ``` - docker build -t gemma_backend -f docker/Dockerfile.backend . - ``` +```shell +docker build -t gemma_backend -f docker/Dockerfile.backend . +``` + +Get a running instance with e.g.: -- Get a running instance with e.g.: - ``` - docker run --name gemma_backend -v $PWD:/opt/gemma -d -p 8200:8000 \ - --network gemma gemma_backend - ``` - Use `--network-alias gemma_backend` if you give your container - a different name. +```shell +docker run --name gemma_backend -v $PWD:/opt/gemma -d -p 8200:8000 \ + --network gemma gemma_backend +``` + +Use `--network-alias gemma_backend` if you give your container +a different name. -## SPA setup +### SPA setup + +Build `gemma_spa` docker image with e.g.: -- Build Dockerfile with e.g.: - ``` - docker build -t gemma_spa -f docker/Dockerfile.spa . - ``` +```shell +docker build -t gemma_spa -f docker/Dockerfile.spa . +``` -- Get a running instance with e.g.: - ``` - docker run --name gemma_spa -v $PWD/client:/opt/gemma/client -d -p 8290:8080 \ - --network gemma gemma_spa - ``` +Get a running instance with e.g.: + +```shell +docker run --name gemma_spa -v $PWD/client:/opt/gemma/client -d -p 8290:8080 \ + --network gemma gemma_spa +``` Now you should be able to use the application in your browser by going to -`http://HOST:8290`, with HOST being the hostname of your docker host. +`http://HOSTNAME:8290`, with `HOSTNAME` being the hostname of your docker host.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/docker/docker-compose.yml Tue Feb 12 11:11:32 2019 +0100 @@ -0,0 +1,73 @@ +# If you fiddle around with the following error message: +# Version in "./docker-compose.yml" is unsupported +# +# Option 1) +# Update docker and docker compose to at least docker version 17.12.0+. +# +# Option 2) +# Change version: "3.5" to version: "3" +# And delete the name configuration form `networks:` below. +# +version: "3.5" +services: + gemma_db: + container_name: gemma_db + build: + context: ../ + dockerfile: docker/Dockerfile.db + image: "gemma_db" + volumes: + - ../schema:/opt/gemma + networks: + - gemma + ports: + - "54321:5432" + gemma_geoserver: + container_name: gemma_geoserver + build: + context: ../ + dockerfile: docker/Dockerfile.geoserv + depends_on: + - gemma_db + image: "gemma_geoserver" + networks: + - gemma + ports: + - "8280:8080" + gemma_backend: + container_name: gemma_backend + build: + context: ../ + dockerfile: docker/Dockerfile.backend + depends_on: + - gemma_db + - gemma_geoserver + image: "gemma_backend" + volumes: + - ../:/opt/gemma + networks: + - gemma + ports: + - "8200:8000" + gemma_spa: + container_name: gemma_spa + build: + context: ../ + dockerfile: docker/Dockerfile.spa + depends_on: + - gemma_backend + - gemma_geoserver + image: "gemma_spa" + volumes: + - ../client:/opt/gemma/client + networks: + - gemma + ports: + - "8290:8080" + +networks: + gemma: + # name: gemma needs at least docker version 17.12.0+ + # API version: "3.5" + # https://docs.docker.com/compose/compose-file/#name-1 + name: gemma
--- a/pkg/common/attributes.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/common/attributes.go Tue Feb 12 11:11:32 2019 +0100 @@ -20,13 +20,7 @@ "time" ) -const ( - TimeFormat = "2006-01-02T15:04:05" - DateFormat = "2006-01-02" -) - type ( - // Attributes is a map of optional key/value attributes // of a configuration. Attributes map[string]string
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkg/common/time.go Tue Feb 12 11:11:32 2019 +0100 @@ -0,0 +1,19 @@ +// This is Free Software under GNU Affero General Public License v >= 3.0 +// without warranty, see README.md and license for details. +// +// SPDX-License-Identifier: AGPL-3.0-or-later +// License-Filename: LICENSES/AGPL-3.0.txt +// +// Copyright (C) 2018 by via donau +// – Österreichische Wasserstraßen-Gesellschaft mbH +// Software engineering by Intevation GmbH +// +// Author(s): +// * Sascha L. Teichmann <sascha.teichmann@intevation.de> + +package common + +const ( + TimeFormat = "2006-01-02T15:04:05" + DateFormat = "2006-01-02" +)
--- a/pkg/config/config.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/config/config.go Tue Feb 12 11:11:32 2019 +0100 @@ -166,6 +166,9 @@ return externalURL } +// The root directories where to find schema files. +func SchemaDirs() string { return viper.GetString("schema-dirs") } + // RootCmd is cobra command to be bound th the cobra/viper infrastructure. var RootCmd = &cobra.Command{ Use: "gemma", @@ -246,6 +249,8 @@ str("tmp-dir", "", "Temp directory of gemma server.\n"+ "Defaults to system temp directory.") + + str("schema-dirs", ".", "Directories to find XSD schema files in (recursive).") } var (
--- a/pkg/controllers/importqueue.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/controllers/importqueue.go Tue Feb 12 11:11:32 2019 +0100 @@ -39,7 +39,12 @@ kind, username, signer, - summary + summary, + EXISTS ( + SELECT true FROM import.import_logs + WHERE kind = 'warn'::log_type AND + import_id = import.imports.id + ) AS has_warnings FROM import.imports ` @@ -213,6 +218,7 @@ &it.User, &signer, &summary, + &it.Warnings, ); err != nil { return }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkg/controllers/printtemplates.go Tue Feb 12 11:11:32 2019 +0100 @@ -0,0 +1,303 @@ +// This is Free Software under GNU Affero General Public License v >= 3.0 +// without warranty, see README.md and license for details. +// +// SPDX-License-Identifier: AGPL-3.0-or-later +// License-Filename: LICENSES/AGPL-3.0.txt +// +// Copyright (C) 2018 by via donau +// – Österreichische Wasserstraßen-Gesellschaft mbH +// Software engineering by Intevation GmbH +// +// Author(s): +// * Sascha L. Teichmann <sascha.teichmann@intevation.de> + +package controllers + +import ( + "bytes" + "database/sql" + "encoding/json" + "net/http" + "time" + + "github.com/gorilla/mux" + "github.com/jackc/pgx/pgtype" + + "gemma.intevation.de/gemma/pkg/models" +) + +const maxPrintTemplateSize = 5 * 1024 * 1024 + +const ( + listPrintTemplatesSQL = ` +SELECT + template_name, + date_info +FROM + users.templates +ORDER BY date_info DESC` + + hasPrintTemplateSQL = ` +SELECT true FROM users.templates WHERE name = $1` + + deletePrintTemplateSQL = ` +DELETE FROM users.templates WHERE name = $1` + + selectPrintTemplateSQL = ` +SELECT template_data FROM users.templates WHERE name = $1` + + insertPrintTemplateSQL = ` +INSERT INTO users.templates (template_name, template_data) +VALUES ($1, $2)` + + updatePrintTemplateSQL = ` +UPDATE user.templates template_data = $2 WHERE template_name = $1` +) + +func listPrintTemplates( + _ interface{}, + req *http.Request, + conn *sql.Conn, +) (jr JSONResult, err error) { + + type template struct { + Name string `json:"name"` + Time models.Time `json:"time"` + } + + var rows *sql.Rows + if rows, err = conn.QueryContext(req.Context(), listPrintTemplatesSQL); err != nil { + return + } + defer rows.Close() + + templates := []*template{} + + for rows.Next() { + var tmpl template + var w time.Time + if err = rows.Scan(&tmpl.Name, &w); err != nil { + return + } + tmpl.Time = models.Time{w} + templates = append(templates, &tmpl) + } + + jr = JSONResult{Result: templates} + return +} + +func fetchPrintTemplate( + _ interface{}, + req *http.Request, + conn *sql.Conn, +) (jr JSONResult, err error) { + + ctx := req.Context() + name := mux.Vars(req)["name"] + + var data pgtype.Bytea + err = conn.QueryRowContext(ctx, selectPrintTemplateSQL, name).Scan(&data) + + switch { + case err == sql.ErrNoRows: + err = JSONError{ + Code: http.StatusNotFound, + Message: "No such template found", + } + return + case err != nil: + return + case data.Status != pgtype.Present: + err = JSONError{ + Code: http.StatusInternalServerError, + Message: "Unexpected return value from database query", + } + return + } + jr = JSONResult{Result: bytes.NewReader(data.Bytes)} + return +} + +func createPrintTemplate( + input interface{}, + req *http.Request, + conn *sql.Conn, +) (jr JSONResult, err error) { + + ctx := req.Context() + name := mux.Vars(req)["name"] + in := input.(*json.RawMessage) + + if name == "" { + err = JSONError{ + Code: http.StatusBadRequest, + Message: "Template must have a none empty name", + } + return + } + if len(*in) == 0 { + err = JSONError{ + Code: http.StatusBadRequest, + Message: "Template must have a none empty template", + } + return + } + var tx *sql.Tx + if tx, err = conn.BeginTx(ctx, nil); err != nil { + return + } + defer tx.Rollback() + + var dummy bool + err = tx.QueryRowContext(ctx, hasPrintTemplateSQL, name).Scan(&dummy) + + switch { + case err == sql.ErrNoRows: + // This is fine. + case err != nil: + return + default: + err = JSONError{ + Code: http.StatusBadRequest, + Message: "A template with this name already exists", + } + return + } + data := pgtype.Bytea{Bytes: *in, Status: pgtype.Present} + + if _, err = tx.ExecContext(ctx, insertPrintTemplateSQL, name, &data); err != nil { + return + } + + if err = tx.Commit(); err != nil { + return + } + jr = JSONResult{ + Code: http.StatusCreated, + Result: map[string]string{ + "created": name, + }, + } + return +} + +func deletePrintTemplate( + _ interface{}, + req *http.Request, + conn *sql.Conn, +) (jr JSONResult, err error) { + + ctx := req.Context() + name := mux.Vars(req)["name"] + + var tx *sql.Tx + if tx, err = conn.BeginTx(ctx, nil); err != nil { + return + } + defer tx.Rollback() + + var dummy bool + err = tx.QueryRowContext(ctx, hasPrintTemplateSQL, name).Scan(&dummy) + + switch { + case err == sql.ErrNoRows: + err = JSONError{ + Code: http.StatusNotFound, + Message: "No such template found", + } + return + case err != nil: + return + case !dummy: + err = JSONError{ + Code: http.StatusInternalServerError, + Message: "Unexpected return value from database query", + } + return + } + + if _, err = tx.ExecContext(ctx, deletePrintTemplateSQL, name); err != nil { + return + } + + if err = tx.Commit(); err != nil { + return + } + + jr = JSONResult{ + Result: map[string]string{ + "deleted": name, + }, + } + + return +} + +func updatePrintTemplate( + input interface{}, + req *http.Request, + conn *sql.Conn, +) (jr JSONResult, err error) { + + ctx := req.Context() + name := mux.Vars(req)["name"] + in := input.(*json.RawMessage) + + if name == "" { + err = JSONError{ + Code: http.StatusBadRequest, + Message: "Template must have a none empty name", + } + return + } + if len(*in) == 0 { + err = JSONError{ + Code: http.StatusBadRequest, + Message: "Template must have a none empty template", + } + return + } + var tx *sql.Tx + if tx, err = conn.BeginTx(ctx, nil); err != nil { + return + } + defer tx.Rollback() + + var dummy bool + err = tx.QueryRowContext(ctx, hasPrintTemplateSQL, name).Scan(&dummy) + + switch { + case err == sql.ErrNoRows: + err = JSONError{ + Code: http.StatusNotFound, + Message: "No such template found", + } + return + case err != nil: + return + case !dummy: + err = JSONError{ + Code: http.StatusInternalServerError, + Message: "Unexpected return value from database query", + } + return + } + data := pgtype.Bytea{Bytes: *in, Status: pgtype.Present} + + if _, err = tx.ExecContext(ctx, updatePrintTemplateSQL, name, &data); err != nil { + return + } + + if err = tx.Commit(); err != nil { + return + } + + jr = JSONResult{ + Code: http.StatusOK, + Result: map[string]string{ + "updated": name, + }, + } + return +}
--- a/pkg/controllers/routes.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/controllers/routes.go Tue Feb 12 11:11:32 2019 +0100 @@ -95,6 +95,31 @@ NoConn: true, }).Methods(http.MethodGet) + // Print templates + api.Handle("/templates/print", any(&JSONHandler{ + Handle: listPrintTemplates, + })).Methods(http.MethodGet) + + api.Handle("/templates/print/{name}", any(&JSONHandler{ + Handle: fetchPrintTemplate, + })).Methods(http.MethodGet) + + api.Handle("/templates/print/{name}", waterwayAdmin(&JSONHandler{ + Input: func(*http.Request) interface{} { return &json.RawMessage{} }, + Handle: createPrintTemplate, + Limit: maxPrintTemplateSize, + })).Methods(http.MethodPost) + + api.Handle("/templates/print/{name}", waterwayAdmin(&JSONHandler{ + Handle: deletePrintTemplate, + })).Methods(http.MethodDelete) + + api.Handle("/templates/print/{name}", waterwayAdmin(&JSONHandler{ + Input: func(*http.Request) interface{} { return &json.RawMessage{} }, + Handle: updatePrintTemplate, + Limit: maxPrintTemplateSize, + })).Methods(http.MethodPatch) + // External proxies. external := middleware.NotFound(&httputil.ReverseProxy{ Director: proxyDirector(models.ExternalServices.Find), @@ -180,6 +205,9 @@ api.Handle("/imports/wp", waterwayAdmin( http.HandlerFunc(importWaterwayProfiles))).Methods(http.MethodPost) + api.Handle("/imports/ubn", waterwayAdmin( + http.HandlerFunc(importUploadedBottleneck))).Methods(http.MethodPost) + api.Handle("/imports/{kind:st}", sysAdmin(&JSONHandler{ Input: importModel, Handle: manualImport,
--- a/pkg/controllers/surveys.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/controllers/surveys.go Tue Feb 12 11:11:32 2019 +0100 @@ -24,17 +24,32 @@ ) const ( + // Use the same logic as in schema/gemma.sql to find out + // which is the reference gauge and which from its values is meant. + // The LEFT for the JOIN is necessary because we still want to list + // the surveys even if the corresponding value cannot be found because the + // depth_reference and reference_water_level strings do not match. + // + // As this information could be vary from survey entry to survey, + // in theory even for the same bottleneck + // it seems to be the right place to return it from the /surveys endpoint. listSurveysSQL = ` SELECT s.bottleneck_id, s.date_info::text, - bg.objname AS gauge_objname + s.depth_reference, + bg.objname AS gauge_objname, + r.value AS waterlevel_value FROM - ( SELECT * FROM waterway.bottlenecks AS b, waterway.gauges AS g - WHERE b.fk_g_fid = g.location - ) AS bg - JOIN waterway.sounding_results AS s -ON bg.id = s.bottleneck_id + ( + ( SELECT * FROM waterway.bottlenecks AS b, waterway.gauges AS g + WHERE b.fk_g_fid = g.location + ) AS bg + JOIN waterway.sounding_results AS s + ON bg.id = s.bottleneck_id + ) +LEFT JOIN waterway.gauges_reference_water_levels AS r +ON s.depth_reference = r.reference_water_level AND bg.location = r.gauge_id WHERE bg.objnam=$1` ) @@ -54,18 +69,27 @@ } defer rows.Close() - surveys := []models.Survey{} + surveys := []*models.Survey{} + // as we do not use the values here, we could simply the code here + // to work without an explicit mdels/surverys.go + // (like done in controllers/search.go) for rows.Next() { var survey models.Survey + var level sql.NullInt64 if err = rows.Scan( &survey.BottleneckID, &survey.DateInfo, + &survey.DepthReference, &survey.ReferenceGauge, + &level, ); err != nil { return } - surveys = append(surveys, survey) + if level.Valid { + survey.WaterLevelValue = &level.Int64 + } + surveys = append(surveys, &survey) } if err = rows.Err(); err != nil { @@ -74,7 +98,7 @@ jr = JSONResult{ Result: struct { - Surveys []models.Survey `json:"surveys"` + Surveys []*models.Survey `json:"surveys"` }{surveys}, } return
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkg/controllers/ubnimports.go Tue Feb 12 11:11:32 2019 +0100 @@ -0,0 +1,119 @@ +// This is Free Software under GNU Affero General Public License v >= 3.0 +// without warranty, see README.md and license for details. +// +// SPDX-License-Identifier: AGPL-3.0-or-later +// License-Filename: LICENSES/AGPL-3.0.txt +// +// Copyright (C) 2018 by via donau +// – Österreichische Wasserstraßen-Gesellschaft mbH +// Software engineering by Intevation GmbH +// +// Author(s): +// * Sascha L. Teichmann <sascha.teichmann@intevation.de> + +package controllers + +import ( + "bufio" + "io" + "io/ioutil" + "log" + "net/http" + "os" + "path/filepath" + "time" + + "gemma.intevation.de/gemma/pkg/auth" + "gemma.intevation.de/gemma/pkg/common" + "gemma.intevation.de/gemma/pkg/config" + "gemma.intevation.de/gemma/pkg/imports" +) + +const ( + maxUploadedBottleneckSize = 25 * 1024 * 1024 + uploadBottleneckName = "ubn" +) + +func storeUploadedBottleneck(req *http.Request) (string, error) { + + // Check for direct upload. + f, _, err := req.FormFile(uploadBottleneckName) + if err != nil { + return "", err + } + defer f.Close() + + dir, err := ioutil.TempDir(config.TmpDir(), uploadBottleneckName) + if err != nil { + return "", err + } + + o, err := os.Create(filepath.Join(dir, "data.xml")) + if err != nil { + os.RemoveAll(dir) + return "", err + } + + out := bufio.NewWriter(o) + + if _, err = io.Copy(out, io.LimitReader(f, maxUploadedBottleneckSize)); err != nil { + o.Close() + os.RemoveAll(dir) + return "", err + } + + if err = out.Flush(); err != nil { + o.Close() + os.RemoveAll(dir) + return "", err + } + + return dir, nil +} + +func importUploadedBottleneck(rw http.ResponseWriter, req *http.Request) { + + dir, err := storeUploadedBottleneck(req) + if err != nil { + log.Printf("error: %v\n", err) + http.Error(rw, "error: "+err.Error(), http.StatusInternalServerError) + return + } + + ubn := &imports.UploadedBottleneck{Dir: dir} + + serialized, err := common.ToJSONString(ubn) + if err != nil { + log.Printf("error: %v\n", err) + http.Error(rw, "error: "+err.Error(), http.StatusInternalServerError) + return + } + + session, _ := auth.GetSession(req) + + sendEmail := req.FormValue("email") != "" + + jobID, err := imports.AddJob( + imports.UBNJobKind, + time.Time{}, // due + nil, // trys + nil, // wait retry + session.User, + sendEmail, + serialized) + + if err != nil { + log.Printf("error: %v\n", err) + http.Error(rw, "error: "+err.Error(), http.StatusInternalServerError) + return + } + + log.Printf("info: added import #%d to queue\n", jobID) + + result := struct { + ID int64 `json:"id"` + }{ + ID: jobID, + } + SendJSON(rw, http.StatusCreated, &result) +}
--- a/pkg/imports/agm.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/agm.go Tue Feb 12 11:11:32 2019 +0100 @@ -21,13 +21,13 @@ "encoding/json" "fmt" "io" + "math" "os" "path/filepath" "strconv" "strings" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/misc" "gemma.intevation.de/gemma/pkg/models" ) @@ -51,13 +51,7 @@ return "approved gauge measurements" } -func (agmJobCreator) Create(_ JobKind, data string) (Job, error) { - agm := new(ApprovedGaugeMeasurements) - if err := common.FromJSONString(data, agm); err != nil { - return nil, err - } - return agm, nil -} +func (agmJobCreator) Create() Job { return new(ApprovedGaugeMeasurements) } func (agmJobCreator) Depends() []string { return []string{ @@ -136,6 +130,30 @@ SourceOrganization string `json:"source-organization"` } +func (a *agmLine) hasDiff(b *agmLine) bool { + const eps = 0.00001 + fdiff := func(x, y *float64) bool { + if x == nil && y == nil { + return false + } + if (x == nil && y != nil) || (x != nil && y == nil) { + return true + } + return math.Abs(*x-*y) > eps + } + return a.CountryCode != b.CountryCode || + a.Sender != b.Sender || + a.LanguageCode != b.LanguageCode || + !a.DateIssue.Time.Equal(b.DateIssue.Time) || + a.ReferenceCode != b.ReferenceCode || + math.Abs(a.WaterLevel-b.WaterLevel) > eps || + a.Predicted != b.Predicted || + fdiff(a.ValueMin, b.ValueMin) || + fdiff(a.ValueMax, b.ValueMax) || + !a.DateInfo.Time.Equal(b.DateInfo.Time) || + a.SourceOrganization != b.SourceOrganization +} + type agmSummaryEntry struct { FKGaugeID models.Isrs `json:"fk-gauge-id"` MeasureDate timetz `json:"measure-date"` @@ -481,43 +499,46 @@ return nil, err } + n := newAGMLine( + newCountryCode, + newSender, + newLanguageCode, + newDateIssue, + newReferenceCode, + newValue, + newPredicted, + newValueMin, + newValueMax, + newDateInfo, + newSourceOrganization, + ) + ase := &agmSummaryEntry{ FKGaugeID: *gid, MeasureDate: timetz{md}, - Versions: []*agmLine{ - newAGMLine( - newCountryCode, - newSender, - newLanguageCode, - newDateIssue, - newReferenceCode, - newValue, - newPredicted, - newValueMin, - newValueMax, - newDateInfo, - newSourceOrganization, - ), - }, } - if !newEntry { - ase.Versions = []*agmLine{ - newAGMLine( - oldCountryCode, - oldSender, - oldLanguageCode, - oldDateIssue, - oldReferenceCode, - oldValue, - oldPredicted, - oldValueMin, - oldValueMax, - oldDateInfo, - oldSourceOrganization, - ), - ase.Versions[0], + if newEntry { + ase.Versions = []*agmLine{n} + } else { + o := newAGMLine( + oldCountryCode, + oldSender, + oldLanguageCode, + oldDateIssue, + oldReferenceCode, + oldValue, + oldPredicted, + oldValueMin, + oldValueMax, + oldDateInfo, + oldSourceOrganization, + ) + // Ignore if there is no diff. + if !n.hasDiff(o) { + continue } + ase.Versions = []*agmLine{o, n} } entries = append(entries, ase) }
--- a/pkg/imports/bn.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/bn.go Tue Feb 12 11:11:32 2019 +0100 @@ -21,7 +21,6 @@ "strconv" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/soap/ifbn" ) @@ -88,13 +87,7 @@ func (bnJobCreator) AutoAccept() bool { return false } -func (bnJobCreator) Create(_ JobKind, data string) (Job, error) { - bn := new(Bottleneck) - if err := common.FromJSONString(data, bn); err != nil { - return nil, err - } - return bn, nil -} +func (bnJobCreator) Create() Job { return new(Bottleneck) } func (bnJobCreator) Depends() []string { return []string{
--- a/pkg/imports/dma.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/dma.go Tue Feb 12 11:11:32 2019 +0100 @@ -22,7 +22,6 @@ "io" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -51,13 +50,7 @@ func (dmaJobCreator) AutoAccept() bool { return true } -func (dmaJobCreator) Create(_ JobKind, data string) (Job, error) { - dma := new(DistanceMarksAshore) - if err := common.FromJSONString(data, dma); err != nil { - return nil, err - } - return dma, nil -} +func (dmaJobCreator) Create() Job { return new(DistanceMarksAshore) } func (dmaJobCreator) Depends() []string { return []string{
--- a/pkg/imports/dmv.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/dmv.go Tue Feb 12 11:11:32 2019 +0100 @@ -22,7 +22,6 @@ "strings" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/soap" "gemma.intevation.de/gemma/pkg/soap/erdms" @@ -52,13 +51,7 @@ func (dmvJobCreator) AutoAccept() bool { return true } -func (dmvJobCreator) Create(_ JobKind, data string) (Job, error) { - dmv := new(DistanceMarksVirtual) - if err := common.FromJSONString(data, dmv); err != nil { - return nil, err - } - return dmv, nil -} +func (dmvJobCreator) Create() Job { return new(DistanceMarksVirtual) } func (dmvJobCreator) Depends() []string { return []string{
--- a/pkg/imports/fa.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/fa.go Tue Feb 12 11:11:32 2019 +0100 @@ -21,7 +21,6 @@ "github.com/jackc/pgx/pgtype" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/soap/ifaf" ) @@ -156,13 +155,7 @@ return "fairway availability" } -func (faJobCreator) Create(_ JobKind, data string) (Job, error) { - fa := new(FairwayAvailability) - if err := common.FromJSONString(data, fa); err != nil { - return nil, err - } - return fa, nil -} +func (faJobCreator) Create() Job { return new(FairwayAvailability) } func (faJobCreator) Depends() []string { return []string{
--- a/pkg/imports/fd.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/fd.go Tue Feb 12 11:11:32 2019 +0100 @@ -17,12 +17,10 @@ "context" "database/sql" "encoding/json" - "errors" "fmt" "io" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/misc" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -76,13 +74,7 @@ func (fdJobCreator) AutoAccept() bool { return false } -func (fdJobCreator) Create(_ JobKind, data string) (Job, error) { - fd := new(FairwayDimension) - if err := common.FromJSONString(data, fd); err != nil { - return nil, err - } - return fd, nil -} +func (fdJobCreator) Create() Job { return new(FairwayDimension) } func (fdJobCreator) Depends() []string { return []string{ @@ -95,8 +87,16 @@ tx *sql.Tx, id int64, ) error { + // We only want to delete the features of the same LOS + // as the imported. + var los int64 + if err := tx.QueryRowContext(ctx, fdFindLOSSQL, id).Scan(&los); err != nil { + // Should always return a row because import will exit as unchanged + // if no new features were found while inserting. + return err + } // Delete the old features. - if _, err := tx.ExecContext(ctx, deleteFairwayDimensionSQL); err != nil { + if _, err := tx.ExecContext(ctx, deleteFairwayDimensionSQL, los); err != nil { return err } @@ -118,12 +118,20 @@ } const ( + fdFindLOSSQL = ` +SELECT level_of_service FROM waterway.fairway_dimensions +WHERE id IN ( + SELECT key FROM import.track_imports + WHERE import_id = $1 AND + relation = 'waterway.fairway_dimensions'::regclass) +LIMIT 1` + fdStageDoneSQL = ` UPDATE waterway.fairway_dimensions SET staging_done = true WHERE id IN ( - SELECT key from import.track_imports + SELECT key FROM import.track_imports WHERE import_id = $1 AND - relation = 'waterway.fairway_dimensions'::regclass)` + relation = 'waterway.fairway_dimensions'::regclass)` deleteFairwayDimensionSQL = ` WITH resp AS ( @@ -135,10 +143,11 @@ DELETE FROM waterway.fairway_dimensions WHERE ST_Covers( (SELECT a FROM resp), - ST_Transform(area::geometry, (SELECT t FROM resp))) AND staging_done = true -` + ST_Transform(area::geometry, (SELECT t FROM resp))) + AND staging_done + AND level_of_service = $1::smallint` - // The ST_MakeValid (line125) and ST_Buffer (line124) are a workarround to + // The ST_MakeValid and ST_Buffer below are a workarround to // avoid errors due to reprojection. insertFairwayDimensionSQL = ` WITH resp AS ( @@ -327,9 +336,7 @@ } if features == 0 { - err := errors.New("No features found") - feedback.Error("%v", err) - return nil, err + return nil, UnchangedError("No features found") } if err = tx.Commit(); err == nil {
--- a/pkg/imports/gm.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/gm.go Tue Feb 12 11:11:32 2019 +0100 @@ -20,7 +20,6 @@ "strings" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/soap/nts" ) @@ -116,17 +115,9 @@ RegisterJobCreator(GMJobKind, gmJobCreator{}) } -func (gmJobCreator) Description() string { - return "gauge measurements" -} +func (gmJobCreator) Description() string { return "gauge measurements" } -func (gmJobCreator) Create(_ JobKind, data string) (Job, error) { - gm := new(GaugeMeasurement) - if err := common.FromJSONString(data, gm); err != nil { - return nil, err - } - return gm, nil -} +func (gmJobCreator) Create() Job { return new(GaugeMeasurement) } func (gmJobCreator) Depends() []string { return []string{
--- a/pkg/imports/queue.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/queue.go Tue Feb 12 11:11:32 2019 +0100 @@ -27,6 +27,7 @@ "github.com/jackc/pgx/pgtype" "gemma.intevation.de/gemma/pkg/auth" + "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/config" ) @@ -73,11 +74,7 @@ // Description is the long name of the import. Description() string // Create build the actual job. - // kind is the name of the import type. - // data is a free form string to pass arguments to the creation - // process. This is useful to tell e.g. where to find data - // in the file system to be used for importing. - Create(kind JobKind, data string) (Job, error) + Create() Job // Depends returns a list of ressources locked by this type of import. // Imports are run concurrently if they have disjoint sets // of dependencies. @@ -589,8 +586,8 @@ } }() - job, err := jc.Create(idj.kind, idj.data) - if err != nil { + job := jc.Create() + if err := common.FromJSONString(idj.data, job); err != nil { errorAndFail(idj.id, "failed to create job for import #%d: %v", idj.id, err) return
--- a/pkg/imports/sr.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/sr.go Tue Feb 12 11:11:32 2019 +0100 @@ -77,13 +77,7 @@ func (srJobCreator) AutoAccept() bool { return false } -func (srJobCreator) Create(_ JobKind, data string) (Job, error) { - sr := new(SoundingResult) - if err := common.FromJSONString(data, sr); err != nil { - return nil, err - } - return sr, nil -} +func (srJobCreator) Create() Job { return new(SoundingResult) } func (srJobCreator) Depends() []string { return []string{
--- a/pkg/imports/st.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/st.go Tue Feb 12 11:11:32 2019 +0100 @@ -19,7 +19,6 @@ "errors" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" ) @@ -46,13 +45,7 @@ func (stJobCreator) AutoAccept() bool { return false } -func (stJobCreator) Create(_ JobKind, data string) (Job, error) { - st := new(Stretch) - if err := common.FromJSONString(data, st); err != nil { - return nil, err - } - return st, nil -} +func (stJobCreator) Create() Job { return new(Stretch) } func (stJobCreator) Depends() []string { return []string{
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkg/imports/ubn.go Tue Feb 12 11:11:32 2019 +0100 @@ -0,0 +1,73 @@ +// This is Free Software under GNU Affero General Public License v >= 3.0 +// without warranty, see README.md and license for details. +// +// SPDX-License-Identifier: AGPL-3.0-or-later +// License-Filename: LICENSES/AGPL-3.0.txt +// +// Copyright (C) 2018 by via donau +// – Österreichische Wasserstraßen-Gesellschaft mbH +// Software engineering by Intevation GmbH +// +// Author(s): +// * Sascha L. Teichmann <sascha.teichmann@intevation.de> + +package imports + +import ( + "context" + "database/sql" + "errors" + "os" +) + +type UploadedBottleneck struct { + Dir string `json:"dir"` +} + +// UBNJobKind is the import queue type identifier. +const UBNJobKind JobKind = "ubn" + +type ubnJobCreator struct{} + +func init() { + RegisterJobCreator(UBNJobKind, ubnJobCreator{}) +} + +func (ubnJobCreator) Description() string { return "uploaded bottlenecks" } + +func (ubnJobCreator) AutoAccept() bool { return false } + +func (ubnJobCreator) Create() Job { return new(UploadedBottleneck) } + +func (ubnJobCreator) Depends() []string { + return []string{ + "gauges", + "bottlenecks", + } +} + +// StageDone moves the imported bottleneck out of the staging area. +func (ubnJobCreator) StageDone( + ctx context.Context, + tx *sql.Tx, + id int64, +) error { + // TODO: Implement me! + return nil +} + +// CleanUp of a uploaded bottleneck import removes the temp dir. +func (ubn *UploadedBottleneck) CleanUp() error { + return os.RemoveAll(ubn.Dir) +} + +// Do executes the actual uploaded bottleneck import. +func (ubn *UploadedBottleneck) Do( + ctx context.Context, + importID int64, + conn *sql.Conn, + feedback Feedback, +) (interface{}, error) { + // TODO: Implement me! + return nil, errors.New("Not implemented, yet!") +}
--- a/pkg/imports/wa.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/wa.go Tue Feb 12 11:11:32 2019 +0100 @@ -23,7 +23,6 @@ "strconv" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -53,13 +52,7 @@ func (waJobCreator) AutoAccept() bool { return true } -func (waJobCreator) Create(_ JobKind, data string) (Job, error) { - wa := new(WaterwayArea) - if err := common.FromJSONString(data, wa); err != nil { - return nil, err - } - return wa, nil -} +func (waJobCreator) Create() Job { return new(WaterwayArea) } func (waJobCreator) Depends() []string { return []string{
--- a/pkg/imports/wg.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/wg.go Tue Feb 12 11:11:32 2019 +0100 @@ -23,7 +23,6 @@ "github.com/jackc/pgx/pgtype" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/soap" "gemma.intevation.de/gemma/pkg/soap/erdms" @@ -53,13 +52,7 @@ func (wgJobCreator) AutoAccept() bool { return true } -func (wgJobCreator) Create(_ JobKind, data string) (Job, error) { - wg := new(WaterwayGauge) - if err := common.FromJSONString(data, wg); err != nil { - return nil, err - } - return wg, nil -} +func (wgJobCreator) Create() Job { return new(WaterwayGauge) } func (wgJobCreator) Depends() []string { return []string{
--- a/pkg/imports/wp.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/wp.go Tue Feb 12 11:11:32 2019 +0100 @@ -30,7 +30,6 @@ "github.com/jackc/pgx/pgtype" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/misc" "gemma.intevation.de/gemma/pkg/models" "gemma.intevation.de/gemma/pkg/wfs" @@ -61,13 +60,7 @@ RegisterJobCreator(WPJobKind, wpJobCreator{}) } -func (wpJobCreator) Create(_ JobKind, data string) (Job, error) { - wp := new(WaterwayProfiles) - if err := common.FromJSONString(data, wp); err != nil { - return nil, err - } - return wp, nil -} +func (wpJobCreator) Create() Job { return new(WaterwayProfiles) } func (wpJobCreator) AutoAccept() bool { return false } @@ -96,6 +89,11 @@ INSERT INTO wp_geoms (geom) VALUES ( ST_Transform(ST_GeomFromWKB($1, $2::int), 4326) )` + hasDistanceMarkSQL = ` +SELECT true FROM waterway.distance_marks_virtual +WHERE location_code = + ($1::char(2), $2::char(3), $3::char(5), $4::char(5), $5::int) +LIMIT 1` insertWaterwayProfileSQL = ` INSERT INTO waterway.waterway_profiles ( @@ -172,7 +170,7 @@ summary, err := wp.processCSV( ctx, importID, tx, start, feedback) if err != nil { - return nil, fmt.Errorf("error processing CVS: %v", err) + return nil, fmt.Errorf("error processing CSV: %v", err) } if err := tx.Commit(); err != nil { @@ -430,6 +428,12 @@ } defer trackStmt.Close() + hasDistanceMarkStmt, err := tx.PrepareContext(ctx, hasDistanceMarkSQL) + if err != nil { + return nil, err + } + defer hasDistanceMarkStmt.Close() + var ids []int64 lines: @@ -450,6 +454,26 @@ line, err) } + var dummy bool + err = hasDistanceMarkStmt.QueryRowContext( + ctx, + location.CountryCode, + location.LoCode, + location.FairwaySection, + location.Orc, + location.Hectometre, + ).Scan(&dummy) + + switch { + case err == sql.ErrNoRows: + feedback.Warn("No virtual distance mark found for %s.", location) + continue lines + case err != nil: + return nil, err + case !dummy: + return nil, errors.New("unexpected result form database") + } + validFromTime, err := parseDate(row[validFromIdx]) if err != nil { return nil, fmt.Errorf(
--- a/pkg/imports/wx.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/imports/wx.go Tue Feb 12 11:11:32 2019 +0100 @@ -22,7 +22,6 @@ "io" "time" - "gemma.intevation.de/gemma/pkg/common" "gemma.intevation.de/gemma/pkg/wfs" ) @@ -52,13 +51,7 @@ func (wxJobCreator) AutoAccept() bool { return true } -func (wxJobCreator) Create(_ JobKind, data string) (Job, error) { - wx := new(WaterwayAxis) - if err := common.FromJSONString(data, wx); err != nil { - return nil, err - } - return wx, nil -} +func (wxJobCreator) Create() Job { return new(WaterwayAxis) } func (wxJobCreator) Depends() []string { return []string{
--- a/pkg/models/common.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/models/common.go Tue Feb 12 11:11:32 2019 +0100 @@ -34,24 +34,42 @@ type ( Date struct{ time.Time } + Time struct{ time.Time } + // Country is a valid country 2 letter code. Country string // UniqueCountries is a list of unique countries. UniqueCountries []Country ) -func (srd Date) MarshalJSON() ([]byte, error) { - return json.Marshal(srd.Format(common.DateFormat)) +func (d Date) MarshalJSON() ([]byte, error) { + return json.Marshal(d.Format(common.DateFormat)) } -func (srd *Date) UnmarshalJSON(data []byte) error { +func (d *Date) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { return err } - d, err := time.Parse(common.DateFormat, s) + d2, err := time.Parse(common.DateFormat, s) if err == nil { - *srd = Date{d} + *d = Date{d2} + } + return err +} + +func (t Time) MarshalJSON() ([]byte, error) { + return json.Marshal(t.Format(common.TimeFormat)) +} + +func (t *Time) UnmarshalJSON(data []byte) error { + var s string + if err := json.Unmarshal(data, &s); err != nil { + return err + } + t2, err := time.Parse(common.TimeFormat, s) + if err == nil { + *t = Time{t2} } return err }
--- a/pkg/models/import.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/models/import.go Tue Feb 12 11:11:32 2019 +0100 @@ -30,6 +30,7 @@ User string `json:"user"` Signer string `json:"signer,omitempty"` Summary interface{} `json:"summary,omitempty"` + Warnings bool `json:"warnings,omitempty"` } ImportLogEntry struct {
--- a/pkg/models/surveys.go Tue Feb 12 10:53:01 2019 +0100 +++ b/pkg/models/surveys.go Tue Feb 12 11:11:32 2019 +0100 @@ -15,8 +15,10 @@ type ( Survey struct { - BottleneckID string `json:"bottleneck_id"` - DateInfo string `json:"date_info"` - ReferenceGauge string `json:"gauge_objname"` + BottleneckID string `json:"bottleneck_id"` + DateInfo string `json:"date_info"` + DepthReference string `json:"depth_reference"` + ReferenceGauge string `json:"gauge_objname"` + WaterLevelValue *int64 `json:"waterlevel_value,omitempty"` } )
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkg/soap/validate.go Tue Feb 12 11:11:32 2019 +0100 @@ -0,0 +1,151 @@ +// This is Free Software under GNU Affero General Public License v >= 3.0 +// without warranty, see README.md and license for details. +// +// SPDX-License-Identifier: AGPL-3.0-or-later +// License-Filename: LICENSES/AGPL-3.0.txt +// +// Copyright (C) 2018 by via donau +// – Österreichische Wasserstraßen-Gesellschaft mbH +// Software engineering by Intevation GmbH +// +// Author(s): +// * Sascha L. Teichmann <sascha.teichmann@intevation.de> + +package soap + +import ( + "bytes" + "encoding/xml" + "fmt" + "io" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "strings" + + "golang.org/x/net/html/charset" + + "gemma.intevation.de/gemma/pkg/config" +) + +const linter = "xmllint" + +type ( + ValidationError string + foundError string +) + +func (ef foundError) Error() string { + return string(ef) +} + +func (ve ValidationError) Error() string { + return string(ve) +} + +func FindSchema(name string) (string, error) { + name = strings.ToLower(name) + config.WaitReady() + for _, root := range filepath.SplitList(config.SchemaDirs()) { + err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if info == nil { + return nil + } + if info.Mode().IsRegular() && strings.ToLower(info.Name()) == name { + return foundError(path) + } + return nil + }) + if path, ok := err.(foundError); ok { + return string(path), nil + } + if err != nil { + return "", err + } + } + return "", nil +} + +func ValidateFile(fname, schema string, dst interface{}) error { + f, err := os.Open(fname) + if err != nil { + return err + } + defer f.Close() + return Validate(f, schema, dst) +} + +func Validate(r io.Reader, schema string, dst interface{}) error { + schemaPath, err := FindSchema(schema) + if err != nil { + return err + } + if schemaPath == "" { + return fmt.Errorf("no schema file '%s' found", schema) + } + linterPath, err := exec.LookPath(linter) + if err != nil { + return err + } + + type envelope struct { + _ xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"` + Body *struct { + Inner []byte `xml:",innerxml"` + } `xml:"http://schemas.xmlsoap.org/soap/envelope/ Body"` + } + + content, err := ioutil.ReadAll(r) + if err != nil { + return err + } + + dec := xml.NewDecoder(bytes.NewReader(content)) + dec.CharsetReader = charset.NewReaderLabel + + var env envelope + if err := dec.Decode(&env); err != nil { + return err + } + + // It has a body -> throw envelope away. + if env.Body != nil && len(env.Body.Inner) > 0 { + content = env.Body.Inner + } + + cmd := exec.Command( + linterPath, + "--schema", schemaPath, + "--noout", + "-") + + var stderr bytes.Buffer + + cmd.Stdin = bytes.NewReader(content) + cmd.Stderr = &stderr + cmd.Stdout = ioutil.Discard + + if err := cmd.Start(); err != nil { + return err + } + + if err := cmd.Wait(); err != nil { + if err2, ok := err.(*exec.ExitError); ok { + if !err2.Success() { + return ValidationError(stderr.String()) + } + } + return err + } + + // Validation successful -> Deserialize. + + dec = xml.NewDecoder(bytes.NewReader(content)) + dec.CharsetReader = charset.NewReaderLabel + + return dec.Decode(dst) +}
--- a/schema/auth.sql Tue Feb 12 10:53:01 2019 +0100 +++ b/schema/auth.sql Tue Feb 12 11:11:32 2019 +0100 @@ -40,7 +40,8 @@ -- imported data due to historicisation? Special tables like -- import_configuration will further need UPDATE and DELETE privileges. GRANT INSERT, UPDATE, DELETE ON - users.templates, users.user_templates TO waterway_admin; + users.templates TO waterway_admin; + -- users.templates, users.user_templates TO waterway_admin; GRANT USAGE ON SCHEMA import TO waterway_admin; GRANT SELECT, INSERT ON ALL TABLES IN SCHEMA import TO waterway_admin; @@ -104,14 +105,14 @@ $$; -- templates -CREATE POLICY user_templates ON users.user_templates FOR ALL TO waterway_user - USING (username IN(SELECT username FROM users.list_users)); -ALTER TABLE users.user_templates ENABLE ROW LEVEL SECURITY; +-- CREATE POLICY user_templates ON users.user_templates FOR ALL TO waterway_user +-- USING (username IN(SELECT username FROM users.list_users)); +-- ALTER TABLE users.user_templates ENABLE ROW LEVEL SECURITY; -CREATE POLICY user_templates ON users.templates FOR ALL TO waterway_user - USING (template_name IN(SELECT template_name FROM users.user_templates)) - WITH CHECK (true); -ALTER TABLE users.templates ENABLE ROW LEVEL SECURITY; +-- CREATE POLICY user_templates ON users.templates FOR ALL TO waterway_user +-- USING (template_name IN(SELECT template_name FROM users.user_templates)) +-- WITH CHECK (true); +-- ALTER TABLE users.templates ENABLE ROW LEVEL SECURITY; -- -- RLS policies for waterway_admin
--- a/schema/auth_tests.sql Tue Feb 12 10:53:01 2019 +0100 +++ b/schema/auth_tests.sql Tue Feb 12 11:11:32 2019 +0100 @@ -36,16 +36,16 @@ $$, 'Only staged data should be visible'); -SELECT isnt_empty($$ - SELECT * FROM users.templates - $$, - 'User should see templates associated to him'); -SELECT is_empty($$ - SELECT * FROM users.templates - JOIN users.user_templates USING (template_name) - WHERE username <> current_user - $$, - 'User should only see templates associated to him'); +--SELECT isnt_empty($$ +-- SELECT * FROM users.templates +-- $$, +-- 'User should see templates associated to him'); +--SELECT is_empty($$ +-- SELECT * FROM users.templates +-- JOIN users.user_templates USING (template_name) +-- WHERE username <> current_user +-- $$, +-- 'User should only see templates associated to him'); -- -- Run tests as waterway administrator @@ -79,26 +79,26 @@ 'Waterway admin cannot insert data outside his region'); -- template management -SELECT isnt_empty($$ - SELECT * FROM users.templates - JOIN users.user_templates USING (template_name) - WHERE username <> current_user - $$, - 'Waterway admin should see templates of other users'); +--SELECT isnt_empty($$ +-- SELECT * FROM users.templates +-- JOIN users.user_templates USING (template_name) +-- WHERE username <> current_user +-- $$, +-- 'Waterway admin should see templates of other users'); -SELECT lives_ok($$ - INSERT INTO users.templates (template_name, template_data) - VALUES ('New AT', '\x'); - INSERT INTO users.user_templates - VALUES ('test_user_at', 'New AT') - $$, - 'Waterway admin can add templates for users in his country'); +--SELECT lives_ok($$ +-- INSERT INTO users.templates (template_name, template_data) +-- VALUES ('New AT', '\x'); +-- INSERT INTO users.user_templates +-- VALUES ('test_user_at', 'New AT') +-- $$, +-- 'Waterway admin can add templates for users in his country'); -SELECT throws_ok($$ - INSERT INTO users.user_templates VALUES ('waterway_user2', 'AT') - $$, - 42501, NULL, - 'Waterway admin cannot add template for other country'); +--SELECT throws_ok($$ +-- INSERT INTO users.user_templates VALUES ('waterway_user2', 'AT') +-- $$, +-- 42501, NULL, +-- 'Waterway admin cannot add template for other country'); SELECT isnt_empty($$ UPDATE users.templates SET template_data = '\xDABE'
--- a/schema/demo-data/published_services.sql Tue Feb 12 10:53:01 2019 +0100 +++ b/schema/demo-data/published_services.sql Tue Feb 12 11:11:32 2019 +0100 @@ -19,4 +19,5 @@ ('waterway.bottlenecks_geoserver'), ('waterway.bottleneck_overview'), ('waterway.waterway_axis'), - ('waterway.waterway_area') + ('waterway.waterway_area'), + ('waterway.waterway_profiles')
--- a/schema/gemma.sql Tue Feb 12 10:53:01 2019 +0100 +++ b/schema/gemma.sql Tue Feb 12 11:11:32 2019 +0100 @@ -4,13 +4,14 @@ -- SPDX-License-Identifier: AGPL-3.0-or-later -- License-Filename: LICENSES/AGPL-3.0.txt --- Copyright (C) 2018 by via donau +-- Copyright (C) 2018,2019 by via donau -- – Österreichische Wasserstraßen-Gesellschaft mbH -- Software engineering by Intevation GmbH -- Author(s): -- * Tom Gottfried <tom@intevation.de> -- * Sascha Teichmann <sascha.teichmann@intevation.de> +-- * Sascha Wilde <sascha.wilde@intevation.de> BEGIN; @@ -188,13 +189,13 @@ CREATE TRIGGER templates_date_info BEFORE UPDATE ON templates FOR EACH ROW EXECUTE PROCEDURE update_date_info() - CREATE TABLE user_templates ( - username varchar NOT NULL - REFERENCES internal.user_profiles - ON DELETE CASCADE ON UPDATE CASCADE, - template_name varchar NOT NULL REFERENCES templates ON DELETE CASCADE, - PRIMARY KEY (username, template_name) - ) + -- CREATE TABLE user_templates ( + -- username varchar NOT NULL + -- REFERENCES internal.user_profiles + -- ON DELETE CASCADE ON UPDATE CASCADE, + -- template_name varchar NOT NULL REFERENCES templates ON DELETE CASCADE, + -- PRIMARY KEY (username, template_name) + --) ; ALTER TABLE internal.user_profiles ADD country char(2) NOT NULL REFERENCES users.responsibility_areas; @@ -292,9 +293,6 @@ -- a non-staged fk_gauge_id/measure_date pair. UNIQUE (fk_gauge_id, measure_date, staging_done) ) - CREATE TRIGGER gauge_measurements_date_info - BEFORE UPDATE ON gauge_measurements - FOR EACH ROW EXECUTE PROCEDURE update_date_info() CREATE TABLE waterway_axis ( id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, @@ -329,7 +327,8 @@ -- At least geoserver-2.13.2 does not serve type geography correctly -- and does not serve the location_code as isrs type CREATE VIEW distance_marks_geoserver AS - SELECT isrs_asText(location_code), + SELECT location_code, + isrs_asText(location_code) AS location, geom::Geometry(POINT, 4326), related_enc, (location_code).hectometre @@ -397,8 +396,8 @@ CREATE TABLE waterway_profiles ( id int PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, - location isrs NOT NULL, - geom geography(linestring, 4326), -- TODO: NOT NIL + location isrs NOT NULL REFERENCES distance_marks_virtual, + geom geography(linestring, 4326), validity tstzrange, lnwl double precision, mwl double precision,
--- a/schema/tap_tests_data.sql Tue Feb 12 10:53:01 2019 +0100 +++ b/schema/tap_tests_data.sql Tue Feb 12 11:11:32 2019 +0100 @@ -90,8 +90,8 @@ INSERT INTO users.templates (template_name, template_data) VALUES ('AT', '\x'), ('RO', '\x'); -INSERT INTO users.user_templates - VALUES ('test_user_at', 'AT'), ('test_user_ro', 'RO'); +--INSERT INTO users.user_templates +-- VALUES ('test_user_at', 'AT'), ('test_user_ro', 'RO'); WITH job AS (