Merge "Fix ReceiveCommitsAdvertiseRefsHook, add docs and test coverage"
diff --git a/.bazelversion b/.bazelversion
index cffeade..1b58cc1 100644
--- a/.bazelversion
+++ b/.bazelversion
@@ -1 +1 @@
-0.27.0rc5
\ No newline at end of file
+0.27.0
diff --git a/WORKSPACE b/WORKSPACE
index 55e5fb8..855309f 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -66,7 +66,7 @@
load("@bazel_skylib//lib:versions.bzl", "versions")
-versions.check(minimum_bazel_version = "0.25.0")
+versions.check(minimum_bazel_version = "0.26.1")
load("@io_bazel_rules_closure//closure:defs.bzl", "closure_repositories")
@@ -83,8 +83,11 @@
# Golang support for PolyGerrit local dev server.
http_archive(
name = "io_bazel_rules_go",
- sha256 = "6776d68ebb897625dead17ae510eac3d5f6342367327875210df44dbe2aeeb19",
- url = "https://github.com/bazelbuild/rules_go/releases/download/0.17.1/rules_go-0.17.1.tar.gz",
+ sha256 = "f04d2373bcaf8aa09bccb08a98a57e721306c8f6043a2a0ee610fd6853dcde3d",
+ urls = [
+ "https://storage.googleapis.com/bazel-mirror/github.com/bazelbuild/rules_go/releases/download/0.18.6/rules_go-0.18.6.tar.gz",
+ "https://github.com/bazelbuild/rules_go/releases/download/0.18.6/rules_go-0.18.6.tar.gz",
+ ],
)
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
diff --git a/java/com/google/gerrit/httpd/raw/IndexServlet.java b/java/com/google/gerrit/httpd/raw/IndexServlet.java
index 978f3eb..4c9fc3b 100644
--- a/java/com/google/gerrit/httpd/raw/IndexServlet.java
+++ b/java/com/google/gerrit/httpd/raw/IndexServlet.java
@@ -25,7 +25,7 @@
import com.google.template.soy.SoyFileSet;
import com.google.template.soy.data.SanitizedContent;
import com.google.template.soy.data.UnsafeSanitizedContentOrdainer;
-import com.google.template.soy.tofu.SoyTofu;
+import com.google.template.soy.jbcsrc.api.SoySauce;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URISyntaxException;
@@ -42,7 +42,7 @@
@Nullable private final String cdnPath;
@Nullable private final String faviconPath;
private final GerritApi gerritApi;
- private final SoyTofu soyTofu;
+ private final SoySauce soySauce;
private final Function<String, SanitizedContent> urlOrdainer;
IndexServlet(
@@ -54,11 +54,11 @@
this.cdnPath = cdnPath;
this.faviconPath = faviconPath;
this.gerritApi = gerritApi;
- this.soyTofu =
+ this.soySauce =
SoyFileSet.builder()
.add(Resources.getResource("com/google/gerrit/httpd/raw/PolyGerritIndexHtml.soy"))
.build()
- .compileToTofu();
+ .compileTemplates();
this.urlOrdainer =
(s) ->
UnsafeSanitizedContentOrdainer.ordainAsSafe(
@@ -67,7 +67,7 @@
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse rsp) throws IOException {
- SoyTofu.Renderer renderer;
+ SoySauce.Renderer renderer;
try {
Map<String, String[]> parameterMap = req.getParameterMap();
// TODO(hiesel): Remove URL ordainer as parameter once Soy is consistent
@@ -75,9 +75,9 @@
IndexHtmlUtil.templateData(
gerritApi, canonicalUrl, cdnPath, faviconPath, parameterMap, urlOrdainer);
renderer =
- soyTofu
- .newRenderer("com.google.gerrit.httpd.raw.Index")
- .setContentKind(SanitizedContent.ContentKind.HTML)
+ soySauce
+ .renderTemplate("com.google.gerrit.httpd.raw.Index")
+ .setExpectedContentKind(SanitizedContent.ContentKind.HTML)
.setData(templateData);
} catch (URISyntaxException | RestApiException e) {
throw new IOException(e);
@@ -87,7 +87,7 @@
rsp.setContentType("text/html");
rsp.setStatus(SC_OK);
try (OutputStream w = rsp.getOutputStream()) {
- w.write(renderer.render().getBytes(UTF_8));
+ w.write(renderer.render().get().getBytes(UTF_8));
}
}
}
diff --git a/java/com/google/gerrit/server/config/GerritGlobalModule.java b/java/com/google/gerrit/server/config/GerritGlobalModule.java
index 478cf8f..afe4e52 100644
--- a/java/com/google/gerrit/server/config/GerritGlobalModule.java
+++ b/java/com/google/gerrit/server/config/GerritGlobalModule.java
@@ -145,7 +145,7 @@
import com.google.gerrit.server.mail.send.FromAddressGenerator;
import com.google.gerrit.server.mail.send.FromAddressGeneratorProvider;
import com.google.gerrit.server.mail.send.InboundEmailRejectionSender;
-import com.google.gerrit.server.mail.send.MailSoyTofuProvider;
+import com.google.gerrit.server.mail.send.MailSoySauceProvider;
import com.google.gerrit.server.mail.send.MailTemplates;
import com.google.gerrit.server.mime.FileTypeRegistry;
import com.google.gerrit.server.mime.MimeUtilFileTypeRegistry;
@@ -192,7 +192,7 @@
import com.google.inject.Inject;
import com.google.inject.TypeLiteral;
import com.google.inject.internal.UniqueAnnotations;
-import com.google.template.soy.tofu.SoyTofu;
+import com.google.template.soy.jbcsrc.api.SoySauce;
import java.util.List;
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.transport.PostReceiveHook;
@@ -282,7 +282,7 @@
bind(ApprovalsUtil.class);
- bind(SoyTofu.class).annotatedWith(MailTemplates.class).toProvider(MailSoyTofuProvider.class);
+ bind(SoySauce.class).annotatedWith(MailTemplates.class).toProvider(MailSoySauceProvider.class);
bind(FromAddressGenerator.class).toProvider(FromAddressGeneratorProvider.class).in(SINGLETON);
bind(Boolean.class)
.annotatedWith(EnableReverseDnsLookup.class)
diff --git a/java/com/google/gerrit/server/mail/send/EmailArguments.java b/java/com/google/gerrit/server/mail/send/EmailArguments.java
index fe2f74b..ede5765 100644
--- a/java/com/google/gerrit/server/mail/send/EmailArguments.java
+++ b/java/com/google/gerrit/server/mail/send/EmailArguments.java
@@ -45,7 +45,7 @@
import com.google.gerrit.server.validators.OutgoingEmailValidationListener;
import com.google.inject.Inject;
import com.google.inject.Provider;
-import com.google.template.soy.tofu.SoyTofu;
+import com.google.template.soy.jbcsrc.api.SoySauce;
import java.util.List;
import org.eclipse.jgit.lib.Config;
import org.eclipse.jgit.lib.PersonIdent;
@@ -75,7 +75,7 @@
final ChangeQueryBuilder queryBuilder;
final ChangeData.Factory changeDataFactory;
- final SoyTofu soyTofu;
+ final SoySauce soySauce;
final EmailSettings settings;
final DynamicSet<OutgoingEmailValidationListener> outgoingEmailValidationListeners;
final Provider<InternalAccountQuery> accountQueryProvider;
@@ -105,7 +105,7 @@
AllProjectsName allProjectsName,
ChangeQueryBuilder queryBuilder,
ChangeData.Factory changeDataFactory,
- @MailTemplates SoyTofu soyTofu,
+ @MailTemplates SoySauce soySauce,
EmailSettings settings,
@SshAdvertisedAddresses List<String> sshAddresses,
SitePaths site,
@@ -134,7 +134,7 @@
this.allProjectsName = allProjectsName;
this.queryBuilder = queryBuilder;
this.changeDataFactory = changeDataFactory;
- this.soyTofu = soyTofu;
+ this.soySauce = soySauce;
this.settings = settings;
this.sshAddresses = sshAddresses;
this.site = site;
diff --git a/java/com/google/gerrit/server/mail/send/MailSoyTofuProvider.java b/java/com/google/gerrit/server/mail/send/MailSoySauceProvider.java
similarity index 90%
rename from java/com/google/gerrit/server/mail/send/MailSoyTofuProvider.java
rename to java/com/google/gerrit/server/mail/send/MailSoySauceProvider.java
index 3bb44c7..151567e 100644
--- a/java/com/google/gerrit/server/mail/send/MailSoyTofuProvider.java
+++ b/java/com/google/gerrit/server/mail/send/MailSoySauceProvider.java
@@ -22,17 +22,17 @@
import com.google.inject.ProvisionException;
import com.google.inject.Singleton;
import com.google.template.soy.SoyFileSet;
+import com.google.template.soy.jbcsrc.api.SoySauce;
import com.google.template.soy.shared.SoyAstCache;
-import com.google.template.soy.tofu.SoyTofu;
import java.io.IOException;
import java.io.Reader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
-/** Configures Soy Tofu object for rendering email templates. */
+/** Configures Soy Sauce object for rendering email templates. */
@Singleton
-public class MailSoyTofuProvider implements Provider<SoyTofu> {
+public class MailSoySauceProvider implements Provider<SoySauce> {
// Note: will fail to construct the tofu object if this array is empty.
private static final String[] TEMPLATES = {
@@ -82,19 +82,19 @@
private final SoyAstCache cache;
@Inject
- MailSoyTofuProvider(SitePaths site, SoyAstCache cache) {
+ MailSoySauceProvider(SitePaths site, SoyAstCache cache) {
this.site = site;
this.cache = cache;
}
@Override
- public SoyTofu get() throws ProvisionException {
+ public SoySauce get() throws ProvisionException {
SoyFileSet.Builder builder = SoyFileSet.builder();
builder.setSoyAstCache(cache);
for (String name : TEMPLATES) {
addTemplate(builder, name);
}
- return builder.build().compileToTofu();
+ return builder.build().compileTemplates();
}
private void addTemplate(SoyFileSet.Builder builder, String name) throws ProvisionException {
diff --git a/java/com/google/gerrit/server/mail/send/OutgoingEmail.java b/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
index db97f06..ef6b21d 100644
--- a/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
+++ b/java/com/google/gerrit/server/mail/send/OutgoingEmail.java
@@ -543,11 +543,12 @@
}
private String soyTemplate(String name, SanitizedContent.ContentKind kind) {
- return args.soyTofu
- .newRenderer("com.google.gerrit.server.mail.template." + name)
- .setContentKind(kind)
+ return args.soySauce
+ .renderTemplate("com.google.gerrit.server.mail.template." + name)
+ .setExpectedContentKind(kind)
.setData(soyContext)
- .render();
+ .render()
+ .get();
}
protected String textTemplate(String name) {
diff --git a/java/com/google/gerrit/server/schema/MysqlAccountPatchReviewStore.java b/java/com/google/gerrit/server/schema/MysqlAccountPatchReviewStore.java
index 35bf2cb..677b2de 100644
--- a/java/com/google/gerrit/server/schema/MysqlAccountPatchReviewStore.java
+++ b/java/com/google/gerrit/server/schema/MysqlAccountPatchReviewStore.java
@@ -38,7 +38,7 @@
@Override
public StorageException convertError(String op, SQLException err) {
- switch (getSQLStateInt(err)) {
+ switch (err.getErrorCode()) {
case 1022: // ER_DUP_KEY
case 1062: // ER_DUP_ENTRY
case 1169: // ER_DUP_UNIQUE;
diff --git a/package.json b/package.json
index 8a18318f..6b9a38d 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
"eslint-config-google": "^0.13.0",
"eslint-plugin-html": "^5.0.5",
"fried-twinkie": "^0.2.2",
+ "polylint": "^2.10.4",
"typescript": "^2.x.x",
"web-component-tester": "^6.5.0"
},
@@ -15,7 +16,8 @@
"start": "polygerrit-ui/run-server.sh",
"test": "WCT_HEADLESS_MODE=1 WCT_ARGS='--verbose -l chrome' ./polygerrit-ui/app/run_test.sh",
"eslint": "./node_modules/eslint/bin/eslint.js --ignore-pattern 'bower_components/' --ignore-pattern 'gr-linked-text' --ignore-pattern 'scripts/vendor' --ext .html,.js polygerrit-ui/app || exit 0",
- "test-template": "./polygerrit-ui/app/run_template_test.sh"
+ "test-template": "./polygerrit-ui/app/run_template_test.sh",
+ "polylint": "bazel test polygerrit-ui/app:polylint_test"
},
"repository": {
"type": "git",
diff --git a/polygerrit-ui/README.md b/polygerrit-ui/README.md
index 9ceda8c..a73f243 100644
--- a/polygerrit-ui/README.md
+++ b/polygerrit-ui/README.md
@@ -32,7 +32,6 @@
```sh
npm install
-sudo npm install -g polylint
```
It may complain about a missing `typescript@2.3.4` peer dependency, which is
@@ -175,6 +174,13 @@
```sh
bazel test //polygerrit-ui/app:polylint_test
```
+
+or
+
+```sh
+npm run polylint
+```
+
## Template Type Safety
Polymer elements are not type checked against the element definition, making it
trivial to break the display when refactoring or moving code. We now run
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html
index 398ed9c..cddbbf3 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.html
@@ -65,11 +65,11 @@
#addPermission,
#deleteBtn,
.editingRef .name,
- #editRefInput {
+ .editRefInput {
display: none;
}
.editing #editBtn,
- .editingRef #editRefInput {
+ .editingRef .editRefInput {
display: flex;
}
.deleted #deletedContainer {
@@ -100,12 +100,18 @@
<iron-icon id="icon" icon="gr-icons:create"></iron-icon>
</gr-button>
</div>
- <input
- id="editRefInput"
+ <iron-input
+ class="editRefInput"
bind-value="{{section.id}}"
- is="iron-input"
type="text"
on-input="_handleValueChange">
+ <input
+ class="editRefInput"
+ bind-value="{{section.id}}"
+ is="iron-input"
+ type="text"
+ on-input="_handleValueChange">
+ </iron-input>
<gr-button
link
id="deleteBtn"
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
index 41ce201..d771448 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section.js
@@ -214,9 +214,15 @@
delete this.section.value.deleted;
},
+ editRefInput() {
+ return Polymer.dom(this.root).querySelector(Polymer.Element ?
+ 'iron-input.editRefInput' :
+ 'input[is=iron-input].editRefInput');
+ },
+
editReference() {
this._editingRef = true;
- this.$.editRefInput.focus();
+ this.editRefInput().focus();
},
_isEditEnabled(canUpload, ownerOf, sectionId) {
diff --git a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
index 6b08ed3..5110dc1 100644
--- a/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
+++ b/polygerrit-ui/app/elements/admin/gr-access-section/gr-access-section_test.html
@@ -457,7 +457,7 @@
1);
});
- test('edit section reference', () => {
+ test('edit section reference', done => {
element.canUpload = true;
element.ownerOf = [];
element.section = {id: 'refs/for/bar', value: {permissions: {}}};
@@ -466,14 +466,16 @@
assert.isTrue(element.$.section.classList.contains('editing'));
assert.isFalse(element._editingRef);
MockInteractions.tap(element.$.editBtn);
- element.$.editRefInput.bindValue='new/ref';
- flushAsynchronousOperations();
- assert.equal(element.section.id, 'new/ref');
- assert.isTrue(element._editingRef);
- assert.isTrue(element.$.section.classList.contains('editingRef'));
- element.editing = false;
- assert.isFalse(element._editingRef);
- assert.equal(element.section.id, 'refs/for/bar');
+ element.editRefInput().bindValue='new/ref';
+ setTimeout(() => {
+ assert.equal(element.section.id, 'new/ref');
+ assert.isTrue(element._editingRef);
+ assert.isTrue(element.$.section.classList.contains('editingRef'));
+ element.editing = false;
+ assert.isFalse(element._editingRef);
+ assert.equal(element.section.id, 'refs/for/bar');
+ done();
+ });
});
test('_handleValueChange', () => {
diff --git a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.html b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.html
index c448f5b..b2a3105 100644
--- a/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.html
+++ b/polygerrit-ui/app/elements/admin/gr-admin-group-list/gr-admin-group-list.html
@@ -18,7 +18,6 @@
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="../../../behaviors/gr-list-view-behavior/gr-list-view-behavior.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-table-styles.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../core/gr-navigation/gr-navigation.html">
diff --git a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.html b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.html
index 252dcfd..518905c 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.html
+++ b/polygerrit-ui/app/elements/admin/gr-create-change-dialog/gr-create-change-dialog.html
@@ -69,23 +69,33 @@
<section class$="[[_computeBranchClass(baseChange)]]">
<span class="title">Provide base commit sha1 for change</span>
<span class="value">
- <input
- is="iron-input"
- id="baseCommitInput"
+ <iron-input
maxlength="40"
placeholder="(optional)"
bind-value="{{baseCommit}}">
+ <input
+ is="iron-input"
+ id="baseCommitInput"
+ maxlength="40"
+ placeholder="(optional)"
+ bind-value="{{baseCommit}}">
+ </iron-input>
</span>
</section>
<section>
<span class="title">Enter topic for new change</span>
<span class="value">
- <input
- is="iron-input"
- id="tagNameInput"
+ <iron-input
maxlength="1024"
placeholder="(optional)"
bind-value="{{topic}}">
+ <input
+ is="iron-input"
+ id="tagNameInput"
+ maxlength="1024"
+ placeholder="(optional)"
+ bind-value="{{topic}}">
+ </iron-input>
</span>
</section>
<section id="description">
diff --git a/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.html b/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.html
index 73a3f4e..ed631de 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.html
+++ b/polygerrit-ui/app/elements/admin/gr-create-group-dialog/gr-create-group-dialog.html
@@ -39,10 +39,13 @@
<div id="form">
<section>
<span class="title">Group name</span>
- <input
- is="iron-input"
- id="groupNameInput"
+ <iron-input
bind-value="{{_name}}">
+ <input
+ is="iron-input"
+ id="groupNameInput"
+ bind-value="{{_name}}">
+ </iron-input>
</section>
</div>
</div>
diff --git a/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.html b/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.html
index a1fbd37..8986a71 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.html
+++ b/polygerrit-ui/app/elements/admin/gr-create-pointer-dialog/gr-create-pointer-dialog.html
@@ -44,27 +44,39 @@
<div id="form">
<section>
<span class="title">[[detailType]] name</span>
- <input
- is="iron-input"
- id="itemNameInput"
+ <iron-input
placeholder="[[detailType]] Name"
bind-value="{{_itemName}}">
+ <input
+ is="iron-input"
+ id="itemNameInput"
+ placeholder="[[detailType]] Name"
+ bind-value="{{_itemName}}">
+ </iron-input>
</section>
<section>
<span class="title">Initial Revision</span>
- <input
- is="iron-input"
- id="itemRevisionInput"
+ <iron-input
placeholder="Revision (Branch or SHA-1)"
bind-value="{{_itemRevision}}">
+ <input
+ is="iron-input"
+ id="itemRevisionInput"
+ placeholder="Revision (Branch or SHA-1)"
+ bind-value="{{_itemRevision}}">
+ </iron-input>
</section>
<section class$="[[_computeHideItemClass(itemDetail)]]">
<span class="title">Annotation</span>
- <input
- is="iron-input"
- id="itemAnnotationInput"
+ <iron-input
placeholder="Annotation (Optional)"
bind-value="{{_itemAnnotation}}">
+ <input
+ is="iron-input"
+ id="itemAnnotationInput"
+ placeholder="Annotation (Optional)"
+ bind-value="{{_itemAnnotation}}">
+ </iron-input>
</section>
</div>
</div>
diff --git a/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.html b/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.html
index 0feeced..5c48de1 100644
--- a/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.html
+++ b/polygerrit-ui/app/elements/admin/gr-create-repo-dialog/gr-create-repo-dialog.html
@@ -54,10 +54,13 @@
<div id="form">
<section>
<span class="title">Repository name</span>
- <input is="iron-input"
- id="repoNameInput"
- autocomplete="on"
- bind-value="{{_repoConfig.name}}">
+ <iron-input autocomplete="on"
+ bind-value="{{_repoConfig.name}}">
+ <input is="iron-input"
+ id="repoNameInput"
+ autocomplete="on"
+ bind-value="{{_repoConfig.name}}">
+ </iron-input>
</section>
<section>
<span class="title">Rights inherit from</span>
diff --git a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
index 787f2b4..52cbfb3 100644
--- a/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
+++ b/polygerrit-ui/app/elements/admin/gr-group-members/gr-group-members.html
@@ -19,7 +19,6 @@
<link rel="import" href="../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.html">
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-form-styles.html">
<link rel="import" href="../../../styles/gr-subpage-styles.html">
<link rel="import" href="../../../styles/gr-table-styles.html">
diff --git a/polygerrit-ui/app/elements/admin/gr-group/gr-group.html b/polygerrit-ui/app/elements/admin/gr-group/gr-group.html
index 9f49e4b..a3bbddc 100644
--- a/polygerrit-ui/app/elements/admin/gr-group/gr-group.html
+++ b/polygerrit-ui/app/elements/admin/gr-group/gr-group.html
@@ -17,7 +17,6 @@
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-form-styles.html">
<link rel="import" href="../../../styles/gr-subpage-styles.html">
<link rel="import" href="../../../styles/shared-styles.html">
diff --git a/polygerrit-ui/app/elements/admin/gr-plugin-config-array-editor/gr-plugin-config-array-editor.html b/polygerrit-ui/app/elements/admin/gr-plugin-config-array-editor/gr-plugin-config-array-editor.html
index 2625d65..9ef408b 100644
--- a/polygerrit-ui/app/elements/admin/gr-plugin-config-array-editor/gr-plugin-config-array-editor.html
+++ b/polygerrit-ui/app/elements/admin/gr-plugin-config-array-editor/gr-plugin-config-array-editor.html
@@ -83,11 +83,15 @@
<div class="row placeholder">None configured.</div>
</template>
<div class$="row [[_computeShowInputRow(disabled)]]">
- <input
- is="iron-input"
- id="input"
+ <iron-input
on-keydown="_handleInputKeydown"
- bind-value="{{_newValue}}"/>
+ bind-value="{{_newValue}}">
+ <input
+ is="iron-input"
+ id="input"
+ on-keydown="_handleInputKeydown"
+ bind-value="{{_newValue}}">
+ </iron-input>
<gr-button
id="addButton"
disabled$="[[!_newValue.length]]"
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-commands/gr-repo-commands.html b/polygerrit-ui/app/elements/admin/gr-repo-commands/gr-repo-commands.html
index ea4d165..63c2a97 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-commands/gr-repo-commands.html
+++ b/polygerrit-ui/app/elements/admin/gr-repo-commands/gr-repo-commands.html
@@ -17,7 +17,6 @@
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-form-styles.html">
<link rel="import" href="../../../styles/gr-subpage-styles.html">
<link rel="import" href="../../../styles/shared-styles.html">
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-detail-list/gr-repo-detail-list.html b/polygerrit-ui/app/elements/admin/gr-repo-detail-list/gr-repo-detail-list.html
index 44b94e1..1c02b3c 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-detail-list/gr-repo-detail-list.html
+++ b/polygerrit-ui/app/elements/admin/gr-repo-detail-list/gr-repo-detail-list.html
@@ -124,10 +124,14 @@
class="editBtn">
edit
</gr-button>
- <input
- is=iron-input
+ <iron-input
bind-value="{{_revisedRef}}"
class="editItem">
+ <input
+ is=iron-input
+ bind-value="{{_revisedRef}}"
+ class="editItem">
+ </iron-input>
<gr-button
link
on-tap="_handleCancelRevision"
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list.html b/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list.html
index 1a728ab..52db4c2 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list.html
+++ b/polygerrit-ui/app/elements/admin/gr-repo-list/gr-repo-list.html
@@ -17,7 +17,6 @@
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="../../../behaviors/gr-list-view-behavior/gr-list-view-behavior.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-table-styles.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../shared/gr-dialog/gr-dialog.html">
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-plugin-config/gr-repo-plugin-config.html b/polygerrit-ui/app/elements/admin/gr-repo-plugin-config/gr-repo-plugin-config.html
index 69c86d9..872d282 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-plugin-config/gr-repo-plugin-config.html
+++ b/polygerrit-ui/app/elements/admin/gr-repo-plugin-config/gr-repo-plugin-config.html
@@ -87,12 +87,18 @@
</gr-select>
</template>
<template is="dom-if" if="[[_isString(option.info.type)]]">
- <input
- is="iron-input"
+ <iron-input
value="[[option.info.value]]"
on-input="_handleStringChange"
data-option-key$="[[option._key]]"
- disabled$="[[_computeDisabled(option.info.editable)]]"></input>
+ disabled$="[[_computeDisabled(option.info.editable)]]">
+ <input
+ is="iron-input"
+ value="[[option.info.value]]"
+ on-input="_handleStringChange"
+ data-option-key$="[[option._key]]"
+ disabled$="[[_computeDisabled(option.info.editable)]]">
+ </iron-input>
</template>
<template is="dom-if" if="[[option.info.inherited_value]]">
<span class="inherited">
diff --git a/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.html b/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.html
index f6b6d29..29cc2bd 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.html
+++ b/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.html
@@ -270,12 +270,17 @@
<section>
<span class="title">Maximum Git object size limit</span>
<span class="value">
- <input
- id="maxGitObjSizeInput"
+ <iron-input
bind-value="{{_repoConfig.max_object_size_limit.configured_value}}"
- is="iron-input"
type="text"
disabled$="[[_readOnly]]">
+ <input
+ id="maxGitObjSizeInput"
+ bind-value="{{_repoConfig.max_object_size_limit.configured_value}}"
+ is="iron-input"
+ type="text"
+ disabled$="[[_readOnly]]">
+ </iron-input>
<template is="dom-if" if="[[_repoConfig.max_object_size_limit.value]]">
effective: [[_repoConfig.max_object_size_limit.value]] bytes
</template>
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.html b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.html
index bcb0df4..e69d48f 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.html
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions.html
@@ -19,7 +19,6 @@
<link rel="import" href="../../../behaviors/gr-patch-set-behavior/gr-patch-set-behavior.html">
<link rel="import" href="../../../behaviors/rest-client-behavior/rest-client-behavior.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../admin/gr-create-change-dialog/gr-create-change-dialog.html">
<link rel="import" href="../../core/gr-navigation/gr-navigation.html">
<link rel="import" href="../../core/gr-reporting/gr-reporting.html">
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-cherrypick-dialog/gr-confirm-cherrypick-dialog.html b/polygerrit-ui/app/elements/change/gr-confirm-cherrypick-dialog/gr-confirm-cherrypick-dialog.html
index 508e881..767b62d 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-cherrypick-dialog/gr-confirm-cherrypick-dialog.html
+++ b/polygerrit-ui/app/elements/change/gr-confirm-cherrypick-dialog/gr-confirm-cherrypick-dialog.html
@@ -15,8 +15,9 @@
limitations under the License.
-->
-<link rel="import" href="/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html">
<link rel="import" href="/bower_components/polymer/polymer.html">
+<link rel="import" href="/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html">
+<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../shared/gr-autocomplete/gr-autocomplete.html">
<link rel="import" href="../../shared/gr-dialog/gr-dialog.html">
@@ -77,12 +78,17 @@
<label for="baseInput">
Provide base commit sha1 for cherry-pick
</label>
- <input
- is="iron-input"
- id="baseCommitInput"
+ <iron-input
maxlength="40"
placeholder="(optional)"
bind-value="{{baseCommit}}">
+ <input
+ is="iron-input"
+ id="baseCommitInput"
+ maxlength="40"
+ placeholder="(optional)"
+ bind-value="{{baseCommit}}">
+ </iron-input>
<label for="messageInput">
Cherry Pick Commit Message
</label>
diff --git a/polygerrit-ui/app/elements/change/gr-included-in-dialog/gr-included-in-dialog.html b/polygerrit-ui/app/elements/change/gr-included-in-dialog/gr-included-in-dialog.html
index a749431..d5d8128 100644
--- a/polygerrit-ui/app/elements/change/gr-included-in-dialog/gr-included-in-dialog.html
+++ b/polygerrit-ui/app/elements/change/gr-included-in-dialog/gr-included-in-dialog.html
@@ -16,6 +16,7 @@
-->
<link rel="import" href="/bower_components/polymer/polymer.html">
+<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
@@ -77,11 +78,15 @@
link
on-tap="_handleCloseTap">Close</gr-button>
</span>
- <input
- id="filterInput"
- is="iron-input"
+ <iron-input
placeholder="Filter"
on-bind-value-changed="_onFilterChanged">
+ <input
+ id="filterInput"
+ is="iron-input"
+ placeholder="Filter"
+ on-bind-value-changed="_onFilterChanged">
+ </iron-input>
</header>
<div class$="[[_computeLoadingClass(_loaded)]]">Loading...</div>
<template
diff --git a/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list.html b/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list.html
index 72c5b44..46f973e 100644
--- a/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list.html
+++ b/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list.html
@@ -16,7 +16,6 @@
-->
<link rel="import" href="/bower_components/polymer/polymer.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../shared/gr-account-chip/gr-account-chip.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.js b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
index 44e5699..f43f411 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router.js
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.js
@@ -230,7 +230,13 @@
},
_appElement() {
- return document.querySelector('#app-element');
+ // In Polymer2 you have to reach through the shadow root of the app
+ // element. This obviously breaks encapsulation.
+ // TODO(brohlfs): Make this more elegant, e.g. by exposing app-element
+ // explicitly in app, or by delegating to it.
+ return document.getElementById('app-element') ||
+ document.getElementById('app').shadowRoot.getElementById(
+ 'app-element');
},
_redirect(url) {
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
index d9cf979..c992a51 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
+++ b/polygerrit-ui/app/elements/diff/gr-diff-view/gr-diff-view.html
@@ -21,6 +21,7 @@
<link rel="import" href="../../../behaviors/keyboard-shortcut-behavior/keyboard-shortcut-behavior.html">
<link rel="import" href="../../../behaviors/rest-client-behavior/rest-client-behavior.html">
<link rel="import" href="/bower_components/iron-dropdown/iron-dropdown.html">
+<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../core/gr-navigation/gr-navigation.html">
<link rel="import" href="../../core/gr-reporting/gr-reporting.html">
@@ -303,7 +304,9 @@
<gr-endpoint-decorator name="annotation-toggler">
<span hidden id="annotation-span">
<label for="annotation-checkbox" id="annotation-label"></label>
- <input is="iron-input" type="checkbox" id="annotation-checkbox" disabled>
+ <iron-input type="checkbox" disabled>
+ <input is="iron-input" type="checkbox" id="annotation-checkbox" disabled>
+ </iron-input>
</span>
</gr-endpoint-decorator>
</div>
diff --git a/polygerrit-ui/app/elements/documentation/gr-documentation-search/gr-documentation-search.html b/polygerrit-ui/app/elements/documentation/gr-documentation-search/gr-documentation-search.html
index 616172b..5072b9d 100644
--- a/polygerrit-ui/app/elements/documentation/gr-documentation-search/gr-documentation-search.html
+++ b/polygerrit-ui/app/elements/documentation/gr-documentation-search/gr-documentation-search.html
@@ -18,7 +18,6 @@
<link rel="import" href="../../../behaviors/base-url-behavior/base-url-behavior.html">
<link rel="import" href="../../../behaviors/gr-list-view-behavior/gr-list-view-behavior.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-table-styles.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../shared/gr-list-view/gr-list-view.html">
diff --git a/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls.html b/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls.html
index ea5024a..2d66bc2 100644
--- a/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls.html
+++ b/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls.html
@@ -132,11 +132,16 @@
placeholder="Enter an existing full file path."
query="[[_query]]"
text="{{_path}}"></gr-autocomplete>
- <input
- class="newPathInput"
- is="iron-input"
+ <iron-input
+ class="newPathIronInput"
bind-value="{{_newPath}}"
- placeholder="Enter the new path."/>
+ placeholder="Enter the new path.">
+ <input
+ class="newPathInput"
+ is="iron-input"
+ bind-value="{{_newPath}}"
+ placeholder="Enter the new path.">
+ </iron-input>
</div>
</gr-dialog>
<gr-dialog
@@ -148,10 +153,14 @@
on-cancel="_handleDialogCancel">
<div class="header" slot="header">Restore this file?</div>
<div class="main" slot="main">
- <input
- is="iron-input"
+ <iron-input
disabled
- bind-value="{{_path}}"/>
+ bind-value="{{_path}}">
+ <input
+ is="iron-input"
+ disabled
+ bind-value="{{_path}}">
+ </iron-input>
</div>
</gr-dialog>
</gr-overlay>
diff --git a/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls_test.html b/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls_test.html
index 75a371f8..df029ed 100644
--- a/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls_test.html
+++ b/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls_test.html
@@ -191,6 +191,9 @@
let navStub;
let renameStub;
let renameAutocomplete;
+ const inputSelector = Polymer.Element ?
+ '.newPathIronInput' :
+ '.newPathInput';
setup(() => {
navStub = sandbox.stub(Gerrit.Nav, 'navigateToChange');
@@ -210,7 +213,7 @@
assert.isTrue(queryStub.called);
assert.isTrue(element.$.renameDialog.disabled);
- element.$.renameDialog.querySelector('.newPathInput').bindValue =
+ element.$.renameDialog.querySelector(inputSelector).bindValue =
'src/test.newPath';
assert.isFalse(element.$.renameDialog.disabled);
@@ -238,7 +241,7 @@
assert.isTrue(queryStub.called);
assert.isTrue(element.$.renameDialog.disabled);
- element.$.renameDialog.querySelector('.newPathInput').bindValue =
+ element.$.renameDialog.querySelector(inputSelector).bindValue =
'src/test.newPath';
assert.isFalse(element.$.renameDialog.disabled);
@@ -260,7 +263,7 @@
assert.isTrue(element.$.renameDialog.disabled);
element.$.renameDialog.querySelector('gr-autocomplete').text =
'src/test.cpp';
- element.$.renameDialog.querySelector('.newPathInput').bindValue =
+ element.$.renameDialog.querySelector(inputSelector).bindValue =
'src/test.newPath';
assert.isFalse(element.$.renameDialog.disabled);
MockInteractions.tap(element.$.renameDialog.$$('gr-button'));
diff --git a/polygerrit-ui/app/elements/gr-app-p2.html b/polygerrit-ui/app/elements/gr-app-p2.html
index 2ce5ed8..5742350 100644
--- a/polygerrit-ui/app/elements/gr-app-p2.html
+++ b/polygerrit-ui/app/elements/gr-app-p2.html
@@ -21,7 +21,6 @@
<link rel="import" href="/bower_components/polymer/polymer.html">
<link rel="import" href="/bower_components/polymer-resin/polymer-resin.html">
<link rel="import" href="/bower_components/polymer/lib/legacy/legacy-data-mixin.html">
-<link rel="import" href="/bower_components/shadycss/apply-shim.html">
<link rel="import" href="../behaviors/safe-types-behavior/safe-types-behavior.html">
<script>
security.polymer_resin.install({
diff --git a/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info.html b/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info.html
index 7d469a3..8de8db8 100644
--- a/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info.html
+++ b/polygerrit-ui/app/elements/settings/gr-account-info/gr-account-info.html
@@ -79,12 +79,17 @@
<span
hidden$="[[!usernameMutable]]"
class="value">
- <input
- is="iron-input"
- id="usernameInput"
+ <iron-input
disabled="[[_saving]]"
on-keydown="_handleKeydown"
bind-value="{{_username}}">
+ <input
+ is="iron-input"
+ id="usernameInput"
+ disabled="[[_saving]]"
+ on-keydown="_handleKeydown"
+ bind-value="{{_username}}">
+ </iron-input>
</span>
</section>
<section id="nameSection">
@@ -95,24 +100,34 @@
<span
hidden$="[[!nameMutable]]"
class="value">
- <input
- is="iron-input"
- id="nameInput"
+ <iron-input
disabled="[[_saving]]"
on-keydown="_handleKeydown"
bind-value="{{_account.name}}">
+ <input
+ is="iron-input"
+ id="nameInput"
+ disabled="[[_saving]]"
+ on-keydown="_handleKeydown"
+ bind-value="{{_account.name}}">
+ </iron-input>
</span>
</section>
<section>
<span class="title">Status (e.g. "Vacation")</span>
<span class="value">
- <input
- is="iron-input"
- id="statusInput"
+ <iron-input
disabled="[[_saving]]"
on-keydown="_handleKeydown"
bind-value="{{_account.status}}">
- </span>
+ <input
+ is="iron-input"
+ id="statusInput"
+ disabled="[[_saving]]"
+ on-keydown="_handleKeydown"
+ bind-value="{{_account.status}}">
+ </iron-input>
+ </span>
</section>
</div>
<gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
diff --git a/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.html b/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.html
index 43bb2db..8b32be9 100644
--- a/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.html
+++ b/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.html
@@ -16,7 +16,6 @@
-->
<link rel="import" href="../../../behaviors/gr-change-table-behavior/gr-change-table-behavior.html">
<link rel="import" href="/bower_components/polymer/polymer.html">
-<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-date-formatter/gr-date-formatter.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
diff --git a/polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view.html b/polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view.html
index bb5c069..2d5fd26 100644
--- a/polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view.html
+++ b/polygerrit-ui/app/elements/settings/gr-cla-view/gr-cla-view.html
@@ -95,7 +95,13 @@
</div>
<div class$="agreementsTextBox [[_computeHideAgreementClass(_agreementName, _serverConfig.auth.contributor_agreements)]]">
<h3 class="smallHeading">Complete the agreement:</h3>
- <input id="input-agreements" is="iron-input" bind-value="{{_agreementsText}}" placeholder="Enter 'I agree' here" />
+ <iron-input bind-value="{{_agreementsText}}"
+ placeholder="Enter 'I agree' here">
+ <input id="input-agreements"
+ is="iron-input"
+ bind-value="{{_agreementsText}}"
+ placeholder="Enter 'I agree' here">
+ </iron-input>
<gr-button on-tap="_handleSaveAgreements" disabled="[[_disableAgreementsText(_agreementsText)]]">
Submit
</gr-button>
diff --git a/polygerrit-ui/app/elements/settings/gr-edit-preferences/gr-edit-preferences.html b/polygerrit-ui/app/elements/settings/gr-edit-preferences/gr-edit-preferences.html
index 33fc879..53a30c3 100644
--- a/polygerrit-ui/app/elements/settings/gr-edit-preferences/gr-edit-preferences.html
+++ b/polygerrit-ui/app/elements/settings/gr-edit-preferences/gr-edit-preferences.html
@@ -16,6 +16,7 @@
-->
<link rel="import" href="/bower_components/polymer/polymer.html">
+<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-form-styles.html">
<link rel="import" href="../../../styles/shared-styles.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
@@ -29,40 +30,64 @@
<section>
<span class="title">Tab width</span>
<span class="value">
- <input
- is="iron-input"
+ <iron-input
type="number"
prevent-invalid-input
allowed-pattern="[0-9]"
bind-value="{{editPrefs.tab_size}}"
on-keypress="_handleEditPrefsChanged"
on-change="_handleEditPrefsChanged">
+ <input
+ is="iron-input"
+ type="number"
+ prevent-invalid-input
+ allowed-pattern="[0-9]"
+ bind-value="{{editPrefs.tab_size}}"
+ on-keypress="_handleEditPrefsChanged"
+ on-change="_handleEditPrefsChanged">
+ </iron-input>
</span>
</section>
<section>
<span class="title">Columns</span>
<span class="value">
- <input
- is="iron-input"
+ <iron-input
type="number"
prevent-invalid-input
allowed-pattern="[0-9]"
bind-value="{{editPrefs.line_length}}"
on-keypress="_handleEditPrefsChanged"
on-change="_handleEditPrefsChanged">
+ <input
+ is="iron-input"
+ type="number"
+ prevent-invalid-input
+ allowed-pattern="[0-9]"
+ bind-value="{{editPrefs.line_length}}"
+ on-keypress="_handleEditPrefsChanged"
+ on-change="_handleEditPrefsChanged">
+ </iron-input>
</span>
</section>
<section>
<span class="title">Indent unit</span>
<span class="value">
- <input
- is="iron-input"
+ <iron-input
type="number"
prevent-invalid-input
allowed-pattern="[0-9]"
bind-value="{{editPrefs.indent_unit}}"
on-keypress="_handleEditPrefsChanged"
on-change="_handleEditPrefsChanged">
+ <input
+ is="iron-input"
+ type="number"
+ prevent-invalid-input
+ allowed-pattern="[0-9]"
+ bind-value="{{editPrefs.indent_unit}}"
+ on-keypress="_handleEditPrefsChanged"
+ on-change="_handleEditPrefsChanged">
+ </iron-input>
</span>
</section>
<section>
diff --git a/polygerrit-ui/app/elements/settings/gr-email-editor/gr-email-editor.html b/polygerrit-ui/app/elements/settings/gr-email-editor/gr-email-editor.html
index 98b9b6d..f508288 100644
--- a/polygerrit-ui/app/elements/settings/gr-email-editor/gr-email-editor.html
+++ b/polygerrit-ui/app/elements/settings/gr-email-editor/gr-email-editor.html
@@ -63,14 +63,22 @@
<tr>
<td class="emailColumn">[[item.email]]</td>
<td class="preferredControl" on-tap="_handlePreferredControlTap">
- <input
- is="iron-input"
+ <iron-input
class="preferredRadio"
type="radio"
on-change="_handlePreferredChange"
name="preferred"
value="[[item.email]]"
checked$="[[item.preferred]]">
+ <input
+ is="iron-input"
+ class="preferredRadio"
+ type="radio"
+ on-change="_handlePreferredChange"
+ name="preferred"
+ value="[[item.email]]"
+ checked$="[[item.preferred]]">
+ </iron-input>
</td>
<td>
<gr-button
diff --git a/polygerrit-ui/app/elements/settings/gr-http-password/gr-http-password.js b/polygerrit-ui/app/elements/settings/gr-http-password/gr-http-password.js
index cda6da7..99f4504 100644
--- a/polygerrit-ui/app/elements/settings/gr-http-password/gr-http-password.js
+++ b/polygerrit-ui/app/elements/settings/gr-http-password/gr-http-password.js
@@ -27,6 +27,10 @@
_passwordUrl: String,
},
+ attached() {
+ this.loadData();
+ },
+
loadData() {
const promises = [];
diff --git a/polygerrit-ui/app/elements/settings/gr-menu-editor/gr-menu-editor.html b/polygerrit-ui/app/elements/settings/gr-menu-editor/gr-menu-editor.html
index 56f4cfa..703c34c 100644
--- a/polygerrit-ui/app/elements/settings/gr-menu-editor/gr-menu-editor.html
+++ b/polygerrit-ui/app/elements/settings/gr-menu-editor/gr-menu-editor.html
@@ -85,19 +85,30 @@
<tfoot>
<tr>
<th>
- <input
- is="iron-input"
+ <iron-input
placeholder="New Title"
on-keydown="_handleInputKeydown"
bind-value="{{_newName}}">
+ <input
+ is="iron-input"
+ placeholder="New Title"
+ on-keydown="_handleInputKeydown"
+ bind-value="{{_newName}}">
+ </iron-input>
</th>
<th>
- <input
+ <iron-input
class="newUrlInput"
- is="iron-input"
placeholder="New URL"
on-keydown="_handleInputKeydown"
bind-value="{{_newUrl}}">
+ <input
+ class="newUrlInput"
+ is="iron-input"
+ placeholder="New URL"
+ on-keydown="_handleInputKeydown"
+ bind-value="{{_newUrl}}">
+ </iron-input>
</th>
<th></th>
<th></th>
diff --git a/polygerrit-ui/app/elements/settings/gr-registration-dialog/gr-registration-dialog.html b/polygerrit-ui/app/elements/settings/gr-registration-dialog/gr-registration-dialog.html
index 66b06f8..cdc0825 100644
--- a/polygerrit-ui/app/elements/settings/gr-registration-dialog/gr-registration-dialog.html
+++ b/polygerrit-ui/app/elements/settings/gr-registration-dialog/gr-registration-dialog.html
@@ -16,6 +16,7 @@
-->
<link rel="import" href="/bower_components/polymer/polymer.html">
+<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../styles/gr-form-styles.html">
<link rel="import" href="../../core/gr-navigation/gr-navigation.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
@@ -81,19 +82,27 @@
<hr>
<section>
<div class="title">Full Name</div>
- <input
- is="iron-input"
- id="name"
+ <iron-input
bind-value="{{_account.name}}"
disabled="[[_saving]]">
+ <input
+ is="iron-input"
+ id="name"
+ bind-value="{{_account.name}}"
+ disabled="[[_saving]]">
+ </iron-input>
</section>
<section class$="[[_computeUsernameClass(_usernameMutable)]]">
<div class="title">Username</div>
- <input
- is="iron-input"
- id="username"
+ <iron-input
bind-value="{{_account.username}}"
disabled="[[_saving]]">
+ <input
+ is="iron-input"
+ id="username"
+ bind-value="{{_account.username}}"
+ disabled="[[_saving]]">
+ </iron-input>
</section>
<section>
<div class="title">Preferred Email</div>
diff --git a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
index 68518a0..d193041 100644
--- a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
+++ b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
@@ -16,6 +16,7 @@
-->
<link rel="import" href="/bower_components/polymer/polymer.html">
+<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../behaviors/docs-url-behavior/docs-url-behavior.html">
<link rel="import" href="/bower_components/paper-toggle-button/paper-toggle-button.html">
@@ -49,7 +50,7 @@
:host {
color: var(--primary-text-color);
}
- #newEmailInput {
+ .newEmailInput {
width: 20em;
}
#email {
@@ -365,14 +366,22 @@
<section>
<span class="title">New email address</span>
<span class="value">
- <input
- id="newEmailInput"
+ <iron-input
+ class="newEmailInput"
bind-value="{{_newEmail}}"
- is="iron-input"
type="text"
disabled="[[_addingEmail]]"
on-keydown="_handleNewEmailKeydown"
placeholder="email@example.com">
+ <input
+ class="newEmailInput"
+ bind-value="{{_newEmail}}"
+ is="iron-input"
+ type="text"
+ disabled="[[_addingEmail]]"
+ on-keydown="_handleNewEmailKeydown"
+ placeholder="email@example.com">
+ </iron-input>
</span>
</section>
<section
@@ -387,12 +396,14 @@
disabled="[[!_computeAddEmailButtonEnabled(_newEmail, _addingEmail)]]"
on-tap="_handleAddEmailButton">Send verification</gr-button>
</fieldset>
- <div hidden$="[[!_showHttpAuth(_serverConfig)]]">
- <h2 id="HTTPCredentials">HTTP Credentials</h2>
- <fieldset>
- <gr-http-password id="httpPass"></gr-http-password>
- </fieldset>
- </div>
+ <template is="dom-if" if="[[_showHttpAuth(_serverConfig)]]">
+ <div>
+ <h2 id="HTTPCredentials">HTTP Credentials</h2>
+ <fieldset>
+ <gr-http-password id="httpPass"></gr-http-password>
+ </fieldset>
+ </div>
+ </template>
<div hidden$="[[!_serverConfig.sshd]]">
<h2
id="SSHKeys"
diff --git a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.js b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.js
index d776b54..041dc64 100644
--- a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.js
+++ b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.js
@@ -166,7 +166,6 @@
this.$.accountInfo.loadData(),
this.$.watchedProjectsEditor.loadData(),
this.$.groupList.loadData(),
- this.$.httpPass.loadData(),
this.$.identities.loadData(),
this.$.editPrefs.loadData(),
this.$.diffPrefs.loadData(),
diff --git a/polygerrit-ui/app/elements/settings/gr-watched-projects-editor/gr-watched-projects-editor.html b/polygerrit-ui/app/elements/settings/gr-watched-projects-editor/gr-watched-projects-editor.html
index e314608..35d43c7 100644
--- a/polygerrit-ui/app/elements/settings/gr-watched-projects-editor/gr-watched-projects-editor.html
+++ b/polygerrit-ui/app/elements/settings/gr-watched-projects-editor/gr-watched-projects-editor.html
@@ -15,6 +15,7 @@
limitations under the License.
-->
<link rel="import" href="/bower_components/polymer/polymer.html">
+<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../shared/gr-autocomplete/gr-autocomplete.html">
<link rel="import" href="../../shared/gr-button/gr-button.html">
<link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html">
@@ -103,11 +104,15 @@
placeholder="Repo"></gr-autocomplete>
</th>
<th colspan$="[[_getTypeCount()]]">
- <input
- id="newFilter"
+ <iron-input
class="newFilterInput"
- is="iron-input"
placeholder="branch:name, or other search expression">
+ <input
+ id="newFilter"
+ class="newFilterInput"
+ is="iron-input"
+ placeholder="branch:name, or other search expression">
+ </iron-input>
</th>
<th>
<gr-button link on-tap="_handleAddProject">Add</gr-button>
diff --git a/polygerrit-ui/app/elements/shared/gr-copy-clipboard/gr-copy-clipboard.html b/polygerrit-ui/app/elements/shared/gr-copy-clipboard/gr-copy-clipboard.html
index f6b4a27..8fea7e2 100644
--- a/polygerrit-ui/app/elements/shared/gr-copy-clipboard/gr-copy-clipboard.html
+++ b/polygerrit-ui/app/elements/shared/gr-copy-clipboard/gr-copy-clipboard.html
@@ -47,20 +47,29 @@
}
</style>
<div class="text">
- <input id="input" is="iron-input"
+ <iron-input
+ class$="copyText [[_computeInputClass(hideInput)]]"
+ type="text"
+ bind-value="[[text]]"
+ on-tap="_handleInputTap"
+ readonly>
+ <input
+ id="input"
+ is="iron-input"
class$="copyText [[_computeInputClass(hideInput)]]"
type="text"
bind-value="[[text]]"
on-tap="_handleInputTap"
readonly>
- <gr-button id="button"
- link
- has-tooltip="[[hasTooltip]]"
- class="copyToClipboard"
- title="[[buttonTitle]]"
- on-tap="_copyToClipboard">
- <iron-icon id="icon" icon="gr-icons:content-copy"></iron-icon>
- </gr-button>
+ </iron-input>
+ <gr-button id="button"
+ link
+ has-tooltip="[[hasTooltip]]"
+ class="copyToClipboard"
+ title="[[buttonTitle]]"
+ on-tap="_copyToClipboard">
+ <iron-icon id="icon" icon="gr-icons:content-copy"></iron-icon>
+ </gr-button>
</div>
</template>
<script src="gr-copy-clipboard.js"></script>
diff --git a/polygerrit-ui/app/elements/shared/gr-diff-preferences/gr-diff-preferences.html b/polygerrit-ui/app/elements/shared/gr-diff-preferences/gr-diff-preferences.html
index e21e5a4..9d85d44 100644
--- a/polygerrit-ui/app/elements/shared/gr-diff-preferences/gr-diff-preferences.html
+++ b/polygerrit-ui/app/elements/shared/gr-diff-preferences/gr-diff-preferences.html
@@ -60,43 +60,67 @@
<section>
<span class="title">Diff width</span>
<span class="value">
- <input
- is="iron-input"
+ <iron-input
type="number"
- id="columnsInput"
prevent-invalid-input
allowed-pattern="[0-9]"
bind-value="{{diffPrefs.line_length}}"
on-keypress="_handleDiffPrefsChanged"
on-change="_handleDiffPrefsChanged">
+ <input
+ is="iron-input"
+ type="number"
+ id="columnsInput"
+ prevent-invalid-input
+ allowed-pattern="[0-9]"
+ bind-value="{{diffPrefs.line_length}}"
+ on-keypress="_handleDiffPrefsChanged"
+ on-change="_handleDiffPrefsChanged">
+ </iron-input>
</span>
</section>
<section>
<span class="title">Tab width</span>
<span class="value">
- <input
- is="iron-input"
+ <iron-input
type="number"
- id="tabSizeInput"
prevent-invalid-input
allowed-pattern="[0-9]"
bind-value="{{diffPrefs.tab_size}}"
on-keypress="_handleDiffPrefsChanged"
on-change="_handleDiffPrefsChanged">
+ <input
+ is="iron-input"
+ type="number"
+ id="tabSizeInput"
+ prevent-invalid-input
+ allowed-pattern="[0-9]"
+ bind-value="{{diffPrefs.tab_size}}"
+ on-keypress="_handleDiffPrefsChanged"
+ on-change="_handleDiffPrefsChanged">
+ </iron-input>
</span>
</section>
<section hidden$="[[!diffPrefs.font_size]]">
<span class="title">Font size</span>
<span class="value">
- <input
- is="iron-input"
+ <iron-input
type="number"
- id="fontSizeInput"
prevent-invalid-input
allowed-pattern="[0-9]"
bind-value="{{diffPrefs.font_size}}"
on-keypress="_handleDiffPrefsChanged"
on-change="_handleDiffPrefsChanged">
+ <input
+ is="iron-input"
+ type="number"
+ id="fontSizeInput"
+ prevent-invalid-input
+ allowed-pattern="[0-9]"
+ bind-value="{{diffPrefs.font_size}}"
+ on-keypress="_handleDiffPrefsChanged"
+ on-change="_handleDiffPrefsChanged">
+ </iron-input>
</span>
</section>
<section>
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-annotation-actions-js-api_test.html b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-annotation-actions-js-api_test.html
index 78f9650..987b551 100644
--- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-annotation-actions-js-api_test.html
+++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-annotation-actions-js-api_test.html
@@ -30,7 +30,9 @@
<template>
<span hidden id="annotation-span">
<label for="annotation-checkbox" id="annotation-label"></label>
- <input is="iron-input" type="checkbox" id="annotation-checkbox" disabled>
+ <iron-input type="checkbox" disabled>
+ <input is="iron-input" type="checkbox" id="annotation-checkbox" disabled>
+ </iron-input>
</span>
</template>
</test-fixture>
diff --git a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html
index 1ee168d..765345c 100644
--- a/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html
+++ b/polygerrit-ui/app/elements/shared/gr-list-view/gr-list-view.html
@@ -15,6 +15,7 @@
limitations under the License.
-->
<link rel="import" href="/bower_components/polymer/polymer.html">
+<link rel="import" href="/bower_components/iron-input/iron-input.html">
<link rel="import" href="../../../behaviors/base-url-behavior/base-url-behavior.html">
<link rel="import" href="../../../behaviors/gr-url-encoding-behavior/gr-url-encoding-behavior.html">
@@ -68,10 +69,15 @@
<div id="topContainer">
<div class="filterContainer">
<label>Filter:</label>
- <input is="iron-input"
+ <iron-input
type="text"
- id="filter"
bind-value="{{filter}}">
+ <input
+ is="iron-input"
+ type="text"
+ id="filter"
+ bind-value="{{filter}}">
+ </iron-input>
</div>
<div id="createNewContainer"
class$="[[_computeCreateClass(createNew)]]">
diff --git a/polygerrit-ui/app/polylint_test.sh b/polygerrit-ui/app/polylint_test.sh
index ee69ce2..f6880a1 100755
--- a/polygerrit-ui/app/polylint_test.sh
+++ b/polygerrit-ui/app/polylint_test.sh
@@ -8,13 +8,13 @@
exit 1
fi
-polylint_bin=$(which polylint)
-if [[ -z "$polylint_bin" ]]; then
- echo "You must install polylint and its dependencies from NPM."
- echo "> npm install -g polylint"
+npx_bin=$(which npx)
+if [[ -z "$npx_bin" ]]; then
+ echo "NPX must be on the path."
+ echo "> npm i -g npx"
exit 1
fi
unzip -o polygerrit-ui/polygerrit_components.bower_components.zip -d polygerrit-ui/app
-${polylint_bin} --root polygerrit-ui/app --input elements/gr-app.html --b 'bower_components'
\ No newline at end of file
+npx polylint --root polygerrit-ui/app --input elements/gr-app.html --b 'bower_components' --verbose