https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114458

Revision: 114458
Author:   foxtrott
Date:     2012-03-23 21:37:32 +0000 (Fri, 23 Mar 2012)
Log Message:
-----------
filtered format: printout parameter 'distance filter max distance'; improved 
layout for distance filter; parsing for all printout parameters

Modified Paths:
--------------
    trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Distance.php
    trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Value.php
    
trunk/extensions/SemanticResultFormats/Filtered/libs/ext.srf.filtered.distance-filter.js
    
trunk/extensions/SemanticResultFormats/Filtered/skins/ext.srf.filtered.distance-filter.css

Modified: 
trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Distance.php
===================================================================
--- trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Distance.php 
2012-03-23 21:28:47 UTC (rev 114457)
+++ trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Distance.php 
2012-03-23 21:37:32 UTC (rev 114458)
@@ -24,6 +24,9 @@
        private $mMaxDistance = 1;
 
        public function __construct( &$results, SMWPrintRequest $printRequest, 
SRFFiltered &$queryPrinter ) {
+               
+               global $wgParser;
+               
                parent::__construct($results, $printRequest, $queryPrinter);
                
                if ( !defined('Maps_VERSION') || version_compare( Maps_VERSION, 
'1.0', '<' ) ) {
@@ -35,20 +38,20 @@
                $params = $this->getActualParameters();
 
                if (  array_key_exists( 'distance filter origin', $params ) ) {
-                       $origin = MapsGeocoders::attemptToGeocode( 
$params['distance filter origin'] );
+                       $origin = MapsGeocoders::attemptToGeocode( 
$wgParser->recursiveTagParse( $params['distance filter origin'] ) );
                } else {
                        $origin = array( 'lat'=>'0', 'lon' => '0' );
                }
 
                if ( array_key_exists( 'distance filter unit', $params ) ) {
-                       $this->mUnit = MapsDistanceParser::getValidUnit( 
$params['distance filter unit'] );
+                       $this->mUnit = MapsDistanceParser::getValidUnit( 
$wgParser->recursiveTagParse( $params['distance filter unit'] ) );
                } else {
                        $this->mUnit = MapsDistanceParser::getValidUnit();
                }
 
                // Is the real position stored in a property?
                if ( array_key_exists( 'distance filter property', $params ) ) {
-                       $property = trim( $params['distance filter property'] );
+                       $property = trim( $wgParser->recursiveTagParse( 
$params['distance filter property'] ) );
                        $locations = array();
                } else {
                        $property = null;
@@ -132,10 +135,17 @@
                                
                        }
                }
-               
-               if ( $this->mMaxDistance > 1 ) {
-                       $base = pow( 10, floor( log10( $this->mMaxDistance ) ) 
);
-                       $this->mMaxDistance = ceil ( $this->mMaxDistance / 
$base ) * $base;
+
+               if ( array_key_exists( 'distance filter max distance', $params 
) &&
+                       is_numeric( $maxDist = trim( 
$wgParser->recursiveTagParse( $params['distance filter max distance'] ) ) ) ) {
+                       // this assignation ^^^ is ugly, but intentional
+                       
+                       $this->mMaxDistance = $maxDist;
+               } else {
+                       if ( $this->mMaxDistance > 1 ) {
+                               $base = pow( 10, floor( log10( 
$this->mMaxDistance ) ) );
+                               $this->mMaxDistance = ceil ( 
$this->mMaxDistance / $base ) * $base;
+                       }
                }
                
        }
@@ -155,6 +165,9 @@
         * @return null
         */
        public function getJsData() {
+               
+               global $wgParser;
+               
                $params = $this->getActualParameters();
                
                $ret = array();
@@ -163,11 +176,11 @@
                $ret['max'] = $this->mMaxDistance;
 
                if ( array_key_exists( 'distance filter collapsible', $params ) 
) {
-                       $ret['collapsible'] = trim($params['distance filter 
collapsible']);
+                       $ret['collapsible'] = trim( 
$wgParser->recursiveTagParse( $params['distance filter collapsible'] ) );
                }
                
                if ( array_key_exists( 'distance filter initial value', $params 
) ) {
-                       $ret['initial value'] = trim( $params['distance filter 
initial value'] );
+                       $ret['initial value'] = trim( 
$wgParser->recursiveTagParse( $params['distance filter initial value'] ) );
                }
 
 

Modified: 
trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Value.php
===================================================================
--- trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Value.php    
2012-03-23 21:28:47 UTC (rev 114457)
+++ trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Value.php    
2012-03-23 21:37:32 UTC (rev 114458)
@@ -33,27 +33,30 @@
         * @return null
         */
        public function getJsData() {
+               
+               global $wgParser;
+               
                $params = $this->getActualParameters();
                
                $ret = array();
 
                if ( array_key_exists( 'value filter switches', $params ) ) {
-                       $switches = explode( ',', $params['value filter 
switches'] );
+                       $switches = explode( ',', $wgParser->recursiveTagParse( 
$params['value filter switches'] ) );
                        $switches = array_map( 'trim', $switches );
 
                        $ret['switches'] = $switches;
                }
 
                if ( array_key_exists( 'value filter collapsible', $params ) ) {
-                       $ret['collapsible'] = trim($params['value filter 
collapsible']);
+                       $ret['collapsible'] = trim( 
$wgParser->recursiveTagParse( $params['value filter collapsible'] ) );
                }
 
                if ( array_key_exists( 'value filter height', $params ) ) {
-                       $ret['height'] = trim($params['value filter height']);
+                       $ret['height'] = trim( $wgParser->recursiveTagParse( 
$params['value filter height'] ) );
                }
 
                if ( array_key_exists( 'value filter values', $params ) ) {
-                       $ret['values'] = trim($params['value filter values']);
+                       $ret['values'] = trim( $wgParser->recursiveTagParse( 
$params['value filter values'] ) );
                }
 
                return $ret;

Modified: 
trunk/extensions/SemanticResultFormats/Filtered/libs/ext.srf.filtered.distance-filter.js
===================================================================
--- 
trunk/extensions/SemanticResultFormats/Filtered/libs/ext.srf.filtered.distance-filter.js
    2012-03-23 21:28:47 UTC (rev 114457)
+++ 
trunk/extensions/SemanticResultFormats/Filtered/libs/ext.srf.filtered.distance-filter.js
    2012-03-23 21:37:32 UTC (rev 114458)
@@ -52,42 +52,36 @@
                        // build filter controls
                        var filtercontrols = 
this.children('.filtered-filters').children('.filtered-distance');
                        
-                       var readoutAndSlider = $('<tr>');
+                       var readout = $('<div 
class="filtered-distance-readout">' + iniValue + '</div>' );
 
-                       var readout = $('<div 
class="filtered-distance-readout">' + iniValue + data['unit'] + '</div>' );
-                       var slider = $('<div 
class="filtered-distance-slider">');
-
-                       var readoutTD = $('<td 
class="filtered-distance-readout-cell">');
-                       var sliderTD = $('<td 
class="filtered-distance-slider-cell">');
+                       var table = $('<table 
class="filtered-distance-table"><tbody><tr><td 
class="filtered-distance-min-cell">0</td>' + 
+                               '<td class="filtered-distance-slider-cell"><div 
class="filtered-distance-slider"></div></td>' + 
+                               '<td class="filtered-distance-max-cell">' + 
data['max'] + '</td></tr>' +
+                               '<tr><td colspan=3 
class="filtered-distance-unit-cell">' + data['unit'] + 
'</td></tr></tbody></table>');
                        
-                       readoutTD.append( readout );
-                       sliderTD.append( slider );
-                       
-                       readoutAndSlider
-                       .append( readoutTD )
-                       .append( sliderTD );
-                       
                        filtercontrols
                        .append( '<div class="filtered-distance-label"><span>' 
+ values[i]['printouts'][target]['label'] + '</span></div>' )
-                       .append( readoutAndSlider );
+                       .append( table );
 
-                       readoutAndSlider.wrap('<table><tbody>');
-                       
-                       readout.width( readout.width() ); // fix width of 
readout
-                       
+                       var slider = table.find('.filtered-distance-slider');
+
                        slider.slider({
                                animate: true,
                                max: data['max'],
                                value: iniValue,
                                slide: function(event, ui) {
-                                       readout.empty().append( ui.value + 
data['unit'] );
+                                       readout.empty().append( ui.value );
                                },
                                change: function(event, ui) {
                                        update( filtered, ui.value, target );
                                }
                        });
+
+                       var handle = slider.find('.ui-slider-handle');
+
+                       handle
+                       .append( readout );
                        
-                       
                        return this;
                },
                

Modified: 
trunk/extensions/SemanticResultFormats/Filtered/skins/ext.srf.filtered.distance-filter.css
===================================================================
--- 
trunk/extensions/SemanticResultFormats/Filtered/skins/ext.srf.filtered.distance-filter.css
  2012-03-23 21:28:47 UTC (rev 114457)
+++ 
trunk/extensions/SemanticResultFormats/Filtered/skins/ext.srf.filtered.distance-filter.css
  2012-03-23 21:37:32 UTC (rev 114458)
@@ -5,7 +5,7 @@
 .filtered-filters .filtered-distance { 
        overflow: visible;
        border: 1px solid #aaa;
-       padding: 1em;
+       padding: 1em 1em 0.5em;
        margin: 1em;
 }
 
@@ -28,14 +28,40 @@
        width: 100%;
 }
 
+.filtered-filters .filtered-distance .ui-slider-handle {
+       outline: none;
+       text-decoration: none;
+       width: 0;
+       padding: 0 0.6em;
+}
+
 .filtered-filters .filtered-distance .filtered-distance-readout { 
-       margin: 0 1em;
-       text-align: right;
+       margin: 0;
+       text-align: center;
+       position: relative;
+       top: 10px;
+       left: -50px;
+       width: 100px;
+       color: #000;
 }
 
+.filtered-filters .filtered-distance .filtered-distance-table { 
+       border-collapse: collapse;
+}
+
+.filtered-filters .filtered-distance .filtered-distance-slider-cell { 
+       width: 100%;
+}
+
 .filtered-filters .filtered-distance .filtered-distance-slider { 
        border: 1px solid #aaa;
        border-radius: 3px;
        background: #f1f2ff;
        margin: 0 1em;
 }
+
+.filtered-filters .filtered-distance .filtered-distance-unit-cell { 
+       height: 2.2em;
+       text-align: center;
+       vertical-align: bottom;
+}


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to