⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.js

📁 its a varypowrerfull javascript tool
💻 JS
📖 第 1 页 / 共 2 页
字号:
/* *  $Id: main.js,v 1.1 2006/08/07 10:41:25 source Exp $ * *  This file is part of the OpenLink Software Ajax Toolkit (OAT) project. * *  Copyright (C) 2006 Ondrej Zara and OpenLink Software * *  See LICENSE file for details. */var fd = false;var dialogs = {};var tbar = false;function set_filename(name) {	$("corner").innerHTML = name.split("/").pop();	IO.filename = name;}var Connection = {	get_settings:function() {		/* read relevant settings from inputboxes */		OAT.Xmla.endpoint = $v("endpoint");		OAT.Xmla.dsn = $v("dsn");		OAT.Xmla.user = $v("user");		OAT.Xmla.password = $v("password");		OAT.Ajax.user = OAT.Xmla.user;		OAT.Ajax.password = OAT.Xmla.password;		var h = $('options_type_http');		var d = $('options_type_dav');		h.checked = ($v('login_put_type') == "http");		d.checked = ($v('login_put_type') == "dav");		h.__checked = (h.checked ? "1" : "0");		d.__checked = (d.checked ? "1" : "0");	},	discover_dsn:function() {		/* discover datasources */		Connection.get_settings();		var ref=function(pole) {			if (pole.length) { dialogs.connection.okBtn.removeAttribute("disabled"); }			var select = $("dsn");			OAT.Dom.clear(select);			for (var i=0;i<pole.length;i++) { OAT.Dom.option(pole[i],pole[i],select); } /* for all rows */		} /* callback */		OAT.Xmla.discover(ref);	},	use_dsn:function() {		/* discover catalogs */		Connection.get_settings();		var ref=function(pole) {			OAT.Dimmer.hide();			ask_for_catalogs(pole,1);		} /* callback */		OAT.Xmla.dbschema(ref);		var qRef = function(q) {			OAT.SqlQueryData.columnQualifierPre = q[0];			OAT.SqlQueryData.columnQualifierPost = q[1];		}		OAT.Xmla.qualifiers(qRef);	}} /* Connection */function ask_for_catalogs(pole,firstTime) {	/*		this is tricky - virtuoso sometimes requires name/pwd for		table detection. this is why we first send only one request		and if it succeeds, we ask for remaining catalogs	*/	if (firstTime && pole.length) {		/* first, testing catalog */		var name = pole[0];		var callback = function() { ask_for_catalogs(pole,0); }		OAT.Xmla.tables(name,callback);	} else {		/* ok, first request was successfully returned - go for it for real */		Filter.clear();		if (pole.length) { var lastCatalog = pole[pole.length-1]; }		for (var i=0;i<pole.length;i++) {			var name = pole[i];			var callback = function(catalog_name,arr) {				read_tables(catalog_name,arr,lastCatalog);			}			OAT.Xmla.tables(name,callback);		} /* for each catalog */		/* no catalogs present? */		if (!pole.length) {			var callback = function(catalog,arr) {				read_tables("",arr,"");			}			OAT.Xmla.tables("",callback);		}	}}function read_tables(catalog_name,pole,lastCatalog) {	/* we have 'pole' of tables in this catalog */	for (var i=0;i<pole[0].length;i++) {		var schema = pole[1][i];		var table = pole[0][i];		Filter.addTable(catalog_name,schema,table);	}	if (catalog_name == lastCatalog) { Filter.create(); }}var Filter = {	addTable:function(catalog,schema,table) {		Filter.tables.push([catalog,schema,table]);		if (!(schema in Filter.distinct_schemas)) { Filter.distinct_schemas[schema] = 1; }		if (!(catalog in Filter.distinct_catalogs)) { Filter.distinct_catalogs[catalog] = 1; }	},	clear:function() {		OAT.Dom.clear("ds_schemas");		OAT.Dom.clear("ds_catalogs");		Filter.distinct_catalogs = {};		Filter.distinct_schemas = {};		Filter.tables = [];	},	create:function() { /* create catalog & schema lists */		OAT.Dom.option("[all]","-1","ds_schemas"); /* first value */		OAT.Dom.option("[all]","-1","ds_catalogs");		for (var p in Filter.distinct_catalogs) { /* other values */			if (p == ""){ 				OAT.Dom.option("[no catalog]",p,"ds_catalogs");			} else {				OAT.Dom.option(p,p,"ds_catalogs");			}		} 		for (var p in Filter.distinct_schemas) { OAT.Dom.option(p,p,"ds_schemas"); }		$("ds_schemas").selectedIndex = 0; /* first is selected */		$("ds_catalogs").selectedIndex = 0;		Filter.apply(); /* when filter is created, display all tables */	},	apply:function() {		var okArr = [];		for (var i=0;i<Filter.tables.length;i++) {			var item = Filter.tables[i];			var ok = 1;			var cVal = $v("ds_catalogs");			var sVal = $v("ds_schemas");			if (cVal != "-1" && cVal != item[0]) { ok = 0; }			if (sVal != "-1" && sVal != item[1]) { ok = 0; }			if (ok) { okArr.push(item); }		}		/* sort tables which are ok */		var compare = function(a,b) {			var n1 = a[2].toLowerCase();			var n2 = b[2].toLowerCase();			if (n1 < n2) { return -1; }			if (n1 > n2) { return 1; }			return 0;		}		okArr.sort(compare); /* sort by table names */		/* add them to tree */		OAT.Dom.clear("ds_tables");		for (var i=0;i<okArr.length;i++) {			var item = okArr[i];			var label = (item[0] != "" ? item[1]+"."+item[2] : item[2]);			var o = OAT.Dom.option(label,item[2],"ds_tables");			o.schema = item[1];			o.catalog = item[0];		}	} /* Filter.apply */}var IO = {	filename:"",	save:function(xml,name) {		var send_ref = function() { return xml; }		var recv_ref = function(data) { alert('Saved.'); }		set_filename(name);		OAT.Ajax.command(OAT.Ajax.PUT + OAT.Ajax.AUTH_BASIC,name,send_ref,recv_ref,OAT.Ajax.TYPE_TEXT);	},	load:function() {		if ($("options_type_http").checked) {			var name = OAT.Dav_old.getFile("/DAV/home/"+OAT.Xmla.user,".xml");			if (!name) { return; }			set_filename(name);			$("corner").innerHTML = name;			var callback = function(data) { fd.loadXML(data); }			OAT.Ajax.command(OAT.Ajax.GET + OAT.Ajax.AUTH_BASIC,name,function(){return '';},callback,OAT.Ajax.TYPE_TEXT);		}		if ($("options_type_dav").checked) {			var options = {				mode:'open_dialog',				user:OAT.Xmla.user,				pass:OAT.Xmla.password,				pathDefault:'/DAV/home/'+OAT.Xmla.user+'/',				onOpenClick:function(path,fname,data){					set_filename(path+fname);					fd.loadXML(data);					return true; /* return false will keep browser open */				}			};			OAT.WebDav.open(options);		}	},	preview:function() {		if (IO.filename == "") { alert("Design not saved yet!"); return; }		window.open("http://"+window.location.host+IO.filename,"Design preview");	}}var DS = { /* datasources / bindings */	selectedForm:false,		applyBinding:function() {		var f = DS.selectedForm;		var ntype = 0;		if ($("bind_sql").checked) { ntype = 1; }		if ($("bind_soap").checked) { ntype = 2; }		if ($("bind_rest").checked) { ntype = 3; }				if (ntype != f.ds.type) {			f.fieldBinding.selfFields = [];			f.fieldBinding.masterFields = [];			f.fieldBinding.masterForms = [];			f.ds.type = ntype;		}			switch (f.ds.type) {			case 1:				if ($("bind_sql_query").checked) {					f.ds.subtype = 1;					f.ds.query = $v("bind_sql_query_text");				}								if ($("bind_sql_file").checked) {					f.ds.subtype = 2;					f.ds.url = $("bind_sql_file_text").innerHTML;				}				if ($("bind_sql_table").checked) {					f.ds.subtype = 3;					f.ds.url = $("bind_sql_table_text").innerHTML;				}			break;			case 2:	f.ds.url = $v("bind_soap_wsdl"); break;			case 3:					f.ds.url = $v("bind_rest_url"); 				f.ds.subtype = $v("bind_rest_type");				f.ds.xpath = ($v("bind_rest_xpath") == "1" ? 1 : 0);			break;		}				f.refresh(function(){fd.selectForm(f);},true);		DS.selectedForm = false;	},	readBinding:function(form) {		DS.selectedForm = form;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -