/*
* OpenClinica is distributed under the
* GNU Lesser General Public License (GNU LGPL).
* For details see: http://www.openclinica.org/license
* copyright 2003-2009 Akaza Research
*/
package org.akaza.openclinica.control.admin;
import static org.jmesa.facade.TableFacadeFactory.createTableFacade;
import org.akaza.openclinica.control.SpringServletAccess;
import org.akaza.openclinica.control.core.SecureController;
import org.akaza.openclinica.control.form.FormProcessor;
import org.akaza.openclinica.dao.hibernate.DatabaseChangeLogDao;
import org.akaza.openclinica.domain.technicaladmin.DatabaseChangeLogBean;
import org.akaza.openclinica.i18n.core.LocaleResolver;
import org.akaza.openclinica.view.Page;
import org.akaza.openclinica.web.InsufficientPermissionException;
import org.jmesa.facade.TableFacade;
import org.jmesa.view.editor.DateCellEditor;
import org.jmesa.view.html.component.HtmlColumn;
import org.jmesa.view.html.component.HtmlRow;
import org.jmesa.view.html.component.HtmlTable;
import java.util.List;
import java.util.Locale;
/**
* Servlet for creating a user account.
*
* @author Krikor Krumlian
*/
public class AuditDatabaseServlet extends SecureController {
private static final long serialVersionUID = 1L;
// < ResourceBundle restext;
Locale locale;
private DatabaseChangeLogDao databaseChangeLogDao;
/*
* (non-Javadoc)
* @see org.akaza.openclinica.control.core.SecureController#mayProceed()
*/
@Override
protected void mayProceed() throws InsufficientPermissionException {
locale = LocaleResolver.getLocale(request);
// < restext =
// ResourceBundle.getBundle("org.akaza.openclinica.i18n.notes",locale);
if (!ub.isSysAdmin()) {
throw new InsufficientPermissionException(Page.MENU, resexception.getString("you_may_not_perform_administrative_functions"), "1");
}
return;
}
@Override
protected void processRequest() throws Exception {
FormProcessor fp = new FormProcessor(request);
String auditDatabaseHtml = renderAuditDatabaseTable(getDatabaseChangeLogDao().findAll());
request.setAttribute("auditDatabaseHtml", auditDatabaseHtml);
forwardPage(Page.AUDIT_DATABASE);
}
private String renderAuditDatabaseTable(List<DatabaseChangeLogBean> databaseChangeLogs) {
// Collection<StudyRowContainer> items = getStudyRows(studyBeans);
TableFacade tableFacade = createTableFacade("databaseChangeLogs", request);
tableFacade.setColumnProperties("id", "author", "fileName", "dataExecuted", "md5Sum", "description", "comments", "tag", "liquibase");
tableFacade.setItems(databaseChangeLogs);
// Fix column titles
HtmlTable table = (HtmlTable) tableFacade.getTable();
table.setCaption("");
HtmlRow row = table.getRow();
HtmlColumn id = row.getColumn("id");
id.setTitle("Id");
HtmlColumn author = row.getColumn("author");
author.setTitle("Author");
HtmlColumn fileName = row.getColumn("fileName");
fileName.setTitle("File Name");
HtmlColumn dataExecuted = row.getColumn("dataExecuted");
dataExecuted.setTitle("Date Executed");
dataExecuted.getCellRenderer().setCellEditor(new DateCellEditor("yyyy-MM-dd hh:mm:ss"));
HtmlColumn md5Sum = row.getColumn("md5Sum");
md5Sum.setTitle("md5 sum");
HtmlColumn description = row.getColumn("description");
description.setTitle("Description");
HtmlColumn comments = row.getColumn("comments");
comments.setTitle("Comments");
HtmlColumn tag = row.getColumn("tag");
tag.setTitle("Tag");
HtmlColumn liquibase = row.getColumn("liquibase");
liquibase.setTitle("Liquibase");
return tableFacade.render();
}
@Override
protected String getAdminServlet() {
return SecureController.ADMIN_SERVLET_CODE;
}
public DatabaseChangeLogDao getDatabaseChangeLogDao() {
databaseChangeLogDao =
this.databaseChangeLogDao != null ? databaseChangeLogDao : (DatabaseChangeLogDao) SpringServletAccess.getApplicationContext(context).getBean(
"databaseChangeLogDao");
return databaseChangeLogDao;
}
public void setDatabaseChangeLogDao(DatabaseChangeLogDao databaseChangeLogDao) {
this.databaseChangeLogDao = databaseChangeLogDao;
}
}