view client/src/main.js @ 1372:553aadd97087

new cross profile workflow (WIP) Needs fixing of some bugs and not so nice looks.
author Markus Kottlaender <markus@intevation.de>
date Tue, 27 Nov 2018 12:59:26 +0100
parents d1d8c7bd16a1
children 8e2c9e518440
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>
 * Markus Kottländer <markus@intevation.de>
 */

import Vue from "vue";
import App from "./components/App.vue";
import router from "./router";
import store from "./store";
import GetTextPlugin from "vue-gettext";
import translations from "./locale/translations.json";
import locale2 from "locale2";
import Snotify, { SnotifyPosition } from "vue-snotify";
import "../node_modules/bootstrap/dist/css/bootstrap.min.css";
import "../node_modules/animate.css/animate.min.css";
import "../node_modules/ol/ol.css";
import "../node_modules/highlight.js/styles/paraiso-dark.css";
import "../node_modules/vue-snotify/styles/material.css";
import VTooltip from "v-tooltip";
import { library } from "@fortawesome/fontawesome-svg-core";
import {
  faEye,
  faEyeSlash,
  faCopy,
  faCheck,
  faTimes,
  faInfo,
  faLayerGroup,
  faChartArea,
  faRuler,
  faDrawPolygon,
  faAngleDown,
  faAngleUp,
  faAngleLeft,
  faAngleRight,
  faFolderPlus,
  faFilePdf,
  faBars,
  faSearch,
  faShip,
  faUpload,
  faTasks,
  faUsersCog,
  faMapMarkedAlt,
  faClipboardCheck,
  faWrench,
  faBook,
  faPowerOff,
  faTrash,
  faStar,
  faUser,
  faExclamationTriangle,
  faPaperPlane,
  faPlus,
  faMinus,
  faSortAmountUp,
  faSortAmountDown,
  faSpinner
} from "@fortawesome/free-solid-svg-icons";
import { faAdn } from "@fortawesome/free-brands-svg-icons";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
import VueClipboard from "vue-clipboard2";

library.add(
  faEye,
  faEyeSlash,
  faCopy,
  faCheck,
  faTimes,
  faInfo,
  faLayerGroup,
  faChartArea,
  faRuler,
  faDrawPolygon,
  faAngleDown,
  faAngleUp,
  faAngleLeft,
  faAngleRight,
  faFolderPlus,
  faFilePdf,
  faBars,
  faSearch,
  faShip,
  faUpload,
  faTasks,
  faUsersCog,
  faMapMarkedAlt,
  faClipboardCheck,
  faWrench,
  faBook,
  faPowerOff,
  faTrash,
  faStar,
  faAdn,
  faUser,
  faExclamationTriangle,
  faPaperPlane,
  faPlus,
  faMinus,
  faSortAmountUp,
  faSortAmountDown,
  faSpinner
);
Vue.component("font-awesome-icon", FontAwesomeIcon);

Vue.use(VTooltip);

const options = {
  toast: {
    position: SnotifyPosition.centerBottom
  }
};

Vue.use(Snotify, options);

Vue.use(VueClipboard);

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;