1 line
14 KiB
JavaScript
1 line
14 KiB
JavaScript
jQuery(function(t){var o=[],l={};function d(){jQuery(".downloadable_files .downloadable_file").each(function(e,n){jQuery(".file_menu_order",n).val(parseInt(jQuery(n).index(".downloadable_files .downloadable_file")))})}jQuery(".dlm-metabox.closed").each(function(){jQuery(this).find(".dlm-metabox-content").hide()}),jQuery(".date-picker-field").datepicker({dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0}),jQuery(".downloadable_files").sortable({items:".downloadable_file",cursor:"move",axis:"y",handle:"h3",scrollSensitivity:40,forcePlaceholderSize:!0,helper:"clone",opacity:.65,placeholder:"dlm-metabox-sortable-placeholder",start:function(e,n){n.item.css("background-color","#f6f6f6")},stop:function(e,n){n.item.removeAttr("style"),d()}}),window.send_to_browse_file_url=function(e){e&&((old=jQuery.trim(jQuery(downloadable_files_field).val()))&&(old+="\n"),jQuery(downloadable_files_field).val(old+e)),tb_remove(),window.send_to_editor=window.send_to_editor_default},new class{constructor(){(dlmEditInstance=this).init()}init(){this.createUploaders(),this.initUploaders(),this.newFileAction(),this.removeFileAction(),this.clickActions(),this.otherActions()}createUploaders(){var e=Backbone.Model.extend({initialize:function(e){this.uploaderOptions=e,dlmUploaderInstance=this;var e=new wp.Uploader(dlmUploaderInstance.uploaderOptions),n=e.dropzone;n.on("dropzone:enter",dlmUploaderInstance.show),n.on("dropzone:leave",dlmUploaderInstance.hide),e.uploader.bind("FilesAdded",dlmUploaderInstance.dlmFileAdded),e.uploader.bind("FileUploaded",dlmUploaderInstance.dlmAddFileToPath),e.uploader.bind("Error",dlmUploaderInstance.dlmUploadError),e.uploader.bind("UploadProgress",dlmUploaderInstance.uploadProgress)},dlmAddFileToPath:function(i,a,e){var n,o,e=JSON.parse(e.response);if(e.success){let t=a.attachment.attributes.url;"plupload-browse-button"!==jQuery(i.settings.browse_button).attr("id")?(n=jQuery(i.settings.browse_button).parents(".dlm-file-version__row").find("textarea"),dlmUploaderInstance.endUploadProgress(n.parents(".dlm-file-version__row")),o=(o=n.val())?o+"\n"+t:t,n.val(o),dlmEditInstance.afterAddFile(n,a,i)):(dlmEditInstance.addNewFile(),jQuery(document).on("dlm_new_file_added",function(e){var n=jQuery(this),o=jQuery(".dlm-metaboxes.downloadable_files").find(".downloadable_file").first(),l=o.find("textarea"),d=dlmUploaderInstance.retrieveVersion(a),o=o.find('input[name*="downloadable_file_version"]');dlmUploaderInstance.endUploadProgress(jQuery(i.settings.container).parents("#dlm-new-upload")),l.val(t),null!==d&&o.val(d),dlmEditInstance.afterAddFile(l,a,i),n.off(e)}))}else dlmUploaderInstance.dlmUploadError(i,e.data)},dlmFileAdded:function(e,n){var o;"plupload-browse-button"!==jQuery(e.settings.browse_button).attr("id")?(o=jQuery(e.settings.browse_button).parents(".dlm-file-version__row").find("textarea"),dlmUploaderInstance.startUploadProgress(o.parents(".dlm-file-version__row"))):dlmUploaderInstance.startUploadProgress(jQuery(e.settings.container).parents("#dlm-new-upload"))},dlmUploadError:function(e,n){jQuery(".dlm-uploading-file").addClass("hidden"),jQuery(e.settings.browse_button).parent().append('<p class="error description" style="color:red;">'+n.message+"</p>"),setTimeout(function(){jQuery(e.settings.browse_button).parent().find(".error.description").remove()},3500)},uploadProgress:function(e,n){jQuery(e.settings.container).parent().parent().find(".dlm-uploading-file label span").html(e.total.percent+"%"),jQuery(e.settings.container).parent().parent().find(".dlm-uploading-file .dlm-uploading-progress-bar").css({width:e.total.percent+"%"})},retrieveVersion:function(e){e=e.name;if(e.indexOf("-")<0)return null;let n=e.split("-")[1],o=n.split(".");return o=o.pop(),(n=n.slice(0,-(o.length+1))).length?n:null},startUploadProgress:function(e){e.find(".dlm-uploading-file").removeClass("hidden")},endUploadProgress:function(e){e.find(".dlm-uploading-file label").toggleClass("hidden"),setTimeout(function(){e.find(".dlm-uploading-file").addClass("hidden"),e.find(".dlm-uploading-file label").toggleClass("hidden")},1500)}}),n=Backbone.View.extend({tagName:"div",className:"dlm-uploader-editor",template:wp.template("uploader-editor"),localDrag:!1,overContainer:!1,overDropzone:!1,draggingFile:null,args:{},elementContainer:null,initialize:function(e){return this.initialized=!1,this.args=e,this.elementContainer=jQuery(this.args.container[0]).attr("id"),window.tinyMCEPreInit&&window.tinyMCEPreInit.dragDropUpload&&this.browserSupport()&&(this.$document=t(document),this.dropzone=null,this.files=[],this.$document.on("drop","#"+this.elementContainer+" .dlm-uploader-editor",_.bind(this.drop,this)),this.$document.on("click","#"+this.elementContainer+" .dlm-uploader-editor",_.bind(this.click,this)),this.$document.on("dragover","#"+this.elementContainer+" .dlm-uploader-editor",_.bind(this.dropzoneDragover,this)),this.$document.on("dragleave","#"+this.elementContainer+" .dlm-uploader-editor",_.bind(this.dropzoneDragleave,this)),this.$document.on("dragover",_.bind(this.containerDragover,this)),this.$document.on("dragleave",_.bind(this.containerDragleave,this)),this.$document.on("dragstart dragend drop",_.bind(function(e){this.localDrag="dragstart"===e.type,"drop"===e.type&&this.containerDragleave()},this)),this.initialized=!0),this},browserSupport:function(){var e=document.createElement("div");return("draggable"in e||"ondragstart"in e&&"ondrop"in e)&&!!(window.File&&window.FileList&&window.FileReader)},isDraggingFile:function(e){if(null===this.draggingFile){if(_.isUndefined(e.originalEvent)||_.isUndefined(e.originalEvent.dataTransfer))return!1;this.draggingFile=-1<_.indexOf(e.originalEvent.dataTransfer.types,"Files")&&-1===_.indexOf(e.originalEvent.dataTransfer.types,"text/plain")}return this.draggingFile},refresh:function(e){return this.dropzone.toggle(this.overContainer||this.overDropzone),_.isUndefined(e)||t(e.target).closest(".dlm-uploader-editor").toggleClass("droppable",this.overDropzone),this.overContainer||this.overDropzone||(this.draggingFile=null),this},render:function(){return this.initialized&&(this.$el.html(this.template()),jQuery("#"+this.elementContainer).append(this.$el),this.dropzone=this.$el),this},containerDragover:function(e){!this.localDrag&&this.isDraggingFile(e)&&(this.overContainer=!0,this.refresh())},containerDragleave:function(){this.overContainer=!1,_.delay(_.bind(this.refresh,this),50)},dropzoneDragover:function(e){if(!this.localDrag&&this.isDraggingFile(e))return this.overDropzone=!0,this.refresh(e),!1},dropzoneDragleave:function(e){this.overDropzone=!1,_.delay(_.bind(this.refresh,this,e),50)},drop:function(e){return this.containerDragleave(e),this.dropzoneDragleave(e),!1},click:function(e){this.containerDragleave(e),this.dropzoneDragleave(e),this.localDrag=!1}});l.uploadHandlerModel=e,l.uploadHandlerView=n}initUploaders(){var e={browser:jQuery("#plupload-browse-button"),plupload:{multi_selection:!1},params:{type:"dlm_download"},container:jQuery("#drag-drop-area"),dropzone:jQuery("#drag-drop-area")};new l.uploadHandlerModel(e);new l.uploadHandlerView(e).render(),o.push(jQuery("#plupload-browse-button")),t(".dlm_upload_file:not(#plupload-browse-button)").each((e,n)=>{o.push(t(n));n={browser:t(n),plupload:{multi_selection:!1},params:{type:"dlm_download"},container:t(n).parents("div.dlm-uploader-container"),dropzone:t(n).parents("div.dlm-uploader-container")};new l.uploadHandlerModel(n);new l.uploadHandlerView(n).render()})}newFileAction(){t(document).on("dlm_new_file_added",()=>{t(".dlm_upload_file:not(#plupload-browse-button)").each((e,n)=>{if(o.includes(t(n)))return!0;o.push(t(n));n={browser:t(n),plupload:{multi_selection:!1},params:{type:"dlm_download"},container:t(n).parents("div.dlm-uploader-container"),dropzone:t(n).parents("div.dlm-uploader-container")};new l.uploadHandlerModel(n);new l.uploadHandlerView(n).render()}),jQuery("#dlm-new-upload").hide();var e=jQuery(".downloadable_file");0!==e.length&&(jQuery(".dlm-versions-tab").show(),jQuery(".dlm-versions-tab .dlm-versions-number").html("("+e.length+")"))})}removeFileAction(){t(document).on("dlm_remove_file",()=>{0===jQuery(".downloadable_files").find(".dlm-metabox.downloadable_file").length&&jQuery("#dlm-new-upload").show()})}clickActions(){let d=this;jQuery(".dlm-metaboxes-wrapper").on("click",".dlm-metabox h3",function(e){var n;jQuery(e.target).filter(":input, option").length||(n=(e=jQuery(this)).next(".dlm-metabox-content"),e.toggleClass("opened"),n.toggle(),jQuery(".dlm-metabox h3").not(e).removeClass("opened"),jQuery(".dlm-metabox-content").not(n).hide())}),jQuery(".download_monitor_files").on("click","a.add_file",function(e){e.preventDefault(),d.addNewFile()}),jQuery(".download_monitor_files").on("click",".remove_file",function(e){var n;return e.preventDefault(),confirm(dlm_ed_strings.confirm_delete)&&(0<(e=(n=jQuery(this).closest(".downloadable_file")).attr("data-file"))?(jQuery(n).block({message:null,overlayCSS:{background:"#fff url("+t("#dlm-plugin-url").val()+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}}),e={action:"download_monitor_remove_file",file_id:e,download_id:t("#dlm-post-id").val(),security:t("#dlm-ajax-nonce-remove-file").val()},jQuery.post(ajaxurl,e,function(e){jQuery(n).fadeOut("300").remove(),jQuery(document).trigger("dlm_remove_file",[this,n])})):jQuery(n).fadeOut("300").remove()),!1}),jQuery(".download_monitor_files").on("click","a.dlm_browse_for_file",function(e){if(e.preventDefault(),!(0<jQuery(this).parents("#dlm-new-upload").length))return downloadable_files_field=jQuery(this).closest(".downloadable_file").find('textarea[name^="downloadable_file_urls"]'),window.send_to_editor=window.send_to_browse_file_url,tb_show(dlm_ed_strings.browse_file,"media-upload.php?post_id="+t("#dlm-post-id").val()+"&type=downloadable_file_browser&from=wpdlm01&TB_iframe=true"),dlmEditInstance.afterAddFile(downloadable_files_field),!1;d.addNewFile(),jQuery(document).on("dlm_new_file_added",function(e){var n=jQuery(this);return downloadable_files_field=jQuery(".downloadable_file").find('textarea[name^="downloadable_file_urls"]'),window.send_to_editor=window.send_to_browse_file_url,tb_show(dlm_ed_strings.browse_file,"media-upload.php?post_id="+t("#dlm-post-id").val()+"&type=downloadable_file_browser&from=wpdlm01&TB_iframe=true"),n.off(e),dlmEditInstance.afterAddFile(downloadable_files_field),!1})}),jQuery(".download_monitor_files").on("click","a.dlm_external_source",function(e){if(e.preventDefault(),!(0<jQuery(this).parents("#dlm-new-upload").length))return downloadable_files_field=jQuery(this).closest(".downloadable_file").find('textarea[name^="downloadable_file_urls"]'),dlmEditInstance.afterAddFile(downloadable_files_field),!1;d.addNewFile(),jQuery(document).on("dlm_new_file_added",function(e){var n=jQuery(this);return downloadable_files_field=jQuery(".downloadable_file").find('textarea[name^="downloadable_file_urls"]'),n.off(e),dlmEditInstance.afterAddFile(downloadable_files_field),!1})}),jQuery(document).on("click",".dlm_media_library",function(e){e.preventDefault();var o=t(this),l=null;0<jQuery(this).parents("#dlm-new-upload").length?(d.addNewFile(),jQuery(document).on("dlm_new_file_added",function(e){var n=jQuery(this);l=jQuery("textarea.downloadable_file_urls");d.addBrowsedFile(o,l,"",void 0),n.off(e),dlmEditInstance.afterAddFile(l)})):(e=(l=o.parents(".dlm-file-version__row").find(".downloadable_file_urls")).val(),d.addBrowsedFile(o,l,e,void 0),dlmEditInstance.afterAddFile(l))}),t(".copy-dlm-button").on("click",function(e){e.preventDefault();e=t(this).parent().find("input");e.focus(),e.select(),document.execCommand("copy"),t(this).next("span").text(t(this).data("item")+" copied"),t(".copy-dlm-button").not(t(this)).parent().find("span").text("")}),jQuery(document).on("dlm_remove_file",function(e,n,o){var l=jQuery(".downloadable_file");0===l.length?jQuery(".dlm-versions-tab").hide():jQuery(".dlm-versions-tab .dlm-versions-number").html("("+l.length+")")}),jQuery(document).on("click","#dlm-add-recommended-path, #dlm-enable-path",function(e){e.preventDefault();var e=jQuery(this),n=e.data("path"),o=e.data("security"),e={action:"dlm-add-recommended-path"===e.attr("id")?"dlm_update_downloads_path":"dlm_enable_download_path",path:encodeURI(n),security:o};jQuery.post(ajaxurl,e,function(e){e.success&&location.reload()})}),jQuery("input#_redirect_only").on("change",function(){var e=jQuery(this),n=jQuery("input#_new_tab");e.is(":checked")?n.parent().show():n.parent().hide()}),jQuery("#dlm_view_locked_products").on("click",function(e){jQuery(this).parents(".dlm_product_locked_downloads").toggleClass("open"),jQuery(this).find(".dashicons").toggleClass("dashicons-arrow-down dashicons-arrow-up")})}addNewFile(){jQuery(".download_monitor_files").block({message:null,overlayCSS:{background:"#fff url("+t("#dlm-plugin-url").val()+"/assets/images/ajax-loader.gif) no-repeat center",opacity:.6}});var e=jQuery(".downloadable_files .downloadable_file").length,e={action:"download_monitor_add_file",post_id:t("#dlm-post-id").val(),size:e,security:t("#dlm-ajax-nonce-add-file").val()};return jQuery.post(ajaxurl,e,function(e){jQuery(".downloadable_files").prepend(e),d(),jQuery(".download_monitor_files").unblock(),jQuery(".date-picker-field").datepicker({dateFormat:"yy-mm-dd",numberOfMonths:1,showButtonPanel:!0}),jQuery(document).trigger("dlm_new_file_added",[this,e])}),!1}addBrowsedFile(e,n,o,l){l&&l.close();var d=[new wp.media.controller.Library({library:wp.media.query(),multiple:!0,title:e.data("choose"),priority:20,filterable:"all"})];(l=wp.media.frames.downloadable_file=wp.media({title:e.data("choose"),library:{type:""},button:{text:e.data("update")},multiple:!0,states:d})).on("select",function(){l.state().get("selection").map(function(e){(e=e.toJSON()).url&&(o=o?o+"\n"+e.url:e.url)}),n.val(o)}),l.on("ready",function(){l.uploader.options.uploader.params={type:"dlm_download"}}),l.open()}afterAddFile(e,n=null,o=null){var l;e.parents(".dlm-file-version__row").find(".dlm-file-version__drag_and_drop").addClass("hidden"),e.parents(".dlm-file-version__row").find(".dlm-file-version__file_present").removeClass("hidden"),null!==n&&null!==o&&(o=n.attachment.id,n=t("#dlm-ajax-nonce-add-file").val(),l=parseInt(jQuery("input#post_ID").val()),e=e.parents(".downloadable_files").find(".downloadable_file").first().data("file"),jQuery.post(ajaxurl,{action:"dlm_update_file_meta",file_id:o,version_id:e,download_id:l,nonce:n},function(e){e.success||console.log("Error saving attachment meta")}))}otherActions(){jQuery(document).on("keyup",'input[name^="downloadable_file_version"]',function(){var e=""!==jQuery(this).val()?jQuery(this).val():"n/a";jQuery(this).parents(".downloadable_file").find(".dlm-version-info__version").text(e)})}}}); |