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.