]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/web/reports/oils_rpt_utils.js
better support for removing items from the "from" clause
[Evergreen.git] / Open-ILS / web / reports / oils_rpt_utils.js
1 var oilsRptID = 0;
2 var oilsRptID2 = 0;
3 function oilsNextId() {
4         return 'oils_'+ (oilsRptID++);
5 }
6
7 function oilsRptNextParam() {
8         return '::PARAM'+ (oilsRptID2++);
9 }
10
11 function oilsRptResetParams() {
12         oilsRptID2 = 0;
13 }
14
15 function nodeText(id) {
16         if($(id))
17                 return $(id).innerHTML;
18         return "";
19 }
20
21 function print_tabs(t) {
22         var r = '';
23         for (var j = 0; j < t; j++ ) { r = r + "  "; }
24         return r;
25 }
26
27
28 function oilsRptDebug() {
29         _debug("\n-------------------------------------\n");
30         _debug(oilsRpt.toString());
31         _debug("\n-------------------------------------\n");
32         if(!oilsRptDebugEnabled) return;
33         if(!oilsRptDebugWindow)
34                 oilsRptDebugWindow = window.open('','Debug','resizable,width=700,height=500,scrollbars=1'); 
35
36         oilsRptDebugWindow.document.body.innerHTML = oilsRpt.toHTMLString();
37 }
38
39 /* pretty print JSON */
40 function formatJSON(s) {
41         var r = ''; var t = 0;
42         for (var i in s) {
43                 if (s[i] == '{' || s[i] == '[' ) {
44                         r = r + s[i] + "\n" + print_tabs(++t);
45                 } else if (s[i] == '}' || s[i] == ']') {
46                         t--; r = r + "\n" + print_tabs(t) + s[i];
47                 } else if (s[i] == ',') {
48                         r = r + s[i] + "\n" + print_tabs(t);
49                 } else {
50                         r = r + s[i];
51                 }
52         }
53         return r;
54 }
55
56
57 function print_tabs_html(t) {
58         var r = '';
59         for (var j = 0; j < t; j++ ) { r = r + "&nbsp;&nbsp;"; }
60         return r;
61 }
62
63 function formatJSONHTML(s) {
64         var r = ''; var t = 0;
65         for (var i in s) {
66                 if (s[i] == '{' || s[i] == '[') {
67                         r = r + s[i] + "<br/>" + print_tabs_html(++t);
68                 } else if (s[i] == '}' || s[i] == ']') {
69                         t--; r = r + "<br/>" + print_tabs_html(t) + s[i];
70                 } else if (s[i] == ',') {
71                         r = r + s[i];
72                         r = r + "<br/>" + print_tabs_html(t);
73                 } else {
74                         r = r + s[i];
75                 }
76         }
77         return r;
78 }
79
80 function setMousePos(e) {
81         oilsMouseX = e.pageX
82         oilsMouseY = e.pageY
83         oilsPageXMid = parseInt(window.innerHeight / 2);
84         oilsPageYMid = parseInt(window.innerWidth / 2);
85 }  
86
87 function buildFloatingDiv(div, width) {
88         var left = parseInt((window.innerWidth / 2) - (width/2));
89         var top = oilsMouseY;
90         var dbot = oilsMouseY + div.clientHeight;
91         if( dbot > window.innerHeight ) {
92                 top = oilsMouseY - div.clientHeight - 10;
93         }
94         div.setAttribute('style', 'left:'+left+'px; top:'+top+'px; width:'+width+'px');
95 }
96
97
98 function mergeObjects( src, obj ) {
99         for( var i in obj ) {
100                 if( typeof obj[i] == 'string' ) {
101                         src[i] = obj[i];
102                 } else {
103                         if(src[i]) mergeObjects(src[i], obj[i]);
104                         else src[i] = obj[i];
105                 }
106         }
107 }
108
109
110 /* scours the doc for elements with IDs.  When it finds one,
111         it grabs the dom node and sets a reference to the node at DOM[id]; */
112 function oilsRptIdObjects(node) {
113         if(!node) node = document.documentElement;
114         if( node.nodeType != 1 ) return;
115         var id = node.getAttribute('id');
116         if( id ) eval("DOM."+id+"=$('"+id+"');");
117         var children = node.childNodes;
118         for( var c = 0; c < children.length; c++ ) 
119                 oilsRptIdObjects(children[c]);
120 }
121
122
123 function oilsRptObjectKeys(obj) {
124         var k = [];
125         for( var i in obj ) k.push(i);
126         return k;
127 }
128