Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Unified Diff: server/static/rpcexplorer/rpc-explorer.html

Issue 1695893004: RPC Explorer (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/luci-go@rpcepxlorer-deps
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: server/static/rpcexplorer/rpc-explorer.html
diff --git a/server/static/rpcexplorer/rpc-explorer.html b/server/static/rpcexplorer/rpc-explorer.html
new file mode 100644
index 0000000000000000000000000000000000000000..01991259037390556a63608737665ca31594b1ab
--- /dev/null
+++ b/server/static/rpcexplorer/rpc-explorer.html
@@ -0,0 +1,105 @@
+<!--
+ ~ // 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="/static/common/third_party/app-router/app-router.html">
+<link rel="import" href="/static/common/third_party/polymer/polymer.html">
+
+<link rel="import" href="rpc-descriptor-util.html">
+<link rel="import" href="rpc-method.html">
+<link rel="import" href="rpc-service-list.html">
+<link rel="import" href="rpc-service.html">
+
+
+<!-- The `rpc-explorer` is the top-level element of RPC Explorer -->
+<dom-module id="rpc-explorer">
+ <template>
+ <style>
+ li[hidden] {
+ display: none;
+ }
+ </style>
+
+ <!-- Load server description -->
+ <rpc-call auto service="discovery.Discovery" method="Describe"
+ last-response="{{serverDescription}}">
+ </rpc-call>
+
+ <div class="navbar navbar-default" role="navigation">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
+ <span class="sr-only">Toggle navigation</span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ <span class="icon-bar"></span>
+ </button>
+ <span class="navbar-brand">
+ <span id="progress-spinner" class="not-spinning">
+ <a href="#">RPC Explorer</a>
+ </span>
+ </span>
+ </div>
+ </div>
+
+ <ol class="breadcrumb">
+ <li>
+ <a href="#">Home</a>
+ </li>
+ <li hidden="{{!service}}">
+ <a href="#/services/[[service]]">[[service]]</a>
+ </li>
+ <li hidden="{{!method}}">
+ <a href="#/services/[[service]]/[[method]">[[method]]</a>
+ </li>
+ </ol>
+
+ <app-router id="router" trailing-slash="ignore"
+ on-activate-route-end="_onRouted"
+ on-before-data-binding="_onRouteBinding">
+ <app-route path="/services" element="rpc-service-list"></app-route>
+ <app-route path="/services/:service" element="rpc-service"></app-route>
+ <app-route path="/services/:service/:method" element="rpc-method"></app-route>
+ <app-route path="*" redirect="/services"></app-route>
+ </app-router>
+ </template>
+
+ <script>
+ 'use strict';
+
+ Polymer({
+ is: 'rpc-explorer',
+ properties: {
+ service: String,
+ method: String,
+ serverDescription: {
+ type: Object, // DescribeResponse message
+ observer: '_onServerDescriptionChanged'
+ }
+ },
+
+ _onRouteBinding: function(e) {
+ if (this.serverDescription) {
+ e.detail.model.description = this.serverDescription.description;
+ e.detail.model.serviceNames = this.serverDescription.services;
+ }
+ },
+
+ _onServerDescriptionChanged: function(e) {
+ if (this.serverDescription) {
+ rpcExplorer.descUtil.annotateSet(this.serverDescription.description);
+ // Recreate route model.
+ this.$.router.go(document.location.hash.substring(1));
+ }
+ },
+
+ _onRouted: function(e) {
+ var model = e.detail.model || {};
+ this.service = model.service || '';
+ this.method = model.method || '';
+ }
+ });
+ </script>
+</dom-module>

Powered by Google App Engine
This is Rietveld 408576698