68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
/* global Vue, VueRouter, Vuex, httpVueLoaderEx */
|
|
|
|
var router = new VueRouter({
|
|
linkActiveClass: "active",
|
|
linkExactActiveClass: "",
|
|
mode: "history",
|
|
routes: [
|
|
{
|
|
path: "/", component: httpVueLoaderEx("/core-components/app-index.vue", "NG-Tracker")
|
|
},
|
|
{
|
|
path: "/papers/papers", component: httpVueLoaderEx("/papers/paper-list.vue", "PaperList")
|
|
},
|
|
{
|
|
path: "/papers/dashboard", component: httpVueLoaderEx("/papers/paper-dashboard.vue", "PaperDashboard")
|
|
},
|
|
{
|
|
path: "/*", component: httpVueLoaderEx("/core-components/page-not-found.vue", "PageNotFound")
|
|
}
|
|
]
|
|
});
|
|
|
|
var store = new Vuex.Store({
|
|
state: {
|
|
messages: []
|
|
},
|
|
mutations: {
|
|
addMessage: function (state, message) {
|
|
state.messages.push({
|
|
id: state.messages.length === 0 ? 0 : state.messages[state.messages.length - 1],
|
|
text: message.text,
|
|
type: message.type || "info"
|
|
});
|
|
},
|
|
removeMessage: function (state, messageId) {
|
|
if (messageId < 0 || messageId >= state.messages.length) {
|
|
return;
|
|
}
|
|
state.messages.splice(messageId, 1);
|
|
}
|
|
},
|
|
actions: {
|
|
addInfoMessage: function (context, message) {
|
|
context.commit("addMessage", message);
|
|
},
|
|
addSuccessMessage: function (context, message) {
|
|
context.commit("addMessage", {text: message, type: "success"});
|
|
},
|
|
addWarningMessage: function (context, message) {
|
|
context.commit("addMessage", {text: message, type: "warning"});
|
|
},
|
|
addDangerMessage: function (context, message) {
|
|
context.commit("addMessage", {text: message, type: "danger"});
|
|
},
|
|
removeMessage: function (context, messageId) {
|
|
context.commit("removeMessage", messageId);
|
|
}
|
|
}
|
|
});
|
|
|
|
new Vue({
|
|
el: "#ng-tracker-app",
|
|
router: router,
|
|
store: store,
|
|
components: {
|
|
"app": httpVueLoaderEx("/core-components/app.vue")
|
|
}
|
|
}); |