Index: utils/archive/reader.dart |
diff --git a/utils/archive/reader.dart b/utils/archive/reader.dart |
index 3a2830fecacb2828f2f96f7882a8ca35a9a1c10e..2336970d5e9b54a6ec7fd388ea1febc3557de76a 100644 |
--- a/utils/archive/reader.dart |
+++ b/utils/archive/reader.dart |
@@ -125,18 +125,29 @@ class ArchiveReader { |
if (format.zip) pending.add(call(SUPPORT_FORMAT_ZIP, id)); |
} |
- if (!filter.options.isEmpty) { |
- pending.add( |
- call(SET_FILTER_OPTIONS, id, [filter.options.serialize()])); |
+ var addOption = (request, option) { |
+ var value; |
+ if (option.value == false || option.value == null) { |
+ value = null; |
+ } else if (option.value == true) { |
+ value = '1'; |
+ } else { |
+ value = option.value.toString(); |
+ } |
+ |
+ pending.add(CALL(request, id, [module, option.name, value])); |
+ }; |
+ |
+ for (var option in filter.options.all) { |
+ addOption(SET_FILTER_OPTION, option); |
} |
- if (!format.options.isEmpty) { |
- pending.add( |
- call(SET_FORMAT_OPTIONS, id, [format.options.serialize()])); |
+ for (var option in format.options.all) { |
+ addOption(SET_FORMAT_OPTION, option); |
} |
- if (!options.isEmpty) { |
- pending.add(call(SET_OPTIONS, id, [options.serialize()])); |
+ for (var option in options.all) { |
+ addOption(SET_OPTION, option); |
} |
return Futures.wait(pending); |