/**
* Copyright 2013 Tommi S.E. Laukkanen
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.bubblecloud.ilves.module.audit;
import org.bubblecloud.ilves.component.formatter.TimestampConverter;
import org.bubblecloud.ilves.component.grid.FieldSetDescriptor;
import org.bubblecloud.ilves.component.grid.FieldSetDescriptorRegister;
import org.bubblecloud.ilves.model.AuditLogEntry;
import org.bubblecloud.ilves.security.DefaultRoles;
import org.bubblecloud.ilves.site.*;
import org.bubblecloud.ilves.site.view.valo.DefaultValoView;
/**
* Audit module adds support for viewing audit logs.
*
* @author Tommi S.E. Laukkanen
*/
public class AuditModule implements SiteModule {
@Override
public void initialize() {
final SiteDescriptor siteDescriptor = DefaultSiteUI.getContentProvider().getSiteDescriptor();
final NavigationVersion navigationVersion = siteDescriptor.getNavigation().getProductionVersion();
navigationVersion.addChildPage("configuration", "companies", "audit");
// Describe content view.
final ViewDescriptor viewDescriptor = new ViewDescriptor("audit", "Audit", DefaultValoView.class);
viewDescriptor.setViewerRoles(DefaultRoles.ADMINISTRATOR);
viewDescriptor.setViewletClass("content", AuditFlow.class);
siteDescriptor.getViewDescriptors().add(viewDescriptor);
// Describe feedback view fields.
final FieldSetDescriptor fieldSetDescriptor = new FieldSetDescriptor(AuditLogEntry.class);
fieldSetDescriptor.setVisibleFieldIds(new String[]{
"created", "componentAddress", "componentType", "userAddress", "userId", "userName", "event",
"dataId", "dataLabel", "dataNewVersionId", "dataOldVersionId"
});
fieldSetDescriptor.getFieldDescriptor("created").setConverter(new TimestampConverter());
fieldSetDescriptor.getFieldDescriptor("componentAddress").setCollapsed(true);
fieldSetDescriptor.getFieldDescriptor("userAddress").setCollapsed(true);
fieldSetDescriptor.getFieldDescriptor("userId").setCollapsed(true);
fieldSetDescriptor.getFieldDescriptor("dataId").setCollapsed(true);
fieldSetDescriptor.getFieldDescriptor("dataNewVersionId").setCollapsed(true);
fieldSetDescriptor.getFieldDescriptor("dataOldVersionId").setCollapsed(true);
fieldSetDescriptor.getFieldDescriptor("dataLabel").setWidth(-1);
FieldSetDescriptorRegister.registerFieldSetDescriptor(AuditLogEntry.class, fieldSetDescriptor);
}
@Override
public void injectDynamicContent(final SiteDescriptor dynamicSiteDescriptor) {
}
}