Import legacy nurinda.co.id website
This commit is contained in:
1 parent
3f59bb9038
commit
6e21646ac4
13389 files changed
+3246690
No files matched your search
@@ -0,0 +1,107 @@
|
||||
jQuery(document).ready(function($) {
|
||||
|
||||
var files = $('.main-media-sync-page .media-sync-list-files');
|
||||
var tableHolder = files.find('.media-sync-table-holder');
|
||||
|
||||
// When directory checkbox is changed (direct click or running recursively with .trigger())
|
||||
files.find('.media-sync-list-file.is-dir .js-checkbox').on('change', function (event, type) {
|
||||
|
||||
// Show loading overlay
|
||||
if(type !== "recursive" && !tableHolder.hasClass('is-loading')) {
|
||||
tableHolder.addClass('is-loading');
|
||||
}
|
||||
|
||||
// Find parent row
|
||||
var row = $(this).closest('.media-sync-list-file');
|
||||
// Checked or not
|
||||
var checked = !!$(this).prop('checked');
|
||||
|
||||
// Fake delay to allow loading to show up immediately (before this)
|
||||
setTimeout(function () {
|
||||
|
||||
var childrenCheckboxes = row.siblings('[data-parent-id="' + row.prop('id') + '"]').find('.js-checkbox');
|
||||
|
||||
if (childrenCheckboxes && childrenCheckboxes.length > 0) {
|
||||
|
||||
$.each(childrenCheckboxes, function (index, checkbox) {
|
||||
// If not disabled
|
||||
if (!$(checkbox).prop('disabled')) {
|
||||
// Check / un-check and trigger "change" event to run for inner folders
|
||||
$(checkbox).prop('checked', checked).trigger('change', ['recursive']);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Update "selected items" counter
|
||||
files.find('.js-media-sync-selected-count').html(files.find('.is-file.is-in-db-no input[type="checkbox"]:checked').length);
|
||||
|
||||
// Hide loading overlay
|
||||
if(type !== "recursive" && tableHolder.hasClass('is-loading')) {
|
||||
tableHolder.removeClass('is-loading');
|
||||
}
|
||||
}, 0);
|
||||
});
|
||||
|
||||
// Handle "select all" checkboxes events
|
||||
var selectAllCheckboxes = files.find('.check-column-all input[type="checkbox"]');
|
||||
|
||||
// Cancel other stuff added to this element and click event (from WP), because it's quite slow with all of that
|
||||
selectAllCheckboxes.on('click', function(e) {
|
||||
e.stopPropagation();
|
||||
});
|
||||
|
||||
selectAllCheckboxes.on('change', function(e) {
|
||||
e.stopPropagation();
|
||||
|
||||
// Checked or not
|
||||
var checked = !!$(this).prop('checked');
|
||||
|
||||
// Check other "select all" checkbox (there is one at the top and one at the bottom)
|
||||
selectAllCheckboxes.prop('checked', checked);
|
||||
|
||||
// Check / un-check all first level items and trigger "change" event to run for inner folders
|
||||
$.each(files.find('.media-sync-list-file.level-1 .js-checkbox'), function (index, checkbox) {
|
||||
$(checkbox).prop('checked', checked).trigger('change');
|
||||
});
|
||||
});
|
||||
|
||||
// Update "selected items" counter when selecting individual files
|
||||
files.find('.media-sync-list-file.is-file .js-checkbox').on('change', function () {
|
||||
// Update "selected items" counter
|
||||
files.find('.js-media-sync-selected-count').html(files.find('.is-file.is-in-db-no input[type="checkbox"]:checked').length);
|
||||
});
|
||||
|
||||
|
||||
// Expand / Collapse folders
|
||||
files.find('.media-sync-list-file.is-dir .js-toggle-row').on('click', function () {
|
||||
// Find parent row
|
||||
var row = $(this).closest('.media-sync-list-file');
|
||||
|
||||
// If it's expanded or not
|
||||
var expanded = row.hasClass('with-expanded-children');
|
||||
|
||||
if (expanded) {
|
||||
row.removeClass('with-expanded-children');
|
||||
} else {
|
||||
row.addClass('with-expanded-children');
|
||||
}
|
||||
|
||||
// Each child row
|
||||
$.each(row.siblings('[data-parent-id="' + row.prop('id') + '"]'), function () {
|
||||
|
||||
// If child is dir with expanded children
|
||||
if ($(this).hasClass('is-dir') && $(this).hasClass('with-expanded-children')) {
|
||||
// Trigger click to collapse inner children
|
||||
$(this).find('.js-toggle-row').trigger('click');
|
||||
}
|
||||
|
||||
if (expanded) {
|
||||
$(this).removeClass('is-expanded');
|
||||
} else {
|
||||
$(this).addClass('is-expanded');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
Reference in new issue
Block a user