diff --git a/htrace-htraced/src/web/app/models/server_info.js b/htrace-htraced/src/web/app/models/server_info.js new file mode 100644 index 0000000..0be554f --- /dev/null +++ b/htrace-htraced/src/web/app/models/server_info.js @@ -0,0 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +// Span model +app.ServerInfo = Backbone.Model.extend({ + url: "/server/info" +}) diff --git a/htrace-htraced/src/web/app/setup.js b/htrace-htraced/src/web/app/setup.js index beb06db..ef11a25 100644 --- a/htrace-htraced/src/web/app/setup.js +++ b/htrace-htraced/src/web/app/setup.js @@ -28,6 +28,7 @@ var BaseView = Backbone.Marionette.LayoutView.extend({ var Router = Backbone.Marionette.AppRouter.extend({ "routes": { "": "init", + "!/about": "about", "!/search(?:query)": "search", "!/spans/:id": "span", "!/swimlane/:id": "swimlane", @@ -37,12 +38,22 @@ var Router = Backbone.Marionette.AppRouter.extend({ "initialize": function() { // Collection this.spansCollection = new app.Spans(); + this.serverInfo = new app.ServerInfo(); }, "init": function() { Backbone.history.navigate("!/search", {"trigger": true}); }, + "about": function() { + var serverInfo = this.serverInfo; + this.serverInfo.fetch({"success": function() { + app.root.app.show(new app.AboutView({ + "model" : serverInfo + })); + }}) + }, + "search": function(query) { app.root.app.show(new app.SearchView()); diff --git a/htrace-htraced/src/web/app/views/about/about.js b/htrace-htraced/src/web/app/views/about/about.js new file mode 100644 index 0000000..49ac7c3 --- /dev/null +++ b/htrace-htraced/src/web/app/views/about/about.js @@ -0,0 +1,22 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +app.AboutView = Backbone.Marionette.ItemView.extend({ + "template": "#about-layout-template", +}); diff --git a/htrace-htraced/src/web/index.html b/htrace-htraced/src/web/index.html index d403860..33f2f46 100644 --- a/htrace-htraced/src/web/index.html +++ b/htrace-htraced/src/web/index.html @@ -40,6 +40,13 @@ @@ -48,6 +55,12 @@ + + + +