krulls
2015-02-23 47a544e3ffcd20f968a505b0efa61e99cf3af46a
issue-564: enable ticket page update on tomcat with redirects

issue-564: fix imports

issue-564
2 files modified
39 ■■■■ changed files
src/main/java/com/gitblit/wicket/pages/TicketPage.java 16 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/panels/CommentPanel.java 23 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/TicketPage.java
@@ -378,7 +378,7 @@
                                }
                                TicketModel update = app().tickets().updateTicket(repository, ticket.number, change);
                                app().tickets().createNotifier().sendMailing(update);
                                setResponsePage(TicketsPage.class, getPageParameters());
                                redirectTo(TicketsPage.class, getPageParameters());
                            }
                        };
                        String css = TicketsUI.getStatusClass(item.getModel().getObject());
@@ -442,7 +442,7 @@
                                }
                                TicketModel update = app().tickets().updateTicket(repository, ticket.number, change);
                                app().tickets().createNotifier().sendMailing(update);
                                setResponsePage(TicketsPage.class, getPageParameters());
                                redirectTo(TicketsPage.class, getPageParameters());
                            }
                        };
                        item.add(link);
@@ -487,7 +487,7 @@
                                }
                                TicketModel update = app().tickets().updateTicket(repository, ticket.number, change);
                                app().tickets().createNotifier().sendMailing(update);
                                setResponsePage(TicketsPage.class, getPageParameters());
                                redirectTo(TicketsPage.class, getPageParameters());
                            }
                        };
                        item.add(link);
@@ -560,7 +560,7 @@
                        change.vote(user.username);
                    }
                    app().tickets().updateTicket(repository, ticket.number, change);
                    setResponsePage(TicketsPage.class, getPageParameters());
                    redirectTo(TicketsPage.class, getPageParameters());
                }
            };
            add(link);
@@ -600,7 +600,7 @@
                        change.watch(user.username);
                    }
                    app().tickets().updateTicket(repository, ticket.number, change);
                    setResponsePage(TicketsPage.class, getPageParameters());
                    redirectTo(TicketsPage.class, getPageParameters());
                }
            };
            add(link);
@@ -1297,7 +1297,7 @@
        }
        TicketModel updatedTicket = app().tickets().updateTicket(getRepositoryModel(), ticket.number, change);
        app().tickets().createNotifier().sendMailing(updatedTicket);
        setResponsePage(TicketsPage.class, getPageParameters());
        redirectTo(TicketsPage.class, getPageParameters());
    }
    protected <X extends MarkupContainer> X setNewTarget(X x) {
@@ -1408,8 +1408,8 @@
                                GitBlitWebSession.get().cacheErrorMessage(msg);
                                logger.error(msg);
                            }
                            setResponsePage(TicketsPage.class, getPageParameters());
                            redirectTo(TicketsPage.class, getPageParameters());
                        }
                    };
                    mergePanel.add(mergeButton);
src/main/java/com/gitblit/wicket/panels/CommentPanel.java
@@ -15,12 +15,15 @@
 */
package com.gitblit.wicket.panels;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.protocol.http.RequestUtils;
import org.apache.wicket.request.target.basic.RedirectRequestTarget;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.TicketModel;
@@ -79,7 +82,7 @@
                    TicketModel updatedTicket = app().tickets().updateTicket(repository, ticket.number, newComment);
                    if (updatedTicket != null) {
                        app().tickets().createNotifier().sendMailing(updatedTicket);
                        setResponsePage(pageClass, WicketUtils.newObjectParameter(updatedTicket.repository, "" + ticket.number));
                        redirectTo(pageClass, WicketUtils.newObjectParameter(updatedTicket.repository, "" + ticket.number));
                    } else {
                        error("Failed to add comment!");
                    }
@@ -87,6 +90,24 @@
                    // TODO update comment
                }
            }
            /**
             * Steal from BasePage to realize redirection.
             *
             * @see BasePage
             * @author krulls@GitHub; ECG Leipzig GmbH, Germany, 2015
             *
             * @param pageClass
             * @param parameters
             * @return
             */
            private void redirectTo(Class<? extends BasePage> pageClass, PageParameters parameters)
            {
                String relativeUrl = urlFor(pageClass, parameters).toString();
                String canonicalUrl = RequestUtils.toAbsolutePath(relativeUrl);
                getRequestCycle().setRequestTarget(new RedirectRequestTarget(canonicalUrl));
            }
        }.setVisible(ticket != null && ticket.number > 0));
        final IModel<String> markdownPreviewModel = Model.of();