James Moger
2011-04-27 f97bf09263fe8ef7ba4dcf231dfe7b8265b1e0df
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
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 com.gitblit.GitBlit;
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);
        RepositoryModel model = GitBlit.self().getRepositoryModel(name);
        setupPage(model);
    }
 
    protected void setupPage(final RepositoryModel repositoryModel) {
        if (isCreate) {
            super.setupPage("", getString("gb.newRepository"));
        } else {
            super.setupPage("", getString("gb.edit"));
        }
        CompoundPropertyModel<RepositoryModel> model = new CompoundPropertyModel<RepositoryModel>(repositoryModel);
        Form<RepositoryModel> form = new Form<RepositoryModel>("editForm", model) {
 
            private static final long serialVersionUID = 1L;
 
            @Override
            protected void onSubmit() {
                GitBlit.self().editRepositoryModel(repositoryModel, isCreate);
                setRedirect(true);
                setResponsePage(RepositoriesPage.class);
            }
        };
        
        // field names reflective match RepositoryModel fields
        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);
    }
}