Skip to content

Commit 1607b79

Browse files
authored
Filtered: Add On/Off switch to filters (Backport) (#334)
Use `|+value filter switches=on off`. Works also for `number filter` and `distance filter`.
1 parent bed9d97 commit 1607b79

File tree

14 files changed

+406
-153
lines changed

14 files changed

+406
-153
lines changed

formats/filtered/README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -81,34 +81,36 @@ providers](http://leaflet-extras.github.io/leaflet-providers/preview/index.html)
8181

8282
## Printout level
8383

84-
* filter (`value`|`distance`|`number`)
84+
* filter (comma-separated list of `value`, `distance`, and/or `number`)
8585
* hide (`yes`|`no`)
8686
* align (`right`|`left`|`center`) (Table view only)
8787
* show if undefined (`yes`|`no`)
8888

8989
### Value filter
9090

9191
* value filter collapsible (`collapsed`|`uncollapsed`)
92-
* value filter switches (`and or`)
92+
* value filter switches (comma-separated list of `and or` and/or `on off`)
9393
* value filter values (list of strings)
9494
* value filter max checkboxes (number. Default: 5)
9595

9696
### Distance filter
9797

9898
* distance filter origin (lat lon): *Required*
9999
* distance filter collapsible (`collapsed`|`uncollapsed`)
100+
* distance filter switches (`on off`)
100101
* distance filter initial value (number)
101102
* distance filter max distance (number)
102103
* distance filter unit (`m`|`km`|`mi`|`nm`)
103104

104105
### Number filter
105106

106107
* number filter collapsible (`collapsed`|`uncollapsed`)
108+
* number filter switches (`on off`)
107109
* number filter min value (number)
108110
* number filter max value (number)
109111
* number filter step (number)
110-
* number filter values (`auto`|list of values): If this parameter is specified,
111-
min, max and step will be ignored.
112+
* number filter values (`auto`|comma-separated list of values):
113+
If this parameter is specified, min, max and step will be ignored.
112114
* number filter sliders (`min`|`max`|`range`|`select`)
113115
* number filter label (string)
114116

formats/filtered/resources/css/ext.srf.filtered.less

Lines changed: 64 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
.filtered-filters {
1010

1111
height: 40%;
12-
overflow: auto;
12+
overflow: hidden;
1313
border: 1px solid #aaaaaa;
1414
margin: 1em;
1515
position: relative;
@@ -20,17 +20,72 @@
2020
display: none;
2121
}
2222

23-
.filtered-filter-label {
23+
.filtered-filter {
24+
position: relative;
2425

25-
height: 0;
26+
.filtered-filter-label {
2627

27-
span {
28-
background-color: #ffffff;
29-
font-weight: bold;
30-
position: relative;
31-
top: -1.8em;
32-
left: 0;
28+
height: 1em;
29+
position: absolute;
30+
top: -.7em;
31+
background: #ffffff;
3332
padding: 0 1em;
33+
font-weight: bold;
34+
35+
}
36+
37+
.filtered-filter-onoff {
38+
position: absolute;
39+
top: -9px;
40+
left: -9px;
41+
width: 0;
42+
height: 0;
43+
44+
&::before {
45+
background: #ffffff;
46+
width: 18px;
47+
height: 18px;
48+
display: inline-block;
49+
text-align: center;
50+
cursor: pointer;
51+
}
52+
53+
}
54+
55+
&.enabled {
56+
.filtered-filter-onoff::before {
57+
content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABaAAAAWgBwI7h9AAAAB3RJTUUH4QoWDTUvLzYe2QAABG9JREFUSMddlW1sFUUUhp+Z2bv3lrbcFpBSigElgilBQaJ8GIwkFwWNQJUIMdEI+EWDghFECUSIGmokGogYCEUTYjAUQRATiGkkoAbiD6lRMYRIEFO+bIu05dK9uzvjj7O0XObPuzvzzjnvnHNmjspNb9qdm04GGT0J/obFYXWGGE1s6/CweHyXrA8V+HWHYOaA4OjdKFIoaglpJ6QSjzI8vQmNh7Z3olAoKnFYHCUai8bSgwUsWzEYjG7Fx8e3d5HGkn6oEXDQOBOIIO3EoV6VCHoJg8VkPwFC2PE8hv6YaQPxifHtBDxiPL0TiIFvhM91jQEMa4HroDbgU4HvzhEREH28lxiIj0wEFNQ5HD6OjsTx+AS7CNGE6goOcLPvQwHq+/2E+ISbv6IMnzLVwmUKXGYIFg/Ldk1ED5FaJhvdafK0k9/2GQ6FW1Yn9lsXCNZPxRBjgoHy7/0umBpJPwz9/lsj+xb+KPPnynE4XP1TdBDS8XkDAf0IeIB2oF1d00AaXAWKDOqZlRLqRcfEwOlVaCz6wS9QaNSuzVgUNjk3blTyMZeAiACIMER71hJgCCafEkEnZwnt2QEMJWLognVUElPpXtNc4CoX9EcoHGrFoRumiVBEL9xOhEf0d4TFYv1/KBpuTIIjxRHgEeGlnOT+fI2sL4r6tqBwywfTRZYuf5ammizVExskx+NahNW8hjSa9NF6KR6TRKTgFQtQZxI83zuVxZINB4kjb7bYPX5QFr/dLwetfYUyOimbckGjidBjG4sNH36ZmJgYJOTqPSkqomLetUUJ9k11ouikCo1Dk0FhUb1223p5Goe+V2nJbTYoNtwx5pZQN8pJmFQ8/+hUwYeX9wUFgyKJjHvjptCDa5/f+x+jiLPzPPloezxRnIzqwi2hHkFEFxEOxxAcNB95+rHmIx0VNxi5GU27cjOAbhzdODJARk26SRio6mM36HI72lTisqWl2OH0N9GEaJAHw57CMhjL/RQopQC5XFNTLqdGJziePJY8GoOPoUpy7V5NXtBkPNInSKPQvwzUlHCGkhNTROMPnbI6eR0WHzv7IjGG2I7A5xq+/wQZ/iWjSzCEGPc6BoVxL+Kj8dUVUhRI+fNwGFy8UW7RzHFid1qZ4M9fs4W9bDl+SNPDiKQDOFi/pzgS237CoDETPsDh4QpvoQHtTtCfUvqzhDQeaZYk1/APedILH0ovuWcdYGH7qF6TClDrP2UxdSzmSy0O9FE5ycGFwnq/VgTd9qTchsO1KCLU6uHEOOJhZwlpJTT10ivMMOHXLJaUrTwjNXX0YlJTu6TYN5Ti0Lh9zSJFb/Row9BmF1CFpUrPkWa0eh8BMcHl45LLhpOy4d2zeDi8d+bQzSC6Ww0Qg3tbulzN3VLtqTvEcXBJUrFiKVe5xNUNeUrJUqprKCdLud3pMYCAAfxFhCOyYwlJEZrnRPGmyVJEh+ZL1S4tEcOzWkXQ8PIksCmB85uFd6BBhG8sIyYi/nMTWSrImrlAGuJK8gTk2fY/1Ja2dn2c6dIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTctMTAtMjJUMTM6NTM6NDctMDc6MDCZnZ5EAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE3LTEwLTIyVDEzOjUzOjQ3LTA3OjAw6MAm+AAAACZ0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vdG1wL1NWRzVLV080Mi5zdmfPk46jAAAAAElFTkSuQmCC);
58+
}
59+
}
60+
61+
&.disabled {
62+
.filtered-filter-onoff::before {
63+
content: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAQAAADlauupAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAAAFoAAABaAHAjuH0AAAAHdElNRQfhChYOBDf4QT9kAAAC7ElEQVQ4yy3QW4jVdRTF8c/vdy4z46ijjWheAknSUCxtKtMwlLKS8oaGVgTa1LGkJiOzsASFHnyQQtOHcrSQCMosL0UiZTRFIz3UVFKJYGTNaGDjJca5nv+vh+PTXnux+O7FDqWVqgU9kl8UY7XqbIkeRzGGn/ZSfZhJ+zBZZrgYt4vZ9RiOmqioR5W35GK7i9kNuu9qlprnU5WIG1CS6nawd6Xc3Hr9WYO++L6yQwZ0Rz02qQtbHUtn1L3xsfD1DGFJEnRiOv4TwwUW3SIdO6i48yODQpuia0W7oxjW+iedMm/XHmHtEtpXSWtm01tP/gSFCXovbhQe/5YzQ6Q1S/W9swW3y4euqJCGyT/yEo2tnNpg4M73+GCnBGkiliki7d8kzDzJrwt57Br9qzbrT01RfXxd7sUjID5xnfyfAxT/AtIU0gQQComOsTQOVPZ1Iw0tLow6Z2yRprXxxUb5ljVyuVapL18BhNOEDnClf4SUX8Txz/n0oDT5KZdnnY3S1OZK+KvV+lAOr4kqV3Q10lWRNUah+mr2fIV/c4hCXW/F7JxytXazzB0Vfd9s5qwDZadJL1T8f1dUZt3yvHj+ARnC6L7K48J4QyWXeHt35zAoNaJKMhAq4DC6VXKPdD5Eqa0NZPPWG4mq7KSzbhMplcKkUilM1yPqNEo+PasW2b1XQT/UR3U/zpK+uSzM3OzsonOuZOMNLi4g1gjped3pSbXhgrricll5myvzpwlzB/P9J+mV40dyDVOQzk0UHp0u3n1UONYg/f0yTqj1oOAzKSyQlRtlN20W9mUMeYhnmkLL74dyDbfGFuHUYqnwoXD/DuHhC0LuO/6YLXUN83PsMGrMl+LTrcKeo4x4V9paK//mSTFuC6UmE1yKU8kOqGpqZUsLNesZWEx7TkrzhLE3UphD71Lp1XEGbd2uL47Vk40LpdVIFgu5ofLlvQYmrpA9d0BY2M64ISgIHTulw4eVtw1W+G0/uWW6y8Ox63+sdBL0yUwzIgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNy0xMC0yMlQxNDowNDo1NS0wNzowMCxQPpAAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTctMTAtMjJUMTQ6MDQ6NTUtMDc6MDBdDYYsAAAAJnRFWHRzdmc6YmFzZS11cmkAZmlsZTovLy90bXAvU1ZHWnhtWk45LnN2ZwRBziMAAAAASUVORK5CYII=);
64+
}
65+
66+
.filtered-filter-collapse {
67+
display: none;
68+
}
69+
}
70+
71+
.filtered-filter-collapse:before {
72+
margin: 0;
73+
background-color: #ffffff;
74+
width: 1.5em;
75+
float: right;
76+
position: absolute;
77+
top: -0.8em;
78+
right: 1em;
79+
text-align: center;
80+
cursor: pointer;
81+
}
82+
83+
.filtered-filter-collapse.collapsed:before {
84+
content: '[+]';
85+
}
86+
87+
.filtered-filter-collapse.uncollapsed:before {
88+
content: '[-]';
3489
}
3590
}
3691

@@ -45,30 +100,6 @@
45100
opacity: .7;
46101
}
47102

48-
.filtered-filter {
49-
position: relative;
50-
}
51-
52-
.filtered-show:before,
53-
.filtered-hide:before {
54-
margin: 0;
55-
background-color: #ffffff;
56-
width: 1.5em;
57-
float: right;
58-
position: absolute;
59-
top: -0.8em;
60-
right: 1em;
61-
text-align: center;
62-
cursor: pointer;
63-
}
64-
65-
.filtered-show:before {
66-
content: '[+]';
67-
}
68-
69-
.filtered-hide:before {
70-
content: '[-]';
71-
}
72103
}
73104

74105
.filtered-views {

formats/filtered/resources/js/ext.srf.filtered.js

Lines changed: 102 additions & 37 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

formats/filtered/resources/js/ext.srf.filtered.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

formats/filtered/resources/ts/Filtered/Controller.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export class Controller {
104104

105105
for ( let rowId in this.data ) {
106106
for ( let filterId in this.filters ) {
107-
this.data[ rowId ].visible[ filterId ] = this.filters[ filterId ].isVisible( rowId );
107+
this.data[ rowId ].visible[ filterId ] = this.filters[ filterId ].isDisabled() || this.filters[ filterId ].isVisible( rowId );
108108
}
109109
if ( this.isVisible( rowId ) ) {
110110
toShow.push( rowId );
@@ -133,7 +133,7 @@ export class Controller {
133133

134134
for ( let rowId in this.data ) {
135135
let oldVisible: boolean = this.data[ rowId ].visible[ filterId ];
136-
let newVisible: boolean = this.filters[ filterId ].isVisible( rowId );
136+
let newVisible: boolean = this.filters[ filterId ].isDisabled() || this.filters[ filterId ].isVisible( rowId );
137137

138138
if ( oldVisible !== newVisible ) {
139139

0 commit comments

Comments
 (0)