1var CitizenshipFilterEventHandlers = 2 CitizenshipFilterEventHandlers || 3 function(me) { 4 var eventHandlers = { 5 removeTag: function(e, type) { 6 /*type: 0 - include | 1 - exclude*/ 7 var index = e.target.dataset.index; 8 index = Number(index); 9 var value = ''; 10 if (type) { 11 value = me.citizenship.exclude[index]; 12 me.citizenship.exclude.splice(index, 1); 13 me.query.remove_offset(); 14 me.render.renderAllTag(); 15 } else { 16 value = me.citizenship.include[index]; 17 me.citizenship.include.splice(index, 1); 18 me.query.remove_offset(); 19 me.render.renderAllTag(); 20 } 21 _trackGSEvent( 22 '2.0-Search', 23 type ? 'remove_exclude_citizenship' : 'remove_include_citizenship', 24 value 25 ); 26 }, 27 onClickExclude: function(event, noFocus) { 28 if ( me.elm('excludeCitizenship.panel').hasClass('hidden') ){ 29 eventHandlers._showExcludePanel(); 30 setTimeout(function(){ 31 me.elm('excludeCitizenship').focus(); 32 }, 200); 33 }else{ 34 eventHandlers._hideExcludePanel(); 35 } 36 }, 37 _showExcludePanel: function(){ 38 me.elm('excludeCitizenship.panel').removeClass('hidden'); 39 me.elm("excludeCitizenship.btn").text("Hide Exclusion Search"); 40 }, 41 _hideExcludePanel: function(){ 42 me.elm('excludeCitizenship.panel').addClass('hidden'); 43 me.elm("excludeCitizenship.btn").text("Show Exclusion Search"); 44 }, 45 onListModalItemClick: function(e) { 46 var currentElm = $(e.currentTarget); 47 if (!me.isExclude) { 48 currentElm.toggleClass('active '); 49 } else { 50 currentElm 51 .toggleClass('btn-danger negative ') 52 .css('transition', 'unset'); 53 } 54 }, 55 onListModalIncludeClick: function(e) { 56 me.isExclude = false; 57 me.elm('citizenship.item').removeClass( 58 'active btn-danger negative was-active' 59 ); 60 var list = me.citizenship.include; 61 for (var i in list) { 62 me.elm('citizenship.item') 63 .filter('[js-value="' + list[i] + '"]') 64 .addClass('active was-active'); 65 } 66 me.elm('citizenship.title').text('Include Citizenship'); 67 me.elm('citizenship.add') 68 .addClass('btn-dark-blue') 69 .removeClass('btn-danger') 70 .text('Include').attr('aria-label', 'Include Selected Items and Close Applicant Location List'); 71 me.elm('citizenship.modal').modal('show'); 72 }, 73 onListModalExcludeClick: function(e) { 74 me.isExclude = true; 75 me.elm('citizenship.item').removeClass( 76 'active btn-danger negative was-active' 77 ); 78 var list = me.citizenship.exclude; 79 for (var i in list) { 80 me.elm('citizenship.item') 81 .filter('[js-value="' + list[i] + '"]') 82 .addClass('negative btn-danger was-active') 83 .css('transition', 'unset'); 84 } 85 me.elm('citizenship.add') 86 .removeClass('btn-dark-blue') 87 .addClass('btn-danger') 88 .text('Exclude').attr('aria-label', 'Exclude Selected Items and Close Applicant Location List'); 89 me.elm('citizenship.title').text('Exclude Citizenship'); 90 me.elm('citizenship.modal').modal('show'); 91 }, 92 onListModalAdd: function() { 93 var objectValue = {}; 94 jQuery.each( 95 me 96 .elm('citizenship.item') 97 .filter(me.isExclude ? '.negative' : '.active'), 98 function(idx, elem) { 99 var value = $(elem).attr('js-value'); 100 objectValue[value] = true; 101 _trackGSEvent( 102 '2.0-Search', 103 me.isExclude ? 'exclude_citizenship' : 'include_citizenship', 104 value 105 ); 106 } 107 ); 108 109 if (me.isExclude) { 110 me.citizenship.exclude = Object.keys(objectValue); 111 me.citizenship.include = eventHandlers.checkDuplicate( 112 objectValue, 113 me.citizenship.include 114 ); 115 } else { 116 me.citizenship.include = Object.keys(objectValue); 117 me.citizenship.exclude = eventHandlers.checkDuplicate( 118 objectValue, 119 me.citizenship.exclude 120 ); 121 } 122 me.elm('citizenship.modal').modal('hide'); 123 me.query.remove_offset();
124 me.render.renderAllTag(); 125 }, 126 checkDuplicate: function(ob, list) { 127 var listNew = []; 128 for (var i in list) { 129 if (!ob[list[i]]) { 130 listNew.push(list[i]); 131 } 132 } 133 return listNew; 134 }, 135 generateQuery: function(generateQueryOnly) { 136 me.query.remove_advanced('citizenship'); 137 me.query.remove_advanced('has_citizenship'); 138 // // me.query.remove_offset(); 139 for (var i in me.citizenship.include) { 140 if (!me.citizenship.include.hasOwnProperty(i)) { 141 continue; 142 } 143 me.query.add_advanced('citizenship', me.citizenship.include[i], '='); 144 } 145 146 for (var i in me.citizenship.exclude) { 147 if (!me.citizenship.exclude.hasOwnProperty(i)) { 148 continue; 149 } 150 me.query.add_advanced('citizenship', me.citizenship.exclude[i], '!='); 151 } 152 153 me.query.add_advanced( 154 'has_citizenship', 155 me.elm('citizenshipUnspecified').prop('checked') ? 1 : 0, 156 '=' 157 ); 158 159 if (!generateQueryOnly) { 160 $(document).trigger('force_search'); 161 } 162 }, 163 onToggleIncludeUnspecified: function() { 164 _trackGSEvent( 165 '2.0-Search', 166 'citizenship_unspecified_change', 167 me.elm('citizenshipUnspecified').prop('checked') ? 1 : 0 168 ); 169 if (!me.noReactive) { 170 me.query.remove_offset(); 171 eventHandlers.generateQuery(); 172 } 173 }, 174 onPopupModalClose: function(){ 175 if ( me.isExclude === false ){ 176 me.elm('citizenship.include').focus(); 177 }else{ 178 me.elm('citizenship.exclude').focus(); 179 } 180 } 181 }; 182 return eventHandlers; 183 };
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.