PageSourceSearch

https://www.hkma.gov.hk/statics/assets/js/pr-listing.js

js hkma.gov.hk collected 2026-10-01 08:32:22 UTC 8,034 bytes, 228 lines download raw bytes

1var is_ajax = false;
2	
3esdlife.app.methods = {
4	filter: {
5		year: '',
6		month: '',
7		categories: [],
8		defaultsize: 10,
9		pagesize: 10,
10		currentcount: 10,
11	},
12	init: 
13	$( document ).ready(function() {
14		if (getPageFilter()) {
15			esdlife.app.methods.filter.currentcount = getPageFilter().currentcount;
16		}
17
18		esdlife.app.methods.filter.year = $( '#year' ).val();
19
20		if (esdlife.app.methods.filter.year != '' ) {
21			$('.paging-group .select-wrapper ul.select-options li[rel="10000"]').removeClass('hide');
22		} else {
23			$('.paging-group .select-wrapper ul.select-options li[rel="10000"]').addClass('hide');
24		}
25
26		esdlife.app.methods.filter.month = $( '#month' ).val();
27		$('[name="category[]"]:checked').each(function() {
28			esdlife.app.methods.filter.categories.push($( this ).val());
29		})
30
31		var $search_form = $("#press-release-search");
32		if ( $search_form.length > 0 )
33		{
34			$search_form.validate({
35				rules: {
36					query : {
37						required: true,
38						notDefaultValue: true,
39						removeDefaultValue: true,
40					}
41				},
42				errorClass: 'required',
43				errorPlacement: function(error, element) {
44				}
45			});
46		}
47
48		$( '#go-btn, #filter-btn' ).on( 'click keyup', function(e) {
49			if ( e.type == "keyup" )
50			{
51				switch ( e.keyCode )
52				{
53					case KEY_ENTER :
54						break;
55					default : return; break;
56				}
57			}
58
59			if ( is_ajax ) { return false; } else { is_ajax = true; }
60
61			esdlife.app.methods.reset_page();
62			
63			esdlife.app.methods.filter.year = $( '#year' ).val();
64			esdlife.app.methods.filter.month = $( '#month' ).val();
65			esdlife.app.methods.filter.categories = [];
66			$( '[name="category[]"]:checked' ).each(function() {
67				esdlife.app.methods.filter.categories.push( $( this ).val() );
68			});
69
70			$.ajax({
71				url: basePath + '/api',
72				data: { pagesize: esdlife.app.methods.filter.pagesize, currentcount: esdlife.app.methods.filter.currentcount, year: esdlife.app.methods.filter.year, month: esdlife.app.methods.filter.month, categories: esdlife.app.methods.filter.categories },
73				type: 'GET',
74				success: function( response ) {
75					esdlife.app.methods.render_result( JSON.parse( response ) );
76				}
77			})
78		});
79
80		$( '#btn-press-release-more'  ).on( 'click keyup', function(e) {
81			if ( e.type == "keyup" )
82			{
83				switch ( e.keyCode )
84				{
85					case KEY_ENTER :
86						break;
87					default : return; break;
88				}
89			}
90
91			if ( is_ajax ) { return false; } else { is_ajax = true; }
92
93			esdlife.app.methods.filter.pagesize = $('#number-of-item').val();
94
95			$.ajax({
96				url: basePath + '/api',
97				data: { pagesize: esdlife.app.methods.filter.pagesize, currentcount: esdlife.app.methods.filter.currentcount, year: esdlife.app.methods.filter.year, month: esdlife.app.methods.filter.month, categories: esdlife.app.methods.filter.categories },
98				type: 'GET',
99				success: function( response ) {
100					esdlife.app.methods.render_result( JSON.parse( response ) );
101				}
102			})
103		});
104	}),
105	render_result: function( result ) {
106		$( '.paging-group' ).show();
107
108		if ( result.datasize == 0 ) {
109			$( '.paging-group' ).hide();
110			$( '#no-more-result' ).show();
111			is_ajax = false;
112			return false;
113		}
114
115		if ( result.data.length < esdlife.app.methods.filter.pagesize ) {
116			$( '.paging-group' ).hide();
117			$( '#no-more-result' ).hide();
118		}
119
120		var str = '';
121
122		for ( var i = 0; i < result.data.length; i++ ) {
123			var data = result.data[i];
124			var additional_txt = '';
125			var before_txt  = '';
126
127			if (data['speaker']) {
128				var subject_name = speaker_subject_name.replace(/{{%title%}}/gi, data['speaker']['title'])
129				subject_name = subject_name.replace(/{{%name%}}/gi, data['speaker']['name']);
130
131				if ( !data['speaker']['remarks'] ) {
132					data['speaker']['remarks'] = '';
133				}
134				
135				if (data['speaker']['no_show'] && data['speaker']['no_show'] == 1) {
136					additional_txt = '<div>' + data['speaker']['remarks'] + '</div>';
137				} else {
138					additional_txt = '<div>' + subject_name + '</div><div>' + data['speaker']['remarks'] + '</div>';
139				}
140
141			}
142
143			if (data['insight_author']) {
144				before_txt = data['insight_author'] + insight_author;
145			}
146
147			if (data['pr_file_group']) {
148				for (var j = 0; j < data['pr_file_group'].length; j++) {
149					additional_txt += '<div>' + data['pr_file_group'][j]['text_before'] + ' <a href="' + data['pr_file_group'][j]['file_info']['url'] + '" target="_blank" title="' + data['pr_file_group'][j]['title'] + '">' + data['pr_file_group'][j]['title'] + ' ' + data['pr_file_group'][j]['file_info']['description'] + '</a>' + '</div>';
150				}
151			}
152
153			var formatted_date = date_format;
154
155			if (data['date_format'] && data['date_format'] == 1) {
156				formatted_date = date_format_2;
157			}
158
159			if (date_format != 'd M Y') {
160				formatted_date = formatted_date.replace(/d/gi, data['publish_date'].substring(8, 10));
161				formatted_date = formatted_date.replace(/y/gi, data['publish_date'].substring(0, 4));
162				formatted_date = formatted_date.replace(/m/gi, data['publish_date'].substring(5, 7));
163			} else {
164				formatted_date = formatted_date.replace(/d/gi, data['publish_date'].substring(8, 10));
165				formatted_date = formatted_date.replace(/y/gi, data['publish_date'].substring(0, 4));
166				formatted_date = formatted_date.replace(/m/gi, (month[data['publish_date'].substring(5, 7)]).substring(0, 3));
167			}
168
169			var post_title = data['title'];
170
171			var patt = new RegExp(/^[a-zA-Z]/);
172			var res = patt.test(post_title);
173			if (res) {
174					post_title = post_title.charAt(0).toUpperCase() + post_title.slice(1);
175			}
176
177			if (data['global_setting'][0]['redirect_state'] == 'Y') {
178				if (data['global_setting'][1]['redirect_url'] != '') {
179					var description = data['global_setting'][2]['file_info']['description'];
180					str += '<ul><li>' + formatted_date + '</li><li><a href="' + data['global_setting'][1]['redirect_url'] + '" target="_blank">' + before_txt + post_title + ' ' + description + '</a>' + additional_txt + '</li></ul>';
181				} else {
182					str += '<ul><li>' + formatted_date + '</li><li>' + before_txt + post_title + additional_txt + '</li></ul>';
183				}
184			} else {
185				if (data['url']) {
186					str += '<ul><li>' + formatted_date + '</li><li><a href="' + data['url'] + '">' + before_txt + post_title + '</a>' + additional_txt + '</li></ul>';
187				} else {
188					str += '<ul><li>' + formatted_date + '</li><li>' + before_txt + post_title + additional_txt + '</li></ul>';
189				}
190			}
191		}
192
193		$( '#press-release-result' ).append( str );
194
195		esdlife.app.methods.filter.currentcount += parseInt(esdlife.app.methods.filter.pagesize);
196
197		if (esdlife.app.methods.filter.currentcount >= result.datasize) {
198			$( '.paging-group' ).hide();
199			$( '#no-more-result' ).hide();
200		}
201
202		if (esdlife.app.methods.filter.year != '' ) {
203			$('.paging-group .select-wrapper ul.select-options li[rel="10000"]').removeClass('hide');
204		} else {
205			$('.paging-group .select-wrapper ul.select-options li[rel="10000"]').addClass('hide');
206			if ($('#number-of-item').val() == 10000) {
207				$('#number-of-item').val(esdlife.app.methods.filter.defaultsize);
208				esdlife.app.methods.filter.pagesize = esdlife.app.methods.filter.defaultsize;
209				$('.paging-group .select-title .title').html($('.paging-group ul.select-options li').eq(0).html());
210				$('.paging-group .select-title').attr('data-index', 0);
211			}
212		}
213
214		setPageFilter(esdlife.app.methods.filter);
215
216		is_ajax = false;
217	},
218	reset_page: function() {
219		esdlife.app.methods.filter.currentcount = 0;
220		$('#number-of-item').val(esdlife.app.methods.filter.defaultsize);
221		esdlife.app.methods.filter.pagesize = esdlife.app.methods.filter.defaultsize;
222		$('.paging-group .select-title .title').html($('.paging-group ul.select-options li').eq(0).html());
223		$('.paging-group .select-title').attr('data-index', 0);
224		$( '#press-release-result' ).html( '' );
225		$( '.paging-group' ).hide();
226		$( '#no-more-result' ).hide();
227	},
228}

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.