Search in sources :

Example 1 with UsersApplicationsPage

use of cz.metacentrum.perun.webgui.client.applicationresources.pages.UsersApplicationsPage in project perun by CESNET.

the class ApplicationFormGui method prepareGui.

/**
	 * Prepares the GUI
	 * @param entity PerunEntity GROUP or VO
	 * @param applicationType INITIAL | EXTENSION
	 */
protected void prepareGui(PerunEntity entity, String applicationType) {
    if (Location.getParameterMap().keySet().contains("m") && Location.getParameterMap().keySet().contains("i")) {
        String verifyI = Location.getParameter("i");
        String verifyM = Location.getParameter("m");
        if (verifyI != null && !verifyI.isEmpty() && verifyM != null && !verifyM.isEmpty()) {
            final SimplePanel verifContent = new SimplePanel();
            Anchor a = leftMenu.addItem(ApplicationMessages.INSTANCE.emailValidationMenuItem(), SmallIcons.INSTANCE.emailIcon(), verifContent);
            a.fireEvent(new ClickEvent() {
            });
            ValidateEmail request = new ValidateEmail(verifyI, verifyM, new JsonCallbackEvents() {

                @Override
                public void onLoadingStart() {
                    verifContent.clear();
                    verifContent.add(new AjaxLoaderImage());
                }

                @Override
                public void onFinished(JavaScriptObject jso) {
                    BasicOverlayType obj = jso.cast();
                    if (obj.getBoolean() == true) {
                        verifContent.clear();
                        FlexTable ft = new FlexTable();
                        ft.setSize("100%", "300px");
                        ft.setHTML(0, 0, new Image(LargeIcons.INSTANCE.acceptIcon()) + "<h2>" + ApplicationMessages.INSTANCE.emailValidationSuccess() + "</h2>");
                        ft.getFlexCellFormatter().setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER);
                        ft.getFlexCellFormatter().setVerticalAlignment(0, 0, HasVerticalAlignment.ALIGN_MIDDLE);
                        verifContent.add(ft);
                    } else {
                        verifContent.clear();
                        FlexTable ft = new FlexTable();
                        ft.setSize("100%", "300px");
                        ft.setHTML(0, 0, new Image(LargeIcons.INSTANCE.deleteIcon()) + "<h2>" + ApplicationMessages.INSTANCE.emailValidationFail() + "</h2>");
                        ft.getFlexCellFormatter().setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER);
                        ft.getFlexCellFormatter().setVerticalAlignment(0, 0, HasVerticalAlignment.ALIGN_MIDDLE);
                        verifContent.add(ft);
                    }
                }

                @Override
                public void onError(PerunError error) {
                    ((AjaxLoaderImage) verifContent.getWidget()).loadingError(error);
                }
            });
            request.retrieveData();
            leftMenu.addLogoutItem();
            return;
        }
    }
    // group and extension is not allowed
    if (group != null && applicationType.equalsIgnoreCase("EXTENSION")) {
        RootLayoutPanel panel = RootLayoutPanel.get();
        panel.clear();
        FlexTable ft = new FlexTable();
        ft.setSize("100%", "300px");
        ft.setHTML(0, 0, new Image(LargeIcons.INSTANCE.errorIcon()) + "<h2>Error: " + ApplicationMessages.INSTANCE.groupMembershipCantBeExtended(group.getName()) + "</h2>");
        ft.getFlexCellFormatter().setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_CENTER);
        ft.getFlexCellFormatter().setVerticalAlignment(0, 0, HasVerticalAlignment.ALIGN_MIDDLE);
        panel.add(ft);
        // redirect if possible
        if (Location.getParameter("targetexisting") != null) {
            Location.replace(Location.getParameter("targetexisting"));
        }
        return;
    }
    // application form page
    ApplicationFormPage formPage = new ApplicationFormPage(vo, group, applicationType);
    // even user "not yet in perun" can have some applications sent (therefore display by session info)
    UsersApplicationsPage appsPage = new UsersApplicationsPage();
    // if rt test
    if ("true".equals(Location.getParameter("rttest"))) {
        TestRtReportingTabItem tabItem = new TestRtReportingTabItem();
        Widget rtTab = tabItem.draw();
        leftMenu.addItem("RT test", SmallIcons.INSTANCE.settingToolsIcon(), rtTab);
    }
    // proper menu text
    String appMenuText = ApplicationMessages.INSTANCE.applicationFormForVo(vo.getName());
    if (group != null) {
        appMenuText = ApplicationMessages.INSTANCE.applicationFormForGroup(group.getName());
    }
    if (applicationType.equalsIgnoreCase("EXTENSION")) {
        appMenuText = ApplicationMessages.INSTANCE.membershipExtensionForVo(vo.getName());
        if (group != null) {
            appMenuText = ApplicationMessages.INSTANCE.membershipExtensionForGroup(group.getName());
        }
    }
    // load list of applications first if param in session
    if ("apps".equals(Location.getParameter("page"))) {
        Anchor a = leftMenu.addItem(ApplicationMessages.INSTANCE.applications(), SmallIcons.INSTANCE.applicationFromStorageIcon(), appsPage);
        leftMenu.addItem(appMenuText, SmallIcons.INSTANCE.applicationFormIcon(), formPage);
        a.fireEvent(new ClickEvent() {
        });
    //appsPage.menuClick(); // load list of apps
    } else {
        Anchor a = leftMenu.addItem(appMenuText, SmallIcons.INSTANCE.applicationFormIcon(), formPage);
        leftMenu.addItem(ApplicationMessages.INSTANCE.applications(), SmallIcons.INSTANCE.applicationFromStorageIcon(), appsPage);
        a.fireEvent(new ClickEvent() {
        });
    //formPage.menuClick(); // load application form
    }
    leftMenu.addLogoutItem();
}
Also used : JsonCallbackEvents(cz.metacentrum.perun.webgui.json.JsonCallbackEvents) ValidateEmail(cz.metacentrum.perun.webgui.json.registrarManager.ValidateEmail) TestRtReportingTabItem(cz.metacentrum.perun.webgui.tabs.testtabs.TestRtReportingTabItem) AjaxLoaderImage(cz.metacentrum.perun.webgui.widgets.AjaxLoaderImage) RecaptchaWidget(cz.metacentrum.perun.webgui.widgets.recaptcha.RecaptchaWidget) AjaxLoaderImage(cz.metacentrum.perun.webgui.widgets.AjaxLoaderImage) UsersApplicationsPage(cz.metacentrum.perun.webgui.client.applicationresources.pages.UsersApplicationsPage) ApplicationFormPage(cz.metacentrum.perun.webgui.client.applicationresources.pages.ApplicationFormPage)

Aggregations

ApplicationFormPage (cz.metacentrum.perun.webgui.client.applicationresources.pages.ApplicationFormPage)1 UsersApplicationsPage (cz.metacentrum.perun.webgui.client.applicationresources.pages.UsersApplicationsPage)1 JsonCallbackEvents (cz.metacentrum.perun.webgui.json.JsonCallbackEvents)1 ValidateEmail (cz.metacentrum.perun.webgui.json.registrarManager.ValidateEmail)1 TestRtReportingTabItem (cz.metacentrum.perun.webgui.tabs.testtabs.TestRtReportingTabItem)1 AjaxLoaderImage (cz.metacentrum.perun.webgui.widgets.AjaxLoaderImage)1 RecaptchaWidget (cz.metacentrum.perun.webgui.widgets.recaptcha.RecaptchaWidget)1