\n\n\n\n"
- + "\n");
- }
- else if (gridTab.getTabLevel () == 1)
- {
- tabString
- .append ("baseIndentOneTabStyle unselectedTabStyle\" rendered=\"#{!(uiStateBean.tabNo eq "
- + gridTab.getTabNo ()
- + ")}\""
- + " actionListener=\"#{actionListener_lookup["
- + gridTab.getTabNo ()
- + "].focus}\" onmouseover=\"this.className='baseIndentOneTabStyle "
- + "unselectedMouseOverTabStyle';\" onmouseout=\"this.className='baseIndentOneTabStyle unselectedTabStyle';\" />\n"
- + "\n");
- }
- else if (gridTab.getTabLevel () == 2)
- {
- tabString
- .append ("baseIndentTwoTabStyle unselectedTabStyle\" rendered=\"#{!(uiStateBean.tabNo eq "
- + gridTab.getTabNo ()
- + ")}\""
- + " actionListener=\"#{actionListener_lookup["
- + gridTab.getTabNo ()
- + "].focus}\" onmouseover=\"this.className='baseIndentTwoTabStyle "
- + "unselectedMouseOverTabStyle';\" onmouseout=\"this.className='baseIndentTwoTabStyle unselectedTabStyle';\" />\n"
- + "\n");
- }
- tabString
- .append (" | \n \n");
- }
- return tabString;
- }
-
- // Generate Detail jsp page
- private void createDetailPage(String realContextPath)
- {
- File detailFile = null;
- for (int i = 0; i < tabCount; i++)
- {
- StringBuilder detailJSP = new StringBuilder ();
- detailJSP.append (createCompiereHeader ());
- detailJSP.append (createHeader ());
- detailJSP.append ("\n");
- GridTab gridTab = gridWindow.getTab (i);
- String fileName = formatNameWithFirstLowerCase (gridTab.getName ())
- + "Detail";
- String jsfFile = realContextPath + "window/" + fileName + ".jsp";
- detailFile = new File (jsfFile);
- gridTab.dataRefreshAll ();
- boolean isSolo = false; // true if not same line as previous
- for (int j = 0; j < gridTab.getFieldCount (); j++)
- {
- GridField gridField = gridTab.getField (j);
- // check if displayed
- if (gridField.isDisplayed ())
- {
- int displayType = gridField.getDisplayType ();
- // check display type to genereate jsf code for each
- // specific component
- switch (displayType)
- {
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15: // this is a Date format. Comes as Date +
- // Time and needs to be chopped in Backing
- // Bean
- case 16: // this is a Date + Time format.
- case 21: // complete address comma seperated ex:
- // street, city, state, zip
- case 22:
- case 29:
- case 33:
- case 34:
- case 35:
- case 36:
- case 37:
- // text box
- // check if same line. make sure that it isn't the
- // first field. It is possible that the
- // first field can have same line checked and that
- // would cause formatting issues.
- if (gridField.isSameLine () && j != 0)
- {
- isSolo = false;
- }
- else
- {
- if (isSolo)
- {
- detailJSP
- .append ("\n");
- }
- detailJSP
- .append ("\n");
- isSolo = true;
- }
- detailJSP
- .append (""
- + "\n"
- + " | \n\n | \n");
- // check if same line. if yes and not first field,
- // close table row
- if (gridField.isSameLine () && j != 0)
- {
- detailJSP
- .append (" \n");
- }
- break;
- case 17:
- case 18:
- case 19:
- // lookup
- // check if same line. make sure that it isn't the
- // first field. It is possible that the
- // first field can have same line checked and that
- // would cause formatting issues.
- ArrayList al = gridField.getLookup ().getData (
- true, true, true, true);
- if (gridField.isSameLine () && j != 0)
- {
- isSolo = false;
- }
- else
- {
- if (isSolo)
- {
- detailJSP
- .append ("\n");
- }
- detailJSP
- .append ("\n");
- isSolo = true;
- }
- detailJSP
- .append (" | \n\n"
- + "\n\n\n | \n");
- // check if same line. if yes and not first field,
- // close table row
- if (gridField.isSameLine () && j != 0)
- {
- detailJSP
- .append (" \n");
- }
- break;
- case 20:
- // Check box
- // check if same line. make sure that it isn't the
- // first field. It is possible that the
- // first field can have same line checked and that
- // would cause formatting issues.
- if (gridField.isSameLine () && j != 0)
- {
- isSolo = false;
- }
- else
- {
- if (isSolo)
- {
- detailJSP
- .append ("\n");
- }
- detailJSP
- .append ("\n");
- isSolo = true;
- }
- detailJSP
- .append (" | \n"
- + "\n"
- + "\n"
- + " | \n");
- // check if same line. if yes and not first field,
- // close table row
- if (gridField.isSameLine () && j != 0)
- {
- detailJSP
- .append (" \n");
- }
- break;
- case 23:
- case 24:
- case 25:
- case 27:
- case 28:
- // custom component
- // check if same line. make sure that it isn't the
- // first field. It is possible that the
- // first field can have same line checked and that
- // would cause formatting issues.
- if (gridField.isSameLine () && j != 0)
- {
- isSolo = false;
- }
- else
- {
- if (isSolo)
- {
- detailJSP
- .append ("\n");
- }
- detailJSP
- .append ("\n");
- isSolo = true;
- }
- detailJSP
- .append (" | "
- + "\n"
- + " \n | \n");
- // check if same line. if yes and not first field,
- // close table row
- if (gridField.isSameLine () && j != 0)
- {
- detailJSP
- .append (" \n");
- }
- break;
- case 30:
- // search
- // check if same line. make sure that it isn't the
- // first field. It is possible that the
- // first field can have same line checked and that
- // would cause formatting issues.
- if (gridField.isSameLine () && j != 0)
- {
- isSolo = false;
- }
- else
- {
- if (isSolo)
- {
- detailJSP
- .append ("\n");
- }
- detailJSP
- .append ("\n");
- isSolo = true;
- }
- detailJSP
- .append (""
- + "\n"
- + " | \n\n | \n");
- // check if same line. if yes and not first field,
- // close table row
- if (gridField.isSameLine () && j != 0)
- {
- detailJSP
- .append (" \n");
- }
- break;
- case 31:
- // locator
- // check if same line. make sure that it isn't the
- // first field. It is possible that the
- // first field can have same line checked and that
- // would cause formatting issues.
- if (gridField.isSameLine () && j != 0)
- {
- isSolo = false;
- }
- else
- {
- if (isSolo)
- {
- detailJSP
- .append ("\n");
- }
- detailJSP
- .append ("\n");
- isSolo = true;
- }
- detailJSP
- .append (""
- + "\n"
- + " | \n\n | \n");
- // check if same line. if yes and not first field,
- // close table row
- if (gridField.isSameLine () && j != 0)
- {
- detailJSP
- .append (" \n");
- }
- break;
- case 32:
- // image
- // check if same line. make sure that it isn't the
- // first field. It is possible that the
- // first field can have same line checked and that
- // would cause formatting issues.
- if (gridField.isSameLine () && j != 0)
- {
- isSolo = false;
- }
- else
- {
- if (isSolo)
- {
- detailJSP
- .append ("\n");
- }
- detailJSP
- .append ("\n");
- isSolo = true;
- }
- detailJSP
- .append (""
- + "\n"
- + " | \n\n | \n");
- // check if same line. if yes and not first field,
- // close table row
- if (gridField.isSameLine () && j != 0)
- {
- detailJSP
- .append (" \n");
- }
- break;
- default:
- log.severe ("Display Type not handled for "
- + gridField.getColumnName ()
- + " with display type: "
- + gridField.getDisplayType ());
- break;
- }
- }
- }
- detailJSP.append (" ");
- saveFile (detailFile, detailJSP.toString ());
- }
- }
-
- // Generate Table jsp page
- private void createTablePage(String realContextPath)
- {
- File tableFile = null;
- for (int i = 0; i < tabCount; i++)
- {
- StringBuilder tableJSP = new StringBuilder ();
- tableJSP.append (createCompiereHeader ());
- tableJSP.append (createHeader ());
- GridTab gridTab = gridWindow.getTab (i);
- String fileName = formatNameWithFirstLowerCase (gridTab.getName ())
- + "Table";
- String jsfFile = realContextPath + "window/" + fileName + ".jsp";
- tableFile = new File (jsfFile);
- gridTab.dataRefreshAll ();
- // counter for subscripts
- int subscriptCount = 0;
- tableJSP
- .append ("\n");
- for (int j = 0; j < gridTab.getFieldCount (); j++)
- {
- GridField gridField = gridTab.getField (j);
- tableJSP
- .append ("\n\n");
- // check if displayed
- if (gridField.isDisplayed ())
- {
- int displayType = gridField.getDisplayType ();
- // check display type to genereate jsf code for each
- // specific component
- switch (displayType)
- {
- case 10:
- case 11:
- case 12:
- case 13:
- case 14:
- case 15: // this is a Date format. Comes as Date +
- // Time and needs to be chopped in Backing
- // Bean
- case 16: // this is a Date + Time format.
- case 21: // complete address comma seperated ex:
- // street, city, state, zip
- case 22:
- case 29:
- case 33:
- case 34:
- case 35:
- case 36:
- case 37:
- // text box
- tableJSP.append ("\n");
- break;
- case 17:
- case 18:
- case 19:
- // lookup
- tableJSP
- .append ("\n\n\n");
- break;
- case 20:
- // check box
- tableJSP
- .append ("\n");
- break;
- case 23:
- case 24:
- case 25:
- case 27:
- case 28:
- // custom component
- tableJSP.append ("\n");
- break;
- case 30:
- // search
- tableJSP
- .append ("\n");
- subscriptCount++;
- break;
- case 31:
- // locator
- tableJSP
- .append ("\n");
- subscriptCount++;
- break;
- case 32:
- // image
- tableJSP
- .append ("\n");
- subscriptCount++;
- break;
- default:
- log.severe ("Display Type not handled for "
- + gridField.getColumnName ()
- + " with display type: "
- + gridField.getDisplayType ());
- subscriptCount++;
- break;
- }
- }
- tableJSP.append ("\n");
- }
- tableJSP.append ("");
- saveFile (tableFile, tableJSP.toString ());
- }
- }
-
- // Save GridWindow jsf test file
- private void saveFile(File file, String generatedJSF)
- {
- try
- {
- FileWriter out = new FileWriter (file);
- out.write (generatedJSF);
- out.flush ();
- out.close ();
- }
- catch (IOException ioe)
- {
- log.severe ("Error " + ioe.toString ()
- + " occurred in saveGridWindow");
- }
- }
-
- // format name of file or tab
- private String formatNameWithFirstLowerCase(String name)
- {
- String[] tempNameArray = name.split (" ");
- for (int i = 0; i < tempNameArray.length; i++)
- {
- if (i == 0)
- {
- name = tempNameArray[i].toLowerCase ();
- }
- else
- {
- name += tempNameArray[i];
- }
- }
- return name;
- }
-
- // compiere header
- private StringBuilder createCompiereHeader()
- {
- StringBuilder compiereHeader = new StringBuilder ();
- compiereHeader
- .append ("<%--/*************************************************************\n"
- + " **********\n"
- + " *******\n"
- + " * Product: Compiere ERP & CRM Smart Business Solution\n"
- + " * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved.\n"
- + " * This program is free software; you can redistribute it and/or modify it\n"
- + " * under the terms version 2 of the GNU General Public License as published\n"
- + " * by the Free Software Foundation. This program is distributed in the hope\n"
- + " * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied\n"
- + " * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
- + " * See the GNU General Public License for more details.\n"
- + " * You should have received a copy of the GNU General Public License along\n"
- + " * with this program; if not, write to the Free Software Foundation, Inc.,\n"
- + " * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.\n"
- + " * You may reach us at: ComPiere, Inc. - http://www.compiere.org/license.html\n"
- + " * 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA or info@compiere.org\n"
- + " **************************************************************\n"
- + " **********\n" + " *****/--%>\n");
- return compiereHeader;
- }
-
- // page header
- private StringBuilder createHeader()
- {
- StringBuilder headerString = new StringBuilder ();
- headerString
- .append ("<%@page contentType=\"text/html\"%>\n<%@page pageEncoding=\"UTF-8\"%>\n"
- + "<%@ taglib uri=\"http://java.sun.com/jsf/core\" prefix=\"f\"%>\n"
- + "<%@ taglib uri=\"http://java.sun.com/jsf/html\" prefix=\"h\"%>\n"
- + "<%@ taglib uri=\"http://myfaces.apache.org/tomahawk\" prefix=\"t\"%>\n");
- return headerString;
- }
-
- // Get GridWindow TimeStamp
- private long getGridWindowTimeStamp()
- {
- Timestamp timeStamp = gridWindow.getModelUpdated (true);
- if (timeStamp.equals (null))
- {
- log.severe ("Could not get GridWindow TimeStamp");
- }
- return timeStamp.getTime ();
- }
-}
diff --git a/serverApps/src/main/servlet/org/compiere/jsf/MenuBean.java b/serverApps/src/main/servlet/org/compiere/jsf/MenuBean.java
deleted file mode 100755
index f3deeee087..0000000000
--- a/serverApps/src/main/servlet/org/compiere/jsf/MenuBean.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/******************************************************************************
- * Product: Adempiere ERP & CRM Smart Business Solution *
- * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
- * This program is free software; you can redistribute it and/or modify it *
- * under the terms version 2 of the GNU General Public License as published *
- * by the Free Software Foundation. This program is distributed in the hope *
- * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
- * See the GNU General Public License for more details. *
- * You should have received a copy of the GNU General Public License along *
- * with this program; if not, write to the Free Software Foundation, Inc., *
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
- * For the text or an alternative of this public license, you may reach us *
- * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
- * or via info@compiere.org or http://www.compiere.org/license.html *
- *****************************************************************************/
-package org.compiere.jsf;
-
-import java.util.ArrayList;
-import java.util.List;
-import org.apache.myfaces.custom.navmenu.NavigationMenuItem;
-
-import org.apache.log4j.Logger;
-
-/**
- * provides a model of the main menu bar
- *
- * @author rfreden
- */
-public class MenuBean
-{
- private static final Logger log=Logger.getLogger(MenuBean.class);
-
- private List menu;
-
- // label, icon, action
- // all three null for menu break
- // first element is the submenu title
- private static final String[][] fileMenu= { { "File", null, null },
- { "Print Screen", "/images/PrintScreen16.gif", null },
- { "Screen Shot", "/images/ScreenShot16.gif", null },
- { "Report", "/images/Report16.gif", null }, { "Print", "/images/Print16.gif", null },
- { null, null, null }, { "End", "/images/End16.gif", null },
- { "Exit", "/images/Exit16.gif", null } };
-
- private static final String[][] editMenu= { { "Edit", null, null },
- { "New Record", "/images/New16.gif", null }, { "Save", "/images/Save16.gif", null },
- { null, null, null }, { "Copy Record", "/images/Copy16.gif", null },
- { "Delete Record", "/images/Delete16.gif", null },
- { "Undo Changes", "/images/Undo16.gif", null },
- { "Requery", "/images/Refresh16.gif", null }, { null, null, null },
- { "Look Up Record", "/images/Find16.gif", null } };
-
- private static final String[][] viewMenu= { { "View", null, null },
- { "Product Info", "/images/Product16.gif", null },
- { "Business Partner Info", "/images/BPartner16.gif", null },
- { "Account Info", "/images/InfoAccount16.gif", null },
- { "Schedule Info", "/images/InfoSchedule16.gif", null }, { null, null, null },
- { "Order Info", "/images/Info16.gif", null },
- { "Invoice Info", "/images/Info16.gif", null },
- { "Shipment Info", "/images/Info16.gif", null },
- { "Payment Info", "/images/Info16.gif", null },
- { "Cash Journal Info", "/images/Info16.gif", null },
- { "Resource Info", "/images/Info16.gif", null },
- { "Asset Info", "/images/Info16.gif", null }, { null, null, null },
- { "Attachment", "/images/Attachment16.gif", null },
- { "History Records", "/images/History16.gif", null }, { null, null, null },
- { "Grid Toggle", "/images/Multi16.gif", null } };
-
- private static final String[][] goMenu= { { "Go", null, null },
- { "First Record", "/images/First16.gif", null },
- { "Previous Record", "/images/Previous16.gif", null },
- { "Next Record", "/images/Next16.gif", null },
- { "Last Record", "/images/Last16.gif", null }, { null, null, null },
- { "Parent Record", "/images/Parent16.gif", null },
- { "Detail Record", "/images/Detail16.gif", null }, { null, null, null },
- { "Zoom Across (Where Used)", "/images/ZoomAcross16.gif", null },
- { "Check Requests", "/images/Request16.gif", null },
- { "Archived Documents/Reports", "/images/Archive16.gif", null },
- { "Menu", "/images/Home16.gif", null } };
-
- private static final String[][] toolsMenu= { { "Tools", null, null },
- { "Calculator", "/images/Calculator16.gif", null },
- { "Calendar", "/images/Calendar16.gif", null },
- { "Editor", "/images/Editor16.gif", null }, { "Script", "/images/Script16.gif", null },
- { "Active Workflows", "/images/WorkFlow16.gif", null }, { null, null, null },
- { "Preference", "/images/Preference16.gif", null } };
-
- private static final String[][] helpMenu= { { "Help", null, null },
- { "Help", "/images/Help16.gif", null }, { "Online", "/images/Online16.gif", null },
- { "Email Support", "/images/EMailSupport16.gif", null },
- { "About", "/images/About16.gif", null } };
-
- /** Creates a new instance of MenuBean */
- public MenuBean()
- {
- menu=new ArrayList();
- menu.add(getNavigationItemListFromArray(fileMenu));
- menu.add(getNavigationItemListFromArray(editMenu));
- menu.add(getNavigationItemListFromArray(viewMenu));
- menu.add(getNavigationItemListFromArray(goMenu));
- menu.add(getNavigationItemListFromArray(toolsMenu));
- menu.add(getNavigationItemListFromArray(helpMenu));
- }
-
- public List getMenu()
- {
- return menu;
- }
-
- private NavigationMenuItem getNavigationItemListFromArray(String[][] sa)
- {
- NavigationMenuItem root=new NavigationMenuItem(sa[0][0], sa[0][2], sa[0][1], false);
- List tmp=new ArrayList();
- for (int i=1; i, for windowNo and tab state string
- * but... this class should be the only interface to that (currently there is an el expression that looks like #{sessionScope.tabNo[windowNo]} )
- * this object is _only valid for the windowNo it is instantiated from_
- * the class furthermore should be the interface to windowNo, which is a request parameter
- * @author rfreden
- *
- */
-public class TabStateManager
-{
- private static final CLogger log=CLogger.getCLogger(TabStateManager.class);
-
- // the map should be a non clobberable singleton
- private static Map tabNo;
-
- private FacesContext facesContext;
-
- public TabStateManager(FacesContext fc)
- {
- facesContext=fc;
- if(tabNo==null)
- {
- // if it doesn't exist in the session, then instantiate it and put it there
- if((tabNo=(Map)facesContext.getExternalContext().getSessionMap().get("tabNo"))==null)
- {
- tabNo=new HashMap();
- facesContext.getExternalContext().getSessionMap().put("tabNo",tabNo);
- }
- }
- }
-
- public UIStateBean getUIState()
- {
- return (UIStateBean)facesContext.getApplication().getVariableResolver().resolveVariable(facesContext,"uiStateBean");
- }
-}
diff --git a/serverApps/src/main/servlet/org/compiere/jsf/UIStateBean.java b/serverApps/src/main/servlet/org/compiere/jsf/UIStateBean.java
deleted file mode 100755
index 9de96fbc16..0000000000
--- a/serverApps/src/main/servlet/org/compiere/jsf/UIStateBean.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/******************************************************************************
- * Product: Adempiere ERP & CRM Smart Business Solution *
- * Copyright (C) 1999-2006 ComPiere, Inc. All Rights Reserved. *
- * This program is free software; you can redistribute it and/or modify it *
- * under the terms version 2 of the GNU General Public License as published *
- * by the Free Software Foundation. This program is distributed in the hope *
- * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied *
- * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
- * See the GNU General Public License for more details. *
- * You should have received a copy of the GNU General Public License along *
- * with this program; if not, write to the Free Software Foundation, Inc., *
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
- * For the text or an alternative of this public license, you may reach us *
- * ComPiere, Inc., 2620 Augustine Dr. #245, Santa Clara, CA 95054, USA *
- * or via info@compiere.org or http://www.compiere.org/license.html *
- *****************************************************************************/
-package org.compiere.jsf;
-
-import java.io.Serializable;
-
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
-
-import org.compiere.util.CLogger;
-
-/**
- * holds state for a window; currently it tracks only the windowNo attribute, provided on initial load
- * an instance of this class should be available for any window page, as it is persisted throughout the view existence via t:saveState
- * @author rfreden
- *
- */
-public class UIStateBean implements Serializable
-{
- private static final long serialVersionUID=2930846164351L;
-
- private static final CLogger log=CLogger.getCLogger(UIStateBean.class);
-
- // TODO: this should be an Integer
- private String windowNo;
-
- private boolean gridView;
-
- private int tabNo;
-
- public UIStateBean()
- {
- // int and boolean default initializers put this initial state at tab0Detail
- String[] s=(String[])FacesContext.getCurrentInstance().getExternalContext().getRequestParameterValuesMap().get("windowNo");
- if(s!=null)
- {
- windowNo=s[0];
- log.info("got windowNo "+windowNo);
- }
- }
-
- public void setWindowNo(String w)
- {
- log.info("setting windowNo "+w);
- windowNo=w;
- }
-
- public String getWindowNo()
- {
- //log.info("getting windowNo "+windowNo);
- return windowNo;
- }
-
- public Boolean getGridView()
- {
- return gridView;
- }
-
- public void setGridView(Boolean b)
- {
- gridView=b;
- }
-
- public Integer getTabNo()
- {
- return tabNo;
- }
-
- public void setTabNo(Integer i)
- {
- tabNo=i;
- }
-
- public String getTabState()
- {
- String s="tab"+String.valueOf(tabNo)+(gridView?"Table":"Detail");
- log.info("returning "+s);
- return s;
- }
-
- public void toggleGridView(ActionEvent ae)
- {
- log.info("called");
- gridView=!gridView;
- }
-}
diff --git a/serverApps/src/war/WEB-INF/web.xml b/serverApps/src/war/WEB-INF/web.xml
deleted file mode 100644
index cfa81f5a22..0000000000
--- a/serverApps/src/war/WEB-INF/web.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-
-
-
- jsfFilter
- org.compiere.webApp.JSFFilter
-
-
- jsfFilter
- /window/*
-
-
\ No newline at end of file
diff --git a/serverApps/src/war/css/adempiere.css b/serverApps/src/war/css/adempiere.css
deleted file mode 100644
index 76e389c2ea..0000000000
--- a/serverApps/src/war/css/adempiere.css
+++ /dev/null
@@ -1,730 +0,0 @@
-/***********************************************/
-/* HTML tag styles */
-/********************************************** */
-
-body{
- font-family: Arial, sans-serif;
- color: #000000;
- line-height: normal;
- margin: 0px;
- padding: 0px;
- background-image: url(../images/page_bkgd3.jpg);
- background-color: #fbf8f1;
- background-repeat: repeat-x;
-}
-a{
- color: #006699;
- text-decoration: none;
-}
-a:link{
- color: #006699;
- text-decoration: none;
- font-weight: normal;
-}
-a:visited{
- color: #006699;
- font-weight: normal;
- text-decoration: none;
-}
-a:hover{
- color: #006699;
- text-decoration: underline;
-}
-h1, h2, h3, h4, h5, h6, h7 {
- font-family: Arial,sans-serif;
- margin: 0px;
- padding: 0px;
-}
-ul{
- list-style-type: square;
- list-style-position: inside;
- margin-right: 10px;
-}
-ul ul{
- list-style-type: disc;
-}
-ul ul ul{
- list-style-type: none;
-}
-label{
- color: #333333;
- font-family: Arial,sans-serif;
- font-size: 80%;
-}
-ol{
- list-style-position: inside;
- margin-right: 10px;
-}
-img{
-text-decoration: none;
-}
-/***********************************************/
-/* Layout Divs */
-/***********************************************/
-
-/************** #container div styles ************* */
-#indexProductbar{
- padding: 0px;
- background-color: #FFFFFF;
- width: 160px;
- float: left;
-}
-#content{
- float:right;
- width: 596px;
- margin: 0px 0px 0px 0px;
- color:#333333;
- padding: 0px 0px 0px 0px;
-}
-#indexContent{
- width: 419px;
- margin: 0px 0px 0px 0px;
- color:#333333;
- padding: 0px 0px 0px 0px;
- background-color: #FFFFFF;
- float: left;
-}
-#fullcontent{
- width: 760px;
- margin: 0px 0px 0px 0px;
- color:#333333;
- padding: 0px 0px 0px 0px;
-}
-#leftPod{
- float: left;
- margin: 0px;
- padding: 0px;
- background-repeat: no-repeat;
- height: 320px;
- width: 160px;
- background-image: url(/images/adempiere_guy.jpg);
-}
-#leftPod2{
- width: 127px;
- margin: 0px;
- padding: 7px 0px 0px 2px;
- background-image: url(../images/title_bkgd.jpg);
- height: 23px;
- float: left;
- border-left: solid #CCCCCC 1px;
- border-right: solid #CCCCCC 1px;
- border-top: solid #CCCCCC 1px;
-}
-#leftPod3{
- width: 129px;
- padding: 0px 0px 0px 0px;
- text-align: center;
- float: left;
- border-right: solid #CCCCCC 1px;
- border-left: solid #CCCCCC 1px;
-}
-#leftPod4{
- float: none;
- margin: 0px;
- padding: 0px;
- width: 129px;
- background-color: #FFFFFF;
-}
-#rightPod{
- float:right;
- width: 100%;
- border-left: 1px solid #cccccc;
- border-bottom: 1px solid #cccccc;
-}
-#rightPod2{
- float:none;
- width: 160px;
- background-image: url(../images/title_bkgd.jpg);
- height: 23px;
- text-align: left;
- padding: 7px 0px 0px 0px;
- background-repeat: no-repeat;
-}
-#rightPod3{
- float:none;
- width: 158px;
- text-align: center;
- margin: 0px 0px 0px 0px;
- background-color: #FFFFFF;
-}
-#rightPod5{
- float:none;
- width: 158px;
- text-align: center;
- margin: 0px 0px 0px 0px;
- background-color: #FFFFFF;
- height: 280px;
- padding-top: 25px;
-}
-/************** #topNav styles ************* */
-#topNav{
- position: relative;
- top: 4px;
- height: 22px;
- padding: 0px;
- margin: -95px 0px 0px 400px;
- left: 5px;
- width: 350px;
- text-align: right;
- font-size: 60%;
- vertical-align: middle;
-}
-#topLink{
- position: relative;
- top: 4px;
- height: 22px;
- padding: 0px;
- margin: 0px;
- left: 190px;
- width: 500px;
-}
-a.toplink, a.toplink:visited{
- color: #003366;
- font-weight: bold;
- margin: 0px;
- padding: 2px 5px 4px 5px;
- text-decoration: none;
- border-right-width: 1px;
- border-right-style: solid;
- border-right-color: #999999;
-}
-a.toplink:hover{
- color: #003366;
- font-weight: bold;
- text-decoration: underline;
-}
-a.alttoplink, a.alttoplink:visited{
- color: #003366;
- font-weight: bold;
- margin: 0px;
- padding: 2px 5px 4px 5px;
- text-decoration: none;
-}
-a.alttoplink:hover{
- color: #003366;
- font-weight: bold;
- text-decoration: underline;
-}
-
-/************* #globalNav styles ************* */
-
-#globalNav{
- color: #003366;
- white-space: nowrap;
- background-image: url(../images/navbar_adempiere.jpg);
- background-repeat: no-repeat;
- font-family: Arial, Helvetica, sans-serif;
- height: 28px;
- width: 100%;
-}
-#globalNav img{
- display: block;
-}
-#globalNav a {
- font-size: 90%;
- padding: 0 4px 0 0;
-}
-#globalLink{
- position: relative;
- top: 4px;
- height: 22px;
- padding: 0px;
- margin: 0px;
- left: 190px;
- width: 400px;
-}
-a.glink, a.glink:visited{
- font-size: small;
- color: #99FFFF;
- font-weight: bold;
- margin: 0px;
- padding: 2px 5px 4px 5px;
- text-decoration: none;
- border-right-width: 0px;
- border-right-style: solid;
- border-right-color: #999999;
-}
-a.glink:hover{
- color: #FFFFFF;
- text-decoration: none;
-}
-a.altlink, a.altlink:visited{
- font-size: small;
- color: #99FFFF;
- font-weight: bold;
- margin: 0px;
- padding: 2px 5px 4px 5px;
- text-decoration: none;
-}
-a.altlink:hover{
- color: #FFFFFF;
- text-decoration: none;
-}
-
-/************** #tabNav styles ************* */
-
-#tabNav{
- position: relative;
- padding: -10px 0px 5px 20px;
- margin: 0px;
- left: 25px;
- width: 520px;
-}
-a.tabNav, a.tabNav:visited{
- color: #ffffff;
- font-weight: bold;
- margin: 0px;
- padding: 2px 5px 4px 5px;
- text-decoration: underline;
-}
-a.tabNav:hover{
- color: #ffffff;
- font-weight: bold;
- text-decoration: underline;
-}
-/************** Header styles ************* */
-#masthead{
- width: 100%;
- border-bottom: 1px solid #cccccc;
-}
-#header{
- font-family: Arial, Helvetica, sans-serif;
- height: 94px;
- width: 100%;
- margin: 0;
- background-color: #0099CC;
- background-image: url(../images/adempiere_5a.jpg);
- background-repeat: no-repeat;
-
- font-weight: bolder;
- }
-#logoHeader{
- font-family: Arial, Helvetica, sans-serif;
- height: 94px;
- width: 100%;
- z-index: 10;
-}
-#navBar{
- padding: 0px;
- background-color: #eeeeee;
- width: 159px;
-}
-#fullheightcontainer{
- margin-left:auto;
- margin-right:auto;
- position:inherit;
- width:760px;
- height:100%;
- background-color: #FFFFFF;
-}
-#wrapper{
- min-height:100%;
- height:100%;
- background:#FFFFFF;
-}
-#wrapp\65 r{
- height:auto;
-}
-* html #wrapper{
- height:100%;
- width: 760px;
- background-color: #FFFFFF;
-}
-#outer{
- z-index:1;
- position:relative;
- margin-left:160px;
- width:440px;
- background:#FFFFFF;
- height:100%;
-}
-/***********************************************/
-/* Components */
-/***********************************************/
-
-/*************** title styles ************* */
-#index1{
- text-align: center;
- background-color: #FFFFFF;
- color: #003366;
- font-weight: bolder;
- font-size: 1.2em;
- height: auto;
- padding-top: 10px;
-}
-#index2{
- text-align: right;
- background-color: #FFFFFF;
- color: #0099cc;
- font-weight: bold;
- font-size: .9em;
- padding-right: 10px;
- height: auto;
- margin-top: 0px;
-}
-#index3{
- text-align: left;
- color: #003366;
- font-weight: bold;
- font-size: 1.0em;
-}
-#pageName{
- margin: 25px 0px 0px 5px;
- padding: 0px 0px 0px 20px;
- color: #003366;
- font-size: 150%;
-}
-#pageNameimg{
- margin: 5px 0px 20px 25px;
- padding: 0px 0px 0px 0px;
-}
-#sectionTitle{
- font-weight: bold;
- color: #003366;
- margin: 0px 0px 0px 0px;
- padding: 10px 0px 10px 10px;
-}
-#sectionTitle2{
- font-size: 90%;
- font-weight: bold;
- color: #003366;
- margin: 0px 0px 0px 0px;
- padding: 5px 0px 10px 0px;
-}
-#storyTitle1{
- font-size: 115%;
- font-weight: bold;
- color: #003366;
- margin: 20px 10px 10px 25px;
- padding: 0px;
-}
-#storyTitle2{
- font-size: 105%;
- font-weight: bold;
- color: #333333;
- margin: 0px 0px 10px 30px;
- padding: 0px;
-}
-#storyTabletitle1{
- font-size: 105%;
- font-weight: bold;
- color: #333333;
- margin: 0px 0px 5px 15px;
- padding: 0px;
-}
-#storyTabletitle2{
- font-size: 115%;
- font-weight: bold;
- color: #003366;
- margin: 0px 0px 10px 0px;
- padding: 0px;
-}
-#dynamicTitle{
- font-size: 100%;
- font-weight: bolder;
- color: #333333;
- margin: 0px 0px 0px 0px;
- padding: 0px 0px 0px 3px;
-}
-#siteMap1{
- font-size: 120%;
- font-weight: bold;
- color: #006699;
- margin: 20px 15px 10px 25px;
- padding: 0px;
-}
-#siteMap2{
- font-size: 90%;
- font-weight: bold;
- color: #006699;
- margin: 0px 0px 5px 40px;
- padding: 0px;
- font-style: normal;
-}
-#aboutNav{
- position: relative;
- top: 4px;
- height: 22px;
- padding: 4px 0px 0px 0px;
- margin: 2px 0px 8px 0px;
- width: 410px;
- text-align: center;
- font-size: 90%;
- vertical-align: middle;
-}
-a.aboutNav, a.aboutNav:visited{
- font-weight: bold;
- margin: 0px;
- padding: 2px 5px 4px 5px;
- text-decoration: underline;
-}
-a.aboutNav:hover{
- font-weight: bold;
- text-decoration: underline;
-}
-/************* #breadCrumb styles *************/
-
-#breadCrumb{
- font-size: 70%;
- margin: 5px 0px 0px 20px;
-}
-
-
-/************** .centerPod styles ***************/
-
-.centerPod{
- padding: 0px 0px 0px 0px;
- font-size: 0.91em;
- background-color: #FFFFFF;
- margin: 0px 0px 0px 0px;
-}
-.centerPod2{
- background-image: url(../images/title_bkgd.jpg);
- height: 31px;
-}
-.centerPod3{
-}
-/************** .story styles *****************/
-
-.story{
- font-size: 80%;
- width: 100%;
-}
-.story p{
- padding: 0px 0px 10px 0px;
- margin: 0px 20px 0px 35px;
-}
-#storyImg{
- margin: 10px 10px 10px 30px;
- text-align: center;
-}
-.story a{
- text-decoration:underline
-}
-.story a:visited{
- text-decoration:underline
-}
-.story a:hover{
- text-decoration: underline;
-}
-#storySidebar{
- float:right;
- width: 158px;
- text-align: left;
- margin: 0px 1px 10px 10px;
- background-color: #FFFFFF;
- border: 1px solid #cccccc;
-}
-/************** .webStore styles *****************/
-#webStorecontent{
- float:right;
- width: 750px;
- margin: 0px 0px 0px 0px;
- color:#333333;
- padding: 0px 10px 0px 0px;
-}
-.webStore{
- font-size: 80%;
- width: 100%;
-}
-.webStore p{
- padding: 0px 0px 10px 0px;
- margin: 0px 20px 0px 35px;
-}
-/************* #siteInfo styles ***************/
-
-#siteInfo{
- clear: both;
- font-size: 75%;
- color: #999999;
- padding: 5px 5px 5px 5px;
- text-align: center;
- border-top: 1px solid #cccccc;
-}
-
-/************* #search styles ***************/
-
-#search{
- padding: 5px 0px 5px 10px;
- font-size: 90%;
- margin-top: -24px;
- margin-left: 596px;
-}
-#search form{
- margin: 0px;
- padding: 0px;
-}
-#search label{
- display: block;
- margin: 0px;
- padding: 0px;
-}
-#searchStore{
- padding: 5px 0px 5px 10px;
- font-size: 90%;
- margin-top: -24px;
- margin-left: 30px;
-}
-/*********** #navBar link styles ***********/
-
-#navBar ul a:link, #navBar ul a:visited{
-display: block;
-}
-#navBar ul {
-list-style: none; margin: 0; padding: 0;
-}
-#navBar li {border-bottom: 1px solid #EEE;}
-html>body #navBar li {border-bottom: none;}
-
-/*********** leftNav styles ***********/
-
-#sectionLinks{
- position: relative;
- margin: 0px;
- padding: 0px;
- font-size: 88%;
- border-right: 1px solid #cccccc;
- border-bottom: 1px solid #cccccc;
-}
-#sectionLinks h3{
- padding: 10px 0px 2px 10px;
-}
-#sectionLinks a:link{
- padding: 2px 0px 2px 10px;
- border-top: 1px solid #cccccc;
- width: auto;
- voice-family: "\"}\"";
- voice-family:inherit;
- width: auto;
-}
-#sectionLinks a:visited{
- border-top: 1px solid #cccccc;
- padding: 2px 0px 2px 10px;
-}
-#sectionLinks a:hover{
- border-top: 1px solid #cccccc;
- background-color: #dddddd;
- padding: 2px 0px 2px 10px;
-}
-#lnavFade{
- width: 160px;
- border: 0px;
- height: 100px;
- background-color: #FFFFFF;
- background-image: url(../images/lnav_fade.jpg);
-}
-/*********** #login styles ***********/
-#login{
- position: relative;
- margin: 0px;
- padding: 10px 0px 10px 10px;
- background-color: #FFFFFF;
- border-right: 1px solid #cccccc;
-}
-#loginNew{
- font-family: Arial, sans-serif;
- color: #FF0000;
- font-size: 80%;
- text-align: left;
- background-color: #FFFFFF;
- padding: 10px 0px 10px 10px;
- border-right: 1px solid #cccccc;
-}
-
-/*********** #subscribe styles ***********/
-#subscribe{
- text-align: left;
- background-color: #eeeeee;
- padding: 10px 0px 10px 10px;
- border-right: 1px solid #cccccc;
- border-top: 1px solid #cccccc;
-}
-#subscribeLink{
- font-family: Arial, sans-serif;
- color: #FF0000;
- font-size: 90%;
- padding-right: 5px;
-}
-#subscribeLink ul a:link, #navBar ul a:visited, #navBar ul a:link{
- display: block;
- color: #006699;
-}
-#subscribeLink ul {
-list-style: none; margin: 0; padding: 0;
-}
-#subscribeLink li {border-bottom: 1px solid #EEE;}
-html>body #subscribeLink li {border-bottom: none;}
-/*********** .relatedLinks styles ***********/
-
-.relatedLinks{
- position: relative;
- margin: 0px;
- padding: 0px 0px 10px 10px;
- font-size: 80%;
- color: #006699;
-}
-.relatedLinks h3{
- padding: 10px 0px 2px 0px;
-}
-.relatedLinks a:link,
-.relatedLinks a:visited{
- display: block;
- color: #000033;
-}
-.relatedLinks a:hover {
- display: block;
- color: #000033;
- text-decoration: underline;
-}
-.sitemapLinks1{
- position: relative;
- margin: 0px;
- padding: 3px 0px 5px 65px;
- font-size: 80%;
-}
-.sitemapLinks2{
- position: relative;
- margin: 0px;
- padding: 0px 0px 5px 65px;
- font-size: 80%;
-}
-.sitemapLinks3{
- position: relative;
- margin: 0px;
- padding: 0px 0px 10px 65px;
- font-size: 80%;
-}
-/************** #headlines styles ************* */
-
-#headlines{
- margin: 0px;
- padding: 0px 0px 0px 0px;
- width: 160px;
- float: right;
- background-color: #FFFFFF;
-}
-#headlines2{
- margin: 0px;
- padding: 0px 0px 0px 0px;
- width: 160px;
- float: right;
- background-color: #FFFFFF;
- border-left: solid #CCCCCC 1px;
- border-right: solid #CCCCCC 1px;
- border-top: solid #CCCCCC 1px;
-}
-#headlines3{
- margin: 0px;
- padding: 0px 0px 0px 0px;
- width: 162px;
- float: right;
- background-color: #FFFFFF;
-}
-#headlines p{
- padding: 5px 0px 5px 0px;
-}
-/************** #table styles ************* */
-#tableText{
- color: #333333;
- font-size: 0.7em;
-}
diff --git a/serverApps/src/war/css/iconToolbar.css b/serverApps/src/war/css/iconToolbar.css
deleted file mode 100644
index efd7ce7889..0000000000
--- a/serverApps/src/war/css/iconToolbar.css
+++ /dev/null
@@ -1,15 +0,0 @@
-.mainDocumentStyle {
- background-color: #cfcfcf;
-}
-
-/* used in toolbar buttons */
-.iconButtonStyle {
- background-color: #cfcfcf;
- border: 3px groove #e0e0e0;
- margin: 0px;
-}
-
-.rightLabel {
- text-align: right;
- white-space: nowrap;
-}
diff --git a/serverApps/src/war/css/tab.css b/serverApps/src/war/css/tab.css
deleted file mode 100644
index 172912ce1f..0000000000
--- a/serverApps/src/war/css/tab.css
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
-if you could do multiple inheritance in css this would be perfect for it
- not every aspect of this setup is as styled as it should be;
- the buttons aren't properly squished together
-*/
-
-.baseParentTabStyle {
- background-color: inherit;
- width: 100px;
-}
-
-/* indented child style tab button */
-.baseChildTabStyle {
- background-color: inherit;
- width: 85px;
-}
-
-.selectedTabStyle {
- border-left: 2px inset;
- border-top: 2px inset;
- border-bottom: 2px inset;
- border-right: none;
-}
-
-.unselectedTabStyle {
- border: 2px outset;
-}
-
-/* inherits from selectedTabStyle */
-.selectedMouseOverTabStyle {
- color: WHITE;
- border-left: 2px inset BLACK;
- border-top: 2px inset BLACK;
- border-bottom: 2px inset BLACK;
- border-right: none;
-}
-
-.unselectedMouseOverTabStyle {
- color: WHITE;
- border: 2px outset BLACK;
-}
-
-.thing {
- padding-left: 15px;
-}
diff --git a/serverApps/src/war/css/wideTable.css b/serverApps/src/war/css/wideTable.css
deleted file mode 100644
index c287581932..0000000000
--- a/serverApps/src/war/css/wideTable.css
+++ /dev/null
@@ -1,21 +0,0 @@
-.wideTableStyle {
- table-layout: fixed;
- border-style: solid;
- border-width: 1px;
-}
-
-.wideTableHeaderStyle {
- white-space: nowrap;
- border-right: solid;
- border-left: solid;
- border-width: 1px;
-}
-wideTableRowStyle {
- border-style: solid;
- border-width: 1px;
-}
-
-.wideTableCellStyle {
- border-style: solid;
- border-width: 1px;
-}
diff --git a/serverApps/src/war/javaScript/aa.js b/serverApps/src/war/javaScript/aa.js
deleted file mode 100644
index 93901abdeb..0000000000
--- a/serverApps/src/war/javaScript/aa.js
+++ /dev/null
@@ -1,764 +0,0 @@
-/*
-Copyright 2005 Vitaliy Shevchuk (shevit@users.sourceforge.net)
-
- 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.
-
-*/
-
-AjaxAnywhere.defaultInstanceName = "default";
-
-// constructor;
-function AjaxAnywhere() {
-
- this.id = AjaxAnywhere.defaultInstanceName;
- this.formName = null;
- this.notSupported = false;
- this.delayBeforeContentUpdate = true;
- this.delayInMillis = 100;
-
- if (window.XMLHttpRequest) {
- this.req = new XMLHttpRequest();
- } else if (window.ActiveXObject) {
- try {
- this.req = new ActiveXObject("Msxml2.XMLHTTP");
- } catch(e) {
- try {
- this.req = new ActiveXObject("Microsoft.XMLHTTP");
- } catch(e1) {
- this.notSupported = true;
- /* XMLHTTPRequest not supported */
- }
- }
- }
-
- if (this.req == null || typeof this.req == "undefined")
- this.notSupported = true;
-}
-
-/**
-* Stores substitutes SubmitButton names in to redo sustitution if a button was eventually inside a refresh zone.
-*/
-AjaxAnywhere.prototype.substitutedSubmitButtons = new Array();
-AjaxAnywhere.prototype.substitutedSubmitButtonsInfo = new Object();
-
-/**
-* Returns a Form object that corresponds to formName property of this AjaxAnywhere class instance.
-*/
-AjaxAnywhere.prototype.findForm = function () {
- var form;
- if (this.formName != null)
- form = document.forms[this.formName];
- else if (document.forms.length > 0)
- form = document.forms[0];
-
- if (typeof form != "object")
- alert("AjaxAnywhere error: Form with name [" + this.formName + "] not found");
- return form;
-}
-
-
-/**
-* Binds this instance to window object using "AjaxAnywhere."+this.id as a key.
-*/
-AjaxAnywhere.prototype.bindById = function () {
- var key = "AjaxAnywhere." + this.id;
- window[key] = this;
-}
-
-/**
-* Finds an instance by id.
-*/
-AjaxAnywhere.findInstance = function(id) {
- var key = "AjaxAnywhere." + id;
- return window[key];
-}
-
-/**
-* This function is used to submit all form fields by AJAX request to the server.
-* If the form is submited with <input type=submit|image>, submitButton should be a reference to the DHTML object. Otherwise - undefined.
-*/
-AjaxAnywhere.prototype.submitAJAX = function(additionalPostData, submitButton) {
-
- if (this.notSupported)
- return this.onSubmitAjaxNotSupported(additionalPostData, submitButton);
-
- if (additionalPostData == null || typeof additionalPostData == "undefined")
- additionalPostData = "";
-
- this.bindById();
-
- var form = this.findForm();
-
- var actionAttrNode = form.attributes["action"].nodeValue;
- var url = actionAttrNode == null?null:actionAttrNode.nodeValue;
- if ((url == null) || (url == ""))
- url = location.href;
-
- var pos = url.indexOf("#");
- if (pos!=-1)
- url = url.substring(0,pos);
- if ((url == null) || (url == ""))
- url = location.href;
- pos = url.indexOf("#");
- if (pos!=-1)
- url = url.substring(0,pos);
-
- var zones = this.getZonesToReload(url, submitButton);
-
- if (zones == null) {
- // submit in tradiditional way :
- this.submitOld(form,submitButton)
- return;
- }
-
- this.dropPreviousRequest();
-
- this.req.open("POST", url, true);
- this.req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- this.req.setRequestHeader("Accept", "text/xml");
-
- var postData = this.preparePostData(submitButton);
-
- if (zones != "")
- postData = '&aazones=' + encodeURIComponent(zones) + "&" + postData + "&" + additionalPostData;
- else
- postData += "&" + additionalPostData;
-
- this.sendPreparedRequest(postData);
-
-}
-/**
-* sends a GET request to the server.
-*/
-AjaxAnywhere.prototype.getAJAX = function(url, zonesToRefresh) {
- if (this.notSupported)
- return this.onGetAjaxNotSupported(url);
-
- this.bindById();
-
- if (zonesToRefresh == null || typeof zonesToRefresh == "undefined")
- zonesToRefresh = "";
- var urlDependentZones = this.getZonesToReload(url);
- if (urlDependentZones == null) {
- location.href = url;
- return;
- }
-
- if (urlDependentZones.length != 0)
- zonesToRefresh += "," + urlDependentZones;
-
- this.dropPreviousRequest();
-
- url += (url.indexOf("?") != -1) ? "&" : "?";
-
- url += "aaxmlrequest=true&aa_rand=" + Math.random();
- // avoid caching
-
- if (zonesToRefresh != null && zonesToRefresh != "")
- url += '&aazones=' + encodeURIComponent(zonesToRefresh);
-
- this.req.open("GET", url, true);
- this.req.setRequestHeader("Accept", "text/xml");
-
- this.sendPreparedRequest("");
-}
-
-/**
-* @private
-*/
-AjaxAnywhere.prototype.sendPreparedRequest = function (postData) {
- var callbackKey = this.id + "_callbackFunction";
- if (typeof window[callbackKey] == "undefined")
- window[callbackKey] = new Function("AjaxAnywhere.findInstance(\"" + this.id + "\").callback(); ");
- this.req.onreadystatechange = window[callbackKey];
-
- this.showLoadingMessage();
-
- this.req.send(postData);
-}
-/**
-* Used internally by AjaxAnywhere. Aborts previous request if not completed.
-*/
-AjaxAnywhere.prototype.dropPreviousRequest = function() {
- if (this.req.readyState != 0 && this.req.readyState != 4) {
- // abort previous request if not completed
- this.req.abort();
- this.handlePrevousRequestAborted();
- }
-}
-
-/**
-* Internally used to prepare Post data.
-* If the form is submited with <input type=submit|image>, submitButton is a reference to the DHTML object. Otherwise - undefined.
-*/
-AjaxAnywhere.prototype.preparePostData = function(submitButton) {
- var form = this.findForm();
- var result = "&aaxmlrequest=true";
- for (var i = 0; i < form.elements.length; i++) {
- var el = form.elements[i];
- if (el.tagName.toLowerCase() == "select") {
- for (var j = 0; j < el.options.length; j++) {
- var op = el.options[j];
- if (op.selected)
- result += "&" + encodeURIComponent(el.name) + "=" + encodeURIComponent(op.value);
- }
- } else if (el.tagName.toLowerCase() == "textarea") {
- result += "&" + encodeURIComponent(el.name) + "=" + encodeURIComponent(el.value);
- } else if (el.tagName.toLowerCase() == "input") {
- if (el.type.toLowerCase() == "checkbox" || el.type.toLowerCase() == "radio") {
- if (el.checked)
- result += "&" + encodeURIComponent(el.name) + "=" + encodeURIComponent(el.value);
- } else if (el.type.toLowerCase() == "submit") {
- if (el == submitButton) // is "el" the submit button that fired the form submit?
- result += "&" + encodeURIComponent(el.name) + "=" + encodeURIComponent(el.value);
- } else if (el.type.toLowerCase() != "button") {
- result += "&" + encodeURIComponent(el.name) + "=" + encodeURIComponent(el.value);
- }
- }
- }
- if (typeof submitButton != 'undefined' && submitButton != null && submitButton.type.toLowerCase() == "image") {
- if (submitButton.name == null || submitButton.name == "" || typeof submitButton.name == "undefined")
- result += "&x=1&y=1"; // .x and .y coordinates calculation is not supported.
- else
- result += "&" + encodeURIComponent(submitButton.name) + ".x=1&" +
- encodeURIComponent(submitButton.name) + ".y=1";
- }
- return result;
-}
-
-/**
-* Pauses the thread of execution for the specified number of milliseconds
-* @private
-*/
-function delay(millis) {
- date = new Date();
- var curDate = null;
- do {
- curDate = new Date();
- }
- while (curDate - date < millis);
-}
-
-/**
-* A callback. internally used
-*/
-AjaxAnywhere.prototype.callback = function() {
-
- if (this.req.readyState == 4) {
-
- this.onBeforeResponseProcessing();
- this.hideLoadingMessage();
-
- if (this.req.status == 200) {
-
- if (this.req.getResponseHeader('content-type').toLowerCase().substring(0, 8) != 'text/xml')
- alert("AjaxAnywhere error : content-type in not text/xml : [" + this.req.getResponseHeader('content-type') + "]");
-
- var docs = this.req.responseXML.getElementsByTagName("document");
- var redirects = this.req.responseXML.getElementsByTagName("redirect");
- var zones = this.req.responseXML.getElementsByTagName("zone");
- var exceptions = this.req.responseXML.getElementsByTagName("exception");
- var scripts = this.req.responseXML.getElementsByTagName("script");
- var images = this.req.responseXML.getElementsByTagName("image");
-
- if (redirects.length != 0) {
- var newURL = redirects[0].firstChild.data;
- location.href = newURL;
- }
- if (docs.length != 0) {
- var newContent = docs[0].firstChild.data;
-
- //cleanup ressources
- delete this.req;
-
- document.close();
- document.write(newContent);
- document.close();
- }
-
- if (images.length != 0) {
- var preLoad = new Array(images.length);
- for (var i = 0; i < images.length; i++) {
- var img = images[i].firstChild;
- if (img != null) {
- preLoad[i] = new Image();
- preLoad[i].src = img.data;
- }
- }
- if (this.delayBeforeContentUpdate) {
- delay(this.delayInMillis);
- }
- }
-
- if (zones.length != 0) {
- for (var i = 0; i < zones.length; i++) {
- var zoneNode = zones[i];
-
- var name = zoneNode.getAttribute("name");
- var id = zoneNode.getAttribute("id");
-
- var fc = zoneNode.firstChild;
-
- var html = (fc == null)?"":fc.data;
-
- var zoneHolder = name!=null?
- document.getElementById("aazone." + name):
- document.getElementById(id);
-
- if (zoneHolder != null && typeof(zoneHolder) != "undefined") {
- zoneHolder.innerHTML = html;
- }
-
- }
- }
- if (exceptions.length != 0) {
- var e = exceptions[0];
- var type = e.getAttribute("type");
- var stackTrace = e.firstChild.data;
- this.handleException(type, stackTrace);
- }
-
- if (scripts.length != 0) {
- for (var $$$$i = 0; $$$$i < scripts.length; $$$$i++) {
- // use $$$$i variable to avoid collision with "i" inside user script
- var script = scripts[$$$$i].firstChild;
- if (script != null) {
- script = script.data;
- if (script.indexOf("document.write") != -1) {
- this.handleException("document.write", "This script contains document.write(), which is not compatible with AjaxAnywhere : \n\n" + script);
- } else {
- eval(script);
- }
- }
- }
-
- var globals = this.getGlobalScriptsDeclarationsList(script);
- if (globals != null)
- for (var i in globals) {
- var objName = globals[i];
- try {
- window[objName] = eval(objName);
- } catch(e) {
- }
- }
- }
-
- } else {
- if (this.req.status != 0)
- this.handleHttpErrorCode(this.req.status);
- }
- this.restoreSubstitutedSubmitButtons();
- this.onAfterResponseProcessing();
-
- }
-
-
-}
-
-/**
-* Default sample loading message show function. Overrride it if you like.
-*/
-AjaxAnywhere.prototype.showLoadingMessage = function() {
-
- var div = document.getElementById("AA_" + this.id + "_loading_div");
- if (div == null) {
- div = document.createElement("DIV");
-
- document.body.appendChild(div);
- div.id = "AA_" + this.id + "_loading_div";
-
- div.innerHTML = " Loading...";
- div.style.position = "absolute";
- div.style.border = "1 solid black";
- div.style.color = "white";
- div.style.backgroundColor = "blue";
- div.style.width = "100px";
- div.style.heigth = "50px";
- div.style.fontFamily = "Arial, Helvetica, sans-serif";
- div.style.fontWeight = "bold";
- div.style.fontSize = "11px";
- }
- div.style.top = document.body.scrollTop + "px";
- div.style.left = (document.body.offsetWidth - 100 - (document.all?20:0)) + "px";
-
- div.style.display = "";
-}
-
-/**
-* Default sample loading message hide function. Overrride it if you like.
-*/
-AjaxAnywhere.prototype.hideLoadingMessage = function() {
- var div = document.getElementById("AA_" + this.id + "_loading_div");
- if (div != null)
- div.style.display = "none";
-
-}
-
-/**
-* This function is used to facilitatte AjaxAnywhere integration with existing projects/frameworks.
-* It substitutes default Form.sumbit().
-* The new implementation calls AjaxAnywhere.isFormSubmitByAjax() function to find out if the form
-* should be submitted in traditional way or by AjaxAnywhere.
-*/
-AjaxAnywhere.prototype.substituteFormSubmitFunction = function() {
- if (this.notSupported)
- return;
-
- this.bindById();
-
- var form = this.findForm();
-
- form.submit_old = form.submit;
- var code = "var ajax = AjaxAnywhere.findInstance(\"" + this.id + "\"); " +
- "if (typeof ajax !='object' || ! ajax.isFormSubmitByAjax() ) " +
- "ajax.findForm().submit_old();" +
- " else " +
- "ajax.submitAJAX();"
- form.submit = new Function(code);
-
-}
-/**
-* Substitutes the default behavior of <input type=submit|image> to submit the form via AjaxAnywhere.
-*
-* @param {boolean} indicates if existing onClick handlers should be preserved.
-* If keepExistingOnClickHandler==true,
-* Existing handler will be called first if it returns false, or if event.returnValue==false, AjaxAnywhere will not
-* continue form submission.
-* If keepExistingOnClickHandler==false or undefines, existing onClick event handlers will be replaced.
-*
-* @param {Array} list of submitButtons and submitImages names. If the parameter is omitted or undefined,
-* all elements will be processed
-*/
-AjaxAnywhere.prototype.substituteSubmitButtonsBehavior = function (keepExistingOnClickHandler, elements) {
- if (this.notSupported)
- return;
-
- var form = this.findForm();
- if (elements == null || typeof elements == "undefined") { // process all elements
- elements = new Array();
- for (var i = 0; i < form.elements.length; i++) {
- elements.push(form.elements[i]);
- }
-
- var inputs = document.getElementsByTagName("input");
- for (var i = 0; i < inputs.length; i++) {
- var input = inputs[i];
- if (input.type != null && typeof input.type != "undefined" &&
- input.type.toLowerCase() == "image" && input.form == form) {
- elements.push(input);
- }
- }
-
- for (var i = 0; i < elements.length; i++) {
- var el = elements[i];
- if (el.tagName.toLowerCase() == "input" && (el.type.toLowerCase() == "submit"
- || el.type.toLowerCase() == "image")) {
- this.substituteSubmitBehavior(el, keepExistingOnClickHandler);
-
- }
- }
- } else { //process only specified elements
- for (var i = 0; i < elements.length; i++) {
- var el = elements[i];
- if (el == null)
- continue;
-
- if (typeof el != "object")
- el = form.elements[el];
-
- if (typeof el != "undefined") {
- if (el.tagName.toLowerCase() == "input" && (el.type.toLowerCase() == "submit"
- || el.type.toLowerCase() == "image"))
- this.substituteSubmitBehavior(el, keepExistingOnClickHandler);
- }
- }
- }
-
-}
-/**
-* Performs a single element behavior substitution
-*
-* @private
-*/
-AjaxAnywhere.prototype.substituteSubmitBehavior = function (el, keepExistingOnClickHandler) {
-
- var inList = false;
- for (var i = 0; i < this.substitutedSubmitButtons.length; i++) {
- var btnName = this.substitutedSubmitButtons[i];
- if (btnName == el.name) {
- inList = true;
- break;
- }
- }
- if (!inList)
- this.substitutedSubmitButtons.push(el.name);
-
- this.substitutedSubmitButtonsInfo[el.name] = keepExistingOnClickHandler;
-
- if (keepExistingOnClickHandler && (typeof el.onclick != "undefined") && ( el.onclick != null) && ( el.onclick != "")) {
- el.AA_old_onclick = el.onclick;
- }
-
- el.onclick = handleSubmitButtonClick;
- el.ajaxAnywhereId = this.id;
-}
-
-/**
-*
-* @private
-*/
-AjaxAnywhere.prototype.restoreSubstitutedSubmitButtons = function() {
- if (this.substitutedSubmitButtons.length == 0)
- return;
-
- var form = this.findForm();
-
- for (var i = 0; i < this.substitutedSubmitButtons.length; i++) {
- var name = this.substitutedSubmitButtons[i];
- var el = form.elements[name];
- if (el != null && typeof el != "undefined") {
- if (el.onclick != handleSubmitButtonClick) {
- var keepExistingOnClickHandler = this.substitutedSubmitButtonsInfo[el.name];
- this.substituteSubmitBehavior(el, keepExistingOnClickHandler);
- }
- } else {
- //input type=image
- if (name != null && typeof name != "undefined" && name.length != 0) {
- var elements = document.getElementsByName(name);
- if (elements != null)
- for (var j = 0; j < elements.length; j++) {
- el = elements[j];
- if (el != null && typeof el != "undefined"
- && el.tagName.toLowerCase() == "input"
- && typeof el.type != "undefined" && el.type.toLowerCase() == "image") {
- if (el.onclick != handleSubmitButtonClick) {
- var keepExistingOnClickHandler = this.substitutedSubmitButtonsInfo[el.name];
- this.substituteSubmitBehavior(el, keepExistingOnClickHandler);
- }
- }
- }
- }
- }
- }
-}
-
-/**
-* @private
-*/
-function handleSubmitButtonClick(_event) {
-
- if (typeof this.AA_old_onclick != "undefined") {
- if (false == this.AA_old_onclick(_event))
- return false;
- if (typeof window.event != "undefined")
- if (window.event.returnValue == false)
- return false;
- }
- var onsubmit = this.form.onsubmit;
- if (typeof onsubmit == "function") {
- if (false == onsubmit(_event))
- return false;
- if (typeof window.event != "undefined")
- if (window.event.returnValue == false)
- return false;
- }
- AjaxAnywhere.findInstance(this.ajaxAnywhereId).submitAJAX('', this);
-
- return false;
-}
-/**
-* Override this function if you use AjaxAnywhere.substituteFormSubmitFunction() to
-* dynamically inform AjaxAnywhere of the method you want to use for the form submission.
-*/
-AjaxAnywhere.prototype.isFormSubmitByAjax = function () {
- return true;
-}
-
-/**
-* Some browsers (notably IE) do not load images from thier cache when content is updated using
-* innerHTML. As a result, each image is re-requested from the server even though the image exists
-* in the cache. To work around this issue, AjaxAnywhere preloads images present in the new content
-* and intrduces a brief dely (default of 100 milleseconds) before calling innerHTML.
-* See http://support.microsoft.com/default.aspx?scid=kb;en-us;319546 for further details.
-* This function can be used to change this behaviour.
-* @param (boolean) isDelay
-*/
-AjaxAnywhere.prototype.setDelayBeforeLoad = function (isDelay) {
- this.delayBeforeContentUpdate = isDelay;
-}
-
-/**
-* Returns the current delay behavior.
-*/
-AjaxAnywhere.prototype.isDelayBeforeLoad = function () {
- return this.delayBeforeContentUpdate;
-}
-
-/**
-* Sets the delay period in milliseconds. The default delay is 100 milliseconds.
-* @param (int) delayMillis
-*/
-AjaxAnywhere.prototype.setDelayTime = function (delayMillis) {
- this.delayInMillis = delayMillis;
-}
-
-/**
-* Returns the delay period in milliseconds.
-*/
-AjaxAnywhere.prototype.getDelayTime = function () {
- return this.delayInMillis;
-}
-
-/**
-* If an exception is throws on the server-side during AJAX request, it will be processed
-* by this function. The default implementation is alert(stackTrace);
-* Override it if you need.
-*/
-AjaxAnywhere.prototype.handleException = function(type, details) {
- alert(details);
-}
-/**
-* If an HTTP Error code returned during AJAX request, it will be processed
-* by this function. The default implementation is alert(code);
-* Override it if you need.
-*/
-AjaxAnywhere.prototype.handleHttpErrorCode = function(code) {
- var details = confirm("AjaxAnywhere default error handler. XMLHttpRequest HTTP Error code:" + code + " \n\n Would you like to view the response content in a new window?");
- if (details) {
- var win = window.open("", this.id + "_debug_window");
- if (win != null) {
- win.document.write("" + this.req.responseText);
- win.document.close();
- win.focus();
- } else {
- alert("Please, disable your pop-up blocker for this site first.");
- }
- }
-}
-
-/**
-* Override it if you need.
-*/
-AjaxAnywhere.prototype.handlePrevousRequestAborted = function() {
- alert("AjaxAnywhere default error handler. INFO: previous AJAX request dropped")
-}
-
-
-/**
-* If the HTML received in responce to AJAX request contains JavaScript that defines new
-* functions/variables, they must be propagated to the proper context. Override this method
-* to return the Array of function/variable names.
-*/
-AjaxAnywhere.prototype.getGlobalScriptsDeclarationsList = function(script) {
- return null;
-}
-
-/**
-* This function should be overridden by AjaxAnywhere user to implement client-side
-* determination of zones to reload.
-*
-* If the form is submited with <input type=submit|image>, submitButton is a reference to the DHTML object. Otherwise - undefined.
-*
-* @Returns a comma separated list of zones to reload, or "document.all" to reload
-* the whole page. Returns null if the request must be sent in traditional way
-*
-*/
-AjaxAnywhere.prototype.getZonesToReload = function(url, submitButton) {
- return this.getZonesToReaload();
- // backward compatibility only
-}
-/**
-* depreceted : wrond spelling : Reaload will be removed in later versions
-*/
-AjaxAnywhere.prototype.getZonesToReaload = function(url, submitButton) {
- return "";
-}
-
-/**
-* Override this method to implement a custom action
-*/
-AjaxAnywhere.prototype.onRequestSent = function () {
-};
-/**
-* Override this method to implement a custom action
-*/
-AjaxAnywhere.prototype.onBeforeResponseProcessing = function () {
-};
-/**
-* Override this method to implement a custom action
-*/
-AjaxAnywhere.prototype.onAfterResponseProcessing = function () {
-};
-
-/**
-* Provides a default implementation from graceful degradation for getAJAX()
-* calls location.href=url if XMLHttpRequest is unavailable, reloading the entire page .
-*/
-AjaxAnywhere.prototype.onGetAjaxNotSupported = function (url) {
- location.href = url;
- return false;
-};
-
-/**
-* Provides a default implementation from graceful degradation for submitAJAX()
-* calls form.submit() if XMLHttpRequest is unavailable, reloading the entire page
-*/
-AjaxAnywhere.prototype.onSubmitAjaxNotSupported = function (additionalPostData, submitButton) {
- var form = this.findForm();
-
- var actionAttrNode = form.attributes["action"].nodeValue;
- var url = actionAttrNode == null?null:actionAttrNode.nodeValue;
- var url_backup = url;
- if (typeof additionalPostData != 'undefined' && additionalPostData != null) {
- url += (url.indexOf("?") != -1) ? "&" : "?";
- url += additionalPostData;
- form.attributes["action"].nodeValue= url;
- // only POST method allows sending additional
- // date by altering form action URL.
- form.setAttribute("method", "post");
- }
-
- this.submitOld(form,submitButton);
-
- form.attributes["action"].nodeValue= url_backup;
- return false;
-};
-/**
-* submit the form in tradiditional way :
-* @private
-*/
-
-AjaxAnywhere.prototype.submitOld = function (form,submitButton){
- var submitHolder = null;
- if (submitButton!=null && typeof submitButton!="undefined"){
- submitHolder = document.createElement("input");
- submitHolder.setAttribute("type","hidden");
- submitHolder.setAttribute("name",submitButton.name);
- submitHolder.setAttribute("value",submitButton.value);
- form.appendChild(submitHolder);
-
- }
-
- if (typeof form.submit_old == "undefined")
- form.submit();
- else
- form.submit_old();
-
- if (submitButton!=null ){
- form.removeChild(submitHolder);
- }
-}
-
-// default instance.
-ajaxAnywhere = new AjaxAnywhere();
-ajaxAnywhere.bindById();
\ No newline at end of file
|