Adding the new batch manager implemented by Yann

This commit is contained in:
Zacharie
2020-07-09 13:25:22 +02:00
parent 3e73ab8c3d
commit 842a8dff45
10 changed files with 676 additions and 418 deletions
+1 -1
View File
@@ -714,7 +714,7 @@ SELECT id,path,representative_ext,file,filesize,level,name,width,height,rotation
;';
$result = pwg_query($query);
$thumb_params = ImageStdParams::get_by_type(IMG_THUMB);
$thumb_params = ImageStdParams::get_by_type(IMG_SQUARE);
// template thumbnail initialization
while ($row = pwg_db_fetch_assoc($result))
{
+63 -12
View File
@@ -82,7 +82,7 @@ h3, .throw, .row1 { background-color: #ddd; }
UL.thumbnails span.wrap2:hover { background-color:#7CBA0F; color:#999; }
UL.thumbnails span.wrap2 {
background-color:#ddd;
background-color:transparent;
}
@@ -192,7 +192,7 @@ img.ui-datepicker-trigger{margin:-2px 10px 1px -2px;}
.ui-slider .ui-slider-range { background:#aaa;border-radius:2px; }
.ui-slider .ui-slider-handle {
background-color: #eee;
background-color: #ddd;
border: 1px solid #aaa;
border-radius: 3px;
}
@@ -243,38 +243,42 @@ UL.thumbnails li.rank-of-image {background-color: #ddd;}
}
#batchManagerGlobal .thumbnails li:hover .font-checkbox [class*="icon-check"]::before {
color:white;
color: #3C3C3C;
background-color: #fea744;
border: 2px solid #3C3C3C;
}
#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before {
color:white;
color: #3C3C3C;
background-color: #fea744;
border: 2px solid #3C3C3C;
display: block;
}
#batchManagerGlobal UL.thumbnails li:hover .wrap2 {
background-color: #ff7700;
background-color: transparent;
color: #999;
}
#batchManagerGlobal .thumbSelected { background-color:transparent !important }
#batchManagerGlobal .thumbSelected .wrap2 {
background-color: #444 !important;
background-color: transparent !important;
}
#batchManagerGlobal #selectedMessage {
background-color: #555;
color:white;
color: #FFA646;
font-weight: bold;
}
/* beta-test begins: specific changes on Batch Manager */
#batchManagerGlobal legend {
background-color:#ddd;
color:#555;
padding:5px 10px;
}
#batchManagerGlobal fieldset {
margin-top:2em;
margin: 0;
margin-top: 30px;
}
/* beta-test ends */
@@ -666,7 +670,7 @@ table.dataTable thead th, table.dataTable.no-footer {
}
FORM#categoryOrdering p.albumTitle a { color: #5B5B5B; }
FORM#categoryOrdering p.albumActions a { border-left:1px solid #D6D6D6; }
FORM#categoryOrdering p.albumActions a { border-left:1px solid #D6D6D6; background-color: #E8E8E8;}
.albumInfos {color: #999999;}
FORM#categoryOrdering p.albumActions a:hover {background-color: #FFA844; color: #3A3A3A;}
FORM#categoryOrdering p.albumActions .userSeparator {border: 1px solid #E1E1E1;}
@@ -690,13 +694,60 @@ li.plupload_delete a {background: url("images/cancel.svg")!important; background
li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important; background-size: cover!important;}
.addAlbumEmpty {color: #3C3C3C;}
#permitAction p {background: #FFF;}
#addAlbumForm input[name="category_name"] {border:none!important; margin-top: 5px!important;}
#addAlbumForm input[name="category_name"]:focus {background-color: #DDDDDD;}
.buttonSeparator {color: #3C3C3C;}
#uploadForm li.plupload_droptext {background-color: #F5F5F5!important;}
.addFilesButtonChanged {background-color: #E5E5E5;}
.addFilesButtonChanged:hover {background-color: #BBB;}
#checkActions a, .deleteDerivButtons a {background-color: #E8E8E8;}
#addFilter, #filterList select, .pictureLevels select {background-color: #FFF; color: #4E4E4E; border: 2px solid #7070704f !important;}
#filter_category .selectize-input.items.full.has-options.has-items, #filter_tags .selectize-input.items.not-full.has-options,
#filter_tags .selectize-input.items.not-full, #filter_search input, #action_associate .selectize-input.items.full.has-options.has-items,
#action_dissociate .selectize-input.items.full.has-options.has-items {
border: 2px solid #7070704f !important;
background: #FFF;
color: #3C3C3CBD;
}
#permitAction select {background-color: #FFF; color: #4E4E4E; border: 1px solid #787777a6;}
#action_associate a:last-child {background: #FFF; border: 1px solid #787777a6; box-shadow: none;}
#forbidAction, .selectionEmptyBlock {background-color: #f3f3f3;}
#action_title .large, #action_author .large {background-color: #FFF; color: #4E4E4E;}
#filter_dimension .slider-choice, #filter_filesize .slider-choice {background-color: #EEE; color: #777;}
#filter_dimension .slider-choice:hover, #filter_filesize .slider-choice:hover, .dimension-cancel:hover {
text-decoration: none; background-color: #ffa646 !important; color: initial;
}
#filterList .ui-slider .ui-slider-range {background: rgba(255,166,70, 0.9); margin-top: -1px; border: 1px solid #ffaf58;}
#filterList .ui-widget-content {border: 1px solid #EEE; background: #DDD;}
.navigationBar, .thumbnailsActionsNumber, .navigationBar a,
.navigationBar span, .thumbnailsActionsNumber a, .thumbnailsActionsNumber span {
background-color: #f9f9f9; border-radius: 10px;
}
.navigationBar a:hover, .thumbnailsActionsNumber a:hover {background-color: #ffd2a1;}
#batchManagerGlobal option[disabled] {background-color: #EEE;}
.dimension-cancel {background-color: #F8F8F8 !important;}
.pageNumberSelected {color: #FFF !important; font-weight: bold;}
.navigationBar span, .thumbnailsActionsNumber span {
color: #BBB;
}
#batchManagerGlobal .ui-state-default, #batchManagerGlobal .ui-widget-content .ui-state-default,#batchManagerGlobal .ui-widget-header .ui-state-default {
border: 1px solid #ffaf58; background: #ffaf58;
}
#batchManagerGlobal .ui-state-hover,#batchManagerGlobal .ui-widget-content .ui-state-hover, #batchManagerGlobal .ui-widget-header .ui-state-hover {
background: #ffaf58;
}
#batchManagerGlobal .ui-state-focus, #batchManagerGlobal .ui-widget-content .ui-state-focus,#batchManagerGlobal .ui-widget-header .ui-state-focus {
border: 1px solid #ffaf58; background: #ffaf58;
}
#batchManagerGlobal .ui-state-active, #batchManagerGlobal .ui-widget-content .ui-state-active,#batchManagerGlobal .ui-widget-header .ui-state-active {
background: #ffaf58;
}
#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {border: 1px solid #ffaf58;}
#batchManagerGlobal .font-checkbox.selected {color: #777;}
.icon-red {
background-color: #ffcfcf;
color: #ff5252;
+12 -24
View File
@@ -8,7 +8,7 @@ function filter_enable(filter) {
$("input[type=checkbox][name="+filter+"_use]").prop("checked", true);
/* forbid to select this filter in the addFilter list */
$("#addFilter").children("option[value="+filter+"]").attr("disabled", "disabled");
$("#addFilter").find("option[value="+filter+"]").attr("disabled", "disabled");
}
function filter_disable(filter) {
@@ -19,7 +19,7 @@ function filter_disable(filter) {
$("input[name="+filter+"_use]").prop("checked", false);
/* give the possibility to show it again */
$("#addFilter").children("option[value="+filter+"]").removeAttr("disabled");
$("#addFilter").find("option[value="+filter+"]").removeAttr("disabled");
}
$(".removeFilter").addClass("icon-cancel-circled");
@@ -205,17 +205,17 @@ function getDerivativeUrls() {
}
function selectGenerateDerivAll() {
$("#action_generate_derivatives input[type=checkbox]").prop("checked", true);
$("#action_generate_derivatives input[type=checkbox]").prop("checked", true).trigger("change");
}
function selectGenerateDerivNone() {
$("#action_generate_derivatives input[type=checkbox]").prop("checked", false);
$("#action_generate_derivatives input[type=checkbox]").prop("checked", false).trigger("change");
}
function selectDelDerivAll() {
$("#action_delete_derivatives input[type=checkbox]").prop("checked", true);
$("#action_delete_derivatives input[type=checkbox]").prop("checked", true).trigger("change");
}
function selectDelDerivNone() {
$("#action_delete_derivatives input[type=checkbox]").prop("checked", false);
$("#action_delete_derivatives input[type=checkbox]").prop("checked", false).trigger("change");
}
/* sync metadatas or delete photos by blocks, with progress bar */
@@ -224,21 +224,11 @@ jQuery('#applyAction').click(function(e) {
return true;
}
/* TODO "delete" and "metadata" algorithms are highly similar, they should be merged */
if (jQuery('[name="selectAction"]').val() == 'metadata') {
e.stopPropagation();
jQuery('.bulkAction').hide();
jQuery('#regenerationText').html(lang.syncProgressMessage);
var maxRequests=1;
var queuedManager = jQuery.manageAjax.create('queued', {
queue: true,
cacheResponse: false,
maxRequests: maxRequests
});
elements = Array();
if (jQuery('input[name=setSelected]').is(':checked')) {
@@ -275,12 +265,12 @@ jQuery('#applyAction').click(function(e) {
(function(ids) {
var thisBatchSize = ids.length;
queuedManager.add({
jQuery.ajax({
url: "ws.php?format=json&method=pwg.images.syncMetadata",
type:"POST",
dataType: "json",
data: {
pwg_token: jQuery("input[name=pwg_token]").val(),
pwg_token: jQuery("input[name=pwg_token").val(),
image_id: ids
},
success: function(data) {
@@ -301,8 +291,6 @@ jQuery('#applyAction').click(function(e) {
image_ids = Array();
}
return false;
}
if (jQuery('[name="selectAction"]').val() == 'delete') {
@@ -420,7 +408,7 @@ jQuery('#sync_md5sum').click(function(e) {
var addBlockSize = Math.min(
Number((jQuery('#md5sum_to_add').data('origin') / 2).toFixed()),
conf.checksum_compute_blocksize
1000
);
add_md5sum_block(addBlockSize);
@@ -433,7 +421,7 @@ function add_md5sum_block(blockSize){
type:"POST",
dataType: "json",
data: {
pwg_token: jQuery("input[name=pwg_token]").val(),
pwg_token: jQuery("input[name=pwg_token").val(),
block_size: blockSize
},
success:function(data) {
@@ -445,7 +433,7 @@ function add_md5sum_block(blockSize){
var percent_done = 100 - percent_remaining;
jQuery('#md5sum_added').html(percent_done);
if (data.result.nb_no_md5sum > 0) {
add_md5sum_block(blockSize);
add_md5sum_block();
}
else {
// time to refresh the whole page
@@ -483,7 +471,7 @@ function delete_orphans_block(blockSize) {
type:"POST",
dataType: "json",
data: {
pwg_token: jQuery("input[name=pwg_token]").val(),
pwg_token: jQuery("input[name=pwg_token").val(),
block_size: blockSize
},
success:function(data) {
@@ -1,5 +1,5 @@
{include file='include/datepicker.inc.tpl' load_mode='async'}
{include file='include/colorbox.inc.tpl' load_mode='footer'}
{include file='include/colorbox.inc.tpl' load_mode='async'}
{include file='include/add_album.inc.tpl' load_mode='async'}
{combine_script id='common' load='footer' path='admin/themes/default/js/common.js'}
@@ -26,14 +26,8 @@ var lang = {
AreYouSure: "{'Are you sure?'|translate|escape:'javascript'}"
};
var conf = {
checksum_compute_blocksize: {$conf_checksum_compute_blocksize},
};
jQuery(document).ready(function() {
jQuery('.help-popin').colorbox({ width:"500px" });
{* <!-- TAGS --> *}
var tagsCache = new TagsCache({
serverKey: '{$CACHE_KEYS.tags}',
@@ -138,6 +132,8 @@ $(document).ready(function() {
}
}
$("[id^=action_]").hide();
$("select[name=selectAction]").change(function () {
@@ -269,6 +265,7 @@ $(document).ready(function() {
jQuery('#applyActionBlock').hide();
jQuery('select[name="selectAction"]').hide();
jQuery('.permitActionListButton div').addClass('hidden');
jQuery('#regenerationMsg').show();
progress();
@@ -336,200 +333,220 @@ var sliders = {
<input type="hidden" name="pwg_token" value="{$PWG_TOKEN}">
<fieldset>
<legend><i class="icon-filter"></i>{'Filter'|@translate}</legend>
<legend>{'Filter'|@translate}</legend>
<ul id="filterList">
<li id="filter_prefilter" {if !isset($filter.prefilter)}style="display:none"{/if}>
<a href="#" class="removeFilter" title="{'remove this filter'|@translate}"><span>[x]</span></a>
<input type="checkbox" name="filter_prefilter_use" class="useFilterCheckbox" {if isset($filter.prefilter)}checked="checked"{/if}>
{'Predefined filter'|@translate}
<select name="filter_prefilter">
{foreach from=$prefilters item=prefilter}
{assign 'optionClass' ''}
{if $prefilter.ID eq 'no_album'}{assign 'optionClass' 'icon-heart-broken'}{/if}
{if $prefilter.ID eq 'caddie'}{assign 'optionClass' 'icon-flag'}{/if}
<div class="filterBlock">
<div class="actionButtonsBlock">
<p class="actionButtons">
<select id="addFilter">
<option value="-1">{'Add a filter'|@translate}</option>
<optgroup>
<option value="filter_prefilter" {if isset($filter.prefilter)}disabled="disabled"{/if}>{'Predefined filter'|@translate}</option>
<option value="filter_category" {if isset($filter.category)}disabled="disabled"{/if}>{'Album'|@translate}</option>
<option value="filter_tags" {if isset($filter.tags)}disabled="disabled"{/if}>{'Tags'|@translate}</option>
<option value="filter_level" {if isset($filter.level)}disabled="disabled"{/if}>{'Privacy level'|@translate}</option>
<option value="filter_dimension" {if isset($filter.dimension)}disabled="disabled"{/if}>{'Dimensions'|@translate}</option>
<option value="filter_filesize" {if isset($filter.filesize)}disabled="disabled"{/if}>{'Filesize'|@translate}</option>
<option value="filter_search"{if isset($filter.search)} disabled="disabled"{/if}>{'Search'|@translate}</option>
</optgroup>
</select>
<a id="removeFilters" class="icon-cancel" style="display: none;">{'Remove all filters'|@translate}</a>
</p>
<option value="{$prefilter.ID}" class="{$optionClass}" {if isset($filter.prefilter) && $filter.prefilter eq $prefilter.ID}selected="selected"{/if}>{$prefilter.NAME}</option>
{/foreach}
</select>
<a id="empty_caddie" href="admin.php?page=batch_manager&amp;action=empty_caddie" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'caddie'}display:none{/if}">{'Empty caddie'|translate}</a>
{if $NB_ORPHANS > 0}
<a id="delete_orphans" href="#" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'no_album'}display:none{/if}" class="icon-trash">{'Delete %d orphan photos'|translate:$NB_ORPHANS}</a>
{/if}
{if $NB_NO_MD5SUM > 0}
<a id="sync_md5sum" href="#" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'no_sync_md5sum'}display:none{/if}" class="icon-arrows-cw">{'Compute %d missing checksums'|translate:{$NB_NO_MD5SUM}}</a>
{/if}
<p class="actionButtons" id="applyFilterBlock">
<button id="applyFilter" name="submitFilter" type="submit" class="buttonLike">
<i class="icon-arrows-cw"></i> {'Refresh photo set'|@translate}
</button>
</p>
</div>
<span id="add_md5sum" style="display:none">
<img class="loading" src="themes/default/images/ajax-loader-small.gif">
<span id="md5sum_added">0</span>% -
<span id="md5sum_to_add" data-origin="{$NB_NO_MD5SUM}">{$NB_NO_MD5SUM}</span>
{'checksums to add'|translate}
</span>
<ul id="filterList">
<li id="filter_prefilter" {if !isset($filter.prefilter)}style="display:none"{/if}>
<input type="checkbox" name="filter_prefilter_use" class="useFilterCheckbox" {if isset($filter.prefilter)}checked="checked"{/if}>
{'Predefined filter'|@translate}
<a href="#" class="removeFilter" title="{'remove this filter'|@translate}"><span>[x]</span></a>
<select name="filter_prefilter">
{foreach from=$prefilters item=prefilter}
{assign 'optionClass' ''}
{if $prefilter.ID eq 'no_album'}{assign 'optionClass' 'icon-heart-broken'}{/if}
{if $prefilter.ID eq 'caddie'}{assign 'optionClass' 'icon-flag'}{/if}
<span id="add_md5sum_error" class="errors" style="display:none"></span>
<option value="{$prefilter.ID}" class="{$optionClass}" {if isset($filter.prefilter) && $filter.prefilter eq $prefilter.ID}selected="selected"{/if}>{$prefilter.NAME}</option>
{/foreach}
</select>
<a id="empty_caddie" href="admin.php?page=batch_manager&amp;action=empty_caddie" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'caddie'}display:none{/if}">{'Empty caddie'|translate}</a>
{if $NB_ORPHANS > 0}
<a id="delete_orphans" href="#" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'no_album'}display:none{/if}" class="icon-trash">{'Delete %d orphan photos'|translate:$NB_ORPHANS}</a>
{/if}
{if $NB_NO_MD5SUM > 0}
<a id="sync_md5sum" href="#" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'no_sync_md5sum'}display:none{/if}" class="icon-arrows-cw">{'Compute %d missing checksums'|translate:{$NB_NO_MD5SUM}}</a>
{/if}
<span id="orphans_deletion" style="display:none">
<img class="loading" src="themes/default/images/ajax-loader-small.gif">
<span id="orphans_deleted">0</span>% -
<span id="orphans_to_delete" data-origin="{$NB_ORPHANS}">{$NB_ORPHANS}</span>
{'orphans to delete'|translate}
</span>
<span id="add_md5sum" style="display:none">
<img class="loading" src="themes/default/images/ajax-loader-small.gif">
<span id="md5sum_added">0</span>% -
<span id="md5sum_to_add" data-origin="{$NB_NO_MD5SUM}">{$NB_NO_MD5SUM}</span>
{'checksums to add'|translate}
</span>
<span id="orphans_deletion_error" class="errors" style="display:none"></span>
<span id="add_md5sum_error" class="errors" style="display:none"></span>
<span id="duplicates_options" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'duplicates'}display:none{/if}">
{'based on'|translate}
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_filename" {if isset($filter.duplicates_filename)}checked="checked"{/if}> {'file name'|translate}</label>
<label class="font-checkbox" title="md5sum"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_checksum" {if isset($filter.duplicates_checksum)}checked="checked"{/if}> {'checksum'|translate}</label>
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_date" {if isset($filter.duplicates_date) or (isset($filter.prefilter) and $filter.prefilter ne 'duplicates')}checked="checked"{/if}> {'date & time'|translate}</label>
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_dimensions" {if isset($filter.duplicates_dimensions)}checked="checked"{/if}> {'width & height'|translate}</label>
</span>
</li>
<span id="orphans_deletion" style="display:none">
<img class="loading" src="themes/default/images/ajax-loader-small.gif">
<span id="orphans_deleted">0</span>% -
<span id="orphans_to_delete" data-origin="{$NB_ORPHANS}">{$NB_ORPHANS}</span>
{'orphans to delete'|translate}
</span>
<li id="filter_category" {if !isset($filter.category)}style="display:none"{/if}>
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
<input type="checkbox" name="filter_category_use" class="useFilterCheckbox" {if isset($filter.category)}checked="checked"{/if}>
{'Album'|@translate}
<select data-selectize="categories" data-value="{$filter_category_selected|@json_encode|escape:html}"
data-default="first" name="filter_category" style="width:600px"></select>
<label><input type="checkbox" name="filter_category_recursive" {if isset($filter.category_recursive)}checked="checked"{/if}> {'include child albums'|@translate}</label>
</li>
<span id="orphans_deletion_error" class="errors" style="display:none"></span>
<li id="filter_tags" {if !isset($filter.tags)}style="display:none"{/if}>
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
<input type="checkbox" name="filter_tags_use" class="useFilterCheckbox" {if isset($filter.tags)}checked="checked"{/if}>
{'Tags'|@translate}
<select data-selectize="tags" data-value="{$filter_tags|@json_encode|escape:html}"
placeholder="{'Type in a search term'|translate}"
name="filter_tags[]" multiple style="width:600px;"></select>
<label><span><input type="radio" name="tag_mode" value="AND" {if !isset($filter.tag_mode) or $filter.tag_mode eq 'AND'}checked="checked"{/if}> {'All tags'|@translate}</span></label>
<label><span><input type="radio" name="tag_mode" value="OR" {if isset($filter.tag_mode) and $filter.tag_mode eq 'OR'}checked="checked"{/if}> {'Any tag'|@translate}</span></label>
</li>
<span id="duplicates_options" style="{if !isset($filter.prefilter) or $filter.prefilter ne 'duplicates'}display:none{/if}">
{'based on'|translate}
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_filename" {if isset($filter.duplicates_filename)}checked="checked"{/if}> {'file name'|translate}</label>
<label class="font-checkbox" title="md5sum"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_checksum" {if isset($filter.duplicates_checksum)}checked="checked"{/if}> {'checksum'|translate}</label>
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_date" {if isset($filter.duplicates_date) or (isset($filter.prefilter) and $filter.prefilter ne 'duplicates')}checked="checked"{/if}> {'date & time'|translate}</label>
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_duplicates_dimensions" {if isset($filter.duplicates_dimensions)}checked="checked"{/if}> {'width & height'|translate}</label>
</span>
</li>
<li id="filter_level" {if !isset($filter.level)}style="display:none"{/if}>
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
<input type="checkbox" name="filter_level_use" class="useFilterCheckbox" {if isset($filter.level)}checked="checked"{/if}>
{'Privacy level'|@translate}
<select name="filter_level" size="1">
{html_options options=$filter_level_options selected=$filter_level_options_selected}
</select>
<label><input type="checkbox" name="filter_level_include_lower" {if isset($filter.level_include_lower)}checked="checked"{/if}> {'include photos with lower privacy level'|@translate}</label>
</li>
<li id="filter_category" {if !isset($filter.category)}style="display:none"{/if}>
<input type="checkbox" name="filter_category_use" class="useFilterCheckbox" {if isset($filter.category)}checked="checked"{/if}>
{'Album'|@translate}
<a href="#" class="removeFilter" title="{'remove this filter'|translate}"><span>[x]</span></a>
<select data-selectize="categories" data-value="{$filter_category_selected|@json_encode|escape:html}"
data-default="first" name="filter_category" style="width:600px"></select>
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_category_recursive" {if isset($filter.category_recursive)}checked="checked"{/if}> {'include child albums'|@translate}</label>
</li>
<li id="filter_dimension" {if !isset($filter.dimension)}style="display:none"{/if}>
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
<input type="checkbox" name="filter_dimension_use" class="useFilterCheckbox" {if isset($filter.dimension)}checked="checked"{/if}>
{'Dimensions'|translate}
<li id="filter_tags" {if !isset($filter.tags)}style="display:none"{/if}>
<input type="checkbox" name="filter_tags_use" class="useFilterCheckbox" {if isset($filter.tags)}checked="checked"{/if}>
{'Tags'|@translate}
<a href="#" class="removeFilter" title="{'remove this filter'|translate}"><span>[x]</span></a>
<select data-selectize="tags" data-value="{$filter_tags|@json_encode|escape:html}"
placeholder="{'Type in a search term'|translate}"
name="filter_tags[]" multiple style="width:600px;"></select>
<label class="font-checkbox"><span class="icon-circle-empty"></span><span><input type="radio" name="tag_mode" value="AND" {if !isset($filter.tag_mode) or $filter.tag_mode eq 'AND'}checked="checked"{/if}> {'All tags'|@translate}</span></label>
<label class="font-checkbox"><span class="icon-circle-empty"></span><span><input type="radio" name="tag_mode" value="OR" {if isset($filter.tag_mode) and $filter.tag_mode eq 'OR'}checked="checked"{/if}> {'Any tag'|@translate}</span></label>
</li>
<blockquote>
<div data-slider="widths">
{'Width'|translate} <span class="slider-info">{'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width}</span>
| <a class="slider-choice" data-min="{$dimensions.bounds.min_width}" data-max="{$dimensions.bounds.max_width}">{'Reset'|translate}</a>
<div class="slider-slider"></div>
<li id="filter_level" {if !isset($filter.level)}style="display:none"{/if}>
<input type="checkbox" name="filter_level_use" class="useFilterCheckbox" {if isset($filter.level)}checked="checked"{/if}>
{'Privacy level'|@translate}
<a href="#" class="removeFilter" title="{'remove this filter'|translate}"><span>[x]</span></a>
<select name="filter_level" size="1">
{html_options options=$filter_level_options selected=$filter_level_options_selected}
</select>
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="filter_level_include_lower" {if isset($filter.level_include_lower)}checked="checked"{/if}> {'include photos with lower privacy level'|@translate}</label>
</li>
<input type="hidden" data-input="min" name="filter_dimension_min_width" value="{$dimensions.selected.min_width}">
<input type="hidden" data-input="max" name="filter_dimension_max_width" value="{$dimensions.selected.max_width}">
</div>
<li id="filter_dimension" {if !isset($filter.dimension)}style="display:none"{/if}>
<input type="checkbox" name="filter_dimension_use" class="useFilterCheckbox" {if isset($filter.dimension)}checked="checked"{/if}>
{'Dimensions'|translate}
<a href="#" class="removeFilter" title="{'remove this filter'|translate}"><span>[x]</span></a>
<blockquote>
<div data-slider="widths" class="dimensionSlidersBlocks">
<div class="dimensionSlidersTitleButtons">
<div>
{'Width'|translate} <span class="slider-info">{'between %d and %d pixels'|translate:$dimensions.selected.min_width:$dimensions.selected.max_width}</span>
</div>
<a class="slider-choice dimension-cancel" data-min="{$dimensions.bounds.min_width}" data-max="{$dimensions.bounds.max_width}">{'Reset'|translate}</a>
</div>
<div class="slider-slider"></div>
<div data-slider="heights">
{'Height'|translate} <span class="slider-info">{'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height}</span>
| <a class="slider-choice" data-min="{$dimensions.bounds.min_height}" data-max="{$dimensions.bounds.max_height}">{'Reset'|translate}</a>
<div class="slider-slider"></div>
<input type="hidden" data-input="min" name="filter_dimension_min_height" value="{$dimensions.selected.min_height}">
<input type="hidden" data-input="max" name="filter_dimension_max_height" value="{$dimensions.selected.max_height}">
</div>
<input type="hidden" data-input="min" name="filter_dimension_min_width" value="{$dimensions.selected.min_width}">
<input type="hidden" data-input="max" name="filter_dimension_max_width" value="{$dimensions.selected.max_width}">
</div>
<div data-slider="ratios">
{'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate}) <span class="slider-info">{'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio}</span>
{if isset($dimensions.ratio_portrait)}| <a class="slider-choice" data-min="{$dimensions.ratio_portrait.min}" data-max="{$dimensions.ratio_portrait.max}">{'Portrait'|translate}</a>{/if}
{if isset($dimensions.ratio_square)}| <a class="slider-choice" data-min="{$dimensions.ratio_square.min}" data-max="{$dimensions.ratio_square.max}">{'square'|translate}</a>{/if}
{if isset($dimensions.ratio_landscape)}| <a class="slider-choice" data-min="{$dimensions.ratio_landscape.min}" data-max="{$dimensions.ratio_landscape.max}">{'Landscape'|translate}</a>{/if}
{if isset($dimensions.ratio_panorama)}| <a class="slider-choice" data-min="{$dimensions.ratio_panorama.min}" data-max="{$dimensions.ratio_panorama.max}">{'Panorama'|translate}</a>{/if}
| <a class="slider-choice" data-min="{$dimensions.bounds.min_ratio}" data-max="{$dimensions.bounds.max_ratio}">{'Reset'|translate}</a>
<div class="slider-slider"></div>
<div data-slider="heights" class="dimensionSlidersBlocks">
<div class="dimensionSlidersTitleButtons">
<div>
{'Height'|translate} <span class="slider-info">{'between %d and %d pixels'|translate:$dimensions.selected.min_height:$dimensions.selected.max_height}</span>
</div>
<a class="slider-choice dimension-cancel" data-min="{$dimensions.bounds.min_height}" data-max="{$dimensions.bounds.max_height}">{'Reset'|translate}</a>
</div>
<div class="slider-slider"></div>
<input type="hidden" data-input="min" name="filter_dimension_min_height" value="{$dimensions.selected.min_height}">
<input type="hidden" data-input="max" name="filter_dimension_max_height" value="{$dimensions.selected.max_height}">
</div>
<input type="hidden" data-input="min" name="filter_dimension_min_ratio" value="{$dimensions.selected.min_ratio}">
<input type="hidden" data-input="max" name="filter_dimension_max_ratio" value="{$dimensions.selected.max_ratio}">
</div>
</blockquote>
</li>
<div data-slider="ratios" class="dimensionSlidersBlocks">
<div style="margin-bottom: 11px;">
<span>{'Ratio'|translate} ({'Width'|@translate}/{'Height'|@translate})</span>
<span class="slider-info">{'between %.2f and %.2f'|translate:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio}</span>
</div>
<div class="dimensionSlidersRatioButtons">
<div>
{if isset($dimensions.ratio_portrait)} <a class="slider-choice" data-min="{$dimensions.ratio_portrait.min}" data-max="{$dimensions.ratio_portrait.max}">{'Portrait'|translate}</a>{/if}
{if isset($dimensions.ratio_square)} <a class="slider-choice" data-min="{$dimensions.ratio_square.min}" data-max="
{$dimensions.ratio_square.max}">{'square'|translate}</a>{/if}
{if isset($dimensions.ratio_landscape)} <a class="slider-choice" data-min="{$dimensions.ratio_landscape.min}" data-max="{$dimensions.ratio_landscape.max}">{'Landscape'|translate}</a>{/if}
{if isset($dimensions.ratio_panorama)} <a class="slider-choice" data-min="{$dimensions.ratio_panorama.min}" data-max="{$dimensions.ratio_panorama.max}">{'Panorama'|translate}</a>{/if}
</div>
<div>
<a class="slider-choice dimension-cancel" data-min="{$dimensions.bounds.min_ratio}" data-max="{$dimensions.bounds.max_ratio}">{'Reset'|translate}</a>
</div>
</div>
<div class="slider-slider"></div>
<li id="filter_search"{if !isset($filter.search)} style="display:none"{/if}>
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
<input type="checkbox" name="filter_search_use" class="useFilterCheckbox"{if isset($filter.search)} checked="checked"{/if}>
{'Search'|@translate}
<input name="q" size=40 value="{$filter.search.q|stripslashes|htmlspecialchars}">
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
<a href="admin/popuphelp.php?page=quick_search&amp;output=content_only" class="help-popin" title="{'Help'|@translate}"><span class="icon-help-circled"></span></a>
{if (isset($no_search_results))}
<div>{'No results for'|@translate} :
<em><strong>
{foreach $no_search_results as $res}
{if !$res@first} &mdash; {/if}
{$res}
{/foreach}
</strong></em>
</div>
{/if}
</li>
<input type="hidden" data-input="min" name="filter_dimension_min_ratio" value="{$dimensions.selected.min_ratio}">
<input type="hidden" data-input="max" name="filter_dimension_max_ratio" value="{$dimensions.selected.max_ratio}">
</div>
</blockquote>
</li>
<li id="filter_filesize" {if !isset($filter.filesize)}style="display:none"{/if}>
<a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
<input type="checkbox" name="filter_filesize_use" class="useFilterCheckbox" {if isset($filter.filesize)}checked="checked"{/if}>
{'Filesize'|translate}
<li id="filter_search"{if !isset($filter.search)} style="display:none"{/if}>
<input type="checkbox" name="filter_search_use" class="useFilterCheckbox"{if isset($filter.search)} checked="checked"{/if}>
{'Search'|@translate}
<a href="#" class="removeFilter" title="{'remove this filter'|translate}"><span>[x]</span></a>
<input name="q" size=40 value="{$filter.search.q|stripslashes|htmlspecialchars}">
<a href="admin/popuphelp.php?page=quick_search" onclick="popuphelp(this.href);return false;" title="{'Help'|@translate}"><span class="icon-help-circled">{'Search tips'|translate}</span></a>
{combine_script id='core.scripts' load='async' path='themes/default/js/scripts.js'}
{if (isset($no_search_results))}
<div>{'No results for'|@translate} :
<em><strong>
{foreach $no_search_results as $res}
{if !$res@first} &mdash; {/if}
{$res}
{/foreach}
</strong></em>
</div>
{/if}
</li>
<blockquote>
<div data-slider="filesizes">
<span class="slider-info">{'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max}</span>
| <a class="slider-choice" data-min="{$filesize.bounds.min}" data-max="{$filesize.bounds.max}">{'Reset'|translate}</a>
<div class="slider-slider"></div>
<li id="filter_filesize" {if !isset($filter.filesize)}style="display:none"{/if}>
<input type="checkbox" name="filter_filesize_use" class="useFilterCheckbox" {if isset($filter.filesize)}checked="checked"{/if}>
{'Filesize'|translate}
<a href="#" class="removeFilter" title="{'remove this filter'|translate}"><span>[x]</span></a>
<blockquote>
<div data-slider="filesizes">
<span class="slider-info">{'between %s and %s MB'|translate:$filesize.selected.min:$filesize.selected.max}</span>
<a class="slider-choice dimension-cancel" data-min="{$filesize.bounds.min}" data-max="{$filesize.bounds.max}">{'Reset'|translate}</a>
<div class="slider-slider"></div>
<input type="hidden" data-input="min" name="filter_filesize_min" value="{$filesize.selected.min}">
<input type="hidden" data-input="max" name="filter_filesize_max" value="{$filesize.selected.max}">
</div>
</blockquote>
</li>
</ul>
<p class="actionButtons">
<select id="addFilter">
<option value="-1">{'Add a filter'|@translate}</option>
<option disabled="disabled">------------------</option>
<option value="filter_prefilter" {if isset($filter.prefilter)}disabled="disabled"{/if}>{'Predefined filter'|@translate}</option>
<option value="filter_category" {if isset($filter.category)}disabled="disabled"{/if}>{'Album'|@translate}</option>
<option value="filter_tags" {if isset($filter.tags)}disabled="disabled"{/if}>{'Tags'|@translate}</option>
<option value="filter_level" {if isset($filter.level)}disabled="disabled"{/if}>{'Privacy level'|@translate}</option>
<option value="filter_dimension" {if isset($filter.dimension)}disabled="disabled"{/if}>{'Dimensions'|@translate}</option>
<option value="filter_filesize" {if isset($filter.filesize)}disabled="disabled"{/if}>{'Filesize'|@translate}</option>
<option value="filter_search"{if isset($filter.search)} disabled="disabled"{/if}>{'Search'|@translate}</option>
</select>
<a id="removeFilters" class="icon-cancel">{'Remove all filters'|@translate}</a>
</p>
<p class="actionButtons" id="applyFilterBlock">
<button id="applyFilter" name="submitFilter" type="submit" class="buttonLike">
<i class="icon-arrows-cw"></i> {'Refresh photo set'|@translate}
</button>
</p>
<input type="hidden" data-input="min" name="filter_filesize_min" value="{$filesize.selected.min}">
<input type="hidden" data-input="max" name="filter_filesize_max" value="{$filesize.selected.max}">
</div>
</blockquote>
</li>
</ul>
</div>
</fieldset>
<fieldset>
<legend><i class="icon-check"></i>{'Selection'|@translate}</legend>
<legend>{'Selection'|@translate}</legend>
{if !empty($thumbnails)}
<p id="checkActions">
{'Select:'|@translate}
{if $nb_thumbs_set > $nb_thumbs_page}
<a href="#" id="selectAll">{'The whole page'|@translate}</a>,
<a href="#" id="selectSet">{'The whole set'|@translate}</a>,
<a href="#" id="selectAll">{'The whole page'|@translate}</a>
<a href="#" id="selectSet">{'The whole set'|@translate}</a>
{else}
<a href="#" id="selectAll">{'All'|@translate}</a>,
<a href="#" id="selectAll">{'All'|@translate}</a>
{/if}
<a href="#" id="selectNone">{'None'|@translate}</a>,
<a href="#" id="selectNone">{'None'|@translate}</a>
<a href="#" id="selectInvert">{'Invert'|@translate}</a>
<span id="selectedMessage"></span>
@@ -553,7 +570,10 @@ UL.thumbnails SPAN.wrap2 {ldelim}
<label class="font-checkbox">
<span class="icon-check"></span><input type="checkbox" name="selection[]" value="{$thumbnail.id}" {if $isSelected}checked="checked"{/if}>
<span class="wrap2">
<div class="actions"><a href="{$thumbnail.FILE_SRC}" class="preview-box">{'Zoom'|@translate}</a> &middot; <a href="{$thumbnail.U_EDIT}" target="_blank">{'Edit'|@translate}</a></div>
<div class="actions">
<a href="{$thumbnail.U_EDIT}" target="_blank" class="icon-pencil" title="{'Edit photo'|@translate}"></a>
<a href="{$thumbnail.FILE_SRC}" class="preview-box icon-zoom-square" title="{'Zoom'|@translate}"></a>
</div>
{if $thumbnail.level > 0}
<em class="levelIndicatorB">{'Level %d'|@sprintf:$thumbnail.level|@translate}</em>
<em class="levelIndicatorF" title="{'Who can see these photos?'|@translate} : ">{'Level %d'|@sprintf:$thumbnail.level|@translate}</em>
@@ -573,176 +593,183 @@ UL.thumbnails SPAN.wrap2 {ldelim}
{include file='navigation_bar.tpl'|@get_extent:'navbar'}
</div>
<div style="float:right;margin-top:10px;">{'display'|@translate}
<div style="float:right;margin-top:30px; margin-right: 46px;" class="thumbnailsActionsNumber">
<span class="thumbnailsActionsShow" style="font-weight: bold;">{'display'|@translate}</span>
<a href="{$U_DISPLAY}&amp;display=20">20</a>
&middot; <a href="{$U_DISPLAY}&amp;display=50">50</a>
&middot; <a href="{$U_DISPLAY}&amp;display=100">100</a>
&middot; <a href="{$U_DISPLAY}&amp;display=all">{'all'|@translate}</a>
{'photos per page'|@translate}
<a href="{$U_DISPLAY}&amp;display=50">50</a>
<a href="{$U_DISPLAY}&amp;display=100">100</a>
<a href="{$U_DISPLAY}&amp;display=all">{'all'|@translate}</a>
</div>
</div>
{/if}
{else}
<div>{'No photo in the current set.'|@translate}</div>
<div class="selectionEmptyBlock">{'No photo in the current set.'|@translate}</div>
{/if}
</fieldset>
<fieldset id="action">
<legend><i class="icon-cog"></i>{'Action'|@translate}</legend>
<legend>{'Action'|@translate}</legend>
<div id="forbidAction"{if count($selection) != 0} style="display:none"{/if}>{'No photo selected, no action possible.'|@translate}</div>
<div id="permitAction"{if count($selection) == 0} style="display:none"{/if}>
<div class="permitActionListButton">
<div>
<select name="selectAction">
<option value="-1">{'Choose an action'|@translate}</option>
<option disabled="disabled">------------------</option>
<option value="delete" class="icon-trash">{'Delete selected photos'|@translate}</option>
<option value="associate">{'Associate to album'|@translate}</option>
<option value="move">{'Move to album'|@translate}</option>
{if !empty($associated_categories)}
<option value="dissociate">{'Dissociate from album'|@translate}</option>
{/if}
<option value="add_tags">{'Add tags'|@translate}</option>
{if !empty($associated_tags)}
<option value="del_tags">{'remove tags'|@translate}</option>
{/if}
<option value="author">{'Set author'|@translate}</option>
<option value="title">{'Set title'|@translate}</option>
<option value="date_creation">{'Set creation date'|@translate}</option>
<option value="level" class="icon-lock">{'Who can see these photos?'|@translate}</option>
<option value="metadata">{'Synchronize metadata'|@translate}</option>
{if ($IN_CADDIE)}
<option value="remove_from_caddie">{'Remove from caddie'|@translate}</option>
{else}
<option value="add_to_caddie">{'Add to caddie'|@translate}</option>
{/if}
<option value="delete_derivatives">{'Delete multiple size images'|@translate}</option>
<option value="generate_derivatives">{'Generate multiple size images'|@translate}</option>
{if !empty($element_set_global_plugins_actions)}
{foreach from=$element_set_global_plugins_actions item=action}
<option value="{$action.ID}">{$action.NAME}</option>
{/foreach}
{/if}
</select>
</div>
<p id="applyActionBlock" style="display:none" class="actionButtons">
<button id="applyAction" name="submit" type="submit" class="buttonLike">
<i class="icon-cog-alt"></i> {'Apply action'|translate}
</button>
<select name="selectAction">
<option value="-1">{'Choose an action'|@translate}</option>
<option disabled="disabled">------------------</option>
<option value="delete" class="icon-trash">{'Delete selected photos'|@translate}</option>
<option value="associate">{'Associate to album'|@translate}</option>
<option value="move">{'Move to album'|@translate}</option>
{if !empty($associated_categories)}
<option value="dissociate">{'Dissociate from album'|@translate}</option>
{/if}
<option value="add_tags">{'Add tags'|@translate}</option>
<span id="applyOnDetails"></span>
</p>
</div>
<div class="permitActionItem">
<!-- delete -->
<div id="action_delete" class="bulkAction">
<p><label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="confirm_deletion" value="1"> {'Are you sure?'|@translate}</label><span class="errors" style="display:none">{"You need to confirm deletion"|translate}</span></p>
</div>
<!-- associate -->{* also used for "move" action *}
<div id="action_associate" class="bulkAction">
<select data-selectize="categories" data-default="first" name="associate" style="width:600px"></select>
<a href="#" data-add-album="associate" title="{'create a new album'|@translate}" class="icon-plus"></a>
</div>
<!-- dissociate -->
<div id="action_dissociate" class="bulkAction">
<select data-selectize="categories" placeholder="{'Type in a search term'|translate}"
name="dissociate" style="width:600px"></select>
</div>
<!-- add_tags -->
<div id="action_add_tags" class="bulkAction">
<select data-selectize="tags" data-create="true" placeholder="{'Type in a search term'|translate}"
name="add_tags[]" multiple style="width:400px;"></select>
</div>
<!-- del_tags -->
<div id="action_del_tags" class="bulkAction">
{if !empty($associated_tags)}
<option value="del_tags">{'remove tags'|@translate}</option>
<select data-selectize="tags" name="del_tags[]" multiple style="width:400px;"
placeholder="{'Type in a search term'|translate}">
{foreach from=$associated_tags item=tag}
<option value="{$tag.id}">{$tag.name}</option>
{/foreach}
</select>
{/if}
<option value="author">{'Set author'|@translate}</option>
<option value="title">{'Set title'|@translate}</option>
<option value="date_creation">{'Set creation date'|@translate}</option>
<option value="level" class="icon-lock">{'Who can see these photos?'|@translate}</option>
<option value="metadata">{'Synchronize metadata'|@translate}</option>
{if ($IN_CADDIE)}
<option value="remove_from_caddie">{'Remove from caddie'|@translate}</option>
{else}
<option value="add_to_caddie">{'Add to caddie'|@translate}</option>
{/if}
<option value="delete_derivatives">{'Delete multiple size images'|@translate}</option>
<option value="generate_derivatives">{'Generate multiple size images'|@translate}</option>
</div>
<!-- author -->
<div id="action_author" class="bulkAction">
<input type="text" class="large" name="author" placeholder="{'Type here the author name'|@translate}">
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="remove_author"> {'remove author'|@translate}</label>
</div>
<!-- title -->
<div id="action_title" class="bulkAction">
<input type="text" class="large" name="title" placeholder="{'Type here the title'|@translate}">
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="remove_title"> {'remove title'|@translate}</label>
</div>
<!-- date_creation -->
<div id="action_date_creation" class="bulkAction">
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="remove_date_creation"> {'remove creation date'|@translate}</label><br>
<div id="set_date_creation">
<input type="hidden" name="date_creation" value="{$DATE_CREATION}">
<label>
<i class="icon-calendar"></i>
<input type="text" data-datepicker="date_creation" readonly>
</label>
</div>
</div>
<!-- level -->
<div id="action_level" class="bulkAction">
<select name="level" size="1">
{html_options options=$level_options selected=$level_options_selected}
</select>
</div>
<!-- metadata -->
<div id="action_metadata" class="bulkAction">
</div>
<!-- generate derivatives -->
<div id="action_generate_derivatives" class="bulkAction">
<div class="deleteDerivButtons">
<a href="javascript:selectGenerateDerivAll()">{'All'|@translate}</a>
<a href="javascript:selectGenerateDerivNone()">{'None'|@translate}</a>
</div>
<br>
{foreach from=$generate_derivatives_types key=type item=disp}
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="generate_derivatives_type[]" value="{$type}"> {$disp}</label>
{/foreach}
</div>
<!-- delete derivatives -->
<div id="action_delete_derivatives" class="bulkAction">
<div class="deleteDerivButtons">
<a href="javascript:selectDelDerivAll()">{'All'|@translate}</a>
<a href="javascript:selectDelDerivNone()">{'None'|@translate}</a>
</div>
<br>
{foreach from=$del_derivatives_types key=type item=disp}
<label class="font-checkbox"><span class="icon-check"></span><input type="checkbox" name="del_derivatives_type[]" value="{$type}"> {$disp}</label>
{/foreach}
</div>
<!-- progress bar -->
<div id="regenerationMsg" class="bulkAction" style="display:none">
<p id="regenerationText" style="margin-bottom:10px;">{'Generate multiple size images'|@translate}</p>
<span class="progressBar" id="progressBar"></span>
<input type="hidden" name="regenerateSuccess" value="0">
<input type="hidden" name="regenerateError" value="0">
</div>
<!-- plugins -->
{if !empty($element_set_global_plugins_actions)}
{foreach from=$element_set_global_plugins_actions item=action}
<option value="{$action.ID}">{$action.NAME}</option>
<div id="action_{$action.ID}" class="bulkAction">
{if !empty($action.CONTENT)}{$action.CONTENT}{/if}
</div>
{/foreach}
{/if}
</select>
<!-- delete -->
<div id="action_delete" class="bulkAction">
<p><label><input type="checkbox" name="confirm_deletion" value="1"> {'Are you sure?'|@translate}</label><span class="errors" style="display:none">{"You need to confirm deletion"|translate}</span></p>
</div>
<!-- associate -->{* also used for "move" action *}
<div id="action_associate" class="bulkAction">
<select data-selectize="categories" data-default="first" name="associate" style="width:600px"></select>
<br>{'... or '|@translate}
<a href="#" data-add-album="associate" title="{'create a new album'|@translate}">{'create a new album'|@translate}</a>
</div>
<!-- dissociate -->
<div id="action_dissociate" class="bulkAction">
<select data-selectize="categories" placeholder="{'Type in a search term'|translate}"
name="dissociate" style="width:600px"></select>
</div>
<!-- add_tags -->
<div id="action_add_tags" class="bulkAction">
<select data-selectize="tags" data-create="true" placeholder="{'Type in a search term'|translate}"
name="add_tags[]" multiple style="width:400px;"></select>
</div>
<!-- del_tags -->
<div id="action_del_tags" class="bulkAction">
{if !empty($associated_tags)}
<select data-selectize="tags" name="del_tags[]" multiple style="width:400px;"
placeholder="{'Type in a search term'|translate}">
{foreach from=$associated_tags item=tag}
<option value="{$tag.id}">{$tag.name}</option>
{/foreach}
</select>
{/if}
</div>
<!-- author -->
<div id="action_author" class="bulkAction">
<label><input type="checkbox" name="remove_author"> {'remove author'|@translate}</label><br>
<input type="text" class="large" name="author" placeholder="{'Type here the author name'|@translate}">
</div>
<!-- title -->
<div id="action_title" class="bulkAction">
<label><input type="checkbox" name="remove_title"> {'remove title'|@translate}</label><br>
<input type="text" class="large" name="title" placeholder="{'Type here the title'|@translate}">
</div>
<!-- date_creation -->
<div id="action_date_creation" class="bulkAction">
<label><input type="checkbox" name="remove_date_creation"> {'remove creation date'|@translate}</label><br>
<div id="set_date_creation">
<input type="hidden" name="date_creation" value="{$DATE_CREATION}">
<label>
<i class="icon-calendar"></i>
<input type="text" data-datepicker="date_creation" readonly>
</label>
</div>
</div>
<!-- level -->
<div id="action_level" class="bulkAction">
<select name="level" size="1">
{html_options options=$level_options selected=$level_options_selected}
</select>
</div>
<!-- metadata -->
<div id="action_metadata" class="bulkAction">
</div>
<!-- generate derivatives -->
<div id="action_generate_derivatives" class="bulkAction">
<a href="javascript:selectGenerateDerivAll()">{'All'|@translate}</a>,
<a href="javascript:selectGenerateDerivNone()">{'None'|@translate}</a>
<br>
{foreach from=$generate_derivatives_types key=type item=disp}
<label><input type="checkbox" name="generate_derivatives_type[]" value="{$type}"> {$disp}</label>
{/foreach}
</div>
<!-- delete derivatives -->
<div id="action_delete_derivatives" class="bulkAction">
<a href="javascript:selectDelDerivAll()">{'All'|@translate}</a>,
<a href="javascript:selectDelDerivNone()">{'None'|@translate}</a>
<br>
{foreach from=$del_derivatives_types key=type item=disp}
<label><input type="checkbox" name="del_derivatives_type[]" value="{$type}"> {$disp}</label>
{/foreach}
</div>
<!-- progress bar -->
<div id="regenerationMsg" class="bulkAction" style="display:none">
<p id="regenerationText" style="margin-bottom:10px;">{'Generate multiple size images'|@translate}</p>
<span class="progressBar" id="progressBar"></span>
<input type="hidden" name="regenerateSuccess" value="0">
<input type="hidden" name="regenerateError" value="0">
</div>
<!-- plugins -->
{if !empty($element_set_global_plugins_actions)}
{foreach from=$element_set_global_plugins_actions item=action}
<div id="action_{$action.ID}" class="bulkAction">
{if !empty($action.CONTENT)}{$action.CONTENT}{/if}
</div>
{/foreach}
{/if}
<p id="applyActionBlock" style="display:none" class="actionButtons">
<button id="applyAction" name="submit" type="submit" class="buttonLike">
<i class="icon-cog-alt"></i> {'Apply action'|translate}
</button>
<span id="applyOnDetails"></span>
</p>
</div> <!-- #permitAction -->
</fieldset>
@@ -38,17 +38,18 @@ jQuery("a.preview-box").colorbox( {
<h2>{'Batch Manager'|@translate}</h2>
<form action="{$F_ACTION}" method="POST">
<fieldset>
<legend>{'Display options'|@translate}</legend>
<p>{'photos per page'|@translate} :
<div style="margin: 30px 0; display: flex; justify-content: space-between;">
<div style="margin-left: 22px;">
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
</div>
<div style="margin-right: 21px;" class="thumbnailsActionsNumber">
<span class="thumbnailsActionsShow" style="font-weight: bold;color: unset;">{'photos per page'|@translate} :</span>
<a href="{$U_ELEMENTS_PAGE}&amp;display=5">5</a>
| <a href="{$U_ELEMENTS_PAGE}&amp;display=10">10</a>
| <a href="{$U_ELEMENTS_PAGE}&amp;display=50">50</a>
</p>
</fieldset>
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
<a href="{$U_ELEMENTS_PAGE}&amp;display=10">10</a>
<a href="{$U_ELEMENTS_PAGE}&amp;display=50">50</a>
</div>
</div>
<div style="clear:both"></div>
{if !empty($elements) }
<div><input type="hidden" name="element_ids" value="{$ELEMENT_IDS}"></div>
@@ -112,7 +113,9 @@ jQuery("a.preview-box").colorbox( {
</fieldset>
{/foreach}
<div class="navigationBarRow">
{if !empty($navbar)}{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
</div>
<p>
<input type="submit" value="{'Submit'|@translate}" name="submit">
@@ -1,15 +1,15 @@
<div class="navigationBar">
{if isset($navbar.URL_FIRST)}
<a href="{$navbar.URL_FIRST}" rel="first">{'First'|@translate}</a> |
<a href="{$navbar.URL_PREV}" rel="prev">{'Previous'|@translate}</a> |
<a href="{$navbar.URL_FIRST}" rel="first">{'First'|@translate}</a>
<a href="{$navbar.URL_PREV}" rel="prev">{'Previous'|@translate}</a>
{else}
{'First'|@translate} |
{'Previous'|@translate} |
<span>{'First'|@translate}</span>
<span>{'Previous'|@translate}</span>
{/if}
{assign var='prev_page' value=0}
{foreach from=$navbar.pages key=page item=url}
{if $page > $prev_page+1}...{/if}
{if $page > $prev_page+1}<span class="navigationBarSeparator">...</span>{/if}
{if $page == $navbar.CURRENT_PAGE}
<span class="pageNumberSelected">{$page}</span>
{else}
@@ -19,10 +19,10 @@
{/foreach}
{if isset($navbar.URL_NEXT)}
| <a href="{$navbar.URL_NEXT}" rel="next">{'Next'|@translate}</a>
| <a href="{$navbar.URL_LAST}" rel="last">{'Last'|@translate}</a>
<a href="{$navbar.URL_NEXT}" rel="next">{'Next'|@translate}</a>
<a href="{$navbar.URL_LAST}" rel="last">{'Last'|@translate}</a>
{else}
| {'Next'|@translate}
| {'Last'|@translate}
<span>{'Next'|@translate}</span>
<span>{'Last'|@translate}</span>
{/if}
</div>
+171 -36
View File
@@ -1727,35 +1727,48 @@ LEGEND {
/* Batch Manager, global mode */
#batchManagerGlobal #action p {text-align:left;}
#batchManagerGlobal .bulkAction {text-align:left;margin:15px 0;padding:0;}
#batchManagerGlobal .bulkAction {text-align:left; padding:0;}
#batchManagerGlobal #action_del_tags ul.tagSelection {margin:0 !important; width:620px;}
#batchManagerGlobal #checkActions {text-align:left; margin:0 0 20px 0;}
#batchManagerGlobal ul.thumbnails div.actions {display:none;position:absolute;top:0;right:5px;color:#fff}
#batchManagerGlobal ul.thumbnails div.actions {
display: none;
position: absolute;
top: 0;
color: #fff;
width: 98%;
justify-content: space-between;
background-color: #313234;
padding: 3px 0px;
margin-left: 1px;
z-index: 1;
}
#batchManagerGlobal ul.thumbnails div.actions a {color:#fff;}
#batchManagerGlobal ul.thumbnails span.wrap1:hover div.actions {display:block;}
#batchManagerGlobal #selectedMessage {padding:5px; border-radius:5px;}
#batchManagerGlobal #applyOnDetails {font-style:italic;}
#batchManagerGlobal .actionButtons {text-align:left;}
#batchManagerGlobal #filterList {padding-left:5px;}
#batchManagerGlobal #filterList li {margin-bottom:5px; list-style-type:none;}
#batchManagerGlobal ul.thumbnails span.wrap1:hover div.actions {display:flex;}
#batchManagerGlobal #selectedMessage {padding:5px; border-radius:5px; float: right;}
#batchManagerGlobal #applyOnDetails {text-align: center; margin-top: 8px; color: #FFA646; font-weight: bold;}
#batchManagerGlobal .actionButtons {text-align:left; margin: 0; display: flex; flex-direction: column;}
#batchManagerGlobal #filterList {padding-left:5px; display: flex; flex-wrap: wrap; align-items: start; margin-top: -18px;}
#batchManagerGlobal #filterList li {list-style-type:none;}
#batchManagerGlobal a.removeFilter {color:#666;}
#batchManagerGlobal a.removeFilter::before {margin-right:0;}
#batchManagerGlobal a.removeFilter::before {margin-right:0; content: '\e822'; font-size: 9pt; color: #9f9f9f; margin-left: 6px;}
#batchManagerGlobal a.removeFilter:hover::before {color: #ffa646;}
#batchManagerGlobal a.removeFilter:hover {color:red;}
#batchManagerGlobal .removeFilter span {display:none}
#batchManagerGlobal #applyFilterBlock {margin-top:20px;}
#batchManagerGlobal #applyFilterBlock {margin-top:20px; width: 200px;}
#batchManagerGlobal .useFilterCheckbox {display:none;}
#batchManagerGlobal blockquote {margin:5px 0 20px 15px;}
#batchManagerGlobal .ui-slider-horizontal {width:650px;margin:5px 0 10px 0;}
#batchManagerGlobal blockquote {margin:10px 0 0px 0;}
#batchManagerGlobal .ui-slider-horizontal {width:280px; margin:10px 0 10px 9px;}
#batchManagerGlobal #filter_dimension .ui-slider-horizontal {width:580px;}
#batchManagerGlobal #duplicates_options label {margin-left:10px;}
#batchManagerGlobal .thumbnails span.icon-check,
#batchManagerGlobal .thumbnails span.icon-check-empty {
position:absolute;
left:5px;
top:3px;
font-size:14px;
#batchManagerGlobal .thumbnails span.icon-check, #batchManagerGlobal .thumbnails span.icon-check-empty {
position: absolute;
left: 84px;
top: 84px;
font-size: 14px;
display: none;
}
@@ -3215,12 +3228,7 @@ fieldset#environment legend i[class*="icon-"] {
}
.buttonLike, input[type="submit"], input[type="button"], input[type="reset"] {
font-size:12px;
border:none;
padding:13px 20px;
margin-left:0;
font-weight: bold;
transition: all 125ms ease-out;
font-size:12px; border:none; padding:13px 20px; margin-left:0; font-weight: bold; transition: all 125ms ease-out;
}
#cboxLoadedContent input[type="submit"] {margin-bottom: 20px; float: none;}
@@ -3229,12 +3237,9 @@ fieldset#environment legend i[class*="icon-"] {
#permissions {display: none!important;}
#permissions, .selectFiles {margin-top: 35px; margin-bottom: 20px;}
.selectAlbumBlock {display: flex; margin-left: 10px; margin-top: 10px;}
.albumActions a:last-child {border-radius: 0 5px 5px 0;}
.icon-plus.cboxElement {
padding: 8px;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16);
font-size: 15px;
margin-bottom: 8px;
transition: all 125ms ease-out;
padding: 8px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.16); font-size: 15px; margin-bottom: 8px; transition: all 125ms ease-out;
}
.icon-plus.cboxElement:hover {box-shadow: 0 2px 4px rgba(0, 0, 0, 0.16);}
#albumSelection {margin-left: 25px;}
@@ -3254,7 +3259,6 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important;
.plupload_total_file_size {margin-right: -8px;}
.plupload_total_status {color: #707070!important; margin-right: -8px; font-weight: bold;}
#photosAddContent .Addedphotos {border: none; margin-top: 35px;}
.plupload_upload_status {}
.addAlbumEmpty {text-align: center; position: absolute; top: 45%; left: 50%; transform: translate(-50%, -50%);}
.addAlbumEmptyCenter {position: relative; margin: auto; height: calc(100vh - 200px);}
@@ -3268,12 +3272,7 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important;
.popinButtons {text-align: right; margin-top: 24px;}
.popinButtons input[type="submit"] {margin-right: 0;}
#albumCreationLoading {
background-color: #ffa744;
color: #3c3c3c; font-size: 12px;
border: none;
padding: 12.2px 28.4px;
font-weight: bold;
display: none;
background-color: #ffa744; color: #3c3c3c; font-size: 12px; border: none; padding: 12.2px 28.4px; font-weight: bold; display: none;
}
.popinField {margin-top: 30px; }
.popinField.addAlbumFormParent {margin-top: 0;}
@@ -3293,6 +3292,142 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important;
#addFiles i::before {margin-left: 13px; font-size: 15px;}
.plupload_filelist_footer {display: none;}
.permitActionListButton .actionButtons {display: flex; flex-direction: column;}
.filterBlock {display: flex;}
.filterBlock li {width: 300px; height: auto;}
#filter_dimension {width: 600px;}
#filter_dimension .slider-choice, #filter_filesize .slider-choice {border-radius: 4px; padding: 2px 8px; margin: 0 3px;}
#checkActions a {background-color: #f0f0f0;padding: 5px;color: #777;font-weight: bold;margin: 4px;border-radius: 5px;}
#filterList select {display: block; padding: 10px 18px; margin-bottom: 5px; width: 290px;}
#filterList li {margin-left: 25px; margin-bottom: 15px;}
#addFilter, #filter_tags .selectize-input.items.not-full.has-options, #filter_tags .selectize-input.items.not-full {padding: 10px 18px;}
#filter_tags .selectize-input {width: 300px; box-shadow: none; border-radius: inherit;}
#filter_tags .selectize-control.multi.plugin-remove_button {width: 300px !important;}
#filter_category .selectize-input.items.full.has-options.has-items {padding: 10px 18px; width: 610px; margin-bottom: 5px;}
#filterList .selectize-input.items.not-full.has-options {margin-bottom: 5px;}
#applyFilter {padding: 15px 0px; margin-left: 0;}
#applyFilter.activated {background-color: #FFA646; color: #3C3C3C;}
#removeFilters {margin-top: 20px; margin-left: 13px;}
.filter_search_input {padding: 10px 0px; width: 300px;}
#permitAction {display: flex;}
#permitAction select {padding: 12px 10px; width: 280px; margin-bottom: 25px; -webkit-appearance: none;}
#applyAction {padding: 10px 18px; margin-left: 0;}
.permitActionItem {margin-left: 30px; width: 225px;}
.permitActionItem .selectize-control.single.plugin-remove_button {width: auto !important;}
.permitActionItem .selectize-input.items.full.has-options.has-items {width: 500px !important; line-height: 23px;}
#action_associate {display: flex;}
#action_associate a:last-child {margin-left: 15px; padding: 10px;}
#applyAction i {margin-right: 15px;}
#action_delete_derivatives, #action_generate_derivatives {display: flex; flex-wrap: wrap; margin-top: 0px;}
.deleteDerivButtons a {border-radius: 4px; padding: 4px 10px; margin: 5px;}
.deleteDerivButtons {margin-bottom: 15px; margin-right: 51px; width: 100%; text-align: center;}
#action_delete_derivatives label, #action_generate_derivatives label {display: flex; margin-top: 4px; width: 50%;}
#action_delete_derivatives input[name="del_derivatives_type[]"], #action_generate_derivatives input[name="generate_derivatives_type[]"] {margin-right: 3px;}
.actionButtonsBlock .actionButtons:first-child::after,#filter_prefilter::before,#filter_category::before,#filter_level::before,
.permitActionListButton div::before, #action_level::after, .pictureLevels::before {
content: '\e835'; font-size: 17px; position: absolute; font-family: "fontello"; color: #6E6E6E; pointer-events: none;
}
.permitActionListButton div::before {margin-left: 250px; margin-top: 11px;}
.pictureLevels::before {margin-left: 216px; margin-top: 10px;}
.permitActionListButton div.hidden::after {display: none;}
.actionButtonsBlock {width: 200px;}
.actionButtonsBlock .actionButtons:first-child::after {margin-left: 169px; margin-top: 11px;}
#filter_prefilter::before {margin-left: 257px; margin-top: 28px;}
#filter_category .selectize-control.single .selectize-input::after {content: none;}
#filter_category {width: 600px;}
#filter_category::before {margin-left: 579px; margin-top: 28px; z-index: 2;}
#filter_level::before {margin-top: 28px; margin-left: 260px;}
#action_level::after {margin-top: -56px; margin-left: 254px;}
#filter_search input {width: 300px; box-sizing: border-box; padding: 11px 18px;}
#addFilter, #filterList select, #filter_tags .selectize-input.items.not-full.has-options, .pictureLevels select {
font-size: 12px;
font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;
-webkit-appearance: none;
font-weight: 700;
}
#action_date_creation input, #action_title input, #action_author input {margin-right: 4px;}
#set_date_creation {margin-top: 5px; margin-left: -2px;}
#action_title .large, #action_author .large {padding: 12px 10px; border: 1px solid #787777a6;margin-bottom: 8px;}
#action_add_tags .selectize-input.items.not-full.has-options,
#action_add_tags .selectize-input.items.not-full.has-options.focus.input-active.dropdown-active, .selectize-input.items.not-full {
padding: 12px 10px; box-shadow: none; border-radius: 0px; border: 1px solid #787777a6;
}
.navigationBar, .thumbnailsActionsNumber {
border-radius: 5px; display: flex; font-size: 12px; font-weight: 700;
font-family: "Open Sans", "Lucida Grande",Verdana,Arial,"Bitstream Vera Sans",sans-serif;
}
.pageNumberSelected {background-color: #ffaf58 !important; border: none !important; border-radius: 0 !important;}
.navigationBar a, .navigationBar span, .thumbnailsActionsNumber a, .thumbnailsActionsNumber span {
padding: 8px 9px; border: none;
}
.navigationBar *:last-child, .thumbnailsActionsNumber *:last-child {padding-right: 17px;}
.thumbnailsActionsNumber *:first-child, .navigationBar *:first-child{padding-left: 17px;}
.navigationBar a:last-child:hover, .thumbnailsActionsNumber a:last-child:hover {
border-bottom-right-radius: 10px; border-top-right-radius: 10px;
}
.thumbnailsActionsNumber a:first-child:hover, .navigationBar a:first-child:hover {
border-bottom-left-radius: 10px; border-top-left-radius: 10px;
}
#batchManagerGlobal UL.thumbnails {display: flex; flex-wrap: wrap; justify-content: flex-start; margin-left: 30px;}
#batchManagerGlobal ul.thumbnails .actions .icon-plus.cboxElement {
background-color: transparent; padding: 0; box-shadow: none; font-size: initial; margin-bottom: 0;
}
#batchManagerGlobal UL.thumbnails .wrap2 {width: 110px !important; height: 110px !important;}
#batchManagerGlobal UL.thumbnails IMG {margin-top: 0; width: 110px; height: 110px; border: 1px solid transparent;}
#batchManagerGlobal UL.thumbnails .wrap2 .icon-pencil {font-size: 15px; margin-left: 4px;}
#batchManagerGlobal UL.thumbnails .wrap2 .icon-plus {margin-right: 2px;}
#batchManagerGlobal .thumbnails li:hover .font-checkbox [class*="icon-check"]::before,
#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before {border-radius: 13px; padding: 1px; content: '\E819'; display: none;}
#batchManagerGlobal .thumbSelected span.icon-check {display: block; z-index: 1;}
#batchManagerGlobal .thumbnails .wrap1:hover span.icon-check-empty {display: block;}
#batchManagerGlobal .thumbnails .wrap1 .icon-check-empty:before {content: '\E823';}
#batchManagerGlobal .thumbnails .font-checkbox [class*="icon-check"]::before {font-size: 17px; line-height: normal;}
#batchManagerGlobal UL.thumbnails .wrap2 .icon-pencil:hover, #batchManagerGlobal UL.thumbnails .wrap2 .icon-zoom-square:hover {color: #fea744;}
#batchManagerGlobal .deleteDerivButtons a:hover, #batchManagerGlobal #checkActions a:hover {
background-color: #ffa646; color: initial; text-decoration: none;
}
.navigationBar a:hover, .thumbnailsActionsNumber a:hover {
color: #666; text-decoration: none; border-radius: 0;
}
#batchManagerGlobal .thumbSelected img {opacity: 0.35; border: 1px solid #fea744 !important;}
#batchManagerGlobal li.thumbSelected:hover .font-checkbox [class*="icon-check"]::before {display: block;}
#filter_category .selectize-input.items.full.has-options.has-items .item,
#filter_category .selectize-input.items.not-full.has-options .item,
#filter_category .selectize-input.items.not-full .item {width: 561px; text-overflow: ellipsis;}
#filter_category .selectize-input.items.full.has-options.has-items,
#filter_category .selectize-input.items.not-full.has-options,
#filter_category .selectize-input.items.not-full {width: 610px;}
#forbidAction {text-align: center; font-weight: 600; padding: 25px 0; background-color: #f3f3f3;}
.selectionEmptyBlock {text-align: center; font-weight: 600; padding: 90px 0;}
#duplicates_options {display: flex; flex-direction: column;}
#batchManagerGlobal .thumbnails .wrap2 .icon-zoom-square::before {font-size: 15px; margin-top: 2.9px; margin-right: 7px;}
#progressBar_pbImage {
width: 300px !important; border-radius: 15px; height: 8px !important; margin-top: 5px !important; background-size: cover;
background-repeat: no-repeat; background-color: #f5f5f5;
}
#regenerationMsg {width: 360px;}
#progressBar {display: flex;}
#progressBar_pbText {margin-left: 15px;}
#filter_search .icon-help-circled::before {margin-right: 5px; color: #777;}
.dimensionSlidersBlocks {display: flex; flex-direction: column; margin-bottom: 8px;}
.dimensionSlidersTitleButtons, .dimensionSlidersRatioButtons {display: flex; justify-content: space-between;}
.dimensionSlidersTitleButtons {margin-bottom: 5px;}
.dimensionSlidersRatioButtons {margin-bottom: 15px;}
#filter_dimension blockquote div:last-child .ui-slider-horizontal {margin-top: 5px;}
#batchManagerGlobal .ui-slider-horizontal .ui-slider-handle {top: -.7em !important; width: 1.4em; height: 1.4em;}
#batchManagerGlobal .ui-slider-handle.ui-state-default.ui-corner-all {border-radius: 10px;}
#action_delete .errors {display: block; min-height: initial; margin: 10px 0px 0px 0px;}
.navigationBar {margin: auto !important;}
.navigationBarRow .navigationBar {width: 35%;}
#batchManagerGlobal .navigationBar {margin-top: 30px !important; width: 100%;}
#batchManagerGlobal .ui-slider-horizontal .ui-slider-range {height: 2px;}
#batchManagerGlobal .ui-slider-horizontal {height: 2px;}
#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {margin-top: -1px;}
#batchManagerGlobal .font-checkbox.selected span:first-child::before {content: '\f192';}
#action_delete_derivatives .font-checkbox span, #action_delete_derivatives .font-checkbox span {margin-right: 5px;}
#action_generate_derivatives, #action_delete_derivatives {width: 320px;}
/* album manager */
.selectedAlbum.cat-list-album-path {
margin: 40px 0 30px 0;
+54 -6
View File
@@ -80,7 +80,7 @@ UL.thumbnails span.wrap2 {
/* .throw, */ td h3 {
background-image: url(images/fillet.png); background-repeat: repeat-x; }
/* borders */
fieldset { border: 2px solid #333; }
fieldset { border: none; }
INPUT, SELECT, TEXTAREA {
border: 1px solid #666;
@@ -291,15 +291,14 @@ a.stat-box:hover {
}
#batchManagerGlobal .thumbnails li:hover .font-checkbox [class*="icon-check"]::before {
color:white;
color: #3C3C3C; background-color: #fea744; border: 2px solid #3C3C3C;
}
#batchManagerGlobal li.thumbSelected .font-checkbox [class*="icon-check"]::before {
color:white;
color: #3C3C3C; background-color: #fea744; border: 2px solid #3C3C3C; display: block;
}
#batchManagerGlobal UL.thumbnails li:hover .wrap2 {
background-color: #ff3363;
color: white;
}
@@ -310,8 +309,8 @@ a.stat-box:hover {
}
#batchManagerGlobal #selectedMessage {
background-color: #555;
color:white;
color: #FFA646;
font-weight: bold;
}
/* TokenInput (with Facebook style for ROMA) */
@@ -788,6 +787,55 @@ li.plupload_delete a:hover {background: url("images/cancelhover.svg")!important;
.addFilesButtonChanged {background-color: #888;}
.addFilesButtonChanged:hover {background-color: #777;}
#checkActions a, .deleteDerivButtons a {background-color: #393939;}
#addFilter, #filterList select, .pictureLevels select {background-color: #444444; color: #BFBFBF}
#filter_category .selectize-input.items.full.has-options.has-items, #filter_tags .selectize-input.items.not-full.has-options,
#filter_tags .selectize-input.items.not-full, #filter_search input, #action_associate .selectize-input.items.full.has-options.has-items,
#action_dissociate .selectize-input.items.full.has-options.has-items {
background: #3C3C3C;
color: #C0C0C0;
border: none!important;
}
#batchManagerGlobal fieldset {margin: 0; margin-top: 30px;}
#permitAction select {background: #3C3C3C; color: #C0C0C0;}
#action_associate a:last-child {color: #C0C0C0; background-color: #464646;}
#forbidAction, .selectionEmptyBlock {background-color: #f3f3f3;}
#batchManagerGlobal .thumbSelected img {opacity: 1 !important;}
#batchManagerGlobal UL.thumbnails IMG {opacity: 0.65;}
#filter_dimension .slider-choice, #filter_filesize .slider-choice {background-color: #393939;}
#filter_dimension .slider-choice:hover, #filter_filesize .slider-choice:hover, .dimension-cancel:hover {
text-decoration: none; background-color: #ffa646 !important; color: initial;
}
#forbidAction, .selectionEmptyBlock {background-color: #5a5757; color: #c1c1c1;}
.navigationBar, .thumbnailsActionsNumber, .navigationBar a,
.navigationBar span, .thumbnailsActionsNumber a, .thumbnailsActionsNumber span {
background-color: #555; border-radius: 10px;
}
.pageNumberSelected {background-color: #b4b4b4;}
.navigationBar a:hover, .thumbnailsActionsNumber a:hover {background-color: #888; color: #444;}
#action_title .large, #action_author .large {background-color: #333; color: #fefefe;}
#addFilter optgroup, #batchManagerGlobal option[disabled] {background-color: #555;}
.dimension-cancel {background-color: #555 !important;}
.pageNumberSelected {color: #777 !important; font-weight: bold;}
.navigationBar span, .thumbnailsActionsNumber span {
color: #777;
}
#batchManagerGlobal .ui-state-default, #batchManagerGlobal .ui-widget-content .ui-state-default,#batchManagerGlobal .ui-widget-header .ui-state-default {
border: 1px solid #ffaf58; background: #ffaf58;
}
#batchManagerGlobal .ui-state-hover,#batchManagerGlobal .ui-widget-content .ui-state-hover, #batchManagerGlobal .ui-widget-header .ui-state-hover {
background: #ffaf58;
}
#batchManagerGlobal .ui-state-focus, #batchManagerGlobal .ui-widget-content .ui-state-focus,#batchManagerGlobal .ui-widget-header .ui-state-focus {
border: 1px solid #ffaf58; background: #ffaf58;
}
#batchManagerGlobal .ui-state-active, #batchManagerGlobal .ui-widget-content .ui-state-active,#batchManagerGlobal .ui-widget-header .ui-state-active {
background: #ffaf58;
}
#batchManagerGlobal .ui-widget-content {background: #666; border: 1px solid #666;}
#batchManagerGlobal .ui-slider .ui-slider-range {background-color: #aaaaaa;}
#batchManagerGlobal .ui-slider-range.ui-widget-header.ui-corner-all {border: 1px solid #ffaf58; background-color: #ffaf58;}
/*Error message*/
.errors {
+3
View File
@@ -1009,4 +1009,7 @@ $lang['Display album date period'] = 'Show the date period associated with each
$lang['Welcome!'] = 'Welcome!';
$lang['Piwigo requires an album to add photos.'] = 'Piwigo requires an album to add photos.';
$lang['Create a first album'] = 'Create a first album';
$lang['Search tips'] = 'Search tips';
$lang['Posted %s'] = 'Posted %s';
$lang['File type: %s'] = 'File type: %s';
$lang['or'] = 'or';
+3
View File
@@ -1002,6 +1002,9 @@ $lang['Time has come to update your Piwigo with version %s, go to %s'] = 'Il est
$lang['Welcome!'] = 'Bienvenue !';
$lang['Piwigo requires an album to add photos.'] = 'Piwigo a besoin d\'un album pour y ajouter des photos.';
$lang['Create a first album'] = 'Créer un premier album';
$lang['Search tips'] = 'Conseils de recherche';
$lang['Posted %s'] = 'Postée %s';
$lang['File type: %s'] = 'Type du fichier : %s';
$lang['or'] = 'ou';
$lang['%d checksums were added'] = '%d sommes de contrôle ont été ajoutées';
$lang['Compute %d missing checksums'] = 'Calcule %d sommes de contrôle manquantes';