open-consul/ui/javascripts/app/router.js

60 lines
1.8 KiB
JavaScript

window.App = Ember.Application.create({
rootElement: "#app",
currentPath: ''
});
Ember.Application.initializer({
name: 'settings',
initialize: function(container, application) {
application.set('settings', App.Settings.create());
if (App.get('settings.token') === undefined) {
App.set('settings.token', '');
}
}
});
App.Router.map(function() {
// Our parent datacenter resource sets the namespace
// for the entire application
this.resource("dc", {path: "/:dc"}, function() {
// Services represent a consul service
this.resource("services", { path: "/services" }, function(){
// Show an individual service
this.route("show", { path: "/*name" });
});
// Nodes represent a consul node
this.resource("nodes", { path: "/nodes" }, function() {
// Show an individual node
this.route("show", { path: "/:name" });
});
// Key/Value
this.resource("kv", { path: "/kv" }, function(){
this.route("index", { path: "/" });
// List keys. This is more like an index
this.route("show", { path: "/*key" });
// Edit a specific key
this.route("edit", { path: "/*key/edit" });
});
// ACLs
this.resource("acls", { path: "/acls" }, function(){
this.route("show", { path: "/:id" });
});
// Shows a page explaining that ACLs haven't been set-up
this.route("aclsdisabled", { path: "/aclsdisabled" });
// Shows a page explaining that the ACL token being used isn't
// authorized
this.route("unauthorized", { path: "/unauthorized" });
});
// Shows a datacenter picker. If you only have one
// it just redirects you through.
this.route("index", { path: "/" });
// The settings page is global.
this.resource("settings", { path: "/settings" });
});