package org.sakaiproject.delegatedaccess.tool.pages;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.form.AjaxButton;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.model.ResourceModel;
import org.apache.wicket.model.StringResourceModel;
public class AdministratePage extends BasePage{
private SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy hh:mm aaa");
public AdministratePage(){
disableLink(administrateLink);
//Form Feedback (Saved/Error)
final Label formFeedback = new Label("formFeedback");
formFeedback.setOutputMarkupPlaceholderTag(true);
final String formFeedbackId = formFeedback.getMarkupId();
add(formFeedback);
//Add Delegated Access to My Workspaces:
final Label addDaMyworkspaceStatusLabel = new Label("lastRanInfo", new AbstractReadOnlyModel<String>() {
@Override
public String getObject() {
String lastRanInfoStr = projectLogic.getAddDAMyworkspaceJobStatus();
if(lastRanInfoStr == null){
lastRanInfoStr = new ResourceModel("addDaMyworkspace.job.status.none").getObject();
}else{
try{
long lastRanInfoInt = Long.parseLong(lastRanInfoStr);
if(lastRanInfoInt == -1){
return new ResourceModel("addDaMyworkspace.job.status.failed").getObject();
}else if(lastRanInfoInt == 0){
return new ResourceModel("addDaMyworkspace.job.status.scheduled").getObject();
}else{
Date successDate = new Date(lastRanInfoInt);
return new ResourceModel("addDaMyworkspace.job.status.success").getObject() + " " + format.format(successDate);
}
}catch (Exception e) {
return new ResourceModel("na").getObject();
}
}
return lastRanInfoStr;
}
});
addDaMyworkspaceStatusLabel.setOutputMarkupPlaceholderTag(true);
final String addDaMyworkspaceStatusLabelId = addDaMyworkspaceStatusLabel.getMarkupId();
add(addDaMyworkspaceStatusLabel);
Form<?> addDaMyworkspaceForm = new Form("addDaMyworkspaceForm");
AjaxButton addDaMyworkspaceButton = new AjaxButton("addDaMyworkspace", new StringResourceModel("addDaMyworkspaceTitle", null)){
@Override
protected void onSubmit(AjaxRequestTarget target, Form<?> arg1) {
projectLogic.scheduleAddDAMyworkspaceJobStatus();
//display a "saved" message
formFeedback.setDefaultModel(new ResourceModel("success.addDaMyworkspace"));
formFeedback.add(new AttributeModifier("class", true, new Model("success")));
target.addComponent(formFeedback);
target.appendJavascript("hideFeedbackTimer('" + formFeedbackId + "');");
target.addComponent(addDaMyworkspaceStatusLabel,addDaMyworkspaceStatusLabelId);
}
};
addDaMyworkspaceForm.add(addDaMyworkspaceButton);
add(addDaMyworkspaceForm);
}
}