package com.tapadoo.slacknotifier.webui;
import com.tapadoo.slacknotifier.SlackConfigProcessor;
import jetbrains.buildServer.controllers.admin.AdminPage;
import jetbrains.buildServer.serverSide.auth.Permission;
import jetbrains.buildServer.web.openapi.PagePlaces;
import jetbrains.buildServer.web.openapi.PluginDescriptor;
import jetbrains.buildServer.web.openapi.PositionConstraint;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* Created by jasonconnery on 02/03/2014.
*/
public class SlackAdminPage extends AdminPage {
private final SlackConfigProcessor configProcesser;
public SlackAdminPage(PagePlaces pagePlaces, PluginDescriptor descriptor , SlackConfigProcessor configProcessor) {
super(pagePlaces);
setPluginName("slackNotifier");
setIncludeUrl(descriptor.getPluginResourcesPath("/admin/slackAdminPage.jsp"));
setTabTitle("Slack Notifier");
setPosition(PositionConstraint.after("clouds", "email", "jabber"));
register();
this.configProcesser = configProcessor ;
}
@Override
public boolean isAvailable(HttpServletRequest request) {
return super.isAvailable(request) && checkHasGlobalPermission(request, Permission.CHANGE_SERVER_SETTINGS);
}
public String getGroup() {
return INTEGRATIONS_GROUP;
}
@Override
public void fillModel(Map<String, Object> model, HttpServletRequest request) {
super.fillModel(model, request);
model.put("defaultChannel" , configProcesser.getDefaultChannel());
model.put("logoUrl" , configProcesser.getLogoUrl());
model.put("postUrl" , configProcesser.getPostUrl());
}
}