James Moger
2011-04-25 1e83907b001a2df3f14a35fc36c47ea8f49155c4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package com.gitblit.wicket.pages;
 
import java.util.Date;
 
import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.eclipse.jgit.lib.Repository;
 
import com.gitblit.GitBlit;
import com.gitblit.utils.JGitUtils;
import com.gitblit.wicket.AdminPage;
import com.gitblit.wicket.BasePage;
import com.gitblit.wicket.WicketUtils;
import com.gitblit.wicket.models.RepositoryModel;
 
@AdminPage
public class EditRepositoryPage extends BasePage {
 
    private final boolean isCreate;
 
    public EditRepositoryPage() {
        // create constructor
        super();
        isCreate = true;
        setupPage(new RepositoryModel("", "", "", new Date()));
    }
 
    public EditRepositoryPage(PageParameters params) {
        // edit constructor
        super(params);
        isCreate = false;
        String name = WicketUtils.getRepositoryName(params);
        Repository r = GitBlit.self().getRepository(name);
        String description = JGitUtils.getRepositoryDescription(r);
        String owner = JGitUtils.getRepositoryOwner(r);
        String group = JGitUtils.getRepositoryGroup(r);
        RepositoryModel model = new RepositoryModel(name, description, owner, new Date());
        model.group = group;
        model.useTickets = JGitUtils.getRepositoryUseTickets(r);
        model.useDocs = JGitUtils.getRepositoryUseDocs(r);
        model.useRestrictedAccess = JGitUtils.getRepositoryRestrictedAccess(r);
        setupPage(model);
    }
 
    protected void setupPage(final RepositoryModel repository) {
        if (isCreate) {
            super.setupPage("", getString("gb.newRepository"));
        } else {
            super.setupPage("", getString("gb.edit"));
        }
        CompoundPropertyModel<RepositoryModel> model = new CompoundPropertyModel<RepositoryModel>(repository);
        Form<RepositoryModel> form = new Form<RepositoryModel>("editForm", model) {
 
            private static final long serialVersionUID = 1L;
 
            @Override
            protected void onSubmit() {
                GitBlit.self().editRepository(repository, isCreate);
                setRedirect(true);
                setResponsePage(RepositoriesPage.class);
            }
        };
        form.add(new TextField<String>("name").setEnabled(isCreate));
        form.add(new TextField<String>("description"));
        form.add(new TextField<String>("owner"));
        form.add(new TextField<String>("group"));
        form.add(new CheckBox("useTickets"));
        form.add(new CheckBox("useDocs"));
 
        add(form);
    }
}