Example usage for org.apache.wicket RestartResponseAtInterceptPageException RestartResponseAtInterceptPageException

List of usage examples for org.apache.wicket RestartResponseAtInterceptPageException RestartResponseAtInterceptPageException

Introduction

In this page you can find the example usage for org.apache.wicket RestartResponseAtInterceptPageException RestartResponseAtInterceptPageException.

Prototype

public RestartResponseAtInterceptPageException(Class<? extends Page> interceptPageClass) 

Source Link

Document

Redirects to the specified intercept page, this will result in a bookmarkable redirect.

Usage

From source file:com.tysanclan.site.projectewok.pages.ActivationNotificationPage.java

License:Open Source License

public ActivationNotificationPage(Activation activation) {
    super("Account not yet active");

    if (activation == null || activation.getUser() == null) {
        throw new RestartResponseAtInterceptPageException(NewsPage.class);
    }//from  w w w.j  a  v a2s .  c  om

    Form<Activation> activationForm = new Form<Activation>("resendform", ModelMaker.wrap(activation)) {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private UserService userService;

        @SpringBean
        private MailService mailService;

        /**
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @SuppressWarnings("unchecked")
        @Override
        protected void onSubmit() {
            TextField<String> mailField = (TextField<String>) get("email");

            if (StringUtil.isValidEMail(mailField.getModelObject())) {

                User user = getModelObject().getUser();

                if (userService.setUserMail(user, mailField.getModelObject())) {

                    mailService.sendHTMLMail(user.getEMail(), "Tysan Clan Forums", mailService
                            .getActivationMailBody(user.getUsername(), getModelObject().getActivationKey()));

                    info("Activation e-mail has been sent again!");
                } else {
                    error("That e-mail address is already in use for another account!");
                }

            } else {
                error("Please specify a valid e-mail address!");
            }

        }

    };

    activationForm.add(new TextField<String>("email", new Model<String>(activation.getUser().getEMail())));

    add(activationForm);
}

From source file:com.tysanclan.site.projectewok.pages.forum.ActivationPage.java

License:Open Source License

/**
 * //from  w w w. j a v  a  2s .c  o m
 */
public ActivationPage(PageParameters params) {
    super("Account activation");

    ActivationPageParams parameters;
    try {
        parameters = requiredString("key").forParameters(params).toClass(ActivationPageParams.class);
    } catch (PageParameterExtractorException e) {
        throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND);
    }

    ActivationFilter filter = new ActivationFilter();
    filter.setKey(parameters.getKey());
    List<Activation> activations = activationDAO.findByFilter(filter);

    if (activations.isEmpty()) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    Activation activation = activations.get(0);

    add(new Label("username", activation.getUser().getUsername()));

    add(new Form<Activation>("activation", ModelMaker.wrap(activation)) {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @SpringBean
        private UserService userService;

        /**
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @Override
        protected void onSubmit() {
            if (userService.activateAccount(getModelObject())) {
                setResponsePage(new AccountActivePage(getModelObject().getUser()));
            } else {
                error("Could not activate account, perhaps it was already activated?");
            }
        }

    });

}

From source file:com.tysanclan.site.projectewok.pages.ForumPage.java

License:Open Source License

public ForumPage(PageParameters params) {
    super("");

    ForumPageParams parameters;/*from w  w  w . j  ava 2  s.  com*/

    try {
        parameters = requiredLong("forumid").requiredLong("pageid").forParameters(params)
                .toClass(ForumPageParams.class);
    } catch (PageParameterExtractorException e) {
        throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND);
    }

    if (parameters.getPageNumber() <= 0) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    Forum forum = forumDAO.get(parameters.getForumId());

    if (forum == null) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    if (!forum.canView(getUser())) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    initComponents(forum, parameters.getPageNumber());
}

From source file:com.tysanclan.site.projectewok.pages.ForumThreadPage.java

License:Open Source License

public ForumThreadPage(PageParameters params) {
    super("");

    ForumThreadPageParams parameters;/*  w  ww . j a  v  a2 s.  com*/

    try {
        parameters = requiredLong("threadid").requiredInt("pageid").forParameters(params)
                .toClass(ForumThreadPageParams.class);
    } catch (PageParameterExtractorException e) {
        throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND);
    }

    ForumThread t = dao.get(parameters.getThreadId());

    if (t == null) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    initComponents(t, parameters.getPageNumber(), getUser() == null);
}

From source file:com.tysanclan.site.projectewok.pages.ForumThreadPage.java

License:Open Source License

protected void initComponents(ForumThread thread, final int pageId, final boolean publicView) {
    TysanSession sess = TysanSession.get();

    Forum forum = thread.getForum();/*w w  w  .  ja  va 2  s .c om*/

    if (!forumService.canView(getUser(), forum)) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    boolean memberLoggedIn = sess != null;

    setPageTitle(thread.getTitle());
    threadModel = ModelMaker.wrap(thread);

    initJoinComponents(thread, pageId);

    Link<ForumThread> replyLink = new Link<ForumThread>("replylink") {
        private static final long serialVersionUID = 1L;

        /**
         * @see org.apache.wicket.markup.html.link.Link#onClick()
         */
        @Override
        public void onClick() {
            setResponsePage(new ReplyPage(threadModel.getObject(), pageId));

        }
    };

    WebMarkupContainer branchnote = new WebMarkupContainer("branchnote");
    if (thread.getBranchFrom() != null) {
        branchnote.add(new AutoThreadLink("source", thread.getBranchFrom()));
    } else {
        branchnote.add(new WebMarkupContainer("source"));
    }
    add(branchnote);
    branchnote.setVisible(thread.getBranchFrom() != null);

    ForumThreadModeratorPanel modPanel = new ForumThreadModeratorPanel("moderatorToolbox", thread);

    User currentUser = getUser();
    boolean moderator = forumService.isModerator(currentUser, thread.getForum());

    modPanel.setVisible(moderator);

    add(modPanel);

    add(replyLink);

    long parentPageIndex = determineParentPageIndex(thread);

    add(new AutoForumLink("returnlink", thread.getForum(), "Return to forum", parentPageIndex));
    add(new AutoForumLink("returnlink2", thread.getForum(), "Return to forum", parentPageIndex));

    Event event = eventDAO.getEventByThread(thread);
    if (event == null) {
        add(new WebMarkupContainer("event").setVisible(false));
    } else {
        add(new ForumEventPanel("event", event, getUser()));
    }

    Trial trial = trialDAO.getTrialByThread(thread);
    if (trial == null) {
        add(new WebMarkupContainer("trial").setVisible(false));
    } else {
        add(new TrialPanel("trial", trial, getUser()));
    }

    DataView<ForumPost> postView = new DataView<ForumPost>("posts",
            ForumDataProvider.of(thread, forumPostDAO)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(Item<ForumPost> item) {
            final ForumPost fp = item.getModelObject();

            item.add(new PostPanel("postpanel", fp));
        }

    };

    postView.setItemsPerPage(ForumThread.POSTS_PER_PAGE);
    postView.setCurrentPage(pageId - 1);

    add(postView);

    add(new PagingNavigator("topnavigation", postView));
    add(new PagingNavigator("bottomnavigation", postView));

    replyLink.setVisible(memberLoggedIn && !thread.isLocked()
            && forumService.canReply(getUser(), thread.getForum()) && mayReplyToTrial(trial, getUser()));

}

From source file:com.tysanclan.site.projectewok.pages.GroupPage.java

License:Open Source License

public GroupPage(PageParameters params) {
    super("Group");

    GroupPageParams parameters;/*from   w w w  .j  a v  a 2 s  .c  o m*/

    try {
        parameters = requiredLong("groupid").forParameters(params).toClass(GroupPageParams.class);
    } catch (PageParameterExtractorException e) {
        throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND);
    }

    Group g = groupDAO.get(parameters.getGroupId());

    if (g == null) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    initComponents(g);
}

From source file:com.tysanclan.site.projectewok.pages.member.AbstractElectionPage.java

License:Open Source License

/**
 * /*from   w w w  .jav  a 2s  .  c  om*/
 */
public AbstractElectionPage(String title, T election) {
    super(title);

    final boolean isNominationOpen = election.isNominationOpen();

    WebClientInfo clientInfo = TysanSession.get().getClientInfo();

    // If user is using IE7, offer him an alternative
    if (!isNominationOpen
            && (clientInfo.getUserAgent().contains("MSIE") || clientInfo.getUserAgent().contains("Trident"))) {
        throw new RestartResponseAtInterceptPageException(getInternetExplorerAlternativePage(election));
    }

    votes = new TreeMap<Integer, Long>();
    candidates = election.getCandidates().size();

    List<User> users = new LinkedList<User>();
    users.addAll(election.getCandidates());

    ListView<User> candidateView = new ListView<User>("candidates", ModelMaker.wrap(users)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<User> item) {
            MemberListItem mitem = new MemberListItem("candidate", item.getModelObject());

            if (!isNominationOpen) {
                mitem.add(new DraggableBehavior() {
                    private static final long serialVersionUID = 1L;

                    /**
                     * @see org.odlabs.wiquery.ui.draggable.DraggableBehavior#statement()
                     */
                    @Override
                    public JsStatement statement() {
                        return new JsQuery(getComponent()).$().chain("draggable", "{ revert: true }");

                    }
                });
                mitem.setOutputMarkupId(true);
            }

            item.add(mitem);

        }

    };

    add(new Label("label", isNominationOpen ? "Candidates" : "Cast your vote!"));

    TimeZone tz = getUser().getTimezone() != null ? TimeZone.getTimeZone(getUser().getTimezone())
            : DateUtil.NEW_YORK;

    Calendar cal = Calendar.getInstance(tz, Locale.US);
    cal.setTime(election.getStart());
    cal.add(Calendar.WEEK_OF_YEAR, 1);

    Label explanation = new Label("explanation", isNominationOpen
            ? "Voting will commence " + DateUtil.getTimezoneFormattedString(cal.getTime(), tz.getID())
            : "Drag and drop the candidates of your choice to cast your vote. Place your favorites at the top and your least favorites at the bottom. The order you give them will determine their score. The higher their position the higher the score");

    Form<Void> castVoteForm = new Form<Void>("voteform") {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private UserDAO userDAO;

        /**
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @Override
        protected void onSubmit() {
            List<User> userList = new LinkedList<User>();

            for (Integer position : getVotes().keySet()) {
                userList.add(userDAO.load(getVotes().get(position)));
            }

            onVoteSubmit(userList);
        }

    };

    castVoteForm.add(candidateView);

    List<Integer> positions = new LinkedList<Integer>();
    for (int i = 0; i < users.size(); i++) {
        positions.add(users.size() - (i + 1));
    }

    castVoteForm.add(new ListView<Integer>("slots", positions) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<Integer> item) {
            item.add(new Label("position", new Model<Integer>(item.getIndex() + 1)));

            final int index = item.getIndex();

            item.add(new Label("score", new Model<Integer>(item.getModelObject())));
            WebMarkupContainer container = new WebMarkupContainer("target");
            container.setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true);

            if (!isNominationOpen) {
                DroppableAjaxBehavior behavior = new DroppableAjaxBehavior() {
                    private static final long serialVersionUID = 1L;

                    protected void drop(AjaxRequestTarget target, Component source, Component dropped) {

                        if (dropped instanceof MemberListItem) {
                            MemberListItem mli = (MemberListItem) dropped;

                            MemberListItem item2 = new MemberListItem("target", mli.getUser());
                            item2.setOutputMarkupId(true);
                            getComponent().replaceWith(item2);
                            mli.setVisible(false);

                            getVotes().put(index, mli.getUser().getId());

                            if (votes.size() == AbstractElectionPage.this.candidates) {
                                submitButton.setVisible(true);
                                if (target != null) {
                                    target.add(submitButton);
                                }
                            }

                            if (target != null) {

                                target.add(mli);
                                target.add(item2);
                            }
                        }

                    }
                };

                behavior.setHoverClass("election-hover");

                container.add(behavior);
            }

            item.add(container

            );
        }

    });

    add(explanation);
    add(castVoteForm);
    submitButton = new WebMarkupContainer("submit").setOutputMarkupId(true).setOutputMarkupPlaceholderTag(true)
            .setVisible(false);

    castVoteForm.add(submitButton);
}

From source file:com.tysanclan.site.projectewok.pages.member.admin.AbstractRoleTransferPage.java

License:Open Source License

public AbstractRoleTransferPage(RoleType type) {
    super("Transfer of " + type.toString());

    if (!getUser().equals(getRole(roleService))) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }//from   w ww .j a va2s  .  c om

    RoleTransfer transfer = roleService.getCurrentTransfer(type);

    if (transfer != null)
        throw new RestartResponseAtInterceptPageException(new TransferInProgressPage(type));

    UserFilter filter = new UserFilter();
    filter.setRetired(false);
    filter.addRank(Rank.CHANCELLOR);
    filter.addRank(Rank.SENATOR);
    filter.addRank(Rank.TRUTHSAYER);
    filter.addRank(Rank.REVERED_MEMBER);
    filter.addRank(Rank.FULL_MEMBER);
    filter.addRank(Rank.SENIOR_MEMBER);
    filter.addRank(Rank.JUNIOR_MEMBER);
    filter.addOrderBy("username", true);

    List<User> users = userDAO.findByFilter(filter);

    final TysanDropDownChoice<User> userChoice = new TysanDropDownChoice<User>("user", null, users);
    userChoice.setNullValid(false);
    userChoice.setRequired(false);

    Form<RoleType> transferForm = new Form<RoleType>("transferForm", new Model<RoleType>(type)) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit() {
            roleService.initiateTransfer(getModelObject(), userChoice.getModelObject());

            setResponsePage(new TransferInProgressPage(getModelObject()));
        }
    };

    transferForm.add(new Label("type", type.toString()));

    transferForm.add(userChoice);

    add(transferForm);
}

From source file:com.tysanclan.site.projectewok.pages.member.admin.CaretakerFinancePage.java

License:Open Source License

public CaretakerFinancePage(User user) {
    super("Clan Finances");

    if (!roleService.getTreasurer().equals(user)) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }/*ww w.  j  a va2  s .  c  o m*/

    ExpenseFilter efilter = new ExpenseFilter();
    efilter.addOrderBy("start", true);

    add(new ListView<Expense>("expenses", ModelMaker.wrap(expenseDAO.findByFilter(efilter))) {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<Expense> item) {
            Expense expense = item.getModelObject();

            item.add(new Label("expense", expense.getName()));
            item.add(new Label("amount", new DollarSignModel(new Model<BigDecimal>(expense.getAmount()))));
            item.add(new Label("regularity", expense.getPeriod().toString()));
            item.add(new DateLabel("start", expense.getStart()));
            if (expense.getEnd() != null) {
                item.add(new DateLabel("end", expense.getEnd()));
            } else {
                item.add(new IconLink.Builder("images/icons/money_delete.png",
                        new DefaultClickResponder<Expense>(ModelMaker.wrap(expense)) {
                            private static final long serialVersionUID = 1L;

                            @Override
                            public void onClick() {
                                financeService.setExpenseEnded(getModelObject(), new Date());

                                setResponsePage(new CaretakerFinancePage(getUser()));
                            }

                        }).newInstance("end"));
            }

            item.add(new IconLink.Builder("images/icons/money.png",
                    new DefaultClickResponder<Expense>(ModelMaker.wrap(expense)) {
                        private static final long serialVersionUID = 1L;

                        @Override
                        public void onClick() {
                            setResponsePage(new EditExpensePage(getModelObject()));
                        }

                    }).newInstance("edit"));

        }

    });

    DonationFilter filter = new DonationFilter();
    filter.addOrderBy("donationTime", true);

    add(new ListView<Donation>("donations", ModelMaker.wrap(donationDAO.findByFilter(filter))) {
        private static final long serialVersionUID = 1L;

        @Override
        protected void populateItem(ListItem<Donation> item) {
            Donation donation = item.getModelObject();

            if (donation.getDonator() == null) {
                item.add(new Label("donor", "Anonymous"));
            } else {
                item.add(new MemberListItem("donor", donation.getDonator()));
            }
            item.add(new DateLabel("date", donation.getDonationTime()));
            item.add(new Label("amount", new DollarSignModel(new Model<BigDecimal>(donation.getAmount()))));
            item.add(new IconLink.Builder("images/icons/cross.png",
                    new DefaultClickResponder<Donation>(ModelMaker.wrap(donation)) {
                        private static final long serialVersionUID = 1L;

                        /**
                         * @see com.tysanclan.site.projectewok.components.IconLink.DefaultClickResponder#onClick()
                         */
                        @Override
                        public void onClick() {
                            financeService.removeDonation(getUser(), getModelObject());

                            setResponsePage(new CaretakerFinancePage(getUser()));
                        }
                    }).newInstance("delete"));

        }

    });

    add(createDonationForm());

    add(createExpenseForm());

    FinancialTimeline t = new FinancialTimeline(expenseDAO, donationDAO, subscriptionDAO, paidExpenseDAO);

    add(new Label("currentReserve", new DollarSignModel(new Model<BigDecimal>(t.getReservesToday()))));

    add(new Label("exhaustion", t.getExhaustionPoint() == null ? "for the foreseeable future (at least 3 years)"
            : t.getExhaustionPoint()));
}

From source file:com.tysanclan.site.projectewok.pages.member.admin.EditExpensePage.java

License:Open Source License

/**
 * //ww w  .j a va 2s  . c  o m
 */
public EditExpensePage(Expense expense) {
    super("Clan Finances");

    if (!getUser().equals(roleService.getTreasurer())) {
        throw new RestartResponseAtInterceptPageException(AccessDeniedPage.class);
    }

    final TextField<String> nameTextField = new TextField<String>("name", new Model<String>(expense.getName()));
    final DatePickerPanel startPicker = new DatePickerPanel("start", expense.getStart());
    final DatePickerPanel endPicker = new DatePickerPanel("end", expense.getEnd());

    List<String> regularityChoices = Arrays
            .asList(new String[] { "Monthly", "Quarterly", "Semiannually", "Annually", "Biannually" });

    final DropDownChoice<String> expenseRegularity = new DropDownChoice<String>("regularity",
            new Model<String>(expense.getPeriod().toString()), regularityChoices);

    BigDecimal whole = expense.getAmount().setScale(0, RoundingMode.DOWN);
    BigDecimal fraction = expense.getAmount().subtract(whole).multiply(new BigDecimal(100));

    final DropDownChoice<Integer> currencyMajorExpense = new DropDownChoice<Integer>("currencymajor",
            new Model<Integer>(whole.intValue()), oneToAThousand);
    final DropDownChoice<Integer> currencyMinorExpense = new DropDownChoice<Integer>("currencyminor",
            new Model<Integer>(fraction.intValue()), zeroToNinetyNine);

    Form<Expense> expenseForm = new Form<Expense>("expenseForm", ModelMaker.wrap(expense)) {
        private static final long serialVersionUID = 1L;

        @SpringBean
        private FinanceService financeService;

        /**
         * @see org.apache.wicket.markup.html.form.Form#onSubmit()
         */
        @Override
        protected void onSubmit() {
            String regularity = expenseRegularity.getModelObject();
            Integer major = currencyMajorExpense.getModelObject();
            Integer minor = currencyMinorExpense.getModelObject();
            String expenseName = nameTextField.getModelObject();
            Date startDate = startPicker.getSelectedDate();
            Date endDate = endPicker.getSelectedDate();

            BigDecimal amount = new BigDecimal(100 * major + minor).divide(new BigDecimal(100));

            ExpensePeriod period = ExpensePeriod.valueOf(regularity.toUpperCase());

            Expense x = getModelObject();

            financeService.updateExpense(x, expenseName, amount, period, startDate, endDate);

            setResponsePage(new CaretakerFinancePage(getUser()));
        }

    };

    expenseForm.add(nameTextField);
    expenseForm.add(startPicker);
    expenseForm.add(endPicker);
    expenseForm.add(expenseRegularity);
    expenseForm.add(currencyMajorExpense);
    expenseForm.add(currencyMinorExpense);

    add(expenseForm);

    add(new Link<Void>("back") {
        private static final long serialVersionUID = 1L;

        /**
         * @see org.apache.wicket.markup.html.link.Link#onClick()
         */
        @Override
        public void onClick() {
            setResponsePage(new CaretakerFinancePage(getUser()));

        }
    });

}