1'use strict'; 2 3//------------------------------------------------------------ 4// 弿°ã®ãã¼ã¿å (datapoint)ã¨ãã©ã¡ã¼ã¿(params)ãå ã«chart.jsonããªã¯ã¨ã¹ãããapp.chartJsonã«æ ¼ç´ã 5// ãã®å¾ã³ã¼ã«ããã¯(callback)ãããã°å®è¡ã 6//------------------------------------------------------------ 7app.chartRequest = function (datapoint, params, callback) { 8 if (app.chartJqxhr) app.chartJqxhr.abort(); // äºéãªã¯ã¨ã¹ã鲿¢ 9 10 const url = datapoint; 11 // const url = `${app.domain}/${datapoint}/chart.json?${params}`; 12 13 $('body').addClass('-loading'); 14 15 app.chartJqxhr = $.ajax({ 16 type: 'GET', 17 url: url, 18 xhrFields: { withCredentials: true }, 19 success: function (result) { 20 let d = new $.Deferred(); 21 app.chartJson = result; 22 23 // éè¤åé¿ 24 $('body').removeClass('-loading'); 25 26 // ãã¼ã¿å徿°0ã®å ´å 27 if (result.length === 0) { 28 let v1_y = $priodDate2.find('.w_year').val(); 29 let v1_m = $priodDate2.find('.w_month').val() - 1; 30 let v1_w = $priodDate2.find('.w_week').val(); 31 let v2_y = $priodDate3.find('.w_year').val(); 32 let v2_m = $priodDate3.find('.w_month').val() - 1; 33 let v2_w = $priodDate3.find('.w_week').val(); 34 const date1 = new Date(v1_y, v1_m, v1_w); 35 const date2 = new Date(v2_y, v2_m, v2_w); 36 if (date1 > date2) { 37 return alert('æ¥ä»ãæ£ãã鏿ãã¦ãã ãã'); 38 } 39 } 40 41 // ãã¼ãã«ãããã¼ã®data屿§ã«å ¥ã£ã¦ããã¦ã¼ã¶ã¼ã¹ãã¼ããåå¾ 42 let dataDate = $rankingNav.attr('data-date'); // ã表示é±ãã®æ¥ä» 43 let dataFrom = $rankingNav.attr('data-from'); // ã表示æéãã®å§ã¾ã
44 let dataTo = $rankingNav.attr('data-to'); // ã表示æéãã®çµãã 45 let dataSort = $rankingNav.attr('data-act'); // 並ã³é 46 47 if ($rankingWrap.hasClass('show-point')) app.rank_or_point = 'point'; // .ranking-sct-wrapã.show-pointã¯ã©ã¹ãæã£ã¦ããããã¤ã³ã表示ã¢ã¼ãã« 48 49 if (dataSort === 'list-rank') dataSort = ''; 50 if (dataSort === 'list-chartin') dataSort = 'chartin'; 51 52 // 2025/1 é åå¦çå¹çå 53 app.sorts.forEach((sort, index) => { 54 if (index !== 0) { 55 if (dataSort === 'list-index' + index) { 56 dataSort = sort.id; 57 } 58 } 59 }); 60 61 const paramDate = dataDate === '' ? '' : `&date=${app.dateFormat(dataDate)}`; 62 const paramFrom = dataFrom === '' ? '' : `&from=${app.dateFormat(dataFrom)}`; 63 const paramTo = dataTo === '' ? '' : `&to=${app.dateFormat(dataTo)}`; 64 const paramSort = dataSort === '' ? '' : `&sort=${dataSort}`; 65 66 for (let i = 0; i < result.length; i++) { 67 // YouTubeãµã ãã¤ã«ã®ã½ã¼ã¹ä½æ(YouTubeIDããªããã°ããã¼ã«) 68 let youtubeSrc = ''; // YouTubeã½ã¼ã¹ 69 if (result[i].youtubeid != null) { 70 youtubeSrc = `<a href="#" class="yt-show" data-id="${result[i].youtubeid}"><img src="https://img.youtube.com/vi/${result[i].youtubeid}/1.jpg" alt="" width="120" height="80"></a>`; 71 } else { 72 youtubeSrc = `<a href="#" class="yt-show -noId"><img src="/common/img/chart_insight/responsive/dummy_youtube.jpg" alt="" width="120" height="80"></a>`; 73 } 74 75 const values = { 76 url: `/chart_insight_global/detail${app.extension}?main=${result[i].id}${paramDate}${paramFrom}${paramTo}${paramSort}#rank_or_point=${app.rank_or_point}`, 77 title: result[i].title === undefined ? result[i].artist : result[i].title, // insight_artistãªã¯ã¨ã¹ãæã¯ã¿ã¤ãã«ã«ã¢ã¼ãã£ã¹ãåãå ¥ãã(ã°ãã¼ãã«æªä½¿ç¨) 78 artist: result[i].artist, 79 youtubeSrc: youtubeSrc, 80 arrowSrc: app.checkRankArrow(app.checkRankLimit(result[i].rank_chart), app.checkRankLimit(result[i].rank_chart_prev)), 81 chartinNumber: result[i].chartin_number, 82 83 rankPrev: app.checkRankLimit(result[i]['rank_chart_prev']), 84 rankChart: app.checkRankLimit(result[i]['rank_chart']), 85 86 pointPrev: app.checkPointLimit(result[i]['point_chart_prev']), 87 pointChart: app.checkPointLimit(result[i]['point_chart']), 88 }; 89 90 function capitalize(str) { 91 if (typeof str !== 'string' || !str) return str; 92 return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase(); 93 }; 94 95 // 2025/1 é åå¦çå¹çå 96 // ãããã®HTMLã§ä½¿ãrankIndexã¨pointIndexãçæ 97 app.sorts.forEach((sort, index) => { 98 if (index !== 0) { 99 values[`rank${capitalize(sort.id)}`] = app.checkRankLimit(result[i][`rank_${sort.id}`]); 100 values[`point${capitalize(sort.id)}`] = app.checkPointLimit( 101 result[i][`point_${sort.id}`] 102 ); 103 } 104 }); 105 106 const tbodyTemplate = Handlebars.compile($('#tbody-template').html()); // åææ¨(å½)ã®ææ°é±é ä½ãã³ãã¬ã¼ã使 107 $rankCont.append(tbodyTemplate(values)); // ãã³ãã¬ã¼ãã«ãã¼ã¿ãå½ã¦ã¯ãã¦HTMLãåºå 108 109 if (i === result.length - 1) d.resolve(); // éåæå¦çã®æå 110 } 111 112 // ä¸¦ã³æ¿ããææ¨ã«ãã£ã¦æ²ã®é ä½ã¯ã©ã¹ãä»ä¸ 113 $rankCont.find('.ranking-list > li:not(.list-rank,.list-ttl,.list-chartin)').each(function () { 114 // æ²ã®é ä½ã®æ°å¤ãåå¾ 115 const num = Number($(this).find('span.rank').text()); 116 // 1ä½ã2ä½ã10ä½ã11ä½ã20ä½ã21ä½ãã®é ä½ã«ãã£ã¦è¦ãç®ãå¤ãã 117 if (num === 1) $(this).addClass('li-rank1'); 118 if (num > 1 && num < 11) $(this).addClass('li-rank2'); 119 if (num > 10 && num < 21) $(this).addClass('li-rank3'); 120 }); 121 122 // ãªã¯ã¨ã¹ãå®äºå¾å¦çã 123 d.then(function () { 124 if (callback !== undefined) callback(); // ã³ã¼ã«ããã¯å®è¡ 125 126 const actClassName = `.${$rankingNav.attr('data-act')}`; // ä¸¦ã³æ¿ãä¸ã®ææ¨ã»å½ãã¯ã©ã¹åã« 127 $document.find(actClassName).addClass(CLASS_LIST.act); // ä¸è¨ã®ã¯ã©ã¹è¦ç´ ã«.activeãä»ä¸ 128 129 // ãã£ã¼ã表示å¾ã«ãã¼ãã«å ã¹ã¯ãã¼ã«ä½ç½®ãæ»ã 130 $rankSct.scrollLeft(tableScrollLeft); 131 $rankingTtl.scrollLeft(tableScrollLeft); 132 133 $rankingWrap.css('min-height', '0'); // é«ãããªã»ãã 134 135 if (app.sp) $('.ranking-sct').scrollLeft(spScrollPos); // ã¹ããã®ã¹ã¯ãã¼ã«ä½ç½®ãæ»ã 136 if (initFlag) initFlag = false; // åæç¶æ ãã©ã° 137 138 app.changeUrlCsv(`${paramDate}${paramFrom}${paramTo}${paramSort}`); // ãCSVãã¦ã³ãã¼ãããã¿ã³ã®URLã夿´ 139 app.changeUrlSns(`${paramDate}${paramFrom}${paramTo}${paramSort}`); // SNSã·ã§ã¢ãã¿ã³ã®URLã夿´ 140 141 // position: stickyã®IEåãå¦ç 142 if (!detectSticky() && ieInit) { 143 new StickyState(document.querySelector('.ranking-ttl-wrap')); 144 ieInit = false;
145 } 146 }); 147 }, 148 error: function () { 149 console.error(`error ${url}`); 150 $loadTgt.removeClass('inview'); 151 }, 152 }); 153};
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.