James Moger
2015-03-07 520a470b22ea53bd8b418aaac498a8672e2c0779
Add a checkbox to control whitespace diff preference on the compare page
2 files modified
22 ■■■■■ changed files
src/main/java/com/gitblit/wicket/pages/ComparePage.html 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/ComparePage.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/ComparePage.html
@@ -18,6 +18,7 @@
                    <select wicket:id="fromRef" class="span3" />
                    <i class="icon-arrow-right"></i>
                    <select wicket:id="toRef" class="span3" />
                      <label style="padding:0px 5px;" class="checkbox"><input type="checkbox" wicket:id="ignoreWhitespaceCheckbox" /> <span wicket:id="ignoreWhitespaceLabel"></span></label>
                    <button class="btn" type="submit"><wicket:message key="gb.compare"></wicket:message></button>
                </form>
            </div>
@@ -26,6 +27,7 @@
                    <input wicket:id="fromId" type="text" class="span3" />
                    <i class="icon-arrow-right"></i>
                    <input wicket:id="toId" type="text" class="span3" />
                    <label style="padding:0px 5px;" class="checkbox"><input type="checkbox" wicket:id="ignoreWhitespaceCheckbox" /> <span wicket:id="ignoreWhitespaceLabel"></span></label>
                    <button class="btn" type="submit"><wicket:message key="gb.compare"></wicket:message></button>
                </form>
            </div>
src/main/java/com/gitblit/wicket/pages/ComparePage.java
@@ -21,6 +21,7 @@
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
@@ -69,6 +70,8 @@
    IModel<String> fromRefId = new Model<String>("");
    IModel<String> toRefId = new Model<String>("");
    IModel<Boolean> ignoreWhitespace = Model.of(true);
    public ComparePage(PageParameters params) {
        super(params);
@@ -214,6 +217,10 @@
            comparison.add(new Label("diffText", diff.content).setEscapeModelStrings(false));
        }
        // set the default DiffComparator
        DiffComparator diffComparator = WicketUtils.getDiffComparator(params);
        ignoreWhitespace.setObject(DiffComparator.IGNORE_WHITESPACE == diffComparator);
        //
        // ref selection form
        //
@@ -225,8 +232,13 @@
            public void onSubmit() {
                String from = ComparePage.this.fromRefId.getObject();
                String to = ComparePage.this.toRefId.getObject();
                boolean ignoreWS = ignoreWhitespace.getObject();
                PageParameters params = WicketUtils.newRangeParameter(repositoryName, from, to);
                if (ignoreWS) {
                    params.put("w", 1);
                }
                String relativeUrl = urlFor(ComparePage.class, params).toString();
                String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
                getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));
@@ -247,6 +259,8 @@
        }
        refsForm.add(new DropDownChoice<String>("fromRef", fromRefId, refs).setEnabled(refs.size() > 0));
        refsForm.add(new DropDownChoice<String>("toRef", toRefId, refs).setEnabled(refs.size() > 0));
        refsForm.add(new Label("ignoreWhitespaceLabel", getString(DiffComparator.IGNORE_WHITESPACE.getTranslationKey())));
        refsForm.add(new CheckBox("ignoreWhitespaceCheckbox", ignoreWhitespace));
        add(refsForm);
        //
@@ -260,8 +274,12 @@
            public void onSubmit() {
                String from = ComparePage.this.fromCommitId.getObject();
                String to = ComparePage.this.toCommitId.getObject();
                boolean ignoreWS = ignoreWhitespace.getObject();
                PageParameters params = WicketUtils.newRangeParameter(repositoryName, from, to);
                if (ignoreWS) {
                    params.put("w", 1);
                }
                String relativeUrl = urlFor(ComparePage.class, params).toString();
                String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
                getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));
@@ -275,6 +293,8 @@
        TextField<String> toIdField = new TextField<String>("toId", toCommitId);
        WicketUtils.setInputPlaceholder(toIdField, getString("gb.to") + "...");
        idsForm.add(toIdField);
        idsForm.add(new Label("ignoreWhitespaceLabel", getString(DiffComparator.IGNORE_WHITESPACE.getTranslationKey())));
        idsForm.add(new CheckBox("ignoreWhitespaceCheckbox", ignoreWhitespace));
        add(idsForm);
        r.close();