You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

EditRepositoryPage.java 2.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package com.gitblit.wicket.pages;
  2. import java.util.Arrays;
  3. import java.util.Date;
  4. import org.apache.wicket.PageParameters;
  5. import org.apache.wicket.markup.html.form.CheckBox;
  6. import org.apache.wicket.markup.html.form.DropDownChoice;
  7. import org.apache.wicket.markup.html.form.Form;
  8. import org.apache.wicket.markup.html.form.TextField;
  9. import org.apache.wicket.model.CompoundPropertyModel;
  10. import com.gitblit.Constants.AccessRestrictionType;
  11. import com.gitblit.GitBlit;
  12. import com.gitblit.GitBlitException;
  13. import com.gitblit.wicket.AdminPage;
  14. import com.gitblit.wicket.BasePage;
  15. import com.gitblit.wicket.WicketUtils;
  16. import com.gitblit.wicket.models.RepositoryModel;
  17. @AdminPage
  18. public class EditRepositoryPage extends BasePage {
  19. private final boolean isCreate;
  20. public EditRepositoryPage() {
  21. // create constructor
  22. super();
  23. isCreate = true;
  24. setupPage(new RepositoryModel("", "", "", new Date()));
  25. }
  26. public EditRepositoryPage(PageParameters params) {
  27. // edit constructor
  28. super(params);
  29. isCreate = false;
  30. String name = WicketUtils.getRepositoryName(params);
  31. RepositoryModel model = GitBlit.self().getRepositoryModel(name);
  32. setupPage(model);
  33. }
  34. protected void setupPage(final RepositoryModel repositoryModel) {
  35. if (isCreate) {
  36. super.setupPage("", getString("gb.newRepository"));
  37. } else {
  38. super.setupPage("", getString("gb.edit") + " " + repositoryModel.name);
  39. }
  40. CompoundPropertyModel<RepositoryModel> model = new CompoundPropertyModel<RepositoryModel>(repositoryModel);
  41. Form<RepositoryModel> form = new Form<RepositoryModel>("editForm", model) {
  42. private static final long serialVersionUID = 1L;
  43. @Override
  44. protected void onSubmit() {
  45. try {
  46. GitBlit.self().editRepositoryModel(repositoryModel, isCreate);
  47. } catch (GitBlitException e) {
  48. error(e.getMessage());
  49. return;
  50. }
  51. setRedirect(true);
  52. setResponsePage(RepositoriesPage.class);
  53. }
  54. };
  55. // field names reflective match RepositoryModel fields
  56. form.add(new TextField<String>("name").setEnabled(isCreate));
  57. form.add(new TextField<String>("description"));
  58. form.add(new TextField<String>("owner"));
  59. form.add(new DropDownChoice<AccessRestrictionType>("accessRestriction", Arrays.asList(AccessRestrictionType.values())));
  60. form.add(new CheckBox("useTickets"));
  61. form.add(new CheckBox("useDocs"));
  62. form.add(new CheckBox("showRemoteBranches"));
  63. add(form);
  64. }
  65. }