From 3f5b8f5d9203aa7ffb7fbe9cdbaf9dba3da6cae6 Mon Sep 17 00:00:00 2001 From: Hybris95 <hybris_95@hotmail.com> Date: Thu, 01 May 2014 16:14:15 -0400 Subject: [PATCH] Fixes sort, page building and search functions on "my tickets" page. --- src/main/java/com/gitblit/servlet/RpcServlet.java | 53 ++++++++++++++++++++++++++++++++++------------------- 1 files changed, 34 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/gitblit/servlet/RpcServlet.java b/src/main/java/com/gitblit/servlet/RpcServlet.java index 481a8ba..2d59ebd 100644 --- a/src/main/java/com/gitblit/servlet/RpcServlet.java +++ b/src/main/java/com/gitblit/servlet/RpcServlet.java @@ -23,8 +23,6 @@ import java.util.List; import java.util.Map; -import javax.inject.Inject; -import javax.inject.Singleton; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -49,30 +47,28 @@ import com.gitblit.utils.RpcUtils; import com.gitblit.utils.StringUtils; +import dagger.ObjectGraph; + /** * Handles remote procedure calls. * * @author James Moger * */ -@Singleton public class RpcServlet extends JsonServlet { private static final long serialVersionUID = 1L; - public static final int PROTOCOL_VERSION = 6; + public static final int PROTOCOL_VERSION = 7; - private final IStoredSettings settings; + private IStoredSettings settings; - private final IGitblit gitblit; + private IGitblit gitblit; - @Inject - public RpcServlet(IGitblit gitblit) { - - super(); - - this.settings = gitblit.getSettings(); - this.gitblit = gitblit; + @Override + protected void inject(ObjectGraph dagger) { + this.settings = dagger.get(IStoredSettings.class); + this.gitblit = dagger.get(IGitblit.class); } /** @@ -105,7 +101,10 @@ result = PROTOCOL_VERSION; } else if (RpcRequest.LIST_REPOSITORIES.equals(reqType)) { // Determine the Gitblit clone url - String gitblitUrl = HttpUtils.getGitblitURL(request); + String gitblitUrl = settings.getString(Keys.web.canonicalUrl, null); + if (StringUtils.isEmpty(gitblitUrl)) { + gitblitUrl = HttpUtils.getGitblitURL(request); + } StringBuilder sb = new StringBuilder(); sb.append(gitblitUrl); sb.append(Constants.R_PATH); @@ -218,7 +217,7 @@ // create user UserModel model = deserialize(request, response, UserModel.class); try { - gitblit.updateUserModel(model.username, model, true); + gitblit.addUser(model); } catch (GitBlitException e) { response.setStatus(failureCode); } @@ -231,7 +230,7 @@ username = model.username; } try { - gitblit.updateUserModel(username, model, false); + gitblit.reviseUser(username, model); } catch (GitBlitException e) { response.setStatus(failureCode); } @@ -245,7 +244,7 @@ // create team TeamModel model = deserialize(request, response, TeamModel.class); try { - gitblit.updateTeamModel(model.name, model, true); + gitblit.addTeam(model); } catch (GitBlitException e) { response.setStatus(failureCode); } @@ -258,7 +257,7 @@ teamname = model.name; } try { - gitblit.updateTeamModel(teamname, model, false); + gitblit.reviseTeam(teamname, model); } catch (GitBlitException e) { response.setStatus(failureCode); } @@ -324,7 +323,10 @@ } else if (RpcRequest.LIST_FEDERATION_SETS.equals(reqType)) { // return the list of federation sets if (allowAdmin && gitblit.canFederate()) { - String gitblitUrl = HttpUtils.getGitblitURL(request); + String gitblitUrl = settings.getString(Keys.web.canonicalUrl, null); + if (StringUtils.isEmpty(gitblitUrl)) { + gitblitUrl = HttpUtils.getGitblitURL(request); + } result = gitblit.getFederationSets(gitblitUrl); } else { response.sendError(notAllowedCode); @@ -381,6 +383,19 @@ } else { response.sendError(notAllowedCode); } + } else if (RpcRequest.REINDEX_TICKETS.equals(reqType)) { + if (allowManagement) { + if (StringUtils.isEmpty(objectName)) { + // reindex all tickets + gitblit.getTicketService().reindex(); + } else { + // reindex tickets in a specific repository + RepositoryModel model = gitblit.getRepositoryModel(objectName); + gitblit.getTicketService().reindex(model); + } + } else { + response.sendError(notAllowedCode); + } } // send the result of the request -- Gitblit v1.9.1