📄 dhtml.js
字号:
/* Copyright (C) 1996-2002 MicroStrategy Incorporated, All rights reserved. Confidential. */
var calendarScript = false;
var advancedDrillScript = false;
var adminOptionsScript = false;
var columnWidthsGGScript = false;
var colHandlesSetScript = false;
var outlineModeGGScript = false;
var lockSetScript = false;
var formatEditorScript = false;
var filterScript = false;
var promptFunctionsScript = false;
var menuScript = false;
var incrementalFetchCheckBoxesScript = false;
var bFirstMetric = false;
var sURL = '';
var bDesignMode = false;
var lIndex = 0;
var sMsgID = '';
var sView = '';
var bAdvancedEdit = false;
var flg_RTitle = 1;
var flg_QLinks = 2;
var flg_FTBar = 4;
var flg_Filt = 8;
var flg_PAxis = 16;
var flg_RTBar = 32;
var flg_SRTEditor = 64;
var flg_DRLEditor = 128;
var flg_FSELEditor = 256;
var flg_FRMEditor = 512;
var flg_FMATEditor = 1024;
var flg_SUBEditor = 2058;
var flg_Email = 4096;
var flg_Send = 8192;
var flg_ObjBr = 16384;
var flg_Grid = 32768;
var flg_IncFetch = 65536;
var aEditorButton = new Array();
aEditorButton[1] = '';
aEditorButton[2] = 0;
var aTemplateElements = new Array();
var lPropertyAlias = 0;
var lPropertyKey = 0;
var lPropertyType = 0;
var lPropertyDerivedMetric = 0;
var lPropertyFormula = 0;
var lPropertyPosition = 0;
var sNewMetric = '';
var DssXmlTemplateMetrics = '';
var logClientStopTimer = false;
var logClient = false;
var sTreeName = 'tree1';
//prompt anchor
var currentPin = '-1';
//**DHTMLJSPAPI
var initializeCalls = "";
//**DHTMLAPI
var bIsIE4 = (document.all) ? true : false; // IE 4+
var bIsW3C = (document.getElementById && !bIsIE4) ? true : false; // N6
var bIsNN4 = (document.layers) ? true : false; // NC4
// Mouse screen coordinates.
var lMouseX = 0;
var lMouseY = 0;
// bIsDHTML capable browser for degradability
var bIsDHTML = (bIsIE4 || bIsW3C || bIsNN4) ? true : false;
//This is done to support the insertAdjacentElement, insertAdjacentHTML and insertAdjacentText calls in netscape browsers
if(typeof HTMLElement!="undefined" && !HTMLElement.prototype.insertAdjacentElement){
HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode)
{
switch (where){
case 'beforeBegin':
this.parentNode.insertBefore(parsedNode,this)
break;
case 'afterBegin':
this.insertBefore(parsedNode,this.firstChild);
break;
case 'beforeEnd':
this.appendChild(parsedNode);
break;
case 'afterEnd':
if (this.nextSibling)
this.parentNode.insertBefore(parsedNode,this.nextSibling);
else this.parentNode.appendChild(parsedNode);
break;
}
}
HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr)
{
var r = this.ownerDocument.createRange();
r.setStartBefore(this);
var parsedHTML = r.createContextualFragment(htmlStr);
this.insertAdjacentElement(where,parsedHTML)
}
HTMLElement.prototype.insertAdjacentText = function(where,txtStr)
{
var parsedText = document.createTextNode(txtStr)
this.insertAdjacentElement(where,parsedText)
}
}
function elementClick(e) {
//*********************************************************************************************
//Purpose: Handle all click events on the page.
//Inputs: e - the netscape event object
//Outputs: None.
//*********************************************************************************************
// If the browser is N6 and the event object did not
// come through then exit the function.
if (bIsW3C && !e)
return false;
// Get the integer representation of the button clicked. Add 1 to netscape 6.1
var iButton = (bIsIE4) ? event.button : e.button + 1;
// If the button was the left button then call the leftClick function.
if (iButton == 1)
return leftClick(e);
}
function rightClick(e) {
//*********************************************************************************************
//Purpose: Call the appropriate right click function.
//Inputs: e - the Netscape event object.
//Outputs: None.
//*********************************************************************************************
// Get the event target element.
var oTarget = getEventTarget(e);
oTarget = findTarget(oTarget, 'CX');
// If the target object supports context menus then call the
// context menu formula.
if (oTarget) {
// Attach the upClick event to the mouse up event to cancel
// the next mouse up event.
document.onmouseup = upClick;
// Call the display context menu function.
return displayContextMenu(oTarget.getAttribute('CX'), eval(oTarget.getAttribute('CXID')), oTarget.getAttribute('CXID'), oTarget.getAttribute('D1'), e);
}
// Otherwise, return true.
return true;
}
function leftClick(e) {
//*********************************************************************************************
//Purpose: Call the appropriate left click function.
//Inputs: e - the Netscape event object.
//Outputs: None.
//*********************************************************************************************
// Get the event target element.
var oTarget = getEventTarget(e);
oTarget = findTarget(oTarget, 'DG');
// If the target element is draggable then call drag function.
if (oTarget) {
startDrag(e, oTarget);
return false;
}
// Otherwise, return true.
return true;
}
function navigateLink(e) {
//*********************************************************************************************
//Purpose: Check to see if the item clicked is a simulated link. If so,
// then navigate to the target link.
//Inputs: e - Navigator event object.
//Outputs: None.
//*********************************************************************************************
// Exit if the event object is corrupted.
if (bIsW3C && !e)
return false;
// Release the mouse move and mouse up events.
document.onmousemove = null;
document.onmouseup = null;
// If the clicked element is a simulated link then navigate to the
// target page.
if (oBeingDragged.getAttribute('SL'))
eval(oBeingDragged.getAttribute('SL'));
oBeingDragged = null;
return false;
}
function Init() {
//*********************************************************************************************
//Purpose: This function gets called by the document onload event
// and associates the appropriate event handlers.
//Inputs: None.
//Outputs: None.
//*********************************************************************************************
document.onmousedown = elementClick;
document.oncontextmenu = rightClick;
dragInit(); // Drag and drop initialization routine.
//initialise();
if(logClientStopTimer) {
stopTimer(logClientName);
}
if(logClient) {
logClientTimes(currentUrlObjectID, currentFullURL);
}
}
function returnFormField(oForm, sField){
var col = null;
var elem = null;
col = oForm.elements;
for (var i=0; i<col.length; i++){
elem = col[i];
if (elem.id == sField) {
return elem;
}
}
return elem;
}
function submitFormSpecial(sFormName, aFields, aFieldValues) {
var oField = null;
var bFailed = false;
var oForm = getObj(sFormName);
for (i=0; i<aFields.length; i++) {
// For each one of the fields, look for it on the form
oField = returnFormField(oForm, aFields[i]);
if (oField) {
//alert(aFields[i] + " = " + aFieldValues[i]);
oField.value = aFieldValues[i];
}
else
bFailed = true;
}
if (!bFailed) {
submitForm(oForm);
}
}
function submitFormValues(sFormName, aFields, aFieldValues) {
//*********************************************************************************************
//Purpose: Changes the value of a supplied field and submits the form
//Inputs: sFormName, sFieldName, sFieldValue
//Outputs: None.
//*********************************************************************************************
var oField = null;
var bFailed = false;
var oForm = getObj(sFormName);
synchForm(oForm);
for (i=0; i<aFields.length; i++) {
oField = getObj(aFields[i]);
if (oField) {
oField.value = aFieldValues[i];
}
else
bFailed = true;
}
if (!bFailed) {
submitForm(oForm);
}
}
function updatefbNameFormula() {
//*********************************************************************************************
//Purpose: Updates the definition text box in formula editor
//Inputs: None.
//Outputs: None.
//*********************************************************************************************
var oTemplateElement = getObj('fbTemplateElement');
var oName = getObj('fbName');
var oFormula = getObj('fbFormula');
var oFormulaSpn = getObj('spnfbFormula');
oFormula.value = aTemplateElements[parseInt(oTemplateElement.value)][lPropertyFormula];
if ((parseInt(oTemplateElement.value) == 0) && (aTemplateElements[parseInt(oTemplateElement.value)][lPropertyKey] == ''))
oName.value = sNewMetric;
else {
//var reg = new RegExp("</SCRIPT>");
var alias = aTemplateElements[parseInt(oTemplateElement.value)][lPropertyAlias];
//if (alias.toUpperCase().search(reg) != -1) {
// alias = alias.substr(4, alias.length-7);
//}
oName.value = alias;
}
if (aTemplateElements[parseInt(oTemplateElement.value)][lPropertyDerivedMetric] == 'false') {
oFormula.readOnly = true;
oFormulaSpn.setAttribute('TG', 'FALSE');
}
else {
oFormula.readOnly = false;
oFormulaSpn.setAttribute('TG', 'TRUE');
}
}
function toggleCheck(oCheck, useDefault) {
//*********************************************************************************************
//Purpose: Toggles check box image status.
//Inputs: Check box image.
//Outputs: None.
// ** UPDATED FOR GG IMPLEMENTATION **
//*********************************************************************************************
var chkState = oCheck.getAttribute("CV");
var oHidden = getObj(oCheck.getAttribute("CL"));
chkState--;
if (chkState < -2)
chkState = 0;
switch (chkState) {
case -1:
oCheck.src = sImgFolder + 'check_on.gif';
break;
case 0:
oCheck.src = sImgFolder + 'check_off.gif';
break;
case -2:
if (useDefault) {
oCheck.src = sImgFolder + 'Check_conflict.gif';
} else {
// There's no default, so from On it will change to Off
chkState = 0;
oCheck.src = sImgFolder + 'check_off.gif';
}
break;
}
oCheck.setAttribute("CV", chkState);
oHidden.value = chkState;
}
function synchForm(oForm) {
//*************************************************
//Purpose:
//*************************************************
var sField = '';
var ocHidden = oForm.getElementsByTagName('INPUT');
for (i = 0; i < ocHidden.length; i++) {
sField = ocHidden[i].name;
sField = sField.toUpperCase();
switch (sField) {
case 'INDEX':
ocHidden[i].value = lStateID;
break;
case 'MSGID':
ocHidden[i].value = sMsgID;
break;
case 'VIEW':
ocHidden[i].value = sView;
break;
}
}
return true;
}
//**DHTMLAPI
function getObj(vObject) {
//*********************************************************************************************
//Purpose: Return an object reference
//Inputs: vObject - object name or object reference
//Outputs: object reference.
//*********************************************************************************************
if (typeof vObject == 'string') {
if (bIsIE4)
return eval("document.all." + vObject);
else if (bIsW3C)
return document.getElementById(vObject);
else
if (document.layers[vObject])
return document.layers[vObject];
else
return eval("document." + vObject);
}
else {
return vObject;
}
}
function getObjects(vObject) {
//*********************************************************************************************
//Purpose: Return an object reference
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -