use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.
the class FindCandidatesOrUsersToAddToVo method getEmailColumnValue.
public static String getEmailColumnValue(Candidate candidate) {
if (candidate.getObjectType().equalsIgnoreCase("RichUser")) {
User user = candidate.cast();
Attribute at = user.getAttribute("urn:perun:user:attribute-def:def:preferredMail");
if (at != null && at.getValue() != null && !"null".equalsIgnoreCase(at.getValue())) {
return at.getValue().replace(",", " ");
}
return "";
}
if (candidate.getEmail() == null) {
return "";
} else {
return candidate.getEmail();
}
}
use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.
the class ConnectServiceIdentityTabItem method draw.
public Widget draw() {
titleWidget.setText("Connect identity");
VerticalPanel content = new VerticalPanel();
content.setSize("100%", "100%");
final TabItem tab = this;
// add button
final CustomButton addButton;
if (user.isServiceUser() || user.isSponsoredUser()) {
addButton = new CustomButton("Connect", "Add selected users to this identity", SmallIcons.INSTANCE.addIcon());
} else {
addButton = new CustomButton("Connect", "Add selected identities to user", SmallIcons.INSTANCE.addIcon());
}
TabMenu menu = new TabMenu();
menu.addWidget(addButton);
content.add(menu);
content.setCellHeight(menu, "30px");
final FindCompleteRichUsers call = new FindCompleteRichUsers("", null);
if (user.isServiceUser()) {
call.hideService(true);
}
if (user.isSponsoredUser()) {
call.hideSponsored(true);
call.hideService(true);
}
if (!user.isSpecificUser()) {
call.hidePerson(true);
}
menu.addWidget(TabMenu.getPredefinedButton(ButtonType.CANCEL, "", new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
// close tab and refresh
session.getTabManager().closeTab(tab, true);
}
}));
// search textbox
ExtendedTextBox searchBox = menu.addSearchWidget(new PerunSearchEvent() {
@Override
public void searchFor(String text) {
call.searchFor(text);
}
}, "");
addButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent clickEvent) {
ArrayList<User> list = call.getTableSelectedList();
for (int i = 0; i < list.size(); i++) {
// TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE
AddSpecificUserOwner req;
if (i == list.size() - 1) {
req = new AddSpecificUserOwner(JsonCallbackEvents.closeTabDisableButtonEvents(addButton, tab));
} else {
req = new AddSpecificUserOwner(JsonCallbackEvents.disableButtonEvents(addButton));
}
if (user.isServiceUser() || user.isSponsoredUser()) {
// service user adds user
req.addSpecificUser(list.get(i), user);
} else {
// user adds service users
req.addSpecificUser(user, list.get(i));
}
}
}
});
FieldUpdater<User, String> fieldUpdater = null;
if (session.isPerunAdmin()) {
fieldUpdater = new FieldUpdater<User, String>() {
public void update(int i, User user, String s) {
session.getTabManager().addTab(new UserDetailTabItem(user));
}
};
}
CellTable<User> table = call.getTable(fieldUpdater);
table.addStyleName("perun-table");
table.setWidth("100%");
ScrollPanel sp = new ScrollPanel(table);
sp.addStyleName("perun-tableScrollPanel");
addButton.setEnabled(false);
JsonUtils.addTableManagedButton(call, table, addButton);
content.add(sp);
session.getUiElements().resizeSmallTabPanel(sp, 350, this);
this.contentWidget.setWidget(new SimplePanel(content));
return getWidget();
}
use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.
the class AddSecurityTeamManagerTabItem method draw.
public Widget draw() {
titleWidget.setText("Add member");
final CustomButton searchButton = new CustomButton("Search", ButtonTranslation.INSTANCE.searchUsers(), SmallIcons.INSTANCE.findIcon());
this.users = new FindCompleteRichUsers("", null, JsonCallbackEvents.disableButtonEvents(searchButton, new JsonCallbackEvents() {
@Override
public void onFinished(JavaScriptObject jso) {
// if found 1 item, select
ArrayList<User> list = JsonUtils.jsoAsList(jso);
if (list != null && list.size() == 1) {
users.getSelectionModel().setSelected(list.get(0), true);
}
}
}));
// MAIN TAB PANEL
VerticalPanel firstTabPanel = new VerticalPanel();
firstTabPanel.setSize("100%", "100%");
// HORIZONTAL MENU
TabMenu tabMenu = new TabMenu();
// get the table
final CellTable<User> table;
if (session.isPerunAdmin()) {
table = users.getTable(new FieldUpdater<User, String>() {
public void update(int i, User user, String s) {
session.getTabManager().addTab(new UserDetailTabItem(user));
}
});
} else {
table = users.getTable();
}
rebuildAlreadyAddedWidget();
final CustomButton addButton = TabMenu.getPredefinedButton(ButtonType.ADD, ButtonTranslation.INSTANCE.addSelectedManagersToSecurityTeam());
final TabItem tab = this;
// search textbox
final ExtendedTextBox searchBox = tabMenu.addSearchWidget(new PerunSearchEvent() {
@Override
public void searchFor(String text) {
startSearching(text);
searchString = text;
}
}, searchButton);
tabMenu.addWidget(addButton);
tabMenu.addWidget(TabMenu.getPredefinedButton(ButtonType.CLOSE, "", new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
session.getTabManager().closeTab(tab, !alreadyAddedList.isEmpty());
}
}));
addButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
final ArrayList<User> list = users.getTableSelectedList();
if (UiElements.cantSaveEmptyListDialogBox(list)) {
for (int i = 0; i < list.size(); i++) {
// FIXME - Should have only one callback to core
final int n = i;
AddAdmin request = new AddAdmin(JsonCallbackEvents.disableButtonEvents(addButton, new JsonCallbackEvents() {
@Override
public void onFinished(JavaScriptObject jso) {
// put names to already added
alreadyAddedList.add(list.get(n));
rebuildAlreadyAddedWidget();
// unselect added person
users.getSelectionModel().setSelected(list.get(n), false);
// clear search
searchBox.getTextBox().setText("");
}
}));
request.addSecurityTeamAdmin(securityTeam, list.get(i));
}
}
}
});
// if some text has been searched before
if (!searchString.equals("")) {
searchBox.getTextBox().setText(searchString);
startSearching(searchString);
}
addButton.setEnabled(false);
JsonUtils.addTableManagedButton(users, table, addButton);
// 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 menu and the table to the main panel
firstTabPanel.add(tabMenu);
firstTabPanel.setCellHeight(tabMenu, "30px");
firstTabPanel.add(alreadyAdded);
firstTabPanel.add(sp);
session.getUiElements().resizePerunTable(sp, 350, this);
this.contentWidget.setWidget(firstTabPanel);
return getWidget();
}
use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.
the class FindCompleteRichUsers method onFinished.
/**
* Called, when operation finishes successfully.
*/
public void onFinished(JavaScriptObject jso) {
ArrayList<User> list = JsonUtils.jsoAsList(jso);
for (User u : list) {
if (hideService && u.isServiceUser()) {
// if service hidden, skip service users
} else if (hideSponsored && u.isSponsoredUser()) {
// if sponsored hidden, skip sponsored users
} else if (hidePerson && !u.isSpecificUser()) {
// if person hidden, skip person
} else {
addToTable(u);
}
}
sortTable();
loaderImage.loadingFinished();
session.getUiElements().setLogText("Users loaded: " + list.size());
events.onFinished(jso);
}
use of cz.metacentrum.perun.webgui.model.User in project perun by CESNET.
the class FindCompleteRichUsers method getEmptyTable.
/**
* Returns empty table definition
* @return
*/
public CellTable<User> getEmptyTable() {
// Table data provider.
dataProvider = new ListDataProvider<User>(list);
// Cell table
table = new PerunTable<User>(list);
// Connect the table to the data provider.
dataProvider.addDataDisplay(table);
// Sorting
ListHandler<User> columnSortHandler = new ListHandler<User>(dataProvider.getList());
table.addColumnSortHandler(columnSortHandler);
// table selection
table.setSelectionModel(selectionModel, DefaultSelectionEventManager.<User>createCheckboxManager());
// set empty content & loader
table.setEmptyTableWidget(loaderImage);
// columns
if (checkable) {
table.addCheckBoxColumn();
}
table.addIdColumn("User ID", tableFieldUpdater);
// NAME COLUMN
Column<User, String> nameColumn = JsonUtils.addColumn(new JsonUtils.GetValue<User, String>() {
public String getValue(User user) {
// display full name with titles
return user.getFullNameWithTitles();
}
}, tableFieldUpdater);
nameColumn.setSortable(true);
columnSortHandler.setComparator(nameColumn, new Comparator<User>() {
public int compare(User o1, User o2) {
// sort by name without titles
return o1.getFullName().compareToIgnoreCase(o2.getFullName());
}
});
// SERVICE COLUMN
Column<User, String> serviceColumn = JsonUtils.addColumn(new JsonUtils.GetValue<User, String>() {
public String getValue(User user) {
if (user.isServiceUser()) {
return "Service";
} else if (user.isSponsoredUser()) {
return "Sponsored";
} else {
return "Person";
}
}
}, tableFieldUpdater);
serviceColumn.setSortable(true);
columnSortHandler.setComparator(serviceColumn, new Comparator<User>() {
public int compare(User o1, User o2) {
String type1 = "Person";
if (o1.isServiceUser()) {
type1 = "Service";
} else if (o1.isSponsoredUser()) {
type1 = "Sponsored";
}
String type2 = "Person";
if (o2.isServiceUser()) {
type2 = "Service";
} else if (o2.isSponsoredUser()) {
type2 = "Sponsored";
}
return type1.compareTo(type2);
}
});
// Create organization column.
Column<User, String> organizationColumn = JsonUtils.addColumn(new JsonUtils.GetValue<User, String>() {
public String getValue(User object) {
Attribute at = object.getAttribute("urn:perun:user:attribute-def:def:organization");
if (at != null && at.getValue() != null && !"null".equalsIgnoreCase(at.getValue())) {
return at.getValue();
}
return "";
}
}, this.tableFieldUpdater);
// Create e-mail column.
Column<User, String> emailColumn = JsonUtils.addColumn(new JsonUtils.GetValue<User, String>() {
public String getValue(User object) {
Attribute at = object.getAttribute("urn:perun:user:attribute-def:def:preferredMail");
if (at != null && at.getValue() != null && !"null".equalsIgnoreCase(at.getValue())) {
return at.getValue().replace(",", " ");
}
return "";
}
}, this.tableFieldUpdater);
// Create name column.
Column<User, String> loginsColumn = JsonUtils.addColumn(new JsonUtils.GetValue<User, String>() {
public String getValue(User object) {
return object.getLogins();
}
}, this.tableFieldUpdater);
organizationColumn.setSortable(true);
columnSortHandler.setComparator(organizationColumn, new RichUserComparator(RichUserComparator.Column.ORGANIZATION));
emailColumn.setSortable(true);
columnSortHandler.setComparator(emailColumn, new RichUserComparator(RichUserComparator.Column.EMAIL));
// Add the other columns.
table.addColumn(nameColumn, "Name");
table.addColumn(organizationColumn, "Organization");
table.addColumn(emailColumn, "E-mail");
table.addColumn(loginsColumn, "Logins");
table.addColumn(serviceColumn, "User type");
return table;
}
Aggregations