1$(function() { 2 let activeCategory = getUrlParameter('category'); 3 $('select#year').on('change', function(){ 4 window.location.href = '/news/year/' + $(this).val() + ((activeCategory != '') ? '/?category=' + activeCategory : ''); 5 }); 6 7 $('select#cate').on('change', function(){ 8 window.location.href = '/news/year/' + $('select#year').val() + '/?category=' + $(this).val(); 9 }); 10 11 $('.copy-link').on('click', function(e){ 12 e.preventDefault(); 13 copyToClipboard($(this).attr('href')); 14 }); 15 16 if(activeCategory == '') { 17 activeCategory = 'all'; 18 } 19 20 // Call News list 21 // if(activeCategory == 'all' || activeCategory == 'ir'){ 22 new News(); 23 // } else { 24 // $('body').removeClass('loading'); 25 // } 26}); 27 28function getUrlParameter(name) { 29 name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]'); 30 var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); 31 var results = regex.exec(location.search); 32 return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); 33}; 34 35function copyToClipboard(text) { 36 var sampleTextarea = document.createElement("textarea"); 37 document.body.appendChild(sampleTextarea); 38 sampleTextarea.value = text; 39 sampleTextarea.select(); 40 document.execCommand("copy"); 41 document.body.removeChild(sampleTextarea); 42} 43function scroll(element){ 44 var ele = document.getElementById(element); 45 window.scrollTo(ele.offsetLeft,ele.offsetTop); 46} 47 48function News() { 49 var self = this; 50 this.ajaxUrl = ajax_url[0]; 51 this.newsIn = null; 52 this.irIn = null; 53 this.irEx = null; 54 this.irLists = null; 55 this.perPage = $('#show_per_page').val(); 56 this.activeCategory = getUrlParameter('category') ? getUrlParameter('category') : 'all'; 57 this.currentPage = Number($('#currentPage').val()); 58 this.yearAll = null; 59 60 /** 61 * Load news from WP 62 */ 63 this.load_news_wp = function() { 64 $.ajax({
65 url: self.ajaxUrl, 66 type: "GET", 67 dataType:'json', 68 data: { 69 action:'news_list', 70 category: self.activeCategory, 71 year: $('select#year').val(), 72 }, success: function(response){ 73 if(response) { 74 self.newsIn = response.data.news; 75 if(response.data.years) { 76 self.yearAll = response.data.years; 77 } 78 self.irIn = []; 79 self.handle_data(); 80 } 81 }, error: function(error){ 82 console.log(error); 83 } 84 }); 85 } 86 87 /** 88 * Load data from WP 89 */ 90 this.load_data_wp = function() { 91 $.ajax({ 92 url: self.ajaxUrl, 93 type: "GET", 94 dataType:'json', 95 data: { 96 action:'irnews_list', 97 year: $('select#year').val() 98 }, success: function(response){ 99 if(response) { 100 self.irIn = response.data.irnews; 101 self.handle_data(); 102 } 103 }, error: function(error){ 104 console.log(error); 105 } 106 }); 107 } 108 109 /** 110 * Check year having data 111 */ 112 this.check_year_have_data = function() { 113 let currentURL = window.location.href; 114 let match = currentURL.match(/\/year\/(\d+)/); 115 if (match) { 116 let yearTemp = match[1]; 117 if(yearTemp != Number($('select#year').val())) { 118 window.location.href = '/news/year/' + $('select#year').val() + ((self.activeCategory != '') ? '/?category=' + self.activeCategory : ''); 119 } 120 } 121 } 122 123 /** 124 * Load data external 125 */ 126 this.load_data_external = function() { 127 $.ajax({
128 url: 'https://ssl4.eir-parts.net/V4Public/eir/4613/ja/announcement/announcement_2.js', 129 type: "GET", 130 success: function(response){ 131 let data = response.replace("eolparts_announcement_2(", ""); 132 let temp = data.replace(");", ""); 133 let jsonData = JSON.parse(temp); 134 if(jsonData) { 135 self.irEx = jsonData.item; 136 // if(self.activeCategory == 'ir'){ 137 // self.load_data_wp(); 138 // } else { 139 self.load_news_wp(); 140 // } 141 } 142 }, error: function(error){ 143 self.irEx = []; 144 // if(self.activeCategory == 'ir'){ 145 // self.load_data_wp(); 146 // } else { 147 self.load_news_wp(); 148 // } 149 } 150 }); 151 } 152 153 /** 154 * Filter years 155 */ 156 this.filterYear = function(data, targetYear) { 157 let object = []; 158 $.each(data, function (i, val) { 159 let year = new Date(val.date).getFullYear(); 160 if (year == targetYear) { 161 object.push(val); 162 } 163 }); 164 165 return object; 166 } 167 168 /** 169 * Merge and sort array 170 */ 171 this.mergeAndSortArrays = function(arr1, arr2) { 172 let mergedArray = [...new Set([...arr1, ...arr2])]; 173 174 let sortedArray = mergedArray.sort((a, b) => b - a); 175 176 return sortedArray; 177 } 178 179 /** 180 * Get list years of news detail 181 */ 182 this.getListYears = function(data, activeYear) { 183 let years = []; 184 $.each(data, function (i, val) { 185 let year = new Date(val.date).getFullYear(); 186 if (! years.includes(Number(year))) { 187 if(Number(year) > 2020) { 188 years.push(Number(year)); 189 } 190 } 191 }); 192 193 if(years.length > 0) { 194 if(self.yearAll != null) { 195 years = self.mergeAndSortArrays(years, self.yearAll); 196 } 197 let option = ''; 198 $.each(years, function (j, y) { 199 option += '<option value="'+y+'" '+(activeYear == y ? 'selected': '')+'>'+y+'å¹´</option>'; 200 }); 201 $('#year').html(option); 202 self.check_year_have_data(); 203 } 204 } 205 206 /** 207 * Sort object by date desc 208 */ 209 this.sortJsonByDateDesc = function (jsonArray) { 210 jsonArray.sort((a, b) => { 211 let dateA = new Date(a.date); 212 let dateB = new Date(b.date); 213 return dateB - dateA; 214 }); 215 216 return jsonArray; 217 } 218 219 /** 220 * Return category 221 */ 222 this.getCategory = function(cat){ 223 let name = ''; 224 switch (cat) { 225 case 'irnews': 226 name = 'IR'; 227 break; 228 case 'notice': 229 name = 'ãç¥ãã'; 230 break; 231 case 'company-information': 232 name = '伿¥æ å ±'; 233 break; 234 case 'product-information': 235 name = 'è£½åæ å ±'; 236 break; 237 case 'sustainability': 238 name = 'ãµã¹ããããªãã£'; 239 break; 240 default: 241 name = 'IR'; 242 break; 243 } 244 245 return name; 246 } 247 248 /** 249 * Handle data 250 */ 251 this.handle_data = function() { 252 let activeYear = $('#activeYear').val(); 253 let merge = null; 254 if(self.activeCategory == 'all' || self.activeCategory == 'ir') { 255 merge = self.irEx.concat(self.newsIn); 256 // } else if(self.activeCategory == 'ir') { 257 // merge = self.irEx.concat(self.newsIn); 258 } else { 259 merge = self.newsIn; 260 } 261 let sortList = self.sortJsonByDateDesc(merge); 262 self.getListYears(sortList, activeYear); 263 let currentYear = (sortList.length >
263 0) ? (new Date(sortList[0].date).getFullYear()) : (new Date().getFullYear()); 264 let listTemp = self.filterYear(sortList, (activeYear != '' ? activeYear : currentYear)); 265 if(listTemp.length > 0) { 266 self.irLists = listTemp; 267 } else { 268 self.irLists = self.filterYear(sortList, currentYear); 269 } 270 271 self.renderItems(self.currentPage, self.perPage); 272 self.renderPagination(self.currentPage, self.irLists.length, self.perPage); 273 $('body').removeClass('loading'); 274 } 275 276 /** 277 * Render News items 278 */ 279 this.renderItems = function(page, itemsPerPage){ 280 let tempList = self.irLists; 281 let start = Number(page - 1) * Number(itemsPerPage); 282 let end = Number(start) + Number(itemsPerPage); 283 let pageItems = tempList.slice(start, end); 284 let itemsDiv = $("#news"); 285 let newItems = ''; 286 pageItems.forEach(item => { 287 newItems += '<dl class="news__item"><dt class="news__item--date">'+(item.format_date.replaceAll("/", "."))+' <span class="--cate">'+self.getCategory(item.news_type)+'</span></dt>' + '<dd class="news__item--desc '+((item.type == 'pdf')? '--pdf': '')+'"><a href="'+item.link+'" target="'+item.new_target+'">'+item.title+'</a></dd></dl>'; 288 }); 289 itemsDiv.html(newItems); 290 } 291 292 /** 293 * Render Pagination 294 */ 295 this.renderPagination = function(currentPage, totalItems, itemsPerPage) { 296 let totalPages = Math.ceil(totalItems / itemsPerPage); 297 if(totalPages > 1) { 298 let maxPages = 5; 299 let paginationList = $('<ul class="paganation__list" />'); 300 if (currentPage > 1) { 301 paginationList.append('<li class="--prev"><a href="javascript:void(0);" data-page="' + (currentPage - 1) + '"></a></li>'); 302 } else { 303 paginationList.append('<li class="--prev disabled"><a href="javascript:void(0);"></a></li>'); 304 } 305 306 let start = Math.max(1, currentPage - Math.floor(maxPages / 2)); 307 let end = Math.min(start + maxPages - 1, totalPages); 308 309 if (start > 1) { 310 paginationList.append('<li><a href="javascript:void(0);" data-page="1">1</a></li>'); 311 if (start > 2) { 312 paginationList.append('<li class="--dot">...</li>'); 313 } 314 } 315 316 for (let i = start; i <= end; i++) { 317 if (i == currentPage) { 318 paginationList.append('<li class="active"><a href="javascript:void(0);">' + i + '</a></li>'); 319 } else { 320 let isOnlyPc = i > currentPage + 1 || i < currentPage - 1; 321 paginationList.append('<li class="' + (isOnlyPc ? 'only-pc' : '') + '"><a href="javascript:void(0);" data-page="' + i + '">' + i + '</a></li>'); 322 } 323 } 324 325 if (end < totalPages) { 326 if (end < totalPages - 1) { 327 paginationList.append('<li class="--dot">...</li>'); 328 } 329 paginationList.append('<li><a href="javascript:void(0);" data-page="' + totalPages + '">' + totalPages + '</a></li>'); 330 } 331 332 if (currentPage < totalPages) { 333 paginationList.append('<li class="--next"><a href="javascript:void(0);" data-page="' + (currentPage + 1) + '"></a></li>') 334 } else { 335 paginationList.append('<li class="--next disabled"><a href="javascript:void(0);"></a></li>'); 336 } 337 338 paginationList.find("li").on("click", 'a', function(event) { 339 event.preventDefault(); 340 if(! $(this).parent().hasClass('active') && ! $(this).parent().hasClass('disabled')) { 341 $('body').addClass('loading'); 342 let clickedPage = $(this).data("page"); 343 self.renderItems(clickedPage, self.perPage); 344 self.renderPagination(clickedPage, self.irLists.length, self.perPage); 345 // scroll("news"); 346 window.location.href = '/news/year/' + $('#activeYear').val() + '?category=' +self.activeCategory + '&page=' + clickedPage; 347 } 348 }); 349 350 $('#pagination').html(paginationList); 351 let subPagination = $('<p class="paganation__txt">' + self.number_format(totalItems) +'ä»¶ä¸ '+((currentPage - 1) * itemsPerPage + 1) + 'ï½' + ((currentPage * itemsPerPage) > totalItems ? totalItems: (currentPage * itemsPerPage)) + 'ä»¶ã表示</p>'); 352 $('#pagination').append(subPagination); 353 } 354 } 355 356 /** 357 * Format number 358 */ 359 this.number_format = function(number) 360 { 361 number += ''; 362 x = number.split('.'); 363 x1 = x[0]; 364 x2 = x.length > 1 ? '.' + x[1] : ''; 365 var rgx = /(\d+)(\d{3})/; 366 while (rgx.test(x1)) { 367 x1 = x1.replace(rgx, '$1' + ',' + '$2'); 368 } 369 return x1 + x2; 370 } 371 372 /** 373 * Init objects 374 */ 375 this.init = function() { 376 self.load_data_external(); 377 } 378 379 self.init(); 380}
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.