| OLD | NEW |
| 1 /* | 1 /* |
| 2 * This file is part of Adblock Plus <https://adblockplus.org/>, | 2 * This file is part of Adblock Plus <https://adblockplus.org/>, |
| 3 * Copyright (C) 2006-present eyeo GmbH | 3 * Copyright (C) 2006-present eyeo GmbH |
| 4 * | 4 * |
| 5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
| 6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
| 7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
| 8 * | 8 * |
| 9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
| 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 209 * @param {Filter} filter | 209 * @param {Filter} filter |
| 210 * @param {SpecialSubscription} [subscription] | 210 * @param {SpecialSubscription} [subscription] |
| 211 * particular group that the filter should be added to | 211 * particular group that the filter should be added to |
| 212 * @param {number} [position] | 212 * @param {number} [position] |
| 213 * position within the subscription at which the filter should be added | 213 * position within the subscription at which the filter should be added |
| 214 */ | 214 */ |
| 215 addFilter(filter, subscription, position) | 215 addFilter(filter, subscription, position) |
| 216 { | 216 { |
| 217 if (!subscription) | 217 if (!subscription) |
| 218 { | 218 { |
| 219 for (let currentSubscription of filter.subscriptions) | 219 for (let currentSubscription of filter.subscriptions()) |
| 220 { | 220 { |
| 221 if (currentSubscription instanceof SpecialSubscription && | 221 if (currentSubscription instanceof SpecialSubscription && |
| 222 !currentSubscription.disabled) | 222 !currentSubscription.disabled) |
| 223 { | 223 { |
| 224 return; // No need to add | 224 return; // No need to add |
| 225 } | 225 } |
| 226 } | 226 } |
| 227 subscription = FilterStorage.getGroupForFilter(filter); | 227 subscription = FilterStorage.getGroupForFilter(filter); |
| 228 } | 228 } |
| 229 if (!subscription) | 229 if (!subscription) |
| 230 { | 230 { |
| 231 // No group for this filter exists, create one | 231 // No group for this filter exists, create one |
| 232 subscription = SpecialSubscription.createForFilter(filter); | 232 subscription = SpecialSubscription.createForFilter(filter); |
| 233 this.addSubscription(subscription); | 233 this.addSubscription(subscription); |
| 234 return; | 234 return; |
| 235 } | 235 } |
| 236 | 236 |
| 237 if (typeof position == "undefined") | 237 if (typeof position == "undefined") |
| 238 position = subscription.filters.length; | 238 position = subscription.filters.length; |
| 239 | 239 |
| 240 filter.subscriptions.add(subscription); | 240 filter.addSubscription(subscription); |
| 241 subscription.filters.splice(position, 0, filter); | 241 subscription.filters.splice(position, 0, filter); |
| 242 filterNotifier.emit("filter.added", filter, subscription, position); | 242 filterNotifier.emit("filter.added", filter, subscription, position); |
| 243 }, | 243 }, |
| 244 | 244 |
| 245 /** | 245 /** |
| 246 * Removes a user-defined filter from the list | 246 * Removes a user-defined filter from the list |
| 247 * @param {Filter} filter | 247 * @param {Filter} filter |
| 248 * @param {SpecialSubscription} [subscription] a particular filter group that | 248 * @param {SpecialSubscription} [subscription] a particular filter group that |
| 249 * the filter should be removed from (if ommited will be removed from all | 249 * the filter should be removed from (if ommited will be removed from all |
| 250 * subscriptions) | 250 * subscriptions) |
| 251 * @param {number} [position] position inside the filter group at which the | 251 * @param {number} [position] position inside the filter group at which the |
| 252 * filter should be removed (if ommited all instances will be removed) | 252 * filter should be removed (if ommited all instances will be removed) |
| 253 */ | 253 */ |
| 254 removeFilter(filter, subscription, position) | 254 removeFilter(filter, subscription, position) |
| 255 { | 255 { |
| 256 let subscriptions = ( | 256 let subscriptions = ( |
| 257 subscription ? [subscription] : filter.subscriptions | 257 subscription ? [subscription] : filter.subscriptions() |
| 258 ); | 258 ); |
| 259 for (let currentSubscription of subscriptions) | 259 for (let currentSubscription of subscriptions) |
| 260 { | 260 { |
| 261 if (currentSubscription instanceof SpecialSubscription) | 261 if (currentSubscription instanceof SpecialSubscription) |
| 262 { | 262 { |
| 263 let positions = []; | 263 let positions = []; |
| 264 if (typeof position == "undefined") | 264 if (typeof position == "undefined") |
| 265 { | 265 { |
| 266 let index = -1; | 266 let index = -1; |
| 267 do | 267 do |
| 268 { | 268 { |
| 269 index = currentSubscription.filters.indexOf(filter, index + 1); | 269 index = currentSubscription.filters.indexOf(filter, index + 1); |
| 270 if (index >= 0) | 270 if (index >= 0) |
| 271 positions.push(index); | 271 positions.push(index); |
| 272 } while (index >= 0); | 272 } while (index >= 0); |
| 273 } | 273 } |
| 274 else | 274 else |
| 275 positions.push(position); | 275 positions.push(position); |
| 276 | 276 |
| 277 for (let j = positions.length - 1; j >= 0; j--) | 277 for (let j = positions.length - 1; j >= 0; j--) |
| 278 { | 278 { |
| 279 let currentPosition = positions[j]; | 279 let currentPosition = positions[j]; |
| 280 if (currentSubscription.filters[currentPosition] == filter) | 280 if (currentSubscription.filters[currentPosition] == filter) |
| 281 { | 281 { |
| 282 currentSubscription.filters.splice(currentPosition, 1); | 282 currentSubscription.filters.splice(currentPosition, 1); |
| 283 if (currentSubscription.filters.indexOf(filter) < 0) | 283 if (currentSubscription.filters.indexOf(filter) < 0) |
| 284 filter.subscriptions.delete(currentSubscription); | 284 filter.removeSubscription(currentSubscription); |
| 285 filterNotifier.emit("filter.removed", filter, currentSubscription, | 285 filterNotifier.emit("filter.removed", filter, currentSubscription, |
| 286 currentPosition); | 286 currentPosition); |
| 287 } | 287 } |
| 288 } | 288 } |
| 289 } | 289 } |
| 290 } | 290 } |
| 291 }, | 291 }, |
| 292 | 292 |
| 293 /** | 293 /** |
| 294 * Moves a user-defined filter to a new position | 294 * Moves a user-defined filter to a new position |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 656 * Joins subscription's filters to the subscription without any notifications. | 656 * Joins subscription's filters to the subscription without any notifications. |
| 657 * @param {Subscription} subscription | 657 * @param {Subscription} subscription |
| 658 * filter subscription that should be connected to its filters | 658 * filter subscription that should be connected to its filters |
| 659 */ | 659 */ |
| 660 function addSubscriptionFilters(subscription) | 660 function addSubscriptionFilters(subscription) |
| 661 { | 661 { |
| 662 if (!FilterStorage.knownSubscriptions.has(subscription.url)) | 662 if (!FilterStorage.knownSubscriptions.has(subscription.url)) |
| 663 return; | 663 return; |
| 664 | 664 |
| 665 for (let filter of subscription.filters) | 665 for (let filter of subscription.filters) |
| 666 filter.subscriptions.add(subscription); | 666 filter.addSubscription(subscription); |
| 667 } | 667 } |
| 668 | 668 |
| 669 /** | 669 /** |
| 670 * Removes subscription's filters from the subscription without any | 670 * Removes subscription's filters from the subscription without any |
| 671 * notifications. | 671 * notifications. |
| 672 * @param {Subscription} subscription filter subscription to be removed | 672 * @param {Subscription} subscription filter subscription to be removed |
| 673 */ | 673 */ |
| 674 function removeSubscriptionFilters(subscription) | 674 function removeSubscriptionFilters(subscription) |
| 675 { | 675 { |
| 676 if (!FilterStorage.knownSubscriptions.has(subscription.url)) | 676 if (!FilterStorage.knownSubscriptions.has(subscription.url)) |
| 677 return; | 677 return; |
| 678 | 678 |
| 679 for (let filter of subscription.filters) | 679 for (let filter of subscription.filters) |
| 680 filter.subscriptions.delete(subscription); | 680 filter.removeSubscription(subscription); |
| 681 } | 681 } |
| OLD | NEW |