1/** 2 * Have default functions to manage view 3 * @pakage filter.view.js 4 * @author Eduardo Aparicio Cardenes 5 * @version 1.2 6 **/ 7/** 8 * Load the boxes of filter 9 * @param callback: the funcion called after load boxes 10 */ 11Filter.method('view_printFiltersBox', function(callback) { 12 var _self = this; 13 var id = 0; 14 var elements_filters = { 15 search: false, 16 pager: false, 17 boxes: [] 18 }; 19 20 var box_to_insert = {}; 21 var insert = false; 22 23 if (_self.getVirtualMode() == 0) { 24 // _self.data_internal = _self.operations_dimensionalCompresion(_self.filtersBox,_self.data); 25 _self.data_internal = $.merge([], _self.data); 26 // var unprint = _self.operations_dimensionalUncompresion(_self.data_internal,_self.data); 27 $.each(_self.filtersBox, function(ky, filter) { 28 29 //Create filter that use into the data type 30 if ($.isFunction(_self['data_type.' + filter.type + '.create_data_box'])) { 31 box_to_insert = _self['data_type.' + filter.type + '.create_data_box'](id, filter, _self.data_internal); 32 elements_filters.boxes[elements_filters.boxes.length] = box_to_insert; 33 } else { 34 box_to_insert = _self['data_type.common.create_data_box'](id, filter, _self.data_internal); 35 insert = false; 36 switch (filter.type) { 37 case "search": 38 elements_filters.search = true; 39 insert = true; 40 break; 41 case "quick_search": 42 elements_filters.quick_search = true; 43 insert = true; 44 break; 45 default: 46 break; 47 } 48 //Have box to show it 49 if (insert) { 50 elements_filters.boxes[elements_filters.boxes.length] = box_to_insert; 51 } 52 } 53 filter.el_id = id; 54 id++; 55 }); 56 } else { 57 elements_filters.search = true; 58 elements_filters.quick_search = true; 59 elements_filters.boxes = (_self.filtersBox) ? _self.filtersBox : []; 60 $.each(_self.filtersBox, function(ky, el) { 61 62 if (typeof el.lang != undefined && 63 el.lang == 1 && 64 typeof el.title != "undefined") { 65 el.title = internationalize(el.title); 66 } 67 if (el.elements_count === undefined) { 68 el.elements_count = 0; 69 } 70 if (el.type == "numeric") { 71 if (typeof el.step == "undefined" || isNaN(el.step)) { 72 el.step = 1; 73 } 74 } 75 if (typeof el.charttype === "undefined") { 76 el.charttype = 0; 77 } 78 if (typeof el.elements != "undefined" && 79 typeof el.forder != "undefined" && 80 el.forder > 0) { 81 var order = {}; 82 switch (el.forder) { 83 case 1: 84 order.target = 'c'; 85 order.ctxt = 'asc'; 86 break; 87 case 2: 88 order.target = 'name'; 89 order.ctxt = 'asc'; 90 break; 91 case 3: 92 order.target = 'name'; 93 order.ctxt = 'desc'; 94 break; 95 } 96 el.elements = _self.sort_elements(order, el.elements); 97 } 98 el.el_id = id; 99 id++; 100 }); 101 } 102 //Initialize internal data filtersBox with all internal info 103 _self.filtersBox_internal = $.merge([], elements_filters.boxes); 104 105 //Load template boxes 106 getTemplate('lib/js/components/filter2/view/templates/_boxes.php?section=' + _self.section + '&skip_logout=true&bp=' + app_context_id, 107 function(tmpl_filterbox_check) { 108 elements_filters.section = _self.section; 109 var filter_boxs; 110 try { 111 filter_boxs = $.tmpl(tmpl_filterbox_check, elements_filters); 112 filter_boxs.attr('id', 'contacts-filterscolumn-' + _self.unique); 113 filter_boxs.attr('class', 'contacts-filterscolumn-class'); 114 115 } catch (e) { 116 console.log("Have an error on the elements_filters to fill template"); 117 console.log(elements_filters); 118 console.log(e.message); 119 return; 120 } 121 122 _self.events_initialize_printFilterBox(_self, filter_boxs); 123 124 _self.pv_filters_col = filter_boxs; 125 126 $.each(elements_filters.boxes, function(ky, box) { 127 if (typeof(box.type_cal) != 'undefined' && box.type_cal == 3 && typeof(_self.filter_on_view_callback) == 'function') { 128 var box_wrapper = filter_boxs.find('.box_filter_' + box.field.replace(/[.]/g, '_-_') + '_'); 129 box_wrapper.find('.filter-tab-2-body:first').empty().append(getLoaderComponent('h', 'c')); 130 _self.filter_on_view_callback(box, box_wrapper, function(filter) { 131 132 if (typeof filter.elements != "undefined" && 133 typeof filter.forder != "undefined" && 134 filter.forder > 0) { 135 var order = {}; 136 switch (filter.forder) { 137 case 1: 138 order.target = 'c'; 139 order.ctxt = 'asc'; 140 break; 141 case 2: 142 order.target = 'name'; 143 order.ctxt = 'asc'; 144 break; 145 case 3: 146 order.target = 'name'; 147 order.ctxt = 'desc'; 148 break; 149 } 150 filter.elements = _self.sort_elements(order, filter.elements); 151 } 152 153 try { 154 var filter_boxs_aux = $.tmpl(tmpl_filterbox_check, { boxes: [filter] }); 155 filter_boxs_aux.attr('id', 'contacts-filterscolumn-' + _self.unique); 156 filter_boxs_aux.attr('class', 'contacts-filterscolumn-class'); 157 158 } catch (e) { 159 console.log("Have an error on the elements_filters to fill template"); 160 console.log({ boxes: [filter] }); 161 console.log(e.message); 162 return; 163 } 164 165 _self.events_initialize_printFilterBox(_self, filter_boxs_aux); 166 box_wrapper.parents('.box_filter_wrapper:first').replaceWith(filter_boxs_aux.find('.box_filter_wrapper:first')); 167 168 }); 169 } 170 }); 171 172 173 if (callback && typeof(callback) == "function") { 174 callback(_self.pv_filters_col); 175 } 176 177 filter_boxs.find('.sort-option') 178 .on('click', function(ev) { 179 ev.stopPropagation(); 180 if ($(this).hasClass('sort-asc-enabled')) { 181 _self.addOrder($(this).parent().find(".filter-field-value").val(), "asc"); 182 $(this).addClass('sort-desc-enabled'); 183 $(this).removeClass('sort-asc-enabled'); 184 $(this).attr('src', app_base_url + '/pix/gi_filters/sort_desc.png'); 185 $(this).attr('title', 'sort_descending'); 186 } else { 187 _self.addOrder($(this).parent().find(".filter-field-value").val(), "desc"); 188 $(this).addClass('sort-asc-enabled'); 189 $(this).removeClass('sort-desc-enabled'); 190 $(this).attr('src', app_base_url + '/pix/gi_filters/sort_asc.png'); 191 $(this).attr('title', 'sort_ascending'); 192 } 193 if (_self.filter_callback && typeof(_self.filter_callback) == "function") { 194 var applyOrder = _self.applyOrder(); 195 if (_self.caller_obj) { 196 _self.filter_callback(applyOrder, _self.filtersBox, _self.caller_obj); 197 } else { 198 _self.filter_callback(applyOrder, _self.filtersBox); 199 } 200 201 } 202 ev.stopPropagation(); 203 }); 204 }, '_boxes.php', false); 205}); 206 207Filter.method('view_printFiltersSavedBox', function(section, options, callback) { 208 var _self = this; 209 _self.options = options; 210 getTemplate('lib/js/components/filter2/view/templates/_panorama.php?s=' + section + "&bp=" + app_context_id, function(tmpl_filters_saved) { 211 var saved_filters_box = $.tmpl(tmpl_filters_saved, { 212 id: 'contacts-actualFilter-' + _self.unique 213 }); 214 215 if (saved_filters_box.length == 0) 216 return; 217 218 saved_filters_box.find(".manage-filters-img").on('click', function() { 219 manageFilters(section, saved_filters_box); 220 }); 221 222 saved_filters_box.find('.advanced_filters_opt:first') 223 .on('click', function() { 224 if (_self.pv_filters_col) { 225 if (_self.pv_filters_col.is(':visible')) { 226 _self.pv_filters_col.parent().hide(); 227 _self.pv_filters_col.hide(); 228 } else { 229 _self.pv_filters_col.parent().show(); 230 _self.pv_filters_col.show(); 231 } 232 } 233 }); 234 235 _self.pv_filters_saved = saved_filters_box; 236 237 //Create config panorama 238 _self.create_config_panorama(_self.pv_filters_saved, options); 239 240 /** 241 * Load filter to see on the panorama by section filter 242 **/ 243 _self.pv_filters_array = []; 244 getServiceResponse("lib/util/filters/loadFilters.php", { 245 section: section, 246 bp_id: app_context_id, 247 test_logout: false 248 }, function(filters_) { 249 if (filters_.length > 0) { 250 saved_filters_box.find("#actual_filter option:first").remove(); 251 $.each(filters_, function(ky, fil) { 252 var selected = ""; 253
254 if (!options || (options && !options.panorama_selected)) { 255 if (fil.selected) { 256 selected = 'selected="selected"'; 257 } 258 } else { 259 if (options.panorama_selected == fil.id) { 260 selected = 'selected="selected"'; 261 } 262 } 263 264 var can_edit = fil.perms && fil.perms.can_edit ? true : false; 265 var can_manage = fil.perms && fil.perms.can_manage ? true : false; 266 267 saved_filters_box.find("#actual_filter") 268 .append($('<option ' + selected + ' class="my-filters" id="filter_' + fil.id + '" value=\'{' + '"id":"' + fil.id + '","name":"' + fil.name + '","description":"' + fil.description + '","aml":"' + fil.aml + '","filters":' + fil.filters + ',"can_edit":' + can_edit + ',"can_manage":' + can_manage + ',"columns":' + fil.columns + ',"filter_view":' + '[]' + ',"mass_actions":' + fil.mass_actions + ',"columns_download":' + fil.columns_download + '}\'>' + decodeURIComponent(fil.name) + '</option>')); //'<div style="display:none;" id="filter_'+fil.id+'">{"id":' + fil.id + ',"name":"'+fil.name+'","description":"'+fil.description+'","aml":"'+fil.aml+'","selected":' + false + ',"filters":'+fil.filters+',"filter_view":'+fil.filter_view+',"mass_actions":'+fil.mass_actions+',"columns":'+fil.columns+',"can_edit":'+false+',"can_manage":'+false+',"order":'+((!fil.order)?'""':fil.order)+'}</div>' + 269 }); 270 } 271 _self.pv_filters_array = filters_; 272 if (callback && (typeof(callback) == 'function')) { 273 // _self.onReadyFlag = true; 274 _self.setOnReadyFlag(true); 275 callback(saved_filters_box, filters_); 276 } 277 278 // if(!options || (options && !options.no_execute_onchange)){ 279 // _self.pv_filters_saved.find("#actual_filter option:selected").trigger('change'); 280 // } 281 282 }, 'noloader', 283 function(xhr) { 284 showModalError(xhr.responseText); 285 }); 286 }, '_panorama.php', true); 287}); 288/** 289 * Render view execute loaded view 290 * @param filter_boxes the boxes array view -> _boxes.php 291 * @param panorama the panorama view -> _panorama.php 292 **/ 293Filter.method('render_view', function(onReadyCallback, loadPrintFilterBox) { 294 295 var boxes = null; 296 var panoramas = null; 297 var _self = this; 298 _self.onReady = onReadyCallback; //Insercallback 299 300 // get filter panoramas 301 _self.printFiltersSavedBoxNew(_self.section, _self.options, 302 function(pano) { 303 panoramas = pano; 304 test_filter_load(); 305 }); 306 307 // get filter boxes 308 if (typeof loadPrintFilterBox === "boolean" && loadPrintFilterBox) { 309 _self.printFiltersBox(function(filter_boxes) { 310 boxes = filter_boxes; 311 test_filter_load(); 312 }); 313 } 314 315 /** 316 * test if all async resouces are loaded to proceed 317 */ 318 function test_filter_load() { 319 if (panoramas) { 320 if (_self.onReady && typeof(_self.onReady) == 'function') { 321 _self.setOnReadyFlag(true); 322 //If have caller need to send info this object 323 if (_self.caller_obj) { 324 _self.onReady(_self, boxes, panoramas, _self.caller_obj); 325 } else { 326 _self.onReady(_self, boxes, panoramas); 327 } 328 } 329 } 330 } 331}); 332// 333//Filter.method('view_make_resquests', function(onReadyCallback){ 334// var _self = this; 335// getServiceResponse("lib/util/filters/loadFilters.php", { 336// section: _self.section, 337// bp_id: $("#actual_bp_id").val() 338// }, 339// function(filters_){ 340// _self.filter_load = filters_; 341// }); 342// getTemplate('lib/js/components/filter2/view/templates/_panorama.php?bp=' + app_context_id + "&s=" + section, 343// function (tmpl_filters_saved){ 344// _self.create_panorama_view(tmpl_filters_saved); 345// 346// }); 347// //Load template boxes 348// getTemplate('lib/js/components/filter2/view/templates/_boxes.php?section='+_self.section, 349// function (tmpl_filterbox_check){ 350// _self.tmpl_boxes = tmpl_filterbox_check; 351// }); 352// 353//}); 354 355//Filter.method('view_create_panorama_view', function(tmpl_filters_saved){ 356// var _self = this; 357// var saved_filters_box = $.tmpl(tmpl_filters_saved, { 358// id:'contacts-actualFilter-' + _self.unique 359// }); 360// 361// var selected_item = saved_filters_box.find("#current_panorama_selected").empty(); 362// if(saved_filters_box.length == 0) 363// return; 364// 365// //Store panoramas in data filter information 366// _self.pv_filters_saved = saved_filters_box; 367// 368// /** 369// * Configue toggle panorama and filter 370// **/ 371// if(saved_filters_box.find('.toggle_advanced_filter_option')){ 372// 373// saved_filters_box.find('.toggle_advanced_filter_option') 374// .on('click', function (){ 375// if(_self.pv_filters_col){ 376// if (_self.pv_filters_col.is(':visible')){ 377// _self.pv_filters_col.parent().slideUp(); 378// _self.pv_filters_saved.find("#actual_filter").slideDown(); 379// }else{ 380// _self.pv_filters_saved.find("#actual_filter").slideUp(); 381// _self.pv_filters_col.parent().slideDown(); 382// } 383// } 384// }); 385// } 386// 387// /** 388// * Load filter to see on the panorama by section filter 389// **/ 390// _self.pv_filters_array = []; 391//}); 392//Filter.method('view_create_panorama_view', function(){ 393// 394//});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.