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