view client/src/main.js @ 1237:74562dc29e10

refactored drawtool The map interactions (ol/interaction/Draw) were previously always removed and re-created. Now there are created and added to the map once and their active flag is used to toggle the tools. Results in cleaner code and easier separation of the buttons in the future.
author Markus Kottlaender <markus@intevation.de>
date Tue, 20 Nov 2018 13:03:24 +0100
parents fb5c83d4ea1d
children 24797f66f268
line wrap: on
line source

/*
 * 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):
 * Thomas Junk <thomas.junk@intevation.de>
 */

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import GetTextPlugin from "vue-gettext";
import translations from "./translations.json";
import locale2 from "locale2";
import CxltToastr from "cxlt-vue2-toastr";
import "../node_modules/bootstrap/dist/css/bootstrap.min.css";
import "../node_modules/font-awesome/css/font-awesome.min.css";
import "../node_modules/animate.css/animate.min.css";
import "../node_modules/ol/ol.css";
import "../node_modules/cxlt-vue2-toastr/dist/css/cxlt-vue2-toastr.css";
import "../node_modules/highlight.js/styles/paraiso-dark.css";
import VTooltip from "v-tooltip";
import { library } from "@fortawesome/fontawesome-svg-core";
import { faEye, faEyeSlash } from "@fortawesome/free-solid-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
import VueClipboard from "vue-clipboard2";

library.add(faEye, faEyeSlash);
Vue.component("font-awesome-icon", FontAwesomeIcon);

Vue.use(VTooltip);

Vue.use(VueClipboard);

var toastrConfigs = {
  position: "bottom center",
  showDuration: 2000,
  timeOut: 8000,
  closeButton: true
};

Vue.use(CxltToastr, toastrConfigs);

let browserLanguage = locale2;

// planned also SK, HU, HR, RS, BiH, BG, RO, UA
const supportedLanguages = {
  en_GB: "British English",
  de_AT: "Deutsch"
};

if (browserLanguage === "de-DE") {
  browserLanguage = "de-AT"; // map german to austrian variant for now
}

const language = browserLanguage.replace("-", "_");
const isLanguageAvailable = supportedLanguages[language];
let defaultLanguage = isLanguageAvailable ? language : "en_GB";

Vue.use(GetTextPlugin, {
  translations: translations,
  availableLanguages: supportedLanguages,
  defaultLanguage: defaultLanguage
});

Vue.config.productionTip = false;

const app = new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");

export default app;