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*}
-
{if !empty($elements) }
-
-