Index: server/static/rpcexplorer/rpc-service-list.html |
diff --git a/server/static/rpcexplorer/rpc-service-list.html b/server/static/rpcexplorer/rpc-service-list.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fd567869f6158ce3f236e4193cce4d3b3672e92e |
--- /dev/null |
+++ b/server/static/rpcexplorer/rpc-service-list.html |
@@ -0,0 +1,63 @@ |
+<!-- |
+ Copyright 2016 The Chromium Authors. All rights reserved. |
+ Use of this source code is governed by a BSD-style license that can be |
+ found in the LICENSE file. |
+ --> |
+ |
+<link rel="import" href="../bower_components/polymer/polymer.html"> |
+<link rel="import" |
+ href="../bower_components/html5-history-anchor/html5-history-anchor.html"> |
+ |
+<link rel="import" href="rpc-descriptor-util.html"> |
+ |
+<!-- The `rpc-service-list` is a service list page --> |
+<dom-module id="rpc-service-list"> |
+ <template> |
+ <p>Services:</p> |
+ <ul> |
+ <template is="dom-repeat" items="[[services]]" as="service"> |
+ <li> |
+ <a is="html5-history-anchor" pushstate popstate |
+ href="[[service.name]]/">[[service.name]]</a> |
+ <span class="text-muted comment">[[service.comments]]</span> |
+ </li> |
+ </template> |
+ </ul> |
+ </template> |
+ <script> |
+ 'use strict'; |
+ |
+ Polymer({ |
+ is: 'rpc-service-list', |
+ |
+ properties: { |
+ /** @type {FileDescriptorSet} |
+ description: Object, |
+ |
+ /** @type {Array.<string>} */ |
+ serviceNames: Array, |
+ |
+ /** @type {Array.<{name: string, comment: string}>} */ |
+ services: { |
+ type: Array, |
+ computed: '_resolveServices(description, serviceNames)' |
+ } |
+ }, |
+ |
+ _resolveServices: function(desc, names) { |
+ var result = []; |
+ for (var i = 0; i < names.length; i++) { |
+ var svc = rpcExplorer.descUtil.resolve(desc, names[i]); |
+ if (svc && svc.type === 'service') { |
+ var info = svc.desc.source_code_info; |
+ result.push({ |
+ name: names[i], |
+ comments: info && info.leading_comments |
+ }); |
+ } |
+ } |
+ return result; |
+ } |
+ }); |
+ </script> |
+</dom-module> |