Update for web client

This commit is contained in:
rob_k 2007-06-11 03:39:45 +00:00
parent 174b6cfc05
commit aa5a2787ff
78 changed files with 5463 additions and 398 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1017 B

After

Width:  |  Height:  |  Size: 766 B

View File

@ -0,0 +1,157 @@
<!--
Title: Tigra Calendar
URL: http://www.softcomplex.com/products/tigra_calendar/
Version: 3.2
Date: 05/18/2006
Feedback: feedback@softcomplex.com (specify product title in the subject)
Note: Permission given to use this script in ANY kind of applications if
header lines are left unchanged.
Note: Script consists of two files: calendar?.js and calendar.html
About us: Our company provides offshore IT consulting services.
Contact us at sales@softcomplex.com if you have any programming task you
want to be handled by professionals. Our typical hourly rate is $20.
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Select Date, Please.</title>
<style>
td {font-family: Tahoma, Verdana, sans-serif; font-size: 12px;}
</style>
<script language="JavaScript">
// months as they appear in the calendar's title
var ARR_MONTHS = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];
// week day titles as they appear on the calendar
var ARR_WEEKDAYS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
// day week starts from (normally 0-Su or 1-Mo)
var NUM_WEEKSTART = 1;
// path to the directory where calendar images are stored. trailing slash req.
var STR_ICONPATH = 'img/';
var re_url = new RegExp('datetime=(\\-?\\d+)');
var dt_current = (re_url.exec(String(window.location))
? new Date(new Number(RegExp.$1)) : new Date());
var re_id = new RegExp('id=(\\d+)');
var num_id = (re_id.exec(String(window.location))
? new Number(RegExp.$1) : 0);
var obj_caller = (window.opener ? window.opener.calendars[num_id] : null);
if (obj_caller && obj_caller.year_scroll) {
// get same date in the previous year
var dt_prev_year = new Date(dt_current);
dt_prev_year.setFullYear(dt_prev_year.getFullYear() - 1);
if (dt_prev_year.getDate() != dt_current.getDate())
dt_prev_year.setDate(0);
// get same date in the next year
var dt_next_year = new Date(dt_current);
dt_next_year.setFullYear(dt_next_year.getFullYear() + 1);
if (dt_next_year.getDate() != dt_current.getDate())
dt_next_year.setDate(0);
}
// get same date in the previous month
var dt_prev_month = new Date(dt_current);
dt_prev_month.setMonth(dt_prev_month.getMonth() - 1);
if (dt_prev_month.getDate() != dt_current.getDate())
dt_prev_month.setDate(0);
// get same date in the next month
var dt_next_month = new Date(dt_current);
dt_next_month.setMonth(dt_next_month.getMonth() + 1);
if (dt_next_month.getDate() != dt_current.getDate())
dt_next_month.setDate(0);
// get first day to display in the grid for current month
var dt_firstday = new Date(dt_current);
dt_firstday.setDate(1);
dt_firstday.setDate(1 - (7 + dt_firstday.getDay() - NUM_WEEKSTART) % 7);
// function passing selected date to calling window
function set_datetime(n_datetime, b_close) {
if (!obj_caller) return;
var dt_datetime = obj_caller.prs_time(
(document.cal ? document.cal.time.value : ''),
new Date(n_datetime)
);
if (!dt_datetime) return;
if (b_close) {
obj_caller.target.value = (document.cal
? obj_caller.gen_tsmp(dt_datetime)
: obj_caller.gen_date(dt_datetime)
);window.close();
}
else obj_caller.popup(dt_datetime.valueOf());
}
</script>
</head>
<body bgcolor="#FFFFFF" marginheight="5" marginwidth="5" topmargin="5" leftmargin="5" rightmargin="5">
<table class="clsOTable" cellspacing="0" border="0" width="100%">
<tr><td bgcolor="#4682B4">
<table cellspacing="1" cellpadding="3" border="0" width="100%">
<tr><td colspan="7"><table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<script language="JavaScript">
document.write(
'<td>'+(obj_caller&&obj_caller.year_scroll?'<a href="javascript:set_datetime('+dt_prev_year.valueOf()+')"><img src="'+STR_ICONPATH+'prev_year.gif" width="16" height="16" border="0" alt="previous year"></a>&nbsp;':'')+'<a href="javascript:set_datetime('+dt_prev_month.valueOf()+')"><img src="'+STR_ICONPATH+'prev.gif" width="16" height="16" border="0" alt="previous month"></a></td>'+
'<td align="center" width="100%"><font color="#ffffff">'+ARR_MONTHS[dt_current.getMonth()]+' '+dt_current.getFullYear() + '</font></td>'+
'<td><a href="javascript:set_datetime('+dt_next_month.valueOf()+')"><img src="'+STR_ICONPATH+'next.gif" width="16" height="16" border="0" alt="next month"></a>'+(obj_caller && obj_caller.year_scroll?'&nbsp;<a href="javascript:set_datetime('+dt_next_year.valueOf()+')"><img src="'+STR_ICONPATH+'next_year.gif" width="16" height="16" border="0" alt="next year"></a>':'')+'</td>'
);
</script>
</tr>
</table></td></tr>
<tr>
<script language="JavaScript">
// print weekdays titles
for (var n=0; n<7; n++)
document.write('<td bgcolor="#87cefa" align="center"><font color="#ffffff">'+ARR_WEEKDAYS[(NUM_WEEKSTART+n)%7]+'</font></td>');
document.write('</tr>');
// print calendar table
var dt_current_day = new Date(dt_firstday);
while (dt_current_day.getMonth() == dt_current.getMonth() ||
dt_current_day.getMonth() == dt_firstday.getMonth()) {
// print row heder
document.write('<tr>');
for (var n_current_wday=0; n_current_wday<7; n_current_wday++) {
if (dt_current_day.getDate() == dt_current.getDate() &&
dt_current_day.getMonth() == dt_current.getMonth())
// print current date
document.write('<td bgcolor="#ffb6c1" align="center" width="14%">');
else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6)
// weekend days
document.write('<td bgcolor="#dbeaf5" align="center" width="14%">');
else
// print working days of current month
document.write('<td bgcolor="#ffffff" align="center" width="14%">');
document.write('<a href="javascript:set_datetime('+dt_current_day.valueOf() +', true);">');
if (dt_current_day.getMonth() == this.dt_current.getMonth())
// print days of current month
document.write('<font color="#000000">');
else
// print days of other months
document.write('<font color="#606060">');
document.write(dt_current_day.getDate()+'</font></a></td>');
dt_current_day.setDate(dt_current_day.getDate()+1);
}
// print row footer
document.write('</tr>');
}
if (obj_caller && obj_caller.time_comp)
document.write('<form onsubmit="javascript:set_datetime('+dt_current.valueOf()+', true)" name="cal"><tr><td colspan="7" bgcolor="#87CEFA"><font color="White" face="tahoma, verdana" size="2">Time: <input type="text" name="time" value="'+obj_caller.gen_time(this.dt_current)+'" size="8" maxlength="8"></font></td></tr></form>');
</script>
</table></tr></td>
</table>
</body>
</html>

View File

@ -0,0 +1,232 @@
/* The main calendar widget. DIV containing a table. */
div.calendar { position: relative; }
.calendar, .calendar table {
border: 1px solid #556;
font-size: 11px;
color: #000;
cursor: default;
background: #eef;
font-family: tahoma,verdana,sans-serif;
}
/* Header part -- contains navigation buttons and day names. */
.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
text-align: center; /* They are the navigation buttons */
padding: 2px; /* Make the buttons seem like they're pressing */
}
.calendar .nav {
background: #778 url(/adempiere/images/menuarrow.gif) no-repeat 100% 100%;
}
.calendar thead .title { /* This holds the current "month, year" */
font-weight: bold; /* Pressing it will take you to the current date */
text-align: center;
background: #fff;
color: #000;
padding: 2px;
}
.calendar thead .headrow { /* Row <TR> containing navigation buttons */
background: #778;
color: #fff;
}
.calendar thead .daynames { /* Row <TR> containing the day names */
background: #bdf;
}
.calendar thead .name { /* Cells <TD> containing the day names */
border-bottom: 1px solid #556;
padding: 2px;
text-align: center;
color: #000;
}
.calendar thead .weekend { /* How a weekend day name shows in header */
color: #a66;
}
.calendar thead .hilite { /* How do the buttons in header appear when hover */
background-color: #aaf;
color: #000;
border: 1px solid #04f;
padding: 1px;
}
.calendar thead .active { /* Active (pressed) buttons in header */
background-color: #77c;
padding: 2px 0px 0px 2px;
}
/* The body part -- contains all the days in month. */
.calendar tbody .day { /* Cells <TD> containing month days dates */
width: 2em;
color: #456;
text-align: right;
padding: 2px 4px 2px 2px;
}
.calendar tbody .day.othermonth {
font-size: 80%;
color: #bbb;
}
.calendar tbody .day.othermonth.oweekend {
color: #fbb;
}
.calendar table .wn {
padding: 2px 3px 2px 2px;
border-right: 1px solid #000;
background: #bdf;
}
.calendar tbody .rowhilite td {
background: #def;
}
.calendar tbody .rowhilite td.wn {
background: #eef;
}
.calendar tbody td.hilite { /* Hovered cells <TD> */
background: #def;
padding: 1px 3px 1px 1px;
border: 1px solid #bbb;
}
.calendar tbody td.active { /* Active (pressed) cells <TD> */
background: #cde;
padding: 2px 2px 0px 2px;
}
.calendar tbody td.selected { /* Cell showing today date */
font-weight: bold;
border: 1px solid #000;
padding: 1px 3px 1px 1px;
background: #fff;
color: #000;
}
.calendar tbody td.weekend { /* Cells showing weekend days */
color: #a66;
}
.calendar tbody td.today { /* Cell showing selected date */
font-weight: bold;
color: #00f;
}
.calendar tbody .disabled { color: #999; }
.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
visibility: hidden;
}
.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
display: none;
}
/* The footer part -- status bar and "Close" button */
.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
text-align: center;
background: #556;
color: #fff;
}
.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
background: #fff;
color: #445;
border-top: 1px solid #556;
padding: 1px;
}
.calendar tfoot .hilite { /* Hover style for buttons in footer */
background: #aaf;
border: 1px solid #04f;
color: #000;
padding: 1px;
}
.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
background: #77c;
padding: 2px 0px 0px 2px;
}
/* Combo boxes (menus that display months/years for direct selection) */
.calendar .combo {
position: absolute;
display: none;
top: 0px;
left: 0px;
width: 4em;
cursor: default;
border: 1px solid #655;
background: #def;
color: #000;
font-size: 90%;
z-index: 100;
}
.calendar .combo .label,
.calendar .combo .label-IEfix {
text-align: center;
padding: 1px;
}
.calendar .combo .label-IEfix {
width: 4em;
}
.calendar .combo .hilite {
background: #acf;
}
.calendar .combo .active {
border-top: 1px solid #46a;
border-bottom: 1px solid #46a;
background: #eef;
font-weight: bold;
}
.calendar td.time {
border-top: 1px solid #000;
padding: 1px 0px;
text-align: center;
background-color: #f4f0e8;
}
.calendar td.time .hour,
.calendar td.time .minute,
.calendar td.time .ampm {
padding: 0px 3px 0px 4px;
border: 1px solid #889;
font-weight: bold;
background-color: #fff;
}
.calendar td.time .ampm {
text-align: center;
}
.calendar td.time .colon {
padding: 0px 2px 0px 3px;
font-weight: bold;
}
.calendar td.time span.hilite {
border-color: #000;
background-color: #667;
color: #fff;
}
.calendar td.time span.active {
border-color: #f00;
background-color: #000;
color: #0f0;
}

View File

@ -1,53 +1,54 @@
/* Adempiere (c) JJanke Modified by moyses */
/* Compiere (c) Jorg Janke */
/* $Id: menu.css,v 1.1 2006/04/21 18:03:35 jjanke Exp $ */
body {
background-color: #fbf8f1;
/* Manu #F4FCFF; */
background-color: #FFFFFF;
color: #000000;
font-size: 12px;
}
cite {
display: block;
font-size: 10px;
padding-bottom: 0px;
padding-top: 0px;
}
li {
font-weight: normal;
font-size: 12px;
margin-left: 0px;
padding-left: 5px;
cursor: pointer;
li{
margin-left:10px;
padding-left:5px;
}
ul{
padding: 0;
margin: 0 0 0 5px;
text-indent: -10px;
}
td {
font-size: 12px;
}
ul {
margin-left:15px;
font-size: 10px;
}
.menuTable {
border-left: none;
border-right: none;
margin: 0px;
padding: 2px;
margin: 0px 0px 0px 0px;
padding: 0px 0px 0px 0px;
}
.menuHeader {
border-top: none;
background-color : #C9D9F5;
padding:10px 10px 10px 10px;
border-bottom: 0px solid #000000;
}
.menuCenter {
border-bottom: 1px solid #000000;
border-top: 1px solid #000000;
width: 100%;
background-color : #FFFFFF;
border: none;
padding:0px 0px 0px 15px;
border-top: 1px solid #003FAF;
border-bottom: 1px solid #003FAF;
margin: 0px 0px 0px 0px;
}
.menuFooter {
border-bottom: none;
background-color : #C9D9F5;
padding:5px 5px 5px 5px;
}
@ -73,6 +74,6 @@ ul {
.menuSummary {
font-weight: bold; /* Menu Closed */
list-style-image: url(images/mClosed.gif);
list-style-image: url(/adempiere/images/mClosed.gif);
list-style-type: square;
}

View File

@ -0,0 +1,23 @@
/* Put this inside a @media qualifier so Netscape 4 ignores it */
@media screen, print {
/* Turn off list bullets */
ul.mktree li { list-style: none; }
/* Control how "spaced out" the tree is */
ul.mktree, ul.mktree ul , ul.mktree li { margin-left:10px; padding:0px; }
/* Provide space for our own "bullet" inside the LI */
ul.mktree li .bullet { padding-left: 15px; }
/* Show "bullets" in the links, depending on the class of the LI that the link's in */
ul.mktree li.liOpen .bullet { cursor: pointer; background: url(minus.gif) center left no-repeat; }
ul.mktree li.liClosed .bullet { cursor: pointer; background: url(plus.gif) center left no-repeat; }
ul.mktree li.liBullet .bullet { cursor: default; background: url(bullet.gif) center left no-repeat; }
/* Sublists are visible or not based on class of parent LI */
ul.mktree li.liOpen ul { display: block; }
ul.mktree li.liClosed ul { display: none; }
/* Format menu items differently depending on what level of the tree they are in */
/* Uncomment this if you want your fonts to decrease in size the deeper they are in the tree */
/*
ul.mktree li ul li { font-size: 90% }
*/
}

View File

@ -0,0 +1,49 @@
/* Compiere HTML UI (c) Jorg Janke */
/* $Id: popup.css,v 1.1 2006/04/21 18:03:35 jjanke Exp $ */
h1 {
color: #003FAF;
font-size: 16px !important;
margin-bottom: 10px;
margin-top: 0;
}
th {
font-size: 10px;
background-color: #D7E2F8;
font-weight: bold;
color: black;
}
td {
font-size: 10px;
color: black;
}
.Cerror{
background: #FF4A4A;
}
.Cmandatory{
background: #9DFFFF;
}
.popupTable {
border-left: none;
border-right: none;
margin: 0px;
padding: 2px;
}
.popupHeader {
border-top: none;
}
.popupCenter {
border-bottom: 1px solid #000000;
border-top: 1px solid #000000;
}
.popupFooter {
border-bottom: none;
}

View File

@ -1,4 +1,4 @@
/* Adempiere HTML UI (c) Jorg Janke */
/* Compiere HTML UI (c) Jorg Janke */
/* $Id: standard.css,v 1.1 2006/04/21 18:03:35 jjanke Exp $ */
a {
@ -11,14 +11,24 @@ a:hover {
}
body {
font-family: arial, helvetica, sans-serif;
font-size: 12px;
margin-left: 0;
margin-top: 0;
margin-top:0px;
margin-right:0px;
margin-left:0px;
margin-bottom:0px;
padding-top: 0px;
padding-right: 0px;
padding-left: 0px;
padding-bottom: 0px;
font-family: Arial, verdana;
font-size: 8pt;
font-weight: normal;
COLOR: #000000;
background-color : white;
;
}
h1 {
color: #FF0000;
color: #003FAF;
font-size: 16px !important;
margin-bottom: 10px;
margin-top: 0;
@ -61,9 +71,19 @@ hr {
padding-top: 0;
}
th {
background-color: #E6E6FA;
text-align: left;
th {
font-size: 10px;
background-color: #C9D9F5;
font-weight: bold;
color: black;
border: 0px;
}
td {
font-size: 10px;
color: black;
border: 0px;
}
p {

View File

@ -0,0 +1,134 @@
/* Striping */
tr.alternate {
background-color:#E3ECFC;;
}
/* Sorting */
th.table-sortable {
cursor:pointer;
background-image:url("/adempiere/images/01_unsorted.gif");
background-position:center left;
background-repeat:no-repeat;
padding-left:12px;
}
th.table-sorted-asc {
background-image:url("/adempiere/images/01_ascending.gif");
background-position:center left;
background-repeat:no-repeat;
}
th.table-sorted-desc {
background-image:url("/adempiere/images/01_descending.gif");
background-position:center left;
background-repeat:no-repeat;
}
th.table-filtered {
background-image:url("/adempiere/filter.gif");
background-position:center left;
background-repeat:no-repeat;
}
select.table-autofilter {
font-size:smaller;
}
/* Examples which stray from the default */
table.altstripe tr.alternate2 {
background-color:#ccffff;
}
/* Sort Icon Styles */
table.sort01 th.table-sortable { background-image:url("01_unsorted.gif"); }
table.sort01 th.table-sorted-asc { background-image:url("01_ascending.gif"); }
table.sort01 th.table-sorted-desc { background-image:url("01_descending.gif"); }
table.sort02 th.table-sortable { background-image:none; padding-left:16px; }
table.sort02 th.table-sorted-asc { background-image:url("02_ascending.gif"); }
table.sort02 th.table-sorted-desc { background-image:url("02_descending.gif"); }
table.sort03 th.table-sortable { background-image:none; }
table.sort03 th.table-sorted-asc { background-image:url("03_ascending.gif"); }
table.sort03 th.table-sorted-desc { background-image:url("03_descending.gif"); }
table.sort04 th.table-sortable { background-image:none; }
table.sort04 th.table-sorted-asc { background-image:url("04_ascending.gif"); }
table.sort04 th.table-sorted-desc { background-image:url("04_descending.gif"); }
table.sort05 th.table-sortable { background-image:url("05_unsorted.gif"); padding-left:16px;}
table.sort05 th.table-sorted-asc { background-image:url("05_ascending.gif"); }
table.sort05 th.table-sorted-desc { background-image:url("05_descending.gif"); }
table.sort06 th.table-sortable { background-image:none; padding-left:16px;}
table.sort06 th.table-sorted-asc { background-image:url("06_ascending.gif"); }
table.sort06 th.table-sorted-desc { background-image:url("06_descending.gif"); }
table.sort07 th.table-sortable { background-image:none; }
table.sort07 th.table-sorted-asc { background-image:url("07_ascending.gif"); }
table.sort07 th.table-sorted-desc { background-image:url("07_descending.gif"); }
table.sort08 th.table-sortable { background-image:none; }
table.sort08 th.table-sorted-asc { background-image:url("08_ascending.gif"); }
table.sort08 th.table-sorted-desc { background-image:url("08_descending.gif"); }
table.sort09 th.table-sortable { background-image:none; padding-left:30px;}
table.sort09 th.table-sorted-asc { background-image:url("09_ascending.gif"); }
table.sort09 th.table-sorted-desc { background-image:url("09_descending.gif"); }
table.sort10 th.table-sortable { background-image:url("10_unsorted.gif"); }
table.sort10 th.table-sorted-asc { background-image:url("10_ascending.gif"); }
table.sort10 th.table-sorted-desc { background-image:url("10_descending.gif"); }
table.sort11 th.table-sortable { background-image:url("11_unsorted.gif");padding-left:24px; }
table.sort11 th.table-sorted-asc { background-image:url("11_ascending.gif"); }
table.sort11 th.table-sorted-desc { background-image:url("11_descending.gif"); }
table.sort12 th.table-sortable { background-image:none; }
table.sort12 th.table-sorted-asc { background-image:url("12_ascending.gif"); }
table.sort12 th.table-sorted-desc { background-image:url("12_descending.gif"); }
table.sort13 th.table-sortable { background-image:none; }
table.sort13 th.table-sorted-asc { background-image:url("13_ascending.gif"); }
table.sort13 th.table-sorted-desc { background-image:url("13_descending.gif"); }
table.sort14 th.table-sortable { background-image:none; }
table.sort14 th.table-sorted-asc { background-image:url("14_ascending.gif"); }
table.sort14 th.table-sorted-desc { background-image:url("14_descending.gif"); }
table.sort15 th.table-sortable { background-image:none; }
table.sort15 th.table-sorted-asc { background-image:url("15_ascending.gif"); }
table.sort15 th.table-sorted-desc { background-image:url("15_descending.gif"); }
table.sort16 th.table-sortable { background-image:none; }
table.sort16 th.table-sorted-asc { background-image:url("16_ascending.gif"); }
table.sort16 th.table-sorted-desc { background-image:url("16_descending.gif"); }
table.sort17 th.table-sortable { background-image:none; }
table.sort17 th.table-sorted-asc { background-image:url("17_ascending.gif"); }
table.sort17 th.table-sorted-desc { background-image:url("17_descending.gif"); }
table.sort18 th.table-sortable { background-image:url("18_unsorted.gif"); }
table.sort18 th.table-sorted-asc { background-image:url("18_ascending.gif"); }
table.sort18 th.table-sorted-desc { background-image:url("18_descending.gif"); }
table.sort19 th.table-sortable { background-image:url("19_unsorted.gif");padding-left:24px; }
table.sort19 th.table-sorted-asc { background-image:url("19_ascending.gif"); }
table.sort19 th.table-sorted-desc { background-image:url("19_descending.gif"); }
/* Icons box */
.iconset {
margin:5px;
border:1px solid #cccccc;
border-color:#cccccc #666666 #666666 #cccccc;
text-align:center;
cursor:pointer;
width:100px;
}
.iconset img {
margin:3px;
}
/* Documentation */
tr.doc_section {
font-weight:bold;
text-align:center;
background-color:#dddddd;
}

View File

@ -0,0 +1,236 @@
/* Distributed as part of The Coolest DHTML Calendar
Author: Mihai Bazon, www.bazon.net/mishoo
Copyright Dynarch.com 2005, www.dynarch.com
*/
/* The main calendar widget. DIV containing a table. */
div.calendar { position: relative; }
.calendar, .calendar table {
border: 1px solid #bdb2bf;
font-size: 11px;
color: #000;
cursor: default;
background: url("/adempiere/images/normal-bg.gif");
font-family: "trebuchet ms",verdana,tahoma,sans-serif;
}
.calendar {
border-color: #797979;
}
/* Header part -- contains navigation buttons and day names. */
.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
text-align: center; /* They are the navigation buttons */
padding: 2px; /* Make the buttons seem like they're pressing */
background: url("/adempiere/images/title-bg.gif") repeat-x 0 100%; color: #000;
font-weight: bold;
}
.calendar .nav {
font-family: verdana,tahoma,sans-serif;
}
.calendar .nav div {
background: transparent url("/adempiere/images/menuarrow.gif") no-repeat 100% 100%;
}
.calendar thead tr { background: url("/adempiere/images/title-bg.gif") repeat-x 0 100%; color: #000; }
.calendar thead .title { /* This holds the current "month, year" */
font-weight: bold; /* Pressing it will take you to the current date */
text-align: center;
padding: 2px;
background: url("/adempiere/images/title-bg.gif") repeat-x 0 100%; color: #000;
}
.calendar thead .headrow { /* Row <TR> containing navigation buttons */
}
.calendar thead .name { /* Cells <TD> containing the day names */
border-bottom: 1px solid #797979;
padding: 2px;
text-align: center;
color: #000;
}
.calendar thead .weekend { /* How a weekend day name shows in header */
color: #c44;
}
.calendar thead .hilite { /* How do the buttons in header appear when hover */
background: url("/adempiere/images/hover-bg.gif");
border-bottom: 1px solid #797979;
padding: 2px 2px 1px 2px;
}
.calendar thead .active { /* Active (pressed) buttons in header */
background: url("/adempiere/images/active-bg.gif"); color: #fff;
padding: 3px 1px 0px 3px;
border-bottom: 1px solid #797979;
}
.calendar thead .daynames { /* Row <TR> containing the day names */
background: url("/adempiere/images/dark-bg.gif");
}
/* The body part -- contains all the days in month. */
.calendar tbody .day { /* Cells <TD> containing month days dates */
font-family: verdana,tahoma,sans-serif;
width: 2em;
color: #000;
text-align: right;
padding: 2px 4px 2px 2px;
}
.calendar tbody .day.othermonth {
font-size: 80%;
color: #999;
}
.calendar tbody .day.othermonth.oweekend {
color: #f99;
}
.calendar table .wn {
padding: 2px 3px 2px 2px;
border-right: 1px solid #797979;
background: url("/adempiere/images/dark-bg.gif");
}
.calendar tbody .rowhilite td,
.calendar tbody .rowhilite td.wn {
background: url("/adempiere/images/rowhover-bg.gif");
}
.calendar tbody td.today { font-weight: bold; /* background: url("/adempiere/images/today-bg.gif") no-repeat 70% 50%; */ }
.calendar tbody td.hilite { /* Hovered cells <TD> */
background: url("/adempiere/images/hover-bg.gif");
padding: 1px 3px 1px 1px;
border: 1px solid #bbb;
}
.calendar tbody td.active { /* Active (pressed) cells <TD> */
padding: 2px 2px 0px 2px;
}
.calendar tbody td.weekend { /* Cells showing weekend days */
color: #c44;
}
.calendar tbody td.selected { /* Cell showing selected date */
font-weight: bold;
border: 1px solid #797979;
padding: 1px 3px 1px 1px;
background: url("/adempiere/images/active-bg.gif"); color: #fff;
}
.calendar tbody .disabled { color: #999; }
.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
visibility: hidden;
}
.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
display: none;
}
/* The footer part -- status bar and "Close" button */
.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
text-align: center;
background: #565;
color: #fff;
}
.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
padding: 2px;
background: url("/adempiere/images/status-bg.gif") repeat-x 0 0; color: #000;
}
.calendar tfoot .hilite { /* Hover style for buttons in footer */
background: #afa;
border: 1px solid #084;
color: #000;
padding: 1px;
}
.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
background: #7c7;
padding: 2px 0px 0px 2px;
}
/* Combo boxes (menus that display months/years for direct selection) */
.calendar .combo {
position: absolute;
display: none;
top: 0px;
left: 0px;
width: 4em;
cursor: default;
border-width: 0 1px 1px 1px;
border-style: solid;
border-color: #797979;
background: url("/adempiere/images/normal-bg.gif"); color: #000;
z-index: 100;
font-size: 90%;
}
.calendar .combo .label,
.calendar .combo .label-IEfix {
text-align: center;
padding: 1px;
}
.calendar .combo .label-IEfix {
width: 4em;
}
.calendar .combo .hilite {
background: url("/adempiere/images/hover-bg.gif"); color: #000;
}
.calendar .combo .active {
background: url("/adempiere/images/active-bg.gif"); color: #fff;
font-weight: bold;
}
.calendar td.time {
border-top: 1px solid #797979;
padding: 1px 0px;
text-align: center;
background: url("/adempiere/images/dark-bg.gif");
}
.calendar td.time .hour,
.calendar td.time .minute,
.calendar td.time .ampm {
padding: 0px 5px 0px 6px;
font-weight: bold;
background: url("/adempiere/images/normal-bg.gif"); color: #000;
}
.calendar td.time .hour,
.calendar td.time .minute {
font-family: monospace;
}
.calendar td.time .ampm {
text-align: center;
}
.calendar td.time .colon {
padding: 0px 2px 0px 3px;
font-weight: bold;
}
.calendar td.time span.hilite {
background: url("/adempiere/images/hover-bg.gif"); color: #000;
}
.calendar td.time span.active {
background: url("/adempiere/images/active-bg.gif"); color: #fff;
}

View File

@ -0,0 +1,184 @@
/* Compiere HTML UI (c) Jorg Janke */
/* $Id: window.css,v 1.1 2006/04/21 18:03:35 jjanke Exp $ */
body {
/* Manu #F4FCFF; */
background-color: #FFFFFF;
color: #000000;
font-size: 10px;
}
input {
background-color: #FFFFFF;
font-size: 8pt;
font-family: verdana, arial;
border: solid gray 1px;
}
textarea {
background: #FFFFFF;
font-size: 8pt;
font-family: verdana, arial;
border: solid gray 1px;
}
select {
background: #FFFFFF;
font-size: 8pt;
font-family: verdana, arial;
border-bottom-style: groove;
border-bottom-color: Gray;
border-bottom-width: thin;
border-left-color: Gray;
border-left-style: groove;
border-left-width: thin;
border-right-color: Gray;
border-right-style: groove;
border-right-width: thin;
border-top-color: Gray;
border-top-style: groove;
border-top-width: thin;
}
td {
font-size: 10px;
}
.loginbtn {
width: 75px;
cursor:pointer;
margin-top:5px;
border:outset 2px #ccc;
background:url(/adempiere/images/Ok16.gif) no-repeat left;
background-color:#ffffff;
}
.cancelbtn {
width: 75px;
cursor:pointer;
margin-top:5px;
border:outset 2px #ccc;
background:url(/adempiere/images/Cancel16.gif) no-repeat left;
background-color:#ffffff;
}
.submitbtn {
cursor:pointer;
margin-top:5px;
border:outset 2px #ccc;
background:url(/adempiere/images/Ok16.gif) no-repeat left;
background-color:#ffffff;
}
.closebtn {
cursor:pointer;
margin-top:5px;
border:outset 2px #ccc;
background:url(/adempiere/images/Cancel16.gif) no-repeat left;
background-color:#ffffff;
}
.processbtn {
cursor:pointer;
margin-top:5px;
border:outset 2px #ccc;
background:url(/adempiere/images/Process16.gif) no-repeat left;
background-color:#ffffff;
}
.resetbtn {
cursor:pointer;
margin-top:5px;
border:outset 2px #ccc;
background:url(/adempiere/images/Ignore16.gif) no-repeat left;
background-color:#ffffff;
}
.Cerror {
background: #FF4A4A;
}
.Cmandatory {
background: #fdf5dd;
}
#tab {
float:left;
/*background:url(/adempiere/images/tab-left-selected.gif) no-repeat left top;*/
margin:0;
font-size: 11px;
padding:0px 0px 0px 9px;
text-decoration:none;
}
#tab span {
float:left;
display:block;
/*background:url(/adempiere/images/tab-right-selected.gif) no-repeat right top;*/
padding:5px 9px 5px 0px;
font-size: 11px;
font-weight:bold;
color:black;
}
#tab a:hover span {
color: red;
}
#tabSelected {
float:left;
/*background:url(/adempiere/images/tab-left.gif) no-repeat left top;*/
margin:0;
font-size: 11px;
padding:0px 0px 0px 9px;
color: red;
}
#tabSelected span {
float:left;
display:block;
/*background:url(/adempiere/images/tab-right.gif) no-repeat right top;*/
padding:5px 9px 5px 0px;
font-size: 11px;
font-weight:bold;
color: red;
}
td.toolbar {
border : 0px solid #000000;
padding:5px 5px 5px 5px;
background-color : #85A6E3;
border-top: 1px solid #003FAF;
border-bottom: 1px solid #003FAF;
text-align: left;
text-indent : 0;
}
.windowHeader {
background-color : #C9D9F5;
padding:5px 5px 0px 5px;
border-bottom: 0px solid #000000;
}
.windowCenter {
background-color : #FFFFFF;
border: 0px solid #000000;
padding:5px 5px 0px 0px;
}
.centerTable {
width: 100%;
background-color : #E3ECFC;
border: none;
padding:5px 5px 5px 5px;
border-top: 1px solid #003FAF;
border-bottom: 1px solid #003FAF;
margin: 0px 0px 0px 0px;
}
.windowFooter {
border-bottom: 1px solid #000000;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@ -0,0 +1,469 @@
// ===================================================================
// Author: Matt Kruse <matt@mattkruse.com>
// WWW: http://www.mattkruse.com/
//
// NOTICE: You may use this code for any purpose, commercial or
// private, without any further permission from the author. You may
// remove this notice from your final code if you wish, however it is
// appreciated by the author if at least my web site address is kept.
//
// You may *NOT* re-distribute this code in any way except through its
// use. That means, you can include it in your product, or your web
// site, or any other form where the code is actually being used. You
// may not put the plain javascript up on your site for download or
// include it in your javascript libraries for download.
// If you wish to share this code with others, please just point them
// to the URL instead.
// Please DO NOT link directly to my .js files from your site. Copy
// the files to your server and use them there. Thank you.
// ===================================================================
/* SOURCE FILE: AnchorPosition.js */
/*
AnchorPosition.js
Author: Matt Kruse
Last modified: 10/11/02
DESCRIPTION: These functions find the position of an <A> tag in a document,
so other elements can be positioned relative to it.
COMPATABILITY: Netscape 4.x,6.x,Mozilla, IE 5.x,6.x on Windows. Some small
positioning errors - usually with Window positioning - occur on the
Macintosh platform.
FUNCTIONS:
getAnchorPosition(anchorname)
Returns an Object() having .x and .y properties of the pixel coordinates
of the upper-left corner of the anchor. Position is relative to the PAGE.
getAnchorWindowPosition(anchorname)
Returns an Object() having .x and .y properties of the pixel coordinates
of the upper-left corner of the anchor, relative to the WHOLE SCREEN.
NOTES:
1) For popping up separate browser windows, use getAnchorWindowPosition.
Otherwise, use getAnchorPosition
2) Your anchor tag MUST contain both NAME and ID attributes which are the
same. For example:
<A NAME="test" ID="test"> </A>
3) There must be at least a space between <A> </A> for IE5.5 to see the
anchor tag correctly. Do not do <A></A> with no space.
*/
// getAnchorPosition(anchorname)
// This function returns an object having .x and .y properties which are the coordinates
// of the named anchor, relative to the page.
function getAnchorPosition(anchorname) {
// This function will return an Object with x and y properties
var useWindow=false;
var coordinates=new Object();
var x=0,y=0;
// Browser capability sniffing
var use_gebi=false, use_css=false, use_layers=false;
if (document.getElementById) { use_gebi=true; }
else if (document.all) { use_css=true; }
else if (document.layers) { use_layers=true; }
// Logic to find position
if (use_gebi && document.all) {
x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
}
else if (use_gebi) {
var o=document.getElementById(anchorname);
x=AnchorPosition_getPageOffsetLeft(o);
y=AnchorPosition_getPageOffsetTop(o);
}
else if (use_css) {
x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
}
else if (use_layers) {
var found=0;
for (var i=0; i<document.anchors.length; i++) {
if (document.anchors[i].name==anchorname) { found=1; break; }
}
if (found==0) {
coordinates.x=0; coordinates.y=0; return coordinates;
}
x=document.anchors[i].x;
y=document.anchors[i].y;
}
else {
coordinates.x=0; coordinates.y=0; return coordinates;
}
coordinates.x=x;
coordinates.y=y;
return coordinates;
}
// getAnchorWindowPosition(anchorname)
// This function returns an object having .x and .y properties which are the coordinates
// of the named anchor, relative to the window
function getAnchorWindowPosition(anchorname) {
var coordinates=getAnchorPosition(anchorname);
var x=0;
var y=0;
if (document.getElementById) {
if (isNaN(window.screenX)) {
x=coordinates.x-document.body.scrollLeft+window.screenLeft;
y=coordinates.y-document.body.scrollTop+window.screenTop;
}
else {
x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
}
}
else if (document.all) {
x=coordinates.x-document.body.scrollLeft+window.screenLeft;
y=coordinates.y-document.body.scrollTop+window.screenTop;
}
else if (document.layers) {
x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
}
coordinates.x=x;
coordinates.y=y;
return coordinates;
}
// Functions for IE to get position of an object
function AnchorPosition_getPageOffsetLeft (el) {
var ol=el.offsetLeft;
while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
return ol;
}
function AnchorPosition_getWindowOffsetLeft (el) {
return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
}
function AnchorPosition_getPageOffsetTop (el) {
var ot=el.offsetTop;
while((el=el.offsetParent) != null) { ot += el.offsetTop; }
return ot;
}
function AnchorPosition_getWindowOffsetTop (el) {
return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
}
/* SOURCE FILE: PopupWindow.js */
/*
PopupWindow.js
Author: Matt Kruse
Last modified: 02/16/04
DESCRIPTION: This object allows you to easily and quickly popup a window
in a certain place. The window can either be a DIV or a separate browser
window.
COMPATABILITY: Works with Netscape 4.x, 6.x, IE 5.x on Windows. Some small
positioning errors - usually with Window positioning - occur on the
Macintosh platform. Due to bugs in Netscape 4.x, populating the popup
window with <STYLE> tags may cause errors.
USAGE:
// Create an object for a WINDOW popup
var win = new PopupWindow();
// Create an object for a DIV window using the DIV named 'mydiv'
var win = new PopupWindow('mydiv');
// Set the window to automatically hide itself when the user clicks
// anywhere else on the page except the popup
win.autoHide();
// Show the window relative to the anchor name passed in
win.showPopup(anchorname);
// Hide the popup
win.hidePopup();
// Set the size of the popup window (only applies to WINDOW popups
win.setSize(width,height);
// Populate the contents of the popup window that will be shown. If you
// change the contents while it is displayed, you will need to refresh()
win.populate(string);
// set the URL of the window, rather than populating its contents
// manually
win.setUrl("http://www.site.com/");
// Refresh the contents of the popup
win.refresh();
// Specify how many pixels to the right of the anchor the popup will appear
win.offsetX = 50;
// Specify how many pixels below the anchor the popup will appear
win.offsetY = 100;
NOTES:
1) Requires the functions in AnchorPosition.js
2) Your anchor tag MUST contain both NAME and ID attributes which are the
same. For example:
<A NAME="test" ID="test"> </A>
3) There must be at least a space between <A> </A> for IE5.5 to see the
anchor tag correctly. Do not do <A></A> with no space.
4) When a PopupWindow object is created, a handler for 'onmouseup' is
attached to any event handler you may have already defined. Do NOT define
an event handler for 'onmouseup' after you define a PopupWindow object or
the autoHide() will not work correctly.
*/
// Set the position of the popup window based on the anchor
function PopupWindow_getXYPosition(anchorname) {
var coordinates;
if (this.type == "WINDOW") {
coordinates = getAnchorWindowPosition(anchorname);
}
else {
coordinates = getAnchorPosition(anchorname);
}
this.x = coordinates.x;
this.y = coordinates.y;
}
// Set width/height of DIV/popup window
function PopupWindow_setSize(width,height) {
this.width = width;
this.height = height;
}
// Fill the window with contents
function PopupWindow_populate(contents) {
this.contents = contents;
this.populated = false;
}
// Set the URL to go to
function PopupWindow_setUrl(url) {
this.url = url;
}
// Set the window popup properties
function PopupWindow_setWindowProperties(props) {
this.windowProperties = props;
}
// Refresh the displayed contents of the popup
function PopupWindow_refresh() {
if (this.divName != null) {
// refresh the DIV object
if (this.use_gebi) {
document.getElementById(this.divName).innerHTML = this.contents;
}
else if (this.use_css) {
document.all[this.divName].innerHTML = this.contents;
}
else if (this.use_layers) {
var d = document.layers[this.divName];
d.document.open();
d.document.writeln(this.contents);
d.document.close();
}
}
else {
if (this.popupWindow != null && !this.popupWindow.closed) {
if (this.url!="") {
this.popupWindow.location.href=this.url;
}
else {
this.popupWindow.document.open();
this.popupWindow.document.writeln(this.contents);
this.popupWindow.document.close();
}
this.popupWindow.focus();
}
}
}
// Position and show the popup, relative to an anchor object
function PopupWindow_showPopup(anchorname) {
this.getXYPosition(anchorname);
this.x += this.offsetX;
this.y += this.offsetY;
if (!this.populated && (this.contents != "")) {
this.populated = true;
this.refresh();
}
if (this.divName != null) {
// Show the DIV object
if (this.use_gebi) {
document.getElementById(this.divName).style.left = this.x + "px";
document.getElementById(this.divName).style.top = this.y + "px";
document.getElementById(this.divName).style.visibility = "visible";
}
else if (this.use_css) {
document.all[this.divName].style.left = this.x;
document.all[this.divName].style.top = this.y;
document.all[this.divName].style.visibility = "visible";
}
else if (this.use_layers) {
document.layers[this.divName].left = this.x;
document.layers[this.divName].top = this.y;
document.layers[this.divName].visibility = "visible";
}
}
else {
if (this.popupWindow == null || this.popupWindow.closed) {
// If the popup window will go off-screen, move it so it doesn't
if (this.x<0) { this.x=0; }
if (this.y<0) { this.y=0; }
if (screen && screen.availHeight) {
if ((this.y + this.height) > screen.availHeight) {
this.y = screen.availHeight - this.height;
}
}
if (screen && screen.availWidth) {
if ((this.x + this.width) > screen.availWidth) {
this.x = screen.availWidth - this.width;
}
}
var avoidAboutBlank = window.opera || ( document.layers && !navigator.mimeTypes['*'] ) || navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled );
this.popupWindow = window.open(avoidAboutBlank?"":"about:blank","window_"+anchorname,this.windowProperties+",width="+this.width+",height="+this.height+",screenX="+this.x+",left="+this.x+",screenY="+this.y+",top="+this.y+"");
}
this.refresh();
}
}
// Hide the popup
function PopupWindow_hidePopup() {
if (this.divName != null) {
if (this.use_gebi) {
document.getElementById(this.divName).style.visibility = "hidden";
}
else if (this.use_css) {
document.all[this.divName].style.visibility = "hidden";
}
else if (this.use_layers) {
document.layers[this.divName].visibility = "hidden";
}
}
else {
if (this.popupWindow && !this.popupWindow.closed) {
this.popupWindow.close();
this.popupWindow = null;
}
}
}
// Pass an event and return whether or not it was the popup DIV that was clicked
function PopupWindow_isClicked(e) {
if (this.divName != null) {
if (this.use_layers) {
var clickX = e.pageX;
var clickY = e.pageY;
var t = document.layers[this.divName];
if ((clickX > t.left) && (clickX < t.left+t.clip.width) && (clickY > t.top) && (clickY < t.top+t.clip.height)) {
return true;
}
else { return false; }
}
else if (document.all) { // Need to hard-code this to trap IE for error-handling
var t = window.event.srcElement;
while (t.parentElement != null) {
if (t.id==this.divName) {
return true;
}
t = t.parentElement;
}
return false;
}
else if (this.use_gebi && e) {
var t = e.originalTarget;
while (t.parentNode != null) {
if (t.id==this.divName) {
return true;
}
t = t.parentNode;
}
return false;
}
return false;
}
return false;
}
// Check an onMouseDown event to see if we should hide
function PopupWindow_hideIfNotClicked(e) {
if (this.autoHideEnabled && !this.isClicked(e)) {
this.hidePopup();
}
}
// Call this to make the DIV disable automatically when mouse is clicked outside it
function PopupWindow_autoHide() {
this.autoHideEnabled = true;
}
// This global function checks all PopupWindow objects onmouseup to see if they should be hidden
function PopupWindow_hidePopupWindows(e) {
for (var i=0; i<popupWindowObjects.length; i++) {
if (popupWindowObjects[i] != null) {
var p = popupWindowObjects[i];
p.hideIfNotClicked(e);
}
}
}
// Run this immediately to attach the event listener
function PopupWindow_attachListener() {
if (document.layers) {
document.captureEvents(Event.MOUSEUP);
}
window.popupWindowOldEventListener = document.onmouseup;
if (window.popupWindowOldEventListener != null) {
document.onmouseup = new Function("window.popupWindowOldEventListener(); PopupWindow_hidePopupWindows();");
}
else {
document.onmouseup = PopupWindow_hidePopupWindows;
}
}
// CONSTRUCTOR for the PopupWindow object
// Pass it a DIV name to use a DHTML popup, otherwise will default to window popup
function PopupWindow() {
if (!window.popupWindowIndex) { window.popupWindowIndex = 0; }
if (!window.popupWindowObjects) { window.popupWindowObjects = new Array(); }
if (!window.listenerAttached) {
window.listenerAttached = true;
PopupWindow_attachListener();
}
this.index = popupWindowIndex++;
popupWindowObjects[this.index] = this;
this.divName = null;
this.popupWindow = null;
this.width=0;
this.height=0;
this.populated = false;
this.visible = false;
this.autoHideEnabled = false;
this.contents = "";
this.url="";
this.windowProperties="toolbar=no,location=no,status=no,menubar=no,scrollbars=auto,resizable,alwaysRaised,dependent,titlebar=no";
if (arguments.length>0) {
this.type="DIV";
this.divName = arguments[0];
}
else {
this.type="WINDOW";
}
this.use_gebi = false;
this.use_css = false;
this.use_layers = false;
if (document.getElementById) { this.use_gebi = true; }
else if (document.all) { this.use_css = true; }
else if (document.layers) { this.use_layers = true; }
else { this.type = "WINDOW"; }
this.offsetX = 0;
this.offsetY = 0;
// Method mappings
this.getXYPosition = PopupWindow_getXYPosition;
this.populate = PopupWindow_populate;
this.setUrl = PopupWindow_setUrl;
this.setWindowProperties = PopupWindow_setWindowProperties;
this.refresh = PopupWindow_refresh;
this.showPopup = PopupWindow_showPopup;
this.hidePopup = PopupWindow_hidePopup;
this.setSize = PopupWindow_setSize;
this.isClicked = PopupWindow_isClicked;
this.autoHide = PopupWindow_autoHide;
this.hideIfNotClicked = PopupWindow_hideIfNotClicked;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 B

View File

@ -15,7 +15,7 @@ alert ('function');
<body>
<form action="http://www.yahoo.com" method="get" name="form1" target="_blank">
<a href="/adempiere/" target="popup"><img src="LogoSmall.gif" width="64" height="32" border="1"></a>
<a href="/compiere/" target="popup"><img src="LogoSmall.gif" width="64" height="32" border="1"></a>
</form>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,212 @@
/******************************************************************************
* Product: Compiere 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.images;
import java.awt.*;
import java.awt.image.*;
import java.net.*;
import javax.swing.*;
import javax.swing.plaf.*;
import org.compiere.plaf.*;
import java.util.logging.*;
import org.compiere.util.*;
/**
* Icon Factory based on Metal Color Schema (Themes are automatically considered)
*
* @author Jorg Janke
* @version $Id: ImageFactory.java,v 1.2 2006/07/30 00:53:21 jjanke Exp $
*/
public class ImageFactory
{
/**
* Get Image Icon or null if not exists
* @param name file name in org.compiere.images
* @return image
*/
public static ImageIcon getImageIcon (String name)
{
URL url = org.compiere.Compiere.class.getResource("images/" + name);
if (url == null)
{
log.log(Level.SEVERE, "ImageFactory.getImageIcon - not found: " + name);
return null;
}
return new ImageIcon(url);
} // getImageIcon
/** Home Icon ************************************************************/
private static Icon s_HomeIcon = null;
/** Logger */
private static CLogger log = CLogger.getCLogger(ImageFactory.class);
/**
* Get Home Icon (little house) 18*18
* @return image
*/
public static Icon getHomeIcon()
{
if (s_HomeIcon == null)
s_HomeIcon = new HomeIcon();
return s_HomeIcon;
} // getHomeIcon
/**
* 18*18 Home Icon
*/
private static class HomeIcon implements Icon, UIResource
{
public void paintIcon(Component c, Graphics g, int x, int y)
{
g.translate(x, y);
// Draw outside edge of house
g.setColor(CompiereLookAndFeel.getControlInfo()); // black
g.drawLine(8,1, 1,8); // left edge of roof
g.drawLine(8,1, 15,8); // right edge of roof
g.drawLine(11,2, 11,3); // left edge of chimney
g.drawLine(12,2, 12,4); // right edge of chimney
g.drawLine(3,7, 3,15); // left edge of house
g.drawLine(13,7, 13,15); // right edge of house
g.drawLine(4,15, 12,15); // bottom edge of house
// Draw door frame
// same color as edge of house
g.drawLine( 6,9, 6,14); // left
g.drawLine(10,9, 10,14); // right
g.drawLine( 7,9, 9, 9); // top
// Draw roof body
g.setColor(CompiereLookAndFeel.getControlDarkShadow()); // secondary1
g.fillRect(8,2, 1,1); //top toward bottom
g.fillRect(7,3, 3,1);
g.fillRect(6,4, 5,1);
g.fillRect(5,5, 7,1);
g.fillRect(4,6, 9,2);
// Draw doornob
// same color as roof body
g.drawLine(9,12, 9,12);
// Paint the house
g.setColor(CompiereLookAndFeel.getPrimaryControl()); // primary3
g.drawLine(4,8, 12,8); // above door
g.fillRect(4,9, 2,6); // left of door
g.fillRect(11,9, 2,6); // right of door
g.translate(-x, -y);
}
public int getIconWidth()
{
return 18;
}
public int getIconHeight()
{
return 18;
}
} // HomeIcon
/** Folder Icon **********************************************************/
private static Icon s_FolderIcon = null;
/** 16*16 dimension */
private static final Dimension s_icon16Size = new Dimension(16, 16);
/**
* Folder Icon
* @return icon
*/
public static Icon getFolderIcon()
{
if (s_FolderIcon == null)
s_FolderIcon = new FolderIcon();
return s_FolderIcon;
} // getFolderIcon
/**
* FolderIcon usable for Tree (18*16) spacing
*/
private static class FolderIcon extends FolderIcon16
{
public int getShift()
{
return -1;
}
public int getAdditionalHeight()
{
return 2;
}
} // FolderIcon
/**
* Scaleable 16*16 Folder Icon
*/
public static class FolderIcon16 implements Icon
{
transient Image image;
public void paintIcon (Component c, Graphics g, int x, int y)
{
if (image == null)
{
image = new BufferedImage(getIconWidth(), getIconHeight(),
BufferedImage.TYPE_INT_ARGB);
Graphics imageG = image.getGraphics();
paintMe (c,imageG);
imageG.dispose();
}
g.drawImage(image, x, y+getShift(), null);
}
private void paintMe(Component c, Graphics g)
{
int right = s_icon16Size.width - 1;
int bottom = s_icon16Size.height - 1;
// Draw tab top
g.setColor(CompiereLookAndFeel.getPrimaryControlDarkShadow()); // primary1
g.drawLine(right - 5, 3, right, 3);
g.drawLine(right - 6, 4, right, 4);
// Draw folder front
g.setColor(CompiereLookAndFeel.getPrimaryControl()); // primary3
g.fillRect(2, 7, 13, 8);
// Draw tab bottom
g.setColor(CompiereLookAndFeel.getPrimaryControlShadow()); // primary2
g.drawLine(right - 6, 5, right - 1, 5);
// Draw outline
g.setColor(CompiereLookAndFeel.getPrimaryControlInfo()); // black
g.drawLine(0, 6, 0, bottom); // left side
g.drawLine(1, 5, right - 7, 5); // first part of top
g.drawLine(right - 6, 6, right - 1, 6); // second part of top
g.drawLine(right, 5, right, bottom); // right side
g.drawLine(0, bottom, right, bottom); // bottom
// Draw highlight
g.setColor(CompiereLookAndFeel.getPrimaryControlHighlight()); // white
g.drawLine(1, 6, 1, bottom - 1);
g.drawLine(1, 6, right - 7, 6);
g.drawLine(right - 6, 7, right - 1, 7);
}
public int getShift()
{
return 0;
}
public int getAdditionalHeight()
{
return 0;
}
public int getIconWidth()
{
return s_icon16Size.width;
}
public int getIconHeight()
{
return s_icon16Size.height + getAdditionalHeight();
}
} // FolderIcon16
} // ImageFactory

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 400 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 482 B

After

Width:  |  Height:  |  Size: 345 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -1,18 +1,32 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>Adempiere ERP+CRM Reach Client</title>
<title>ADempiere ERP+CRM Reach Client</title>
<script language="JavaScript" src="calendar2.js"></script>
<script type="text/javascript">
//Start of Calendar
function resizeFrame(value){
var frame = top.document;
var frameset = frame.getElementById("framesetMenuWindow");
if (!frameset) return false;
if (frameset.cols.substring(0,1)=="0") frameset.cols = "260,*";
else frameset.cols = "0,*";
return true;
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="pragma" content="no-cache">
</head>
<frameset id="framesetOuter" cols="*" rows="0,*" title="&copy; Adempiere">
<frameset id="framesetOuter" cols="*" rows="0,*" title="&copy; Compiere">
<frame src="cmd.html" name="WCmd">
<frameset id="framesetMenuWindow" cols="220,*" rows="*">
<frame src="menu.html" name="WMenu">
<frameset id="framesetWindow" cols="*" rows="0,*">
<frame src="popup.html" name="WPopUp">
<frame src="window.html" name="WWindow">
</frameset>
<frameset id="framesetMenuWindow" cols="0,*" rows="*">
<frame src="menu.html" name="WMenu">
<frame src="window.html" name="WWindow">
</frameset>
</frameset>
<noframes>

View File

@ -0,0 +1,200 @@
/* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
* ---------------------------------------------------------------------------
*
* The DHTML Calendar
*
* Details and latest version at:
* http://dynarch.com/mishoo/calendar.epl
*
* This script is distributed under the GNU Lesser General Public License.
* Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
*
* This file defines helper functions for setting up the calendar. They are
* intended to help non-programmers get a working calendar on their site
* quickly. This script should not be seen as part of the calendar. It just
* shows you what one can do with the calendar, while in the same time
* providing a quick and simple method for setting it up. If you need
* exhaustive customization of the calendar creation process feel free to
* modify this code to suit your needs (this is recommended and much better
* than modifying calendar.js itself).
*/
// $Id: calendar-setup.js,v 1.25 2005/03/07 09:51:33 mishoo Exp $
/**
* This function "patches" an input field (or other element) to use a calendar
* widget for date selection.
*
* The "params" is a single object that can have the following properties:
*
* prop. name | description
* -------------------------------------------------------------------------------------------------
* inputField | the ID of an input field to store the date
* displayArea | the ID of a DIV or other element to show the date
* button | ID of a button or other element that will trigger the calendar
* eventName | event that will trigger the calendar, without the "on" prefix (default: "click")
* ifFormat | date format that will be stored in the input field
* daFormat | the date format that will be used to display the date in displayArea
* singleClick | (true/false) wether the calendar is in single click mode or not (default: true)
* firstDay | numeric: 0 to 6. "0" means display Sunday first, "1" means display Monday first, etc.
* align | alignment (default: "Br"); if you don't know what's this see the calendar documentation
* range | array with 2 elements. Default: [1900, 2999] -- the range of years available
* weekNumbers | (true/false) if it's true (default) the calendar will display week numbers
* flat | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
* flatCallback | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
* disableFunc | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
* onSelect | function that gets called when a date is selected. You don't _have_ to supply this (the default is generally okay)
* onClose | function that gets called when the calendar is closed. [default]
* onUpdate | function that gets called after the date is updated in the input field. Receives a reference to the calendar.
* date | the date that the calendar will be initially displayed to
* showsTime | default: false; if true the calendar will include a time selector
* timeFormat | the time format; can be "12" or "24", default is "12"
* electric | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
* step | configures the step of the years in drop-down boxes; default: 2
* position | configures the calendar absolute position; default: null
* cache | if "true" (but default: "false") it will reuse the same calendar object, where possible
* showOthers | if "true" (but default: "false") it will show days from other months too
*
* None of them is required, they all have default values. However, if you
* pass none of "inputField", "displayArea" or "button" you'll get a warning
* saying "nothing to setup".
*/
Calendar.setup = function (params) {
function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
param_default("inputField", null);
param_default("displayArea", null);
param_default("button", null);
param_default("eventName", "click");
param_default("ifFormat", "%Y/%m/%d");
param_default("daFormat", "%Y/%m/%d");
param_default("singleClick", true);
param_default("disableFunc", null);
param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined
param_default("dateText", null);
param_default("firstDay", null);
param_default("align", "Br");
param_default("range", [1900, 2999]);
param_default("weekNumbers", true);
param_default("flat", null);
param_default("flatCallback", null);
param_default("onSelect", null);
param_default("onClose", null);
param_default("onUpdate", null);
param_default("date", null);
param_default("showsTime", false);
param_default("timeFormat", "24");
param_default("electric", true);
param_default("step", 2);
param_default("position", null);
param_default("cache", false);
param_default("showOthers", false);
param_default("multiple", null);
var tmp = ["inputField", "displayArea", "button"];
for (var i in tmp) {
if (typeof params[tmp[i]] == "string") {
params[tmp[i]] = document.getElementById(params[tmp[i]]);
}
}
if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");
return false;
}
function onSelect(cal) {
var p = cal.params;
var update = (cal.dateClicked || p.electric);
if (update && p.inputField) {
p.inputField.value = cal.date.print(p.ifFormat);
if (typeof p.inputField.onchange == "function")
p.inputField.onchange();
}
if (update && p.displayArea)
p.displayArea.innerHTML = cal.date.print(p.daFormat);
if (update && typeof p.onUpdate == "function")
p.onUpdate(cal);
if (update && p.flat) {
if (typeof p.flatCallback == "function")
p.flatCallback(cal);
}
if (update && p.singleClick && cal.dateClicked)
cal.callCloseHandler();
};
if (params.flat != null) {
if (typeof params.flat == "string")
params.flat = document.getElementById(params.flat);
if (!params.flat) {
alert("Calendar.setup:\n Flat specified but can't find parent.");
return false;
}
var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
cal.showsOtherMonths = params.showOthers;
cal.showsTime = params.showsTime;
cal.time24 = (params.timeFormat == "24");
cal.params = params;
cal.weekNumbers = params.weekNumbers;
cal.setRange(params.range[0], params.range[1]);
cal.setDateStatusHandler(params.dateStatusFunc);
cal.getDateText = params.dateText;
if (params.ifFormat) {
cal.setDateFormat(params.ifFormat);
}
if (params.inputField && typeof params.inputField.value == "string") {
cal.parseDate(params.inputField.value);
}
cal.create(params.flat);
cal.show();
return false;
}
var triggerEl = params.button || params.displayArea || params.inputField;
triggerEl["on" + params.eventName] = function() {
var dateEl = params.inputField || params.displayArea;
var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
var mustCreate = false;
var cal = window.calendar;
if (dateEl)
params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
if (!(cal && params.cache)) {
window.calendar = cal = new Calendar(params.firstDay,
params.date,
params.onSelect || onSelect,
params.onClose || function(cal) { cal.hide(); });
cal.showsTime = params.showsTime;
cal.time24 = (params.timeFormat == "24");
cal.weekNumbers = params.weekNumbers;
mustCreate = true;
} else {
if (params.date)
cal.setDate(params.date);
cal.hide();
}
if (params.multiple) {
cal.multiple = {};
for (var i = params.multiple.length; --i >= 0;) {
var d = params.multiple[i];
var ds = d.print("%Y%m%d");
cal.multiple[ds] = d;
}
}
cal.showsOtherMonths = params.showOthers;
cal.yearStep = params.step;
cal.setRange(params.range[0], params.range[1]);
cal.params = params;
cal.setDateStatusHandler(params.dateStatusFunc);
cal.getDateText = params.dateText;
cal.setDateFormat(dateFmt);
if (mustCreate)
cal.create();
cal.refresh();
if (!params.position)
cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
else
cal.showAt(params.position[0], params.position[1]);
return false;
};
return cal;
};

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
var isIE = (navigator.userAgent.indexOf("MSIE") != -1);
/****************************************************************************
* Adempiere (c) Jorg Janke - All rights reseverd
* Compiere (c) Jorg Janke - All rights reseverd
* $Id: menu.js,v 1.1 2006/04/21 18:03:35 jjanke Exp $
*
* Menu - show/hide sub-menues - tested in IE 6 end Mozila 1.7

View File

@ -0,0 +1,168 @@
/**
* Copyright (c)2005-2007 Matt Kruse (javascripttoolbox.com)
*
* Dual licensed under the MIT and GPL licenses.
* This basically means you can use this code however you want for
* free, but don't claim to have written it yourself!
* Donations always accepted: http://www.JavascriptToolbox.com/donate/
*
* Please do not link to the .js files on javascripttoolbox.com from
* your site. Copy the files locally to your server instead.
*
*/
/*
This code is inspired by and extended from Stuart Langridge's aqlist code:
http://www.kryogenix.org/code/browser/aqlists/
Stuart Langridge, November 2002
sil@kryogenix.org
Inspired by Aaron's labels.js (http://youngpup.net/demos/labels/)
and Dave Lindquist's menuDropDown.js (http://www.gazingus.org/dhtml/?id=109)
*/
// Automatically attach a listener to the window onload, to convert the trees
addEvent(window,"load",convertTrees);
// Utility function to add an event listener
function addEvent(o,e,f){
if (o.addEventListener){ o.addEventListener(e,f,false); return true; }
else if (o.attachEvent){ return o.attachEvent("on"+e,f); }
else { return false; }
}
// utility function to set a global variable if it is not already set
function setDefault(name,val) {
if (typeof(window[name])=="undefined" || window[name]==null) {
window[name]=val;
}
}
// Full expands a tree with a given ID
function expandTree(treeId) {
var ul = document.getElementById(treeId);
if (ul == null) { return false; }
expandCollapseList(ul,nodeOpenClass);
}
// Fully collapses a tree with a given ID
function collapseTree(treeId) {
var ul = document.getElementById(treeId);
if (ul == null) { return false; }
expandCollapseList(ul,nodeClosedClass);
}
// Expands enough nodes to expose an LI with a given ID
function expandToItem(treeId,itemId) {
var ul = document.getElementById(treeId);
if (ul == null) { return false; }
var ret = expandCollapseList(ul,nodeOpenClass,itemId);
if (ret) {
var o = document.getElementById(itemId);
if (o.scrollIntoView) {
o.scrollIntoView(false);
}
}
}
// Performs 3 functions:
// a) Expand all nodes
// b) Collapse all nodes
// c) Expand all nodes to reach a certain ID
function expandCollapseList(ul,cName,itemId) {
if (!ul.childNodes || ul.childNodes.length==0) { return false; }
// Iterate LIs
for (var itemi=0;itemi<ul.childNodes.length;itemi++) {
var item = ul.childNodes[itemi];
if (itemId!=null && item.id==itemId) { return true; }
if (item.nodeName == "LI") {
// Iterate things in this LI
var subLists = false;
for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {
var sitem = item.childNodes[sitemi];
if (sitem.nodeName=="UL") {
subLists = true;
var ret = expandCollapseList(sitem,cName,itemId);
if (itemId!=null && ret) {
item.className=cName;
return true;
}
}
}
if (subLists && itemId==null) {
item.className = cName;
}
}
}
}
// Search the document for UL elements with the correct CLASS name, then process them
function convertTrees() {
setDefault("treeClass","mktree");
setDefault("nodeClosedClass","liClosed");
setDefault("nodeOpenClass","liOpen");
setDefault("nodeBulletClass","liBullet");
setDefault("nodeLinkClass","bullet");
setDefault("preProcessTrees",true);
if (preProcessTrees) {
if (!document.createElement) { return; } // Without createElement, we can't do anything
var uls = document.getElementsByTagName("ul");
if (uls==null) { return; }
var uls_length = uls.length;
for (var uli=0;uli<uls_length;uli++) {
var ul=uls[uli];
if (ul.nodeName=="UL" && ul.className==treeClass) {
processList(ul);
}
}
}
}
function treeNodeOnclick() {
this.parentNode.className = (this.parentNode.className==nodeOpenClass) ? nodeClosedClass : nodeOpenClass;
return false;
}
function retFalse() {
return false;
}
// Process a UL tag and all its children, to convert to a tree
function processList(ul) {
if (!ul.childNodes || ul.childNodes.length==0) { return; }
// Iterate LIs
var childNodesLength = ul.childNodes.length;
for (var itemi=0;itemi<childNodesLength;itemi++) {
var item = ul.childNodes[itemi];
if (item.nodeName == "LI") {
// Iterate things in this LI
var subLists = false;
var itemChildNodesLength = item.childNodes.length;
for (var sitemi=0;sitemi<itemChildNodesLength;sitemi++) {
var sitem = item.childNodes[sitemi];
if (sitem.nodeName=="UL") {
subLists = true;
processList(sitem);
}
}
var s= document.createElement("SPAN");
var t= '\u00A0'; // &nbsp;
s.className = nodeLinkClass;
if (subLists) {
// This LI has UL's in it, so it's a +/- node
if (item.className==null || item.className=="") {
item.className = nodeClosedClass;
}
// If it's just text, make the text work as the link also
if (item.firstChild.nodeName=="#text") {
t = t+item.firstChild.nodeValue;
item.removeChild(item.firstChild);
}
s.onclick = treeNodeOnclick;
}
else {
// No sublists, so it's just a bullet node
item.className = nodeBulletClass;
s.onclick = retFalse;
}
s.appendChild(document.createTextNode(t));
item.insertBefore(s,item.firstChild);
}
}
}

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Adempiere (c) Jorg Janke - All rights reseverd
* Compiere (c) Jorg Janke - All rights reseverd
* $Id: standard.js,v 1.1 2006/04/21 18:03:35 jjanke Exp $
*
* General Header Script shared by Web UI and WebStore
@ -214,6 +214,7 @@ function showLoadingWindow (base)
//
function showLoadingMenu(base)
{
parent.resizeFrame('5,*');
var d = parent.WMenu.document;
d.open();
// Content
@ -226,7 +227,7 @@ function showLoadingMenu(base)
d.write('info += "</h1>"; tickNo++; setOuterHTML(getElementById(\'ticker\'), info); }');
d.write('setInterval("tick();", 1500); </script>');
// Fini
d.close();
d.close();
return true; // follow the link
} // showLoadingMenu

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,361 @@
/****************************************************************************
* Compiere (c) Jorg Janke - All rights reseverd
* $Id: window.js,v 1.1 2006/04/21 18:03:35 jjanke Exp $
*
* Web UI Window Utilities
***************************************************************************/
/****************************************************************************
* Text constants
*/
var deleteText = "ConfirmDelete";
/****************************************************************************
* Field Update
***************************************************************************/
function fieldUpdate(e)
{
if (!top.WCmd) // no cmd frame
return;
if (!e) e = window.event;
// alert('FieldUpdate ' + e.name + '=' + e.value);
// update info and submit
top.WCmd.document.fieldUpdate.formName.value = e.form.name; //e.document.forms[0].name;
top.WCmd.document.fieldUpdate.fieldName.value = e.name;
top.WCmd.document.fieldUpdate.fieldValue.value = e.value;
top.WCmd.document.fieldUpdate.submit();
} // fieldUpdate
/**
* Create Initial Command Window
*/
function createWCmd()
{
if (!top.WCmd) // no cmd frame
return;
// write to the command window.
var d = top.WCmd.document;
d.open();
d.writeln('<form name="fieldUpdate" method="post" action="/adempiere/WFieldUpdate">');
d.writeln('<input type="hidden" name="formName" value="x">');
d.writeln('<input type="hidden" name="fieldName" value="x">');
d.writeln('<input type="hidden" name="fieldValue" value="x">');
d.writeln('</form>');
d.close();
} // createWCmd
// Execute it
createWCmd();
/****************************************************************************
* Dynamic Display
* - for form: WForm
* - changing field should have onChange="dynDisplay" to trigger evaluation
* - changed field should have document.WForm.field.displayLogic='expression'
*/
function dynDisplay()
{
var el = document.WForm.elements;
var info = "dynDisplay:";
// for all fields
for (var i = 0; i < el.length; i++)
{
// do we have displayLogic ?
var dLogic = el[i].displayLogic;
if (typeof dLogic == "string" && dLogic.length > 0)
{
fieldName = el[i].name;
if (evaluate(dLogic))
{
show(fieldName+"L");
show(fieldName+"F");
show(fieldName+"B");
info += " show:" + fieldName;
}
else
{
hide(fieldName+"L");
hide(fieldName+"F");
hide(fieldName+"B");
info += " hide:" + fieldName;
}
} // we have displayLogic
} // for all fields
window.status = info;
} // dynDisplay
/**
* Evaluate Display Logic
* >> |& <<
*/
function evaluate (dLogic)
{
var pos1 = dLogic.indexOf('&');
var pos2 = dLogic.indexOf('|');
// only a tuple
if (pos1 == pos2)
{
return evaluateTuple(dLogic);
}
// and: &
else if (pos1 > pos2)
{
tuples = dLogic.split('&');
return evaluateTuple(tuples[0]) && evaluate(dLogic.substring(pos1+1));
}
// or: |
else
{
tuples = dLogic.split('|');
return evaluateTuple(tuples[0]) || evaluate(dLogic.substring(pos2+1));
}
} // evaluate
/**
* evaluate tuple 'x = y' or x ^ y or x ! y
* >> =!^ <<
*/
function evaluateTuple(myValue)
{
// Equals
var tuples = myValue.split('=');
if (tuples.length == 2)
return getRealValue(tuples[0]) == getRealValue(tuples[1]);
// Not Equals
tuples = myValue.split('^');
if (tuples.length == 2)
return getRealValue(tuples[0]) != getRealValue(tuples[1]);
tuples = myValue.split('!');
if (tuples.length == 2)
return getRealValue(tuples[0]) != getRealValue(tuples[1]);
//
alert ('Error: evaluateTuple="' + myValue + '" invalid.');
return false;
} // evaluateTuple
/**
* get (variable) value
*/
function getRealValue (myValue)
{
var pos1 = myValue.indexOf('@');
var pos2 = myValue.indexOf('@', pos1+1);
// Constant - remove blanks an '"
if (pos1 == pos2)
return myValue.replace(/['" ]/g, "");
// Variable
var variable = myValue.substring(pos1+1, pos2);
for (var i = 0; i < document.WForm.elements.length; i++)
{
if (document.WForm.elements[i].name == variable)
return document.WForm.elements[i].value;
}
// Nothing found
return "";
} // getRealValue
/****************************************************************************
* Open PopUp with Attachment Info
*/
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=600,height=300,left = 212,top = 234');");
}
function startPopup (targetCmd)
{
var url = targetCmd;
return popUp(url);
} // startPopup
/**
* Close PopUp
*/
function closePopup ()
{
parent.document.getElementById("framesetWindow").rows="0,*";
return true; // do submit page
} // closePopUp
/**
* Lookup - get FormName and ColumnName and submit to WLookup
*/
function startLookup (columnName, processid)
{
var url = "WLookup?ColumnName=" + columnName+"&AD_Process_ID="+processid;
return popUp(url);
} // startLookup
/**
* Lookup - get FormName and ColumnName and submit to WLookup
*/
function startZoom (TableID, RecordID)
{
var url = "WWindow?AD_Table_ID=" + TableID+"&AD_Record_ID="+RecordID;
parent.WWindow.location = '/adempiere/' + url;
return false; // do not submit page
} // startZoom
/**
* Account - get FormName and ColumnName and submit to WAccount
*/
function startAccount (columnName)
{
var url = "WAccount?ColumnName=" + columnName;
return popUp(url);
} // startAccount
/**
* Location - get FormName and ColumnName and submit to WLocation
*/
function startLocation (columnName)
{
var url = "WLocation?ColumnName=" + columnName;
return popUp(url);
} // startLocation
/****************************************************************************
* Field Updated - submit
*/
function startUpdate (column)
{
column.form.ChangedColumn.value=column.name;
column.form.submit();
} // startUpdate
/****************************************************************************
* Lookup Field Updated - submit
*/
function startLookUpdate(column, name1, value1, name2, value2)
{
window.close();
opener.document.getElementById(name1).value =value1;
opener.document.getElementById(name2).value =value2;
} // startUpdate
/****************************************************************************
* Process Button
*/
function startButton (processID, windowID, recordID, tableID, columnName)
{
var url = "WProcess?AD_Process_ID=" + processID + "&AD_Window_ID="+windowID+
"&AD_Record_ID="+recordID+"&AD_Table_ID="+tableID+"&columnName="+columnName;
return popUp(url);
} // startButton
/****************************************************************************
* Process Toolbar Button
*/
function SubmitForm(pValue, pAction, pType)
{
Form = document.forms[0];
if (pType=='toolbar')
{
document.WForm.PCommand.value= pValue;
if (pAction == 'reset')
Form.reset();
else if (pValue== 'Delete'){
if(confirm('Do you want to delete the record?')){
Form.submit();
}
}
else
Form.submit();
}
if (pType=='tab')
{
document.WForm.PTab.value= pValue;
Form.submit();
}
}
/****************************************************************************
* Process Calendar
*/
var oldLink = null;
// code to change the active stylesheet
function setActiveStyleSheet(link, title) {
var i, a, main;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") == title) a.disabled = false;
}
}
if (oldLink) oldLink.style.fontWeight = 'normal';
oldLink = link;
link.style.fontWeight = 'bold';
return false;
}
// This function gets called when the end-user clicks on some date.
function selected(cal, date) {
cal.sel.value = date; // just update the date in the input field.
if (cal.dateClicked && (cal.sel.id == "sel1" || cal.sel.id == "sel3"))
// if we add this call we close the calendar on single-click.
// just to exemplify both cases, we are using this only for the 1st
// and the 3rd field, while 2nd and 4th will still require double-click.
cal.callCloseHandler();
}
// And this gets called when the end-user clicks on the _selected_ date,
// or clicks on the "Close" button. It just hides the calendar without
// destroying it.
function closeHandler(cal) {
cal.hide(); // hide the calendar
// cal.destroy();
_dynarch_popupCalendar = null;
}
// This function shows the calendar under the element having the given id.
// It takes care of catching "mousedown" signals on document and hiding the
// calendar if the click was outside.
function showCalendar(id, format, showsTime, showsOtherMonths) {
var el = document.getElementById(id);
if (_dynarch_popupCalendar != null) {
// we already have some calendar created
_dynarch_popupCalendar.hide(); // so we hide it first.
} else {
// first-time call, create the calendar.
var cal = new Calendar(1, null, selected, closeHandler);
// uncomment the following line to hide the week numbers
// cal.weekNumbers = false;
if (typeof showsTime == "string") {
cal.showsTime = true;
cal.time24 = (showsTime == "24");
}
if (showsOtherMonths) {
cal.showsOtherMonths = true;
}
_dynarch_popupCalendar = cal; // remember it in the global var
cal.setRange(1900, 2070); // min/max year allowed.
cal.create();
}
_dynarch_popupCalendar.setDateFormat(format); // set the specified date format
_dynarch_popupCalendar.parseDate(el.value); // try to parse the text in field
_dynarch_popupCalendar.sel = el; // inform it what input field we use
// the reference element that we pass to showAtElement is the button that
// triggers the calendar. In this example we align the calendar bottom-right
// to the button.
_dynarch_popupCalendar.showAtElement(el, "Br"); // show the calendar
return false;
}
var MINUTE = 60 * 1000;
var HOUR = 60 * MINUTE;
var DAY = 24 * HOUR;
var WEEK = 7 * DAY;

View File

@ -0,0 +1,127 @@
// ** I18N
// Calendar EN language
// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
// Encoding: any
// Distributed under the same terms as the calendar itself.
// For translators: please use UTF-8 if possible. We strongly believe that
// Unicode is the answer to a real internationalized world. Also please
// include your contact information in the header, as can be seen above.
// full day names
Calendar._DN = new Array
("Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday",
"Sunday");
// Please note that the following array of short day names (and the same goes
// for short month names, _SMN) isn't absolutely necessary. We give it here
// for exemplification on how one can customize the short day names, but if
// they are simply the first N letters of the full name you can simply say:
//
// Calendar._SDN_len = N; // short day name length
// Calendar._SMN_len = N; // short month name length
//
// If N = 3 then this is not needed either since we assume a value of 3 if not
// present, to be compatible with translation files that were written before
// this feature.
// short day names
Calendar._SDN = new Array
("Sun",
"Mon",
"Tue",
"Wed",
"Thu",
"Fri",
"Sat",
"Sun");
// First day of the week. "0" means display Sunday first, "1" means display
// Monday first, etc.
Calendar._FD = 0;
// full month names
Calendar._MN = new Array
("January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December");
// short month names
Calendar._SMN = new Array
("Jan",
"Feb",
"Mar",
"Apr",
"May",
"Jun",
"Jul",
"Aug",
"Sep",
"Oct",
"Nov",
"Dec");
// tooltips
Calendar._TT = {};
Calendar._TT["INFO"] = "About the calendar";
Calendar._TT["ABOUT"] =
"DHTML Date/Time Selector\n" +
"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
"\n\n" +
"Date selection:\n" +
"- Use the \xab, \xbb buttons to select year\n" +
"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
"- Hold mouse button on any of the above buttons for faster selection.";
Calendar._TT["ABOUT_TIME"] = "\n\n" +
"Time selection:\n" +
"- Click on any of the time parts to increase it\n" +
"- or Shift-click to decrease it\n" +
"- or click and drag for faster selection.";
Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
Calendar._TT["GO_TODAY"] = "Go Today";
Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
Calendar._TT["SEL_DATE"] = "Select date";
Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
Calendar._TT["PART_TODAY"] = " (today)";
// the following is to inform that "%s" is to be the first day of week
// %s will be replaced with the day name.
Calendar._TT["DAY_FIRST"] = "Display %s first";
// This may be locale-dependent. It specifies the week-end days, as an array
// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
// means Monday, etc.
Calendar._TT["WEEKEND"] = "0,6";
Calendar._TT["CLOSE"] = "Close";
Calendar._TT["TODAY"] = "Today";
Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
// date formats
Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
Calendar._TT["WK"] = "wk";
Calendar._TT["TIME"] = "Time:";

View File

@ -3,8 +3,8 @@
<title>Menu</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base target="WWindow">
<link href="standard.css" rel="stylesheet" type="text/css">
<link href="menu.css" rel="stylesheet" type="text/css">
<link href="/css/standard.css" rel="stylesheet" type="text/css">
<link href="/css/menu.css" rel="stylesheet" type="text/css">
</head>
<body>
</body>

View File

@ -1,35 +0,0 @@
/* Adempiere HTML UI (c) Jorg Janke */
/* $Id: popup.css,v 1.1 2006/04/21 18:03:35 jjanke Exp $ */
body {
background-color: #fbf8f1;
color: #000000;
}
.Cerror{
background: #dcf1cb;
}
.Cmandatory{
background: #e9eef5;
}
.popupTable {
border-left: none;
border-right: none;
margin: 0px;
padding: 2px;
}
.popupHeader {
border-top: none;
}
.popupCenter {
border-bottom: 1px solid #000000;
border-top: 1px solid #000000;
}
.popupFooter {
border-bottom: none;
}

View File

@ -2,7 +2,7 @@
<title>Popup</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<base target="window">
<link href="standard.css" rel="stylesheet" type="text/css">
<link href="/css/standard.css" rel="stylesheet" type="text/css">
</head>
<body>
</body>

View File

@ -1,76 +0,0 @@
/* Adempiere HTML UI (c) Jorg Janke */
/* $Id: window.css,v 1.1 2006/04/21 18:03:35 jjanke Exp $ */
body {
/* Manu #F4FCFF; */
background-color: #fbf8f1;
color: #000000;
font-size: 12px;
}
big {
cursor: pointer; /* used for tab */
}
td {
font-size: 12px;
}
.Cerror {
background: #dcf1cb;
}
.Cmandatory {
background: #e9eef5;
}
#imgButton {
border-style: outset;
}
#imgButtonPressed {
border-style: inset;
}
#tab {
background: #E6E6FA; /* Window Tabs */
border-style: outset;
color: #0000CC;
cursor: pointer;
margin-right: 5px;
margin-top: 20px;
padding-left: 5px;
padding-right: 5px;
}
#tabSelected {
background: #E6E6FA; /* Selected Window Tabs */
border-style: inset;
color: #000066;
cursor: pointer;
margin-right: 5px;
margin-top: 20px;
padding-left: 5px;
padding-right: 5px;
}
.windowTable {
margin: 0px;
padding: 2px;
border-left: none;
border-right: none;
}
.windowHeader {
border-top: none;
}
.windowCenter {
border-bottom: 1px solid #000000;
border-top: 1px solid #000000;
}
.windowFooter {
border-bottom: none;
}

View File

@ -1,9 +1,9 @@
<html>
<head>
<title>Adempiere Window - Performs compliance test</title>
<title>Compiere Window - Performs compliance test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="standard.css" rel="stylesheet" type="text/css">
<link href="window.css" rel="stylesheet" type="text/css">
<link href="/css/standard.css" rel="stylesheet" type="text/css">
<link href="/css/window.css" rel="stylesheet" type="text/css">
</head>
<body>
<p><img src="Logo.gif"></p>

View File

@ -1,232 +0,0 @@
/****************************************************************************
* Adempiere (c) Jorg Janke - All rights reseverd
* $Id: window.js,v 1.1 2006/04/21 18:03:35 jjanke Exp $
*
* Web UI Window Utilities
***************************************************************************/
/****************************************************************************
* Text constants
*/
var deleteText = "ConfirmDelete";
/****************************************************************************
* Field Update
***************************************************************************/
function fieldUpdate(e)
{
if (!top.WCmd) // no cmd frame
return;
if (!e) e = window.event;
// alert('FieldUpdate ' + e.name + '=' + e.value);
// update info and submit
top.WCmd.document.fieldUpdate.formName.value = e.form.name; //e.document.forms[0].name;
top.WCmd.document.fieldUpdate.fieldName.value = e.name;
top.WCmd.document.fieldUpdate.fieldValue.value = e.value;
top.WCmd.document.fieldUpdate.submit();
} // fieldUpdate
/**
* Create Initial Command Window
*/
function createWCmd()
{
if (!top.WCmd) // no cmd frame
return;
// write to the command window.
var d = top.WCmd.document;
d.open();
d.writeln('<form name="fieldUpdate" method="post" action="/adempiere/WFieldUpdate">');
d.writeln('<input type="hidden" name="formName" value="x">');
d.writeln('<input type="hidden" name="fieldName" value="x">');
d.writeln('<input type="hidden" name="fieldValue" value="x">');
d.writeln('</form>');
d.close();
} // createWCmd
// Execute it
createWCmd();
/****************************************************************************
* Dynamic Display
* - for form: WForm
* - changing field should have onChange="dynDisplay" to trigger evaluation
* - changed field should have document.WForm.field.displayLogic='expression'
*/
function dynDisplay()
{
var el = document.WForm.elements;
var info = "dynDisplay:";
// for all fields
for (var i = 0; i < el.length; i++)
{
// do we have displayLogic ?
var dLogic = el[i].displayLogic;
if (typeof dLogic == "string" && dLogic.length > 0)
{
fieldName = el[i].name;
if (evaluate(dLogic))
{
show(fieldName+"L");
show(fieldName+"F");
show(fieldName+"B");
info += " show:" + fieldName;
}
else
{
hide(fieldName+"L");
hide(fieldName+"F");
hide(fieldName+"B");
info += " hide:" + fieldName;
}
} // we have displayLogic
} // for all fields
window.status = info;
} // dynDisplay
/**
* Evaluate Display Logic
* >> |& <<
*/
function evaluate (dLogic)
{
var pos1 = dLogic.indexOf('&');
var pos2 = dLogic.indexOf('|');
// only a tuple
if (pos1 == pos2)
{
return evaluateTuple(dLogic);
}
// and: &
else if (pos1 > pos2)
{
tuples = dLogic.split('&');
return evaluateTuple(tuples[0]) && evaluate(dLogic.substring(pos1+1));
}
// or: |
else
{
tuples = dLogic.split('|');
return evaluateTuple(tuples[0]) || evaluate(dLogic.substring(pos2+1));
}
} // evaluate
/**
* evaluate tuple 'x = y' or x ^ y or x ! y
* >> =!^ <<
*/
function evaluateTuple(myValue)
{
// Equals
var tuples = myValue.split('=');
if (tuples.length == 2)
return getRealValue(tuples[0]) == getRealValue(tuples[1]);
// Not Equals
tuples = myValue.split('^');
if (tuples.length == 2)
return getRealValue(tuples[0]) != getRealValue(tuples[1]);
tuples = myValue.split('!');
if (tuples.length == 2)
return getRealValue(tuples[0]) != getRealValue(tuples[1]);
//
alert ('Error: evaluateTuple="' + myValue + '" invalid.');
return false;
} // evaluateTuple
/**
* get (variable) value
*/
function getRealValue (myValue)
{
var pos1 = myValue.indexOf('@');
var pos2 = myValue.indexOf('@', pos1+1);
// Constant - remove blanks an '"
if (pos1 == pos2)
return myValue.replace(/['" ]/g, "");
// Variable
var variable = myValue.substring(pos1+1, pos2);
for (var i = 0; i < document.WForm.elements.length; i++)
{
if (document.WForm.elements[i].name == variable)
return document.WForm.elements[i].value;
}
// Nothing found
return "";
} // getRealValue
/****************************************************************************
* Open PopUp with Attachment Info
*/
function startPopup (targetCmd)
{
parent.document.getElementById("framesetWindow").rows="300,*";
parent.WPopUp.location = '/adempiere/' + targetCmd;
return false; // do not submit page
} // startPopup
/**
* Close PopUp
*/
function closePopup ()
{
parent.document.getElementById("framesetWindow").rows="0,*";
return true; // do submit page
} // closePopUp
/**
* Lookup - get FormName and ColumnName and submit to WLookup
*/
function startLookup (columnName)
{
var url = "WLookup?ColumnName=" + columnName;
// alert (url);
return startPopup(url);
} // startLookup
/**
* Account - get FormName and ColumnName and submit to WAccount
*/
function startAccount (columnName)
{
var url = "WAccount?ColumnName=" + columnName;
// alert (url);
return startPopup(url);
} // startAccount
/**
* Location - get FormName and ColumnName and submit to WLocation
*/
function startLocation (columnName)
{
var url = "WLocation?ColumnName=" + columnName;
// alert (url);
return startPopup(url);
} // startLocation
/****************************************************************************
* Field Updated - submit
*/
function startUpdate (column)
{
column.form.ChangedColumn.value=column.name;
column.form.submit();
} // startUpdate
/****************************************************************************
* Process Button
*/
function startButton (column)
{
column.form.ChangedColumn.value=column.name;
column.form.submit();
} // startButton

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a:clrMap xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>

View File

@ -0,0 +1,6 @@
<xml xmlns:o="urn:schemas-microsoft-com:office:office">
<o:MainFile HRef="../window.html"/>
<o:File HRef="themedata.thmx"/>
<o:File HRef="colorschememapping.xml"/>
<o:File HRef="filelist.xml"/>
</xml>

Binary file not shown.

View File

@ -1,5 +1,5 @@
/****************************************************************************
* Adempiere (c) Jorg Janke - All rights reseverd
* Compiere (c) Jorg Janke - All rights reseverd
* $Id: wstore.js,v 1.5 2006/05/23 22:39:03 mdeaelfweald Exp $
*
* Web Store Scripts