report_additionals.js

来自「SugarCRM5.1 开源PHP客户关系管理系统」· JavaScript 代码 · 共 2,099 行 · 第 1/5 页

JS
2,099
字号
	select_html_info['options'] = options;	cell.innerHTML=buildSelectHTML(select_html_info);	filters_arr[filters_count_map[current_filter_id]].module_select = cell.getElementsByTagName('select')[0];}function addModuleSelectGroup(cell,filter) {	var select_html_info = new Object();	var options = new Array();	var select_info = new Object();	select_info['name'] = 'group';	select_info['onchange'] = 'moduleSelectChangedGroup('+current_group_id+');';	select_html_info['select'] = select_info;	var link_defs = getSelectedLinkDefs();	var option_info = new Object();	option_info['value'] = 'self';	option_info['text'] = module_defs[current_module].label;	option_info['selected'] = selected;	options[options.length] = option_info;	var parts = filter.column_name.split(':');	var selected_link_name = parts[0];	for(var i in  link_defs) {		var linked_field = link_defs[i];		var selected = false;		if ( i == selected_link_name) {			selected=true;		} 		else {			selected=false;		}		// re-selected the remembered select (if there was one)		var option_info = new Object();		option_info['value'] = i;		var label = linked_field['label'];		if ( i != 'self' ) {			label = full_table_list[full_table_list[i].parent].label + ' &gt; '+ label;		}		option_info['text'] = label;		option_info['selected'] = selected;		options[options.length] = option_info;	}	select_html_info['options'] = options;	cell.innerHTML=buildSelectHTML(select_html_info);	groups_arr[groups_count_map[current_group_id]].module_select = cell.getElementsByTagName('select')[0];}function getOrderedFieldDefArray(field_defs,show_id_field) {	var field_defs_arr = new Array();	var id_field = null;	for(field_name in field_defs) {		var field = field_defs[field_name];		field_defs_arr.push(field);	}		field_defs_arr.sort( _sort_by_field_name);	if ( id_field  != null && show_id_field ) {		field_defs_arr.unshift(id_field);	}	return field_defs_arr;}function _sort_by_field_name(a,b) {	if ( typeof(a['vname']) == 'undefined') {		a['vname'] = a['name'];	} 	else if ( typeof(b['vname']) == 'undefined') {		b['vname'] = b['name'];	}		if ( a['type'] == 'name' ||  a['type'] == 'user_name' ) {		return -1;	} 	else if ( b['type'] == 'name' ||  b['type'] == 'user_name' ) {		return 1;	} 	else { 		return a['vname'].localeCompare( b['vname']);	}}function addColumnSelectFilter(cell,filter) {	var select_html_info = new Object();	var options = new Array();	var select_info = new Object();	var field_defs = new Object();	select_info['name'] = 'filter';	select_info['onchange'] = 'columnSelectChanged('+current_filter_id+');';	select_html_info['select'] = select_info;	var module_select = filters_arr[filters_count_map[current_filter_id]].module_select;	var table_key = module_select.options[module_select.selectedIndex].value;	if (table_key == 'self') {		selected_module = current_module;		field_defs = module_defs[selected_module].field_defs;	} 	else {		selected_module = table_key;		var field_defs = module_defs[full_table_list[table_key].module].field_defs;	}	var field_defs_arr = getOrderedFieldDefArray(field_defs,true);	var	selected = false;	for(var index in field_defs_arr) {		var field = field_defs_arr[index];		var key = table_key+":"+field.name;		if ( typeof(all_fields[key]) == 'undefined') {			continue;		}		if ( field.type  == 'time') {			continue;		}		if ( filter.column_name == key) {			selected = true;		} 		else {			selected = false;		}		var option_info = new Object();		option_info['value'] = key;		option_info['text'] = field.vname;		option_info['selected'] = selected;		options[options.length] = option_info;	}	select_html_info['options'] = options;	cell.innerHTML=buildSelectHTML(select_html_info);	filters_arr[filters_count_map[current_filter_id]].column_select = cell.getElementsByTagName('select')[0];}function addFilterInput(cell,filter) {	var filter_row = filters_arr[filters_count_map[current_filter_id]];	var qualifier_name = filter_row.qualify_select.options[filter_row.qualify_select.selectedIndex].value;	var module_select = filter_row.module_select;	var table_key = module_select.options[module_select.selectedIndex].value;	filter.table_key = table_key;	var module_select = filters_arr[filters_count_map[current_filter_id]].module_select;	var table_key = module_select.options[module_select.selectedIndex].value;	if (table_key == 'self') {	    selected_module = current_module;		var field_defs = module_defs[selected_module].field_defs;	}	else {		selected_module = table_key;		var field_defs = module_defs[full_table_list[table_key].module].field_defs; 	}	if ( typeof ( qualifier_name) == 'undefined' ||  qualifier_name == '') {		qualifier_name='equals';	}	var column_name = filter_row.column_select.options[filter_row.column_select.selectedIndex].value;	if ( typeof ( column_name) == 'undefined' || column_name == '') {		column_name='';	}	var field = all_fields[column_name].field_def;		var field_type = field.type;	if ( typeof(field.custom_type) != 'undefined') {		field_type = field.custom_type;	}	cell.innerHTML = "<table><tr></tr></table>";	var row = cell.getElementsByTagName("tr")[0];	if (qualifier_name == 'between') {		addFilterInputTextBetween(row,filter);	} 	else if (qualifier_name == 'between_dates') {		addFilterInputDateBetween(row,filter);	} 	else if (qualifier_name == 'empty' || qualifier_name == 'not_empty') {	    addFilterNoInput(row,filter); 	}	else if (field_type == 'date' || field_type == 'datetime') {		if (qualifier_name.indexOf('tp_') == 0) {			addFilterInputEmpty(row,filter);		}				else {			addFilterInputDate(row,filter);		}	} 	else if (field_type == 'id' || field_type == 'name' ) {		if ( qualifier_name == 'is') {			addFilterInputRelate(row,field,filter);		} 		else {			addFilterInputText(row,filter);		}	} 	else if ((field_type == 'user_name')||(field_type == 'assigned_user_name')) {		if(users_array=="") {			loadXML();		}		if (qualifier_name == 'one_of') {			addFilterInputSelectMultiple(row,users_array,filter);		}		else {			addFilterInputSelectSingle(row,users_array,filter);		}	} 	else if (field_type == 'enum' || field_type == 'multienum') {		if (qualifier_name == 'one_of') {			addFilterInputSelectMultiple(row,field.options,filter);		}		else {			addFilterInputSelectSingle(row,field.options,filter);		}	}	else if (field_type=='bool') {            var options = ['yes','no'];            addFilterInputSelectSingle(row,options,filter);    }	else {		addFilterInputText(row,filter);	}	return row;}function loadXML() {	var gURL = 'index.php?module=Reports&action=fillUserCombo';	if (window.XMLHttpRequest) { // code for Mozilla, Safari, etc 		xmlhttp=new XMLHttpRequest();		if (xmlhttp.overrideMimeType) {			xmlhttp.overrideMimeType('text/xml');		}			xmlhttp.open("GET", gURL, false);		xmlhttp.onreadystatechange=loadUsers;		xmlhttp.send(null);		loadUsers();	} 	else if (window.ActiveXObject) { //IE 		xmlhttp=new ActiveXObject('Microsoft.XMLHTTP'); 		if (xmlhttp) {			xmlhttp.onreadystatechange=loadUsers;			xmlhttp.open('GET', gURL, false);			xmlhttp.send();		}	}}function loadUsers() {	if (xmlhttp.readyState==4) { 		if(xmlhttp.status==200 || xmlhttp.status==0){ 			if (window.ActiveXObject)				xmlhttp.responseXML.loadXML(xmlhttp.responseText);			var acc = xmlhttp.responseXML.getElementsByTagName('data');			var opts = '';			for (var i=0;i<acc.length;i++)			{					val = getNodeValue(acc[i],'datavalue');				users_array[users_array.length] = eval("("+val+")");			}		}	}}function getNodeValue(obj,tag) {	return obj.getElementsByTagName(tag)[0].firstChild.nodeValue;}function addFilterInputText(row,filter) {	var cell = document.createElement("td");	var new_input = document.createElement("input");	new_input.type="text";	if ( typeof (filter.input_name0) == 'undefined') {		filter.input_name0 = '';	}	new_input.value=filter.input_name0;	new_input.name="text_input";	new_input.size="30";	new_input.maxsize="255";	new_input.visible="true";	cell.appendChild(new_input);	row.appendChild(cell);	var filter_row = filters_arr[filters_count_map[current_filter_id]];	filter_row.input_field0 = new_input;	filter_row.input_field1 = null;}function to_display_date(date_str) {	var date_arr = date_str.match(/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/);	if ( date_arr != null) {		var new_date = new String(cal_date_format);    	new_date = new_date.replace("%Y",date_arr[1]);    	new_date = new_date.replace("%m",date_arr[2]);    	new_date = new_date.replace("%d",date_arr[3]);    	return new_date; 	}  	else {    	return date_str; 	}}function addFilterInputDate(row,filter) {	var cell = document.createElement("td");	cell.setAttribute('valign','middle'); 	var new_input = document.createElement("input");	new_input.type="text";	if ( typeof (filter.input_name0) != 'undefined' && filter.input_name0.length > 0) {		filter.input_name0 = to_display_date(filter.input_name0); 	}	new_input.value=filter.input_name0;	new_input.name="text_input";	new_input.size="30";	new_input.maxsize="255";	new_input.visible="true";	new_input.setAttribute('id','jscal_field'); 	cell.appendChild(new_input);	row.appendChild(cell);	var cell = document.createElement("td");	cell.setAttribute('valign','middle'); 	var img_element = document.createElement("img");	img_element.setAttribute('src','themes/default/images/jscalendar.gif'); 	img_element.setAttribute('id','jscal_trigger'); 	cell.appendChild(img_element);	row.appendChild(cell);	Calendar.setup ({		inputFieldObj : new_input , 		buttonObj : img_element, 		ifFormat : cal_date_format, 		showsTime : false, 		singleClick : true, step : 1	});	var filter_row = filters_arr[filters_count_map[current_filter_id]];	filter_row.input_field0 = new_input;	filter_row.input_field1 = null;}function addFilterNoInput(row,filter) {	var cell = document.createElement("td");	cell.setAttribute('valign','middle');	var new_input = document.createElement("input"); 	new_input.type="hidden";	new_input.value=filter.qualifier_name;	new_input.name="text_input";	cell.appendChild(new_input);	row.appendChild(cell);}function addFilterInputEmpty(row,filter) {	var cell = document.createElement("td");	cell.setAttribute('valign','middle'); 	var new_input = document.createElement("input");	new_input.type="hidden";	new_input.value=filter.qualifier_name;	new_input.name="text_input";	cell.appendChild(new_input);	row.appendChild(cell);	var cell = document.createElement("td");	row.appendChild(cell);	var filter_row = filters_arr[filters_count_map[current_filter_id]];	filter_row.input_field0 = new_input;	filter_row.input_field1 = null;}function addFilterInputSelectMultiple(row,options,filter) {	var cell = document.createElement('td');	row.appendChild(cell);	var select_html_info = new Object();	var options_arr = new Array();	var select_info = new Object();	select_info['size'] = '5';	select_info['multiple'] = true;	select_html_info['select'] = select_info;	var selected_map = new Object();	for (i=0;i < filter.input_name0.length;i++) {		selected_map[filter.input_name0[i] ] = 1;	}	for(i=0;i < options.length;i++) {		var option_name;		var option_value;		if (typeof(options[i].text) == 'undefined') {			option_text = options[i];			option_value = options[i];		}		else if (options[i].value == '') {			continue;		}		else {			option_text = options[i].text;			option_value = options[i].value;		}		if ( typeof( selected_map[option_value]) != 'undefined' ) {			selected = true;		}		else {			selected = false;		}		var option_info = new Object();		option_info['value'] = option_value;		option_info['text'] = option_text;		option_info['selected'] = selected;		options_arr[options_arr.length] = option_info;	}

⌨️ 快捷键说明

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