1(function(window){ 2 'use strict'; 3 4 if (window.Form) 5 return; 6 7 window.Form = function(arParams) 8 { 9 this.params = arParams; 10 } 11 12 window.Form.prototype = { 13 reset() { 14 this.params.obj.reset(); 15 16 let elements = this.params.obj; 17 if(elements.length > 0) 18 { 19 for(let i = 0; i < elements.length; i++) 20 { 21 let obElement = elements[i]; 22 let fieldType = obElement.type.toLowerCase(); 23 switch(fieldType) 24 { 25 case 'file': 26 let obElementParent = obElement.parentNode; 27 let obElementLabel = obElementParent.querySelector('label.btn'); 28 if(obElementLabel != null) 29 { 30 obElementLabel.classList.remove('success'); 31 obElementLabel.innerHTML = obElementLabel.dataset.defaultLabel; 32 } 33 break; 34 default: 35 break; 36 } 37 } 38 } 39 }, 40 onLoadFile() 41 { 42 let label = new Array(); 43 if(this.params.obj.files.length > 0) 44 { 45 let obFile = this.params.obj.files[0]; 46 let obParent = this.params.obj.parentNode; 47 let obBtn = null; 48 if(obParent != null) 49 { 50 obBtn = obParent.querySelector('.btn'); 51 } 52 53 let size = obFile.size / 1024; 54 size = size / 1024; 55 size = new Intl.NumberFormat('en-IN', { 56 maximumFractionDigits: 2 57 }).format(size); 58 59 let ext = obFile.name; 60 ext = ext.split('.').reverse(); 61 if(typeof ext[0] != "undefined") 62 { 63 size += '*.' + ext[0]; 64 } 65 66 label.push('Ðобавлен'); 67 label.push(size); 68 label = label.join(' '); 69 70 if(obBtn != null) 71 { 72 obBtn.classList.add('success'); 73 obBtn.innerHTML = label; 74 } 75 } 76 }, 77 onSubmit() 78 { 79 let canSend = 'Y'; 80 let data = new FormData(this.params.obj); 81 let obIsAgree = this.params.obj.querySelector('input[name=agree]:checked'); 82 if(obIsAgree == null) 83 { 84 canSend = "N"; 85 } 86 87 if(canSend == 'N') 88 { 89 return false; 90 } 91 92 const obForm = this; 93 window.createMainLoader(obForm.params.obj); 94 window.grecaptcha.ready(function() 95 { 96 window.grecaptcha.execute(GOOGLE_RECAPTCHA_SITE_KEY, 97 { 98 action: 'submit' 99 }).then(function(token) 100 { 101 data.append('token', token); 102 data.append('web_form_submit', 'ÐÑпÑавиÑÑ'); 103 data.append('is_ajax', 'Y'); 104 105 let obModal = new Modal(); 106 107 BX.ajax.runComponentAction('rinaf:site.form', 'formResultNew', { 108 mode: 'class', 109 data: data 110 }).then(function(response) 111 { 112 obModal.open({ 113 header: response.data.header, 114 body: obModal.makeSuccessHtml(response.data.body) 115 }); 116 117 obForm.reset(); 118 119 window.removeMainLoader(obForm.params.obj); 120 }, function(response) 121 { 122 obModal.open({ 123 header: response.data.header, 124 body: obModal.makeErrorHtml(response.errors) 125 }, 'Y'); 126 window.removeMainLoader(obForm.params.obj); 127 }); 128 }); 129 }); 130 } 131 } 132})(window); 133 134const showFileInfo = function(obj, $event) 135{ 136 let obForm = new Form({ 137 obj: obj, 138 event: $event 139 }); 140 141 obForm.onLoadFile(); 142} 143 144const showModalForm = function(type, obj, isForm) { 145 if(isForm) 146 { 147 let obForm = new Form({ 148 type: type, 149 obj: obj 150 }); 151 152 obForm.onSubmit(); 153 } 154 else 155 { 156 let obModal = new Modal(); 157 158 let obFormData = { 159 formCode: type 160 }; 161 162 let mapDataSet = obj.dataset; 163 for(let key in mapDataSet) 164 { 165 if(key.indexOf('ajax') > -1) 166 {
167 let keyValue = key.replace('ajax', ''); 168 obFormData['ajax_' + keyValue.toLowerCase()] = mapDataSet[key]; 169 } 170 } 171 172 BX.ajax.runComponentAction('rinaf:site.form', 'getFormHtml', { 173 mode: 'class', 174 data: obFormData 175 }).then(function(response) 176 { 177 obModal.open({ 178 header: response.data.header, 179 body: response.data.body 180 }); 181 182 /** 183 * InputMask 184 */ 185 // const obIMask = new IMask(); 186 // obIMask.init(obModal.obModal); 187 188 window.BX.UserConsent.loadFromForms(); 189 190 const obDadata = new DaData(); 191 obDadata.init(obModal.obModal); 192 193 }, function(response) 194 { 195 obModal.open({ 196 header: response.data.header, 197 body: obModal.makeErrorHtml(response.errors) 198 }); 199 window.removeMainLoader(obForm.params.obj); 200 }); 201 } 202}
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.