mirror of
https://github.com/Piwigo/Piwigo.git
synced 2026-07-20 00:23:40 +02:00
Adding the new batch manager implemented by Yann
This commit is contained in:
@@ -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))
|
||||
{
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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&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&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&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} — {/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} — {/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> · <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}&display=20">20</a>
|
||||
· <a href="{$U_DISPLAY}&display=50">50</a>
|
||||
· <a href="{$U_DISPLAY}&display=100">100</a>
|
||||
· <a href="{$U_DISPLAY}&display=all">{'all'|@translate}</a>
|
||||
{'photos per page'|@translate}
|
||||
<a href="{$U_DISPLAY}&display=50">50</a>
|
||||
<a href="{$U_DISPLAY}&display=100">100</a>
|
||||
<a href="{$U_DISPLAY}&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}&display=5">5</a>
|
||||
| <a href="{$U_ELEMENTS_PAGE}&display=10">10</a>
|
||||
| <a href="{$U_ELEMENTS_PAGE}&display=50">50</a>
|
||||
</p>
|
||||
|
||||
</fieldset>
|
||||
|
||||
{if !empty($navbar) }{include file='navigation_bar.tpl'|@get_extent:'navbar'}{/if}
|
||||
<a href="{$U_ELEMENTS_PAGE}&display=10">10</a>
|
||||
<a href="{$U_ELEMENTS_PAGE}&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
@@ -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;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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';
|
||||
|
||||
Reference in New Issue
Block a user