Ignore:
Timestamp:
Nov 10, 2012, 9:10:01 PM (11 years ago)
Author:
mistic100
Message:

feature:2718 Add batch manager filters for photo dimensions, redesign with sliders

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/themes/default/template/batch_manager_global.tpl

    r18758 r18988  
    33{include file='include/colorbox.inc.tpl'}
    44{include file='include/add_album.inc.tpl'}
     5{combine_script id='jquery.ui.slider' require='jquery.ui' load='footer' path='themes/default/js/ui/minified/jquery.ui.slider.min.js'}
     6{combine_css path="themes/default/js/ui/theme/jquery.ui.slider.css"}
    57
    68{footer_script}{literal}
     
    388390    $(this).attr("value", -1);
    389391  });
    390  
    391   $("select[name='filter_dimension']").change(function () {
    392     $("span[id^='filter_dimension_']").hide();
    393     $("span#filter_dimension_"+ $(this).attr("value")).show();
    394   });
    395  
    396   $("a.ratio-choice").click(function() {
    397     $("input[name='filter_ratio_min']").val($(this).data("min"));
    398     $("input[name='filter_ratio_max']").val($(this).data("max"));
    399   });
    400392
    401393  function filter_disable(filter) {
     
    494486        }
    495487
    496   checkPermitAction()
     488  checkPermitAction();
     489{/literal}
     490 
     491  /* dimensions sliders */
     492  $("#filter_dimension_width_slider").slider({ldelim}
     493    range: true,
     494    min: {$dimensions.bounds.min_width},
     495    max: {$dimensions.bounds.max_width},
     496    values: [{$dimensions.selected.min_width}, {$dimensions.selected.max_width}],
     497    slide: function(event, ui) {ldelim}
     498      $("input[name='filter_dimension_min_width']").val(ui.values[0]);
     499      $("input[name='filter_dimension_max_width']").val(ui.values[1]);
     500      $("#filter_dimension_width_info").html(sprintf("{'between %d and %d pixels'|@translate}", ui.values[0], ui.values[1]));
     501    },
     502    change: function(event, ui) {ldelim}
     503      $("input[name='filter_dimension_min_width']").val(ui.values[0]);
     504      $("input[name='filter_dimension_max_width']").val(ui.values[1]);
     505      $("#filter_dimension_width_info").html(sprintf("{'between %d and %d pixels'|@translate}", ui.values[0], ui.values[1]));
     506    }
     507  });
     508  $("#filter_dimension_height_slider").slider({ldelim}
     509    range: true,
     510    min: {$dimensions.bounds.min_height},
     511    max: {$dimensions.bounds.max_height},
     512    values: [{$dimensions.selected.min_height}, {$dimensions.selected.max_height}],
     513    slide: function(event, ui) {ldelim}
     514      $("input[name='filter_dimension_min_height']").val(ui.values[0]);
     515      $("input[name='filter_dimension_max_height']").val(ui.values[1]);
     516      $("#filter_dimension_height_info").html(sprintf("{'between %d and %d pixels'|@translate}", ui.values[0], ui.values[1]));
     517    },
     518    change: function(event, ui) {ldelim}
     519      $("input[name='filter_dimension_min_height']").val(ui.values[0]);
     520      $("input[name='filter_dimension_max_height']").val(ui.values[1]);
     521      $("#filter_dimension_height_info").html(sprintf("{'between %d and %d pixels'|@translate}", ui.values[0], ui.values[1]));
     522    }
     523  });
     524  $("#filter_dimension_ratio_slider").slider({ldelim}
     525    range: true,
     526    step: 0.01,
     527    min: {$dimensions.bounds.min_ratio},
     528    max: {$dimensions.bounds.max_ratio},
     529    values: [{$dimensions.selected.min_ratio}, {$dimensions.selected.max_ratio}],
     530    slide: function(event, ui) {ldelim}
     531      $("input[name='filter_dimension_min_ratio']").val(ui.values[0]);
     532      $("input[name='filter_dimension_max_ratio']").val(ui.values[1]);
     533      $("#filter_dimension_ratio_info").html(sprintf("{'between %.2f and %.2f'|@translate}", ui.values[0], ui.values[1]));
     534    },
     535    change: function(event, ui) {ldelim}
     536      $("input[name='filter_dimension_min_ratio']").val(ui.values[0]);
     537      $("input[name='filter_dimension_max_ratio']").val(ui.values[1]);
     538      $("#filter_dimension_ratio_info").html(sprintf("{'between %.2f and %.2f'|@translate}", ui.values[0], ui.values[1]));
     539    }
     540  });
     541 
     542  $("a.dimensions-choice").click(function() {ldelim}
     543    $("#filter_dimension_"+ $(this).data("type") +"_slider").slider("values", 0, $(this).data("min"));
     544    $("#filter_dimension_"+ $(this).data("type") +"_slider").slider("values", 1, $(this).data("max"));
     545  });
    497546});
    498547
    499 
    500 {/literal}{/footer_script}
     548{/footer_script}
    501549
    502550<div id="batchManagerGlobal">
     
    559607        <input type="checkbox" name="filter_dimension_use" class="useFilterCheckbox" {if isset($filter.dimension)}checked="checked"{/if}>
    560608        {'Dimensions'|@translate} :
    561         <label>{'Minimum width'|@translate} <input type="text" name="filter_dimension_min_width" value="{$filter.dimension.min_width}" size="4"></label> —
    562         <label>{'Maximum width'|@translate} <input type="text" name="filter_dimension_max_width" value="{$filter.dimension.max_width}" size="4"></label> —
    563         <label>{'Minimum height'|@translate} <input type="text" name="filter_dimension_min_height" value="{$filter.dimension.min_height}" size="4"></label>     —
    564         <label>{'Maximum height'|@translate} <input type="text" name="filter_dimension_max_height" value="{$filter.dimension.max_height}" size="4"></label>
    565       </li>
    566      
    567       <li id="filter_ratio" {if !isset($filter.ratio)}style="display:none"{/if}>
    568         <a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a>
    569         <input type="checkbox" name="filter_ratio_use" class="useFilterCheckbox" {if isset($filter.ratio)}checked="checked"{/if}>
    570         {'Ratio'|@translate} :
    571         <label>{'Minimum'|@translate} <input type="text" name="filter_ratio_min" value="{$filter.ratio.min}" size="4"></label> —
    572         <label>{'Maximum'|@translate} <input type="text" name="filter_ratio_max" value="{$filter.ratio.max}" size="4"></label> —
    573         <a class="ratio-choice" data-min="" data-max="0.95">{'Portrait'|@translate}</a> |
    574         <a class="ratio-choice" data-min="0.95" data-max="1.05">{'square'|@translate}</a> |
    575         <a class="ratio-choice" data-min="1.05" data-max="2.5">{'Landscape'|@translate}</a> |
    576         <a class="ratio-choice" data-min="2.5" data-max="">{'Panorama'|@translate}</a>
     609       
     610        <blockquote>
     611          {'Width'|@translate} : <span id="filter_dimension_width_info">{'between %d and %d pixels'|@translate|sprintf:$dimensions.selected.min_width:$dimensions.selected.max_width}</span>
     612          | <a class="dimensions-choice" data-type="width" data-min="{$dimensions.bounds.min_width}" data-max="{$dimensions.bounds.max_width}">{'Reset'|@translate}</a>
     613          <div id="filter_dimension_width_slider"></div>
     614         
     615          {'Height'|@translate} : <span id="filter_dimension_height_info">{'between %d and %d pixels'|@translate|sprintf:$dimensions.selected.min_height:$dimensions.selected.max_height}</span>
     616          | <a class="dimensions-choice" data-type="height" data-min="{$dimensions.bounds.min_height}" data-max="{$dimensions.bounds.max_height}">{'Reset'|@translate}</a>
     617          <div id="filter_dimension_height_slider"></div>
     618         
     619          {'Ratio'|@translate} : <span id="filter_dimension_ratio_info">{'between %.2f and %.2f'|@translate|sprintf:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio}</span>
     620          | <a class="dimensions-choice" data-type="ratio" data-min="{$dimensions.bounds.min_ratio}" data-max="0.95">{'Portrait'|@translate}</a>
     621          | <a class="dimensions-choice" data-type="ratio" data-min="0.95" data-max="1.05">{'square'|@translate}</a>
     622          | <a class="dimensions-choice" data-type="ratio" data-min="1.05" data-max="2.5">{'Landscape'|@translate}</a>
     623          | <a class="dimensions-choice" data-type="ratio" data-min="2.5" data-max="{$dimensions.bounds.max_ratio}">{'Panorama'|@translate}</a>
     624          | <a class="dimensions-choice" data-type="ratio" data-min="{$dimensions.bounds.min_ratio}" data-max="{$dimensions.bounds.max_ratio}">{'Reset'|@translate}</a>
     625          <div id="filter_dimension_ratio_slider"></div>
     626        </blockquote>
     627       
     628        <input type="hidden" name="filter_dimension_min_width" value="{$dimensions.selected.min_width}">
     629        <input type="hidden" name="filter_dimension_max_width" value="{$dimensions.selected.max_width}">
     630        <input type="hidden" name="filter_dimension_min_height" value="{$dimensions.selected.min_height}">
     631        <input type="hidden" name="filter_dimension_max_height" value="{$dimensions.selected.max_height}">
     632        <input type="hidden" name="filter_dimension_min_ratio" value="{$dimensions.selected.min_ratio}">
     633        <input type="hidden" name="filter_dimension_max_ratio" value="{$dimensions.selected.max_ratio}">
    577634      </li>
    578635    </ul>
     
    587644        <option value="filter_level" {if isset($filter.level)}disabled="disabled"{/if}>{'Privacy level'|@translate}</option>
    588645        <option value="filter_dimension" {if isset($filter.dimension)}disabled="disabled"{/if}>{'Dimensions'|@translate}</option>
    589         <option value="filter_ratio" {if isset($filter.ratio)}disabled="disabled"{/if}>{'Ratio'|@translate}</option>
    590646      </select>
    591647      <a id="removeFilters" href="">{'Remove all filters'|@translate}</a>
Note: See TracChangeset for help on using the changeset viewer.