123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- function frxOpenPrint(url) {
- window.open(url, '_blank','resizable,scrollbars,width="400",height="300"');
- };
- function frRequestObject() {
- if (typeof XMLHttpRequest === 'undefined') {
- XMLHttpRequest = function() {
- try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
- catch(e) {}
- try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
- catch(e) {}
- try { return new ActiveXObject("Msxml2.XMLHTTP"); }
- catch(e) {}
- try { return new ActiveXObject("Microsoft.XMLHTTP"); }
- catch(e) {}
- throw new Error("This browser does not support XMLHttpRequest.");
- };
- }
- return new XMLHttpRequest();
- }
- function frRequestServer(url, form) {
- if (form) {
- var multiLineHtmlEncode = function (value) {
- var lines = value.replace(/\r\n|\n\r|\n|\r/g, "\n").split("\n");
- for (var i = 0; i < lines.length; i++) {
- lines[i] = $('<div/>').text(lines[i]).html();
- }
- return lines.join('\r\n');
- };
- // make post data because old IE doesn't have FormData
- var urlEncodedDataPairs = [];
- for (var name in form) {
- var htmlEncodedName = multiLineHtmlEncode(name);
- var htmlEncodedValue = multiLineHtmlEncode(form[name]);
- urlEncodedDataPairs.push(encodeURIComponent(htmlEncodedName) + '=' + encodeURIComponent(htmlEncodedValue));
- }
- var urlEncodedData = urlEncodedDataPairs.join('&').replace(/%20/g, '+');
- $.post(
- encodeURI(url),
- urlEncodedData,
- onFrAjaxSuccess
- );
- return;
- }
- $.get(
- encodeURI(url),
- {
- "_": $.now()
- },
- onFrAjaxSuccess
- );
- }
- function frClick(url, id, kind, value) {
- if (kind == 'text_edit') {
- var that = this;
- if (that.win && that.win.close) {
- that.win.close();
- }
- that.win = frPopup(url + '?form=' + id + '&formName=text_edit&formClick=' + value, 'Text_edit', 400, 200);
- that.win.onmessage = function (e) {
- //if (e.data == 'submit') {
- var area = that.win.document.getElementById('js-textarea');
- frRequestServer(url + '?previewobject=' + id + '&' + kind + '=' + value, { text: area.value });
- that.win.close();
- //}
- };
- return;
- }
- frRequestServer(url + '?previewobject=' + id + '&' + kind + '=' + value);
- }
- function onFrAjaxSuccess(data, textStatus, request) {
- var obj = request.getResponseHeader("FastReport-container");
- var div = document.getElementById(obj);
- div = frReplaceInnerHTML(div, data);
- if (div != null) {
- var scripts = div.getElementsByTagName('script');
- for (var i = 0; i < scripts.length; i++) {
- eval(scripts[i].text);
- }
- }
- }
- function frReplaceInnerHTML(repobj, html) {
- var obj = repobj;
- if (obj != null) {
- var newObj = document.createElement(obj.nodeName);
- newObj.id = obj.id;
- newObj.className = obj.className;
- $(newObj).html(html);
- newObj.style.display = "inline-block";
- newObj.style.width = "100%";
- newObj.style.height = "100%";
- if (obj.parentNode)
- obj.parentNode.replaceChild(newObj, obj);
- else
- obj.innerHTML = html;
- return newObj;
- }
- else
- return null;
- }
- function frProcessReqChange() {
- try
- {
- if (req.readyState == 4)
- {
- if (req.status == 200)
- {
- obj = req.getResponseHeader("FastReport-container");
- div = document.getElementById(obj);
- div = frReplaceInnerHTML(div, req.responseText);
- var scripts = div.getElementsByTagName('script');
- for (var i = 0; i < scripts.length; i++)
- eval(scripts[i].text);
- }
- else
- {
- throw new Error("Error: " + req.statusText);
- }
- }
- }
- catch( e ) {
- throw new Error("Error: " + e);
- }
- }
- function frOutline(data, id, cb) {
- var sizes = null;
- if (localStorage) {
- sizes = localStorage.getItem('fr-split-sizes');
- }
- if (sizes) {
- sizes = JSON.parse(sizes);
- } else {
- sizes = [25, 75];
- }
- var split = frOutline.Split(['.froutline', '.frbody'], {
- sizes: sizes,
- minSize: 50,
- snapOffset: 20,
- onDragEnd: function () {
- if (localStorage) {
- localStorage.setItem('fr-split-sizes', JSON.stringify(split.getSizes()));
- }
- }
- });
- $('.froutlinecontainer').jstree({
- 'core': {
- 'data': data,
- 'multiple': false,
- 'themes': {
- 'dots': false
- }
- },
- 'state': {
- 'key': id
- },
- 'types': {
- 'default': {
- 'icon': 'jstree-file'
- }
- },
- 'plugins': ['state', 'types']
- });
-
- $('.froutlinecontainer').on('ready.jstree', function (e, data) {
- $('.froutlinecontainer').on('changed.jstree', function (e, data) {
- if (data.action == 'select_node' && data.node && data.node.data) {
- cb(+(data.node.data.page) + 1);
- }
- });
- });
- }
- function frPopup(url, title, w, h) {
- // Fixes dual-screen position Most browsers Firefox
- var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screenX;
- var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screenY;
- var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : screen.width;
- var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : screen.height;
- var left = ((width / 2) - (w / 2)) + dualScreenLeft;
- var top = ((height / 2) - (h / 2)) + dualScreenTop;
- var params = 'menubar=0, toolbar=0, location=0, status=0, resizable=1, scrollbars=1';
- var newWindow = window.open(url, title, params + ', width=' + w + ', height=' + h + ', top=' + top + ', left=' + left);
- if (newWindow.focus) {
- newWindow.focus();
- }
- return newWindow;
- }
|