1(function() { 2if (window.BlogBFileDialog) 3 return; 4window.BlogBFileDialogUniqueID = []; 5window.BlogBFileDialog = function(arParams) 6{ 7 this.dialogName = 'AttachmentsDialog'; 8 this.agent = false; 9 this.uploadFileUrl = arParams.upload_path; // from file.input php 10 11 this.id = (!!arParams["id"] ? arParams["id"] : this.getID()); 12 this.controlID = arParams["id"]; 13 this.enabled = true; 14 15 this.controller = (!! arParams.controller ) ? arParams.controller : null; 16 this.fileInput = arParams.fileInput; 17 arParams.hAttachEvents = BX.delegate(this.InitAgent, this); 18 19 this.msg = arParams.msg; 20 this.dropAutoUpload = arParams.dropAutoUpload; 21 this.CID = arParams.CID; 22 this.multiple = !!arParams.multiple; 23 24 arParams.caller = this; 25 arParams.classes = { 26 'uploaderParent' : 'file-uploader', 27 'uploader' : 'file-fileUploader', 28 'tpl_simple' : 'file-simple', 29 'tpl_extended' : 'file-extended', 30 'selector' : 'file-selector', 31 'selector_active' : 'file-selector-active' 32 }; 33 arParams.doc_prefix = 'wd-doc'; 34 arParams.placeholder = BX.findChild(this.controller, {'className': 'file-placeholder-tbody'}, true); 35 this.doc_prefix = arParams.doc_prefix; 36 this.values = (arParams["values"] || []); 37 38 if (!!BX.FileUploadAgent) { 39 this.agent = new BX.FileUploadAgent(arParams); 40 BX.addCustomEvent(this, 'ShowUploadedFile', BX.delegate(this.ShowUploadedFile, this)); 41 BX.addCustomEvent(this, 'StopUpload', this.StopUpload.bind(this)); 42 BX.onCustomEvent(BX(this.controller.parentNode), "BFileDLoadFormControllerInit", [this]); 43 } else { 44 BX.debug('/bitrix/components/bitrix/main.file.input/templates/drag_n_drop/script.js: BX.FileUploadAgent is not defined.' + 45 ' You need to load /bitrix/js/main/file_upload_agent.js'); 46 } 47} 48 49window.BlogBFileDialog.prototype.getID = function() { 50 return '' + new Date().getTime(); 51} 52 53window.BlogBFileDialog.prototype.InitAgent = function(agent) 54{ 55 if (this.controller) { 56 agent.placeholder = BX.findChild(this.controller, {'className': 'file-placeholder-tbody'}, true); 57 } 58} 59 60window.BlogBFileDialog.prototype.ShowUploadedFile = function(agent) // event 61{ 62 this.agent = agent; 63 var uploadResult = agent.uploadResult; 64 if (uploadResult && (uploadResult.element_id > 0)) { 65 var node = this.CreateFileRow(uploadResult); 66 if (!!agent.inputName && agent.inputName.length > 0) { 67 var hidden = BX.create('INPUT', { 68 props: { 69 'id': 'file-doc'+uploadResult.element_id, 70 'type': 'hidden', 71 'name': agent.inputName + (this.multiple ? '[]' : ''), 72 'value': uploadResult.element_id 73 } 74 }); 75 node.appendChild(hidden); 76 } 77 this.values.push(node); 78 agent._clearPlace(); 79 80 if (this.controller && this.controller.parentNode) 81 {
82 const securityNode = (this.controller.closest('form') || this.controller.parentNode).querySelector('#upload-cid'); 83 if (securityNode) 84 { 85 securityNode.value = this.CID; 86 } 87 BX.onCustomEvent(this.controller.parentNode, 'OnFileUploadSuccess', [uploadResult, this]); 88 } 89 90 } else { 91 var text = (uploadResult && uploadResult["error"] ? uploadResult["error"] : this.msg.upload_error); 92 agent.ShowUploadError(text); 93 94 if (this.controller && this.controller.parentNode) 95 BX.onCustomEvent(this.controller.parentNode, 'OnFileUploadFail'); 96 } 97} 98 99window.BlogBFileDialog.prototype.CreateFileRow = function(result) 100{ 101 var res = result; 102 var mode = 'file'; 103 if (!! res.element_content_type && (res.element_content_type.indexOf('image/') == 0) && 104 !!res.element_image && (res.element_image.length > 0) && 105 !!res.element_thumbnail && (res.element_thumbnail.length > 0) ) { 106 mode = 'image'; 107 } 108 109 var newNode = BX.clone(BX("file-" + mode + "-template")); 110 111 BX.template(newNode, BX.delegate(function(node) { 112 this.tplFileRow(node, res); 113 }, this)); 114 115 if (mode == 'image') { 116 var span = null; 117 for (i=0;i<newNode.children.length;i++) 118 { 119 span = newNode.children[i]; 120 if (span.nodeType == 1) 121 break; 122 } 123 124 span.setAttribute('id', this.doc_prefix + result.element_id); 125 var closeControl = BX.findChild(span, {'className': 'feed-add-post-del-but'}, true); 126 BX.bind(closeControl, 'click', BX.delegate( 127 function() { 128 var control = closeControl; 129 var parent = control.parentNode; 130 this.agent.StopUpload(parent); 131 BX.cleanNode(parent, true); 132 }, this)); 133 this.agent.AddNodeToPlaceholder(span); 134 newNode = span; 135 } else { 136 newNode.setAttribute('id', this.doc_prefix + result.element_id); 137 this.agent.AddRowToPlaceholder(newNode); 138 newNode = this.agent.placeholder.querySelector('#' + this.doc_prefix + result.element_id); 139 } 140 return newNode; 141} 142 143window.BlogBFileDialog.prototype.GetUploadDialog = function(agent) 144{ 145 return new BlogBFileDialogUploader(this, agent); 146} 147 148window.BlogBFileDialog.prototype.tplFileRow = function(nodes, res) 149{ 150 for (id in nodes) 151 { 152 if (! nodes.hasOwnProperty(id)) 153 continue; 154 155 var node = nodes[id]; 156 157 if ((id == 'image') && 158 !!res.element_image && (res.element_image.length > 0) && 159 !!res.element_thumbnail && (res.element_thumbnail.length > 0)) 160 { 161 node.setAttribute('src', res.element_image); 162 node.setAttribute('rel', res.element_thumbnail); 163 } 164 else 165 { 166 if (!! res['element_'+id]) 167 node.innerHTML = res['element_'+id]; 168 } 169 } 170} 171 172window.BlogBFileDialog.prototype._addUrlParam = function(url, param) 173{ 174 if (!url) 175 return null; 176 if (url.indexOf(param) == -1) 177 url += ((url.indexOf('?') == -1) ? '?' : '&') + param ; 178 return url; 179} 180 181window.BlogBFileDialog.prototype.LoadDialogs = function(dialogs) 182{ 183 if (!!this.agent) 184 this.agent.LoadDialogs(dialogs); 185 else { 186 var dlgs = dialogs; 187 setTimeout(BX.delegate(function() {this.LoadDialogs(dlgs);}, this), 100); 188 } 189} 190 191window.BlogBFileDialog.prototype.StopUpload = function(agent, parent) 192{ 193 this.agent = agent; 194 var id = 0; 195 var regExp = new RegExp(this.doc_prefix + '(\\d+)'); 196 if (regExp.test(parent.id)) 197 { 198 var buf = parent.id.match(regExp); 199 id = buf[1]; 200 } 201 if (this.controller && this.controller.parentNode) 202 { 203 BX.onCustomEvent(this.controller.parentNode, 'OnFileUploadRemove', [id, this]); 204 } 205 206 var data = { 207 fileID : id, 208 sessid : BX.bitrix_sessid(), 209 cid : this.CID, 210 controlID : this.controlID, 211 mfi_mode : "delete", 212 }; 213 214 BX.ajax({ 215 'method': 'POST', 216 'dataType': 'html', 217 'url': this.uploadFileUrl, 218 'processData': false, 219 'data': BX.ajax.prepareData(data), 220 'onsuccess': function() {} 221 }); 222} 223 224window.BlogBFileDialogDispatcher = function(controller) 225{ 226 this.id = this.getID(); 227 this.controller = controller; 228 BX.loadScript('/bitrix/js/main/core/core_dd.js', BX.delegate(function() { 229 if (BX.type.isElementNode(this.controller) && this.controller.parentNode && this.controller.parentNode.parentNode) 230 { 231 var target = this.controller.parentNode.parentNode; 232 this.dropbox = new BX.DD.dropFiles(target); 233 if (this.dropbox && this.dropbox.supported() && BX.ajax.FormData.isSupported()) { 234 this.hExpandUploader = BX.proxy(this.ExpandUploader, this); 235 BX.addCustomEvent(this.dropbox, 'dragEnter', this.hExpandUploader);
236 BX.addCustomEvent(target, "UnbindDndDispatcher", BX.delegate(this.Unbind, this)); 237 } 238 } 239 }, this)); 240} 241 242window.BlogBFileDialogDispatcher.prototype.getID = function() { 243 return '' + new Date().getTime(); 244} 245 246window.BlogBFileDialogDispatcher.prototype.ExpandUploader = function() 247{ 248 BX.onCustomEvent(BX(this.controller.parentNode), "BFileDLoadFormController", ['show']); 249// this.Unbind(); 250} 251 252window.BlogBFileDialogDispatcher.prototype.Unbind = function() 253{ 254 BX.removeCustomEvent(this.dropbox, 'dragEnter', this.hExpandUploader); 255} 256 257// upoader section 258window.BlogBFileDialogUploader = function(arParams, agent) 259{ 260 this.WDUploaded = false; 261 this.WDUploadInProgress = false; 262 this.documentExists = false; 263 this.fileDropped = false; 264 265 this.caller = arParams; 266 this.agent = agent; 267 this.parentID = this.agent.id; 268 this.id = this.caller.getID(); 269 270 this.msg = arParams.msg; 271 this.dropAutoUpload = arParams.dropAutoUpload; 272 this.uploadFileUrl = arParams.uploadFileUrl; // from file.input php 273 this.CID = arParams.CID; 274 this.controlID = arParams.controlID; 275 276 this.CreateElements(); 277 this.fileInput = (!!agent.fileInput ? agent.fileInput : ((BX.type.isDomNode(agent.fileInputID)) ? agent.fileInputID : BX(arParams.fileInput))); 278 if (BX.type.isDomNode(this.fileInput)) { 279 this.fileInput.name = 'mfi_files[]'; 280 } 281 this.fileList = this.__form; 282 283 BX.loadScript('/bitrix/js/main/core/core_dd.js', BX.delegate( 284 function() { 285 var dropbox = new BX.DD.dropFiles(); 286 if (dropbox && dropbox.supported() && BX.ajax.FormData.isSupported()) 287 { 288 this.dropbox = dropbox; 289 } 290 this.agent.BindUploadEvents(this); 291 }, this)); 292} 293 294window.BlogBFileDialogUploader.prototype.CreateElements = function() 295{ 296 var uniqueID; 297 do { 298 uniqueID = Math.floor(Math.random() * 99999); 299 } while(BX("iframe-" + uniqueID)); 300 301 var iframeName = "iframe-" + this.id; 302 var iframe = BX.create("IFRAME", { 303 props: {name: iframeName, id: iframeName}, 304 style: {display: "none"} 305 }); 306 document.body.appendChild(iframe); 307 this.iframeUpload = iframe; 308 309 var form = BX.create("FORM", { 310 props: { 311 id: "form-" + uniqueID, 312 method: "POST", 313 action: this.uploadFileUrl, 314 enctype: "multipart/form-data", 315 encoding: "multipart/form-data", 316 target: iframeName 317 }, 318 style: {display: "none"}, 319 children: [ 320 BX.create("INPUT", { 321 props: { 322 type: "hidden", 323 name: "sessid", 324 value: BX.bitrix_sessid() 325 } 326 }), 327 BX.create("INPUT", { 328 props: { 329 type: "hidden", 330 name: "uniqueID", 331 value: uniqueID 332 } 333 }), 334 BX.create("INPUT", { 335 props: { 336 type: "hidden", 337 name: "cid", 338 value: this.CID 339 } 340 }), 341 BX.create("INPUT", { 342 props: { 343 type: "hidden", 344 name: "controlID", 345 value: (!!this.controlID ? this.controlID : '') 346 } 347 }), 348 BX.create("INPUT", { 349 props: { 350 type: "hidden", 351 name: "mfi_mode", 352 value: "upload" 353 } 354 }) 355 ] 356 }); 357 document.body.appendChild(form); 358 this.__form = form; 359 360 window['FILE_UPLOADER_CALLBACK_' + uniqueID] = BX.proxy(this.Callback, this); 361} 362 363window.BlogBFileDialogUploader.prototype.GetUploadFileName = function() 364{ 365 var fileName = ''; 366 if (this.fileInput && (this.fileInput.value.length > 0)) { 367 var fileName = this.fileInput.value; 368 if (fileName.indexOf('\\') > -1) // deal with Chrome fakepath 369 fileName = fileName.substr(fileName.lastIndexOf('\\')+1); 370 } else { 371 var fileNode = this.fileList; 372 if (fileNode.file) 373 fileName = fileNode.file.fileName || fileNode.file.name; 374 } 375 return fileName; 376} 377 378window.BlogBFileDialogUploader.prototype.Callback = function(files, uniqueID) 379{ 380 if (BX.type.isArray(files)) 381 { 382 files.forEach((function(file) { 383 var result = { 384 success: true, 385 storage: 'bfile', 386 element_id: file.fileID, 387 element_name: file.fileName, 388 element_size: file.fileSize, 389 element_url: file.fileURL,
390 element_content_type: file.content_type || file.fileContentType, 391 element_image: file.img_thumb_src || file.fileSrc, 392 element_thumbnail: file.img_source_src || file.fileSrc, 393 }; 394 if (!!result.element_image) 395 result.element_image = result.element_image.replace(/\/([^\/]+)$/, function(str, name) { return "/" + BX.util.urlencode(name); } ); 396 if (!!result.element_thumbnail) 397 result.element_thumbnail = result.element_thumbnail.replace(/\/([^\/]+)$/, function(str, name) { return "/" + BX.util.urlencode(name); } ); 398 399 if (file['error'] || file['status'] === 'error') 400 { 401 result['error'] = file['error'] || file['message']; 402 } 403 404 BX.onCustomEvent(this, 'uploadFinish', [result]); 405 }).bind(this)); 406 } else { 407 BX.onCustomEvent(this, 'uploadFinish', [{ 408 success: false, 409 messages: BX.type.isNotEmptyString(files) ? files : this.msg.upload_error 410 }]); 411 } 412 window['FILE_UPLOADER_CALLBACK_' + uniqueID] = BX.DoNothing; 413 BX.cleanNode(BX("iframe-" + uniqueID), true); 414 BX.cleanNode(BX("form-" + uniqueID), true); 415 this.agent.uploadDialog = null; 416} 417 418window.BlogBFileDialogUploader.prototype.UploadResponse = function(evt, responseJSONStr) 419{ 420 this.WDUploadInProgress = false; 421 BX.unbind(window, 'beforeunload', BX.proxy(this.UploadLeave, this)); 422 423 if (! responseJSONStr 424 || responseJSONStr.length <= 0) 425 { 426 this.onError(); 427 } 428} 429 430window.BlogBFileDialogUploader.prototype.UploadResponseIframe = function(evt, responseJSONStr) 431{ 432 this.WDUploadInProgress = false; 433 BX.unbind(window, 'beforeunload', BX.proxy(this.UploadLeave, this)); 434} 435 436window.BlogBFileDialogUploader.prototype.UploadLeave = function(e) 437{ 438 var e = e || window.event; 439 var msg = ''; 440 if (this.WDUploadInProgress) 441 msg = this.msg.UploadInterrupt; 442 else if (((!this.WDUploaded) && this.fileInput && (this.fileInput.value.length > 0))) 443 msg = this.msg.UploadNotDone; 444 if (msg != '') 445 { 446 if (e) 447 e.returnValue = msg; 448 return msg; // safari & chrome 449 } 450 return; 451} 452 453window.BlogBFileDialogUploader.prototype.UpdateListFiles = function(files) 454{ 455 if (this && files) 456 { 457 if (files.length < 1) 458 return; 459 var fileNode = this.fileList; 460 fileNode.file = files[0]; 461 462 this.WDUploadInProgress = true; 463 this.fileDropped = true; 464 this.CallSubmit(); 465 } 466} 467 468window.BlogBFileDialogUploader.prototype.GetInputData = function(parentNode) 469{ 470 var elements = []; 471 var data = {}; 472 elements = elements.concat( 473 BX.findChildren(parentNode, {'tag': 'input'}, true), 474 BX.findChildren(parentNode, {'tag': 'textarea'}, true), 475 BX.findChildren(parentNode, {'tag': 'select'}, true)); 476 477 for(var i=0; i<elements.length; i++) 478 { 479 var el = elements[i]; 480 if (!el || el.disabled || el.name.length < 1) 481 continue; 482 switch(el.type.toLowerCase()) 483 { 484 case 'text': 485 case 'textarea': 486 case 'password': 487 case 'hidden': 488 case 'select-one': 489 data[el.name] = el.value; 490 break; 491 case 'radio': 492 if(el.checked) 493 data[el.name] = el.value; 494 break; 495 case 'checkbox': 496 data[el.name] = (el.checked ? 'Y':'N'); 497 break; 498 case 'select-multiple': 499 var l = el.options.length; 500 if (l > 0) data[el.name] = new Array(); 501 for (j=0; j<l; j++) 502 if (el.options[j].selected) 503 data[el.name].push(el.options[j].value); 504 break; 505 default: 506 break; 507 } 508 } 509 return data; 510} 511 512window.BlogBFileDialogUploader.prototype.SetFileInput = function(fileInput) 513{ 514 if (!! this.__form.mfi_save) 515 return; 516 if (this.fileInput && this.fileInput != fileInput) 517 BX.remove(this.fileInput); 518 this.__form.appendChild(fileInput); 519 this.fileInput = fileInput; 520} 521 522window.BlogBFileDialogUploader.prototype.CallSubmit = function() 523{ 524 if (!! this.__form.mfi_save) 525 return; 526 BX.onCustomEvent(this, 'uploadStart', [this]); 527 528 BX.bind(window, 'beforeunload', BX.proxy(this.UploadLeave, this)); 529 BX.bind(this.iframeUpload, 'load', BX.delegate(this.UploadResponseIframe, this)); 530 531 if (this.dropbox) { 532 this.onProgress(0.15); 533 if (this.fileInput && (this.fileInput.files.length > 0)) { 534 var fileNode = this.fileList; 535 fileNode.file = this.fileInput.files[0]; 536 } 537 538 var arConstParams = this.GetInputData(this.__form); 539 this.fileNodes = [this.fileList]; 540 for (i in this.fileNodes) { 541 if (this.fileNodes[i].file) {
542 var fd = new BX.ajax.FormData(); 543 544 for (item in this.fileNodes[i].data) 545 { 546 fd.append(item, this.fileNodes[i].data[item]); 547 } 548 549 if (!! Object && !! Object.keys) // for IE 10 .... 550 { 551 var keys = Object.keys(arConstParams); 552 for (var k in keys) 553 { 554 var key = keys[k] 555 var cons = arConstParams[key] 556 fd.append(key, cons); 557 } 558 } 559 else 560 { 561 for (item in arConstParams) 562 { 563 fd.append(item, arConstParams[item]); 564 } 565 } 566 567 fd.append('mfi_files[]', this.fileNodes[i].file); 568 569 fd.send( 570 this.uploadFileUrl, 571 BX.delegate(function(ajaxdata) { 572 this.UploadResponse(null, ajaxdata); 573 }, this), 574 BX.delegate(this.onProgress, this) 575 ); 576 } 577 } 578 } else { 579 this.onProgress(0.15); 580 this.WDUploadInProgress = true; 581 var fid = this.__form.id; 582 BX.submit(this.__form, 'mfi_save', 'Y'); 583 } 584} 585 586window.BlogBFileDialogUploader.prototype.onProgress = function(percent) 587{ 588 if (isNaN(percent)) 589 return; 590 BX.onCustomEvent(this, 'progress', [percent]); 591} 592 593window.BlogBFileDialogUploader.prototype.onError = function() 594{ 595 BX.onCustomEvent(this, 'uploadFinish', [{success: false, messages: this.msg.upload_error}]); 596} 597 598top.BlogBFileDialog = window.BlogBFileDialog; 599top.BlogBFileDialogUploader = window.BlogBFileDialogUploader; 600top.BlogBFileDialogDispatcher = window.BlogBFileDialogDispatcher; 601 602window.MFIDD = function(params){ 603 BX.loadCSS('/bitrix/components/bitrix/main.file.input/templates/drag_n_drop/style.css'); 604 605 var status = (params["status"] === 'show' ? 'show' : (params["status"] === 'hide' ? 'hide' : 'switch')); 606 if (status == 'switch') 607 status = (params['controller'].style.display != 'none' ? 'hide' : 'show'); 608 var showControl = function(status) 609 { 610 if (status == "show") 611 { 612 BX.fx.show(params['controller'], 'fade', {time:0.2}); 613 if (params['switcher'] && params['switcher'].style.display != 'none') 614 BX.fx.hide(params['switcher'], 'fade', {time:0.1}); 615 if (!! window['BfileUnbindDispatcher' + params['uid']]) 616 window['BfileUnbindDispatcher' + params['uid']](); 617 } 618 else if (params['controller'].style.display !== "none") 619 { 620 BX.fx.hide(params['controller'], 'fade', {time:0.2}); 621 } 622 }; 623 if (! params['controller'].loaded) 624 { 625 params['controller'].loaded = true; 626 var dropbox = new BX.DD.dropFiles(), 627 variant = (dropbox && dropbox.supported() && BX.ajax.FormData.isSupported() ? 'extended' : 'simple'); 628 629 top['BfileFD' + params['uid']] = window['BfileFD' + params['uid']] = new BlogBFileDialog({ 630 'mode' : variant, 631 'CID' : params['CID'], 632 'id' : params['id'], 633 'upload_path' : params['upload_path'], 634 'multiple' : params['multiple'], 635 'controller': params['controller'], 636 'inputName' : params['inputName'], 637 'fileInput' : ("file-fileUploader-" + params['uid']), 638 'fileInputName' : "mfi_files[]", 639 'values' : BX.findChildren(BX('file-selectdialog-' + params['uid']), {"className" : "file-inline-file"}, true), 640 'msg' : { 641 'loading' : BX.message('loading'), 642 'file_exists' : BX.message('file_exists'), 643 'upload_error' : BX.message('upload_error'), 644 'access_denied' : BX.message('access_denied') 645 } 646 }); 647 showControl(status); 648 window['BfileFD' + params['uid']].LoadDialogs('DropInterface'); 649 BX.onCustomEvent('BFileDSelectFileDialogLoaded', [window['BfileFD' + params['uid']]]); 650 } 651 else 652 showControl(status); 653} 654window.BlogBFileJustDialog = function(arParams) 655{ 656 this.dialogName = 'AttachmentsDialog'; 657 this.agent = false; 658 659 this.id = (!!arParams["id"] ? arParams["id"] : this.getID()); 660 this.controlID = arParams["id"]; 661 this.enabled = true; 662 this.uploadFileUrl = arParams.upload_path; // from file.input php 663 664 this.controller = (!! arParams.controller ) ? arParams.controller : null; 665 this.CID = arParams.CID; 666 667 arParams.caller = this; 668 arParams.doc_prefix = 'wd-doc'; 669 arParams._mkFileInput = BX.DoNothing 670 arParams.mode = 'extended'; 671 arParams.classes = { 672 'tpl_simple' : 'file-simple', 673 'tpl_extended' : 'file-extended' 674 }; 675 676 this.doc_prefix = arParams.doc_prefix; 677 678 if (!!BX.FileUploadAgent) { 679 this.agent = new BX.FileUploadAgent(arParams); 680 BX.addCustomEvent(this, 'StopUpload', BX.delegate(this.StopUpload, this)); 681 BX.onCustomEvent(BX(this.controller.parentNode), "BFileDLoadFormControllerInit", [this]); 682 } else { 683 BX.debug('/bitrix/components/bitrix/main.file.input/templates/drag_n_drop/script.
683js: BX.FileUploadAgent is not defined.' + 684 ' You need to load /bitrix/js/main/file_upload_agent.js'); 685 } 686} 687window.BlogBFileJustDialog.prototype.StopUpload = function(agent, parent) 688{ 689 this.agent = agent; 690 id = false; 691 mID = parent.id.match(new RegExp(this.doc_prefix + '(\\d+)')); 692 if (!!mID) { 693 id = mID[1]; 694 } 695 696 if (this.controller && this.controller.parentNode) 697 BX.onCustomEvent(this.controller.parentNode, 'OnFileUploadRemove', [id, this]); 698 699 var data = { 700 fileID : id, 701 sessid : BX.bitrix_sessid(), 702 cid : this.CID, 703 controlID : this.controlID, 704 mfi_mode : "delete" 705 }; 706 BX.ajax.post(this.uploadFileUrl, data); 707} 708 709 710window.MFIS = function(params) 711{ 712 if (! params['controller'].loaded) 713 { 714 params['controller'].loaded = true; 715 top['BfileFD' + params['uid']] = window['BfileFD' + params['uid']] = new BlogBFileJustDialog({ 716 'CID' : params['CID'], 717 'id' : params['id'], 718 'upload_path' : params['upload_path'], 719 'controller': params['controller'], 720 'values' : BX.findChildren(BX('file-selectdialog-' + params['uid']), {"className" : "file-inline-file"}, true) 721 }); 722 BX.fx.show(params['controller'], 'fade', {time:0.2}); 723 BX.onCustomEvent('BFileDSelectFileDialogLoaded', [window['BfileFD' + params['uid']]]); 724 } 725} 726 727})(window);
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.