Search in sources :

Example 11 with UserSearchController

use of org.olat.admin.user.UserSearchController in project OpenOLAT by OpenOLAT.

the class BGUserManagementController method addMembership.

private void addMembership(UserRequest ureq, BGMembership type) {
    removeAsListenerAndDispose(cmc);
    removeAsListenerAndDispose(addCtrl);
    addCtrl = new UserSearchController(ureq, getWindowControl(), true, true, false);
    addCtrl.setUserObject(type);
    listenTo(addCtrl);
    String title;
    switch(type) {
        case owner:
            title = translate("users.addowner");
            break;
        case participant:
            title = translate("users.addparticipant");
            break;
        case waiting:
            title = translate("users.addwaiting");
            break;
        default:
            title = "";
    }
    cmc = new CloseableModalController(getWindowControl(), translate("close"), addCtrl.getInitialComponent(), true, title);
    listenTo(cmc);
    cmc.activate();
}
Also used : CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) UserSearchController(org.olat.admin.user.UserSearchController)

Example 12 with UserSearchController

use of org.olat.admin.user.UserSearchController in project OpenOLAT by OpenOLAT.

the class GuiDemoCalloutWindowController method event.

/**
 * @see org.olat.core.gui.control.DefaultController#event(org.olat.core.gui.UserRequest,
 *      org.olat.core.gui.components.Component,
 *      org.olat.core.gui.control.Event)
 */
@Override
public void event(UserRequest ureq, Component source, Event event) {
    if (source == calloutTriggerLink) {
        if (calloutCtr == null) {
            // Open callout window and provide a DOM trigger ID manually from a
            // link. The content is a little two step workflow (user search)
            UserSearchController ctr = new UserSearchController(ureq, getWindowControl(), false);
            calloutCtr = new CloseableCalloutWindowController(ureq, getWindowControl(), ctr.getInitialComponent(), "o_c" + calloutTriggerLink.getDispatchID(), null, true, null);
            calloutCtr.addDisposableChildController(ctr);
            calloutCtr.activate();
            listenTo(calloutCtr);
        } else {
            // When window is already opened, second click on trigger should close
            // it again.
            removeAsListenerAndDispose(calloutCtr);
            calloutCtr = null;
        }
    } else if (source == calloutTriggerLink2) {
        if (calloutCtr2 == null) {
            // Open callout window and provide a DOM trigger link. The content is
            // some static text.
            TextComponent calloutPanel = TextFactory.createTextComponentFromString("bla", "Just some random text here<br />Note that this window has no close button! <br /><br /><b>Click the button a second time to close this window.</b>", null, false, null);
            calloutCtr2 = new CloseableCalloutWindowController(ureq, getWindowControl(), calloutPanel, calloutTriggerLink2, "This is a title in a callout window", false, null);
            calloutCtr2.activate();
            listenTo(calloutCtr2);
        } else {
            // When window is already opened, second click on trigger should close
            // it again.
            removeAsListenerAndDispose(calloutCtr2);
            calloutCtr2 = null;
        }
    } else if (source == contentVC) {
        // callout window
        if ("trigger3".equals(event.getCommand())) {
            if (calloutCtr3 == null) {
                // open callout window
                TextComponent calloutPanel = TextFactory.createTextComponentFromString("blu", "Cras dictum. Maecenas ut turpis. In vitae erat ac orci dignissim eleifend. Nunc quis justo. Sed vel ipsum in purus tincidunt pharetra. Sed pulvinar, felis id consectetuer malesuada, enim nisl mattis elit, a facilisis tortor nibh quis leo. Sed augue lacus, pretium vitae, molestie eget, rhoncus quis, elit. Donec in augue. Fusce orci wisi, ornare id, mollis vel, lacinia vel, massa. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.", "o_error", false, null);
                calloutCtr3 = new CloseableCalloutWindowController(ureq, getWindowControl(), calloutPanel, "myspecialdomid", null, true, "trigger3");
                calloutCtr3.activate();
                listenTo(calloutCtr3);
            } else {
                // When window is already opened, second click on trigger should close
                // it again.
                removeAsListenerAndDispose(calloutCtr3);
                calloutCtr3 = null;
            }
        }
    }
}
Also used : TextComponent(org.olat.core.gui.components.text.TextComponent) CloseableCalloutWindowController(org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController) UserSearchController(org.olat.admin.user.UserSearchController)

Example 13 with UserSearchController

use of org.olat.admin.user.UserSearchController in project OpenOLAT by OpenOLAT.

the class GuiDemoFloatingPanelController method event.

@Override
public void event(UserRequest ureq, Component source, Event event) {
    if (source == open) {
        UserSearchController userSearch = new UserSearchController(ureq, getWindowControl(), true);
        dialog = new FloatingResizableDialogController(ureq, getWindowControl(), userSearch.getInitialComponent(), "Your title", 350, 350, 400, 200, null, "", true, false);
        dialog.addControllerListener(this);
        panelVc.put("panel", dialog.getInitialComponent());
        panel.setContent(panelVc);
    } else if (source == open2) {
        dialog = new FloatingResizableDialogController(ureq, getWindowControl(), localContent, "Your title", 350, 350, 400, 200, createVelocityContainer("localContent2"), "", true, false);
        dialog.addControllerListener(this);
        panelVc.put("panel", dialog.getInitialComponent());
        contentLink = LinkFactory.createLink("link4", localContent, this);
        panel.setContent(panelVc);
    } else if (source == contentLink) {
        getWindowControl().setInfo("Congratulations! You won a trip to Lorem Ipsum.");
    }
}
Also used : FloatingResizableDialogController(org.olat.core.gui.control.floatingresizabledialog.FloatingResizableDialogController) UserSearchController(org.olat.admin.user.UserSearchController)

Example 14 with UserSearchController

use of org.olat.admin.user.UserSearchController in project OpenOLAT by OpenOLAT.

the class ClusterAdminControllerCluster method event.

@Override
protected void event(UserRequest ureq, Component source, Event event) {
    if (source == syncLong) {
        // sync on a olatresourceable and hold the lock for 5 seconds.
        CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(ORES_TEST, new SyncerExecutor() {

            public void execute() {
                sleep(5000);
            }
        });
        // the runnable is executed within the same thread->
        getWindowControl().setInfo("done syncing on the test olatresourceable for 5 seconds");
    } else if (source == syncShort) {
        // sync on a olatresourceable and hold the lock for 1 second.
        CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(ORES_TEST, new SyncerExecutor() {

            public void execute() {
                sleep(1000);
            }
        });
        // the runnable is executed within the same thread->
        getWindowControl().setInfo("done syncing on the test olatresourceable for 1 second");
    } else if (source == testPerf) {
        // send 1000 (short) messages over the cluster bus
        int cnt = 1000;
        long start = System.nanoTime();
        for (int i = 0; i < cnt; i++) {
            clusBus.fireEventToListenersOf(new MultiUserEvent("jms-perf-test-" + i + " of " + cnt), ORES_TEST);
        }
        long stop = System.nanoTime();
        long dur = stop - start;
        double inmilis = dur / 1000000;
        double avg = dur / cnt;
        double avgmilis = avg / 1000000;
        getWindowControl().setInfo("sending " + cnt + " messages took " + inmilis + " ms, avg per messages was " + avg + " ns = " + avgmilis + " ms");
    } else if (source == testCachePut) {
        CacheWrapper<String, String> cw = CoordinatorManager.getInstance().getCoordinator().getCacher().getCache(this.getClass().getSimpleName(), "cachetest");
        // we explicitly use put and not putSilent to show that a put invalidates (and thus removes) this key of this cache in all other cluster nodes.
        cw.update("akey", "hello");
        updateCacheInfo();
    } else if (source == testCachePut2) {
        // we explicitly use put and not putSilent to show that a put invalidates (and thus removes) this key of this cache in all other cluster nodes.
        CacheWrapper<String, String> cw = CoordinatorManager.getInstance().getCoordinator().getCacher().getCache(this.getClass().getSimpleName(), "cachetest");
        cw.update("akey", "world");
        updateCacheInfo();
    } else if (source == testSFUPerf) {
        // acquire a sync 1000x times (does internally a select-for-update on the database)
        int cnt = 1000;
        long start = System.nanoTime();
        for (int i = 0; i < cnt; i++) {
            CoordinatorManager.getInstance().getCoordinator().getSyncer().doInSync(ORES_TEST, new SyncerExecutor() {

                public void execute() {
                // empty
                }
            });
        }
        long stop = System.nanoTime();
        long dur = stop - start;
        double inmilis = dur / 1000000;
        double avg = dur / cnt;
        double avgmilis = avg / 1000000;
        getWindowControl().setInfo("acquiring " + cnt + " locks for syncing (using db's \"select for update\") took " + inmilis + " ms, avg per messages was " + avg + " ns = " + avgmilis + " ms");
    } else if (source == releaseAllLocksFor) {
        // let a user search pop up
        usc = new UserSearchController(ureq, getWindowControl(), true);
        listenTo(usc);
        getWindowControl().pushAsModalDialog(usc.getInitialComponent());
    } else if ((source == nodeInfoVc) && (event.getCommand().equals("switchToNode"))) {
        String nodeIdStr = ureq.getHttpReq().getParameter("nodeId");
        if (nodeIdStr.length() == 1) {
            nodeIdStr = "0" + nodeIdStr;
        }
        Cookie[] cookies = ureq.getHttpReq().getCookies();
        for (int i = 0; i < cookies.length; i++) {
            Cookie cookie = cookies[i];
            if ("JSESSIONID".equals(cookie.getName())) {
                String redirectedButInvalidSessionId = cookie.getValue();
                redirectedButInvalidSessionId = redirectedButInvalidSessionId.substring(0, redirectedButInvalidSessionId.length() - 2) + nodeIdStr;
                logInfo("redirecting session to node " + nodeIdStr + ", new sessionid=" + redirectedButInvalidSessionId, null);
                cookie.setValue(redirectedButInvalidSessionId);
                replaceCookie(ureq.getHttpReq(), ureq.getHttpResp(), cookie);
                // OLAT-5165: make sure we can always bypass the dmz reject mechanism (for 5min that is)
                Cookie newCookie = new Cookie("bypassdmzreject", String.valueOf(System.currentTimeMillis()));
                // 5min lifetime
                newCookie.setMaxAge(5 * 60);
                newCookie.setPath(WebappHelper.getServletContextPath());
                newCookie.setSecure(ureq.getHttpReq().isSecure());
                newCookie.setComment("cookie allowing olat admin users to bypass dmz rejects");
                ureq.getHttpResp().addCookie(newCookie);
                OncePanel oncePanel = new OncePanel("refresh");
                oncePanel.setContent(createVelocityContainer("refresh"));
                mainVc.put("refresh", oncePanel);
                break;
            }
        }
    } else if (source == toggleStartStop) {
        clusBus.resetStats();
        updatePerfInfos();
    } else if (source == resetStats) {
        clusBus.resetStats();
        updatePerfInfos();
    }
}
Also used : Cookie(javax.servlet.http.Cookie) CacheWrapper(org.olat.core.util.cache.CacheWrapper) OncePanel(org.olat.core.gui.components.panel.OncePanel) SyncerExecutor(org.olat.core.util.coordinate.SyncerExecutor) UserSearchController(org.olat.admin.user.UserSearchController) MultiUserEvent(org.olat.core.util.event.MultiUserEvent)

Example 15 with UserSearchController

use of org.olat.admin.user.UserSearchController in project OpenOLAT by OpenOLAT.

the class DENManageParticipantsController method event.

@Override
public void event(UserRequest ureq, Component source, Event event) {
    if (source == addParticipantButton) {
        // open user search controller to manually add users in date
        removeAsListenerAndDispose(userSearchCntrl);
        userSearchCntrl = new UserSearchController(ureq, getWindowControl(), true, true, false);
        listenTo(userSearchCntrl);
        removeAsListenerAndDispose(userSearchCMC);
        userSearchCMC = new CloseableModalController(getWindowControl(), "close", userSearchCntrl.getInitialComponent());
        listenTo(userSearchCMC);
        userSearchCMC.activate();
    }
}
Also used : CloseableModalController(org.olat.core.gui.control.generic.closablewrapper.CloseableModalController) UserSearchController(org.olat.admin.user.UserSearchController)

Aggregations

UserSearchController (org.olat.admin.user.UserSearchController)24 CloseableModalController (org.olat.core.gui.control.generic.closablewrapper.CloseableModalController)16 Component (org.olat.core.gui.components.Component)4 CloseableCalloutWindowController (org.olat.core.gui.control.generic.closablewrapper.CloseableCalloutWindowController)4 ArrayList (java.util.ArrayList)2 List (java.util.List)2 NamingException (javax.naming.NamingException)2 LdapContext (javax.naming.ldap.LdapContext)2 Cookie (javax.servlet.http.Cookie)2 GroupRoles (org.olat.basesecurity.GroupRoles)2 UserRequest (org.olat.core.gui.UserRequest)2 OncePanel (org.olat.core.gui.components.panel.OncePanel)2 TextComponent (org.olat.core.gui.components.text.TextComponent)2 WindowControl (org.olat.core.gui.control.WindowControl)2 FloatingResizableDialogController (org.olat.core.gui.control.floatingresizabledialog.FloatingResizableDialogController)2 Step (org.olat.core.gui.control.generic.wizard.Step)2 StepRunnerCallback (org.olat.core.gui.control.generic.wizard.StepRunnerCallback)2 StepsMainRunController (org.olat.core.gui.control.generic.wizard.StepsMainRunController)2 StepsRunContext (org.olat.core.gui.control.generic.wizard.StepsRunContext)2 Identity (org.olat.core.id.Identity)2