Add gr-embed-dashboard element

In Polymer 1.x, the Shadow DOM polyfill requires using the Polymer.dom
API to achieve distribution. There is no way to notify a DOM mutation
happened after the fact. So, when embedding Polymer 1.x elements inside
an app that is not itself a Polymer app, placing arbitrary content
inside a <slot> is not possible.

This element is intended to be a workaround for the duration of
PolyGerrit's existence on Polymer 1.x to allow for slotting of the
<gr-create-change-help> element into the "empty-outgoing" slot of the
<gr-change-list>.

Change-Id: I32a5031df6fff10e3c441ecdf87c7b50d2073e34
This commit is contained in:
Kasper Nilsson 2018-10-19 10:48:20 -07:00
parent efc6ac8905
commit 3a5019e15e
3 changed files with 71 additions and 2 deletions

View File

@ -0,0 +1,41 @@
<!--
@license
Copyright (C) 2018 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.
-->
<link rel="import" href="../../../bower_components/polymer/polymer.html">
<link rel="import" href="../../change-list/gr-change-list/gr-change-list.html">
<link rel="import" href="../gr-create-change-help/gr-create-change-help.html">
<dom-module id="gr-embed-dashboard">
<template>
<gr-change-list
show-star
account="[[account]]"
preferences="[[preferences]]"
sections="[[sections]]">
<div id="emptyOutgoing" slot="empty-outgoing">
<template is="dom-if" if="[[showNewUserHelp]]">
<gr-create-change-help></gr-create-change-help>
</template>
<template is="dom-if" if="[[!showNewUserHelp]]">
No changes
</template>
</div>
</gr-change-list>
</template>
<script src="gr-embed-dashboard.js"></script>
</dom-module>

View File

@ -0,0 +1,29 @@
/**
* @license
* Copyright (C) 2018 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.
*/
(function() {
'use strict';
Polymer({
is: 'gr-embed-dashboard',
properties: {
account: Object,
sections: Array,
preferences: Object,
showNewUserHelp: Boolean,
},
});
})();

View File

@ -25,7 +25,6 @@ limitations under the License.
<link rel="import" href="../elements/core/gr-search-bar/gr-search-bar.html">
<link rel="import" href="../elements/diff/gr-diff-view/gr-diff-view.html">
<link rel="import" href="../elements/change-list/gr-change-list-view/gr-change-list-view.html">
<link rel="import" href="../elements/change-list/gr-change-list/gr-change-list.html">
<link rel="import" href="../elements/change-list/gr-create-change-help/gr-create-change-help.html">
<link rel="import" href="../elements/change-list/gr-dashboard-view/gr-dashboard-view.html">
<link rel="import" href="../elements/change-list/gr-embed-dashboard/gr-embed-dashboard.html">
<link rel="import" href="../styles/themes/app-theme.html">