https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114410
Revision: 114410
Author: foxtrott
Date: 2012-03-21 21:37:23 +0000 (Wed, 21 Mar 2012)
Log Message:
-----------
filtered format: printout parameter 'value filter values'
Modified Paths:
--------------
trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Value.php
trunk/extensions/SemanticResultFormats/Filtered/libs/ext.srf.filtered.value-filter.js
Modified:
trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Value.php
===================================================================
--- trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Value.php
2012-03-21 21:36:05 UTC (rev 114409)
+++ trunk/extensions/SemanticResultFormats/Filtered/filters/SRF_FF_Value.php
2012-03-21 21:37:23 UTC (rev 114410)
@@ -37,21 +37,25 @@
$ret = array();
- if ( array_key_exists( 'value filter switches', $params ) ) {
+ if ( array_key_exists( 'value filter switches', $params ) ) {
$switches = explode( ',', $params['value filter
switches'] );
$switches = array_map( 'trim', $switches );
$ret['switches'] = $switches;
}
- if ( array_key_exists( 'value filter collapsible', $params ) )
{
+ if ( array_key_exists( 'value filter collapsible', $params ) ) {
$ret['collapsible'] = trim($params['value filter
collapsible']);
}
- if ( array_key_exists( 'value filter height', $params ) ) {
+ if ( array_key_exists( 'value filter height', $params ) ) {
$ret['height'] = trim($params['value filter height']);
}
+ if ( array_key_exists( 'value filter values', $params ) ) {
+ $ret['values'] = trim($params['value filter values']);
+ }
+
return $ret;
}
Modified:
trunk/extensions/SemanticResultFormats/Filtered/libs/ext.srf.filtered.value-filter.js
===================================================================
---
trunk/extensions/SemanticResultFormats/Filtered/libs/ext.srf.filtered.value-filter.js
2012-03-21 21:36:05 UTC (rev 114409)
+++
trunk/extensions/SemanticResultFormats/Filtered/libs/ext.srf.filtered.value-filter.js
2012-03-21 21:37:23 UTC (rev 114410)
@@ -21,20 +21,20 @@
// show all if no value is checked
if ( selectedInputs.length == 0 ) {
- for ( i in values ) {
+ for ( valueId in values ) {
filtered.filtered(
'voteItemVisibilityAndUpdate', {
'filter': 'value',
'printout' : target,
'visible': true,
- 'item': i
+ 'item': valueId
});
}
} else {
- for ( i in values ) {
+ for ( valueId in values ) {
- var printoutValues =
values[i]['printouts'][target]['values'];
+ var printoutValues =
values[valueId]['printouts'][target]['values'];
var useOr = filtered.filtered(
'getFilterData', {filter: 'value', printout: target, configvar: 'use or'} );
if ( useOr ) {
@@ -70,7 +70,7 @@
'filter': 'value',
'printout' : target,
'visible': selected,
- 'item': i
+ 'item': valueId
});
}
@@ -85,32 +85,50 @@
var switches = filtered.filtered( 'getFilterData',
{filter: 'value', printout: target, configvar: 'switches'} );
var collapsible = filtered.filtered( 'getFilterData',
{filter: 'value', printout: target, configvar: 'collapsible'} );
var height = filtered.filtered( 'getFilterData',
{filter: 'value', printout: target, configvar: 'height'} );
+ var fixedValues = filtered.filtered( 'getFilterData',
{filter: 'value', printout: target, configvar: 'values'} );
- // find distinct values and set visibility for all
items that have
- // some value for this printout
- var distinctValues = [];
-
- var i;
- for ( i in values ) {
- var printoutValues =
values[i]['printouts'][target]['values'];
+ var valueId; // just some valid value ID
+ if ( fixedValues == null ) {
+ // build filter values from available values in
result set
- for (var j in printoutValues) {
- distinctValues[ printoutValues[j] ] =
true;
+ // find distinct values and set visibility for
all items that have
+ // some value for this printout
+ var distinctValues = [];
+
+ for ( valueId in values ) {
+ var printoutValues =
values[valueId]['printouts'][target]['values'];
+
+ for (var j in printoutValues) {
+ distinctValues[
printoutValues[j] ] = true;
+ }
+
+ filtered.filtered(
'voteItemVisibility', {
+ 'filter': 'value',
+ 'printout' : target,
+ 'visible': true,
+ 'item': valueId
+ });
}
- filtered.filtered( 'voteItemVisibility', {
- 'filter': 'value',
- 'printout' : target,
- 'visible': true,
- 'item': i
- });
+ var sortedDistinctValues = [];
+
+ for ( var i in distinctValues ) {
+ sortedDistinctValues.push(i);
+ }
+
+ sortedDistinctValues.sort();
+ } else {
+ // use given values
+ sortedDistinctValues =
fixedValues.split(/\s*,\s*/);
+
+ for ( valueId in values ) break; // get some
valid value ID
}
// build filter controls
var filtercontrols =
this.children('.filtered-filters').children('.' +
target).filter('.filtered-value');
// insert the label of the printout this filter filters
on
- filtercontrols.append('<div
class="filtered-value-label"><span>' + values[i]['printouts'][target]['label']
+ '</span></div>');
+ filtercontrols.append('<div
class="filtered-value-label"><span>' +
values[valueId]['printouts'][target]['label'] + '</span></div>');
if ( collapsible != null && ( collapsible ==
'collapsed' || collapsible == 'uncollapsed') ) {
@@ -192,14 +210,6 @@
}
- var sortedDistinctValues = [];
-
- for ( var i in distinctValues ) {
- sortedDistinctValues.push(i);
- }
-
- sortedDistinctValues.sort();
-
// insert options (checkboxes and labels) and attach
event handlers
// TODO: Do we need to wrap these in a form?
for ( var j in sortedDistinctValues ) {
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs