/**
* Este arquivo é parte do Biblivre3.
*
* Biblivre3 é um software livre; você pode redistribuí-lo e/ou
* modificá-lo dentro dos termos da Licença Pública Geral GNU como
* publicada pela Fundação do Software Livre (FSF); na versão 3 da
* Licença, ou (caso queira) qualquer versão posterior.
*
* Este programa é distribuído na esperança de que possa ser útil,
* mas SEM NENHUMA GARANTIA; nem mesmo a garantia implícita de
* MERCANTIBILIDADE OU ADEQUAÇÃO PARA UM FIM PARTICULAR. Veja a
* Licença Pública Geral GNU para maiores detalhes.
*
* Você deve ter recebido uma cópia da Licença Pública Geral GNU junto
* com este programa, Se não, veja em <http://www.gnu.org/licenses/>.
*
* @author Alberto Wagner <alberto@biblivre.org.br>
* @author Danniel Willian <danniel@biblivre.org.br>
*
*/
package biblivre3.layout;
import biblivre3.authorization.AuthorizationPoints;
import biblivre3.config.Config;
import biblivre3.config.ConfigurationEnum;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyContent;
import javax.servlet.jsp.tagext.BodyTagSupport;
public class Body extends BodyTagSupport {
private String thisPage;
private String multiPart;
private boolean isMultiPart;
public Body() {
super();
}
public String getThisPage() {
return thisPage;
}
public void setThisPage(String thisPage) {
this.thisPage = thisPage;
}
public String getMultiPart() {
return this.multiPart;
}
public void setMultiPart(String multiPart) {
this.multiPart = multiPart;
this.isMultiPart = (multiPart != null && multiPart.equals("true"));
}
private boolean isLogged() {
return (this.pageContext.getSession().getAttribute("LOGGED_USER") != null);
}
private void writeTagBodyContent(JspWriter out, BodyContent bodyContent) throws IOException {
bodyContent.writeOut(out);
bodyContent.clearBody();
}
@Override
public int doStartTag() throws JspException {
JspWriter out = this.pageContext.getOut();
LayoutUtils utils = new LayoutUtils(this.pageContext);
AuthorizationPoints atps = (AuthorizationPoints) this.pageContext.getSession().getAttribute("LOGGED_USER_ATPS");
if (atps == null) {
atps = new AuthorizationPoints(null);
}
if (this.thisPage == null || this.thisPage.isEmpty()) {
throw new JspException();
}
try {
out.println("<body>");
if (this.isMultiPart) {
out.println(" <form id=\"FORM_1\" action=\"Controller\" name=\"FORM_1\" method=\"post\" enctype=\"multipart/form-data\" accept-charset=\"UTF-8\">");
} else {
out.println(" <form id=\"FORM_1\" action=\"Controller\" name=\"FORM_1\" method=\"post\" onsubmit=\"return false;\">");
}
out.println(" <input type=\"hidden\" name=\"submitButton\" />");
out.println(" <input type=\"hidden\" name=\"thisPage\" value=\"" + this.thisPage + "\" />");
out.println(" <input type=\"hidden\" name=\"menuOption\" id=\"menuOption\" value=\"" + utils.getMenuOption() + "\" />");
out.println(" <div id=\"header\">");
out.println(" <div id=\"header_overlay\"></div>");
out.println(" <div id=\"header_title\">" + Config.getConfigProperty(ConfigurationEnum.LIBRARY_NAME.name()) + " <span id=\"header_subtitle\">" + Config.getConfigProperty(ConfigurationEnum.LIBRARY_SUBNAME.name()) + "</span></div>");
out.println(" <div id=\"biblivre_logo\" class=\"pointer\" title=\"Biblivre 3\" onclick=\"window.open('http://www.biblivre.org.br/');\"></div>");
out.println(" <div id=\"sponsor_logo\" class=\"pointer\" title=\"Itaú Cultural\" onclick=\"window.open('http://www.itaucultural.org.br/');\">");
out.println(" <div id=\"logo_time\"><br/></div>");
out.println(" <div><img src=\"images/logo_itau.png\" width=\"63\" height=\"42\" border=\"0\" alt=\"Itaú Cultural\" /></div>");
out.println(" </div>");
out.println(" <div id=\"logos\">");
out.println(" <div><img src=\"images/logo_pedro_i.gif\" width=\"72\" height=\"95\" border=\"0\" alt=\"Organização Pedro I\" /></div>");
out.println(" <div><img src=\"images/logo_sabin.gif\" width=\"72\" height=\"95\" border=\"0\" alt=\"SABIN\" /></div>");
out.println(" <div>");
out.println(" <a href=\"http://www.bn.br/\" target=\"_blank\">");
out.println(" <img src=\"images/logo_biblioteca_nacional.gif\" width=\"72\" height=\"95\" border=\"0\" alt=\"Biblioteca Nacional\" />");
out.println(" </a>");
out.println(" </div>");
out.println(" <div>");
out.println(" <a href=\"http://www.cultura.gov.br/\" target=\"_blank\">");
out.println(" <img src=\"images/logo_lei_de_incentivo.jpg\" width=\"72\" height=\"95\" border=\"0\" alt=\"" + utils.getText("biblivre3", "LABEL_LAW") + "\" />");
out.println(" </a>");
out.println(" </div>");
out.println(" </div>");
out.println(" <div id=\"language_picker\">");
out.println(" <img src=\"images/flag_ptb.gif\" width=\"35\" height=\"18\" border=\"0\" onclick=\"$(this).siblings('select').val('pt_BR'); submitForm('FORM_1','i18n');\" alt=\"Português\" />");
out.println(" <img src=\"images/flag_esp.gif\" width=\"35\" height=\"18\" border=\"0\" onclick=\"$(this).siblings('select').val('es'); submitForm('FORM_1','i18n');\" alt=\"Español\" />");
out.println(" <img src=\"images/flag_enu.gif\" width=\"35\" height=\"18\" border=\"0\" onclick=\"$(this).siblings('select').val('en_US'); submitForm('FORM_1','i18n');\" alt=\"English\" /><br/>");
out.println(" <select name=\"i18n\" onchange=\"submitForm('FORM_1', 'i18n');\">");
out.println(utils.getLanguages());
out.println(" </select>");
out.println(" </div>");
if (this.isLogged()) {
// LOGGED IN MENU
out.println(" <div id=\"menu\">");
out.println(" <ul id=\"menu_root\">");
out.println(" <li rel=\"busca\">");
out.println(" " + utils.getText("biblivre3", "MENU_SEARCH"));
out.println(" <ul class=\"submenu\">");
out.println(utils.menuEntry(atps, "SEARCH_BIBLIO", "MENU_BIBLIO_SEARCH"));
out.println(utils.menuEntry(atps, "SEARCH_AUTH", "MENU_AUTH_SEARCH"));
out.println(utils.menuEntry(atps, "SEARCH_THESAURUS", "MENU_THESAURUS_SEARCH"));
out.println(utils.menuEntry(atps, "SEARCH_Z3950", "MENU_Z3950_SEARCH"));
out.println(" </ul>");
out.println(" </li>");
out.println(" <li rel=\"circulacao\">");
out.println(" " + utils.getText("biblivre3", "MENU_CIRCULATION"));
out.println(" <ul class=\"submenu\">");
out.println(utils.menuEntry(atps, "CIRCULATION_REGISTER", "MENU_REGISTER"));
out.println(utils.menuEntry(atps, "CIRCULATION_LENDING", "MENU_LENDING"));
out.println(utils.menuEntry(atps, "CIRCULATION_RESERVATION", "MENU_RESERVATION"));
out.println(utils.menuEntry(atps, "CIRCULATION_ACCESS", "MENU_ACCESS"));
out.println(utils.menuEntry(atps, "CIRCULATION_USER_CARDS", "MENU_USER_CARDS"));
out.println(" </ul>");
out.println(" </li>");
out.println(" <li rel=\"catalogacao\">");
out.println(" " + utils.getText("biblivre3", "MENU_CATALOGING"));
out.println(" <ul class=\"submenu\">");
out.println(utils.menuEntry(atps, "CATALOGING_BIBLIO", "MENU_BIBLIO_CATALOGING"));
out.println(utils.menuEntry(atps, "CATALOGING_AUTH", "MENU_AUTH_CATALOGING"));
out.println(utils.menuEntry(atps, "CATALOGING_VOCABULARY", "MENU_THESAURUS_CATALOGING"));
out.println(utils.menuEntry(atps, "CATALOGING_IMPORT", "MENU_IMPORT"));
out.println(utils.menuEntry(atps, "CATALOGING_LABEL", "MENU_LABELS"));
out.println(utils.menuEntry(atps, "CATALOGING_BIBLIO_MOVE", "MENU_BIBLIO_MOVE"));
out.println(" </ul>");
out.println(" </li>");
out.println(" <li rel=\"aquisicao\">");
out.println(" " + utils.getText("biblivre3", "MENU_ACQUISITION"));
out.println(" <ul class=\"submenu\">");
out.println(utils.menuEntry(atps, "ACQUISITION_SUPPLIER", "MENU_SUPPLIER"));
out.println(utils.menuEntry(atps, "ACQUISITION_REQUISITION", "MENU_REQUISITION"));
out.println(utils.menuEntry(atps, "ACQUISITION_QUOTATION", "MENU_QUOTATION"));
out.println(utils.menuEntry(atps, "ACQUISITION_ORDER", "MENU_ORDER"));
out.println(" </ul>");
out.println(" </li>");
out.println(" <li rel=\"administracao\">");
out.println(" " + utils.getText("biblivre3", "MENU_ADMINISTRATION"));
out.println(" <ul class=\"submenu\">");
out.println(utils.menuEntry(atps, "ADMINISTRATION_PASSWORD", "MENU_PASSWORD"));
out.println(utils.menuEntry(atps, "ADMINISTRATION_MAINTENANCE", "MENU_MAINTENANCE"));
out.println(utils.menuEntry(atps, "ADMINISTRATION_REPORTS", "MENU_REPORTS"));
out.println(utils.menuEntry(atps, "ADMINISTRATION_PERMISSIONS", "MENU_PERMISSIONS"));
out.println(utils.menuEntry(atps, "ADMINISTRATION_USER_TYPES", "MENU_USER_TYPES_ADMIN"));
out.println(utils.menuEntry(atps, "ADMINISTRATION_ACCESSCARDS", "MENU_ACCESSCARDS"));
out.println(utils.menuEntry(atps, "ADMINISTRATION_Z3950SERVERS", "MENU_Z3950SERVER"));
out.println(utils.menuEntry(atps, "ADMINISTRATION_CONFIGURATION", "MENU_CONFIGURATION"));
out.println(" </ul>");
out.println(" </li>");
out.println(" <li rel=\"ajuda\">");
out.println(" " + utils.getText("biblivre3", "MENU_HELP"));
out.println(" <ul class=\"submenu\">");
out.println(utils.menuEntry(atps, "HELP_ABOUT", "MENU_ABOUT"));
out.println(" <li rel=\"http://www.biblivre.org.br/faq\">" + utils.getText("biblivre3", "MENU_FAQ") + "</li>");
//Versão com manual digital
out.println(" <li rel=\"./Manual_Biblivre3.pdf\">Manual</li>");
out.println(" </ul>");
out.println(" </li>");
out.println(" <li rel=\"sair\" class=\"logout\">");
out.println(" <button onclick=\"submitForm('FORM_1', 'LOGOUT');\" type=\"button\">" + utils.getText("biblivre3", "LABEL_LOGOUT") + "</button>");
out.println(" </li>");
out.println(" </ul>");
out.println(" </div>");
} else {
// LOGGED OFF MENU
out.println(" <div id=\"menu\">");
out.println(" <ul id=\"menu_root\">");
out.println(" <li rel=\"busca\">");
out.println(" " + utils.getText("biblivre3", "MENU_SEARCH"));
out.println(" <ul class=\"submenu\">");
out.println(utils.menuEntry(atps, "SEARCH_BIBLIO", "MENU_BIBLIO_SEARCH"));
out.println(utils.menuEntry(atps, "SEARCH_AUTH", "MENU_AUTH_SEARCH"));
out.println(utils.menuEntry(atps, "SEARCH_THESAURUS", "MENU_THESAURUS_SEARCH"));
out.println(utils.menuEntry(atps, "SEARCH_Z3950", "MENU_Z3950_SEARCH"));
out.println(" </ul>");
out.println(" </li>");
out.println(" <li rel=\"ajuda\">");
out.println(" " + utils.getText("biblivre3", "MENU_HELP"));
out.println(" <ul class=\"submenu\">");
out.println(utils.menuEntry(atps, "HELP_ABOUT", "MENU_ABOUT"));
out.println(" <li rel=\"http://www.biblivre.org.br/faq\">" + utils.getText("biblivre3", "MENU_FAQ") + "</li>");
//Versão com manual digital
out.println(" <li rel=\"./Manual_Biblivre3.pdf\">Manual</li>");
out.println(" </ul>");
out.println(" </li>");
out.println(" <li rel=\"login\" class=\"login\">");
out.println(" " + utils.getText("biblivre3", "LABEL_USERNAME") + ":");
out.println(" <input type=\"text\" name=\"USERNAME\" />");
out.println(" " + utils.getText("biblivre3", "LABEL_PASSWORD") + ":");
out.println(" <input type=\"password\" name=\"PASSWORD\" />");
out.println(" <button onclick=\"submitForm('FORM_1', 'LOGIN', '');\">" + utils.getText("biblivre3", "LABEL_LOGIN") + "</button>");
out.println(" </li>");
out.println(" </ul>");
out.println(" </div>");
}
out.println(" </div>");
out.println(" <div id=\"content_outer\">");
out.println(" <div id=\"content\">");
if (this.isLogged()) {
Boolean pwdWarning = (Boolean) this.pageContext.getSession().getAttribute("SYSTEM_WARNING_PASSWORD");
Boolean bkpWarning = (Boolean) this.pageContext.getSession().getAttribute("SYSTEM_WARNING_BACKUP");
Boolean idxWarning = (Boolean) this.pageContext.getSession().getAttribute("SYSTEM_WARNING_REINDEX");
if (pwdWarning == null) {
pwdWarning = false;
}
if (bkpWarning == null) {
bkpWarning = false;
}
if (idxWarning == null) {
idxWarning = false;
}
if (pwdWarning || bkpWarning) {
out.println("<div id=\"system_warnings\">");
if (pwdWarning) {
out.println(utils.getText("biblivre3", "SYSTEM_WARNING_PASSWORD") + ". ");
out.println(utils.getText("biblivre3", "SYSTEM_WARNING_RESOLVE") + ", ");
out.println("<a href=\"javascript:submitForm('FORM_1', 'ADMINISTRATION_PASSWORD');\">" + utils.getText("biblivre3", "LABEL_CLICK_HERE") + "</a>.");
out.println("<br/>");
}
if (bkpWarning) {
out.println(utils.getText("biblivre3", "SYSTEM_WARNING_BACKUP") + ". ");
out.println(utils.getText("biblivre3", "SYSTEM_WARNING_RESOLVE") + ", ");
out.println("<a href=\"javascript:void(0);\" onclick=\"submitForm('FORM_1', 'ADMINISTRATION_MAINTENANCE');\">" + utils.getText("biblivre3", "LABEL_CLICK_HERE") + "</a>.");
out.println("<br/>");
}
if (idxWarning) {
out.println(utils.getText("biblivre3", "SYSTEM_WARNING_REINDEX") + ". ");
out.println(utils.getText("biblivre3", "SYSTEM_WARNING_RESOLVE") + ", ");
out.println("<a href=\"javascript:void(0);\" onclick=\"submitForm('FORM_1', 'ADMINISTRATION_MAINTENANCE');\">" + utils.getText("biblivre3", "LABEL_CLICK_HERE") + "</a>.");
out.println("<br/>");
}
out.println("</div>");
}
}
out.println(" <div id=\"breadcrumb\"></div>");
out.println(utils.getDialog());
out.println(" <div id=\"content_inner\">");
} catch (Exception e){
e.printStackTrace();
}
return EVAL_BODY_BUFFERED;
}
@Override
public int doEndTag() throws JspException {
JspWriter out = pageContext.getOut();
try {
out.println(" </div>");
out.println(" <div id=\"footer\"></div>");
out.println(" </div>");
out.println(" <div id=\"copyright\">Copyright © <a href=\"http://biblivre.org.br\" target=\"_blank\">BIBLIVRE</a></div>");
out.println(" </div>");
out.println(" </form>");
out.println("</body>");
out.println("</html>");
} catch (Exception e){}
return EVAL_PAGE;
}
@Override
public int doAfterBody() throws JspException {
try {
// This code is generated for tags whose bodyContent is "JSP"
BodyContent bodyCont = getBodyContent();
JspWriter out = bodyCont.getEnclosingWriter();
writeTagBodyContent(out, bodyCont);
} catch (Exception ex) {
handleBodyContentException(ex);
}
return EVAL_PAGE;
}
private void handleBodyContentException(Exception ex) throws JspException {
// Since the doAfterBody method is guarded, place exception handing code here.
throw new JspException("Error in BodyBeforeLogin tag", ex);
}
}