1$(function() { 2 var pathName = $(location).attr("pathname").split("/"); 3 if (pathName.indexOf('searchMain') > -1 || pathName.indexOf('searchmain') > -1 || pathName.indexOf('searchMainTest') > -1){ 4 NSEARCH.init(); 5 } 6 }); 7 8 var NSEARCH = { 9 init: function(){ 10 //console.log("NEW NONGMIN DIQUEST SEARCH.INIT"); 11 var self = this; 12 13 self.setDateFormat(); 14 self.eventBind(); 15 self.setTrendKeyword(); 16 self.getDateFormat(); 17 }, 18 19 getDateFormat: function(){ 20 var searchStartDate = $("#filterParam_sdate").val(); 21 var searchEndDate = $("#filterParam_edate").val(); 22 23 if(searchStartDate != undefined && searchEndDate != undefined){ 24 var start = new Date(searchStartDate); 25 var today = new Date(); 26 var difference = today.getDate() - start.getDate(); 27 var filterValue = ""; 28 29 if (difference == 7) { // ì¼ì£¼ì¼ 30 filterValue = "week"; 31 } else if(difference == -1) { // 1ê°ì 32 filterValue = "month"; 33 } else if(difference == 0){ // 1ë 34 filterValue = "year"; 35 } else { // ì ì²´ 36 filterValue = "all"; 37 } 38 39 $("#filterParam").val(filterValue).prop("selected", true); 40 } 41 }, 42 43 setDateFormat: function(type){ 44 var today = new Date(); 45 var date = new Date(); 46 47 switch(type){ 48 case "week": 49 date.setDate(today.getDate() - 7); // ì¼ì£¼ì¼ ì 50 break; 51 case "month": 52 date.setDate(today.getDate() - 30); // 1ê°ì ì 53 break; 54 case "year": 55 date.setDate(today.getDate() - 365); // 1ë ì 56 break; 57 default: 58 date; 59 } 60 61 var year = date.getFullYear(); 62 var month = date.getMonth() + 1; // 1ìì 0! 63 var day = date.getDate(); 64 65 month = month >= 10? month : '0'+month; 66 day = day >= 10? day : '0'+day; 67 68 return year + '-' + month + '-' + day; 69 }, 70 71 /** 72 * ê²ì í ì í ì íì´ì§ íë©´ ì´ë ì²ë¦¬ í¨ì 73 * @param searchTab {String} ê²ìí(íµí©ê²ì:ALL, ë´ì¤:NEWS, ì´ë¯¸ì§:IMG, ëìì:VIDEO, ì¸ë¬¼:UNION, ì´ìê°ë´ì¤:ARTICLE) 74 * @param searchChk {String} ì 문ì§ë©´ê¸°ì¬ë§ (AR) 75 * @return URL 76 */ 77 setUrlParameter: function(searchTab, searchChk=""){ 78 var url = new URL(window.location.href); 79 var urlParams = url.searchParams; 80 searchTab = searchTab !== undefined ? searchTab : urlParams.get("searchTab"); 81 82 if(searchTab === 'ALL'){ // íµí©ê²ì 83 urlParams.set("searchType", "ALL"); 84 urlParams.set("searchTab", "NEWS,ARTICLE,IMG,VIDEO,UNION"); 85 urlParams.set("listNum", "5"); 86 urlParams.set("searchChk", searchChk); 87 urlParams.set("pageNum", "1"); 88 89 } else { // ë´ì¤, ì´ë¯¸ì§, ëìì, ì¸ë¬¼, ì´ìê°ë´ì¤ 90 urlParams.set("searchType", "NOTALL"); 91 urlParams.set("searchTab", searchTab); 92 93 if(searchTab === 'UNION' || searchTab === 'IMG'){ urlParams.set("listNum", "12"); } 94 else { urlParams.set("listNum", "10"); } 95 96 urlParams.set("searchChk", searchChk); 97 urlParams.set("pageNum", "1"); 98 } 99 100 urlParams.set("orderParam", "POST_SORT_ISSUE_DATE_DESC"); 101 102 return url.href; 103 }, 104 105 /** 106 * ìë¨ ê²ì ë°ì¤ ê° ë³ê²½ ì íì´ì§ íë©´ ì´ë ì²ë¦¬ í¨ì 107 * @param searchTerm {String} ê²ìì´ 108 * @param searchType {String} ê²ìì¡°ê±´ (ALL: ì ì²´ ê²ì(í ì¤ íµí©ê²ì), NOT ALL: í ì¤ 'íµí©ê²ì'ì ì ì¸í ì¼ë¶ ê²ì) 109 * @param searchTab {String} ê²ìí(íµí©ê²ì:ALL, ë´ì¤:NEWS, ì´ë¯¸ì§:IMG, ëìì:VIDEO, ì¸ë¬¼:UNION, ì´ìê°ë´ì¤:ARTICLE) 110 * @param searchRange {String} ê²ìë²ì(ì ì²´:ALL, ì 목:TITLE, ë´ì©:CONTENT, ì 목+ë´ì©:BOTH) 111 * @param orderParam {String} ì ë ¬ìì(ìµì ì:POST_SORT_ISSUE_DATE_DESC, ì íëì:PRE_SORT_ISSUE_DATE_DESC, 과거ì:POST_SORT_ISSUE_DATE_ASC) 112 * @param pageNum {String} íì´ì§ë²í¸ 113 * @param listNum {String} í íì´ì§ì ì¶ë ¥í ë°ì´í° ê°ì 114 * @param notSearchTerm {String} ê²ì ì ì ì¸ ë¨ì´ 115 * @param reSearchTerm {String} ê²ì ì í¬í¨ ë¨ì´
116 * @param filterParam {String} ê²ì기ê°(íì: 20221108~20221115) 117 * @param reporterNm {String} 기ìì´ë¦ 118 * @param searchChk {String} ì 문ì§ë©´ê¸°ì¬ë§ (AR) 119 */ 120 goSearchPage: function(searchTerm, searchType, searchTab, searchRange, orderParam, pageNum, listNum, notSearchTerm, reSearchTerm, filterParam, reporterNm, searchChk){ 121 var url = new URL(window.location.href); 122 var urlParams = url.searchParams; 123 124 urlParams.set("searchTerm", searchTerm); 125 urlParams.set("searchType", searchType); 126 urlParams.set("searchTab", searchTab); 127 urlParams.set("searchRange", searchRange); 128 urlParams.set("orderParam", orderParam); 129 urlParams.set("pageNum", pageNum); 130 urlParams.set("listNum", listNum); 131 urlParams.set("notSearchTerm", notSearchTerm); 132 urlParams.set("reSearchTerm", reSearchTerm); 133 urlParams.set("filterParam", filterParam); 134 urlParams.set("reporterNm", reporterNm); 135 urlParams.set("searchChk", searchChk); 136 137 location.href = url.href; 138 }, 139 140 eventBind: function (){ 141 var self = this; 142 143 // ê²ì 144 $("#nsearch_btn, .btn_sub_search").on("click", function(e){ 145 var filterParam = ""; 146 var searchStartDate = $("#searchStartDate").val(); 147 var searchEndDate = $("#searchEndDate").val(); 148 149 if(searchStartDate != "" && searchEndDate != "" && searchStartDate != undefined && searchEndDate != undefined){ 150 var sdate = $("#searchStartDate").val().replace(/-/gi, ''); 151 var edate = $("#searchEndDate").val().replace(/-/gi, ''); 152 filterParam = sdate + "~" + edate; 153 } 154 155 var searchTerm = $("#keyword").val().trim(); 156 var reSearchTerm = $("#reSearchTerm").val().trim(); 157 var notSearchTerm = $("#notSearchTerm").val().trim(); 158 var searchRange = $("#searchRange option:selected").val(); 159 var reporterNm = $("#reporterNm").val().trim(); 160 161 //if(searchTerm === "") { 162 // alert("ê²ìì´ë¥¼ ì ë ¥í´ì£¼ì¸ì."); 163 // $("#keyword").focus(); 164 //} else { 165 var formData = new FormData(); 166 formData.append("searchTerm", searchTerm); 167 formData.append("searchType", "NOTALL"); 168 formData.append("searchTab", "NEWS"); 169 formData.append("searchRange", searchRange); 170 formData.append("orderParam", "POST_SORT_ISSUE_DATE_DESC"); 171 formData.append("pageNum", "1"); 172 formData.append("listNum", "10"); 173 formData.append("notSearchTerm", notSearchTerm); 174 formData.append("reSearchTerm", reSearchTerm); 175 formData.append("filterParam", filterParam); 176 formData.append("reporterNm", reporterNm); 177 formData.append("searchChk", ""); 178 179 self.goSearchPage(formData.get("searchTerm"), 180 formData.get("searchType"), 181 formData.get("searchTab"), 182 formData.get("searchRange"), 183 formData.get("orderParam"), 184 formData.get("pageNum"), 185 formData.get("listNum"), 186 formData.get("notSearchTerm"), 187 formData.get("reSearchTerm"), 188 formData.get("filterParam"), 189 formData.get("reporterNm"), 190 formData.get("searchChk")); 191 //} 192 }); 193 194 // ê²ì íì´ì§ í ì í 195 $(".search_news .search_tab li").click(function(){ 196 var searchTab = $(this).attr('id'); 197 location.href = self.setUrlParameter(searchTab); 198 }); 199 200 // 'ì 문 ì§ë©´ 기ì¬ë§' ì²´í¬ ì í 201 $("#onlyPaper").click(function(e){ 202 var onlyPaperCheck= $(e.target).is(":checked"); 203 $('#onlyPaper').prop('checked', onlyPaperCheck); 204 205 var searchChk = onlyPaperCheck ? "AR" : ""; 206 var searchTab = $(".search_news .search_tab ul").children('.on').attr('id'); 207 208 location.href = self.setUrlParameter(searchTab, searchChk); 209 }); 210 211 // ìëìì± 212 $("#keyword").off().on("keyup blur", function(e){
213 var keyword = $(e.target).val(); 214 var english = /^[A-Za-z0-9]*$/; 215 if(english.test(keyword)){ 216 var inko = new Inko(); 217 keyword = inko.en2ko(keyword); 218 } 219 220 var ignored_autocomplete = false; 221 var $search = $("#keyword"); 222 223 $search.autocomplete({ 224 minLength: 1, 225 focus: function(event, ui) {ignored_autocomplete = true; }, 226 source: function (request, response) { 227 var searchData = { searchTerm:keyword }; 228 229 if(ignored_autocomplete){ 230 ignored_autocomplete = !ignored_autocomplete; 231 return; 232 } 233 234 if(e.keyCode === 13) { return } 235 236 $.ajax({ 237 url: "https://search.nongmin.com:5003/extensions/newsSmartMaker", 238 data: searchData, 239 success: function(data){ 240 if(data.status === 200){ 241 var autoWords = []; 242 var results = data.resultSet.result[0].resultDocuments; 243 for (var result of results) { 244 var label = result["KEYWORD"].replace(keyword, '<strong style="font: bold">'+keyword+'</strong>'); 245 autoWords.push({value:result["KEYWORD"], label: label}); 246 } 247 } else { console.error(data.error) } 248 response(autoWords); 249 } 250 }); 251 } 252 }); 253 254 $search.autocomplete("option", "delay", 300); 255 $search.autocomplete().data("uiAutocomplete")._renderItem = function(ul, item) { 256 return $( "<li>" ) 257 .attr( "data-value", item.value ) 258 .append( "<div>" + item.label + "</div>" ) 259 .appendTo( ul ); 260 } 261 }); 262 263 // ê²ì ê¸°ê° ë³ê²½ 264 $("#filterParam").on("change", function(e){ 265 e.preventDefault(); 266 267 var type = $(this, ':selected').val(); 268 var startDate, endDate = ""; 269 270 startDate = type === "all" ? "" : self.setDateFormat(type); 271 endDate = type === "all" ? "" : self.setDateFormat(); 272 273 $("#searchStartDate").val(startDate); 274 $("#searchEndDate").val(endDate); 275 }) 276 277 // ì´ê¸°í 278 $(".btn_reset").on("click", function(){ 279 $("#keyword").val(""); 280 $("#searchRange").val("ALL"); 281 $("#filterParam").val("all"); 282 $("#reporterNm").val(""); 283 $("#reSearchTerm").val(""); 284 $("#notSearchTerm").val(""); 285 $("#searchStartDate").val(""); 286 $("#searchEndDate").val(""); 287 }); 288 289 // ì¸ê¸° í¤ìë ê²ì 290 $(document).on("click",".keyword dd ul li a", function(e){ 291 var searchTerm = $(e.target).text().replace(/#/gi,'').trim(); 292 $("#keyword").val(searchTerm); 293 294 self.goSearchPage(searchTerm, "NOTALL", "NEWS", "ALL", "POST_SORT_ISSUE_DATE_DESC", "1", "10", "", "", "", "", ""); 295 296 }); 297 }, 298 299 setTrendKeyword: function(){ 300 $.ajax({
301 type: "GET", 302 url: "https://search.nongmin.com:5003/extensions/newsTrendKeyword", 303 timeout: 3000, 304 async: false, 305 success: function(data) { 306 var keywords = data.resultSet.result[0].resultDocuments; 307 var html = ' <dt>ì¸ê¸°í¤ìë</dt>'; 308 html += ' <dd>'; 309 html += ' <ul>'; 310 311 for (var keyword of keywords){ 312 html += '<li><a href="javascript:void(0);">#'+keyword.KEYWORD+'</a></li>'; 313 } 314 html += ' </ul>'; 315 html += ' </dd>'; 316 317 $(".keyword").html(html); 318 } 319 }); 320 } 321 }
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.