// source --> https://www.milestone.ag/wp-content/plugins/user-private-files/js/main.js?ver=5.5.14 jQuery(document).ready(function($) { let doc_type = ''; // Common popup functions $('.closePopup').on('click', function(){ $(this).closest('.upvf-popup').hide(); $(this).closest('.upvf-popup').find("form")[0].reset(); $(this).closest('#upf_upload_sec').find(".uploader input[type='file']").val(''); }); // Drag/Drop style & prevent the page from redirecting $("div:not(.upload-area)").on("dragover", function(e) { e.preventDefault(); e.stopPropagation(); $('.upload-area').css("background", ''); }); $('.upload-area').on('dragover', function (e) { e.stopPropagation(); e.preventDefault(); $(this).css("background", 'lightgrey'); }); $("html").on("drop", function(e) { e.preventDefault(); e.stopPropagation(); }); // Drop $('#upload_doc_file').on('drop', function (e) { e.stopPropagation(); e.preventDefault(); var file = e.originalEvent.dataTransfer.files; if(!file[0].type.includes('image') && !file[0].type.includes('pdf') && !file[0].type.includes('document')){ alert('Please select a document or image. Only pdf, doc, and image formats are allowed!'); return; } var reader = new FileReader(); reader.onload = function (event) { var url_data = event.target.result; if(file[0].type.includes('image')){ $('#add-doc-frm img.doc_prvw_img').attr('src', url_data).show(); doc_type = 'image'; $('#add-doc-frm .doc_prvw_txt').text('').hide(); } else if(file[0].type.includes('pdf')){ $('#add-doc-frm img.doc_prvw_img').attr('src', ajax_upf_obj.upvf_plugin_url + 'images/document.png').show(); $('#add-doc-frm .doc_prvw_txt').text('PDF').show(); doc_type = 'doc/pdf'; } else{ $('#add-doc-frm img.doc_prvw_img').attr('src', ajax_upf_obj.upvf_plugin_url + 'images/document.png').show(); $('#add-doc-frm .doc_prvw_txt').text('DOC').show(); doc_type = 'doc/pdf'; } $('#add-doc-frm .doc_prvw_txt').attr('data-src', url_data); var fileName = file[0].name; $('#add-doc-frm .uploaded-doc').attr('data-ext', fileName); } reader.readAsDataURL(file[0]); $(this).css("background", ''); $('.add-doc-pp').removeClass('upvf-hidden').fadeIn(); }); // Manual select $('#upf_upload_sec .uploader button').on('click', function(){ $('#upf_upload_sec #upload_doc').click(); }); $('#upload_doc').on('change', function(e){ var reader = new FileReader(); var fileName = this.files[0].name; var fileType = this.files[0].type; reader.onload = function (event) { var url_data = event.target.result; if(fileType.includes('image')){ $('#add-doc-frm img.doc_prvw_img').attr('src', url_data).show(); doc_type = 'image'; $('#add-doc-frm .doc_prvw_txt').text('').hide(); } else if(fileType.includes('pdf')){ $('#add-doc-frm img.doc_prvw_img').attr('src', ajax_upf_obj.upvf_plugin_url + 'images/document.png').show(); $('#add-doc-frm .doc_prvw_txt').text('PDF').show(); doc_type = 'doc/pdf'; } else{ $('#add-doc-frm img.doc_prvw_img').attr('src', ajax_upf_obj.upvf_plugin_url + 'images/document.png').show(); $('#add-doc-frm .doc_prvw_txt').text('DOC').show(); doc_type = 'doc/pdf'; } $('#add-doc-frm .doc_prvw_txt').attr('data-src', url_data); $('#add-doc-frm .uploaded-doc').attr('data-ext', fileName); } reader.readAsDataURL(this.files[0]); $('.add-doc-pp').removeClass('upvf-hidden').fadeIn(); }); // Submitting the upload-file form $( "#add-doc-frm" ).on( "submit", function(e) { e.preventDefault(); if(doc_type){ var fd = new FormData(); fd.append( 'doc_ttl', jQuery('#add-doc-frm #doc_ttl').val() ); fd.append( 'doc_desc', jQuery('#add-doc-frm #doc_desc').val() ); var selected_files = $('#upload_doc').prop('files'); fd.append( 'docfile', selected_files[0] ); fd.append( 'doc_type', doc_type ); if($('select#fldr_id').length > 0){ if(jQuery('select#fldr_id').val() > 0){ fd.append( 'fldr_id', jQuery('select#fldr_id').val() ); } } fd.append( 'action', 'upload_doc_callback' ); fd.append( 'upf_nonce', ajax_upf_obj.nonce ); var bar = $('.progress_bar'); bar.width('5%'); jQuery.ajax ({ xhr: function() { var xhr = new window.XMLHttpRequest(); xhr.upload.addEventListener("progress", function(evt) { if (evt.lengthComputable) { var percentComplete = evt.loaded / evt.total; percentComplete = parseInt(percentComplete * 100); if(percentComplete >= 5){ bar.width(percentComplete + '%'); } } }, false); return xhr; }, url: ajax_upf_obj.ajaxurl, type: 'POST', data: fd, contentType: false, processData: false, dataType:"JSON", beforeSend: function() { // bar.width(0); }, complete: function(xhr) { //console.log(xhr.responseText); } }) .success( function(results) { if(results.error){ console.log(results.error); } else{ if(results.new_doc_id){ var new_doc_id = results.new_doc_id; var new_doc_thumb = results.thumb_url; var new_doc_src = results.doc_src; var doc_ttl = jQuery('#add-doc-frm #doc_ttl').val(); $doc_pht_html = '
'+doc_ttl+'
' + alwd_usr_data[1] + ' Remove
'; }); $('.doc_curr_alwd_users').html(''+results.added_user_email+' Remove
'; $('.doc_curr_alwd_users').append(usr_html); var doc_elem_id = $('.edit_doc_upf_popup').attr('data-file'); var doc_usrs = $('.all-docs').find('#'+doc_elem_id); var new_doc_usr = results.added_user_id + ':' + results.added_user_email; if(doc_usrs.attr('data-alwd-usrs').length){ doc_usrs.attr('data-alwd-usrs', doc_usrs.attr('data-alwd-usrs') + ',' + new_doc_usr); } else{ doc_usrs.attr('data-alwd-usrs', new_doc_usr); } } } $('.edit_doc_upf_popup').css('opacity', ''); $('.edit_doc_upf_popup').find("form#upf_allow_access_frm")[0].reset(); }) .fail ( function(data) { console.log( data.responseText ); console.log( 'Request Failed. Status - ' + data.statusText ); $('.edit_doc_upf_popup').css('opacity', ''); }); }); // Remove user from a file $('.edit_doc_upf_popup').on('click', '.rmv-file-acs', function(){ var data = { action: 'dpk_upvf_rmv_access', upf_nonce: ajax_upf_obj.nonce, doc_id: $('.edit_doc_upf_popup').attr('data-file'), user: $(this).closest('.alwd-usr-p').attr('data-usr-id') }; $.post(ajax_upf_obj.ajaxurl, data, function (response) { if (response.length > 0) { var res = $.parseJSON(response); if(res.rmvd_usr){ $('.alwd-usr-p[data-usr-id="'+res.rmvd_usr+'"]').remove(); var doc_elem_id = $('.edit_doc_upf_popup').attr('data-file'); var doc_usrs = $('#'+doc_elem_id); if(doc_usrs.attr('data-alwd-usrs').length){ var old_doc_usrs = doc_usrs.attr('data-alwd-usrs'); var new_doc_usrs = old_doc_usrs; var target_usr_code = res.rmvd_usr + ':' + res.rmvd_usr_email; if(old_doc_usrs.includes(',' + target_usr_code)){ var new_doc_usrs = old_doc_usrs.replace(',' + target_usr_code, ""); } else if(old_doc_usrs.includes(target_usr_code + ',')){ var new_doc_usrs = old_doc_usrs.replace(target_usr_code + ',', ""); } else if(old_doc_usrs.includes(target_usr_code)){ var new_doc_usrs = old_doc_usrs.replace(target_usr_code, ""); } doc_usrs.attr('data-alwd-usrs', new_doc_usrs); } } else{ console.log(response); } } else{ console.log('no response'); } }); }); // Remove a file $('.edit_doc_upf_popup').on('click', '#dlt-doc-file', function(){ var file_id = $('.edit_doc_upf_popup').attr('data-file'); var fd = new FormData(); fd.append( 'doc_id', file_id ); fd.append( 'action', 'dpk_upvf_rmv_file' ); fd.append( 'upf_nonce', ajax_upf_obj.nonce ); $.ajax ({ url: ajax_upf_obj.ajaxurl, type: 'POST', data: fd, contentType: false, processData: false, dataType:"JSON", beforeSend: function() { $('.edit_doc_upf_popup').css('opacity', '0.5'); } }) .success( function(results) { if(results.error){ console.log(results.error); } else{ if(results.rmvd_file){ $('.all-docs #' + file_id).remove(); } } $('.edit_doc_upf_popup').css('opacity', '').hide(); }) .fail ( function(data) { console.log( data.responseText ); console.log( 'Request Failed. Status - ' + data.statusText ); $('.edit_doc_upf_popup').css('opacity', '').hide(); }); }); // Filters on files dashboard $('#files_filter #grp_by').on('change', function(){ $('#files_filter').submit(); }); });