diff --git a/admin/themes/default/js/batchManagerFilter.js b/admin/themes/default/js/batchManagerFilter.js new file mode 100644 index 000000000..bcef0ed99 --- /dev/null +++ b/admin/themes/default/js/batchManagerFilter.js @@ -0,0 +1,69 @@ +/* ********** Filters*/ +function filter_enable(filter) { + /* show the filter*/ + $("#"+filter).show(); + + /* check the checkbox to declare we use this filter */ + $("input[type=checkbox][name="+filter+"_use]").prop("checked", true); + + /* forbid to select this filter in the addFilter list */ + $("#addFilter").find("a[data-value="+filter+"]").addClass("disabled", "disabled"); + + /* hide the no filter message */ + $('.noFilter').hide(); + $('.addFilter-button').removeClass('highlight'); +} + +function filter_disable(filter) { + /* hide the filter line */ + $("#"+filter).hide(); + + /* uncheck the checkbox to declare we do not use this filter */ + $("input[name="+filter+"_use]").prop("checked", false); + + /* give the possibility to show it again */ + $("#addFilter").find("a[data-value="+filter+"]").removeClass("disabled"); + + /* show the no filter message if no filter selected */ + if ($('#filterList li:visible').length == 0) { + $('.noFilter').show(); + $('.addFilter-button').addClass('highlight'); + } + +} +$(document).ready(function () { + + $(".removeFilter").addClass("icon-cancel-circled"); + + $(".removeFilter").click(function () { + var filter = $(this).parent('li').attr("id"); + filter_disable(filter); + + return false; + }); + + $("#addFilter a").on('click', function () { + var filter = $(this).attr("data-value"); + filter_enable(filter); + }); + + $("#removeFilters").click(function() { + $("#filterList li").each(function() { + var filter = $(this).attr("id"); + filter_disable(filter); + }); + return false; + }); + + $('[data-slider=widths]').pwgDoubleSlider(sliders.widths); + $('[data-slider=heights]').pwgDoubleSlider(sliders.heights); + $('[data-slider=ratios]').pwgDoubleSlider(sliders.ratios); + $('[data-slider=filesizes]').pwgDoubleSlider(sliders.filesizes); + + $(document).mouseup(function (e) { + e.stopPropagation(); + if (!$(event.target).hasClass('addFilter-button')) { + $('.addFilter-dropdown').slideUp(); + } + }); +}) \ No newline at end of file diff --git a/admin/themes/default/js/batchManagerUnit.js b/admin/themes/default/js/batchManagerUnit.js index 39d82d648..8ca7697b8 100644 --- a/admin/themes/default/js/batchManagerUnit.js +++ b/admin/themes/default/js/batchManagerUnit.js @@ -1,73 +1,5 @@ -/* ********** Filters*/ -function filter_enable(filter) { - /* show the filter*/ - $("#"+filter).show(); - - /* check the checkbox to declare we use this filter */ - $("input[type=checkbox][name="+filter+"_use]").prop("checked", true); - - /* forbid to select this filter in the addFilter list */ - $("#addFilter").find("a[data-value="+filter+"]").addClass("disabled", "disabled"); - - /* hide the no filter message */ - $('.noFilter').hide(); - $('.addFilter-button').removeClass('highlight'); -} - -function filter_disable(filter) { - /* hide the filter line */ - $("#"+filter).hide(); - - /* uncheck the checkbox to declare we do not use this filter */ - $("input[name="+filter+"_use]").prop("checked", false); - - /* give the possibility to show it again */ - $("#addFilter").find("a[data-value="+filter+"]").removeClass("disabled"); - - /* show the no filter message if no filter selected */ - if ($('#filterList li:visible').length == 0) { - $('.noFilter').show(); - $('.addFilter-button').addClass('highlight'); - } - -} - $(document).ready(function () { -$(".removeFilter").addClass("icon-cancel-circled"); - -$(".removeFilter").click(function () { - var filter = $(this).parent('li').attr("id"); - filter_disable(filter); - - return false; -}); - -$("#addFilter a").on('click', function () { - var filter = $(this).attr("data-value"); - filter_enable(filter); -}); - -$("#removeFilters").click(function() { - $("#filterList li").each(function() { - var filter = $(this).attr("id"); - filter_disable(filter); - }); - return false; -}); - -$('[data-slider=widths]').pwgDoubleSlider(sliders.widths); -$('[data-slider=heights]').pwgDoubleSlider(sliders.heights); -$('[data-slider=ratios]').pwgDoubleSlider(sliders.ratios); -$('[data-slider=filesizes]').pwgDoubleSlider(sliders.filesizes); - -$(document).mouseup(function (e) { - e.stopPropagation(); - if (!$(event.target).hasClass('addFilter-button')) { - $('.addFilter-dropdown').slideUp(); - } -}); - // Detect unsaved changes on any inputs var user_interacted = false; @@ -214,6 +146,10 @@ $(document).mouseup(function (e) { remove_related_category($(this).attr("id"),pictureId); }) + $('.action-sync-metadata').on('click', function() { + var pictureId = $(this).parents("fieldset").data("image_id"); + syncMetadata(pictureId); + }); }) function fill_results(cats, pictureId) { @@ -481,6 +417,89 @@ function saveChanges(pictureId) { }); } + function syncMetadata(pictureId){ + $.confirm({ + title: str_meta_warning, + draggable: false, + titleClass: "groupDeleteConfirm", + theme: "modern", + content: "", + animation: "zoom", + boxWidth: '30%', + useBootstrap: false, + type: 'red', + animateFromElement: false, + backgroundDismiss: true, + typeAnimated: false, + buttons: { + confirm: { + text: str_meta_yes, + btnClass: 'btn-red', + action: function () { + (function(ids) { + console.log("metadata sync"); + $.ajax({ + type: 'POST', + url: 'ws.php?format=json', + data: { + method: "pwg.images.syncMetadata", + pwg_token: jQuery("input[name=pwg_token]").val(), + image_id: pictureId + }, + dataType: 'json', + success: function(data) { + console.log("metadata sync done, starting update"); + var isOk = data.stat && data.stat === "ok"; + if (isOk) { + console.log("Success, now updating current block"); + $.ajax({ + url: 'ws.php?format=json', + type: 'GET', + dataType: 'json', + data: { + method: 'pwg.images.getInfo', + image_id: image_Id, + format: 'json' + }, + success: function(response) { + var isOk = data.stat && data.stat === "ok"; + if (response.stat === 'ok') { + console.log("success"); + $("#picture-" + pictureId + " #name-" + pictureId).val(response.result.name); + $("#picture-" + pictureId + " #author-" + pictureId).val(response.result.author); + $("#picture-" + pictureId + " #date_creation-" + pictureId).val(response.result.date_creation); + $("#picture-" + pictureId + " #description-" + pictureId).val(response.result.comment); + $("#picture-" + pictureId + " #level-" + pictureId).val(response.result.level); + $("#picture-" + pictureId + " #filename-" + pictureId).text(response.result.file); + $("#picture-" + pictureId + " #filesize-" + pictureId).text(response.result.filesize); + $("#picture-" + pictureId + " #dimensions-" + pictureId).text(response.result.width + "x" + response.result.height); + + } else { + console.error("Error:", response.message); + } + }, + error: function(xhr, status, error) { + console.error("Error:", status, error); + } + }); + } else { + console.log("Error"); + } + }, + error: function(data) { + console.error("Error occurred"); + } + }); + }) + } + }, + cancel: { + text: str_meta_no + } + } + }); + } + function plugginSaveOption() { //call your pluggin save functions here } diff --git a/admin/themes/default/template/batch_manager_unit.tpl b/admin/themes/default/template/batch_manager_unit.tpl index 0b88b7ac3..8c902545f 100644 --- a/admin/themes/default/template/batch_manager_unit.tpl +++ b/admin/themes/default/template/batch_manager_unit.tpl @@ -55,6 +55,9 @@ str_result_limit = '{"%d+ albums found, try to refine the search"|transla str_orphan = '{'This photo is an orphan'|@translate|escape:javascript}'; str_no_search_in_progress = '{'No search in progress'|@translate|escape:javascript}'; str_already_in_related_cats = '{'This albums is already in related categories list'|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 = { @@ -64,51 +67,9 @@ const strs_privacy = { "3" : "{$level_options[1]}", "4" : "{$level_options[0]}", }; - - -var sliders = { - widths: { - values: [{$dimensions.widths}], - selected: { - min: {$dimensions.selected.min_width}, - max: {$dimensions.selected.max_width}, - }, - text: '{'between %d and %d pixels'|translate|escape:'javascript'}' - }, - - heights: { - values: [{$dimensions.heights}], - selected: { - min: {$dimensions.selected.min_height}, - max: {$dimensions.selected.max_height}, - }, - text: '{'between %d and %d pixels'|translate|escape:'javascript'}' - }, - - ratios: { - values: [{$dimensions.ratios}], - selected: { - min: {$dimensions.selected.min_ratio}, - max: {$dimensions.selected.max_ratio}, - }, - text: '{'between %.2f and %.2f'|translate|escape:'javascript'}' - }, - - filesizes: { - values: [{$filesize.list}], - selected: { - min: {$filesize.selected.min}, - max: {$filesize.selected.max}, - }, - text: '{'between %s and %s MB'|translate|escape:'javascript'}' - } -}; - - - -console.log(sliders); {/footer_script} + {combine_script id='batchManagerUnit' load='footer' require='jquery.ui.effect-blind,jquery.sort' path='admin/themes/default/js/batchManagerUnit.js'}
@@ -117,207 +78,15 @@ console.log(sliders); {debug} {if isset($ELEMENT_IDS)}
{/if} -
-{'Filter'|@translate} -
-
-
    -
  • - -

    {'Predefined filter'|@translate}

    - [x] - - {'Empty caddie'|translate} -{if $NB_ORPHANS > 0} - {'Delete %d orphan photos'|translate:$NB_ORPHANS} -{/if} -{if $NB_NO_MD5SUM > 0} -{'Compute %d missing checksums'|translate:{$NB_NO_MD5SUM}} -{/if} +{*Filters*} +{include file='include/batch_manager_filter.inc.tpl' + title={'Batch Manager Filter'|@translate} + searchPlaceholder={'Filters'|@translate} +} - - - - - - - - - {'based on'|translate} - - - - - -
  • - -
  • - -

    {'Album'|@translate}

    - [x] - - -
  • - -
  • - -

    {'Tags'|@translate}

    - [x] - - - -
  • - -
  • - -

    {'Privacy level'|@translate}

    - [x] - - -
  • - -
  • - -

    {'Dimensions'|translate}

    - [x] -
    -
    -
    -
    - {'Width'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width} -
    - {'Reset'|translate} -
    -
    - - - -
    - -
    -
    -
    - {'Height'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height} -
    - {'Reset'|translate} -
    -
    - - - -
    - -
    -
    - {'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) - {'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio} -
    -
    -
    - {if isset($dimensions.ratio_portrait)} {'Portrait'|translate}{/if} - {if isset($dimensions.ratio_square)} {'square'|translate}{/if} - {if isset($dimensions.ratio_landscape)} {'Landscape'|translate}{/if} - {if isset($dimensions.ratio_panorama)} {'Panorama'|translate}{/if} -
    - -
    -
    - - - -
    -
    -
  • - - - -
  • - -

    {'Filesize'|translate}

    - [x] -
    -
    - {'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max} - {'Reset'|translate} -
    - - - -
    -
    -
  • -
- -
{'No filter, add one'|@translate}
- - -
- -
- -{count($all_elements)} images sélectionnées +Liste {count($all_elements)} {if !empty($elements) }
@@ -354,7 +123,7 @@ console.log(sliders); {if !url_is_remote($element.PATH)} - + {/if} @@ -374,9 +143,9 @@ console.log(sliders);
- {$element.FILE} - {$element.DIMENSIONS} - {$element.FILESIZE} + {$element.FILE} + {$element.DIMENSIONS} + {$element.FILESIZE} {$element.EXT}
@@ -867,5 +636,12 @@ console.log(sliders); opacity: 0.5; } - +.count-badge { + display: inline-block; + text-align: center; + padding: 3px 9px !important ; + background-color: #686868 !important ; + color: #FFFFFF !important ; + margin-left: 5px ; +} diff --git a/admin/themes/default/template/include/batch_manager_filter.inc.tpl b/admin/themes/default/template/include/batch_manager_filter.inc.tpl new file mode 100644 index 000000000..644ca8a40 --- /dev/null +++ b/admin/themes/default/template/include/batch_manager_filter.inc.tpl @@ -0,0 +1,242 @@ +{footer_script} + +var sliders = { + widths: { + values: [{$dimensions.widths}], + selected: { + min: {$dimensions.selected.min_width}, + max: {$dimensions.selected.max_width}, + }, + text: '{'between %d and %d pixels'|translate|escape:'javascript'}' + }, + + heights: { + values: [{$dimensions.heights}], + selected: { + min: {$dimensions.selected.min_height}, + max: {$dimensions.selected.max_height}, + }, + text: '{'between %d and %d pixels'|translate|escape:'javascript'}' + }, + + ratios: { + values: [{$dimensions.ratios}], + selected: { + min: {$dimensions.selected.min_ratio}, + max: {$dimensions.selected.max_ratio}, + }, + text: '{'between %.2f and %.2f'|translate|escape:'javascript'}' + }, + + filesizes: { + values: [{$filesize.list}], + selected: { + min: {$filesize.selected.min}, + max: {$filesize.selected.max}, + }, + text: '{'between %s and %s MB'|translate|escape:'javascript'}' + } +}; +{/footer_script} + +{combine_script id='batchManagerFilter' load='footer' path='admin/themes/default/js/batchManagerFilter.js'} + +
+{'Filter'|@translate} +
+
+
    +
  • + +

    {'Predefined filter'|@translate}

    + [x] + + {'Empty caddie'|translate} +{if $NB_ORPHANS > 0} + {'Delete %d orphan photos'|translate:$NB_ORPHANS} +{/if} +{if $NB_NO_MD5SUM > 0} +{'Compute %d missing checksums'|translate:{$NB_NO_MD5SUM}} +{/if} + + + + + + + + + + + {'based on'|translate} + + + + + +
  • + +
  • + +

    {'Album'|@translate}

    + [x] + + +
  • + +
  • + +

    {'Tags'|@translate}

    + [x] + + + +
  • + +
  • + +

    {'Privacy level'|@translate}

    + [x] + + +
  • + +
  • + +

    {'Dimensions'|translate}

    + [x] +
    +
    +
    +
    + {'Width'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width} +
    + {'Reset'|translate} +
    +
    + + + +
    + +
    +
    +
    + {'Height'|translate} {'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height} +
    + {'Reset'|translate} +
    +
    + + + +
    + +
    +
    + {'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) + {'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio} +
    +
    +
    + {if isset($dimensions.ratio_portrait)} {'Portrait'|translate}{/if} + {if isset($dimensions.ratio_square)} {'square'|translate}{/if} + {if isset($dimensions.ratio_landscape)} {'Landscape'|translate}{/if} + {if isset($dimensions.ratio_panorama)} {'Panorama'|translate}{/if} +
    + +
    +
    + + + +
    +
    +
  • + + + +
  • + +

    {'Filesize'|translate}

    + [x] +
    +
    + {'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max} + {'Reset'|translate} +
    + + + +
    +
    +
  • +
+ +
{'No filter, add one'|@translate}
+ + +
+
+
\ No newline at end of file