diff --git a/admin/batch_manager_global.php b/admin/batch_manager_global.php index 937dba560..7a8680244 100644 --- a/admin/batch_manager_global.php +++ b/admin/batch_manager_global.php @@ -430,157 +430,17 @@ $template->set_filenames(array('batch_manager_global' => 'batch_manager_global.t $base_url = get_root_url().'admin.php'; -$prefilters = array( - array('ID' => 'caddie', 'NAME' => l10n('Caddie')), - array('ID' => 'favorites', 'NAME' => l10n('Your favorites')), - array('ID' => 'last_import', 'NAME' => l10n('Last import')), - array('ID' => 'no_album', 'NAME' => l10n('With no album').' ('.l10n('Orphans').')'), - array('ID' => 'no_tag', 'NAME' => l10n('With no tag')), - array('ID' => 'duplicates', 'NAME' => l10n('Duplicates')), - array('ID' => 'all_photos', 'NAME' => l10n('All')) -); - -if ($conf['enable_synchronization']) -{ - $prefilters[] = array('ID' => 'no_virtual_album', 'NAME' => l10n('With no virtual album')); - $prefilters[] = array('ID' => 'no_sync_md5sum', 'NAME' => l10n('With no checksum')); -} - -function UC_name_compare($a, $b) -{ - return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); -} - -$prefilters = trigger_change('get_batch_manager_prefilters', $prefilters); - -// Sort prefilters by localized name. -usort($prefilters, function ($a, $b) { - return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); -}); - -$template->assign( - array( - 'conf_checksum_compute_blocksize' => $conf['checksum_compute_blocksize'], - 'prefilters' => $prefilters, - 'filter' => $_SESSION['bulk_manager_filter'], - 'selection' => $collection, - 'all_elements' => $page['cat_elements_id'], - 'START' => $page['start'], - 'PWG_TOKEN' => get_pwg_token(), - 'U_DISPLAY'=>$base_url.get_query_string_diff(array('display')), - 'F_ACTION'=>$base_url.get_query_string_diff(array('cat','start','tag','filter')), - 'ADMIN_PAGE_TITLE' => l10n('Batch Manager'), - ) - ); - -if (isset($page['no_md5sum_number'])) -{ - $template->assign( - array( - 'NB_NO_MD5SUM' => $page['no_md5sum_number'], - ) - ); -} else { - $template->assign('NB_NO_MD5SUM', ''); -} +include(PHPWG_ROOT_PATH.'admin/include/batch_manager_filters.inc.php'); // +-----------------------------------------------------------------------+ // | caddie options | // +-----------------------------------------------------------------------+ $template->assign('IN_CADDIE', 'caddie' == $page['prefilter']); - // +-----------------------------------------------------------------------+ // | global mode form | // +-----------------------------------------------------------------------+ -// privacy level -foreach ($conf['available_permission_levels'] as $level) -{ - $level_options[$level] = l10n(sprintf('Level %d', $level)); - - if (0 == $level) - { - $level_options[$level] = l10n('Everybody'); - } -} -$template->assign( - array( - 'filter_level_options'=> $level_options, - 'filter_level_options_selected' => isset($_SESSION['bulk_manager_filter']['level']) - ? $_SESSION['bulk_manager_filter']['level'] - : 0, - ) - ); - -// tags -$filter_tags = array(); - -if (!empty($_SESSION['bulk_manager_filter']['tags'])) -{ - $query = ' -SELECT - id, - name - FROM '.TAGS_TABLE.' - WHERE id IN ('.implode(',', $_SESSION['bulk_manager_filter']['tags']).') -;'; - - $filter_tags = get_taglist($query); -} - -$template->assign('filter_tags', $filter_tags); - -// in the filter box, which category to select by default -$selected_category = array(); - -if (isset($_SESSION['bulk_manager_filter']['category'])) -{ - $selected_category = array($_SESSION['bulk_manager_filter']['category']); -} -else -{ - // we need to know the category in which the last photo was added - $query = ' -SELECT category_id - FROM '.IMAGE_CATEGORY_TABLE.' - ORDER BY image_id DESC - LIMIT 1 -;'; - $result = pwg_query($query); - if (pwg_db_num_rows($result) > 0) - { - $row = pwg_db_fetch_assoc($result); - $selected_category[] = $row['category_id']; - } -} - -$template->assign('filter_category_selected', $selected_category); - -// Dissociate from a category : categories listed for dissociation can only -// represent virtual links. We can't create orphans. Links to physical -// categories can't be broken. -$associated_categories = array(); - -if (count($page['cat_elements_id']) > 0) -{ - $query = ' -SELECT - DISTINCT(category_id) AS id - FROM '.IMAGE_CATEGORY_TABLE.' AS ic - JOIN '.IMAGES_TABLE.' AS i ON i.id = ic.image_id - WHERE ic.image_id IN ('.implode(',', $page['cat_elements_id']).') - AND ( - ic.category_id != i.storage_category_id - OR i.storage_category_id IS NULL - ) -;'; - - $associated_categories = query2array($query, 'id', 'id'); -} - -$template->assign('associated_categories', $associated_categories); - if (count($page['cat_elements_id']) > 0) { // remove tags diff --git a/admin/batch_manager_unit.php b/admin/batch_manager_unit.php index dd1baa197..e3cf6f331 100644 --- a/admin/batch_manager_unit.php +++ b/admin/batch_manager_unit.php @@ -149,127 +149,13 @@ $template->assign( 'PWG_TOKEN' => get_pwg_token(), ) ); - //prefilter - $prefilters = array( - array('ID' => 'caddie', 'NAME' => l10n('Caddie')), - array('ID' => 'favorites', 'NAME' => l10n('Your favorites')), - array('ID' => 'last_import', 'NAME' => l10n('Last import')), - array('ID' => 'no_album', 'NAME' => l10n('With no album').' ('.l10n('Orphans').')'), - array('ID' => 'no_tag', 'NAME' => l10n('With no tag')), - array('ID' => 'duplicates', 'NAME' => l10n('Duplicates')), - array('ID' => 'all_photos', 'NAME' => l10n('All')) - ); - - if ($conf['enable_synchronization']) - { - $prefilters[] = array('ID' => 'no_virtual_album', 'NAME' => l10n('With no virtual album')); - $prefilters[] = array('ID' => 'no_sync_md5sum', 'NAME' => l10n('With no checksum')); - } - - function UC_name_compare($a, $b) - { - return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); - } - - $prefilters = trigger_change('get_batch_manager_prefilters', $prefilters); - - // Sort prefilters by localized name. - usort($prefilters, function ($a, $b) { - return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); - }); - - $template->assign( - array( - 'conf_checksum_compute_blocksize' => $conf['checksum_compute_blocksize'], - 'prefilters' => $prefilters, - 'filter' => $_SESSION['bulk_manager_filter'], - 'selection' => $collection, - 'all_elements' => $page['cat_elements_id'], - 'START' => $page['start'], - 'U_DISPLAY'=>$base_url.get_query_string_diff(array('display')), - 'F_ACTION'=>$base_url.get_query_string_diff(array('cat','start','tag','filter')), - ) - ); - - if (isset($page['no_md5sum_number'])) - { - $template->assign( - array( - 'NB_NO_MD5SUM' => $page['no_md5sum_number'], - ) - ); - } else { - $template->assign('NB_NO_MD5SUM', ''); - } - - - // privacy level - foreach ($conf['available_permission_levels'] as $level) - { - $level_options[$level] = l10n(sprintf('Level %d', $level)); - - if (0 == $level) - { - $level_options[$level] = l10n('Everybody'); - } - } - $template->assign( - array( - 'filter_level_options'=> $level_options, - 'filter_level_options_selected' => isset($_SESSION['bulk_manager_filter']['level']) - ? $_SESSION['bulk_manager_filter']['level'] - : 0, - ) - ); - - // tags - $filter_tags = array(); - - if (!empty($_SESSION['bulk_manager_filter']['tags'])) - { - $query = ' - SELECT - id, - name - FROM '.TAGS_TABLE.' - WHERE id IN ('.implode(',', $_SESSION['bulk_manager_filter']['tags']).') - ;'; - - $filter_tags = get_taglist($query); - } - - $template->assign('filter_tags', $filter_tags); - - // in the filter box, which category to select by default - $selected_category = array(); - - if (isset($_SESSION['bulk_manager_filter']['category'])) - { - $selected_category = array($_SESSION['bulk_manager_filter']['category']); - } - else - { - // we need to know the category in which the last photo was added - $query = ' - SELECT category_id - FROM '.IMAGE_CATEGORY_TABLE.' - ORDER BY image_id DESC - LIMIT 1 - ;'; - $result = pwg_query($query); - if (pwg_db_num_rows($result) > 0) - { - $row = pwg_db_fetch_assoc($result); - $selected_category[] = $row['category_id']; - } - } - - $template->assign('filter_category_selected', $selected_category); - + include(PHPWG_ROOT_PATH.'admin/include/batch_manager_filters.inc.php'); // +-----------------------------------------------------------------------+ // | global mode thumbnails | // +-----------------------------------------------------------------------+ +$template->assign('ACTIVE_PLUGINS', array_keys($pwg_loaded_plugins)); + // how many items to display on this page if (!empty($_GET['display'])) { @@ -285,8 +171,7 @@ else { $page['nb_images'] = 5; } -$template->assign('per_page', $conf['batch_manager_images_per_page_unit']); - +$template->assign('per_page', $page['nb_images']); if (count($page['cat_elements_id']) > 0) { @@ -345,8 +230,21 @@ SELECT * '.$conf['order_by'].' LIMIT '.$page['nb_images'].' OFFSET '.$page['start'].' ;'; - $result = pwg_query($query); - + // $result = pwg_query($query); + $images = query2array($query); + $added_by_ids = array_unique(array_column($images, 'added_by')); + if (count($added_by_ids) > 0) + { + $query = ' +SELECT + '.$conf['user_fields']['username'].' AS username, + '.$conf['user_fields']['id'].' AS id + FROM '.USERS_TABLE.' + WHERE '.$conf['user_fields']['id'].' IN ( '.implode(',', $added_by_ids).' ) +;'; + $added_by_username_of = query2array($query, 'id', 'username'); + } + $storage_category_id = null; if (!empty($row['storage_category_id'])) { @@ -359,9 +257,9 @@ SELECT * "2" => "2", "4" => "1", "8" => "0", -]; + ]; - while ($row = pwg_db_fetch_assoc($result)) + foreach ($images as $row) { $element_ids[] = $row['id']; @@ -470,7 +368,7 @@ SELECT $admin_url_start = $admin_photo_base_url.'-properties'; $admin_url_start.= isset($row['cat_id']) ? '&cat_id='.$row['cat_id'] : ''; $selected_level = isset($row['level']) ? $row['level'] : $row['level']; - + $template->append( 'elements', array_merge($row, @@ -493,9 +391,9 @@ SELECT 'FILESIZE' => l10n('%.2f MB',$row['filesize']/1024), 'REGISTRATION_DATE' => format_date($row['date_available']), 'EXT' => l10n('%s file type',end($extTab)), - 'POST_DATE' => l10n('Posted the %s', format_date($row['date_available'], array('day', 'month', 'year'))), + 'POST_DATE' => l10n('Added on %s', format_date($row['date_available'], array('day', 'month', 'year'))), 'AGE' => l10n(ucfirst(time_since($row['date_available'], 'year'))), - 'ADDED_BY' => l10n('Added by %s', $row['added_by']), + 'ADDED_BY' => l10n('Added by %s', $added_by_username_of[ $row['added_by'] ] ?? l10n('N/A')), 'STATS' => l10n('Visited %d times', $row['hit']), 'FILE' => l10n('%s', $row['file']), 'related_categories' => $related_categories, @@ -515,16 +413,15 @@ SELECT )); } - $template->assign('ACTIVE_PLUGINS', array_keys($pwg_loaded_plugins)); - $template->assign(array( 'ELEMENT_IDS' => implode(',', $element_ids), - 'CACHE_KEYS' => get_admin_client_cache_keys(array('tags')), - - )); - + )); } +$template->assign(array( + 'CACHE_KEYS' => get_admin_client_cache_keys(array('tags', 'categories')), +)); + trigger_notify('loc_end_element_set_unit'); // +-----------------------------------------------------------------------+ diff --git a/admin/include/batch_manager_filters.inc.php b/admin/include/batch_manager_filters.inc.php new file mode 100644 index 000000000..f6980d003 --- /dev/null +++ b/admin/include/batch_manager_filters.inc.php @@ -0,0 +1,142 @@ + 'caddie', 'NAME' => l10n('Caddie')), + array('ID' => 'favorites', 'NAME' => l10n('Your favorites')), + array('ID' => 'last_import', 'NAME' => l10n('Last import')), + array('ID' => 'no_album', 'NAME' => l10n('With no album').' ('.l10n('Orphans').')'), + array('ID' => 'no_tag', 'NAME' => l10n('With no tag')), + array('ID' => 'duplicates', 'NAME' => l10n('Duplicates')), + array('ID' => 'all_photos', 'NAME' => l10n('All')) + ); + + if ($conf['enable_synchronization']) + { + $prefilters[] = array('ID' => 'no_virtual_album', 'NAME' => l10n('With no virtual album')); + $prefilters[] = array('ID' => 'no_sync_md5sum', 'NAME' => l10n('With no checksum')); + } + + function UC_name_compare($a, $b) + { + return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); + } + + $prefilters = trigger_change('get_batch_manager_prefilters', $prefilters); + + // Sort prefilters by localized name. + usort($prefilters, function ($a, $b) { + return strcmp(strtolower($a['NAME']), strtolower($b['NAME'])); + }); + + $template->assign( + array( + 'conf_checksum_compute_blocksize' => $conf['checksum_compute_blocksize'], + 'prefilters' => $prefilters, + 'filter' => $_SESSION['bulk_manager_filter'], + 'selection' => $collection, + 'all_elements' => $page['cat_elements_id'], + 'START' => $page['start'], + 'PWG_TOKEN' => get_pwg_token(), + 'U_DISPLAY'=>$base_url.get_query_string_diff(array('display')), + 'F_ACTION'=>$base_url.get_query_string_diff(array('cat','start','tag','filter')), + 'ADMIN_PAGE_TITLE' => l10n('Batch Manager'), + ) + ); + + if (isset($page['no_md5sum_number'])) + { + $template->assign( + array( + 'NB_NO_MD5SUM' => $page['no_md5sum_number'], + ) + ); + } else { + $template->assign('NB_NO_MD5SUM', ''); + } + + // privacy level + foreach ($conf['available_permission_levels'] as $level) + { + $level_options[$level] = l10n(sprintf('Level %d', $level)); + + if (0 == $level) + { + $level_options[$level] = l10n('Everybody'); + } + } + $template->assign( + array( + 'filter_level_options'=> $level_options, + 'filter_level_options_selected' => isset($_SESSION['bulk_manager_filter']['level']) + ? $_SESSION['bulk_manager_filter']['level'] + : 0, + ) + ); + + // tags + $filter_tags = array(); + + if (!empty($_SESSION['bulk_manager_filter']['tags'])) + { + $query = ' + SELECT + id, + name + FROM '.TAGS_TABLE.' + WHERE id IN ('.implode(',', $_SESSION['bulk_manager_filter']['tags']).') + ;'; + + $filter_tags = get_taglist($query); + } + + $template->assign('filter_tags', $filter_tags); + + // in the filter box, which category to select by default + $selected_category = array(); + if (isset($_SESSION['bulk_manager_filter']['category'])) + { + $selected_category = array($_SESSION['bulk_manager_filter']['category']); + } + else + { + // we need to know the category in which the last photo was added + $query = ' + SELECT category_id + FROM '.IMAGE_CATEGORY_TABLE.' + ORDER BY image_id DESC + LIMIT 1 + ;'; + $result = pwg_query($query); + if (pwg_db_num_rows($result) > 0) + { + $row = pwg_db_fetch_assoc($result); + $selected_category[] = $row['category_id']; + } + } + + $template->assign('filter_category_selected', $selected_category); + + // Dissociate from a category : categories listed for dissociation can only + // represent virtual links. We can't create orphans. Links to physical + // categories can't be broken. + $associated_categories = array(); + + if (count($page['cat_elements_id']) > 0) + { + $query = ' +SELECT + DISTINCT(category_id) AS id + FROM '.IMAGE_CATEGORY_TABLE.' AS ic + JOIN '.IMAGES_TABLE.' AS i ON i.id = ic.image_id + WHERE ic.image_id IN ('.implode(',', $page['cat_elements_id']).') + AND ( + ic.category_id != i.storage_category_id + OR i.storage_category_id IS NULL + ) +;'; + + $associated_categories = query2array($query, 'id', 'id'); + } + + $template->assign('associated_categories', $associated_categories); +?> \ No newline at end of file diff --git a/admin/themes/default/js/batchManagerUnit.js b/admin/themes/default/js/batchManagerUnit.js index e3ad3dcd9..df543a186 100644 --- a/admin/themes/default/js/batchManagerUnit.js +++ b/admin/themes/default/js/batchManagerUnit.js @@ -1,13 +1,13 @@ $(document).ready(function() { // Detect unsaved changes on any inputs - var user_interacted = false; + let user_interacted = false; $('input, textarea, select').on('focus', function() { user_interacted = true; }); $('input, textarea').on('input', function() { - var pictureId = $(this).parents("fieldset").data("image_id"); + const pictureId = $(this).parents("fieldset").data("image_id"); if (user_interacted == true) { showUnsavedLocalBadge(pictureId); } @@ -15,14 +15,14 @@ $(document).ready(function() { // Specific handler for datepicker inputs $('input[data-datepicker]').on('change', function() { - var pictureId = $(this).parents("fieldset").data("image_id"); + const pictureId = $(this).parents("fieldset").data("image_id"); if (user_interacted == true) { showUnsavedLocalBadge(pictureId); } }); $('select').on('change', function() { - var pictureId = $(this).parents("fieldset").data("image_id"); + const pictureId = $(this).parents("fieldset").data("image_id"); if (user_interacted == true) { showUnsavedLocalBadge(pictureId); } @@ -30,13 +30,13 @@ $(document).ready(function() { $('.related-categories-container .remove-item, .datepickerDelete').on('click', function() { user_interacted = true; - var pictureId = $(this).parents("fieldset").data("image_id"); + const pictureId = $(this).parents("fieldset").data("image_id"); showUnsavedLocalBadge(pictureId); }); // METADATA SYNC $('.action-sync-metadata').on('click', function(event) { - var pictureId = $(this).parents("fieldset").data("image_id"); + const pictureId = $(this).parents("fieldset").data("image_id"); $.confirm({ title: str_meta_warning, draggable: false, @@ -66,7 +66,7 @@ $(document).ready(function() { }, dataType: 'json', success: function(data) { - var isOk = data.stat && data.stat === "ok"; + const isOk = data.stat && data.stat === "ok"; if (isOk) { updateBlock(pictureId); } else { @@ -82,15 +82,15 @@ $(document).ready(function() { } }, cancel: { - text: str_meta_no + text: str_no } } }); }); // DELETE $('.action-delete-picture').on('click', function(event) { - var $fieldset = $(this).parents("fieldset"); - var pictureId = $fieldset.data("image_id"); + const $fieldset = $(this).parents("fieldset"); + const pictureId = $fieldset.data("image_id"); $.confirm({ title: str_are_you_sure, draggable: false, @@ -109,7 +109,7 @@ $(document).ready(function() { text: str_yes, btnClass: 'btn-red', action: function() { - var image_ids = [pictureId]; + const image_ids = [pictureId]; (function(ids) { $.ajax({ type: 'POST', @@ -121,7 +121,7 @@ $(document).ready(function() { }, dataType: 'json', success: function(data) { - var isOk = data.stat && data.stat === "ok"; + const isOk = data.stat && data.stat === "ok"; if (isOk) { $fieldset.remove(); $('.pagination-container').css({ @@ -151,8 +151,8 @@ $(document).ready(function() { // VALIDATION //Unit Save $('.action-save-picture').on('click', function(event) { - var $fieldset = $(this).parents("fieldset"); - var pictureId = $fieldset.data("image_id"); + const $fieldset = $(this).parents("fieldset"); + const pictureId = $fieldset.data("image_id"); saveChanges(pictureId); }); //Global Save @@ -220,7 +220,7 @@ function check_related_categories(pictureId) { } function updateUnsavedGlobalBadge() { - var visibleLocalUnsavedCount = $(".local-unsaved-badge").filter(function() { + const visibleLocalUnsavedCount = $(".local-unsaved-badge").filter(function() { return $(this).css('display') === 'block'; }).length; if (visibleLocalUnsavedCount > 0) { @@ -258,7 +258,7 @@ function hideErrorLocalBadge(pictureId) { } //Succes badge function updateSuccessGlobalBadge() { - var visibleLocalSuccesCount = $(".local-success-badge").filter(function() { + const visibleLocalSuccesCount = $(".local-success-badge").filter(function() { return $(this).css('display') === 'block'; }).length; if (visibleLocalSuccesCount > 0) { @@ -269,7 +269,7 @@ function updateSuccessGlobalBadge() { } function showSuccessLocalBadge(pictureId) { - var badge = $("#picture-" + pictureId + " .local-success-badge"); + const badge = $("#picture-" + pictureId + " .local-success-badge"); badge.css({ 'display': 'block', 'opacity': 1 @@ -286,7 +286,7 @@ function hideSuccesLocalBadge(pictureId) { } function showSuccesGlobalBadge() { - var badge = $(".global-succes-badge"); + const badge = $(".global-succes-badge"); badge.css({ 'display': 'block', 'opacity': 1 @@ -303,7 +303,7 @@ function hideSuccesGlobalBadge() { } function showMetasyncSuccesBadge(pictureId) { - var badge = $("#picture-" + pictureId + " .metasync-success"); + const badge = $("#picture-" + pictureId + " .metasync-success"); badge.css({ 'display': 'block', 'opacity': 1 @@ -340,21 +340,21 @@ function saveChanges(pictureId) { if ($("#picture-" + pictureId + " .local-unsaved-badge").css('display') === 'block') { disableLocalButton(pictureId); // Retrieve Infos - var name = $("#name-" + pictureId).val(); - var author = $("#author-" + pictureId).val(); - var date_creation = $("#date_creation-" + pictureId).val(); - var comment = $("#description-" + pictureId).val(); - var level = $("#level-" + pictureId + " option:selected").val(); + const name = $("#picture-" + pictureId +" #name").val(); + const author = $("#picture-" + pictureId +" #author").val(); + const date_creation = $("#picture-" + pictureId + " #date_creation").val(); + const comment = $("#picture-" + pictureId +" #description").val(); + const level = $("#picture-" + pictureId +" #level" + " option:selected").val(); // Get Categories const categories = get_related_category(pictureId); - var categoriesStr = categories.join(';'); + let categoriesStr = categories.join(';'); // Get Tags - var tags = []; - $("#tags-" + pictureId + " option").each(function() { - var tagId = $(this).val().replace(/~~/g, ''); + let tags = []; + $("#picture-" + pictureId +" #tags" + " option").each(function() { + let tagId = $(this).val().replace(/~~/g, ''); tags.push(tagId); }); - var tagsStr = tags.join(','); + let tagsStr = tags.join(','); $.ajax({ url: 'ws.php?format=json', method: 'POST', @@ -394,37 +394,39 @@ function saveChanges(pictureId) { function saveAllChanges() { $("fieldset").each(function() { - var pictureId = $(this).data("image_id"); + const pictureId = $(this).data("image_id"); saveChanges(pictureId); }); } //PLUGINS SAVE METHOD -var pluginFunctionMap = {}; +const pluginFunctionMap = {}; function pluginFunctionMapInit(activePlugins) { activePlugins.forEach(function(pluginId) { - var functionName = pluginId + '_batchManagerSave'; + const functionName = pluginId + '_batchManagerSave'; if (typeof window[functionName] === 'function') { pluginFunctionMap[pluginId] = window[functionName]; - } else { - console.log('Function not found during initialization: ' + functionName); - } + } + // else { + // console.log('Function not found during initialization: ' + functionName); + // } }); } function pluginSaveLoop(activePlugins) { if (activePlugins.length === 0) { - console.log("No plugins to process in pluginSaveLoop."); + // console.log("No plugins to process in pluginSaveLoop."); return; } activePlugins.forEach(function(pluginId) { - var saveFunction = pluginFunctionMap[pluginId]; + const saveFunction = pluginFunctionMap[pluginId]; if (typeof saveFunction === 'function') { saveFunction(); - console.log('Executed function for plugin: ' + pluginId); - } else { - console.log('Function not found for plugin: ' + pluginId); - } + // console.log('Executed function for plugin: ' + pluginId); + } + // else { + // console.log('Function not found for plugin: ' + pluginId); + // } }); } //UPDATE BLOCKS (Yet to be implemented) @@ -468,12 +470,12 @@ function updateBlock(pictureId) { } //TAGS UPDATE Yet to be implemented // function updateTags(tagsData, pictureId) { -// var $tagsUpdate = $('#tags-'+pictureId).selectize({ +// const $tagsUpdate = $('#tags-'+pictureId).selectize({ // create: true, // persist: false // }); -// var selectizeTags = $tagsUpdate[0].selectize; -// var transformedData = tagsData.map(function(item) { +// const selectizeTags = $tagsUpdate[0].selectize; +// const transformedData = tagsData.map(function(item) { // return { // value: item.id, // text: item.name @@ -483,24 +485,4 @@ function updateBlock(pictureId) { // selectizeTags.clearOptions(); // selectizeTags.addOption(transformedData); // selectizeTags.refreshOptions(true); -// }; - -//UNRELEASED LEVEL SLIDER -// $(function () { -// $('.privacy-filter-slider').each(function() { -// var id = $(this).attr('id'); -// $(this).slider({ -// range: 'min', -// value: $(this).attr('value'), -// min: 0, -// max: 4, -// slide: function (event, ui) { -// updateCertificationFilterLabel(ui.value, id); -// } -// }); -// }); -// }); -// function updateCertificationFilterLabel(value, id) { -// let label = strs_privacy[value]; -// $('#' + id + ' .privacy').html(label); -// } \ No newline at end of file +// }; \ No newline at end of file diff --git a/admin/themes/default/template/batch_manager_global.tpl b/admin/themes/default/template/batch_manager_global.tpl index c1feda680..fd8cef127 100644 --- a/admin/themes/default/template/batch_manager_global.tpl +++ b/admin/themes/default/template/batch_manager_global.tpl @@ -4,15 +4,6 @@ {combine_script id='common' load='footer' path='admin/themes/default/js/common.js'} -{combine_script id='jquery.ui.slider' require='jquery.ui' load='async' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'} -{combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} -{combine_script id='doubleSlider' load='footer' require='jquery.ui.slider' path='admin/themes/default/js/doubleSlider.js'} - -{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'} - -{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} -{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} - {combine_script id='jquery.progressBar' load='async' path='themes/default/js/plugins/jquery.progressbar.min.js'} {combine_script id='jquery.ajaxmanager' load='async' path='themes/default/js/plugins/jquery.ajaxmanager.js'} diff --git a/admin/themes/default/template/batch_manager_unit.tpl b/admin/themes/default/template/batch_manager_unit.tpl index dbf1de563..e786a183b 100644 --- a/admin/themes/default/template/batch_manager_unit.tpl +++ b/admin/themes/default/template/batch_manager_unit.tpl @@ -4,17 +4,6 @@ {combine_script id='jquery.sort' load='footer' path='themes/default/js/plugins/jquery.sort.js'} -{combine_script id='LocalStorageCache' load='footer' path='admin/themes/default/js/LocalStorageCache.js'} - -{combine_script id='jquery.selectize' load='header' path='themes/default/js/plugins/selectize.min.js'} -{combine_css id='jquery.selectize' path="themes/default/js/plugins/selectize.{$themeconf.colorscheme}.css"} -{combine_script id='doubleSlider' load='footer' require='jquery.ui.slider' path='admin/themes/default/js/doubleSlider.js'} - -{combine_script id='jquery.ui.slider' require='jquery.ui' load='header' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'} -{combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"} - -{combine_script id='jquery.selectize' load='footer' path='themes/default/js/plugins/selectize.min.js'} - {combine_script id='jquery.confirm' load='footer' require='jquery' path='themes/default/js/plugins/jquery-confirm.min.js'} {combine_css path="themes/default/js/plugins/jquery-confirm.min.css"} @@ -23,18 +12,47 @@ {footer_script} {* *} var activePlugins = {$ACTIVE_PLUGINS|json_encode}; -(function(){ +{if isset($CACHE_KEYS)} {* *} var tagsCache = new TagsCache({ serverKey: '{$CACHE_KEYS.tags}', serverId: '{$CACHE_KEYS._hash}', rootUrl: '{$ROOT_URL}' }); - tagsCache.selectize(jQuery('[data-selectize=tags]'), { lang: { 'Add': '{'Create'|translate}' }}); +{* *} +window.categoriesCache = new CategoriesCache({ + serverKey: '{$CACHE_KEYS.categories}', + serverId: '{$CACHE_KEYS._hash}', + rootUrl: '{$ROOT_URL}' + }); + + var associated_categories = {$associated_categories|@json_encode}; + + categoriesCache.selectize(jQuery('[data-selectize=categories]'), { + filter: function(categories, options) { + if (this.name == 'dissociate') { + var filtered = jQuery.grep(categories, function(cat) { + return !!associated_categories[cat.id]; + }); + + if (filtered.length > 0) { + options.default = filtered[0].id; + } + + return filtered; + } + else { + return categories; + } + } + }); +{/if} + + {* *} jQuery(function(){ {* *} jQuery('[data-datepicker]').pwgDatepicker({ @@ -54,9 +72,7 @@ str_no = '{'No, I have changed my mind'|translate|@escape:'javascript'}'; str_orphan = '{'This photo is an orphan'|@translate|escape:javascript}'; str_meta_warning = '{'Warning ! Unsaved changes will be lost'|translate|escape:javascript}'; str_meta_yes = '{'I want to continue'|translate|escape:javascript}' -str_meta_no = '{'No, I have changed my mind'|translate|escape:javascript}' -}()); const strs_privacy = { "0" : "{$level_options[8]}", "1" : "{$level_options[4]}", @@ -80,22 +96,23 @@ let b_current_picture_id; {/if} {*Filters*} -
+ {include file='include/batch_manager_filter.inc.tpl' title={'Batch Manager Filter'|@translate} searchPlaceholder={'Filters'|@translate}}
- Liste + {'List'|@translate} {count($all_elements)} {if !empty($elements) } -
-
- {'photos per page'|@translate} : - 5 - 10 - 50 +
+
+ {'photos per page'|@translate} : + 5 + 10 + 50
+
{if !empty($navbar) } @@ -105,11 +122,11 @@ let b_current_picture_id;
{foreach from=$elements item=element} - {footer_script} - all_related_categories_ids.push({ id: {$element.ID}, cat_ids: {$element.related_category_ids} }); + {footer_script} + all_related_categories_ids.push({ id: {$element.ID}, cat_ids: {$element.related_category_ids} }); url_delete_{$element.id} = '{$element.U_DELETE}'; {/footer_script} -