- see ChangeLog;
Monotone-Parent: 7baf484eb57aa68904091d6b53bc95986c669875 Monotone-Revision: cbf9de1ff6c0a47ce98d4c8b87c0a25450017ee7 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2006-07-07T21:27:12 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
b50401f2e7
commit
2d5c068ee8
|
@ -1,5 +1,8 @@
|
||||||
2006-07-07 Wsourdeau Sourdeau <wsourdeau@inverse.ca>
|
2006-07-07 Wsourdeau Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
|
* UI/WebServerResources/generic.js: added code to manage
|
||||||
|
selections within HTML containers.
|
||||||
|
|
||||||
* UI/Common/UIxPageFrame.m ([UIxPageFrame -productJavaScriptURL]):
|
* UI/Common/UIxPageFrame.m ([UIxPageFrame -productJavaScriptURL]):
|
||||||
added method to determine the possible URL for a product-specific
|
added method to determine the possible URL for a product-specific
|
||||||
javascript filename of the forme <productname>.js.
|
javascript filename of the forme <productname>.js.
|
||||||
|
|
|
@ -166,3 +166,89 @@ function triggerOpenerCallback() {
|
||||||
window.opener.location.href = cburl;
|
window.opener.location.href = cburl;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* selection mechanism */
|
||||||
|
|
||||||
|
function selectNode(node) {
|
||||||
|
var classStr = '' + node.getAttribute('class');
|
||||||
|
|
||||||
|
position = classStr.indexOf('_selected', 0);
|
||||||
|
if (position < 0) {
|
||||||
|
classStr = classStr + ' _selected';
|
||||||
|
node.setAttribute('class', classStr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function deselectNode(node) {
|
||||||
|
var classStr = '' + node.getAttribute('class');
|
||||||
|
|
||||||
|
position = classStr.indexOf('_selected', 0);
|
||||||
|
while (position > -1) {
|
||||||
|
classStr1 = classStr.substring(0, position);
|
||||||
|
classStr2 = classStr.substring(position + 10, classStr.length);
|
||||||
|
classStr = classStr1 + classStr2;
|
||||||
|
position = classStr.indexOf('_selected', 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
node.setAttribute('class', classStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
function deselectAll(parent) {
|
||||||
|
for (var i = 0; i < parent.childNodes.length; i++) {
|
||||||
|
var node = parent.childNodes.item(i);
|
||||||
|
if (node.nodeType == 1) {
|
||||||
|
deselectNode(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isNodeSelected(node) {
|
||||||
|
var classStr = '' + node.getAttribute('class');
|
||||||
|
var position = classStr.indexOf('_selected', 0);
|
||||||
|
|
||||||
|
return (position > -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function acceptMultiSelect(node) {
|
||||||
|
var accept = ('' + node.getAttribute('multiselect')).toLowerCase();
|
||||||
|
|
||||||
|
return (accept == 'yes');
|
||||||
|
}
|
||||||
|
|
||||||
|
function getSelection(parentNode) {
|
||||||
|
var selArray = new Array();
|
||||||
|
|
||||||
|
for (var i = 0; i < parentNode.childNodes.length; i++) {
|
||||||
|
node = parentNode.childNodes.item(i);
|
||||||
|
if (node.nodeType == 1
|
||||||
|
&& isNodeSelected(node)) {
|
||||||
|
selArray.push(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return selArray.join('|');
|
||||||
|
}
|
||||||
|
|
||||||
|
function onRowClick(node, event) {
|
||||||
|
var text = document.getElementById('list');
|
||||||
|
text.innerHTML = '';
|
||||||
|
|
||||||
|
var startSelection = getSelection(node.parentNode);
|
||||||
|
if (event.shiftKey == 1
|
||||||
|
&& acceptMultiSelect(node.parentNode)) {
|
||||||
|
if (isNodeSelected(node) == true) {
|
||||||
|
deselectNode(node);
|
||||||
|
} else {
|
||||||
|
selectNode(node);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
deselectAll(node.parentNode);
|
||||||
|
selectNode(node);
|
||||||
|
}
|
||||||
|
if (startSelection != getSelection(node.parentNode)) {
|
||||||
|
var code = '' + node.parentNode.getAttribute('onselectionchange');
|
||||||
|
if (code.length > 0) {
|
||||||
|
node.eval(code);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue