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 + ' > '+ 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 + -
显示快捷键?