- Timestamp:
- Nov 19, 2012, 7:26:37 PM (12 years ago)
- Location:
- trunk/admin
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin/batch_manager.php
r18988 r19069 371 371 if (isset($_SESSION['bulk_manager_filter']['dimension']['max_ratio'])) 372 372 { 373 $where_clause[] = 'width/height <= '. $_SESSION['bulk_manager_filter']['dimension']['max_ratio'];373 $where_clause[] = 'width/height <= '.sprintf('%.2f99', $_SESSION['bulk_manager_filter']['dimension']['max_ratio']); 374 374 } 375 375 … … 442 442 // | dimensions | 443 443 // +-----------------------------------------------------------------------+ 444 445 $widths = array(); 446 $heights = array(); 447 $ratios = array(); 448 444 449 $query = ' 445 450 SELECT 446 MIN(width) as min_width, 447 MAX(width) as max_width, 448 MIN(height) as min_height, 449 MAX(height) as max_height, 450 MIN(width/height) as min_ratio, 451 MAX(width/height) as max_ratio 452 FROM '.IMAGES_TABLE.' 453 ;'; 451 DISTINCT width, height 452 FROM '.IMAGES_TABLE.' 453 WHERE width IS NOT NULL 454 AND height IS NOT NULL 455 ;'; 456 $result = pwg_query($query); 457 while ($row = pwg_db_fetch_assoc($result)) 458 { 459 $widths[] = $row['width']; 460 $heights[] = $row['height']; 461 $ratios[] = floor($row['width'] * 100 / $row['height']) / 100; 462 } 463 464 $widths = array_unique($widths); 465 sort($widths); 466 467 $heights = array_unique($heights); 468 sort($heights); 469 470 $ratios = array_unique($ratios); 471 sort($ratios); 472 473 $dimensions['widths'] = implode(',', $widths); 474 $dimensions['heights'] = implode(',', $heights); 475 $dimensions['ratios'] = implode(',', $ratios); 476 454 477 $dimensions['bounds'] = pwg_db_fetch_assoc(pwg_query($query)); 455 $dimensions['bounds']['min_ratio'] = floor($dimensions['bounds']['min_ratio']*100)/100; 456 $dimensions['bounds']['max_ratio'] = ceil($dimensions['bounds']['max_ratio']*100)/100; 478 479 $dimensions['bounds'] = array( 480 'min_width' => $widths[0], 481 'max_width' => $widths[count($widths)-1], 482 'min_height' => $heights[0], 483 'max_height' => $heights[count($heights)-1], 484 'min_ratio' => $ratios[0], 485 'max_ratio' => $ratios[count($ratios)-1], 486 ); 487 488 $ratio_categories = array( 489 'portrait' => array(), 490 'square' => array(), 491 'landscape' => array(), 492 'panorama' => array(), 493 ); 494 495 foreach ($ratios as $ratio) 496 { 497 if ($ratio < 0.95) 498 { 499 $ratio_categories['portrait'][] = $ratio; 500 } 501 502 if ($ratio >= 0.95 and $ratio < 1.05) 503 { 504 $ratio_categories['square'][] = $ratio; 505 } 506 507 if ($ratio > 1.05 and $ratio <= 2.5) 508 { 509 $ratio_categories['landscape'][] = $ratio; 510 } 511 512 if ($ratio > 2.5) 513 { 514 $ratio_categories['panorama'][] = $ratio; 515 } 516 } 517 518 foreach (array_keys($ratio_categories) as $ratio_category) 519 { 520 if (count($ratio_categories[$ratio_category]) > 0) 521 { 522 $dimensions['ratio_'.$ratio_category] = array( 523 'min' => $ratio_categories[$ratio_category][0], 524 'max' => $ratio_categories[$ratio_category][count($ratio_categories[$ratio_category]) - 1] 525 ); 526 } 527 } 457 528 458 529 foreach (array_keys($dimensions['bounds']) as $type) 459 530 { 460 $dimensions['selected'][$type] = isset($_SESSION['bulk_manager_filter']['dimension'][$type]) ? $_SESSION['bulk_manager_filter']['dimension'][$type] : $dimensions['bounds'][$type]; 461 } 531 $dimensions['selected'][$type] = isset($_SESSION['bulk_manager_filter']['dimension'][$type]) 532 ? $_SESSION['bulk_manager_filter']['dimension'][$type] 533 : $dimensions['bounds'][$type] 534 ; 535 } 536 462 537 $template->assign('dimensions', $dimensions); 463 538 -
trunk/admin/themes/clear/theme.css
r19066 r19069 230 230 img.ui-datepicker-trigger{margin:-2px 10px 1px -2px;} 231 231 232 .ui-slider { background:#ddd;border-radius:2px;border:1px solid #999; } 233 .ui-slider .ui-slider-handle { border:1px solid #005e89;background:#fff;border-radius:0.6em; } 234 .ui-slider .ui-slider-range { background:#999;border-radius:2px; } 232 .ui-slider { background:#fff;border-radius:2px;border:none; } 233 .ui-slider .ui-slider-range { background:#aaa;border-radius:2px; } 234 235 .ui-slider .ui-slider-handle { 236 background-color: #eee; 237 border: 1px solid #aaa; 238 border-radius: 3px; 239 } 235 240 236 241 INPUT[type="text"].large { width: 317px; } … … 283 288 #batchManagerGlobal .thumbSelected {background-color:#C2F5C2 !important} 284 289 #batchManagerGlobal #selectedMessage {background-color:#C2F5C2;} 290 #filter_dimension_width_info, #filter_dimension_height_info, #filter_dimension_ratio_info {color:#ff7700;font-weight:bold;} 285 291 286 292 .selectedComment {background-color:#C2F5C2;} -
trunk/admin/themes/default/template/batch_manager_global.tpl
r18988 r19069 487 487 488 488 checkPermitAction(); 489 {/literal}490 489 491 490 /* dimensions sliders */ 491 /** 492 * find the key from a value in the startStopValues array, for the hour slider 493 */ 494 function getSliderKeyFromValue(value, values) { 495 for (var key in values) { 496 if (values[key] == value) { 497 return key; 498 } 499 } 500 501 return 0; 502 } 503 504 {/literal} 505 var dimension_values = {ldelim} 506 'width':[{$dimensions.widths}], 507 'height':[{$dimensions.heights}], 508 'ratio':[{$dimensions.ratios}] 509 }; 510 492 511 $("#filter_dimension_width_slider").slider({ldelim} 493 512 range: true, 494 min: {$dimensions.bounds.min_width}, 495 max: {$dimensions.bounds.max_width}, 496 values: [{$dimensions.selected.min_width}, {$dimensions.selected.max_width}], 513 min: 0, 514 max: dimension_values['width'].length - 1, 515 values: [ 516 getSliderKeyFromValue({$dimensions.selected.min_width}, dimension_values['width']), 517 getSliderKeyFromValue({$dimensions.selected.max_width}, dimension_values['width']) 518 ], 497 519 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])); 520 $("input[name='filter_dimension_min_width']").val(dimension_values['width'][ui.values[0]]); 521 $("input[name='filter_dimension_max_width']").val(dimension_values['width'][ui.values[1]]); 522 523 $("#filter_dimension_width_info").html(sprintf( 524 "{'between %d and %d pixels'|@translate}", 525 dimension_values['width'][ui.values[0]], 526 dimension_values['width'][ui.values[1]] 527 )); 501 528 }, 502 529 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 }); 530 $("input[name='filter_dimension_min_width']").val(dimension_values['width'][ui.values[0]]); 531 $("input[name='filter_dimension_max_width']").val(dimension_values['width'][ui.values[1]]); 532 533 $("#filter_dimension_width_info").html(sprintf( 534 "{'between %d and %d pixels'|@translate}", 535 dimension_values['width'][ui.values[0]], 536 dimension_values['width'][ui.values[1]] 537 )); 538 } 539 }); 540 508 541 $("#filter_dimension_height_slider").slider({ldelim} 509 542 range: true, 510 min: {$dimensions.bounds.min_height}, 511 max: {$dimensions.bounds.max_height}, 512 values: [{$dimensions.selected.min_height}, {$dimensions.selected.max_height}], 543 min: 0, 544 max: dimension_values['height'].length - 1, 545 values: [ 546 getSliderKeyFromValue({$dimensions.selected.min_height}, dimension_values['height']), 547 getSliderKeyFromValue({$dimensions.selected.max_height}, dimension_values['height']) 548 ], 513 549 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])); 550 $("input[name='filter_dimension_min_height']").val(dimension_values['height'][ui.values[0]]); 551 $("input[name='filter_dimension_max_height']").val(dimension_values['height'][ui.values[1]]); 552 553 $("#filter_dimension_height_info").html(sprintf( 554 "{'between %d and %d pixels'|@translate}", 555 dimension_values['height'][ui.values[0]], 556 dimension_values['height'][ui.values[1]] 557 )); 517 558 }, 518 559 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 }); 560 $("input[name='filter_dimension_min_height']").val(dimension_values['height'][ui.values[0]]); 561 $("input[name='filter_dimension_max_height']").val(dimension_values['height'][ui.values[1]]); 562 563 $("#filter_dimension_height_info").html(sprintf( 564 "{'between %d and %d pixels'|@translate}", 565 dimension_values['height'][ui.values[0]], 566 dimension_values['height'][ui.values[1]] 567 )); 568 } 569 }); 570 524 571 $("#filter_dimension_ratio_slider").slider({ldelim} 525 572 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}], 573 min: 0, 574 max: dimension_values['ratio'].length - 1, 575 values: [ 576 getSliderKeyFromValue({$dimensions.selected.min_ratio}, dimension_values['ratio']), 577 getSliderKeyFromValue({$dimensions.selected.max_ratio}, dimension_values['ratio']) 578 ], 530 579 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])); 580 $("input[name='filter_dimension_min_ratio']").val(dimension_values['ratio'][ui.values[0]]); 581 $("input[name='filter_dimension_max_ratio']").val(dimension_values['ratio'][ui.values[1]]); 582 583 $("#filter_dimension_ratio_info").html(sprintf( 584 "{'between %.2f and %.2f'|@translate}", 585 dimension_values['ratio'][ui.values[0]], 586 dimension_values['ratio'][ui.values[1]] 587 )); 534 588 }, 535 589 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])); 590 $("input[name='filter_dimension_min_ratio']").val(dimension_values['ratio'][ui.values[0]]); 591 $("input[name='filter_dimension_max_ratio']").val(dimension_values['ratio'][ui.values[1]]); 592 593 $("#filter_dimension_ratio_info").html(sprintf( 594 "{'between %.2f and %.2f'|@translate}", 595 dimension_values['ratio'][ui.values[0]], 596 dimension_values['ratio'][ui.values[1]] 597 )); 539 598 } 540 599 }); 541 600 542 601 $("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")); 602 var type = jQuery(this).data("type"); 603 var min = jQuery(this).data("min"); 604 var max = jQuery(this).data("max"); 605 606 $("#filter_dimension_"+ type +"_slider").slider( 607 "values", 608 0, 609 getSliderKeyFromValue(min, dimension_values[type]) 610 ); 611 612 $("#filter_dimension_"+type+"_slider").slider("values", 1, getSliderKeyFromValue(max, dimension_values[type])); 545 613 }); 546 614 }); … … 606 674 <a href="#" class="removeFilter" title="remove this filter"><span>[x]</span></a> 607 675 <input type="checkbox" name="filter_dimension_use" class="useFilterCheckbox" {if isset($filter.dimension)}checked="checked"{/if}> 608 {'Dimensions'|@translate} :676 {'Dimensions'|@translate} 609 677 610 678 <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>679 {'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 680 | <a class="dimensions-choice" data-type="width" data-min="{$dimensions.bounds.min_width}" data-max="{$dimensions.bounds.max_width}">{'Reset'|@translate}</a> 613 681 <div id="filter_dimension_width_slider"></div> 614 682 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>683 {'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 684 | <a class="dimensions-choice" data-type="height" data-min="{$dimensions.bounds.min_height}" data-max="{$dimensions.bounds.max_height}">{'Reset'|@translate}</a> 617 685 <div id="filter_dimension_height_slider"></div> 618 686 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> 687 {'Ratio'|@translate} ({'Width'|@translate}/{'Height'|@translate}) <span id="filter_dimension_ratio_info">{'between %.2f and %.2f'|@translate|sprintf:$dimensions.selected.min_ratio:$dimensions.selected.max_ratio}</span> 688 {if isset($dimensions.ratio_portrait.min)} 689 | <a class="dimensions-choice" data-type="ratio" data-min="{$dimensions.ratio_portrait.min}" data-max="{$dimensions.ratio_portrait.max}">{'Portrait'|@translate}</a> 690 {/if} 691 {if isset($dimensions.ratio_square.min)} 692 | <a class="dimensions-choice" data-type="ratio" data-min="{$dimensions.ratio_square.min}" data-max="{$dimensions.ratio_square.max}">{'square'|@translate}</a> 693 {/if} 694 {if isset($dimensions.ratio_landscape.min)} 695 | <a class="dimensions-choice" data-type="ratio" data-min="{$dimensions.ratio_landscape.min}" data-max="{$dimensions.ratio_landscape.max}">{'Landscape'|@translate}</a> 696 {/if} 697 {if isset($dimensions.ratio_panorama.min)} 698 | <a class="dimensions-choice" data-type="ratio" data-min="{$dimensions.ratio_panorama.min}" data-max="{$dimensions.ratio_panorama.max}">{'Panorama'|@translate}</a> 699 {/if} 624 700 | <a class="dimensions-choice" data-type="ratio" data-min="{$dimensions.bounds.min_ratio}" data-max="{$dimensions.bounds.max_ratio}">{'Reset'|@translate}</a> 625 701 <div id="filter_dimension_ratio_slider"></div> -
trunk/admin/themes/default/theme.css
r18976 r19069 970 970 #batchManagerGlobal .useFilterCheckbox {display:none;} 971 971 972 #batchManagerGlobal #filter_dimension blockquote {margin:5px 0 20px 15px;} 973 #batchManagerGlobal #filter_dimension .ui-slider-horizontal {width:650px;margin:5px 0 10px 0;} 974 972 975 973 976 /* TokenInput (with Facebook style) */
Note: See TracChangeset
for help on using the changeset viewer.