/php/component/groups_viewer.class.php
https://bitbucket.org/chamilo/chamilo-ext-repo-bitbucket-dev/ · PHP · 92 lines · 76 code · 16 blank · 0 comment · 3 complexity · 797b2bd958b614286b49512ce9d551da MD5 · raw file
- <?php
- namespace common\extensions\external_repository_manager\implementation\bitbucket;
-
- use repository;
-
- use common\libraries\Request;
- use common\libraries\ToolbarItem;
- use common\libraries\Translation;
- use common\libraries\Theme;
- use common\libraries\SortableTableFromArray;
- use common\libraries\ActionBarRenderer;
-
- use common\extensions\external_repository_manager\ExternalRepositoryManager;
- use common\extensions\external_repository_manager\ExternalRepositoryComponent;
-
- use repository\ExternalSetting;
-
- class BitbucketExternalRepositoryManagerGroupsViewerComponent extends BitbucketExternalRepositoryManager
- {
- private $bitbucket;
-
- function run()
- {
- $this->display_header();
-
- echo ($this->get_action_bar()->as_html());
-
- $groups = $this->get_external_repository_manager_connector()->retrieve_groups(ExternalSetting :: get('username', $this->get_external_repository()->get_id()));
- if ($groups)
- {
- $list_groups = array();
- foreach ($groups as $group)
- {
- $group_row = array();
- $group_row[] = $group->get_name();
- $group_row[] = $group->get_permission();
-
- $member_row = array();
- foreach ($group->get_members() as $member)
- {
- $member_row[] = '<option>';
- if (! $member->first_name || ! $member->last_name)
- {
- $member_row[] = $member->username;
- }
- else
- {
- $member_row[] = $member->first_name;
- $member_row[] = ' ' . $member->last_name;
- $member_row[] = ' (' . $member->username . ')';
- }
- $member_row[] = '</option>';
- }
-
- $group_row[] = '<select>' . implode('', $member_row) . '</select>';
- $actions = array();
-
- $toolbar_item = new ToolbarItem(Translation :: get('Delete'), Theme :: get_common_image_path() . 'action_delete.png', $this->get_external_repository_group_deleting_url($group->get_id()), ToolbarItem :: DISPLAY_ICON);
- $actions[] = $toolbar_item->as_html();
- $toolbar_item = new ToolbarItem(Translation :: get('AddUser'), Theme :: get_image_path() . 'action_add_user.png', $this->get_external_repository_adding_user_url($group->get_id()), ToolbarItem :: DISPLAY_ICON);
- $actions[] = $toolbar_item->as_html();
- $toolbar_item = new ToolbarItem(Translation :: get('DeleteUser'), Theme :: get_image_path() . 'action_delete_user.png', $this->get_external_repository_deleting_user_url($group->get_id()), ToolbarItem :: DISPLAY_ICON);
- $actions[] = $toolbar_item->as_html();
- $group_row[] = implode(' ', $actions);
- $list_groups[] = $group_row;
- }
-
- $table = new SortableTableFromArray($list_groups);
- $table->set_header(0, Translation :: get('Name'));
- $table->set_header(1, Translation :: get('Permission'));
- $table->set_header(2, Translation :: get('Members'));
- $table->set_header(3, '');
-
- echo ($table->as_html());
- }
- else
- {
- $this->display_warning_message(Translation :: get('NoGroups'));
- }
- $this->display_footer();
- }
-
- function get_action_bar()
- {
- $action_bar = new ActionBarRenderer(ActionBarRenderer :: TYPE_HORIZONTAL);
-
- $action_bar->add_common_action(new ToolbarItem(Translation :: get('CreateGroup'), Theme :: get_image_path() . 'action_create.png', $this->get_external_repository_group_creating_url(), ToolbarItem :: DISPLAY_ICON_AND_LABEL));
-
- return $action_bar;
- }
- }
- ?>