Package com.secretpal.components.group

Source Code of com.secretpal.components.group.SPGroupEditPage

package com.secretpal.components.group;

import com.secretpal.SPUtilities;
import com.secretpal.components.application.SPPage;
import com.secretpal.model.SPEvent;
import com.secretpal.model.SPGroup;
import com.secretpal.model.SPMembership;
import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOContext;
import com.webobjects.eocontrol.EOEditingContext;
import com.webobjects.foundation.NSMutableArray;

import er.extensions.eof.ERXEC;

public class SPGroupEditPage extends SPPage {
  private SPGroup _group;
  public SPMembership _membership;
  public String _inviteEmailAddresses;
  public SPEvent _event;

  public SPGroupEditPage(WOContext context) {
    super(context);
  }

  @Override
  protected void checkAccess() throws SecurityException {
    super.checkAccess();
    if (!_group.canEdit(session().currentPerson().localInstanceIn(_group.editingContext()))) {
      throw new SecurityException("You do not have permission to edit this group.");
    }
  }

  public void setGroup(SPGroup group) {
    EOEditingContext editingContext = ERXEC.newEditingContext();
    _group = group.localInstanceIn(editingContext);
  }

  public SPGroup group() {
    return _group;
  }

  public boolean canDeleteMembership() {
    return _membership.canDelete(session().currentPerson().localInstanceIn(_group.editingContext()));
  }

  public String statusImage() {
    String statusImage;
    if (_membership.person().emailDeliveryFailure().booleanValue()) {
      statusImage = "icon_err.png";
    }
    else if (!_membership.confirmed().booleanValue()) {
      statusImage = "icon_warn.png";
    }
    else {
      statusImage = "icon_ok.png";
    }
    return statusImage;
  }

  public String statusMessage() {
    String statusMessage;
    if (_membership.person().emailDeliveryFailure().booleanValue()) {
      statusMessage = "Email delivery failed.";
    }
    else if (!_membership.confirmed().booleanValue()) {
      statusMessage = "Waiting for member to accept invitation.";
    }
    else {
      statusMessage = "Everything's good!";
    }
    return statusMessage;
  }

  public String confirmationUrl() {
    return SPUtilities.confirmationUrl(_membership, context());
  }

  public WOActionResults deleteMembership() {
    EOEditingContext editingContext = ERXEC.newEditingContext();
    _membership.localInstanceIn(editingContext).delete();
    editingContext.saveChanges();
    return null;
  }

  public WOActionResults sendMembershipInvites() {
    NSMutableArray<String> failedEmailAddresses = new NSMutableArray<String>();
    SPUtilities.sendInvitationEmails(_group, _inviteEmailAddresses, context(), session().notifications(), session().errors(), failedEmailAddresses);
    if (failedEmailAddresses.count() == 0) {
      _inviteEmailAddresses = null;
    }
    else {
      _inviteEmailAddresses = failedEmailAddresses.componentsJoinedByString("\n");
    }
    return null;
  }

  public WOActionResults resendInvitation() {
    EOEditingContext editingContext = ERXEC.newEditingContext();
    SPMembership localMembership = _membership.localInstanceIn(editingContext);
    try {
      SPUtilities.sendInvitationEmail(localMembership, context(), session().errors());
      session().notifications().addNotice("Processing invitation to '" + localMembership.personName() + "'.");
    }
    catch (Exception e) {
      localMembership.person().setEmailDeliveryFailure(Boolean.TRUE);
      session().errors().addNotice("Failed to send invitation to '" + localMembership.personName() + "': " + e.getMessage());
      SPUtilities.log.error("Failed to send invitation to '" + localMembership.personName() + "'.", e);
    }
    return null;
  }

  public WOActionResults saveGroup() {
    if (session().errors().hasNotices()) {
      return null;
    }

    _group.editingContext().saveChanges();
    SPGroupPage groupPage = pageWithName(SPGroupPage.class);
    groupPage.setGroup(_group);
    return groupPage;
  }

  public WOActionResults deleteGroup() {
    _group.delete();
    _group.editingContext().saveChanges();
    return pageWithName(SPHomePage.class);
  }
}
TOP

Related Classes of com.secretpal.components.group.SPGroupEditPage

TOP
Copyright © 2018 www.massapi.com. 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.