PageSourceSearch

https://kummoon.net/wp-content/plugins/kboard/template/js/script.js?ver=6.6

js kummoon.net collected 2026-10-08 23:28:44 UTC 16,262 bytes, 448 lines download raw bytes

1/**
2 * @author https://www.cosmosfarm.com
3 */
4
5/**
6 * inViewport jQuery plugin by Roko C.B.
7 * http://stackoverflow.com/a/26831113/383904 Returns a callback function with
8 * an argument holding the current amount of px an element is visible in
9 * viewport (The min returned value is 0 (element outside of viewport)
10 */
11(function($, win){
12	$.fn.kboardViewport = function(cb){
13		return this.each(function(i, el){
14			function visPx(){
15				var elH = $(el).outerHeight(), H = $(win).height(), r = el.getBoundingClientRect(), t = r.top, b = r.bottom;
16				return cb.call(el, Math.max(0, t > 0 ? Math.min(elH, H - t) : (b < H ? b : H)));
17			}
18			visPx();
19			$(win).on("resize scroll", visPx);
20		});
21	};
22}(jQuery, window));
23
24var kboard_ajax_lock = false;
25
26jQuery(document).ready(function(){
27	var kboard_mod = jQuery('input[name=mod]', '.kboard-form').val();
28	if(kboard_mod == 'editor'){
29		if(kboard_current.use_tree_category == 'yes'){
30			kboard_tree_category_parents();
31		}
32		
33		if(kboard_current.use_editor == 'snote'){ // summernote
34			jQuery('.summernote').each(function(){
35				var height = parseInt(jQuery(this).height());
36				var placeholder = jQuery(this).attr('placeholder');
37				var lang = 'en-US';
38				
39				if(kboard_settings.locale == 'ko_KR'){
40					lang = 'ko-KR';
41				}
42				else if(kboard_settings.locale == 'ja'){
43					lang = 'ja-JP';
44				}
45				
46				jQuery(this).summernote({
47					toolbar: [
48						['style', ['style']],
49						['fontsize', ['fontsize']],
50						['font', ['bold', 'italic', 'underline', 'clear']],
51						['fontname', ['fontname']],
52						['color', ['color']],
53						['para', ['ul', 'ol', 'paragraph']],
54						['height', ['height']],
55						['table', ['table']],
56						['insert', ['link', 'video', 'hr', 'media']],
57						['view', ['fullscreen', 'codeview']],
58						['help', ['help']]
59					],
60					buttons: {
61						media: function (context) {
62							var ui = jQuery.summernote.ui;
63							var button = ui.button({
64								contents: '<i class="note-icon-picture"></i>',
65								tooltip: '이미지 입력',
66								click: function () {
67									kboard_editor_open_media();
68								}
69							});
70							return button.render();
71						}
72					},
73					disableDragAndDrop: true,
74					fontNames: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande', 'Tahoma', 'Times New Roman', 'Verdana', 'Nanum Gothic', 'Malgun Gothic', 'Noto Sans KR', 'Apple SD Gothic Neo'],
75					fontNamesIgnoreCheck: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Helvetica Neue', 'Helvetica', 'Impact', 'Lucida Grande', 'Tahoma', 'Times New Roman', 'Verdana', 'Nanum Gothic', 'Malgun Gothic', 'Noto Sans KR', 'Apple SD Gothic Neo'],
76					fontSizes: ['8','9','10','11','12','13','14','15','16','17','18','19','20','24','30','36','48','64','82','150'],
77					lang: lang,
78					height: height,
79					placeholder: placeholder
80				});
81			});
82		}
83	}
84});
85
86function kboard_tree_category_search(index, value){
87	var length = jQuery('.kboard-search-option-wrap').length;
88	var tree_category_index = parseInt(index) +1;
89
90	if(value){
91		jQuery('input[name="kboard_search_option[tree_category_'+index+'][value]"]').val(value);
92	}
93	else{
94		jQuery('input[name="kboard_search_option[tree_category_'+index+'][value]"]').val('');
95	}
96	
97	for(var i=tree_category_index; i<=length; i++){
98		jQuery('.kboard-search-option-wrap-'+i).remove();
99	}
100	jQuery('#kboard-tree-category-search-form-'+kboard_current.board_id).submit();
101	
102	return false;
103}
104
105function kboard_tree_category_parents(){
106	if(kboard_current.use_tree_category){
107		var tree_category = kboard_current.tree_category;
108		var tree_category_name;
109		var tree_category_index = 1;
110		
111		tree_category_name = 'kboard_option_tree_category_';
112		
113		jQuery('.kboard-tree-category-wrap').prepend('<select id="kboard-tree-category-'+tree_category_index+'" class="kboard-tree-category kboard-tree-category-'+tree_category_index+'"></select>');
114		jQuery('#kboard-tree-category-'+tree_category_index).append('<option value="">'+kboard_localize_strings.category+' '+kboard_localize_strings.select+'<
114/option>');
115		jQuery('#kboard-tree-category-'+tree_category_index).after('<input type="hidden" id="'+tree_category_name+tree_category_index+'" name="'+tree_category_name+tree_category_index+'" class="kboard-tree-category-hidden-'+tree_category_index+'">');
116		
117		jQuery('#kboard-tree-category-'+tree_category_index).change(function(){
118			kboard_tree_category_children(this.value, tree_category_index, tree_category_name);
119			jQuery('#kboard-tree-category-search-form-'+kboard_current.board_id).submit();
120		});
121		
122		jQuery.each(tree_category, function(index, element){
123			if(!element.parent_id){
124				jQuery('#kboard-tree-category-'+tree_category_index).append('<option value="'+element.id+'">'+element.category_name+'</option>');
125			}
126		});
127
128		kboard_tree_category_selected(tree_category_index, tree_category_name);
129	}
130}
131
132function kboard_tree_category_children(category_id, tree_category_index, tree_category_name){
133	var tree_category = kboard_current.tree_category;
134	var length = jQuery('.kboard-tree-category').length;
135	var check = 0;
136	
137	for(var i=tree_category_index+1; i<=length; i++){
138		jQuery('.kboard-tree-category-'+i).remove();
139		jQuery('.kboard-tree-category-hidden-'+i).remove();
140	}
141	
142	jQuery.each(tree_category, function(index, element){
143		if(jQuery('#kboard-tree-category-'+tree_category_index).val() == element.id){
144			jQuery('#'+tree_category_name+tree_category_index).val(element.category_name);
145		}
146	});
147	
148	if(jQuery('#kboard-tree-category-'+tree_category_index).val()){
149		jQuery.each(tree_category, function(index, element){
150			if(category_id === element.parent_id){
151				if(check==0){
152					jQuery('#kboard-tree-category-'+tree_category_index).after('<select id="kboard-tree-category-'+(tree_category_index+1)+'" class="kboard-tree-category kboard-tree-category-'+(tree_category_index+1)+'"></select>');
153					jQuery('#kboard-tree-category-'+(tree_category_index+1)).append('<option value="">'+kboard_localize_strings.category+' '+kboard_localize_strings.select+'</option>');
154					
155					jQuery('#kboard-tree-category-'+(tree_category_index+1)).after('<input type="hidden" id="'+tree_category_name+(tree_category_index+1)+'" name="'+tree_category_name+(tree_category_index+1)+'" class="kboard-tree-category-hidden-'+(tree_category_index+1)+'">');
156					
157					jQuery('#kboard-tree-category-'+(tree_category_index+1)).change(function(){
158						kboard_tree_category_children(this.value, (tree_category_index+1), tree_category_name);
159						jQuery('#kboard-tree-category-search-form-'+kboard_current.board_id).submit();
160					});
161				}
162				check++;
163				jQuery('#kboard-tree-category-'+(tree_category_index+1)).append('<option value="'+element.id+'">'+element.category_name+'</option>');
164			}
165		});
166		kboard_tree_category_selected(tree_category_index+1, tree_category_name);
167	}
168	else{
169		for(var i=tree_category_index; i<=length; i++){
170			jQuery('.kboard-tree-category-hidden-'+i).val('');
171			jQuery('.kboard-tree-category-hidden-'+(i+1)).remove();
172		}
173	}
174	
175	if(jQuery('.kboard-tree-category-search').length){
176		jQuery('input[name="kboard_search_option[tree_category_'+tree_category_index+'][value]"').val(jQuery('#'+tree_category_name+tree_category_index).val());
177		jQuery('input[name="kboard_search_option[tree_category_'+tree_category_index+'][key]"').val('tree_category_'+tree_category_index);
178	}
179}
180
181function kboard_tree_category_selected(tree_category_index, tree_category_name){
182	var check = jQuery('#tree-category-check-'+tree_category_index).val();
183	
184	if(check){
185		jQuery('#kboard-tree-category-'+tree_category_index+' option').each(function(index, element){
186			if(jQuery(element).text() == check){
187				jQuery(element).attr('selected', 'selected');
188				kboard_tree_category_children(this.value, tree_category_index, tree_category_name);
189			}
190		});
191	}
192	return false;
193}
194
195function kboard_editor_open_media(){
196	var w = 900;
197	var h = 500;
198	var media_popup_url = kboard_current.add_media_url;
199	
200	if(kboard_current.board_id){
201		if(jQuery('#kboard_media_wrapper').length){
202			jQuery('#kboard_media_wrapper').show();
203			jQuery('#kboard_media_wrapper').html(jQuery('<iframe frameborder="0"></iframe>').attr('src', media_popup_url));
204			jQuery('#kboard_media_background').show();
205		}
206		else{
207			var wrapper = jQuery('<div id="kboard_media_wrapper"></div>');
208			var background = jQuery('<div id="kboard_media_background"></div>').css({opacity:'0.5'}).click(function(){
209				kboard_media_close();
210			});
211			
212			function init_window_size(){
213				if(window.innerWidth <= 900){
214					wrapper.css({left:0, top:0, margin:'10px', width:(window.innerWidth-20), height:(window.innerHeight-20)});
215				}
216				else{
217					wrapper.css({left:'50%', top:'50%', margin:0, 'margin-left':(w/2)*-1, 'margin-top':(h/2)*-1, width:w, height:h});
218				}
219			}
220			init_window_size();
221			jQuery(window).resize(init_window_size);
222			
223			wrapper.html(jQuery('<iframe frameborder="0"></iframe>').attr('src', media_popup_url));
224			jQuery('body').append(background);
225			jQuery('body').append(wrapper);
226			
227			if(!jQuery('input[name="media_group"]').filter(function(){return this.value==kboard_settings.media_group}).length){
228				jQuery('[name="board_id"]').parents('form').append(jQuery('<input type="hidden" name="media_group">').val(kboard_settings.media_group));
229			}
230		}
231	}
232}
233
234function kboard_editor_insert_media(url){
235	if(kboard_current.use_editor == 'snote'){ // summernote
236		jQuery('#kboard_content').summernote('editor.saveRange');
237		jQuery('#kboard_content').summernote('editor.restoreRange');
238		jQuery('#kboard_content').summernote('editor.focus');
239		jQuery('#kboard_content').summernote('editor.pasteHTML', "<img src=\""+url+"\" alt=\"\">");
240	}
241	else if(typeof tinyMCE != 'undefined' && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden()){
242		tinyMCE.activeEditor.execCommand('mceInsertContent', false, "<img id=\"last_kboard_media_content\" src=\""+url+"\" alt=\"\">");
243		tinyMCE.activeEditor.focus();
244		tinyMCE.activeEditor.selection.select(tinyMCE.activeEditor.dom.select('#last_kboard_media_content')[0], true);
245		tinyMCE.activeEditor.selection.collapse(false);
246		tinyMCE.activeEditor.dom.setAttrib('last_kboard_media_content', 'id', '');
247	}
248	else if(jQuery('#kboard_content').length){
249		jQuery('#kboard_content').val(function(index, value){
250			return value + (!value?'':' ') + "<img src=\""+url+"\" alt=\"\">";
251		});
252	}
253}
254
255function kboard_media_close(){
256	jQuery('#kboard_media_wrapper').hide();
257	jQuery('#kboard_media_background').hide();
258}
259
260function kboard_document_print(url){
261	window.open(url, 'kboard_document_print');
262	return false;
263}
264
265function kboard_document_like(button, callback){
266	if(!kboard_ajax_lock){
267		kboard_ajax_lock = true;
268		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_document_like', 'document_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
269			kboard_ajax_lock = false;
270			if(typeof callback === 'function'){
271				callback(res);
272			}
273			else{
274				if(res.result == 'error'){
275					alert(res.message);
276				}
277				else{
278					jQuery('.kboard-document-like-count', button).text(res.data.like);
279				}
280			}
281		});
282	}
283	else{
284		alert(kboard_localize_strings.please_wait);
285	}
286	return false;
287}
288
289function kboard_document_unlike(button, callback){
290	if(!kboard_ajax_lock){
291		kboard_ajax_lock = true;
292		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_document_unlike', 'document_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
293			kboard_ajax_lock = false;
294			if(typeof callback === 'function'){
295				callback(res);
296			}
297			else{
298				if(res.result == 'error'){
299					alert(res.message);
300				}
301				else{
302					jQuery('.kboard-document-unlike-count', button).text(res.data.unlike);
303				}
304			}
305		});
306	}
307	else{
308		alert(kboard_localize_strings.please_wait);
309	}
310	return false;
311}
312
313function kboard_comment_like(button, callback){
314	if(!kboard_ajax_lock){
315		kboard_ajax_lock = true;
316		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_comment_like', 'comment_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
317			kboard_ajax_lock = false;
318			if(typeof callback === 'function'){
319				callback(res);
320			}
321			else{
322				if(res.result == 'error'){
323					alert(res.message);
324				}
325				else{
326					jQuery('.kboard-comment-like-count', button).text(res.data.like);
327				}
328			}
329		});
330	}
331	else{
332		alert(kboard_localize_strings.please_wait);
333	}
334	return false;
335}
336
337function kboard_comment_unlike(button, callback){
338	if(!kboard_ajax_lock){
339		kboard_ajax_lock = true;
340		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_comment_unlike', 'comment_uid':jQuery(button).data('uid'), 'security':kboard_settings.ajax_security}, function(res){
341			kboard_ajax_lock = false;
342			if(typeof callback === 'function'){
343				callback(res);
344			}
345			else{
346				if(res.result == 'error'){
347					alert(res.message);
348				}
349				else{
350					jQuery('.kboard-comment-unlike-count', button).text(res.data.unlike);
351				}
352			}
353		});
354	}
355	else{
356		alert(kboard_localize_strings.please_wait);
357	}
358	return false;
359}
360
361function kboard_fields_validation(form, callback){
362	jQuery('.kboard-attr-row.required', form).each(function(index, element){
363		var required;
364		
365		if(jQuery(element).hasClass('kboard-attr-content')){
366			if(kboard_current.use_editor == 'yes'){
367				if(jQuery('#wp-kboard_content-wrap').hasClass('tmce-active')){
368					jQuery('#kboard_content').val(tinymce.get('kboard_content').getContent());
369				}
370			}
371			required = jQuery('#kboard_content');
372		}
373		else{
374			required = jQuery(element).find('.required');
375		}
376		
377		if(jQuery(required).is(':checkbox') || jQuery(required).is(':radio')){
378			if(jQuery(element).find('.required:checked').length == 0){
379				alert(kboard_localize_strings.required.replace('%s', jQuery(element).find('.field-name').text()));
380				callback(jQuery(required).eq(0));
381				return false;
382			}
383		}
384		else if(jQuery(required).val() == 'default' || !jQuery(required).val()){
385			if(jQuery(element).hasClass('kboard-attr-address')){
386				if(!jQuery('.kboard-row-postcode input').val() || !jQuery('.kboard-row-address-1 
386input').val()){
387					alert(kboard_localize_strings.required.replace('%s', jQuery(element).find('.field-name').text()));
388					callback(required);
389					return false;
390				}
391				else{
392					return true;
393				}
394			}
395			else if(jQuery(element).hasClass('kboard-attr-file')){
396				if(jQuery('input[name="'+jQuery(element).children('.attr-value').children().attr('name')+'"]').val() == ''){
397					alert(kboard_localize_strings.required.replace('%s', jQuery(element).find('.field-name').text()));
398					callback(required);
399					return false;
400				}
401				else{
402					return true;
403				}
404			}
405			else{
406				alert(kboard_localize_strings.required.replace('%s', jQuery(element).find('.field-name').text()));
407				callback(required);
408				return false;
409			}
410		}
411	});
412}
413
414function kboard_content_update(content_uid, data, callback){
415	if(!kboard_ajax_lock){
416		kboard_ajax_lock = true;
417		jQuery.post(kboard_settings.ajax_url, {'action':'kboard_content_update', 'content_uid':content_uid, 'data':data, 'security':kboard_settings.ajax_security}, function(res){
418			kboard_ajax_lock = false;
419			if(typeof callback === 'function'){
420				callback(res);
421			}
422		});
423	}
424	else{
425		alert(kboard_localize_strings.please_wait);
426	}
427	return false;
428}
429
430function kboard_ajax_builder(args, callback){
431	if(!kboard_ajax_lock){
432		kboard_ajax_lock = true;
433		var callback2 = (typeof callback === 'function') ? callback : args['callback'];
434		args['action'] = 'kboard_ajax_builder';
435		args['callback'] = '';
436		args['security'] = kboard_settings.ajax_security;
437		jQuery.get(kboard_settings.ajax_url, args, function(res){
438			kboard_ajax_lock = false;
439			if(typeof callback2 === 'function'){
440				callback2(res);
441			}
442		});
443	}
444	else{
445		alert(kboard_localize_strings.please_wait);
446	}
447	return false;
448}

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.