use of org.compiere.util.WebDoc in project adempiere by adempiere.
the class WMenu method createPage.
// checkLogin
/**
* Create Menu Page
* @param request request
* @param wsc context
* @param AD_Role_ID role
* @return document
*/
private WebDoc createPage(HttpServletRequest request, WebSessionCtx wsc, int AD_Role_ID, int AD_User_ID, int AD_Client_ID, int AD_Org_ID) {
// Document
//Modified by Rob Klein 4/29/07
//String windowTitle = Msg.getMsg(wsc.ctx, "Menu");
String windowTitle = "Menu";
WebDoc doc = WebDoc.create(windowTitle);
head head = doc.getHead();
// Target
head.addElement(new base().setTarget(WebEnv.TARGET_WINDOW));
// Specific Menu Script/Stylesheet
head.addElement(new link(WebEnv.getBaseDirectory("/css/menu.css"), link.REL_STYLESHEET, link.TYPE_CSS));
head.addElement(new script((Element) null, WebEnv.getBaseDirectory("/js/menu.js")));
head.addElement(new script((Element) null, WebEnv.getBaseDirectory("/js/window.js")));
//Modified by Rob Klein 4/29/07
//head.addElement(new script((Element)null, WebEnv.getBaseDirectory("/js/mktree.js")));
//head.addElement(new link(WebEnv.getBaseDirectory("/css/mktree.css"), link.REL_STYLESHEET, link.TYPE_CSS));
// Scripts
String statusMessage = Msg.getMsg(wsc.ctx, "SelectMenuItem");
String scriptTxt = "top.document.title='" + windowTitle + " - " + wsc.loginInfo + "'; " + "var defaultStatus='" + statusMessage + "';";
//Rob 12-16-2006 head.addElement(new script(scriptTxt));
// Body
body body = doc.getBody();
body.setTitle(statusMessage);
// Clear Window Frame
//Rob 12-16-2006 body.addElement(WebUtil.getClearFrame(WebEnv.TARGET_WINDOW));
// Header
table table = doc.getTable();
doc.setClasses("menuTable", "menuHeader");
//Rob 12-16-2006 doc.getTopLeft().addElement(new cite(wsc.loginInfo));
input txtSearch = new input(input.TYPE_TEXT, "txtSearch", "");
txtSearch.setOnKeyDown("searchMenu('main',this.value,event,'" + WebEnv.TARGET_WINDOW + "')");
doc.getTopLeft().addElement("Find: ");
doc.getTopLeft().addElement(txtSearch);
// Load Menu Structure ----------------------
int AD_Tree_ID = DB.getSQLValue(null, "SELECT COALESCE(r.AD_Tree_Menu_ID, ci.AD_Tree_Menu_ID)" + "FROM AD_ClientInfo ci" + " INNER JOIN AD_Role r ON (ci.AD_Client_ID=r.AD_Client_ID) " + "WHERE AD_Role_ID=?", AD_Role_ID);
if (AD_Tree_ID <= 0)
// Menu
AD_Tree_ID = 10;
log.fine("doPost - AD_Tree_ID=" + AD_Tree_ID + " - " + Env.getAD_Language(wsc.ctx));
// Language set in WLogin
MTree tree = new MTree(wsc.ctx, AD_Tree_ID, false, false, null);
// Trim tree
MTreeNode root = tree.getRoot();
Enumeration en = root.preorderEnumeration();
/*while (en.hasMoreElements())
{
MTreeNode nd = (MTreeNode)en.nextElement();
if (nd.isTask()
|| nd.isWorkbench()
|| nd.isWorkFlow()
|| nd.getNode_ID() == 383 // Reset Cache - kills the server
)
{
MTreeNode parent = (MTreeNode)nd.getParent();
parent.remove(nd);
}
}*/
tree.trimTree();
// Print tree
StringBuffer buf = new StringBuffer();
StringBuffer buffav = new StringBuffer();
en = root.preorderEnumeration();
int oldLevel = 0;
while (en.hasMoreElements()) {
MTreeNode nd = (MTreeNode) en.nextElement();
// Level
// 0 == root
int level = nd.getLevel();
if (level == 0)
continue;
//
while (oldLevel < level) {
if (level == 1)
// start first level
buf.append("<ul class=\"mktree\" id=\"main\">\n");
else
// start next level
buf.append("<ul style=\"display:none\">\n");
oldLevel++;
}
while (oldLevel > level) {
oldLevel--;
if (oldLevel == 1)
// finish last level
buf.append("</ul>\n");
else
// finish next level
buf.append("</ul></li>\n");
}
// Print Node
buf.append(printNode(nd, wsc.ctx));
//Modified by Rob Klein 4/29/07
if (nd.isOnBar())
buffav.append(printNode(nd, wsc.ctx));
}
// Final
while (oldLevel > 0) {
oldLevel--;
if (oldLevel == 1)
// finish last level
buf.append("</ul>\n");
else
// finish next level
buf.append("</ul></li>\n");
}
//Modified by Rob Klein 4/29/07
// Set Favorites
buf.append("<ul><li class=\"menuSummary\" id=\"218\" onClick=\"changeMenu(event);\">Favorites<ul style=\"display:none\">\n");
buf.append(buffav);
buf.append("</ul></li></ul>\n");
td td = new td().setColSpan(2).setNoWrap(true);
td.setClass("menuCenter");
td.addElement(buf.toString());
table.addElement(new tr().addElement(td));
// Expand/Collapse Info
td = new td().setColSpan(2);
td.setClass("menuFooter");
// Modified by Rob Klein 4/29/07
/**td.addElement(new a("javascript:expandTree('main');", "Expand Menu"));
td.addElement(" | ");
td.addElement( new a("javascript:collapseTree('main');", "Contract Menu"));
table.addElement(new tr().addElement(td));
**/
// Exit Info
td = new td().setColSpan(2);
td.setClass("menuFooter");
String url = request.getRequestURI() + "?Exit=true";
td.addElement(new a(url, Msg.getMsg(wsc.ctx, "Exit")));
table.addElement(new tr().addElement(td));
// System.out.println(doc);
return doc;
}
use of org.compiere.util.WebDoc in project adempiere by adempiere.
the class WProcess method doGet.
// init
/**
* Process the HTTP Get request.
* Initial Call
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// Get Session attributes
WebSessionCtx wsc = WebSessionCtx.get(request);
//Modified by Rob Klein 4/29/07
WWindowStatus ws = WWindowStatus.get(request);
if (wsc == null) {
WebUtil.createTimeoutPage(request, response, this, null);
return;
}
WebDoc doc = null;
// Get Parameter: Menu_ID
//Modified by Rob Klein 4/29/07
int AD_Menu_ID = WebUtil.getParameterAsInt(request, "AD_Menu_ID");
String fileName = WebUtil.getParameter(request, "File");
if (AD_Menu_ID > 0) {
doc = createParameterPage(wsc, AD_Menu_ID, 0, 0, 0, 0, null, null);
} else //else if (fileName!=null)
//{
// int AD_PInstance_ID = WebUtil.getParameterAsInt(request, "AD_PInstance_ID");
//
// String error = streamResult (request, response, AD_PInstance_ID, fileName);
// if (error == null)
// return;
// doc = WebDoc.createWindow(error);
//}
{
int AD_Process_ID = WebUtil.getParameterAsInt(request, "AD_Process_ID");
int AD_Window_ID = WebUtil.getParameterAsInt(request, "AD_Window_ID");
int AD_Table_ID = WebUtil.getParameterAsInt(request, "AD_Table_ID");
int AD_Record_ID = WebUtil.getParameterAsInt(request, "AD_Record_ID");
String columnName = WebUtil.getParameter(request, "columnName");
int AD_Tab_ID = WebUtil.getParameterAsInt(request, "AD_Tab_ID");
if (AD_Process_ID == 0) {
WebUtil.createErrorPage(request, response, this, "No Process");
return;
}
doc = createParameterPage(wsc, AD_Process_ID, AD_Window_ID, AD_Table_ID, AD_Record_ID, 1, columnName, ws.curTab);
}
if (doc == null)
doc = WebDoc.createWindow("Process Not Found");
//
WebUtil.createResponse(request, response, this, null, doc, true);
}
use of org.compiere.util.WebDoc in project adempiere by adempiere.
the class WProcess method createProcessPage.
// createParameterPage
//Modified by Rob klein 4/29/07
/**************************************************************************
* Create Parocess Page
* @param request request
* @param AD_Process_ID Process
* @return Page
*/
public void createProcessPage(HttpServletRequest request, HttpServletResponse response, int AD_Process_ID, int AD_Window_ID) {
WebSessionCtx wsc = WebSessionCtx.get(request);
MProcess process = MProcess.get(wsc.ctx, AD_Process_ID);
log.info("PI table id " + process.get_Table_ID());
log.info("PI table name id " + process.get_TableName());
log.info("PI table client id " + process.getAD_Client_ID());
log.info("PI table process id " + process.getAD_Process_ID());
log.info("PI process class name " + process.getClassname());
// need to check if Role can access
WebDoc doc = null;
if (process == null) {
doc = WebDoc.createWindow("Process Not Found");
} else {
doc = WebDoc.createWindow(process.getName());
td center = doc.addWindowCenter(false);
if (process.getDescription() != null)
center.addElement(new p(new i(process.getDescription())));
if (process.getHelp() != null)
center.addElement(new p(process.getHelp(), AlignType.LEFT));
// Create Process Instance
MPInstance pInstance = fillParameter(request, process);
//
int AD_Table_ID = WebUtil.getParameterAsInt(request, "AD_Table_ID");
int AD_Record_ID = WebUtil.getParameterAsInt(request, "AD_Record_ID");
ProcessInfo pi = new ProcessInfo(process.getName(), process.getAD_Process_ID(), AD_Table_ID, AD_Record_ID);
pi.setAD_User_ID(Env.getAD_User_ID(wsc.ctx));
pi.setAD_Client_ID(Env.getAD_Client_ID(wsc.ctx));
pi.setClassName(process.getClassname());
log.info("PI client id " + pi.getAD_Client_ID());
pi.setAD_PInstance_ID(pInstance.getAD_PInstance_ID());
// Info
p p = new p();
p.addElement(Msg.translate(wsc.ctx, "AD_PInstance_ID") + ": " + pInstance.getAD_PInstance_ID());
center.addElement(p);
// Start
boolean processOK = false;
if (process.isWorkflow()) {
Trx trx = Trx.get(Trx.createTrxName("WebPrc"), true);
try {
WProcessCtl.process(this, AD_Window_ID, pi, trx, request);
//processOK = process.processIt(pi, trx);
trx.commit();
trx.close();
} catch (Throwable t) {
trx.rollback();
trx.close();
}
if (pi.isError()) {
center.addElement(new p("Error:" + pi.getSummary(), AlignType.LEFT).setClass("Cerror"));
processOK = false;
} else {
center.addElement(new p("OK: Workflow Started", AlignType.LEFT));
processOK = true;
}
center.addElement(new p().addElement(pi.getSummary()));
center.addElement(pi.getLogInfo(true));
}
String jasper = process.getJasperReport();
if (process.isJavaProcess()) {
if (jasper != null) {
pi.setPrintPreview(false);
pi.setIsBatch(true);
}
Trx trx = Trx.get(Trx.createTrxName("WebPrc"), true);
try {
processOK = process.processIt(pi, trx);
trx.commit();
trx.close();
} catch (Throwable t) {
trx.rollback();
trx.close();
}
if (!processOK || pi.isError()) {
center.addElement(new p("Error:" + pi.getSummary(), AlignType.LEFT).setClass("Cerror"));
processOK = false;
} else {
if (jasper != null) {
String error = WebUtil.streamFile(response, pi.getPDFReport());
//String error = streamResult (request, response, pInstance.getAD_PInstance_ID(), file);
if (error == null)
return;
doc = WebDoc.create(error);
wsc.ctx.put("AD_PInstance_ID=" + pInstance.getAD_PInstance_ID(), "ok");
} else {
center.addElement(new p().addElement(pi.getSummary()));
center.addElement(pi.getLogInfo(true));
}
}
}
// Report
if (process.isReport()) //if (processOK && process.isReport())
{
if (jasper == null) {
log.info(response.toString());
ReportEngine re = ReportEngine.get(wsc.ctx, pi);
if (re == null) {
center.addElement(new p("Could not start ReportEngine", AlignType.LEFT).setClass("Cerror"));
} else {
try {
File file = File.createTempFile("WProcess", ".pdf");
boolean ok = re.createPDF(file);
if (ok) {
String error = WebUtil.streamFile(response, file);
//String error = streamResult (request, response, pInstance.getAD_PInstance_ID(), file);
if (error == null)
return;
doc = WebDoc.create(error);
//Modified by Rob Klein 6/1/07
/**
String url = "WProcess?AD_PInstance_ID="
+ pInstance.getAD_PInstance_ID()
+ "&File="
+ URLEncoder.encode(file.getAbsolutePath(), WebEnv.ENCODING);
a link = new a (url, null, a.TARGET_BLANK, process.getName());
center
.addElement(new p()
.addElement("Report created: ")
.addElement(link));
// Marker that Process is OK
* */
wsc.ctx.put("AD_PInstance_ID=" + pInstance.getAD_PInstance_ID(), "ok");
} else
center.addElement(new p("Could not create Report", AlignType.LEFT).setClass("Cerror"));
} catch (Exception e) {
center.addElement(new p("Could not create Report:", AlignType.LEFT).setClass("Cerror"));
center.addElement(e.toString());
}
}
}
}
}
doc.addPopupClose(wsc.ctx);
try {
WebUtil.createResponse(request, response, this, null, doc, false);
} catch (IOException e) {
log.info(e.toString());
}
}
use of org.compiere.util.WebDoc in project adempiere by adempiere.
the class WLogin method createFirstPage.
/**************************************************************************
* First Login Page
* @param cProp Login Cookie information for defaults
* @param request request
* @param errorMessage error message
* @return WDoc page
*/
private WebDoc createFirstPage(Properties cProp, HttpServletRequest request, String errorMessage) {
log.info(" - " + errorMessage);
String AD_Language = (cProp.getProperty(Env.LANGUAGE, Language.getAD_Language(request.getLocale())));
//
String windowTitle = Msg.getMsg(AD_Language, "Login");
String usrText = Msg.getMsg(AD_Language, "User");
String pwdText = Msg.getMsg(AD_Language, "Password");
String lngText = Msg.translate(AD_Language, "AD_Language");
String okText = Msg.getMsg(AD_Language, "OK");
String cancelText = Msg.getMsg(AD_Language, "Cancel");
String storeTxt = Msg.getMsg(AD_Language, "SaveCookie");
// Form - post to same URL
String action = request.getRequestURI();
form myForm = null;
myForm = new form(action).setName("Login1");
table table = new table().setAlign(AlignType.CENTER).setWidth("25%");
//Modified by Rob Klein 4/29/07
// Blank Line
tr line = new tr();
line.addElement(new td().addElement(" "));
// Username
String userData = cProp.getProperty(P_USERNAME, "");
line = new tr();
label usrLabel = new label().setFor(P_USERNAME + "F").addElement(usrText);
usrLabel.setID(P_USERNAME + "L");
line.addElement(new td().addElement(usrLabel).setAlign(AlignType.RIGHT));
input usr = new input(input.TYPE_TEXT, P_USERNAME, userData).setSize(20).setMaxlength(30);
usr.setID(P_USERNAME + "F");
line.addElement(new td().addElement(usr).setAlign(AlignType.LEFT));
table.addElement(line);
// Password
String pwdData = cProp.getProperty(P_PASSWORD, "");
line = new tr();
label pwdLabel = new label().setFor(P_PASSWORD + "F").addElement(pwdText);
pwdLabel.setID(P_PASSWORD + "L");
line.addElement(new td().addElement(pwdLabel).setAlign(AlignType.RIGHT));
input pwd = new input(input.TYPE_PASSWORD, P_PASSWORD, pwdData).setSize(20).setMaxlength(30);
pwd.setID(P_PASSWORD + "F");
line.addElement(new td().addElement(pwd).setAlign(AlignType.LEFT));
table.addElement(line);
// Language Pick
String langData = cProp.getProperty(AD_Language);
line = new tr();
label langLabel = new label().setFor(Env.LANGUAGE + "F").addElement(lngText);
langLabel.setID(Env.LANGUAGE + "L");
line.addElement(new td().addElement(langLabel).setAlign(AlignType.RIGHT));
option[] options = new option[Language.getLanguageCount()];
for (int i = 0; i < Language.getLanguageCount(); i++) {
Language language = Language.getLanguage(i);
options[i] = new option(language.getAD_Language()).addElement(Util.maskHTML(language.getName()));
if (language.getAD_Language().equals(langData))
options[i].setSelected(true);
else
options[i].setSelected(false);
}
line.addElement(new td().addElement(new select(Env.LANGUAGE, options).setID(Env.LANGUAGE + "F")));
table.addElement(line);
// Store Cookie
String storeData = cProp.getProperty(P_STORE, "N");
line = new tr();
line.addElement(new td());
input store = new input(input.TYPE_CHECKBOX, P_STORE, "Y").addElement(storeTxt).setChecked(storeData.equals("Y"));
store.setID(P_STORE + "F");
line.addElement(new td().addElement(store).setAlign(AlignType.LEFT));
table.addElement(line);
// ErrorMessage
if (errorMessage != null && errorMessage.length() > 0) {
line = new tr();
// line.addElement(new td());
line.addElement(new td().setColSpan(2).addElement(// color, size
new font(HtmlColor.red, 4).addElement(new b(errorMessage))));
table.addElement(line);
}
// Finish
line = new tr();
//Modified by Rob Klein 4/29/07
table tablebutton = new table().setAlign(AlignType.CENTER).setWidth("25%");
input cancel = new input(input.TYPE_RESET, "Reset", " " + "Cancel");
cancel.setClass("cancelbtn");
line.addElement(new td().addElement(cancel).setWidth("50%")).setAlign(AlignType.CENTER);
input submit = new input(input.TYPE_SUBMIT, P_SUBMIT, " " + "OK");
submit.setClass("loginbtn");
line.addElement(new td().addElement(submit).setWidth("50%").setAlign(AlignType.CENTER));
tablebutton.addElement(line);
table.addElement(tablebutton);
//
myForm.addElement(table);
// Document
WebDoc doc = WebDoc.createWindow(windowTitle);
//Modified by Rob Klein 4/29/07
img img = new img(WebEnv.getImageDirectory("Logo.gif"), "logo");
doc.addWindowCenter(true).addElement(img).addElement(new p()).addElement(new p()).addElement(myForm).addElement(new p()).addElement(new p());
// Clear Menu Frame
doc.getBody().addElement(WebUtil.getClearFrame(WebEnv.TARGET_MENU)).setTitle(windowTitle);
return doc;
}
use of org.compiere.util.WebDoc in project adempiere by adempiere.
the class WZoom method doGet.
/**
* Process the HTTP Get request.
* Initial display and streaming
* @param request request
* @param response response
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
log.info("From " + request.getRemoteHost() + " - " + request.getRemoteAddr());
HttpSession session = request.getSession(false);
WWindowStatus ws = WWindowStatus.get(request);
WebDoc doc = null;
if (session == null || ws == null) {
doc = WebDoc.createPopup("No Context");
doc.addPopupClose(ws.ctx);
} else {
String error = null;
int AD_Record_ID = WebUtil.getParameterAsInt(request, P_Record_ID);
int AD_Table_ID = WebUtil.getParameterAsInt(request, P_Table_ID);
if (AD_Record_ID == 0 || AD_Table_ID == 0) {
doc = WebDoc.createPopup("Invalid Record ID or Table ID");
doc.addPopupClose(ws.ctx);
} else {
doc = createPage(ws.ctx, request, AD_Record_ID, AD_Table_ID);
}
}
//
WebUtil.createResponse(request, response, this, null, doc, false);
}
Aggregations