PageSourceSearch

https://sinchon517.com/js/module/forms.1787212697.js

js sinchon517.com collected 2026-09-26 15:33:44 UTC 15,998 bytes, 325 lines download raw bytes

1(function($) {
2	var MAX_FILE_NUMBER = 10;
3	$.forms = {
4		init : function(pid) { 
5			/*
6			if($("head #datepicker_js").length == 0) {
7				$("head").append("<script id='datepicker_js' src='/js/module/datepicker.js'></script>");
8				$("head").append("<link href='/css/datepicker.css' rel='stylesheet' />");
9			}
10			if($("head #datepickk_js").length == 0) {
11				$("head").append("<script id='datepickk_js' src='/js/datepickk/datepickk.js'></script>");
12				$("head").append("<link href='/css/datepickk.css' rel='stylesheet' />");
13			}
14			*/
15			if(typeof $.fn.fileupload == 'undefined') {
16				// $('head').append('<script type="text/javascript" src="/js/jquery.fileupload.js"></script>');
17			}
18			$(function() {
19				$("[data-type='form'] div[form-type='file.upload'] label").each(function(idx, v){
20					if($(v).find('.file-uploaded-number').length == 0) {
21						$(v).append(' <span class="file-uploaded-number">(0/10)</span>');
22					}
23				});
24				$("[data-type='form'] div[form-type='file.upload'] input[type='file']").prop('multiple', true);
25				
26				// console.log(pid);
27        		var umember = (PAGE_MODE == 'c') ? UMEMBER : property.UMEMBER;			
28        		var umemberActivate = (PAGE_MODE == 'c') ? Number(UMEMBER_ACTIVATE) : Number(property.UMEMBER_ACTIVATE);
29        		var checkLogin = (PAGE_MODE == 'c') ? true : umember.check_login;
30
31	            if (PAGE_MODE == 's' && umemberActivate == 0 && umember.id_type == 'creatorlink') { //creatorlink login
32	                checkLogin = (umember.id !== undefined && umember.id) ? true : false;
33	            }
34				// console.log('checkLogin', checkLogin);
35				if(!checkLogin && typeof pid != 'undefined' && pid) {
36					var $formEL = $('.element[data-id="'+pid+'"][data-type="form"]'),
37						type2 = $formEL.attr('data-type2');
38					// console.log($formEL.attr('data-captcha'));
39					if(type2 == 'form' && $formEL.attr('data-captcha') != 'false') {
40						var blocklang = $formEL.data('blocklang');
41						if(!blocklang) blocklang = LANG;
42
43						if($formEL.find('.form-captcha').length == 0) {
44							var $captcha = $(getContactCaptchaHTML(blocklang)),
45								$privacy = $formEL.find('.form-inline .form-group.form-privacy').last(),
46								$submit = $formEL.find('[data-form-submit]').first(),
47								$submit_group = $submit.closest('.form-group');
48
49							if($privacy.length > 0) $privacy.after($captcha);
50							else if($submit_group.length > 0) $submit_group.before($captcha);
51							else $formEL.find('.form-inline').append($captcha);
52						}
53
54						load_form_kcaptcha($formEL, pid);
55
56						$formEL.find('.kcaptcha-change').off('click.formCaptcha').on('click.formCaptcha', function(e) {
57							e.preventDefault();
58							load_form_kcaptcha($formEL, pid);
59						});
60					}
61				}
62
63				$("[data-type='form'] div[form-type='file.upload'] input[type='file']").fileupload({
64				    url: '/template/forms/upload-file',
65				    dataType: 'json',
66				    async: true,
67				    pasteZone: null,
68				    change : function (e, data) {
69					    if(data.files.length > MAX_FILE_NUMBER || $(this).closest("div[form-type='file.upload']").find('.file-row').length + data.files.length > MAX_FILE_NUMBER){
70					    	var modal = $(this).showModalFlat('',$.lang[LANG]['form.file.upload.limit'],true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn','','',function() {
71								$(document).on('keydown', function(e) {
72									if(e.keyCode == 27) modal.modal('hide');
73								});
74							});
75					    	return false; 
76						}
77
78						var maxsize = (property.VALIDPLAN && $.inArray(property.VALIDTYPE,['BN','SM']) > -1) ? 104857600 : 10485760;
79						var flag = true;
80						$.each(data.files, function(idx, file) {
81							var filesize = file.size;
82							if(file.size > maxsize) {
83								filesize = (filesize/1024/1024).toFixed(1);
84					            if(maxsize == 104857600) err = $.lang[LANG]['editor.upload.max.100'] + $.lang[LANG]['editor.upload.max.2'];
85					            else err = $.lang[LANG]['editor.upload.max.1'] + $.lang[LANG]['editor.upload.max.2'];
86
87								var modal = $(this).showModalFlat('', err, true, false, '', 'ok', '', 'cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn','','',function() {
88									$(document).on('keydown', function(e) {
89										if(e.keyCode == 27) modal.modal('hide');
90									});
91								});
92
93						    	flag = false;
94						    	return false;
95							}
96						});
97
98						if(!flag) return false;
99					},
100				    add: function(e,data) {
101			            var r = $.upload_add(e,data,'flink');
102				        if(r.submit) {
103					        $('#loading').css('left','-100%');
104					        $.processON();
105					        data.submit();
106				            // var jqXHR = data.submit();
107				        } else {
108				            var modal = $(this).showModalFlat('', r.err, true, false, '', 'ok', '', 'cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn','','',function() {
109								$(document).on('keydown', function(e) {
110									if(e.keyCode == 27) modal.modal('hide');
111								});
112							});
113				        }
114				    },
115				    done: function (e, data) {
116				        if(typeof data.result.error != 'undefined' && data.result.error) {
117				            // alert(data.result.error);
118							var modal = $(this).showModalFlat('',data.result.error,true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn','','',function() {
119								$(document).on('keydown', function(e) {
120									if(e.keyCode == 27) modal.modal('hide');
121								});
122							});
123				            // $('.progress .progress-bar').css('width','0%');
124				            $.processOFF();
125				            return;
126				        }
127				        if(typeof data.result.file == 'undefined' || !data.result.file || typeof data.result.uploaded == 'undefined' || !data.result.uploaded) {
128				        	var modal = $(this).showModalFlat('', $.lang[LANG]['form.file.upload.disabled'],true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn','','',function() {
129								$(document).on('keydown', function(e) {
130									if(e.keyCode == 27) modal.modal('hide');
131								});
132							});
133				            $.processOFF();
134				            return;
135				        }
136
137				        if(data.result.uploaded) {
138							var flink_s = (data.result.uploaded.file_size) ? Number(data.result.uploaded.file_size) : 0,
139								flink_unit = (flink_s > 1024) ? 'MB' : 'KB',
140								flink_size = (flink_s > 1024) ? flink_s/1024 : flink_s;
141					        	
142							var uploaded = data.result.uploaded;
143							var thumb = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="50" height="50"><g><path d="M28 16.82c0 1.21.98 2.18 2.18 2.18H40L28 7v9.82z" style="fill:#3870B2"/><path d="M30.18 19c-1.2 0-2.18-.98-2.18-2.18V7H13c-1.66 0-3 1.34-3 3v30c0 1.66 1.34 3 3 3h24c1.66 0 3-1.34 3-3V19h-9.82zM32 35H18v-2h14v2zm0-5H18v-2h14v2zm0-5H18v-2h14v2z" style="fill:#4789e7"/></g></svg>';
144							if(uploaded.file_type.indexOf('image/') > -1 && uploaded.thumbnail_url) {
145								thumb = '<img src="' + uploaded.thumbnail_url + '">';
146							}
147							
148							$(this).closest("div[form-type='file.upload']").find("input[type='text']").remove();
149
150							var fileRow = '\
151								<div class="file-row display-flex align-items-center">\
152			                        <div class="file-thumb">' + thumb + '</div>\
153			                        <div>\
154			                            <p class="file-name">'+uploaded.orig_name+'</p>\
155			                            <p class="file-size">'+flink_size.toFixed(2) + flink_unit+'</p>\
156			                            <input type="hidden" value="' + data.result.uploaded.orig_name + '||' + data.result.uploaded.file_size + 'KB' + '||' + data.result.file + '">\
157			                        </div>\
158			                        <span class="form-file-delete" data-src="'+uploaded.file_name+'">\
159			                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 15" width="15" height="15"><g>
159<path d="M2.35 12.65c-.2-.2-.2-.51 0-.71l9.6-9.6c.2-.2.51-.2.71 0 .2.2.2.51 0 .71l-9.6 9.6c-.2.2-.52.2-.71 0z"/><path d="M12.3 2.2a.47.47 0 0 0-.35.15l-9.6 9.6c-.2.2-.2.51 0 .71.1.1.23.15.35.15.13 0 .26-.05.35-.15l9.6-9.6c.2-.2.2-.51 0-.71-.1-.1-.22-.15-.35-.15z"/><path d="M12.65 12.65c-.2.2-.51.2-.71 0l-9.6-9.6c-.2-.2-.2-.51 0-.71.2-.2.51-.2.71 0l9.6 9.6c.2.2.2.52 0 .71z"/><path d="M2.7 2.2a.47.47 0 0 0-.35.15c-.2.2-.2.51 0 .71l9.6 9.6c.1.1.23.15.35.15.13 0 .26-.05.35-.15.2-.2.2-.51 0-.71l-9.6-9.6a.47.47 0 0 0-.35-.15z"/></g></svg>\
160			                        </span>\
161			                    </div>\
162							';
163							$(this).closest("div[form-type='file.upload']").find(".file-title").addClass('hide');
164							$(this).closest("div[form-type='file.upload']").append(fileRow);
165
166							// uploadedNum = ' <span class="file-uploaded-number">(' + $(this).closest("div[form-type='file.upload']").find('.file-row').length + '/' + MAX_FILE_NUMBER + ')</span>';
167				        	$(this).closest('div[form-type="file.upload"]').find('.file-uploaded-number').text('(' + $(this).closest("div[form-type='file.upload']").find('.file-row').length + '/' + MAX_FILE_NUMBER + ')');
168				        }
169				        
170				        if($(this).closest("div[form-type='file.upload']").find('.file-row').length >= MAX_FILE_NUMBER) {
171				        	$(this).closest("div[form-type='file.upload']").find('label').addClass('disabled');
172				        	$(this).closest("div[form-type='file.upload']").find('input[type="file"]').prop('disabled', true);
173				        }
174				        $.processOFF();
175				        // $('#loading').css('left','50%');
176				    },
177				    // progressall: function (e, data) {
178				    //     var progress = parseInt(data.loaded / data.total * 100, 10);
179				    //     $('.progress .progress-bar').css(
180				    //         'width',
181				    //         progress + '%'
182				    //     );
183
184				    // },
185				}).prop('disabled', !$.support.fileInput)
186				    .parent().addClass($.support.fileInput ? undefined : 'disabled');
187
188				// $("[data-type='form'] div[form-type='date'] input.date-ymd").datepicker({
189				// 	"theme" : "mini",
190				// 	onSelect: function(picker) {
191				// 		picker.hide();
192				// 	}
193				// });
194				var formDateSelector = "[data-type='form'] div[form-type='date'] input, [data-type='form'] div[form-type='date'] input + svg, [data-type='contact'][data-type2='franchise bar'] div[form-type='date'] input, [data-type='contact'][data-type2='franchise bar'] div[form-type='date'] input + svg";
195				var formDate2Selector = "[data-type='form'] div[form-type='date2'] input, [data-type='form'] div[form-type='date2'] input + svg, [data-type='contact'][data-type2='franchise bar'] div[form-type='date2'] input, [data-type='contact'][data-type2='franchise bar'] div[form-type='date2'] input + svg";
196
197				$(formDateSelector).off("click");
198				$(formDateSelector).on("click", function() {
199					// $(this).prev().data("DatePicker").show();
200					var id = $(this).closest('div').attr('form-seq');
201					formDateTimePicker(id, 'date');
202				});
203
204				$(formDate2Selector).off('click');
205				$(formDate2Selector).on('click', function() {
206					var id = $(this).closest('div').attr('form-seq');
207					formDateTimePicker(id, 'date2');
208				});
209
210				$(`[form-type="radio.image"] input, [form-type="check.image"] input`).on('change', function() {
211                    let $formEL = $(this).closest('.element[data-type="form"]');
212                    $formEL.find('input[type="checkbox"], input[type="radio"]').each(function(idx, v){
213                        let $label = $(v).closest('label');
214                        if($(v).is(':checked')) {
215                            $label.addClass('checked');
216                        } else {
217                            $label.removeClass('checked');
218                        }
219                    });
220		        });
221			});
222		}
223	}
224
225	$(function() {
226
227		$.forms.init();
228
229		// $(document).on("click", "[data-type='form'] div[form-type='date2'] .btn-option-hh", function() {
230		// 	$(this).closest("div[form-type='date2']").find(".option-hh").show();
231		// });
232
233		// $(document).on("click", "[data-type='form'] div[form-type='date2'] .btn-option-ii", function() {
234		// 	$(this).closest("div[form-type='date2']").find(".option-ii").show();
235		// });
236
237		// $(document).on("click", "[data-type='form'] div[form-type='date2'] .option-hh div", "click", function() {
238		// 	$(this).closest("div[form-type='date2']").find("input.date-hh").val($(this).data("hh"));
239		// 	$(this).closest(".option-hh").hide();
240		// });
241
242		// $(document).on("click", "[data-type='form'] div[form-type='date2'] .option-ii div", function() {
243		// 	$(this).closest("div[form-type='date2']").find("input.date-ii").val($(this).data("ii"));
244		// 	$(this).closest(".option-ii").hide();
245		// });
246
247		// $(document).on("mousedown", function(e) {
248		// 	$("[data-type='form'] div[form-type='date2'] .option-hh").each(function() {
249		// 	    var $container = $(this);
250		// 	    var $trigger = $(this).closest("div[form-type='date2']").find(".btn-option-hh");
251		// 	    if($trigger.has(e.target).length === 0 && !$trigger.is(e.target) && !$container.is(e.target) && $container.has(e.target).length === 0) $container.hide();
252		// 	});
253
254		// 	$("[data-type='form'] div[form-type='date2'] .option-ii").each(function() {
255		// 	    var $container = $(this);
256		// 	    var $trigger = $(this).closest("div[form-type='date2']").find(".btn-option-ii");
257		// 	    if($trigger.has(e.target).length === 0 && !$trigger.is(e.target) && !$container.is(e.target) && $container.has(e.target).length === 0) $container.hide();
258		// 	});
259		// });
260
261		$(document).on("click", "[data-type='form'] div[form-type='file.upload'] label", function(e) {
262			var blocklang = $(this).closest('[data-type="form"]').data('blocklang');
263			if(!blocklang) blocklang = LANG;
264
265			if(e.target.nodeName.toLowerCase() == 'label' && $(this).find("input[type='file']").prop('disabled') == true) {
266				e.preventDefault();
267				var modal = $(this).showModalFlat('',$.lang[LANG]['form.file.upload.limit'],true,false,'','ok','','cl-cmmodal cl-s-btn w560 cl-p130 cl-t80 cl-modal cl-none-title cl-close-btn','','',function() {
268					$(document).on('keydown', function(e) {
269						if(e.keyCode == 27) modal.modal('hide');
270					});
271				});
272
273				return false;
274			}
275		});
276		
277
278		$(document).on("click", "[data-type='form'] div[form-type='file.upload'] .form-file-delete", function() {
279			var $elem = $(this);
280			var blocklang = $(this).closest('[data-type="form"]').data('blocklang');
281			if(!blocklang) blocklang = LANG;
282
283			var $label = $(this).closest("div[form-type='file.upload']").find('label');
284			var $inputFile = $(this).closest("div[form-type='file.upload']").find('input[type="file"]');
285
286			if(confirm($.lang[blocklang]['form.file.confirm.delete'])) {
287	    		$.ajax({
288	    			url:"/template/forms/delete-file",
289	    			type:"post",
290	    			async: true,
291	    			beforeSend: function() {
292	    				$.processON();
293	    			},
294	    			data:{
295	    				"s": $elem.data("src")
296	    			},
297	    			dataType:"json",
298	    			success:function() {
299						var fileRowCnt = $elem.closest("div[form-type='file.upload']").find('.file-row').length;
300
301						if(fileRowCnt > 1) {
302					        $elem.closest('div[form-type="file.upload"]').find('.file-uploaded-number').text('(' + (fileRowCnt - 1) + '/' + MAX_FILE_NUMBER + ')');
303						} else {
304					        $elem.closest('div[form-type="file.upload"]').find('.file-uploaded-number').text('(0/' + MAX_FILE_NUMBER + ')');
305		    				$elem.closest("div[form-type='file.upload']").find('.file-title').removeClass('hide');							
306						}
307	    				
308		    			if(fileRowCnt - 1 < MAX_FILE_NUMBER) {
309				        	$label.removeClass('disabled');
310				        	$inputFile.prop('disabled', false);
311				        }
312	    			},
313	    			complete: function() {
314	    				$elem.closest('.file-row').remove();
315	    				$.processOFF();
316	    			}
317	    		});
318	    	}
319		});
320
321		$(document).on("click", "[data-type='form'] div[form-type='file.upload'] .file-thumb img", function(e) {
322			imgPopupFrame($(this).attr('src'));
323		});
324	});
325})(jQuery);

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.