Add repo header to project search

Bug: Issue 7921
Change-Id: Iec3d768e49bfc7a06a1ea143ced9967c3f481bd2
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view.js b/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view.js
index 1728bc1..ceb4b4d 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view.js
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view.js
@@ -24,6 +24,9 @@
 
   const USER_QUERY_PATTERN = /^owner:\s?("[^"]+"|[^ ]+)$/;
 
+  const REPO_QUERY_PATTERN =
+      /^project:\s?("[^"]+"|[^ ]+)(\sstatus\s?:(open|"open"))?$/;
+
   const LIMIT_OPERATOR_PATTERN = /\blimit:(\d+)/i;
 
   Polymer({
@@ -114,6 +117,12 @@
         type: String,
         value: null,
       },
+
+      /** @type {?String} */
+      _repo: {
+        type: String,
+        value: null,
+      },
     },
 
     listeners: {
@@ -227,16 +236,22 @@
     },
 
     _changesChanged(changes) {
-      if (!changes || !changes.length ||
-          !USER_QUERY_PATTERN.test(this._query)) {
-        this._userId = null;
+      this._userId = null;
+      this._repo = null;
+      if (!changes || !changes.length) {
         return;
       }
-      this._userId = changes[0].owner.email;
+      if (USER_QUERY_PATTERN.test(this._query) && changes[0].owner.email) {
+        this._userId = changes[0].owner.email;
+        return;
+      }
+      if (REPO_QUERY_PATTERN.test(this._query)) {
+        this._repo = changes[0].project;
+      }
     },
 
-    _computeUserHeaderClass(userId) {
-      return userId ? '' : 'hide';
+    _computeHeaderClass(id) {
+      return id ? '' : 'hide';
     },
 
     _computePage(offset, changesPerPage) {