1// ReSharper disable CssBrowserCompatibility 2var FileBrowser; 3(function (FileBrowser) { 4 let cropper; 5 FileBrowser.initFileBrowser = function () { 6 initFolders(); 7 initButtons(); 8 initFolderMove(); 9 initRenameFile(); 10 initCropperButtons(); 11 initResizeButtons(); 12 Site.initTooltip(); 13 $(".file-actions").hide(); 14 $("#uploader").change(() => { 15 uploadFiles($("#uploader")[0].files); 16 }); 17 $(".files") 18 .on("drag dragstart dragend dragover dragenter dragleave drop", e => { 19 e.preventDefault(); 20 e.stopPropagation(); 21 }) 22 .on("dragenter", e => { 23 var dt = e.originalEvent.dataTransfer; 24 if (dt.types && (dt.types.indexOf ? dt.types.indexOf("Files") !== -1 : dt.types.containsItem("Files"))) { 25 $(".files").addClass("file-upload-highlight"); 26 } 27 }) 28 .on("dragleave", e => { 29 var dt = e.originalEvent.dataTransfer; 30 if (dt.types && (dt.types.indexOf ? dt.types.indexOf("Files") !== -1 : dt.types.containsItem("Files"))) { 31 $(".files").removeClass("file-upload-highlight"); 32 } 33 }) 34 .on("drop", e => { 35 $(".files").removeClass("file-upload-highlight"); 36 var dt = e.originalEvent.dataTransfer; 37 if (dt.types && (dt.types.indexOf ? dt.types.indexOf("Files") !== -1 : dt.types.containsItem("Files"))) { 38 uploadFiles(e.originalEvent.dataTransfer.files); 39 } 40 }); 41 setTimeout(() => { 42 FileBrowser.openFolder($(".folder-selected").attr('path')); 43 }, 750); 44 }; 45 const initFolders = function () { 46 GbtSpinner.spinnerData.showSpinner(".folders"); 47 $("#btn-file-download").attr("href", ""); 48 $.post("/FileBrowser/GetFolders", { 49 key: Site.fileBrowserKey 50 }, data => { 51 GbtSpinner.spinnerData.stopSpinner(".folders"); 52 $("#filebrowser-modal .folder-list").html(data); 53 if (data) { 54 FileBrowser.openFolder($(".file-browser[start]").attr("start")); 55 initFolderClick($("li.folder [path]")); 56 } 57 }) 58 .fail(() => { 59 GbtSpinner.spinnerData.stopSpinner(".folders"); 60 }); 61 }; 62 const initButtons = function () { 63 $("#filebrowser-modal").on('hidden.bs.modal', () => { 64 if (typeof window.reInitTinyMce == 'function') { 65 reInitTinyMce(); 66 } 67 }); 68 $("#btn-file-upload") 69 .click(() => { 70 $("#uploader").click(); 71 }); 72 var theField = $(`#${Site.fileBrowserTinyMceField}`); 73 if (!theField) { 74 $("#btn-file-select").hide(); 75 } 76 $("#btn-file-select") 77 .click(() => { 78 returnSelectedFile($(".file.file-selected > [path]").attr("path")); 79 }); 80 $("#btn-folder-edit") 81 .click(() => { 82 switchBewerkModus(); 83 }); 84 $("#btn-folder-create").click(() => { 85 switchNewFolderStatus(); 86 }); 87 $("#btn-folder-view").click(() => { 88 switchViewMode(); 89 }); 90 $("#btn-folder-delete").click(() => { 91 var options = { 92 message: Translation.Shared.ConfirmRemoveDirectory.replace("{0}", $(".folder-selected").val().toString()), 93 callback: (result) => { 94 if (result) { 95 deleteFolder(); 96 } 97 }, 98 lblCancel: "Annuleren", 99 lblCancelClass: "btn-default", 100 lblConfirm: "Verwijderen", 101 lblConfirmClass: "btn-primary" 102 }; 103 Site.confirm(options); 104 }); 105 $("#btn-file-delete").click(() => { 106 var options = { 107 message: Translation.Shared.ConfirmDeleteFile, 108 callback: (result) => { 109 if (result) { 110 deleteFile(); 111 } 112 }, 113 lblCancel: "Annuleren", 114 lblCancelClass: "btn-default", 115 lblConfirm: "Verwijderen", 116 lblConfirmClass: "btn-primary" 117 }; 118 Site.confirm(options); 119 }); 120 $("#btn-file-crop").click(() => { 121 startImageCrop(); 122 }); 123 $("#btn-file-resize").click(() => { 124 startImageResize(); 125 }); 126 }; 127 const initFileEvents = function () { 128 $(".file").off("click").off("dblclick").click(el => { 129 $(".file.file-selected").removeClass("file-selected"); 130 $(el.currentTarget).addClass("file-selected"); 131 $("#btn-file-download").attr("href", Site.router.fileBrowser.downloadFile({ path: $("[path]", el.currentTarget).attr("path"), key: Site.fileBrowserKey })).off("click").click(() => { 132 window.onbeforeunload = null; 133 setTimeout(() => { 134 window.onbeforeunload = confirmClose; 135 }, 500); 136 }); 137 $(".file-actions").show(); 138 }).dblclick(el => { 139 if ($(el.currentTarget).hasClass("file-selected")) { 140 if ($(el.currentTarget).find("img").length > 0) { 141 returnSelectedFile($(el.currentTarget).find("img").attr("path")); 142 } 143 else { 144 returnSelectedFile($(el.currentTarget).find(".extension").attr("path")); 145 } 146 } 147 }); 148 selectMoveFolder(); 149 }; 150 const initFolderMove = function () { 151 $("#folders-move li a") 152 .off("click") 153 .click(el => { 154 if (!$(el.currentTarget).parents("li").first().hasClass("disabled")) { 155 $.post(Site.router.fileBrowser.moveFile(), { 156 filePath: $(".file.file-selected > [path]").attr("path"), 157 moveToPath: $(el.currentTarget).parents("li").first().attr("path") 158 }, data => { 159 if (data.Success) { 160 $(".file.file-selected").remove(); 161 gbtNotify.success(data.Message); 162 } 163 else { 164 gbtNotify.error(data.Message); 165 } 166 }); 167 } 168 }); 169 }; 170 const initFolderClick = function (objs) { 171 $(objs).click(el => { 172 switchFolder(el.target); 173 }); 174 }; 175 const switchFolder = function (el) { 176 $(".folder-edit-wrapper").removeClass("selected"); 177 $(".folder-list .folder-selected").removeClass("folder-selected"); 178 $(".fa.fa-folder-open,.far.fa-folder-open").addClass("fa-folder").removeClass("fa-folder-open"); 179 $(el).addClass("folder-selected"); 180 var icon = $(el).parents(".folder-edit-wrapper").first().addClass("selected").find("i.fa, i.far"); 181 icon.removeClass("fa-folder").addClass("fa-folder-open"); 182 FileBrowser.openFolder($(el).attr("path")); 183 selectMoveFolder(); 184 }; 185 const initNewFolder = function ($targetFolder, $selectedFolder) { 186 if (!$targetFolder.parent().hasClass("in")) { 187 $targetFolder.parent().addClass("in"); 188 $targetFolder.parent().css("height", ""); 189 } 190 $("input", $targetFolder).first().attr("folder", $selectedFolder.attr("path") + "/") 191 .keyup(e => { 192 if ((e.which ? e.which : e.keyCode) === 13) { 193 e.preventDefault(); 194 $(e).focusout(); 195 } 196 }).change(el => { 197 newFolder($(el.target)); 198 }); //.setCaretAtEnd(); 199 Site.setCaretAtEnd($("input", $targetFolder).first()); 200 }; 201 const initRenameFile = function () { 202 $("#btn-file-rename").off("click").click(() => { 203 $(".file-selected .file-name > textarea").focus(); 204 Site.setCaretAtEnd($(".file-selected .file-name > textarea")); 205 }); 206 $(".file-name > textarea") 207 .change(el => { 208 const textarea = $(el.target);
209 if (!textarea.data("confirmopen")) { 210 textarea.data("confirmopen", true); 211 var options = { 212 message: Translation.Shared.ConfirmFileNameChange.replace("{0}", textarea.val().toString()), 213 callback: (result) => { 214 if (result) { 215 renameFile(textarea); 216 } 217 else { 218 textarea.val(textarea.next().html()); 219 } 220 textarea.data("confirmopen", false); 221 }, 222 lblCancel: "Nee", 223 lblCancelClass: "btn-danger", 224 lblConfirm: "Ja", 225 lblConfirmClass: "btn-success" 226 }; 227 Site.confirm(options); 228 } 229 }).keydown(e => { 230 if ((e.which ? e.which : e.keyCode) === 13) { 231 e.preventDefault(); 232 e.stopPropagation(); 233 $(e.target).change(); 234 } 235 }); 236 }; 237 // Folder functies 238 FileBrowser.openFolder = function (path) { 239 stopImageCrop(); 240 stopImageResize(); 241 $(".folder-actions").show(); 242 $(".file-actions").hide(); 243 GbtSpinner.spinnerData.showSpinner(".files"); 244 $.post("/FileBrowser/OpenFolder", { 245 path: encodeURI(path), 246 key: Site.fileBrowserKey, 247 mode: $("#btn-folder-view").attr("viewmode") 248 }, data => { 249 GbtSpinner.spinnerData.stopSpinner(".files"); 250 $("#filebrowser-modal .files").html(data); 251 if (data) { 252 initFileEvents(); 253 initRenameFile(); 254 } 255 }) 256 .fail(() => { 257 GbtSpinner.spinnerData.stopSpinner(".files"); 258 }); 259 }; 260 const switchBewerkModus = function () { 261 stopImageCrop(); 262 $(".folders").toggleClass("folder-edit"); 263 if ($(".folders").hasClass("folder-edit")) { 264 //Bewerken 265 $("#btn-folder-create").hide(); 266 $("#btn-folder-delete").show(); 267 $(".folders input") 268 .removeAttr("readonly") 269 .change((el) => { 270 renameFolder($(el.target), $(el.target).attr("path"), $(el.target).val()); 271 }); 272 } 273 else { 274 //Normaal 275 $("#btn-folder-create").show(); 276 $("#btn-folder-delete").hide(); 277 $(".folders input").attr("readonly", "").off("change"); 278 } 279 }; 280 const switchViewMode = function () { 281 var mode = $("#btn-folder-view i[viewmode]:not([viewmode=" + $("#btn-folder-view").attr("viewmode") + "])"); 282 $.post(Site.router.fileBrowser.switchViewMode(), { 283 mode: mode.attr("viewmode") 284 }, (data) => { 285 if (data) { 286 $("#btn-folder-view i[viewmode]").hide(); 287 mode.show(); 288 $("#btn-folder-view").attr("viewmode", mode.attr("viewmode")); 289 if (mode.attr("viewmode") === "1") { 290 $(".file.file-list-item").removeClass("file-list-item").addClass("file-block"); 291 } 292 else { 293 $(".file.file-block").removeClass("file-block").addClass("file-list-item"); 294 } 295 } 296 }); 297 }; 298 const switchNewFolderStatus = function () { 299 stopImageCrop(); 300 if ($("#btn-folder-create").hasAttr("annuleer")) { 301 $(`#${Site.newFolderGuid}`).remove(); 302 $(".new-folder", ".folder-list").parents("li.folder.folder-collapse").first().remove(); 303 $("#btn-folder-create").removeAttr("annuleer").addClass("btn-default").removeClass("btn-danger"); 304 } 305 else { 306 Site.newFolderGuid = Site.generateGuid(); 307 const $selectedFolder = $(".folder-selected"); 308 const $targetFolder = $selectedFolder.closest("li.folder").next().find("> ul.folder-list").prepend($("#folder-item-template").clone().attr("id", Site.newFolderGuid).html().replace(/\[new\]/g, Site.newFolderGuid)); 309 initNewFolder($targetFolder, $selectedFolder); 310 $("#btn-folder-create").attr("annuleer", "").removeClass("btn-default").addClass("btn-danger"); 311 } 312 }; 313 const selectMoveFolder = function () { 314 $("#folders-move li.disabled").removeClass("disabled"); 315 if ($(".folder-selected").length > 0) { 316 $(`#folders-move li[path='${$(".folder-selected").attr("path").replace("\\", "\\\\")}']`).addClass("disabled"); 317 } 318 }; 319 const newFolder = function ($input) { 320 if ($input.val()) { 321 $input.attr("path", $input.attr("folder") + $input.val()); 322 $.post(Site.router.fileBrowser.createFolder(), { 323 path: encodeURI($input.attr("path")), 324 name: $input.val(), 325 key: Site.fileBrowserKey 326 }, data => { 327 if (data.Success) { 328 $input.parents("li.folder.folder-collapse[new-folder]").first().removeAttr("new-folder"); 329 $input.attr("folder", $input.val()); 330 $input.off("change").off("keyup").attr("readonly", "").removeClass("new-folder"); 331 initFileEvents(); 332 initFolderClick($input); 333 switchNewFolderStatus(); 334 getFolderMoveList(); 335 gbtNotify.success(data.Message); 336 } 337 else { 338 gbtNotify.error(data.Message); 339 } 340 }); 341 } 342 else { 343 $(this).closest("li").next().remove(); 344 $(this).closest("li").remove(); 345 } 346 }; 347 const deleteFolder = function () { 348 if ($(".folder-selected").length === 1) { 349 const path = $(".folder-selected").attr("path"); 350 $.post(Site.router.fileBrowser.deleteFolder(), { 351 path: encodeURI(path), 352 key: Site.fileBrowserKey 353 }, data => { 354 if (data.Success) { 355 const parent = $(".folder-selected").closest("[class^='sub-folder-']"); 356 if (parent.find(".folder").length === 1) { 357 } 358 $(".folder-selected").closest("li.folder.folder-collapse").next().remove(); // Subfolders verwijderen 359 $(".folder-selected").closest("li.folder.folder-collapse").remove(); // De geselecteerde folder verwijderen 360 gbtNotify.success(data.Message); 361 switchFolder($(".folder-main > span[path]"));
362 switchBewerkModus(); 363 } 364 else { 365 gbtNotify.error(data.Message); 366 } 367 }); 368 } 369 }; 370 const renameFolder = function (obj, path, name) { 371 var self = this; 372 $.post(Site.router.fileBrowser.renameFolder(), { 373 path: encodeURI(path), 374 name: name, 375 key: Site.fileBrowserKey 376 }, function (data) { 377 if (data.Success) { 378 var orgPath = obj.attr("path").replace(/\\/g, "/").replace(/\/\//g, "/"); 379 var newPath = data.Message.replace(/\\/g, "/").replace(/\/\//g, "/"); 380 $(`[path^='${orgPath}']`).each(function (index, el) { 381 $(el).attr("path", $(el).attr("path").replace(orgPath, newPath)); 382 }); 383 var pathSegments = orgPath.split("/"); 384 pathSegments[pathSegments.length - 1] = name; 385 var newObj = pathSegments.join('/'); 386 obj.val(newObj.split("/").slice(-1)[0]); 387 obj.attr("path", newObj); 388 gbtNotify.success("Map is hernoemd"); 389 self.getFolderMoveList(); 390 } 391 else { 392 gbtNotify.error(data.Message); 393 } 394 }); 395 }; 396 // File functies 397 const deleteFile = function () { 398 if ($(".file.file-selected").length > 0) { 399 const path = $(".file.file-selected [path]").attr("path"); 400 $.post(Site.router.fileBrowser.deleteFile(), { 401 path: encodeURI(path), 402 key: Site.fileBrowserKey 403 }, data => { 404 if (data.Success) { 405 $(".file.file-selected").remove(); 406 gbtNotify.success(data.Message); 407 } 408 else { 409 gbtNotify.error(data.Message); 410 } 411 }); 412 } 413 }; 414 const getFolderMoveList = function () { 415 $.post(Site.router.fileBrowser.getMoveFolders(), { 416 key: Site.fileBrowserKey 417 }, data => { 418 $("#folders-move").replaceWith(data); 419 initFolderMove(); 420 }); 421 }; 422 const renameFile = function ($obj) { 423 var path = $obj.closest("div.file").find(".extension").attr("path") || 424 $obj.closest("div.file").find("img.preview").attr("path"); 425 $.post(Site.router.fileBrowser.renameFile(), { 426 filepath: encodeURI(path), 427 name: $obj.val() 428 }, data => { 429 if (data.Success) { 430 $obj.next().html(data.Message); 431 $obj.val(data.Message); 432 const img = $obj.parent().prev(); 433 const pathArray = img.attr("path").split("\\"); 434 if (img.is("img")) { 435 img.attr("src", img.attr("src").replace(pathArray[pathArray.length - 1], data.Message)); 436 } 437 img.attr("path", img.attr("path").replace(pathArray[pathArray.length - 1], data.Message)); 438 gbtNotify.success("Bestand is hernoemd"); 439 } 440 else { 441 $obj.val($obj.next().html()); 442 gbtNotify.error(data.Message); 443 } 444 }); 445 }; 446 const uploadFiles = function (files) { 447 var classref = this; 448 var path = $(".folders .folder .folder-selected[path]").attr("path"); 449 if (path) { 450 var fileCount = 0; 451 var data = new FormData(); 452 var acceptedFileTypes = $("#uploader").attr("accept").replace(/\./g, "").split(","); 453 // Controle of er geen lege waarde is als AcceptedFileTypes 454 if (acceptedFileTypes.length === 1 && acceptedFileTypes[0] === "") { 455 acceptedFileTypes.splice(0, 1); 456 } 457 $(files).each((ind, el) => { 458 var nameSplited = files[ind].name.split("."); 459 if ($.inArray(nameSplited[nameSplited.length - 1].toLowerCase(), acceptedFileTypes) > -1 || acceptedFileTypes.length === 0) { 460 data.append(`file${fileCount++}`, el); 461 } 462 }); 463 if (fileCount > 0) { 464 data.append("key", Site.fileBrowserKey); 465 data.append("path", path); 466 $.ajax({ 467 url: Site.router.fileBrowser.uploadFiles(), 468 type: "POST", 469 data: data, 470 dataType: "JSON", 471 contentType: false, 472 processData: false, 473 success(result) { 474 if (result.Success) { 475 gbtNotify.success(Translation.Document.UploadSuccess, "", { target: "#filebrowser-modal" }); 476 } 477 else { 478 gbtNotify.error(result.Message, "", { target: "#filebrowser-modal" }); 479 } 480 classref.openFolder(path); 481 }, 482 error() { 483 gbtNotify.error(Translation.Document.UploadFailed, "", { target: "#filebrowser-modal" }); 484 } 485 }); 486 } 487 else { 488 gbtNotify.warning(Translation.Document.OneOrMoreExtentionTypesFail.replace("{0}", acceptedFileTypes.join(",")), "", { target: "#filebrowser-modal" }); 489 } 490 } 491 else { 492 gbtNotify.warning("Selecteer eerst een map", "", { target: "#filebrowser-modal" }); 493 } 494 }; 495 //CROPPER FUNCTIONS
496 const initCropperButtons = function () { 497 $("#btn-crop-save").off("click").click(() => { 498 uploadCroppedImage(); 499 }); 500 $("#btn-crop-cancel").off("click").click(() => { 501 stopImageCrop(); 502 }); 503 $("#btn-crop-rotate-left").off("click").click(() => { 504 this.cropper.rotate(-45); 505 }); 506 $("#btn-crop-rotate-right").off("click").click(() => { 507 this.cropper.rotate(45); 508 }); 509 $("#btn-crop-flip-vertical").off("click").click((el) => { 510 $(el.target).data("flip", ($(el.target).data("flip") && $(el.target).data("flip") === -1) ? 1 : -1); 511 this.cropper.scale(1, $(el.target).data("flip")); 512 }); 513 $("#btn-crop-flip-horizontal").off("click").click((el) => { 514 $(el.target).data("flip", ($(el.target).data("flip") && $(el.target).data("flip") === -1) ? 1 : -1); 515 this.cropper.scale($(el.target).data("flip"), 1); 516 }); 517 }; 518 const startImageCrop = function () { 519 const $selectedFile = $(".file.file-selected"); 520 if ($selectedFile) { 521 $(".file-actions, .folder-actions").hide(); 522 $(".cropper-actions").show(); 523 $(".resize-actions").hide(); 524 $(".files").addClass("hide"); 525 $(".file-resize").addClass("hide"); 526 $(".file-crop").addClass("show"); 527 $("#uploader").attr("disabled", "disabled"); 528 const img = $(".file-crop #img-cropper").attr("src", $(".file-selected").find("img").attr("src"))[0]; 529 // ReSharper disable once TsResolvedFromInaccessibleModule 530 this.cropper = new Cropper(img, { 531 container: "#file-cropper-preview" 532 }); 533 } 534 }; 535 const stopImageCrop = function () { 536 if ($(".cropper-actions:visible").length > 0) { 537 if (this.cropper) { 538 this.cropper.destroy(); 539 } 540 if ($(".files .file.selected")) { 541 $(".file-actions").show(); 542 } 543 $(".cropper-actions").hide(); 544 $(".resize-actions").hide(); 545 $(".folder-actions").show(); 546 $(".file-crop").removeClass("show"); 547 $(".files").removeClass("hide"); 548 $(".file-crop img").attr("src", ""); 549 $("#uploader").removeAttr("disabled"); 550 } 551 }; 552 const uploadCroppedImage = function () { 553 if (this.cropper) { 554 $.post(Site.router.fileBrowser.saveCroppedImage(), { 555 path: $(".file-selected [path]").attr("path"), 556 base64: this.cropper.getCroppedCanvas().toDataURL() 557 }, data => { 558 if (data.Success) { 559 gbtNotify.success(data.Message); 560 this.cropper.destroy(); 561 $(".file-crop").removeClass("show"); 562 $(".files").removeClass("hide"); 563 FileBrowser.openFolder($(".folder-selected").attr("path")); 564 } 565 else { 566 gbtNotify.error(data.Message); 567 } 568 }); 569 } 570 }; 571 //Resizer FUNCTIONS 572 const initResizeButtons = function () { 573 $("#btn-resize-save").off("click").click(() => { 574 saveResizedImage(); 575 }); 576 $("#btn-resize-cancel").off("click").click(() => { 577 stopImageResize(); 578 }); 579 }; 580 const startImageResize = function () { 581 const $selectedFile = $(".file.file-selected"); 582 if ($selectedFile) { 583 const image = $(".file.file-selected img")[0]; 584 $("#filebrowser-resize-x").val(image.naturalWidth).attr("original-x", image.naturalWidth); 585 $("#filebrowser-resize-y").val(image.naturalHeight).attr("original-y", image.naturalHeight); 586 $("#filebrowser-resize-ratio").prop("checked", "checked"); 587 $(".file-actions, .folder-actions").hide(); 588 $(".cropper-actions").hide(); 589 $(".resize-actions").show(); 590 $(".files").addClass("hide"); 591 $(".file-crop").addClass("hide"); 592 $(".file-resize").addClass("show"); 593 $("#uploader").attr("disabled", "disabled"); 594 initImageResizeEvents(); 595 $("#img-resizer").attr("width", "auto").attr("height", "auto").attr("src", $(".file-selected").find("img").attr("src")); 596 } 597 }; 598 const stopImageResize = function () { 599 if ($(".file-resize:visible").length > 0) { 600 if ($(".files .file.selected")) { 601 $(".file-actions").show(); 602 } 603 $(".cropper-actions").hide(); 604 $(".resize-actions").hide(); 605 $(".file-resize").removeClass("show"); 606 $(".files").removeClass("hide"); 607 $(".folder-actions").show(); 608 $(".file-crop img").attr("src", ""); 609 $(".file-resize img").attr("src", ""); 610 $("#uploader").removeAttr("disabled"); 611 } 612 }; 613 const initImageResizeEvents = function () {
614 $("#filebrowser-resize-ratio").off("change").change((element) => { 615 if ($(element).is(":checked")) { 616 const x = parseInt($("#filebrowser-resize-x").attr("original-x")); 617 const y = parseInt($("#filebrowser-resize-y").attr("original-y")); 618 $("#filebrowser-resize-x").val(x); 619 $("#filebrowser-resize-y").val(y); 620 } 621 }); 622 $("#filebrowser-resize-x,#filebrowser-resize-y").off("change").change((element) => { 623 var screenWidth = $(".file-resizer").width(); 624 var screenHeight = $(".file-resizer").height(); 625 if ($("#filebrowser-resize-ratio").is(":checked")) { 626 const x = parseInt($("#filebrowser-resize-x").attr("original-x")); 627 const y = parseInt($("#filebrowser-resize-y").attr("original-y")); 628 let ratio = y / x; 629 if ($(element.target).attr("id") === "filebrowser-resize-x") { 630 const newY = parseInt(($("#filebrowser-resize-x").val().toString() * ratio).toFixed(0)); 631 $("#filebrowser-resize-y").val(newY); 632 } 633 else { 634 const newX = parseInt(($("#filebrowser-resize-y").val().toString() * (1 / ratio)).toFixed(0)); 635 $("#filebrowser-resize-x").val(newX); 636 } 637 const width = parseInt($("#filebrowser-resize-x").val()); 638 const height = parseInt($("#filebrowser-resize-y").val()); 639 if (width > screenWidth || height > screenHeight) { //Set max viewport boundaries 640 if (x == y) { 641 var tempWidth = screenWidth > screenHeight ? screenHeight : screenWidth; 642 $("#img-resizer").attr("width", tempWidth + "px"); 643 $("#img-resizer").attr("height", tempWidth + "px"); 644 } 645 else if (x > y) { 646 $("#img-resizer").attr("width", screenWidth + "px"); 647 $("#img-resizer").attr("height", screenHeight * (y / x) + "px"); 648 } 649 else { 650 $("#img-resizer").attr("width", screenWidth * (1 / (y / x)) + "px"); 651 $("#img-resizer").attr("height", screenHeight + "px"); 652 } 653 } 654 else { // Set actual boundaries 655 $("#img-resizer").attr("width", width + "px"); 656 $("#img-resizer").attr("height", height + "px"); 657 } 658 } 659 else { 660 const x = parseInt($("#filebrowser-resize-x").val()); 661 const y = parseInt($("#filebrowser-resize-y").val()); 662 if (x > screenWidth || y > screenHeight) { //Set max viewport boundaries 663 if (x == y) { 664 var tempWidth = screenWidth > screenHeight ? screenHeight : screenWidth; 665 $("#img-resizer").attr("width", tempWidth + "px"); 666 $("#img-resizer").attr("height", tempWidth + "px"); 667 } 668 else if (x > y) { 669 $("#img-resizer").attr("width", screenWidth + "px"); 670 $("#img-resizer").attr("height", screenWidth * (y / x) + "px"); 671 } 672 else { 673 $("#img-resizer").attr("width", screenHeight * (x / y) + "px"); 674 $("#img-resizer").attr("height", screenHeight + "px"); 675 } 676 } 677 else { // Set actual boundaries 678 $("#img-resizer").attr("width", x + "px"); 679 $("#img-resizer").attr("height", y + "px"); 680 } 681 } 682 }); 683 }; 684 const saveResizedImage = function () { 685 var options = { 686 message: Translation.Shared.ConfirmSaveMeasurements, 687 callback: (result) => { 688 if (result) { 689 const x = $("#filebrowser-resize-x").val(); 690 const y = $("#filebrowser-resize-y").val(); 691 const copy = $("#filebrowser-resize-copy").is(":checked"); 692 $.post(Site.router.fileBrowser.resizeImage(), { 693 path: $(".file-selected [path]").attr("path"), 694 x: x, 695 y: y, 696 copy: copy 697 }, (data) => { 698 if (data.Success) { 699 gbtNotify.success(data.Message); 700 FileBrowser.openFolder($(".folder-selected").attr("path")); 701 } 702 else { 703 gbtNotify.error(data.Message); 704 } 705 }); 706 } 707 } 708 }; 709 Site.confirm(options); 710 }; 711 const returnSelectedFile = function (fileUrl) { 712 var isSecure = $(".file-browser #file-browser-is-secure").val().toLowerCase() === "true"; 713 fileUrl = fileUrl.replace(/.*\/\/[^\/]*/, ''); 714 if (isSecure) { 715 fileUrl = `/FileBrowser/OpenSecure?path=${fileUrl}`; 716 } 717 else { 718 fileUrl = fileUrl.replace(/\\/g, "/"); 719 } 720 const theField = $(`#${Site.fileBrowserTinyMceField}`); 721 if (theField.length > 0) { 722 theField.val((`${fileUrl}`).replace("../", "").replace("//", "").replace("\\", "/")); 723 $("#filebrowser-modal").modal("hide"); 724 const selectedEvent = new CustomEvent("fileSelected"); 725 window.dispatchEvent(selectedEvent); 726 if (Site.filebrowserSelectedCallback != null) { 727 Site.filebrowserSelectedCallback(theField.val()); 728 Site.filebrowserSelectedCallback = null; 729 } 730 return true; 731 } 732 if (Site.fileBrowserTinyMceField == "TinyMCE6") { 733 if (Site.filebrowserSelectedCallback != null) { 734 Site.filebrowserSelectedCallback(fileUrl); 735 Site.filebrowserSelectedCallback = null; 736 } 737 Site.fileBrowserTinyMceField = null; 738 $("#filebrowser-modal").modal("hide"); 739 return true; 740 } 741 return false;
742 }; 743})(FileBrowser || (FileBrowser = {})); 744// ReSharper restore CssBrowserCompatibility
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.