428 Zeilen
12 KiB
JavaScript
428 Zeilen
12 KiB
JavaScript
/**
|
|
* Table rowMark
|
|
*
|
|
* myRow = new rowMark(1,2,3,4)
|
|
*
|
|
* 1: Farbe des Over Effekts z.B. "#ff0000" - string
|
|
* 2: Farbe des Mark Effeks - string
|
|
* 3: Farbe des Over Effeks bei der Marked Row - string
|
|
* 4: Funktion die bei onClick aufgerufen wird - string
|
|
*
|
|
* <tr class="grau" onMouseOver="myRow.over(this)" onMouseOut="myRow.out(this)" onClick="myRow.click(this)">
|
|
* <td>eine Zeile</td>
|
|
* <td><img src="einbild.gif"></td>
|
|
* </tr>
|
|
*
|
|
* @param String sOverColor Over-Color
|
|
* @param String sMarkedColor Marked-Color
|
|
* @param String sOverMarked Over-Marked-Color
|
|
*
|
|
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
|
|
* @modified Timo Trautmann <timo.trautmann@4fb.de> added support for second marked Color used as active sync color, defined by class
|
|
variable markedSyncColor Each table row containing class name con_sync gets this marked color
|
|
* @version 1.2
|
|
* @copyright Jan Lengowski 2002
|
|
*/
|
|
function rowMark(overColor, markedColor, overMarked, onClick, instanceName) {
|
|
|
|
/**
|
|
* Set class properties
|
|
* @access private
|
|
*/
|
|
this.instanceName = instanceName;
|
|
this.overColor = overColor;
|
|
this.markedColor = markedColor;
|
|
this.overMarked = overMarked;
|
|
this.onClick = onClick;
|
|
this.highlightFrame = "#CCCCCC";
|
|
this.backgroundColor = "#E2E2E2";
|
|
this.markedSyncColor = "#AED2F1";
|
|
this.syncColor = "#ddecf9";
|
|
|
|
/**
|
|
* dynamic properties
|
|
* @access private
|
|
*/
|
|
this.oldColor = '';
|
|
this.oldColorMarked = '';
|
|
this.markedRow = '';
|
|
|
|
/**
|
|
* Define class methods
|
|
* @access private
|
|
*/
|
|
this.over = rowMark_over;
|
|
this.out = rowMark_out;
|
|
this.click = rowMark_click;
|
|
this.reset = rowMark_reset;
|
|
|
|
/**
|
|
* Browsercheck
|
|
* @access private
|
|
*/
|
|
this.browser = '';
|
|
|
|
}
|
|
|
|
/**
|
|
* rowMark::over()
|
|
* @param object oRow table row object
|
|
*/
|
|
function rowMark_over(oRow) {
|
|
if (oRow == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if ( oRow.style.backgroundColor != this.markedColor ) {
|
|
this.oldColor = oRow.style.backgroundColor;
|
|
}
|
|
|
|
oRow.style.backgroundColor = this.overColor;
|
|
|
|
/*if ( oRow.style.backgroundColor == this.markedColor ) {
|
|
oRow.style.backgroundColor = this.overMarked;
|
|
} else {
|
|
oRow.style.backgroundColor = this.overColor;
|
|
}*/
|
|
|
|
}
|
|
|
|
/**
|
|
* rowMark::out()
|
|
* @param object oRow table row object
|
|
*/
|
|
function rowMark_out(oRow) {
|
|
|
|
if (oRow == this.markedRow) {
|
|
if (oRow.className=="con_sync") {
|
|
oRow.style.backgroundColor = this.markedSyncColor;
|
|
} else {
|
|
oRow.style.backgroundColor = this.markedColor;
|
|
}
|
|
} else {
|
|
oRow.style.backgroundColor = this.oldColor;
|
|
}
|
|
|
|
}
|
|
|
|
function rowMark_reset () {
|
|
var oObjects = document.getElementsByTagName('tr');
|
|
var pattern=eval("/" + this.instanceName + "\\.click\\(this\\)/m");
|
|
|
|
for (var i = 0; i < oObjects.length; i++) {
|
|
var sOnclick = String(oObjects[i].onclick);
|
|
if (sOnclick != '' && sOnclick != 'undefined') {
|
|
if (sOnclick.match(pattern)) {
|
|
if (oObjects[i].className=="con_sync") {
|
|
oObjects[i].style.backgroundColor = this.syncColor;
|
|
} else {
|
|
oObjects[i].style.backgroundColor = '#FFFFFF';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.markedRow = '';
|
|
}
|
|
|
|
/**
|
|
* rowMark::over()
|
|
* @param object oRow table row object
|
|
*/
|
|
function rowMark_click(oRow)
|
|
{
|
|
if (oRow == null)
|
|
{
|
|
return;
|
|
}
|
|
if (typeof this.markedRow != "object")
|
|
{
|
|
if (oRow.className=="con_sync") {
|
|
oRow.style.backgroundColor = this.markedSyncColor;
|
|
} else {
|
|
oRow.style.backgroundColor = this.markedColor;
|
|
}
|
|
|
|
this.markedRow = oRow;
|
|
this.oldColorMarked = this.oldColor;
|
|
if ( this.onClick != "")
|
|
{
|
|
eval( this.onClick );
|
|
}
|
|
}
|
|
else if (this.markedRow != oRow)
|
|
{
|
|
/* reset old */
|
|
this.markedRow.style.backgroundColor = this.oldColorMarked;
|
|
/* highlight new*/
|
|
if (oRow.className=="con_sync") {
|
|
oRow.style.backgroundColor = this.markedSyncColor;
|
|
} else {
|
|
oRow.style.backgroundColor = this.markedColor;
|
|
}
|
|
|
|
this.markedRow = oRow;
|
|
this.oldColorMarked = this.oldColor;
|
|
|
|
if ( this.onClick != "")
|
|
{
|
|
eval(this.onClick);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Table rowMark with image rollover
|
|
*
|
|
* REQUIRES rowMark CLASS!
|
|
*
|
|
* myRow = new imgMark(1, 2, 3, 4, 5, 6);
|
|
*
|
|
* 1: Farbe des Over Effekts z.B. "#ff0000" - string
|
|
* 2: Farbe des Mark Effeks - string
|
|
* 3: Farbe des Over Effeks bei der Marked Row - string
|
|
* 4: Pfad des Bildes das bei .over() gewechselt wird - string
|
|
* 5: Pfad des Bildes das bei .out() gewechselt wird - string
|
|
* 6: Function die bei onClick aufgerufen wird - string
|
|
*
|
|
* <tr class="grau" onMouseOver="myRow.over(this, 0)" onMouseOut="myRow.out(this, 0)" onClick="myRow.click(this)">
|
|
* <td>eine Zeile</td>
|
|
* <td><img src="einbild.gif"></td>
|
|
* </tr>
|
|
*
|
|
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
|
|
* @version 1.2
|
|
* @copyright Jan Lengowski 2002
|
|
*/
|
|
function imgMark(overColor, markedColor, overMarked, imgOutSrc, imgOverSrc, onClick) {
|
|
|
|
/**
|
|
* Call parent class constructor
|
|
* @access private
|
|
*/
|
|
this.base = rowMark;
|
|
this.base(overColor, markedColor, overMarked, onClick);
|
|
|
|
/**
|
|
* Set image path properties
|
|
* @access private
|
|
*/
|
|
this.imgOutSrc = imgOutSrc;
|
|
this.imgOverSrc = imgOverSrc;
|
|
|
|
/**
|
|
* Modify inherited .over() method
|
|
* @access private
|
|
*/
|
|
var str = this.over + '';
|
|
var astr = str.split('\n');
|
|
var fstr = 'var img = oRow.getElementsByTagName("IMG"); img[imgId].src = this.imgOverSrc;';
|
|
for (i=2; i<astr.length-2; i++) {
|
|
fstr += astr[i];
|
|
}
|
|
this.over = new Function ('oRow', 'imgId', fstr);
|
|
|
|
/**
|
|
* Modify inherited .out() method
|
|
* @access private
|
|
*/
|
|
var str = this.out + '';
|
|
var astr = str.split('\n');
|
|
var fstr = 'var img = oRow.getElementsByTagName("IMG");img[imgId].src = this.imgOutSrc;';
|
|
|
|
for (i=2; i<astr.length-2; i++) {
|
|
fstr += astr[i];
|
|
}
|
|
this.out = new Function ('oRow', 'imgId', fstr);
|
|
|
|
}
|
|
imgMark.prototype = new rowMark;
|
|
|
|
/* Sets the path value
|
|
in the area 'upl' */
|
|
function setPath( obj ) {
|
|
parent.parent.frames["left"].frames['left_top'].document.forms[1].path.value = obj.id;
|
|
parent.parent.frames["left"].frames['left_top'].document.getElementById("caption2").innerHTML = obj.id;
|
|
}
|
|
|
|
/**
|
|
* Function for showing and hiding synchronsation options
|
|
*
|
|
* @param boolean permSyncCat true shows options / flase hides options
|
|
*
|
|
* @author Timo Trautmann <timo.trautmann@4fb.de>
|
|
* @copyright four for business AG <www.4fb.de>
|
|
*/
|
|
function refreshSyncScreen(permSyncCat) {
|
|
//curLanguageSync = syncFrom;
|
|
var frame = parent.parent.frames["left"].frames['left_top'];
|
|
var syncElem = frame.document.getElementById('sync_cat_single');
|
|
var syncElemMultiple = frame.document.getElementById('sync_cat_multiple');
|
|
if (syncElem && syncElemMultiple) {
|
|
if (permSyncCat == 0) {
|
|
syncElem.style.display = 'none';
|
|
syncElemMultiple.style.display = 'none';
|
|
} else {
|
|
syncElem.style.display = 'block';
|
|
syncElemMultiple.style.display = 'block';
|
|
}
|
|
parent.parent.frameResize.resizeTopLeftFrame(frame.document.getElementById('top_left_container').offsetHeight+1);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Interface function for transfering
|
|
* data from left-bottom frame to the
|
|
* configuration object in the left-top
|
|
* frame.
|
|
*
|
|
* @param object HTML Table Row Object
|
|
*
|
|
* @author Jan Lengowski <Jan.Lengowski@4fb.de>
|
|
* @copyright four for business AG <www.4fb.de>
|
|
*/
|
|
function conInjectData(obj) {
|
|
/* Configuration Object Reference */
|
|
cfgObj = parent.parent.frames["left"].frames['left_top'].cfg;
|
|
|
|
/* Split the data string.
|
|
0 -> category id
|
|
1 -> category template id
|
|
2 -> category online
|
|
3 -> category public
|
|
4 -> has right for: template
|
|
5 -> has right for: online
|
|
6 -> has right for: public
|
|
7 -> has right for: template_edit
|
|
8 -> cat is syncable
|
|
9 -> idstring not splitted */
|
|
tmp_data = obj.id;
|
|
data = tmp_data.split("-");
|
|
|
|
if ( data.length == 9 ) {
|
|
/* Transfer data to the cfg object
|
|
through the .load() method */
|
|
//cfgObj.load(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7]);
|
|
cfgObj.load(data[0], data[1], data[2], data[3], data[4], data[5], data[6], data[7], data[8], obj.id);
|
|
refreshSyncScreen(data[8]);
|
|
} else {
|
|
cfgObj.reset();
|
|
refreshSyncScreen(0);
|
|
}
|
|
|
|
/* String for debugging */
|
|
str = "";
|
|
str += "Category ID is: " + data[0] + "\n";
|
|
str += "Template ID is: " + data[1] + "\n";
|
|
str += "Online status is: " + data[2] + "\n";
|
|
str += "Public status is: " + data[3] + "\n";
|
|
str += "Right for Template: " + data[4] + "\n";
|
|
str += "Right for Online: " + data[5] + "\n";
|
|
str += "Right for Public: " + data[6] + "\n";
|
|
str += "Right for Template Config: " + data[7] + "\n";
|
|
str += "data7: " + data[7] + "\n";
|
|
|
|
if (is.NS)
|
|
{
|
|
if (!parent.parent.frames["left"].frames['left_top'].cfg.scrollX) parent.parent.frames["left"].frames['left_top'].cfg.scrollX = 0;
|
|
if (!parent.parent.frames["left"].frames['left_top'].cfg.scrollY) parent.parent.frames["left"].frames['left_top'].cfg.scrollY = 0;
|
|
|
|
parent.parent.frames["left"].frames['left_top'].cfg.scrollX = window.scrollX;
|
|
parent.parent.frames["left"].frames['left_top'].cfg.scrollY = window.scrollY;
|
|
}
|
|
}
|
|
|
|
/**
|
|
rowMark instances
|
|
**/
|
|
|
|
/* rowMark instance for the
|
|
general use */
|
|
row = new rowMark('#f9fbdd', '#ecf1b2', '#cccccc', 'row');
|
|
|
|
/* rowMark instance for the
|
|
Subnavigation */
|
|
sub = new rowMark('red', '#FFF', 'blue', 'sub');
|
|
|
|
/* rowMark instance for the
|
|
Content area */
|
|
con = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'conInjectData(oRow)', 'con');
|
|
|
|
/* rowMark instance for the
|
|
Content Category area */
|
|
str = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'refreshSelectedBaseCategory(oRow)', 'str');
|
|
|
|
/* rowMark instance for the
|
|
Upload area */
|
|
//upl = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'setPath(oRow)', 'upl');
|
|
upl = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'refreshPathFrame(oRow)', 'upl');
|
|
|
|
/* Create a new rowMark
|
|
Instance for the Content-
|
|
Article overview area */
|
|
artRow = new rowMark('#f9fbdd', '#ecf1b2', '#ecf1b2', 'if (conArtOverviewExtractData(oRow) == false) { window.setTimeout(conArtOverviewExtractData(oRow), 250); }', 'artRow');
|
|
|
|
|
|
/* rowMark instance for
|
|
area 'lay' */
|
|
lay = new rowMark('#f9fbdd', '#ecf1b2', '#a9aec2', 'saveObj(oRow)', 'lay');
|
|
|
|
function saveObj(oRow)
|
|
{
|
|
parent.parent.frames["left"].frames["left_top"].obj = oRow.id;
|
|
}
|
|
|
|
function refreshPathFrame(oRow) {
|
|
var newPath = oRow.id;
|
|
var left_top = parent.parent.frames["left"].frames["left_top"];
|
|
|
|
if (left_top) {
|
|
if (left_top.document.getElementById('caption2')) {
|
|
left_top.document.getElementById('caption2').innerHTML = newPath;
|
|
}
|
|
|
|
if (left_top.document.newdir) {
|
|
left_top.document.newdir.path.value = newPath;
|
|
}
|
|
|
|
id_path = newPath;
|
|
}
|
|
}
|
|
|
|
/**refreshSelectedBaseCategory
|
|
* Generic function to reMark a row
|
|
*/
|
|
function reMark(sObjId)
|
|
{
|
|
var elm = document.getElementById(sObjId);
|
|
|
|
if (typeof elm == 'object')
|
|
{
|
|
lay.over(elm);
|
|
lay.click(elm);
|
|
|
|
if (elm && elm != null)
|
|
{
|
|
elm.scrollIntoView(false);
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function returns offset left, top, width and heigth of a given htnmlelement as array
|
|
*
|
|
* @param object oElement - Object which should be analyzed
|
|
* @return array - containing dimension information
|
|
*/
|
|
var getElementPostion = function (oElement) {
|
|
var iHeigth = oElement.offsetHeight;
|
|
var iWidth = oElement.offsetWidth;
|
|
var iTop = 0, iLeft = 0;
|
|
while (oElement) {
|
|
iTop += oElement.offsetTop || 0;
|
|
iLeft += oElement.offsetLeft || 0;
|
|
oElement = oElement.offsetParent;
|
|
};
|
|
return [iLeft, iTop, iHeigth, iWidth];
|
|
}
|