Package com.psddev.cms.db

Examples of com.psddev.cms.db.ToolUserAction


        if (device == null) {
            throw new IllegalArgumentException(String.format(
                    "No looking glass at [%s]!", id));
        }

        ToolUserAction lastAction = Query.
                from(ToolUserAction.class).
                where("device = ?", device).
                sortDescending("time").
                noCache().
                first();

        if (lastAction != null &&
                "ping".equals(page.param(String.class, "action"))) {
            long end = System.currentTimeMillis() + 30000;

            while (System.currentTimeMillis() < end &&
                    lastAction.getTime() == page.param(long.class, "time")) {
                try {
                    Thread.sleep(500);
                } catch (InterruptedException error) {
                    break;
                }

                lastAction = Query.
                        from(ToolUserAction.class).
                        where("device = ?", device).
                        sortDescending("time").
                        noCache().
                        first();
            }

            Map<String, Object> response = new HashMap<String, Object>();

            response.put("changed", lastAction == null || lastAction.getTime() != page.param(long.class, "time"));
            page.getResponse().setContentType("application/json");
            page.writeRaw(ObjectUtils.toJson(response));
            return;
        }

        ToolUser user = device.getUser();

        page.writeHeader();
            page.writeStart("div", "class", "message message-info");
                page.writeHtml("Mirroring ");
                page.writeObjectLabel(user);

                page.writeHtml(" in ");
                page.writeHtml(device.getUserAgentDisplay());

                if (lastAction != null) {
                    Object lastActionContent = lastAction.getContent();

                    if (lastActionContent != null) {
                        page.writeHtml(" - ");
                        page.writeStart("a",
                                "target", "_blank",
                                "href", page.objectUrl("/content/edit.jsp", lastActionContent));
                            page.writeTypeObjectLabel(lastActionContent);
                        page.writeEnd();
                    }
                }
            page.writeEnd();

            Class<?> viewClass = ObjectUtils.getClassByName(page.param(String.class, "view"));

            if (viewClass == null ||
                    !LookingGlassView.class.isAssignableFrom(viewClass)) {
                viewClass = LookingGlassView.PreviewView.class;
            }

            page.writeStart("form",
                    "method", "get",
                    "action", page.cmsUrl("/lookingGlass"));
                page.writeElement("input", "type", "hidden", "name", "id", "value", id);

                page.writeStart("select",
                        "data-bsp-autosubmit", "",
                        "name", "view");
                    for (Class<? extends LookingGlassView> c : ClassFinder.Static.findClasses(LookingGlassView.class)) {
                        if (Modifier.isAbstract(c.getModifiers())) {
                            continue;
                        }

                        page.writeStart("option",
                                "selected", c.equals(viewClass) ? "selected" : null,
                                "value", c.getName());
                            page.writeHtml(StringUtils.toLabel(c.getSimpleName()));
                        page.writeEnd();
                    }
                page.writeEnd();
            page.writeEnd();

            if (lastAction != null) {
                ((LookingGlassView) TypeDefinition.getInstance(viewClass).newInstance()).renderAction(page, user, lastAction);
            }

            page.writeStart("script", "type", "text/javascript");
                page.writeRaw("(function($, win) {");
                    page.writeRaw("var ping = function() {");
                        page.writeRaw("$.ajax({");
                            page.writeRaw("'dataType': 'json',");
                            page.writeRaw("'cache': false,");

                            page.writeRaw("'url': '");
                            page.writeRaw(page.cmsUrl("/lookingGlass",
                                    "id", id,
                                    "action", "ping",
                                    "time", lastAction != null ? lastAction.getTime() : null));
                            page.writeRaw("',");

                            page.writeRaw("'success': function(response) {");
                                page.writeRaw("if (response.changed) {");
                                    page.writeRaw("win.location = win.location;");
View Full Code Here

TOP

Related Classes of com.psddev.cms.db.ToolUserAction

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.