| | |
| | |
|
| | | private NameRenderer nameRenderer;
|
| | |
|
| | | private TypeRenderer typeRenderer;
|
| | | private IndicatorsRenderer typeRenderer;
|
| | |
|
| | | private DefaultTableCellRenderer ownerRenderer;
|
| | |
|
| | |
| | | this.account = account;
|
| | | this.password = password;
|
| | |
|
| | | final JButton browseRepository = new JButton("Browse");
|
| | | final JButton browseRepository = new JButton(Translation.get("gb.browse"));
|
| | | browseRepository.setEnabled(false);
|
| | | browseRepository.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | JButton refreshRepositories = new JButton("Refresh");
|
| | | JButton refreshRepositories = new JButton(Translation.get("gb.refresh"));
|
| | | refreshRepositories.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | | try {
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | createRepository = new JButton("Create");
|
| | | createRepository = new JButton(Translation.get("gb.create"));
|
| | | createRepository.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | | createRepository();
|
| | | }
|
| | | });
|
| | |
|
| | | final JButton editRepository = new JButton("Edit");
|
| | | final JButton editRepository = new JButton(Translation.get("gb.edit"));
|
| | | editRepository.setEnabled(false);
|
| | | editRepository.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | delRepository = new JButton("Delete");
|
| | | delRepository = new JButton(Translation.get("gb.delete"));
|
| | | delRepository.setEnabled(false);
|
| | | delRepository.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | final JButton cloneRepository = new JButton("Clone");
|
| | | final JButton cloneRepository = new JButton(Translation.get("gb.clone"));
|
| | | cloneRepository.setEnabled(false);
|
| | | cloneRepository.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | |
| | | });
|
| | |
|
| | | nameRenderer = new NameRenderer();
|
| | | typeRenderer = new TypeRenderer();
|
| | | typeRenderer = new IndicatorsRenderer();
|
| | |
|
| | | sizeRenderer = new DefaultTableCellRenderer();
|
| | | sizeRenderer.setHorizontalAlignment(SwingConstants.RIGHT);
|
| | |
| | | repositoriesTable.setDefaultRenderer(Date.class,
|
| | | new DateCellRenderer(null, Color.orange.darker()));
|
| | | setRenderer(RepositoriesModel.Columns.Name, nameRenderer);
|
| | | setRenderer(RepositoriesModel.Columns.Type, typeRenderer);
|
| | | setRenderer(RepositoriesModel.Columns.Indicators, typeRenderer);
|
| | | setRenderer(RepositoriesModel.Columns.Owner, ownerRenderer);
|
| | | setRenderer(RepositoriesModel.Columns.Size, sizeRenderer);
|
| | |
|
| | |
| | | });
|
| | |
|
| | | JPanel filterPanel = new JPanel(new BorderLayout(margin, margin));
|
| | | filterPanel.add(new JLabel("Filter"), BorderLayout.WEST);
|
| | | filterPanel.add(new JLabel(Translation.get("gb.filter")), BorderLayout.WEST);
|
| | | filterPanel.add(repositoryFilter, BorderLayout.CENTER);
|
| | |
|
| | | JPanel tablePanel = new JPanel(new BorderLayout(margin, margin));
|
| | |
| | | repositoryControls.add(delRepository);
|
| | |
|
| | | JPanel repositoriesPanel = new JPanel(new BorderLayout(margin, margin));
|
| | | repositoriesPanel.add(newHeaderLabel("Repositories"), BorderLayout.NORTH);
|
| | | repositoriesPanel.add(newHeaderLabel(Translation.get("gb.repositories")),
|
| | | BorderLayout.NORTH);
|
| | | repositoriesPanel.add(tablePanel, BorderLayout.CENTER);
|
| | | repositoriesPanel.add(repositoryControls, BorderLayout.SOUTH);
|
| | |
|
| | | JButton refreshUsers = new JButton("Refresh");
|
| | | JButton refreshUsers = new JButton(Translation.get("gb.refresh"));
|
| | | refreshUsers.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | | try {
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | JButton createUser = new JButton("Create");
|
| | | JButton createUser = new JButton(Translation.get("gb.create"));
|
| | | createUser.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | | createUser();
|
| | | }
|
| | | });
|
| | |
|
| | | final JButton editUser = new JButton("Edit");
|
| | | final JButton editUser = new JButton(Translation.get("gb.edit"));
|
| | | editUser.setEnabled(false);
|
| | | editUser.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | final JButton delUser = new JButton("Delete");
|
| | | final JButton delUser = new JButton(Translation.get("gb.delete"));
|
| | | delUser.setEnabled(false);
|
| | | delUser.addActionListener(new ActionListener() {
|
| | | public void actionPerformed(ActionEvent e) {
|
| | |
| | | userControls.add(delUser);
|
| | |
|
| | | usersPanel = new JPanel(new BorderLayout(margin, margin));
|
| | | usersPanel.add(newHeaderLabel("Users"), BorderLayout.NORTH);
|
| | | usersPanel.add(newHeaderLabel(Translation.get("gb.users")), BorderLayout.NORTH);
|
| | | usersPanel.add(new JScrollPane(usersList), BorderLayout.CENTER);
|
| | | usersPanel.add(userControls, BorderLayout.SOUTH);
|
| | |
|
| | |
| | | mainPanel.add(usersPanel, BorderLayout.EAST);
|
| | |
|
| | | tabs = new JTabbedPane(JTabbedPane.BOTTOM);
|
| | | tabs.addTab("Main", mainPanel);
|
| | | tabs.addTab("Federation", new JPanel());
|
| | | tabs.addTab(Translation.get("gb.repositories"), mainPanel);
|
| | | tabs.addTab(Translation.get("gb.federation"), new JPanel());
|
| | |
|
| | | setLayout(new BorderLayout());
|
| | | add(tabs, BorderLayout.CENTER);
|
| | |
| | | *
|
| | | */
|
| | | protected void createRepository() {
|
| | | EditRepositoryDialog dialog = new EditRepositoryDialog(allUsers);
|
| | | List<String> usernames = new ArrayList<String>();
|
| | | for (UserModel user : this.allUsers) {
|
| | | usernames.add(user.username);
|
| | | }
|
| | | Collections.sort(usernames);
|
| | | EditRepositoryDialog dialog = new EditRepositoryDialog();
|
| | | dialog.setUsers(null, usernames, null);
|
| | | dialog.setRepositories(allRepositories);
|
| | | dialog.setVisible(true);
|
| | | final RepositoryModel newRepository = dialog.getRepository();
|
| | | final List<String> permittedUsers = dialog.getPermittedUsers();
|
| | | if (newRepository == null) {
|
| | | return;
|
| | | }
|
| | |
| | |
|
| | | @Override
|
| | | protected Boolean doInBackground() throws IOException {
|
| | | return RpcUtils.createRepository(newRepository, url, account, password);
|
| | | boolean success = true;
|
| | | success &= RpcUtils.createRepository(newRepository, url, account, password);
|
| | | if (permittedUsers.size() > 0) {
|
| | | // if new repository has named members, set them
|
| | | success &= RpcUtils.setRepositoryMembers(newRepository, permittedUsers, url,
|
| | | account, password);
|
| | | }
|
| | | return success;
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | boolean success = get();
|
| | | if (success) {
|
| | | refreshRepositoriesTable();
|
| | | if (permittedUsers.size() > 0) {
|
| | | refreshUsersTable();
|
| | | }
|
| | | } else {
|
| | | String msg = MessageFormat.format(
|
| | | "Failed to execute request \"{0}\" for repository \"{1}\".",
|
| | | request.name(), newRepository.name);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg, "Error!",
|
| | | JOptionPane.ERROR_MESSAGE);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg,
|
| | | Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
|
| | | }
|
| | | } catch (ForbiddenException e) {
|
| | | explainForbidden(request);
|
| | |
| | | * @param repository
|
| | | */
|
| | | protected void editRepository(final RepositoryModel repository) {
|
| | | EditRepositoryDialog dialog = new EditRepositoryDialog(repository, allUsers);
|
| | | EditRepositoryDialog dialog = new EditRepositoryDialog(repository);
|
| | | List<String> members = new ArrayList<String>();
|
| | | List<String> usernames = new ArrayList<String>();
|
| | | for (UserModel user : this.allUsers) {
|
| | | usernames.add(user.username);
|
| | | if (user.repositories.contains(repository.name)) {
|
| | | members.add(user.username);
|
| | | }
|
| | | }
|
| | | Collections.sort(usernames);
|
| | | dialog.setUsers(usernames, null);
|
| | | dialog.setUsers(repository.owner, usernames, members);
|
| | | dialog.setFederationSets(settings.getStrings(Keys.federation.sets),
|
| | | repository.federationSets);
|
| | | dialog.setVisible(true);
|
| | | final RepositoryModel revisedRepository = dialog.getRepository();
|
| | | final List<String> permittedUsers = dialog.getPermittedUsers();
|
| | | if (revisedRepository == null) {
|
| | | return;
|
| | | }
|
| | |
| | |
|
| | | @Override
|
| | | protected Boolean doInBackground() throws IOException {
|
| | | return RpcUtils.updateRepository(repository.name, revisedRepository, url, account,
|
| | | boolean success = true;
|
| | | success &= RpcUtils.updateRepository(repository.name, revisedRepository, url,
|
| | | account, password);
|
| | | // always set the repository members
|
| | | success &= RpcUtils.setRepositoryMembers(repository, permittedUsers, url, account,
|
| | | password);
|
| | | return success;
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | boolean success = get();
|
| | | if (success) {
|
| | | refreshRepositoriesTable();
|
| | | refreshUsersTable();
|
| | | } else {
|
| | | String msg = MessageFormat.format(
|
| | | "Failed to execute request \"{0}\" for repository \"{1}\".",
|
| | | request.name(), repository.name);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg, "Error!",
|
| | | JOptionPane.ERROR_MESSAGE);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg,
|
| | | Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
|
| | | }
|
| | | } catch (ForbiddenException e) {
|
| | | explainForbidden(request);
|
| | |
| | | refreshRepositoriesTable();
|
| | | } else {
|
| | | String msg = "Failed to delete specified repositories!";
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg, "Error!",
|
| | | JOptionPane.ERROR_MESSAGE);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg,
|
| | | Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
|
| | | }
|
| | | } catch (ForbiddenException e) {
|
| | | explainForbidden(request);
|
| | |
| | | */
|
| | | protected void createUser() {
|
| | | EditUserDialog dialog = new EditUserDialog(settings);
|
| | | dialog.setUsers(allUsers);
|
| | | dialog.setRepositories(allRepositories, null);
|
| | | dialog.setVisible(true);
|
| | | final UserModel newUser = dialog.getUser();
|
| | |
| | | String msg = MessageFormat.format(
|
| | | "Failed to execute request \"{0}\" for user \"{1}\".",
|
| | | request.name(), newUser.username);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg, "Error!",
|
| | | JOptionPane.ERROR_MESSAGE);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg,
|
| | | Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
|
| | | }
|
| | | } catch (ForbiddenException e) {
|
| | | explainForbidden(request);
|
| | |
| | | String msg = MessageFormat.format(
|
| | | "Failed to execute request \"{0}\" for user \"{1}\".",
|
| | | request.name(), user.username);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg, "Error!",
|
| | | JOptionPane.ERROR_MESSAGE);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg,
|
| | | Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
|
| | | }
|
| | | } catch (ForbiddenException e) {
|
| | | explainForbidden(request);
|
| | |
| | | refreshUsersTable();
|
| | | } else {
|
| | | String msg = "Failed to delete specified users!";
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg, "Error!",
|
| | | JOptionPane.ERROR_MESSAGE);
|
| | | JOptionPane.showMessageDialog(GitblitPanel.this, msg,
|
| | | Translation.get("gb.error"), JOptionPane.ERROR_MESSAGE);
|
| | | }
|
| | | } catch (ForbiddenException e) {
|
| | | explainForbidden(request);
|