Merge 'stable-2.12'
* stable-2.12:
Build with API version 2.12.4
Change-Id: I9dfe6edc4f91c0fc611d216cbed994788e5db598
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/lib/gerrit/BUCK b/lib/gerrit/BUCK
index a02c9a4..acb4718 100644
--- a/lib/gerrit/BUCK
+++ b/lib/gerrit/BUCK
@@ -1,12 +1,11 @@
include_defs('//bucklets/maven_jar.bucklet')
-VER = '2.12.4'
-REPO = MAVEN_CENTRAL
+VER = '2.13-SNAPSHOT'
+REPO = MAVEN_LOCAL
maven_jar(
name = 'plugin-api',
id = 'com.google.gerrit:gerrit-plugin-api:' + VER,
- sha1 = 'aad189fe4f9fa5c3f8048b5e4972512b4b3e2a24',
license = 'Apache2.0',
attach_source = False,
repository = REPO,
@@ -15,7 +14,6 @@
maven_jar(
name = 'gwtui-api',
id = 'com.google.gerrit:gerrit-plugin-gwtui:' + VER,
- sha1 = 'd57778f60399938f473254e97bf5de86885d48d0',
license = 'Apache2.0',
attach_source = False,
repository = REPO,
diff --git a/pom.xml b/pom.xml
index d120542..dfbc4fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@
<groupId>com.googlesource.gerrit.plugins.imagare</groupId>
<artifactId>imagare</artifactId>
<packaging>jar</packaging>
- <version>2.12.4</version>
+ <version>2.13-SNAPSHOT</version>
<name>imagare</name>
<properties>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/imagare/DeleteImage.java b/src/main/java/com/googlesource/gerrit/plugins/imagare/DeleteImage.java
index 2805ba4..7a6449e 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/imagare/DeleteImage.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/imagare/DeleteImage.java
@@ -14,7 +14,6 @@
package com.googlesource.gerrit.plugins.imagare;
-import com.google.gerrit.common.ChangeHooks;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
@@ -51,17 +50,16 @@
private final Provider<IdentifiedUser> self;
private final GitRepositoryManager repoManager;
private final GitReferenceUpdated referenceUpdated;
- private final ChangeHooks hooks;
@Inject
- public DeleteImage(@PluginName String pluginName, Provider<IdentifiedUser> self,
- GitRepositoryManager repoManager, GitReferenceUpdated referenceUpdated,
- ChangeHooks hooks) {
+ public DeleteImage(@PluginName String pluginName,
+ Provider<IdentifiedUser> self,
+ GitRepositoryManager repoManager,
+ GitReferenceUpdated referenceUpdated) {
this.pluginName = pluginName;
this.self = self;
this.repoManager = repoManager;
this.referenceUpdated = referenceUpdated;
- this.hooks = hooks;
}
@Override
@@ -95,8 +93,7 @@
case NO_CHANGE:
case FAST_FORWARD:
case FORCED:
- referenceUpdated.fire(rsrc.getProject(), u);
- hooks.doRefUpdatedHook(rsrc.getBranchKey(), u, self.get().getAccount());
+ referenceUpdated.fire(rsrc.getProject(), u, self.get().getAccount());
break;
case REJECTED_CURRENT_BRANCH:
@@ -113,7 +110,7 @@
private void validateOwnImage(Repository repo, String ref)
throws IOException, ResourceNotFoundException, AuthException {
- Ref r = repo.getRef(ref);
+ Ref r = repo.exactRef(ref);
if (r == null) {
throw new ResourceNotFoundException(ref);
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/imagare/ImagareMenu.java b/src/main/java/com/googlesource/gerrit/plugins/imagare/ImagareMenu.java
index 975c6ae..2dbc0a9 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/imagare/ImagareMenu.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/imagare/ImagareMenu.java
@@ -15,6 +15,7 @@
package com.googlesource.gerrit.plugins.imagare;
import com.google.gerrit.extensions.annotations.PluginName;
+import com.google.gerrit.extensions.client.MenuItem;
import com.google.gerrit.extensions.webui.TopMenu;
import com.google.gerrit.server.config.PluginConfig;
import com.google.gerrit.server.config.PluginConfigFactory;
diff --git a/src/main/java/com/googlesource/gerrit/plugins/imagare/ImageServlet.java b/src/main/java/com/googlesource/gerrit/plugins/imagare/ImageServlet.java
index 4218fcc..69ef8d1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/imagare/ImageServlet.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/imagare/ImageServlet.java
@@ -142,7 +142,7 @@
if (ObjectId.isId(rev)) {
try (RevWalk rw = new RevWalk(repo)) {
RevCommit commit = rw.parseCommit(repo.resolve(rev));
- if (!projectControl.canReadCommit(db.get(), rw, commit)) {
+ if (!projectControl.canReadCommit(db.get(), repo, commit)) {
notFound(res);
return;
}
diff --git a/src/main/java/com/googlesource/gerrit/plugins/imagare/PostImage.java b/src/main/java/com/googlesource/gerrit/plugins/imagare/PostImage.java
index c41e75a..5b58590 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/imagare/PostImage.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/imagare/PostImage.java
@@ -14,7 +14,6 @@
package com.googlesource.gerrit.plugins.imagare;
-import com.google.gerrit.common.ChangeHooks;
import com.google.gerrit.extensions.annotations.PluginName;
import com.google.gerrit.extensions.restapi.AuthException;
import com.google.gerrit.extensions.restapi.BadRequestException;
@@ -23,7 +22,6 @@
import com.google.gerrit.extensions.restapi.ResourceConflictException;
import com.google.gerrit.extensions.restapi.Response;
import com.google.gerrit.extensions.restapi.RestModifyView;
-import com.google.gerrit.reviewdb.client.Branch;
import com.google.gerrit.reviewdb.client.Project;
import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.mime.FileTypeRegistry;
@@ -74,7 +72,6 @@
private final Provider<IdentifiedUser> self;
private final GitRepositoryManager repoManager;
private final GitReferenceUpdated referenceUpdated;
- private final ChangeHooks hooks;
private final PersonIdent myIdent;
private final String canonicalWebUrl;
private final Config cfg;
@@ -82,17 +79,20 @@
private final String pluginName;
@Inject
- public PostImage(FileTypeRegistry registry, Provider<IdentifiedUser> self,
- GitRepositoryManager repoManager, GitReferenceUpdated referenceUpdated,
- ChangeHooks hooks, @GerritPersonIdent PersonIdent myIdent,
- @CanonicalWebUrl String canonicalWebUrl, @GerritServerConfig Config cfg,
- Provider<ReviewDb> db, @PluginName String pluginName) {
+ public PostImage(FileTypeRegistry registry,
+ Provider<IdentifiedUser> self,
+ GitRepositoryManager repoManager,
+ GitReferenceUpdated referenceUpdated,
+ @GerritPersonIdent PersonIdent myIdent,
+ @CanonicalWebUrl String canonicalWebUrl,
+ @GerritServerConfig Config cfg,
+ Provider<ReviewDb> db,
+ @PluginName String pluginName) {
this.registry = registry;
this.imageDataPattern = Pattern.compile("data:([\\w/.-]+);([\\w]+),(.*)");
this.self = self;
this.repoManager = repoManager;
this.referenceUpdated = referenceUpdated;
- this.hooks = hooks;
this.myIdent = myIdent;
this.canonicalWebUrl = canonicalWebUrl;
this.cfg = cfg;
@@ -192,7 +192,7 @@
commitId = oi.insert(cb);
oi.flush();
- if (!rc.canCreate(db.get(), rw, rw.parseCommit(commitId))) {
+ if (!rc.canCreate(db.get(), repo, rw.parseCommit(commitId))) {
throw new AuthException(String.format(
"Project %s doesn't allow image upload.", pc.getProject().getName()));
}
@@ -202,9 +202,8 @@
ru.setNewObjectId(commitId);
ru.disableRefLog();
if (ru.update(rw) == RefUpdate.Result.NEW) {
- referenceUpdated.fire(pc.getProject().getNameKey(), ru);
- hooks.doRefUpdatedHook(new Branch.NameKey(pc.getProject()
- .getNameKey(), ref), ru, self.get().getAccount());
+ referenceUpdated.fire(pc.getProject().getNameKey(), ru,
+ self.get().getAccount());
} else {
throw new IOException(String.format(
"Failed to create ref %s in %s: %s", ref,
diff --git a/src/main/resources/Documentation/about.md b/src/main/resources/Documentation/about.md
index 9279cb3..0ae87f3 100644
--- a/src/main/resources/Documentation/about.md
+++ b/src/main/resources/Documentation/about.md
@@ -41,12 +41,12 @@
To configure an external image server the image server that comes with
the plugin must be disabled. This is done by setting the
-[enableImageServer](config.html#enable-image-server) to `false`.
+[enableImageServer](config.md#enable-image-server) to `false`.
A regular expression to match URLs of images that should be embedded
-must be configured as [pattern](config.html#pattern).
+must be configured as [pattern](config.md#pattern).
-Optionally also a [URL for uploading images](config.html#upload-url)
+Optionally also a [URL for uploading images](config.md#upload-url)
can be defined.
```
diff --git a/src/main/resources/Documentation/rest-api-projects.md b/src/main/resources/Documentation/rest-api-projects.md
index 9e738eb..cbd7f59 100644
--- a/src/main/resources/Documentation/rest-api-projects.md
+++ b/src/main/resources/Documentation/rest-api-projects.md
@@ -22,7 +22,7 @@
[Create Reference](../../../Documentation/access-control.html#category_create)
access right on the `refs/images/*` namespace of the project.
-Only available if [image server is enabled](config.html#enable-image-server).
+Only available if [image server is enabled](config.md#enable-image-server).
#### Request
@@ -52,7 +52,7 @@
granted the `Delete Own Images` global capability which allows deleting
own images.
-Only available if [image server is enabled](config.html#enable-image-server).
+Only available if [image server is enabled](config.md#enable-image-server).
#### Request
diff --git a/src/main/resources/static/imagare.js b/src/main/resources/static/imagare.js
index 971becf..91bec6f 100644
--- a/src/main/resources/static/imagare.js
+++ b/src/main/resources/static/imagare.js
@@ -13,24 +13,20 @@
// limitations under the License.
Gerrit.install(function(self) {
- function onHistory(t) {
- if (!startsWith(t, "/c/")) {
- return;
- }
-
+ function onComment(e) {
var prefs = getPrefsFromCookie();
if (prefs !== null) {
- convertImageLinks(prefs);
+ convertImageLinks(getLinks(e), prefs);
} else {
Gerrit.get('/accounts/self/' + self.getPluginName() + '~preference', function(prefs) {
storePrefsInCookie(prefs);
- convertImageLinks(prefs);
+ convertImageLinks(getLinks(e), prefs);
});
}
}
- function startsWith(s, p) {
- return s.slice(0, p.length) == p;
+ function getLinks(e) {
+ return e.getElementsByTagName("a");
}
function storePrefsInCookie(prefs) {
@@ -64,20 +60,19 @@
return self.getPluginName() + "~prefs";
}
- function convertImageLinks(prefs) {
+ function convertImageLinks(l, prefs) {
if (!prefs.pattern) {
return;
}
if ('TOOLTIP' === prefs.link_decoration) {
- addTooltips(prefs.pattern);
+ addTooltips(l, prefs.pattern);
} else if ('INLINE' === prefs.link_decoration) {
- inlineImages(prefs.pattern);
+ inlineImages(l, prefs.pattern);
}
}
- function inlineImages(pattern) {
- var l = document.links;
+ function inlineImages(l, pattern) {
for(var i = 0; i < l.length; i++) {
if (l[i].href.match(pattern)) {
var a = document.createElement('a');
@@ -92,7 +87,6 @@
}
function addTooltips(pattern) {
- var l = document.links;
for(var i = 0; i < l.length; i++) {
if (l[i].href.match(pattern)) {
l[i].onmouseover = function (evt) {
@@ -108,5 +102,5 @@
}
}
- Gerrit.on('history', onHistory);
+ Gerrit.on('comment', onComment);
});