use of com.google.gerrit.client.info.TopMenuItem in project gerrit by GerritCodeReview.
the class Gerrit method refreshMenuBar.
public static void refreshMenuBar() {
menuLeft.clear();
menuRight.clear();
menuBars = new HashMap<>();
boolean signedIn = isSignedIn();
AuthInfo authInfo = info().auth();
LinkMenuBar m;
m = new LinkMenuBar();
menuBars.put(GerritTopMenu.ALL.menuName, m);
addLink(m, C.menuAllOpen(), PageLinks.toChangeQuery("status:open"));
addLink(m, C.menuAllMerged(), PageLinks.toChangeQuery("status:merged"));
addLink(m, C.menuAllAbandoned(), PageLinks.toChangeQuery("status:abandoned"));
menuLeft.add(m, C.menuAll());
if (signedIn) {
LinkMenuBar myBar = new LinkMenuBar();
menuBars.put(GerritTopMenu.MY.menuName, myBar);
if (myPrefs.my() != null) {
myBar.clear();
String url = null;
List<TopMenuItem> myMenuItems = Natives.asList(myPrefs.my());
if (!myMenuItems.isEmpty()) {
if (myMenuItems.get(0).getUrl().startsWith("#")) {
url = myMenuItems.get(0).getUrl().substring(1);
}
for (TopMenuItem item : myMenuItems) {
addExtensionLink(myBar, item);
}
}
defaultScreenToken = url;
}
menuLeft.add(myBar, C.menuMine());
menuLeft.selectTab(1);
} else {
menuLeft.selectTab(0);
}
final LinkMenuBar projectsBar = new LinkMenuBar();
menuBars.put(GerritTopMenu.PROJECTS.menuName, projectsBar);
addLink(projectsBar, C.menuProjectsList(), PageLinks.ADMIN_PROJECTS);
projectsBar.addItem(new ProjectLinkMenuItem(C.menuProjectsInfo(), ProjectScreen.INFO));
projectsBar.addItem(new ProjectLinkMenuItem(C.menuProjectsBranches(), ProjectScreen.BRANCHES));
projectsBar.addItem(new ProjectLinkMenuItem(C.menuProjectsTags(), ProjectScreen.TAGS));
projectsBar.addItem(new ProjectLinkMenuItem(C.menuProjectsAccess(), ProjectScreen.ACCESS));
final LinkMenuItem dashboardsMenuItem = new ProjectLinkMenuItem(C.menuProjectsDashboards(), ProjectScreen.DASHBOARDS) {
@Override
protected boolean match(String token) {
return super.match(token) || (!getTargetHistoryToken().isEmpty() && ("/admin" + token).startsWith(getTargetHistoryToken()));
}
};
projectsBar.addItem(dashboardsMenuItem);
menuLeft.add(projectsBar, C.menuProjects());
if (signedIn) {
final LinkMenuBar peopleBar = new LinkMenuBar();
menuBars.put(GerritTopMenu.PEOPLE.menuName, peopleBar);
final LinkMenuItem groupsListMenuItem = addLink(peopleBar, C.menuPeopleGroupsList(), PageLinks.ADMIN_GROUPS);
menuLeft.add(peopleBar, C.menuPeople());
final LinkMenuBar pluginsBar = new LinkMenuBar();
menuBars.put(GerritTopMenu.PLUGINS.menuName, pluginsBar);
AccountCapabilities.all(new GerritCallback<AccountCapabilities>() {
@Override
public void onSuccess(AccountCapabilities result) {
if (result.canPerform(CREATE_PROJECT)) {
insertLink(projectsBar, C.menuProjectsCreate(), PageLinks.ADMIN_CREATE_PROJECT, projectsBar.getWidgetIndex(dashboardsMenuItem) + 1);
}
if (result.canPerform(CREATE_GROUP)) {
insertLink(peopleBar, C.menuPeopleGroupsCreate(), PageLinks.ADMIN_CREATE_GROUP, peopleBar.getWidgetIndex(groupsListMenuItem) + 1);
}
if (result.canPerform(VIEW_PLUGINS)) {
insertLink(pluginsBar, C.menuPluginsInstalled(), PageLinks.ADMIN_PLUGINS, 0);
menuLeft.insert(pluginsBar, C.menuPlugins(), menuLeft.getWidgetIndex(peopleBar) + 1);
}
}
}, CREATE_PROJECT, CREATE_GROUP, VIEW_PLUGINS);
}
if (hasDocumentation) {
m = new LinkMenuBar();
menuBars.put(GerritTopMenu.DOCUMENTATION.menuName, m);
addDocLink(m, C.menuDocumentationTOC(), "index.html");
addDocLink(m, C.menuDocumentationSearch(), "user-search.html");
addDocLink(m, C.menuDocumentationUpload(), "user-upload.html");
addDocLink(m, C.menuDocumentationAccess(), "access-control.html");
addDocLink(m, C.menuDocumentationAPI(), "rest-api.html");
addDocLink(m, C.menuDocumentationProjectOwnerGuide(), "intro-project-owner.html");
menuLeft.add(m, C.menuDocumentation());
}
if (signedIn) {
whoAmI(!authInfo.isClientSslCertLdap());
} else {
switch(authInfo.authType()) {
case CLIENT_SSL_CERT_LDAP:
break;
case OPENID:
menuRight.addItem(C.menuRegister(), new Command() {
@Override
public void execute() {
String t = History.getToken();
if (t == null) {
t = "";
}
doSignIn(PageLinks.REGISTER + t);
}
});
menuRight.addItem(C.menuSignIn(), new Command() {
@Override
public void execute() {
doSignIn(History.getToken());
}
});
break;
case OAUTH:
menuRight.addItem(C.menuSignIn(), new Command() {
@Override
public void execute() {
doSignIn(History.getToken());
}
});
break;
case OPENID_SSO:
menuRight.addItem(C.menuSignIn(), new Command() {
@Override
public void execute() {
doSignIn(History.getToken());
}
});
break;
case HTTP:
case HTTP_LDAP:
if (authInfo.loginUrl() != null) {
String signinText = authInfo.loginText() == null ? C.menuSignIn() : authInfo.loginText();
menuRight.add(anchor(signinText, authInfo.loginUrl()));
}
break;
case LDAP:
case LDAP_BIND:
case CUSTOM_EXTENSION:
if (authInfo.registerUrl() != null) {
String registerText = authInfo.registerText() == null ? C.menuRegister() : authInfo.registerText();
menuRight.add(anchor(registerText, authInfo.registerUrl()));
}
menuRight.addItem(C.menuSignIn(), new Command() {
@Override
public void execute() {
doSignIn(History.getToken());
}
});
break;
case DEVELOPMENT_BECOME_ANY_ACCOUNT:
menuRight.add(anchor("Become", loginRedirect("")));
break;
}
}
ConfigServerApi.topMenus(new GerritCallback<TopMenuList>() {
@Override
public void onSuccess(TopMenuList result) {
List<TopMenu> topMenuExtensions = Natives.asList(result);
for (TopMenu menu : topMenuExtensions) {
String name = menu.getName();
LinkMenuBar existingBar = menuBars.get(name);
LinkMenuBar bar = existingBar != null ? existingBar : new LinkMenuBar();
for (TopMenuItem item : Natives.asList(menu.getItems())) {
addMenuLink(bar, item);
}
if (existingBar == null) {
menuBars.put(name, bar);
menuLeft.add(bar, name);
}
}
}
});
}
use of com.google.gerrit.client.info.TopMenuItem in project gerrit by GerritCodeReview.
the class MyPreferencesScreen method doSave.
private void doSave() {
GeneralPreferences p = GeneralPreferences.create();
p.showSiteHeader(showSiteHeader.getValue());
p.useFlashClipboard(useFlashClipboard.getValue());
p.changesPerPage(getListBox(maximumPageSize, DEFAULT_PAGESIZE));
p.dateFormat(getListBox(dateFormat, GeneralPreferencesInfo.DateFormat.STD, GeneralPreferencesInfo.DateFormat.values()));
p.timeFormat(getListBox(timeFormat, GeneralPreferencesInfo.TimeFormat.HHMM_12, GeneralPreferencesInfo.TimeFormat.values()));
p.highlightAssigneeInChangeTable(highlightAssigneeInChangeTable.getValue());
p.relativeDateInChangeTable(relativeDateInChangeTable.getValue());
p.sizeBarInChangeTable(sizeBarInChangeTable.getValue());
p.legacycidInChangeTable(legacycidInChangeTable.getValue());
p.muteCommonPathPrefixes(muteCommonPathPrefixes.getValue());
p.signedOffBy(signedOffBy.getValue());
p.publishCommentsOnPush(publishCommentsOnPush.getValue());
p.reviewCategoryStrategy(getListBox(reviewCategoryStrategy, ReviewCategoryStrategy.NONE, ReviewCategoryStrategy.values()));
p.diffView(getListBox(diffView, GeneralPreferencesInfo.DiffView.SIDE_BY_SIDE, GeneralPreferencesInfo.DiffView.values()));
p.emailStrategy(getListBox(emailStrategy, GeneralPreferencesInfo.EmailStrategy.ENABLED, GeneralPreferencesInfo.EmailStrategy.values()));
p.emailFormat(getListBox(emailFormat, GeneralPreferencesInfo.EmailFormat.HTML_PLAINTEXT, GeneralPreferencesInfo.EmailFormat.values()));
p.defaultBaseForMerges(getListBox(defaultBaseForMerges, GeneralPreferencesInfo.DefaultBase.FIRST_PARENT, GeneralPreferencesInfo.DefaultBase.values()));
List<TopMenuItem> items = new ArrayList<>();
for (List<String> v : myMenus.getValues()) {
items.add(TopMenuItem.create(v.get(0), v.get(1)));
}
p.setMyMenus(items);
enable(false);
save.setEnabled(false);
AccountApi.self().view("preferences").put(p, new GerritCallback<GeneralPreferences>() {
@Override
public void onSuccess(GeneralPreferences prefs) {
Gerrit.setUserPreferences(prefs);
enable(true);
display(prefs);
}
@Override
public void onFailure(Throwable caught) {
enable(true);
save.setEnabled(true);
super.onFailure(caught);
}
});
}
use of com.google.gerrit.client.info.TopMenuItem in project gerrit by GerritCodeReview.
the class MyPreferencesScreen method display.
private void display(JsArray<TopMenuItem> items) {
List<List<String>> values = new ArrayList<>();
for (TopMenuItem item : Natives.asList(items)) {
values.add(Arrays.asList(item.getName(), item.getUrl()));
}
myMenus.display(values);
}
Aggregations