Search in sources :

Example 41 with User

use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.

the class SecurityTeamBlacklistTabItem method draw.

public Widget draw() {
    // MAIN PANEL
    VerticalPanel firstTabPanel = new VerticalPanel();
    firstTabPanel.setSize("100%", "100%");
    this.titleWidget.setText(Utils.getStrippedStringWithEllipsis(securityTeam.getName()) + ": " + "blacklist");
    // Get vos request
    final GetBlacklistWithDescription teams = new GetBlacklistWithDescription(PerunEntity.SECURITY_TEAM, securityTeamId);
    // Events for reloading when finished
    final JsonCallbackEvents events = JsonCallbackEvents.refreshTableEvents(teams);
    TabMenu tabMenu = new TabMenu();
    // add menu to the main panel
    firstTabPanel.add(tabMenu);
    firstTabPanel.setCellHeight(tabMenu, "30px");
    tabMenu.addWidget(UiElements.getRefreshButton(this));
    // do not display to sec admins only
    tabMenu.addWidget(TabMenu.getPredefinedButton(ButtonType.ADD, true, ButtonTranslation.INSTANCE.addUsersToBlacklist(), new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            session.getTabManager().addTabToCurrentTab(new AddUserToBlacklistTabItem(securityTeam), true);
        }
    }));
    final CustomButton removeButton = TabMenu.getPredefinedButton(ButtonType.REMOVE, buttonTranslation.removeSelectedUsersFromBlacklist());
    removeButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            final ArrayList<Pair<User, String>> itemsToRemove = teams.getTableSelectedList();
            UiElements.showDeleteConfirm(itemsToRemove, new ClickHandler() {

                @Override
                public void onClick(ClickEvent clickEvent) {
                    // TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE !!
                    for (int i = 0; i < itemsToRemove.size(); i++) {
                        RemoveUserFromBlacklist request;
                        if (i == itemsToRemove.size() - 1) {
                            request = new RemoveUserFromBlacklist(securityTeamId, JsonCallbackEvents.disableButtonEvents(removeButton, events));
                        } else {
                            request = new RemoveUserFromBlacklist(securityTeamId, JsonCallbackEvents.disableButtonEvents(removeButton));
                        }
                        request.removeUserFromBlacklist(itemsToRemove.get(i).getLeft().getId());
                    }
                }
            });
        }
    });
    tabMenu.addWidget(removeButton);
    // filter
    tabMenu.addFilterWidget(new ExtendedSuggestBox(teams.getOracle()), new PerunSearchEvent() {

        @Override
        public void searchFor(String text) {
            teams.filterTable(text);
        }
    }, buttonTranslation.filterBlacklist());
    final TabItem tab = this;
    CellTable<Pair<User, String>> table;
    if (session.isPerunAdmin()) {
        // get the table with custom onclick
        table = teams.getTable(new FieldUpdater<Pair<User, String>, String>() {

            @Override
            public void update(int i, Pair<User, String> pair, String string) {
                session.getTabManager().addTab(new UserDetailTabItem(pair.getLeft()));
                session.getTabManager().closeTab(tab, false);
            }
        });
    } else {
        table = teams.getTable();
    }
    // add a class to the table and wrap it into scroll panel
    table.addStyleName("perun-table");
    ScrollPanel sp = new ScrollPanel(table);
    sp.addStyleName("perun-tableScrollPanel");
    // add the table to the main panel
    firstTabPanel.add(sp);
    session.getUiElements().resizePerunTable(sp, 350, 0, this);
    this.contentWidget.setWidget(firstTabPanel);
    return getWidget();
}
Also used : JsonCallbackEvents(cz.metacentrum.perun.webgui.json.JsonCallbackEvents) FieldUpdater(com.google.gwt.cell.client.FieldUpdater) User(cz.metacentrum.perun.webgui.model.User) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) ArrayList(java.util.ArrayList) UserDetailTabItem(cz.metacentrum.perun.webgui.tabs.userstabs.UserDetailTabItem) RemoveUserFromBlacklist(cz.metacentrum.perun.webgui.json.securityTeamsManager.RemoveUserFromBlacklist) TabMenu(cz.metacentrum.perun.webgui.widgets.TabMenu) UserDetailTabItem(cz.metacentrum.perun.webgui.tabs.userstabs.UserDetailTabItem) TabItem(cz.metacentrum.perun.webgui.tabs.TabItem) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) CustomButton(cz.metacentrum.perun.webgui.widgets.CustomButton) ExtendedSuggestBox(cz.metacentrum.perun.webgui.widgets.ExtendedSuggestBox) GetBlacklistWithDescription(cz.metacentrum.perun.webgui.json.securityTeamsManager.GetBlacklistWithDescription) Pair(cz.metacentrum.perun.webgui.model.Pair)

Example 42 with User

use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.

the class SecurityTeamMembersTabItem method draw.

public Widget draw() {
    // MAIN PANEL
    VerticalPanel firstTabPanel = new VerticalPanel();
    firstTabPanel.setSize("100%", "100%");
    this.titleWidget.setText(Utils.getStrippedStringWithEllipsis(securityTeam.getName()) + ": " + "members");
    // Get vos request
    final GetAdmins teams = new GetAdmins(PerunEntity.SECURITY_TEAM, securityTeamId);
    // Events for reloading when finished
    final JsonCallbackEvents events = JsonCallbackEvents.refreshTableEvents(teams);
    TabMenu tabMenu = new TabMenu();
    // add menu to the main panel
    firstTabPanel.add(tabMenu);
    firstTabPanel.setCellHeight(tabMenu, "30px");
    tabMenu.addWidget(UiElements.getRefreshButton(this));
    // do not display to sec admins only
    tabMenu.addWidget(TabMenu.getPredefinedButton(ButtonType.ADD, true, ButtonTranslation.INSTANCE.addMemberToSecurityTeam(), new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            session.getTabManager().addTabToCurrentTab(new AddSecurityTeamManagerTabItem(securityTeam), true);
        }
    }));
    final CustomButton removeButton = TabMenu.getPredefinedButton(ButtonType.REMOVE, buttonTranslation.removeMemberOfSecurityTeam());
    removeButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            final ArrayList<User> itemsToRemove = teams.getTableSelectedList();
            UiElements.showDeleteConfirm(itemsToRemove, new ClickHandler() {

                @Override
                public void onClick(ClickEvent clickEvent) {
                    // TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE !!
                    for (int i = 0; i < itemsToRemove.size(); i++) {
                        RemoveAdmin request;
                        if (i == itemsToRemove.size() - 1) {
                            request = new RemoveAdmin(PerunEntity.SECURITY_TEAM, JsonCallbackEvents.disableButtonEvents(removeButton, events));
                        } else {
                            request = new RemoveAdmin(PerunEntity.SECURITY_TEAM, JsonCallbackEvents.disableButtonEvents(removeButton));
                        }
                        request.removeSecurityTeamAdmin(securityTeam, itemsToRemove.get(i));
                    }
                }
            });
        }
    });
    tabMenu.addWidget(removeButton);
    final TabItem tab = this;
    CellTable<User> table;
    if (session.isPerunAdmin()) {
        // get the table with custom onclick
        table = teams.getTable(new FieldUpdater<User, String>() {

            @Override
            public void update(int i, User user, String string) {
                session.getTabManager().addTab(new UserDetailTabItem(user));
                session.getTabManager().closeTab(tab, false);
            }
        });
    } else {
        table = teams.getTable();
    }
    // add a class to the table and wrap it into scroll panel
    table.addStyleName("perun-table");
    ScrollPanel sp = new ScrollPanel(table);
    sp.addStyleName("perun-tableScrollPanel");
    // add the table to the main panel
    firstTabPanel.add(sp);
    session.getUiElements().resizePerunTable(sp, 350, 0, this);
    this.contentWidget.setWidget(firstTabPanel);
    return getWidget();
}
Also used : JsonCallbackEvents(cz.metacentrum.perun.webgui.json.JsonCallbackEvents) FieldUpdater(com.google.gwt.cell.client.FieldUpdater) User(cz.metacentrum.perun.webgui.model.User) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) ArrayList(java.util.ArrayList) UserDetailTabItem(cz.metacentrum.perun.webgui.tabs.userstabs.UserDetailTabItem) TabMenu(cz.metacentrum.perun.webgui.widgets.TabMenu) UserDetailTabItem(cz.metacentrum.perun.webgui.tabs.userstabs.UserDetailTabItem) TabItem(cz.metacentrum.perun.webgui.tabs.TabItem) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) CustomButton(cz.metacentrum.perun.webgui.widgets.CustomButton) RemoveAdmin(cz.metacentrum.perun.webgui.json.authzResolver.RemoveAdmin) GetAdmins(cz.metacentrum.perun.webgui.json.authzResolver.GetAdmins)

Example 43 with User

use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.

the class EditUserDetailsTabItem method draw.

public Widget draw() {
    titleWidget = new Label("Edit user");
    VerticalPanel vp = new VerticalPanel();
    final TextBox beforeName = new TextBox();
    final TextBox afterName = new TextBox();
    final TextBox firstName = new TextBox();
    final TextBox middleName = new TextBox();
    final TextBox lastName = new TextBox();
    // prepares layout
    FlexTable layout = new FlexTable();
    layout.setStyleName("inputFormFlexTable");
    FlexCellFormatter cellFormatter = layout.getFlexCellFormatter();
    // set values from user
    beforeName.setText(user.getTitleBefore());
    afterName.setText(user.getTitleAfter());
    firstName.setText(user.getFirstName());
    lastName.setText(user.getLastName());
    middleName.setText(user.getMiddleName());
    // service users can have only first and last name (first is fixed as "(Service)"
    if (user.isServiceUser()) {
        beforeName.setEnabled(false);
        afterName.setEnabled(false);
        firstName.setEnabled(false);
        middleName.setEnabled(false);
    }
    // close tab events
    final TabItem tab = this;
    TabMenu menu = new TabMenu();
    // send button
    final CustomButton saveButton = TabMenu.getPredefinedButton(ButtonType.SAVE, buttonTranslation.saveResourceDetails());
    if (session.isPerunAdmin()) {
        saveButton.addClickHandler(new ClickHandler() {

            public void onClick(ClickEvent event) {
                User u = JsonUtils.clone(user).cast();
                u.setFirstName(firstName.getText().trim());
                u.setMiddleName(middleName.getText().trim());
                u.setLastName(lastName.getText().trim());
                u.setTitleBefore(beforeName.getText().trim());
                u.setTitleAfter(afterName.getText().trim());
                UpdateUser request = new UpdateUser(JsonCallbackEvents.closeTabDisableButtonEvents(saveButton, tab, events));
                request.updateUser(u);
            }
        });
    } else {
        saveButton.addClickHandler(new ClickHandler() {

            public void onClick(ClickEvent event) {
                User u = JsonUtils.clone(user).cast();
                u.setTitleBefore(beforeName.getText().trim());
                u.setTitleAfter(afterName.getText().trim());
                UpdateNameTitles request = new UpdateNameTitles(JsonCallbackEvents.closeTabDisableButtonEvents(saveButton, tab, events));
                request.updateUserTitles(u);
            }
        });
    }
    // cancel button
    final CustomButton cancelButton = TabMenu.getPredefinedButton(ButtonType.CANCEL, "");
    cancelButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent clickEvent) {
            session.getTabManager().closeTab(tab, false);
        }
    });
    // Add some standard form options
    layout.setHTML(0, 0, "Title before name:");
    layout.setWidget(0, 1, beforeName);
    layout.setHTML(1, 0, "Title after name:");
    layout.setWidget(1, 1, afterName);
    if (session.isPerunAdmin()) {
        layout.setHTML(2, 0, "First name:");
        layout.setWidget(2, 1, firstName);
        layout.setHTML(3, 0, "Middle name:");
        layout.setWidget(3, 1, middleName);
        layout.setHTML(4, 0, "Last name:");
        layout.setWidget(4, 1, lastName);
    }
    for (int i = 0; i < layout.getRowCount(); i++) {
        cellFormatter.addStyleName(i, 0, "itemName");
    }
    menu.addWidget(saveButton);
    menu.addWidget(cancelButton);
    vp.add(layout);
    vp.add(menu);
    vp.setCellHorizontalAlignment(menu, HasHorizontalAlignment.ALIGN_RIGHT);
    this.contentWidget.setWidget(vp);
    return getWidget();
}
Also used : UpdateUser(cz.metacentrum.perun.webgui.json.usersManager.UpdateUser) User(cz.metacentrum.perun.webgui.model.User) FlexCellFormatter(com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) UpdateNameTitles(cz.metacentrum.perun.webgui.json.usersManager.UpdateNameTitles) TabMenu(cz.metacentrum.perun.webgui.widgets.TabMenu) TabItem(cz.metacentrum.perun.webgui.tabs.TabItem) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) CustomButton(cz.metacentrum.perun.webgui.widgets.CustomButton) UpdateUser(cz.metacentrum.perun.webgui.json.usersManager.UpdateUser)

Example 44 with User

use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.

the class IdentitySelectorTabItem method draw.

public Widget draw() {
    final TabItem tab = this;
    HorizontalPanel horizontalSplitter = new HorizontalPanel();
    horizontalSplitter.setHeight("500px");
    horizontalSplitter.setWidth("100%");
    // BASE LAYOUT
    DecoratorPanel dp = new DecoratorPanel();
    FlexTable baseLayout = new FlexTable();
    baseLayout.setCellSpacing(10);
    dp.add(baseLayout);
    baseLayout.setHTML(0, 0, "<p class=\"subsection-heading\">Select base identity</p>");
    baseLayout.setHTML(1, 0, "Your base identity you are currently logged in.");
    baseLayout.getFlexCellFormatter().setStyleName(1, 0, "inputFormInlineComment");
    Anchor userName = new Anchor();
    userName.setText(session.getUser().getFullNameWithTitles());
    userName.addStyleName("now-managing");
    userName.addStyleName("pointer");
    userName.setTitle(session.getUser().getFullNameWithTitles());
    userName.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            session.getTabManager().addTab(new SelfDetailTabItem(session.getUser()));
            session.getTabManager().closeTab(tab, false);
        }
    });
    baseLayout.setWidget(2, 0, new Image(LargeIcons.INSTANCE.userGrayIcon()));
    baseLayout.setWidget(2, 1, userName);
    baseLayout.getFlexCellFormatter().setColSpan(0, 0, 2);
    baseLayout.getFlexCellFormatter().setColSpan(1, 0, 2);
    // SERVICE IDENTITIES LAYOUT
    DecoratorPanel dp2 = new DecoratorPanel();
    final FlexTable serviceLayout = new FlexTable();
    serviceLayout.setCellSpacing(10);
    dp2.add(serviceLayout);
    serviceLayout.setHTML(0, 0, "<p class=\"subsection-heading\">Select service identity</p>");
    serviceLayout.setHTML(1, 0, "Service identities you have access to.");
    serviceLayout.getFlexCellFormatter().setStyleName(1, 0, "inputFormInlineComment");
    horizontalSplitter.add(dp);
    horizontalSplitter.setCellWidth(dp, "50%");
    horizontalSplitter.setCellVerticalAlignment(dp, HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalSplitter.setCellHorizontalAlignment(dp, HasHorizontalAlignment.ALIGN_CENTER);
    ScrollPanel sp = new ScrollPanel();
    final FlexTable innerTable = new FlexTable();
    sp.setWidget(innerTable);
    sp.setStyleName("scroll-max-height");
    serviceLayout.setWidget(2, 0, sp);
    if (session.getEditableUsers().size() > 1) {
        // user has service identities
        GetSpecificUsersByUser call = new GetSpecificUsersByUser(session.getUser().getId(), new JsonCallbackEvents() {

            @Override
            public void onFinished(JavaScriptObject jso) {
                ArrayList<User> list = JsonUtils.jsoAsList(jso);
                if (list != null && !list.isEmpty()) {
                    int row = 0;
                    for (User u : list) {
                        if (u.isSponsoredUser())
                            continue;
                        final User u2 = u;
                        innerTable.setWidget(row, 0, new Image(LargeIcons.INSTANCE.userRedIcon()));
                        Anchor userName = new Anchor();
                        userName.setText(u2.getFullNameWithTitles());
                        userName.addStyleName("now-managing");
                        userName.addStyleName("pointer");
                        userName.setTitle(u2.getFullNameWithTitles());
                        userName.addClickHandler(new ClickHandler() {

                            @Override
                            public void onClick(ClickEvent event) {
                                session.getTabManager().addTab(new SelfDetailTabItem(u2));
                                session.getTabManager().closeTab(tab, false);
                            }
                        });
                        innerTable.setWidget(row, 1, userName);
                        row++;
                    }
                } else {
                    innerTable.setHTML(0, 0, "You have no service identities");
                }
            }

            @Override
            public void onLoadingStart() {
                innerTable.setWidget(0, 0, new AjaxLoaderImage().loadingStart());
            }

            @Override
            public void onError(PerunError error) {
                innerTable.setWidget(0, 0, new AjaxLoaderImage().loadingError(error));
            }
        });
        call.retrieveData();
        horizontalSplitter.add(dp2);
        horizontalSplitter.setCellWidth(dp2, "50%");
        horizontalSplitter.setCellHorizontalAlignment(dp2, HasHorizontalAlignment.ALIGN_CENTER);
        horizontalSplitter.setCellVerticalAlignment(dp2, HasVerticalAlignment.ALIGN_MIDDLE);
    }
    this.contentWidget.setWidget(horizontalSplitter);
    return getWidget();
}
Also used : JsonCallbackEvents(cz.metacentrum.perun.webgui.json.JsonCallbackEvents) GetSpecificUsersByUser(cz.metacentrum.perun.webgui.json.usersManager.GetSpecificUsersByUser) User(cz.metacentrum.perun.webgui.model.User) GetSpecificUsersByUser(cz.metacentrum.perun.webgui.json.usersManager.GetSpecificUsersByUser) ClickEvent(com.google.gwt.event.dom.client.ClickEvent) ArrayList(java.util.ArrayList) TabItem(cz.metacentrum.perun.webgui.tabs.TabItem) ClickHandler(com.google.gwt.event.dom.client.ClickHandler) JavaScriptObject(com.google.gwt.core.client.JavaScriptObject) PerunError(cz.metacentrum.perun.webgui.model.PerunError)

Example 45 with User

use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.

the class FindUsersInVo method onFinished.

/**
	 * Called, when operation finishes successfully.
	 */
public void onFinished(JavaScriptObject jso) {
    ArrayList<RichMember> list = JsonUtils.jsoAsList(jso);
    for (RichMember m : list) {
        User u = m.getUser();
        if (hideService && u.isServiceUser()) {
        // if service hidden, skip service users
        } else if (hidePerson && !u.isServiceUser() && !u.isSponsoredUser()) {
        // if person hidden, skip person
        } else if (hideSponsored && !u.isSponsoredUser()) {
        // if person hidden, skip person
        } else {
            addToTable(u);
        }
    }
    sortTable();
    loaderImage.loadingFinished();
    session.getUiElements().setLogText("Users loaded: " + list.size());
    events.onFinished(jso);
}
Also used : User(cz.metacentrum.perun.webgui.model.User) RichMember(cz.metacentrum.perun.webgui.model.RichMember)

Aggregations

User (cz.metacentrum.perun.webgui.model.User)48 JsonCallbackEvents (cz.metacentrum.perun.webgui.json.JsonCallbackEvents)22 ArrayList (java.util.ArrayList)20 ClickEvent (com.google.gwt.event.dom.client.ClickEvent)19 ClickHandler (com.google.gwt.event.dom.client.ClickHandler)19 JavaScriptObject (com.google.gwt.core.client.JavaScriptObject)18 TabMenu (cz.metacentrum.perun.webgui.widgets.TabMenu)18 CustomButton (cz.metacentrum.perun.webgui.widgets.CustomButton)17 FieldUpdater (com.google.gwt.cell.client.FieldUpdater)15 UserDetailTabItem (cz.metacentrum.perun.webgui.tabs.userstabs.UserDetailTabItem)15 TabItem (cz.metacentrum.perun.webgui.tabs.TabItem)13 ExtendedTextBox (cz.metacentrum.perun.webgui.widgets.ExtendedTextBox)9 FindCompleteRichUsers (cz.metacentrum.perun.webgui.json.usersManager.FindCompleteRichUsers)8 Attribute (cz.metacentrum.perun.webgui.model.Attribute)6 PerunError (cz.metacentrum.perun.webgui.model.PerunError)6 FindUsersByIdsNotInRpc (cz.metacentrum.perun.webgui.json.usersManager.FindUsersByIdsNotInRpc)5 GetSpecificUsersByUser (cz.metacentrum.perun.webgui.json.usersManager.GetSpecificUsersByUser)5 ListHandler (com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler)4 AddAdmin (cz.metacentrum.perun.webgui.json.authzResolver.AddAdmin)4 RemoveAdmin (cz.metacentrum.perun.webgui.json.authzResolver.RemoveAdmin)4