%PDF- %PDF-
Direktori : /var/www/pn/wp-content/plugins/wp-media-folder/assets/js/ |
Current File : //var/www/pn/wp-content/plugins/wp-media-folder/assets/js/script-option.js |
var selected_folder = null, curFolders = [], wpmf_list_import = '', current_page_watermark = 1, status_regenthumbs_watermark = false; var wpmfWatermarkExcludeTreeModule; (function ($) { wpmfWatermarkExcludeTreeModule = { categories: [], // categories folders_states: [], // Contains open or closed status of folders /** * Retrieve the Jquery tree view element * of the current frame * @return jQuery */ getTreeElement: function () { return $('.watermark_exclude_folders').find('.wpmf-folder-tree'); }, /** * Initialize module related things */ initModule: function () { // Import categories from wpmf main module wpmfWatermarkExcludeTreeModule.importCategories(); // Add the tree view to the main content $('<div class="wpmf-folder-tree"></div>').appendTo($('.watermark_exclude_folders')); // Render the tree view wpmfWatermarkExcludeTreeModule.loadTreeView(); $.ajax({ type: "POST", url: ajaxurl, data: { action: 'wpmf_get_exclude_folders', wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (res) { $.each(res.folders, function (i, v) { $('.wpmf_watermark_exclude_folders[value="' + v + '"]').prop('checked', true).change(); }); } }); }, /** * Import categories from wpmf main module */ importCategories: function () { var folders_ordered = []; // Add each category $(wpmf.vars.wpmf_categories_order).each(function () { folders_ordered.push(wpmf.vars.wpmf_categories[this]); }); // Reorder array based on children var folders_ordered_deep = []; var processed_ids = []; var loadChildren = function (id) { if (processed_ids.indexOf(id) < 0) { processed_ids.push(id); for (var ij = 0; ij < folders_ordered.length; ij++) { if (folders_ordered[ij].parent_id === id) { folders_ordered_deep.push(folders_ordered[ij]); loadChildren(folders_ordered[ij].id); } } } }; loadChildren(parseInt(wpmf.vars.term_root_id)); // Finally save it to the global var wpmfWatermarkExcludeTreeModule.categories = folders_ordered_deep; }, /** * Render tree view inside content */ loadTreeView: function () { wpmfWatermarkExcludeTreeModule.getTreeElement().html(wpmfWatermarkExcludeTreeModule.getRendering()); }, /** * Get the html resulting tree view * @return {string} */ getRendering: function () { var ij = 0; var content = ''; // Final tree view content /** * Recursively print list of folders * @return {boolean} */ var generateList = function generateList() { content += '<ul>'; while (ij < wpmfWatermarkExcludeTreeModule.categories.length) { if (typeof wpmfWatermarkExcludeTreeModule.categories[ij].drive_type !== "undefined" && wpmfWatermarkExcludeTreeModule.categories[ij].drive_type !== '') { ij++; continue; } var className = 'closed'; // Open li tag content += '<li class="' + className + '" data-id="' + wpmfWatermarkExcludeTreeModule.categories[ij].id + '" >'; // get color folder var bgcolor = ''; if (typeof wpmf.vars.colors !== 'undefined' && typeof wpmf.vars.colors[wpmfWatermarkExcludeTreeModule.categories[ij].id] !== 'undefined') { bgcolor = 'color: ' + wpmf.vars.colors[wpmfWatermarkExcludeTreeModule.categories[ij].id]; } else { bgcolor = 'color: #8f8f8f'; } var text_label = ''; if (wpmfWatermarkExcludeTreeModule.categories[ij + 1] && wpmfWatermarkExcludeTreeModule.categories[ij + 1].depth > wpmfWatermarkExcludeTreeModule.categories[ij].depth) { // The next element is a sub folder content += '<a onclick="wpmfWatermarkExcludeTreeModule.toggle(' + wpmfWatermarkExcludeTreeModule.categories[ij].id + ')"><i class="material-icons wpmf-arrow">keyboard_arrow_down</i></a>'; } else { // Add folder icon content += '<i class="material-icons wpmf-arrow" style="opacity: 0">keyboard_arrow_down</i></a>'; } content += '<div class="pure-checkbox">'; if (wpmfWatermarkExcludeTreeModule.categories[ij].id === 0) { text_label = wpmf.l18n.media_folder; } else { text_label = wpmfWatermarkExcludeTreeModule.categories[ij].label; } if (wpmfWatermarkExcludeTreeModule.categories[ij].id === 0) { content += '<input id="wpmf_watermark_exclude_folders_0" class="wpmf_watermark_exclude_folders" type="checkbox" value="root">'; } else { content += '<input id="wpmf_watermark_exclude_folders_' + wpmfWatermarkExcludeTreeModule.categories[ij].id + '" class="wpmf_watermark_exclude_folders" type="checkbox" value="' + wpmfWatermarkExcludeTreeModule.categories[ij].id + '">'; } content += '<label for="wpmf_watermark_exclude_folders_' + wpmfWatermarkExcludeTreeModule.categories[ij].id + '" onclick="wpmfWatermarkExcludeTreeModule.changeFolder(' + wpmfWatermarkExcludeTreeModule.categories[ij].id + ')">'; content += '<i class="material-icons" style="' + bgcolor + '">folder</i>'; content += text_label; content += '</label>'; content += '</div>'; // This is the end of the array if (wpmfWatermarkExcludeTreeModule.categories[ij + 1] === undefined) { // var's close all opened tags for (var ik = wpmfWatermarkExcludeTreeModule.categories[ij].depth; ik >= 0; ik--) { content += '</li>'; content += '</ul>'; } // We are at the end don't continue to process array return false; } if (wpmfWatermarkExcludeTreeModule.categories[ij + 1].depth > wpmfWatermarkExcludeTreeModule.categories[ij].depth) { // The next element is a sub folder // Recursively list it ij++; if (generateList() === false) { // We have reached the end, var's recursively end return false; } } else if (wpmfWatermarkExcludeTreeModule.categories[ij + 1].depth < wpmfWatermarkExcludeTreeModule.categories[ij].depth) { // The next element don't have the same parent // var's close opened tags for (var ik1 = wpmfWatermarkExcludeTreeModule.categories[ij].depth; ik1 > wpmfWatermarkExcludeTreeModule.categories[ij + 1].depth; ik1--) { content += '</li>'; content += '</ul>'; } // We're not at the end of the array var's continue processing it return true; } // Close the current element content += '</li>'; ij++; } }; // Start generation generateList(); return content; }, /** * Change the selected folder in tree view * @param folder_id */ changeFolder: function (folder_id) { // Remove previous selection wpmfWatermarkExcludeTreeModule.getTreeElement().find('li').removeClass('selected'); // Select the folder wpmfWatermarkExcludeTreeModule.getTreeElement().find('li[data-id="' + folder_id + '"]').addClass('selected').// Open parent folders parents('.wpmf-folder-tree li.closed').removeClass('closed'); }, /** * Toggle the open / closed state of a folder * @param folder_id */ toggle: function (folder_id) { // Check is folder has closed class if (wpmfWatermarkExcludeTreeModule.getTreeElement().find('li[data-id="' + folder_id + '"]').hasClass('closed')) { // Open the folder wpmfWatermarkExcludeTreeModule.openFolder(folder_id); } else { // Close the folder wpmfWatermarkExcludeTreeModule.closeFolder(folder_id); // close all sub folder $('li[data-id="' + folder_id + '"]').find('li').addClass('closed'); } }, /** * Open a folder to show children */ openFolder: function (folder_id) { wpmfWatermarkExcludeTreeModule.getTreeElement().find('li[data-id="' + folder_id + '"]').removeClass('closed'); wpmfWatermarkExcludeTreeModule.folders_states[folder_id] = 'open'; }, /** * Close a folder and hide children */ closeFolder: function (folder_id) { wpmfWatermarkExcludeTreeModule.getTreeElement().find('li[data-id="' + folder_id + '"]').addClass('closed'); wpmfWatermarkExcludeTreeModule.folders_states[folder_id] = 'close'; } }; /** * Import category * @param doit true or false * @param button */ var importWpmfTaxo = function (doit, button) { jQuery(button).closest('div').find('.spinner').show().css('visibility', 'visible'); $.ajax({ type: "POST", url: ajaxurl, data: { action: "import_categories", doit: doit, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function () { jQuery(button).closest('div').find('.spinner').hide(); } }); }; var removeSyncItems = function (list) { if (!list.length) { return; } $.ajax({ type: "POST", url: ajaxurl, dataType: 'json', data: { action: "wpmf_remove_syncmedia", key: list.toString(), wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (response) { if (response !== false) { $.each(response, function (i, v) { $('.wp-list-table-sync').find('tr[data-id="' + v + '"]').remove(); }); } } }); }; var syncItemsEvent = function () { /** * Remove list syng media */ $('.btn_deletesync_media').on('click', function () { var list = []; $('[id^="cb-select-"]:checked').each(function (i, $this) { if ($($this).val() !== "on") { list.push($($this).val()); } }); removeSyncItems(list); }); $('.delete-syncftp-item').on('click', function () { var list = []; list.push($(this).closest('tr').data('id')); removeSyncItems(list); }); $('.add-syncftp-queue').on('click', function () { var $this = $(this); var directory = $this.closest('tr').data('ftp'); var folder_id = $this.closest('tr').data('id'); $.ajax({ type: "POST", url: ajaxurl, dataType: 'json', data: { action: "wpmf_add_syncftp_queue", directory: directory, folder_id: folder_id, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, beforeSend: function() { $this.find('.wpmf_spinner').show(); }, success: function (response) { $this.find('.wpmf_spinner').hide(); if (!response.status) { alert(response.msg); } } }); }); /** * check all list sync media */ $('#cb-select-all-sync-items, .check-sync-item').on('click', function () { if ($(this).hasClass('cb-select-all-sync-items')) { if ($(this).is(':checked')) { $('.wp-list-table-sync').find('[id^="cb-select-"]').prop('checked', true); } else { $('.wp-list-table-sync').find('[id^="cb-select-"]').prop('checked', false); } } if (!$('.check-sync-item:checked').length) { $('.btn_deletesync_media').hide(); } else { $('.btn_deletesync_media').show(); } }); }; var mediaFilterAction = function () { /** * Add custom weight in settings */ $('#add_weight').unbind('click').bind('click', function () { if (($('.wpmf_min_weight').val() === '') || ($('.wpmf_min_weight').val() === '' && $('.wpmf_max_weight').val() === '')) { $('.wpmf_min_weight').focus(); } else if ($('.wpmf_max_weight').val() === '') { $('.wpmf_max_weight').focus(); } else { $.ajax({ type: 'POST', url: ajaxurl, data: { action: "wpmf_add_weight", min_weight: $('.wpmf_min_weight').val(), max_weight: $('.wpmf_max_weight').val(), unit: $('.wpmfunit').val(), wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (res) { if (res !== false) { var new_weight = '<li class="wpmf_width_100 ju-settings-option customize-control customize-control-select item_weight" style="display: list-item;" data-value="' + res.key + '" data-unit="kB">'; new_weight += '<div class="wpmf_row_full">'; new_weight += '<div class="pure-checkbox ju-setting-label">'; new_weight += '<input title="" id="' + res.key + ',' + res.unit + '" type="checkbox" name="weight[]" value="' + res.key + ',' + res.unit + '" data-unit="kB">'; new_weight += '<label class="lb" for="' + res.key + ',' + res.unit + '">'; new_weight += res.label + '</label>'; new_weight += '<label class="ju-switch-button">'; new_weight += '<i class="material-icons wpmf-md-edit" data-label="weight" data-value="' + res.key + '" data-unit="' + res.unit + '" title="Edit weight">border_color</i>'; new_weight += '<i class="material-icons wpmf-delete" data-label="weight" data-value="' + res.key + '" data-unit="' + res.unit + '" title="Remove weight">delete_outline</i>'; new_weight += '</label>'; new_weight += '</div>'; new_weight += '</div>'; new_weight += '</li>'; $('.content_list_fillweight li.weight').before(new_weight); mediaFilterAction(); } else { alert(wpmfoption.l18n.error); } $('li.weight input').val(null); $('.wpmfunit option[value="kB"]').prop('selected', true).change(); } }); } }); /** * Add custom dimension in settings */ $('#add_dimension').unbind('click').bind('click', function () { if (($('.wpmf_width_dimension').val() === '') || ($('.wpmf_width_dimension').val() === '' && $('.wpmf_height_dimension').val() === '')) { $('.wpmf_width_dimension').focus(); } else if ($('.wpmf_height_dimension').val() === '') { $('.wpmf_height_dimension').focus(); } else { $.ajax({ type: 'POST', url: ajaxurl, data: { action: "wpmf_add_dimension", width_dimension: $('.wpmf_width_dimension').val(), height_dimension: $('.wpmf_height_dimension').val(), wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (res) { if (res !== false) { var new_dimension = '<li class="wpmf_width_100 ju-settings-option customize-control customize-control-select item_dimension" style="display: list-item;" data-value="' + res + '">'; new_dimension += '<div class="wpmf_row_full">'; new_dimension += '<div class="pure-checkbox ju-setting-label">'; new_dimension += '<input title="" id="' + res + '" type="checkbox" name="dimension[]" value="' + res + '">'; new_dimension += '<label class="lb" for="' + res + '">' + res + '</label>'; new_dimension += '<label class="ju-switch-button">'; new_dimension += '<i class="material-icons wpmf-md-edit" data-label="dimension" data-value="' + res + '" title="Edit dimension">border_color</i>'; new_dimension += '<i class="material-icons wpmf-delete" data-label="dimension" data-value="' + res + '" title="Remove dimension">delete_outline</i>'; new_dimension += '</label>'; new_dimension += '</div>'; new_dimension += '</div>'; new_dimension += '</li>'; $('.content_list_filldimension li.dimension').before(new_dimension); mediaFilterAction(); } else { alert(wpmfoption.l18n.error); } $('li.dimension input').val(null); } }); } }); /** * remove custom weight/dimension in settings */ $('.wpmf-delete').unbind('click').bind('click', function () { var $this = $(this); var value = $this.data('value'); var label = $this.data('label'); var unit = $this.data('unit'); if (label === 'dimension') { var action = 'wpmf_remove_dimension'; } else { action = 'wpmf_remove_weight'; } $.ajax({ type: 'POST', url: ajaxurl, data: { action: action, value: value, unit: unit, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (res) { if (res === true) { $this.closest('li').remove(); } } }); }); /** * edit custom weight/dimension in settings */ $('.wpmfedit').unbind('click').bind('click', function () { var $this = $(this); var label = $this.data('label'); var current_value = $('#edit_' + label + '').data('value'); var unit = $('.wpmfunit').val(); var new_value = ''; if (label === 'dimension') { new_value = $('.wpmf_width_dimension').val() + 'x' + $('.wpmf_height_dimension').val(); } else { if (unit === 'kB') { new_value = ($('.wpmf_min_weight').val() * 1024) + '-' + ($('.wpmf_max_weight').val() * 1024) + ',' + unit; } else { new_value = ($('.wpmf_min_weight').val() * (1024 * 1024)) + '-' + ($('.wpmf_max_weight').val() * (1024 * 1024)) + ',' + unit; } } $.ajax({ type: 'POST', url: ajaxurl, data: { action: 'wpmf_edit', label: label, old_value: $this.data('value'), new_value: new_value, unit: unit, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (res) { if (res !== false) { if (label === 'dimension') { $('li.item_' + label + '[data-value="' + current_value + '"]').find('.wpmf-delete').attr('data-value', res.value).data('value', res.value); $('li.item_' + label + '[data-value="' + current_value + '"]').find('.wpmf-md-edit').attr('data-value', res.value).data('value', res.value); $('li.item_' + label + '[data-value="' + current_value + '"]').find('input[name="' + label + '[]"]').val(res.value); $('.content_list_filldimension li[data-value="' + current_value + '"]').find('.lb').html(new_value); $('li.item_' + label + '[data-value="' + current_value + '"]').attr('data-value', res.value).data('value', res.value); } else { var cur_val = current_value.split(','); $('li.item_' + label + '[data-value="' + cur_val[0] + '"]').find('.wpmf-delete').attr('data-value', res.value).data('value', res.value); $('li.item_' + label + '[data-value="' + cur_val[0] + '"]').find('.wpmf-md-edit').attr('data-value', res.value).data('value', res.value); $('li.item_' + label + '[data-value="' + cur_val[0] + '"]').find('input[name="' + label + '[]"]').val(res.value + ',' + cur_val[1]); $('.content_list_fillweight li[data-value="' + cur_val[0] + '"]').find('.lb').html(res.label); $('li.item_' + label + '[data-value="' + cur_val[0] + '"]').attr('data-value', res.value).data('value', res.value); } } else { alert(wpmfoption.l18n.error); } $('.wpmf_can,#edit_' + label + '').hide(); $('#edit_' + label + '').attr('data-value', null).data('value', null); $('#add_' + label + '').show(); $('li.' + label + ' input').val(null); } }); }); /** * open form custom weight/dimension in settings */ $('.wpmf-md-edit').unbind('click').bind('click', function () { var $this = $(this); var value = $this.data('value'); var unit = $this.data('unit'); var label = $this.data('label'); $('.wpmf_can[data-label="' + label + '"]').show(); $('#add_' + label + '').hide(); if (label === 'dimension') { $('#edit_' + label + '').show().attr('data-value', value).data('value', value); var value_array = value.split('x'); $('.wpmf_width_dimension').val(value_array[0]); $('.wpmf_height_dimension').val(value_array[1]); } else { $('#edit_' + label + '').show().attr('data-value', value + ',' + unit).data('value', value + ',' + unit); value_array = value.split('-'); if (unit === 'kB') { $('.wpmf_min_weight').val(value_array[0] / 1024); $('.wpmf_max_weight').val(value_array[1] / 1024); } else { $('.wpmf_min_weight').val(value_array[0] / (1024 * 1024)); $('.wpmf_max_weight').val(value_array[1] / (1024 * 1024)); } $('select.wpmfunit option[value="' + unit + '"]').prop('selected', true).change(); } }); }; /** * Init event */ var bindSelect = function () { syncItemsEvent(); /* show tooltip when hover label, button */ tippy('label[data-wpmftippy], .wpmftippy', { theme: 'wpmf', animation: 'scale', animateFill: false, maxWidth: 300, duration: 0, arrow: true, onShow(instance) { instance.popper.hidden = false; instance.setContent($(instance.reference).data('wpmftippy')); } }); mediaFilterAction(); /** * Add to list sync media */ $('.btn_addsync_media').on('click', function () { var folder_ftp = $('.dir_name_ftp').val(); var folder_category = $('.dir_name_categories').data('id_category'); var breadcrumb = $('.dir_name_categories').val(); $.ajax({ type: "POST", url: ajaxurl, dataType: 'json', data: { action: "wpmf_add_syncmedia", folder_ftp: folder_ftp, folder_category: folder_category, folder_category_breadcrumb: breadcrumb, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (response) { if (response.status) { var tr = '<tr data-ftp="'+ response.folder_ftp +'" data-id="' + response.folder_category + '">'; tr += '<td><input class="media_checkbox check-sync-item" id="cb-select-' + response.folder_category + '" type="checkbox" name="post[]" value="' + response.folder_category + '"></td>'; tr += '<td>' + response.folder_ftp + '</td>'; tr += '<td>' + $('.dir_name_categories').val() + '</td>'; tr += '<td>'; tr += '<button class="button ju-small-button add-syncftp-queue m-r-10" type="button">'+ wpmfoption.l18n.add_to_queue +'<span class="wpmf_spinner"></span></button>'; tr += '<button class="button ju-small-button delete-syncftp-item" type="button">'+ wpmfoption.l18n.delete +'</button>'; tr += '</td>'; tr += '</tr>'; if (!$('.wp-list-table-sync').find('tr[data-id="' + response.folder_category + '"]').length) { $('.wp-list-table-sync').append(tr); } syncItemsEvent(); } else { alert(response.msg); } } }); }); /** * FTP Import */ $('.import_ftp_button').on('click', function () { var $this = $(this); $.ajax({ type: 'POST', url: ajaxurl, data: { action: "wpmf_import_folder", wpmf_list_import: wpmf_list_import, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, beforeSend: function () { $this.find('.spinner').show().css('visibility', 'visible'); }, success: function (res) { $this.find('.spinner').hide(); if (res.status) { wpmfSnackbarModule.show({ id: 'queue_alert', content: wpmfoption.l18n.queue_import_alert, auto_close: true, is_progress: true }); } else { if (typeof res.msg !== "undefined") { alert(res.msg); } } } }); }); // export folder $('.export_folder').on('click', function () { $.ajax({ type: 'POST', url: ajaxurl, data: { action: "wpmf_export_folder", wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (res) { } }); }); /** * close form custom weight/dimension in settings */ $('.wpmf_can').on('click', function () { var $this = $(this); var label = $this.data('label'); $this.hide(); $('#edit_' + label + '').hide(); $('#edit_' + label + '').attr('data-value', null).data('value', null); $('#add_' + label + '').show(); $('li.' + label + ' input').val(null); if (label === 'weight') { $('.wpmfunit option[value="kB"]').prop('selected', true).change(); } }); $('.wpmf-section-title').on('click', function () { var title = $(this).data('title'); if ($(this).closest('li').hasClass('open')) { $('.content_list_' + title + '').slideUp('fast'); $(this).closest('li').removeClass('open'); } else { $('.content_list_' + title + '').slideDown('fast'); $(this).closest('li').addClass('open') } }); $('.watermark_margin_unit').on('click', function () { $('.watermark_unit').html($(this).val()); }); $('.wmpf_import_category').on('click', function () { importWpmfTaxo(true, this); }); $('.wmpf_import_rml').on('click', function () { var $button = $(this); $button.closest('div').find('.spinner').show().css('visibility', 'visible'); $.ajax({ type: "POST", url: ajaxurl, data: { action: "import_real_media_library", wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function () { $button.closest('div').find('.spinner').hide(); } }); }); /* click import nextgen gallery button */ $('.btn_import_gallery').on('click', function () { var $this = $(this); $this.find('.spinner').show().css('visibility', 'visible'); $.ajax({ type: 'POST', url: ajaxurl, data: { action: "import_gallery", doit: true, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (res) { $this.find('.spinner').hide(); } }); }); // set watermark exclude folders $('.wpmf_watermark_exclude_folders').on('click, change', function () { var excludes = []; $('.wpmf_watermark_exclude_folders').each(function (i, v) { var val = $(v).val(); if ($(v).is(':checked')) { excludes.push(val); } else { var index = excludes.indexOf(val); if (index > -1) { excludes.splice(index, 1); } } }); $('[name="wpmf_watermark_exclude_folders"]').val(excludes.join()).change(); }); }; $(document).ready(function () { // load exclude tree folders wpmfWatermarkExcludeTreeModule.initModule(); var sdir = '/'; /** * options * @type {{root: string, showroot: string, onclick: onclick, oncheck: oncheck, usecheckboxes: boolean, expandSpeed: number, collapseSpeed: number, expandEasing: null, collapseEasing: null, canselect: boolean}} */ var options = { 'root': '/', 'showroot': '//', 'onclick': function (elem, type, file) { }, 'oncheck': function (elem, checked, type, file) { if (file.substring(file.length - 1) === sdir) { file = file.substring(0, file.length - 1); } if (file.substring(0, 1) === sdir) { file = file.substring(1, file.length); } if (checked) { if (file !== "" && curFolders.indexOf(file) === -1) { curFolders.push(file); } } else { if (file !== "" && !$(elem).next().hasClass('pchecked')) { var temp = []; for (var i = 0; i < curFolders.length; i++) { var curDir = curFolders[i]; if (curDir.indexOf(file) !== 0) { temp.push(curDir); } } curFolders = temp; } else { var index = curFolders.indexOf(file); if (index > -1) { curFolders.splice(index, 1); } } } }, 'usecheckboxes': true, //can be true files dirs or false 'expandSpeed': 500, 'collapseSpeed': 500, 'expandEasing': null, 'collapseEasing': null, 'canselect': true }; /** * Main folder tree function for FTP import feature * @type {{init: init, open: open, close: close, getchecked: getchecked, getselected: getselected}} */ var methods = { /** * Folder tree init */ init: function () { $thisftp = $('#wpmf_foldertree'); if ($thisftp === 0) { return; } if (options.showroot !== '') { var checkboxes = ''; if (options.usecheckboxes === true || options.usecheckboxes === 'dirs') { checkboxes = '<input type="checkbox" /><span class="check" data-file="' + options.root + '" data-type="dir"></span>'; } $thisftp.html('<ul class="jaofiletree"><li class="drive directory collapsed selected">' + checkboxes + '<a href="#" data-file="' + options.root + '" data-type="dir">' + options.showroot + '</a></li></ul>'); } openfolderftp(options.root); }, /** * open folder tree by dir name * @param dir */ open: function (dir) { openfolderftp(dir); }, /** * close folder tree by dir name * @param dir */ close: function (dir) { closedirftp(dir); }, /** * Get checked * @returns {Array} */ getchecked: function () { var list = []; var ik = 0; $thisftp.find('input:checked + a').each(function () { list[ik] = { type: $(this).attr('data-type'), file: $(this).attr('data-file') }; ik++; var curDir = this.file; if (curDir.substring(curDir.length - 1) === sdir) { curDir = curDir.substring(0, curDir.length - 1); } if (curDir.substring(0, 1) === sdir) { curDir = curDir.substring(1, curDir.length); } if (curFolders.indexOf(curDir) === -1) { curFolders.push(curDir); } }); spanCheckInit(); return list; }, /** * Get selected * @returns {Array} */ getselected: function () { var list = []; var ik = 0; $thisftp.find('li.selected > a').each(function () { list[ik] = { type: $(this).attr('data-type'), file: $(this).attr('data-file') }; ik++; }); return list; } }; /** * open folder tree by dir name * @param dir dir name * @param callback */ var openfolderftp = function (dir, callback) { if ($thisftp.find('a[data-file="' + dir + '"]').parent().hasClass('expanded')) { return; } if ($thisftp.find('a[data-file="' + dir + '"]').parent().hasClass('expanded') || $thisftp.find('a[data-file="' + dir + '"]').parent().hasClass('wait')) { if (typeof callback === 'function') callback(); return; } var ret; ret = $.ajax({ url: ajaxurl, method: 'POST', data: { dir: dir, action: 'wpmf_get_folder', wpmf_list_import: wpmf_list_import, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, context: $thisftp, dataType: 'json', beforeSend: function () { $('#wpmf_foldertree').find('a[data-file="' + dir + '"]').parent().addClass('wait'); } }).done(function (datas) { selected_folder = dir; ret = '<ul class="jaofiletree" style="display: none">'; for (var ij = 0; ij < datas.length; ij++) { if (datas[ij].type === 'dir') { var classe = 'directory collapsed'; if (datas[ij].disable) { classe += ' folder_disabled'; } else { classe += ' folder_enabled'; } var isdir = '/'; } else { classe = 'file ext_' + datas[ij].ext; isdir = ''; } ret += '<li class="' + classe + '">'; if (options.usecheckboxes === true || (options.usecheckboxes === 'dirs' && datas[ij].type === 'dir') || (options.usecheckboxes === 'files' && datas[ij].type === 'file')) { if (!datas[ij].disable) { ret += '<input type="checkbox" data-file="' + dir + datas[ij].file + isdir + '" data-type="' + datas[ij].type + '" />'; } var testFolder = dir + datas[ij].file; if (testFolder.substring(0, 1) === '/') { testFolder = testFolder.substring(1, testFolder.length); } if (curFolders.indexOf(testFolder) > -1) { ret += '<span class="check checked" data-file="' + dir + datas[ij].file + isdir + '" data-type="' + datas[ij].type + '"></span>'; } else if (datas[ij].pchecked === true) { ret += '<span class="check pchecked" data-file="' + dir + datas[ij].file + isdir + '" data-type="' + datas[ij].type + '" ></span>'; } else { ret += '<span class="check" data-file="' + dir + datas[ij].file + isdir + '" data-type="' + datas[ij].type + '" ></span>'; } } ret += '<i class="zmdi zmdi-folder tree-status-folder" data-file="' + dir + datas[ij].file + isdir + '"></i>'; ret += '<a href="#" data-file="' + dir + datas[ij].file + isdir + '" data-type="' + datas[ij].type + '">' + datas[ij].file + '</a>'; ret += '</li>'; } ret += '</ul>'; $('#wpmf_foldertree').find('a[data-file="' + dir + '"]').parent().removeClass('wait').removeClass('collapsed').addClass('expanded'); $thisftp.find('.tree-status-folder[data-file="' + dir + '"]').removeClass('zmdi-folder').addClass('zmdi-folder-outline'); $('#wpmf_foldertree').find('a[data-file="' + dir + '"]').after(ret); $('#wpmf_foldertree').find('a[data-file="' + dir + '"]').next().slideDown(options.expandSpeed, options.expandEasing, function () { methods.getchecked(); if (typeof callback === 'function') callback(); }); seteventsftp(); wpmf_bindeventcheckbox($thisftp); if (options.usecheckboxes) { this.find('a[data-file="' + dir + '"]').parent().find('li input[type="checkbox"]').attr('checked', null); for (ij = 0; ij < datas.length; ij++) { testFolder = dir + datas[ij].file; if (testFolder.substring(0, 1) === '/') { testFolder = testFolder.substring(1, testFolder.length); } if (curFolders.indexOf(testFolder) > -1) { this.find('input[data-file="' + dir + datas[ij].file + isdir + '"]').attr('checked', 'checked'); } } if (this.find('input[data-file="' + dir + '"]').is(':checked')) { this.find('input[data-file="' + dir + '"]').parent().find('li input[type="checkbox"]').each(function () { $(this).prop('checked', true).trigger('change'); }); this.find('input[data-file="' + dir + '"]').parent().find('li span.check').addClass("checked"); } } }).done(function () { methods.getchecked(); }); wpmf_bindeventcheckbox($thisftp); }; /** * remember checkbox * @param $thisftp */ var wpmf_bindeventcheckbox = function ($thisftp) { $thisftp.find('li input[type="checkbox"]').bind('change', function () { var dir_checked = []; $('.directory span.check').each(function () { if ($(this).hasClass('checked')) { if ($(this).data('file') !== undefined) { dir_checked.push($(this).data('file')); } } }); var fchecked = []; fchecked.sort(); for (var i = 0; i < dir_checked.length; i++) { var curDir = dir_checked[i]; var valid = true; for (var j = 0; j < i; j++) { if (curDir.indexOf(dir_checked[j]) === 0) { valid = false; } } if (valid) { fchecked.push(curDir); } } wpmf_list_import = fchecked.toString(); }); }; /** * close folder tree by dir name * @param dir */ var closedirftp = function (dir) { $thisftp.find('a[data-file="' + dir + '"]').next().slideUp(options.collapseSpeed, options.collapseEasing, function () { $(this).remove(); }); $thisftp.find('a[data-file="' + dir + '"]').parent().removeClass('expanded').addClass('collapsed'); $thisftp.find('.tree-status-folder[data-file="' + dir + '"]').addClass('zmdi-folder').removeClass('zmdi-folder-outline'); seteventsftp(); }; /** * init event click to open/close folder tree */ var seteventsftp = function () { $thisftp = $('#wpmf_foldertree'); $thisftp.find('li a').unbind('click'); //Bind userdefined function on click an element $thisftp.find('li a').bind('click', function () { options.onclick(this, $(this).attr('data-type'), $(this).attr('data-file')); if (options.usecheckboxes && $(this).attr('data-type') === 'file') { $thisftp.find('li input[type="checkbox"]').attr('checked', null); $(this).prev(':not(:disabled)').attr('checked', 'checked'); $(this).prev(':not(:disabled)').trigger('check'); } if (options.canselect) { $thisftp.find('li').removeClass('selected'); $(this).parent().addClass('selected'); } return false; }); //Bind checkbox check/uncheck $thisftp.find('li input[type="checkbox"]').bind('change', function () { options.oncheck(this, $(this).is(':checked'), $(this).next().attr('data-type'), $(this).next().attr('data-file')); if ($(this).is(':checked')) { $(this).parent().find('li input[type="checkbox"]').attr('checked', 'checked'); $thisftp.trigger('check'); } else { $(this).parent().find('li input[type="checkbox"]').attr('checked', null); $thisftp.trigger('uncheck'); } }); //Bind for collapse or expand elements $thisftp.find('li.directory.collapsed a').bind('click', function () { methods.open($(this).attr('data-file')); return false; }); $thisftp.find('li.directory.expanded a').bind('click', function () { methods.close($(this).attr('data-file')); return false; }); }; /** * Folder tree function */ methods.init(); var spanCheckInit = function () { $("#wpmf_foldertree span.check").unbind('click').bind('click', function () { if ($(this).closest('li').hasClass('folder_disabled')) { return; } $(this).removeClass('pchecked'); $(this).toggleClass('checked'); if ($(this).hasClass('checked')) { $(this).prev().prop('checked', true).trigger('change'); } else { $(this).prev().prop('checked', false).trigger('change'); } setParentState(this); setChildrenState(this); }); }; var setParentState = function (obj) { var liObj = $(obj).parent().parent(); var noCheck = 0, noUncheck = 0, totalEl = 0; liObj.find('li span.check').each(function () { if ($(this).hasClass('checked')) { noCheck++; } else { noUncheck++; } totalEl++; }); if (parseInt(totalEl) === parseInt(noCheck)) { liObj.parent().children('span.check').addClass('pchecked'); liObj.parent().children('input[type="checkbox"]').prop('checked', true).trigger('change'); } else if (parseInt(totalEl) === parseInt(noUncheck)) { liObj.parent().children('span.check').removeClass('pchecked'); liObj.parent().children('input[type="checkbox"]').prop('checked', false).trigger('change'); } else { liObj.parent().children('span.check').addClass('pchecked'); liObj.parent().children('input[type="checkbox"]').prop('checked', false).trigger('change'); } if (liObj.parent().children('span.check').length > 0) { setParentState(liObj.parent().children('span.check')); } }; var setChildrenState = function (obj) { if ($(obj).hasClass('checked')) { $(obj).parent().find('li span.check').removeClass('pchecked').addClass("checked"); $(obj).parent().find('li input[type="checkbox"]').prop('checked', true).trigger('change'); } else { $(obj).parent().find('li span.check').removeClass("checked"); $(obj).parent().find('li input[type="checkbox"]').prop('checked', false).trigger('change'); } }; bindSelect(); /** * run watermark images * @param paged */ var watermarkRegeneration = function (paged) { if (!status_regenthumbs_watermark) { return; } $('.process_watermark_thumb_full').show(); $.ajax({ url: ajaxurl, method: 'POST', dataType: 'json', data: { action: 'wpmf_watermark_regeneration', paged: paged, wpmf_nonce: wpmfoption.vars.wpmf_nonce }, success: function (res) { var w = $('.process_watermark_thumb').data('w'); if (res.status === 'ok') { current_page_watermark = 1; $('.wpmf_watermark_regeneration').html(wpmfoption.l18n.regenerate_watermark_lb).show(); $('.process_watermark_thumb').data('w', 0).css('width', '100%'); $('.wpmf_watermark_regeneration').show(); $('.btn_stop_watermark').hide(); } if (res.status === 'limit' || typeof res === "undefined") { current_page_watermark = parseInt(paged) + 1; if (typeof res.percent !== "undefined") { var new_w = parseFloat(w) + parseFloat(res.percent); if (new_w > 100) new_w = 100; $('.process_watermark_thumb_full').show(); $('.process_watermark_thumb').data('w', new_w).css('width', new_w + '%'); } watermarkRegeneration(current_page_watermark); } else { $('.process_watermark_thumb_full').hide(); } } }); }; var renderWpGalleryShortcode = function() { var renderShortCode = '[wpmf_gallery wpmf_autoinsert="1"'; $('.wp_gallery_shortcode_field').each(function(){ var param, value = ''; if ($(this).hasClass('wp_shortcode_gallery_folder_id')) { param = 'wpmf_folder_id'; } else { param = $(this).data('param'); } if (param === 'autoplay') { if($('[name="wpmf_gallery_shortcode_cf[autoplay]"]:checked').length) { value = 1; } else { value = 0; } } else if(param === 'include_children') { if($('[name="wpmf_gallery_shortcode_cf[include_children]"]:checked').length) { value = 1; } else { value = 0; } } else if(param === 'crop_image') { if($('[name="wpmf_gallery_shortcode_cf[crop_image]"]:checked').length) { value = 1; } else { value = 0; } } else { value = $(this).val(); } renderShortCode += ' ' + param + '="' + value + '"'; }); renderShortCode += ']'; $('.wp_gallery_shortcode_input').val(renderShortCode); }; jQuery('[name="wpmf_gallery_shortcode_cf[border_color]"]').wpColorPicker({ // a callback to fire whenever the color changes to a valid color change: function(event, ui){ $('[name="wpmf_gallery_shortcode_cf[border_color]').val(ui.color.toString()).change(); }, // a callback to fire when the input is emptied or an invalid color clear: function() {}, // hide the color picker controls on load hide: true, // set total width width : 200, }); /** * Change gallery params in shortcode settings */ $('.wp_gallery_shortcode_field').on('change',function(){ renderWpGalleryShortcode(); }); $('.wp_gallery_shadow_field').on('change',function(){ var shadow_h = $('.wp_gallery_shadow_h_field').val(); var shadow_v = $('.wp_gallery_shadow_v_field').val(); var shadow_blur = $('.wp_gallery_shadow_blur_field').val(); var shadow_spread = $('.wp_gallery_shadow_spread_field').val(); var shadow_color = $('.wp_gallery_shadow_color_field').val(); var value = shadow_h + 'px ' + shadow_v + 'px ' + shadow_blur + 'px ' + shadow_spread + 'px ' + shadow_color; $('[name="wpmf_gallery_shortcode_cf[img_shadow]"]').val(value).change(); }); jQuery('.wp_gallery_shadow_color_field').wpColorPicker({ // a callback to fire whenever the color changes to a valid color change: function(event, ui){ $('.wp_gallery_shadow_color_field').val(ui.color.toString()).change(); }, // a callback to fire when the input is emptied or an invalid color clear: function() {}, // hide the color picker controls on load hide: true, // set total width width : 200, }); /** * Copy gallery shortcode */ $('.wpmf_copy_shortcode').on('click',function () { var input = $(this).data('input'); var shortcode_value = $('.' + input).val(); if (input === 'wp_gallery_shortcode_input') { wpmfFoldersModule.setClipboardText(shortcode_value, wpmf.l18n.success_copy_shortcode); } else { wpmfFoldersModule.setClipboardText(shortcode_value, wpmf.l18n.success_copy); } }); /** * run watermark image */ $('.wpmf_watermark_regeneration').on('click', function () { status_regenthumbs_watermark = true; if (status_regenthumbs_watermark) { $(this).html(wpmfoption.l18n.continue).hide(); $('.btn_stop_watermark').show(); watermarkRegeneration(current_page_watermark); } }); /* stop regenerate thumbnails */ $('.btn_stop_watermark').on('click', function () { status_regenthumbs_watermark = false; $('.wpmf_watermark_regeneration').show(); $(this).hide(); }); $('#wpmf_watermark_position_all').on('click', function () { if ($(this).is(':checked')) { $('.wpmf_image_watermark_apply').prop('checked', true); } else { $('.wpmf_image_watermark_apply').prop('checked', false); } }); /** * Open select logo watermark */ $('.wpmf_watermark_select_image').on('click', function () { if (typeof frame !== "undefined") { frame.open(); return; } // Create the media frame. var frame = wp.media({ // Tell the modal to show only images. library: { type: 'image' } }); // When an image is selected, run a callback. frame.on('select', function () { // Grab the selected attachment. var attachment = frame.state().get('selection').first().toJSON(); $('#wpmf_watermark_image').val(attachment.url); $('#wpmf_watermark_image_id').val(attachment.id); }); frame.open(); }); /** * clear logo watermark */ $('.wpmf_watermark_clear_image').on('click', function () { $('#wpmf_watermark_image').val(''); $('#wpmf_watermark_image_id').val(0); }); $('.gallery-slider-animation').on('click', function () { $('.gallery-slider-animation').removeClass('animation_selected'); if ($(this).data('value') === 'fade') { $('.img_slide').attr('src', wpmfoption.vars.image_path + 'slide.png'); } else { $('.img_slide').attr('src', wpmfoption.vars.image_path + 'slide_white.png'); } $('.wpmf_slider_animation').val($(this).data('value')).change(); $(this).addClass('animation_selected'); }); $('.delete_all_datas').on('click', function () { if ($(this).is(':checked')) { $('.delete_all_label').addClass('show').removeClass('hide'); } else { $('.delete_all_label').addClass('hide').removeClass('show'); } }); $('.wpmf-notice-dismiss').on('click', function () { $('.saved_infos').slideUp(); }); $('[name="sync_method"]').on('change', function () { if ($(this).val() === 'crontab') { $('.wpmf-crontab-url-help-wrap').addClass('show').removeClass('hide'); } else { $('.wpmf-crontab-url-help-wrap').addClass('hide').removeClass('show'); } }); $('.tabs.ju-menu-tabs .tab a.link-tab').on('click', function () { var href = $(this).attr('href').replace(/#/g, ''); window.location.hash='#' + href; setTimeout(function () { $('#' + href + ' ul.tabs').itabs(); }, 100); }); // JS FOR PHYSICAL FOLDERS $('input[name="wp-media-folder-options[auto_detect_tables]"]').change(function(element) { if (this.checked) { $('#table_replace').hide(); $('.full_search').show(); } else { $('#table_replace').show(); $('.full_search').hide(); } }); $('#sync_wpmf').click(function(e){ e.preventDefault(); $.ajax({ url: ajaxurl, type: 'POST', data : { action: 'wpmf_import_wpmf', nonce: wpmfoption.vars.wpmf_nonce } }); $(this).attr('disabled', 'disabled'); $('#sync_wpmf_doing').show(); }); // END JS FOR PHYSICAL FOLDERS }); })(jQuery);