Refactor create change help into element

Gerrit may, in the embedded scenario, need to redefine the flow that
occurs when the "Create Change" button is tapped.

Change-Id: I034abf458cb6b79bff650da9a0311c6e82508eee
This commit is contained in:
Kasper Nilsson 2018-10-04 13:38:36 -07:00
parent d764d2abda
commit 57c1a28741
7 changed files with 184 additions and 55 deletions

View File

@ -0,0 +1,87 @@
<!--
@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="../../../styles/shared-styles.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-icons/gr-icons.html">
<dom-module id="gr-create-change-help">
<template>
<style include="shared-styles">
:host {
display: block;
}
#graphic,
#help {
display: inline-block;
margin: .5em;
}
#graphic #circle {
align-items: center;
background-color: var(--chip-background-color);
border-radius: 50%;
display: flex;
height: 10em;
justify-content: center;
width: 10em;
}
#graphic iron-icon {
color: #9e9e9e;
height: 5em;
width: 5em;
}
#graphic p {
color: var(--deemphasized-text-color);
text-align: center;
}
#help {
vertical-align: top;
}
#help h1 {
font-size: var(--font-size-large);
}
#help p {
max-width: 35em;
}
@media only screen and (max-width: 50em) {
#graphic {
display: none;
}
}
</style>
<div id="graphic">
<div id="circle">
<iron-icon id="icon" icon="gr-icons:zeroState"></iron-icon>
</div>
<p>
No outgoing changes yet
</p>
</div>
<div id="help">
<h1>Push your first changes for code review</h1>
<p>
Pushing a change for review is easy, but a little different from
other git code review tools. Click on the `Create Change' button
and follow the step by step instructions.
</p>
<gr-button on-tap="_handleCreateTap">Create Change</gr-button>
</div>
</template>
<script src="gr-create-change-help.js"></script>
</dom-module>

View File

@ -0,0 +1,34 @@
/**
* @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-create-change-help',
/**
* Fired when the "Create change" button is tapped.
*
* @event create-tap
*/
_handleCreateTap(e) {
e.preventDefault();
this.dispatchEvent(new CustomEvent('create-tap'));
},
});
})();

View File

@ -0,0 +1,50 @@
<!DOCTYPE html>
<!--
@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.
-->
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
<title>gr-create-change-help</title>
<script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script>
<script src="../../../bower_components/web-component-tester/browser.js"></script>
<link rel="import" href="../../../test/common-test-setup.html"/>
<script src="../../../scripts/util.js"></script>
<link rel="import" href="gr-create-change-help.html">
<script>void(0);</script>
<test-fixture id="basic">
<template>
<gr-create-change-help></gr-create-change-help>
</template>
</test-fixture>
<script>
suite('gr-create-change-help tests', () => {
let element;
setup(() => {
element = fixture('basic');
});
test('Create change tap', done => {
element.addEventListener('create-tap', () => done());
MockInteractions.tap(element.$$('gr-button'));
});
});
</script>

View File

@ -22,10 +22,10 @@ limitations under the License.
<link rel="import" href="../../core/gr-reporting/gr-reporting.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-dialog/gr-dialog.html">
<link rel="import" href="../../shared/gr-icons/gr-icons.html">
<link rel="import" href="../../shared/gr-overlay/gr-overlay.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
<link rel="import" href="../gr-create-commands-dialog/gr-create-commands-dialog.html">
<link rel="import" href="../gr-create-change-help/gr-create-change-help.html">
<link rel="import" href="../gr-create-destination-dialog/gr-create-destination-dialog.html">
<link rel="import" href="../gr-user-header/gr-user-header.html">
@ -65,45 +65,10 @@ limitations under the License.
#emptyOutgoing {
display: block;
}
#emptyOutgoing #graphic,
#emptyOutgoing #help {
display: inline-block;
margin: .5em;
}
#emptyOutgoing #graphic #circle {
align-items: center;
background-color: var(--chip-background-color);
border-radius: 50%;
display: flex;
height: 10em;
justify-content: center;
width: 10em;
}
#emptyOutgoing #graphic iron-icon {
color: #9e9e9e;
height: 5em;
width: 5em;
}
#emptyOutgoing #graphic p {
color: var(--deemphasized-text-color);
text-align: center;
}
#emptyOutgoing #help {
vertical-align: top;
}
#emptyOutgoing #help h1 {
font-size: var(--font-size-large);
}
#emptyOutgoing #help p {
max-width: 35em;
}
@media only screen and (max-width: 50em) {
.loading {
padding: 0 var(--default-horizontal-margin);
}
#emptyOutgoing #graphic {
display: none;
}
}
</style>
<div class$="banner [[_computeBannerClass(_showDraftsBanner)]]">
@ -133,24 +98,8 @@ limitations under the License.
on-toggle-star="_handleToggleStar"
on-toggle-reviewed="_handleToggleReviewed">
<div id="emptyOutgoing" slot="empty-outgoing">
<template is="dom-if" if="_showNewUserHelp">
<div id="graphic">
<div id="circle">
<iron-icon id="icon" icon="gr-icons:zeroState"></iron-icon>
</div>
<p>
No outgoing changes yet
</p>
</div>
<div id="help">
<h1>Push your first changes for code review</h1>
<p>
Pushing a change for review is easy, but a little different from
other git code review tools. Click on the `Create Change' button
and follow the step by step instructions.
</p>
<gr-button on-tap="_createChangeTap">Create Change</gr-button>
</div>
<template is="dom-if" if="[[_showNewUserHelp]]">
<gr-create-change-help on-create-tap="createChangeTap"></gr-create-change-help>
</template>
</div>
</gr-change-list>

View File

@ -42,6 +42,13 @@
type: Object,
},
createChangeTap: {
type: Function,
value() {
return this._createChangeTap.bind(this);
},
},
_results: Array,
/**
@ -267,7 +274,7 @@
return Gerrit.Nav.getUrlForSearchQuery('has:draft -is:open');
},
_createChangeTap() {
_createChangeTap(e) {
this.$.destinationDialog.open();
},

View File

@ -26,5 +26,6 @@ limitations under the License.
<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="../styles/themes/app-theme.html">

View File

@ -57,6 +57,7 @@ limitations under the License.
'change-list/gr-change-list-view/gr-change-list-view_test.html',
'change-list/gr-change-list/gr-change-list_test.html',
'change-list/gr-create-commands-dialog/gr-create-commands-dialog_test.html',
'change-list/gr-create-change-help/gr-create-change-help_test.html',
'change-list/gr-dashboard-view/gr-dashboard-view_test.html',
'change-list/gr-user-header/gr-user-header_test.html',
'change/gr-account-entry/gr-account-entry_test.html',