2019-05-09 04:48:10 +00:00
|
|
|
import Vue from "vue";
|
|
|
|
import Vuetify from "vuetify";
|
|
|
|
import Router from "vue-router";
|
2019-05-20 23:39:52 +00:00
|
|
|
import PhotoPrism from "photoprism.vue";
|
2019-05-19 16:58:30 +00:00
|
|
|
import Routes from "routes";
|
2019-05-09 04:48:10 +00:00
|
|
|
import Api from "common/api";
|
|
|
|
import Config from "common/config";
|
2019-05-21 09:54:39 +00:00
|
|
|
import Clipboard from "common/clipboard";
|
2019-05-28 00:50:22 +00:00
|
|
|
import Components from "component/components";
|
|
|
|
import Maps from "maps/components";
|
2019-05-09 04:48:10 +00:00
|
|
|
import Alert from "common/alert";
|
2019-05-19 18:13:19 +00:00
|
|
|
import Viewer from "common/viewer";
|
2019-05-09 04:48:10 +00:00
|
|
|
import Session from "common/session";
|
|
|
|
import Event from "pubsub-js";
|
2019-06-09 02:37:02 +00:00
|
|
|
import VueMoment from "vue-moment";
|
|
|
|
import VueInfiniteScroll from "vue-infinite-scroll";
|
2019-05-09 04:48:10 +00:00
|
|
|
import VueFullscreen from "vue-fullscreen";
|
2019-06-09 02:37:02 +00:00
|
|
|
import VueFilters from "vue2-filters";
|
2018-07-27 15:31:39 +00:00
|
|
|
|
2019-05-21 09:54:39 +00:00
|
|
|
// Initialize helpers
|
2018-07-27 15:31:39 +00:00
|
|
|
const session = new Session(window.localStorage);
|
2018-09-13 08:23:06 +00:00
|
|
|
const config = new Config(window.localStorage, window.appConfig);
|
2019-05-21 09:54:39 +00:00
|
|
|
const viewer = new Viewer();
|
|
|
|
const clipboard = new Clipboard(window.localStorage, "photo_clipboard");
|
2018-07-27 15:31:39 +00:00
|
|
|
|
2019-05-21 09:54:39 +00:00
|
|
|
// Assign helpers to VueJS prototype
|
2018-07-27 15:31:39 +00:00
|
|
|
Vue.prototype.$event = Event;
|
|
|
|
Vue.prototype.$alert = Alert;
|
2019-05-21 09:54:39 +00:00
|
|
|
Vue.prototype.$viewer = viewer;
|
2018-07-27 15:31:39 +00:00
|
|
|
Vue.prototype.$session = session;
|
|
|
|
Vue.prototype.$api = Api;
|
2018-09-13 08:23:06 +00:00
|
|
|
Vue.prototype.$config = config;
|
2019-05-21 09:54:39 +00:00
|
|
|
Vue.prototype.$clipboard = clipboard;
|
2018-07-27 15:31:39 +00:00
|
|
|
|
2019-05-07 00:05:01 +00:00
|
|
|
// Register Vuetify
|
2018-09-06 21:58:16 +00:00
|
|
|
Vue.use(Vuetify, {
|
|
|
|
theme: {
|
2019-05-09 04:48:10 +00:00
|
|
|
primary: "#FFD600",
|
|
|
|
secondary: "#b0bec5",
|
|
|
|
accent: "#00B8D4",
|
|
|
|
error: "#E57373",
|
|
|
|
info: "#00B8D4",
|
|
|
|
success: "#00BFA5",
|
|
|
|
warning: "#FFD600",
|
|
|
|
delete: "#E57373",
|
|
|
|
love: "#EF5350",
|
2018-09-06 21:58:16 +00:00
|
|
|
},
|
|
|
|
});
|
|
|
|
|
2019-05-07 00:05:01 +00:00
|
|
|
// Register other VueJS plugins
|
2019-06-09 02:37:02 +00:00
|
|
|
Vue.use(VueMoment);
|
|
|
|
Vue.use(VueInfiniteScroll);
|
2018-09-25 07:45:06 +00:00
|
|
|
Vue.use(VueFullscreen);
|
2019-06-09 02:37:02 +00:00
|
|
|
Vue.use(VueFilters);
|
2019-05-07 00:05:01 +00:00
|
|
|
Vue.use(Components);
|
2019-05-08 04:47:30 +00:00
|
|
|
Vue.use(Maps);
|
2018-07-27 15:31:39 +00:00
|
|
|
Vue.use(Router);
|
|
|
|
|
2019-05-07 00:05:01 +00:00
|
|
|
// Configure client-side routing
|
2018-07-27 15:31:39 +00:00
|
|
|
const router = new Router({
|
2019-05-19 16:58:30 +00:00
|
|
|
routes: Routes,
|
2019-05-09 04:48:10 +00:00
|
|
|
mode: "history",
|
2018-07-27 15:31:39 +00:00
|
|
|
saveScrollPosition: true,
|
|
|
|
});
|
|
|
|
|
2019-05-07 00:05:01 +00:00
|
|
|
// Run app
|
2018-07-27 15:31:39 +00:00
|
|
|
/* eslint-disable no-unused-vars */
|
|
|
|
const app = new Vue({
|
2019-05-19 16:58:30 +00:00
|
|
|
el: "#photoprism",
|
2018-07-27 15:31:39 +00:00
|
|
|
router,
|
2019-05-19 16:58:30 +00:00
|
|
|
render: h => h(PhotoPrism),
|
2019-05-07 00:05:01 +00:00
|
|
|
});
|