Enable storing of custom dashboards for projects

Custom dashboards can now be stored in the projects
`refs/meta/dashboards/*` branches. A REST endpoint was added to
retrieve the custom dashboards for a project.

Change-Id: I1be4c4b8856f4edd279e752d5b4004f9a548bd2a
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
Edwin Kempin
2012-11-12 23:03:36 +01:00
parent f948259eb7
commit b2efe218a5
8 changed files with 435 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
// Copyright (C) 2012 The Android Open Source Project
//
// Licensed 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.
package com.google.gerrit.client.dashboards;
import com.google.gwt.core.client.JavaScriptObject;
public class DashboardInfo extends JavaScriptObject {
public final native String id() /*-{ return this.id; }-*/;
public final native String name() /*-{ return this.dashboard_name; }-*/;
public final native String refName() /*-{ return this.ref_name; }-*/;
public final native String projectName() /*-{ return this.project_name; }-*/;
public final native String description() /*-{ return this.description; }-*/;
public final native String parameters() /*-{ return this.parameters; }-*/;
protected DashboardInfo() {
}
}

View File

@@ -0,0 +1,33 @@
// Copyright (C) 2012 The Android Open Source Project
//
// Licensed 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.
package com.google.gerrit.client.dashboards;
import com.google.gerrit.client.rpc.NativeMap;
import com.google.gerrit.client.rpc.RestApi;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gwtjsonrpc.common.AsyncCallback;
import com.google.gwt.http.client.URL;
/** Dashboards available from {@code /dashboards/}. */
public class DashboardMap extends NativeMap<DashboardInfo> {
public static void allOnProject(Project.NameKey project,
AsyncCallback<DashboardMap> callback) {
new RestApi("/dashboards/project/" + URL.encode(project.get()).replaceAll("[?]", "%3F"))
.send(NativeMap.copyKeysIntoChildren(callback));
}
protected DashboardMap() {
}
}