Merge "ChangeScreen2: Pass revision to initEditMode"
diff --git a/Documentation/cmd-index.txt b/Documentation/cmd-index.txt
index f465dcd..22d65ad 100644
--- a/Documentation/cmd-index.txt
+++ b/Documentation/cmd-index.txt
@@ -19,7 +19,7 @@
 === [[client_commands]]Commands
 
 link:cmd-cherry-pick.html[gerrit-cherry-pick]::
-  Download and cherry-pick one or more changes (commits).
+	Download and cherry-pick one or more changes (commits).
 
 === [[client_hooks]]Hooks
 
@@ -28,7 +28,7 @@
 server.
 
 link:cmd-hook-commit-msg.html[commit-msg]::
-  Automatically generate `Change-Id: ` tags in commit messages.
+	Automatically generate `Change-Id: ` tags in commit messages.
 
 
 == Server
@@ -76,7 +76,7 @@
 	Verify, approve and/or submit a patch set from the command line.
 
 link:cmd-set-reviewers.html[gerrit set-reviewers]::
-        Add or remove reviewers on a change.
+	Add or remove reviewers on a change.
 
 link:cmd-stream-events.html[gerrit stream-events]::
 	Monitor events occurring in real time.
@@ -91,7 +91,7 @@
 review.  See link:user-upload.html#push_create[Creating Changes].
 
 git upload-pack::
-        Standard Git server side command for client side `git fetch`.
+	Standard Git server side command for client side `git fetch`.
 
 [[admin_commands]]Administrator Commands
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -115,34 +115,34 @@
 	Administrative interface to active database.
 
 link:cmd-logging-ls-level.html[gerrit logging ls-level]::
-    List loggers and their logging level.
+	List loggers and their logging level.
 
 link:cmd-logging-set-level.html[gerrit logging set-level]::
-    Set the logging level of loggers.
+	Set the logging level of loggers.
 
 link:cmd-ls-user-refs.html[gerrit ls-user-refs]::
 	Lists refs visible for a specified user.
 
 link:cmd-plugin-install.html[gerrit plugin add]::
-    Alias for 'gerrit plugin install'.
+	Alias for 'gerrit plugin install'.
 
 link:cmd-plugin-enable.html[gerrit plugin enable]::
-    Enable plugins.
+	Enable plugins.
 
 link:cmd-plugin-install.html[gerrit plugin install]::
-    Install/Add a plugin.
+	Install/Add a plugin.
 
 link:cmd-plugin-ls.html[gerrit plugin ls]::
-    List the installed plugins.
+	List the installed plugins.
 
 link:cmd-plugin-reload.html[gerrit plugin reload]::
-    Reload/Restart plugins.
+	Reload/Restart plugins.
 
 link:cmd-plugin-remove.html[gerrit plugin remove]::
-    Disable plugins.
+	Disable plugins.
 
 link:cmd-plugin-remove.html[gerrit plugin rm]::
-    Alias for 'gerrit plugin remove'.
+	Alias for 'gerrit plugin remove'.
 
 link:cmd-set-account.html[gerrit set-account]::
 	Change an account's settings.
@@ -151,7 +151,7 @@
 	Set group members.
 
 link:cmd-set-project.html[gerrit set-project]::
-    Change a project's settings.
+	Change a project's settings.
 
 link:cmd-set-project-parent.html[gerrit set-project-parent]::
 	Change the project permissions are inherited from.
diff --git a/ReleaseNotes/ReleaseNotes-2.11.txt b/ReleaseNotes/ReleaseNotes-2.11.txt
index 43a8ce6..6a88ede 100644
--- a/ReleaseNotes/ReleaseNotes-2.11.txt
+++ b/ReleaseNotes/ReleaseNotes-2.11.txt
@@ -121,8 +121,14 @@
 Change Screen
 ^^^^^^^^^^^^^
 
+* Remove the 'Edit Message' button from the change screen.
++
+The commit message is now edited using the inline edit feature.
+
 * Show the parent commit's subject as a tooltip.
 
+* Decorate abandoned changes in the 'Related Changes' list with a dark red dot.
+
 * link:http://code.google.com/p/gerrit/issues/detail?id=2541[Issue 2541],
 link:http://code.google.com/p/gerrit/issues/detail?id=2974[Issue 2974]:
 Allow the 'Reply' button's
@@ -132,6 +138,8 @@
 Side-By-Side Diff
 ^^^^^^^^^^^^^^^^^
 
+* New button to switch between side-by-side diff and unified diff.
+
 * New preference setting to toggle auto-hiding of the diff table header.
 +
 The setting determines whether or not the diff table header with the patch set
@@ -161,6 +169,13 @@
 Changes
 ^^^^^^^
 
+* The https://gerrit-review.googlesource.com/Documentation/2.11/rest-api-changes.html#message[
+Edit Commit Message] endpoint is deprecated in favor of the new
+link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#put-change-edit-message[
+Change commit message in Change Edit] and
+link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#publish-edit[
+Publish Change Edit] endpoints.
+
 * Add new
 link:https://gerrit-documentation.storage.googleapis.com/Documentation/2.11/rest-api-changes.html#check-change[
 check change endpoint].
@@ -365,6 +380,11 @@
 register static/init.js as WebUi extension if found by the plugin content
 scanner.
 
+* Plugins can validate outgoing emails.
++
+Plugins implementing `OutgoingEmailValidationListener` interface can filter
+and modify outgoing emails before they are sent.
+
 * Plugins that provide initialization steps may now use functionality
 from InitUtil in core Gerrit.
 
@@ -374,6 +394,9 @@
 ** Get mergeable status.
 ** link:https://code.google.com/p/gerrit/issues/detail?id=461[Issue 461]:
 Get current user.
+** Get file content.
+** Get file diff.
+** Get comments and drafts.
 
 Replication
 ^^^^^^^^^^^
@@ -387,11 +410,11 @@
 Daemon
 ~~~~~~
 
-* Change "Merge topic" to "Merge changes from topic".
+* Change 'Merge topic' to 'Merge changes from topic'.
 +
 When multiple changes from a topic are submitted resulting in a merge commit,
-the title of the merge commit is now "Merge changes from topic" instead of
-"Merge topic".
+the title of the merge commit is now 'Merge changes from topic' instead of
+'Merge topic'.
 
 * Fix visibility checks for `refs/meta/config`.
 +
@@ -404,7 +427,7 @@
 Improve warning messages when Change-Id is missing in the commit message.
 
 ** Add a hint to amend the commit after installing the commit-msg hook.
-** Don't show "Suggestion for commit message" when Change-Id is missing.
+** Don't show 'Suggestion for commit message' when Change-Id is missing.
 
 
 Secondary Index / Search
@@ -438,9 +461,55 @@
 Change Screen
 ^^^^^^^^^^^^^
 
+* link:http://code.google.com/p/gerrit/issues/detail?id=2894[Issue 2894]:
+Link to change screen for merged or abandoned changes in the 'Related Changes'
+list.
++
+For changes in the 'Related Changes' tab that are closed the link was
+bringing the user to GitWeb, and not as expected to the change screen.
+
+* Show a confirmation dialog before deleting a draft change or patch set.
++
+Previously there was no confirmation and a draft change or revision patch
+set would be lost if the button was accidentally clicked.
+
+* link:https://code.google.com/p/gerrit/issues/detail?id=2533[Issue 2533]:
+Improve the layout and color scheme of buttons.
++
+Several improvements have been made:
++
+** Move 'Publish' and 'Delete Change/Revision' buttons into header.
++
+If a change/revision is a draft the natural next step is to publish (or delete)
+it, hence these buttons should be displayed in a more prominent place.
+
+** Highlight the 'Publish' button in blue.
++
+If a change is a draft the natural next step is to publish it, hence
+the 'Publish' button should be highlighted similar to the quick
+approve button.
+
+** Fix the border color of buttons on the reply popup.
++
+The buttons are blue but had white borders, which was inconsistent with the
+buttons on the change screen.
+
+** Remove red color for 'Abandon' and 'Restore' buttons.
++
+There is nothing dangerous about these operations that justifies
+highlighting the buttons in red color. When the buttons are clicked
+there is a popup where the user must confirm the operation, so it can
+still be cancelled.
+
+** Hide quick approve button for draft changes.
++
+A draft change cannot be submitted, hence quick approving it is not that
+important. Hiding the quick approve button on draft changes makes space in the
+header for displaying more important actions such as 'Publish'.
+
 * Differentiate between conflicts and already merged errors in cherry-pick
 +
-When a cherry-pick operation failed with "Cherry pick failed" error, there was no
+When a cherry-pick operation failed with 'Cherry pick failed' error, there was no
 way to know the reason for the failure: merge conflict or the commit is already
 on the target branch.  These failures are now differentiated and a proper error
 is reported to the client.
@@ -477,8 +546,8 @@
 * link:http://code.google.com/p/gerrit/issues/detail?id=3007[Issue 3007]:
 Make the selected tab persistent.
 +
-If a change from the "Same Topic" tab was clicked, the selected tab would reset
-to the default tab ("Related Changes").
+If a change from the 'Same Topic' tab was clicked, the selected tab would reset
+to the default tab ('Related Changes').
 
 
 Side-By-Side Diff
@@ -494,7 +563,7 @@
 
 * Fix alignment of checkboxes on project access screen.
 +
-The "Exclusive" checkbox was not aligned with the other checkboxes.
+The 'Exclusive' checkbox was not aligned with the other checkboxes.
 
 REST API
 ~~~~~~~~
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java
index 2fb0e49..f1a57a5 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/change/ChangeScreen2.java
@@ -494,7 +494,7 @@
       }
 
       if (rev.is_edit()) {
-        if (isEditBasedOnCurrentPatchSet(info)) {
+        if (info.hasEditBasedOnCurrentPatchSet()) {
           publishEdit.setVisible(true);
         } else {
           rebaseEdit.setVisible(true);
@@ -515,13 +515,6 @@
         info.revisions().values());
   }
 
-  private boolean isEditBasedOnCurrentPatchSet(ChangeInfo info) {
-    JsArray<RevisionInfo> revList = info.revisions().values();
-    RevisionInfo.sortRevisionInfoByNumber(revList);
-    int currentPatchSetOrEdit = revList.get(revList.length() - 1)._number();
-    return currentPatchSetOrEdit == 0;
-  }
-
   @UiHandler("publishEdit")
   void onPublishEdit(@SuppressWarnings("unused") ClickEvent e) {
     EditActions.publishEdit(changeId);
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfo.java b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfo.java
index a9dec39..fff792f 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfo.java
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/changes/ChangeInfo.java
@@ -62,6 +62,12 @@
     return ts;
   }
 
+  public final boolean hasEditBasedOnCurrentPatchSet() {
+    JsArray<RevisionInfo> revList = revisions().values();
+    RevisionInfo.sortRevisionInfoByNumber(revList);
+    return revList.get(revList.length() - 1).is_edit();
+  }
+
   private final native Timestamp _get_cts() /*-{ return this._cts; }-*/;
   private final native void _set_cts(Timestamp ts) /*-{ this._cts = ts; }-*/;
 
diff --git a/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css b/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css
index 5fd8fa2..1c4829c 100644
--- a/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css
+++ b/gerrit-gwtui/src/main/java/com/google/gerrit/client/gerrit.css
@@ -1217,7 +1217,6 @@
 
 .parentsTable {
   border-style: none;
-  border: 1px 1px 1px 0px;
   outline: 0px;
   padding: 0px;
   border-spacing: 0px;