/*
* OpenClinica is distributed under the
* GNU Lesser General Public License (GNU LGPL).
* For details see: http://www.openclinica.org/license
* copyright 2003-2005 Akaza Research
*/
package org.akaza.openclinica.control.managestudy;
import org.akaza.openclinica.bean.core.Role;
import org.akaza.openclinica.control.core.SecureController;
import org.akaza.openclinica.control.form.FormProcessor;
import org.akaza.openclinica.dao.managestudy.StudyDAO;
import org.akaza.openclinica.i18n.core.LocaleResolver;
import org.akaza.openclinica.view.Page;
import org.akaza.openclinica.web.InsufficientPermissionException;
import org.akaza.openclinica.web.bean.EntityBeanTable;
import org.akaza.openclinica.web.bean.StudyRow;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Locale;
/**
* @author jxu
* @version CVS: $Id: ListSiteServlet.java 12787 2009-05-23 18:02:01Z kkrumlian
* $
*/
public class ListSiteServlet extends SecureController {
Locale locale;
// < ResourceBundle resword,respage,resexception;
/**
*
*/
@Override
public void mayProceed() throws InsufficientPermissionException {
locale = LocaleResolver.getLocale(request);
// <
// resexception=ResourceBundle.getBundle(
// "org.akaza.openclinica.i18n.exceptions",locale);
// < respage =
// ResourceBundle.getBundle("org.akaza.openclinica.i18n.page_messages",
// locale);
// < resword =
// ResourceBundle.getBundle("org.akaza.openclinica.i18n.words",locale);
if (ub.isSysAdmin()) {
return;
}
if (currentRole.getRole().equals(Role.STUDYDIRECTOR) || currentRole.getRole().equals(Role.COORDINATOR)) {
return;
}
addPageMessage(respage.getString("no_have_correct_privilege_current_study") + respage.getString("change_study_contact_sysadmin"));
throw new InsufficientPermissionException(Page.MANAGE_STUDY_SERVLET, resexception.getString("not_study_director"), "1");
}
/**
* Finds all the studies, processes the request
*/
@Override
public void processRequest() throws Exception {
FormProcessor fp = new FormProcessor(request);
if (currentStudy.getParentStudyId() > 0) {
addPageMessage(respage.getString("no_sites_available_study_is_a_site"));
forwardPage(Page.MENU_SERVLET);
} else {
StudyDAO sdao = new StudyDAO(sm.getDataSource());
ArrayList studies = (ArrayList) sdao.findAllByParent(currentStudy.getId());
EntityBeanTable table = fp.getEntityBeanTable();
ArrayList allStudyRows = StudyRow.generateRowsFromBeans(studies);
String[] columns =
{ resword.getString("name"), resword.getString("unique_identifier"), resword.getString("OID"), resword.getString("principal_investigator"),
resword.getString("facility_name"), resword.getString("date_created"), resword.getString("status"), resword.getString("actions") };
table.setColumns(new ArrayList(Arrays.asList(columns)));
table.hideColumnLink(2);
table.hideColumnLink(6);
table.setQuery("ListSite", new HashMap());
// if (!currentStudy.getStatus().isLocked()) {
// table.addLink(resword.getString("create_a_new_site"),
// "CreateSubStudy");
// }
table.setRows(allStudyRows);
table.computeDisplay();
request.setAttribute("table", table);
if (request.getParameter("read") != null && request.getParameter("read").equals("true")) {
request.setAttribute("readOnly", true);
}
session.setAttribute("fromListSite", "yes");
forwardPage(Page.SITE_LIST);
}
}
}