UNPKG

node-atlas

Version:

Progressive realtime web framework config-driven or API-driven for building easily serverless files, websites and webapps component-based and service-oriented.

69 lines (65 loc) 2.14 kB
/* jshint browser: true */ /* global NA, Vue, VueRouter, require */ var lang = document.getElementsByTagName("html")[0].getAttribute("lang"), routes = require("routes.json!json"), common = require("variations/common.json!json"), model = require("views-models/app.js"), template = require("views-models/app.htm!text"), webconfig = { routes: routes }, mixin = { beforeRouteEnter: function (to, from, next) { next(function (vm) { document.title = vm.meta.title; }); } }, vmHome = Vue.component('home', function (resolve) { var template = require("views-models/home.htm!text"), specific = require("variations/home.json!json"); resolve(require('views-models/home.js')(specific, template, mixin)); }), vmProjects = Vue.component('projects', function (resolve) { var template = require("views-models/projects.htm!text"), specific = require("variations/projects.json!json"); resolve(require('views-models/projects.js')(specific, template, mixin)); }), vmContact = Vue.component('contact', function (resolve) { var template = require("views-models/contact.htm!text"), specific = require("variations/contact.json!json"); resolve(require('views-models/contact.js')(specific, template, mixin)); }), vmError = Vue.component('error', function (resolve) { var template = require("views-models/error.htm!text"), specific = require("variations/error.json!json"); resolve(require('views-models/error.js')(specific, template, mixin)); }), router = new VueRouter({ mode: 'history', base: '/', routes: [{ path: routes["home_" + lang].url, component: vmHome, props: ['common'] }, { path: routes["projects_" + lang].url, component: vmProjects, props: ['common'] }, { path: routes["contact_" + lang].url, component: vmContact, props: ['common'] }, { path: '/*', component: vmError, props: ['common'] }] }), vm; vm = new Vue(model(common, template, router, webconfig)); vm.$mount('.layout'); NA.socket.emit("init-app"); NA.socket.on("init-app", function (me) { vm.me = me; });