Changeset 2393
- Timestamp:
- 06/09/20 19:34:34 (4 years ago)
- Location:
- trunk/LATMOS-Accounts/lib/LATMOS/Accounts
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm
r2352 r2393 1104 1104 # foo=1 bar=1 => foo =1 and bar = 2 1105 1105 my $results = {}; 1106 my $NegResults = {}; 1106 1107 my $noalias = 0; 1107 1108 … … 1116 1117 # attr=foo => no extra white space ! 1117 1118 # \W is false, it is possible to have two char 1118 my ($ attr, $attrref, $operator, $val) = $item =~ /^(\w+)(?:\.([\.\w]+))?(?:([^\w*]+)(.+))?$/ or next;1119 my ($NegFilter, $attr, $attrref, $operator, $val) = $item =~ /^([\!\-]?)(\w+)(?:\.([\.\w]+))?(?:([^\w*]+)(.+))?$/ or next; 1119 1120 if (!$operator) { 1120 1121 $operator = '~'; … … 1155 1156 1156 1157 if (!@results) { 1157 $results->{$attrKey} ||= {}; 1158 if ($NegFilter eq '!') { 1159 $NegResults->{$attrKey} ||= {}; 1160 } else { 1161 $results->{$attrKey} ||= {}; 1162 } 1158 1163 next; 1159 1164 } … … 1165 1170 1166 1171 $base->log(LA_DEBUG, "Search result: %s: %s", $attr, join(' ', @results)); 1167 $results->{$attrKey} ||= {}; 1168 $results->{$attrKey}{$_} = 1 foreach (@results); 1172 1173 if ($NegFilter eq '!') { 1174 # Filter result to remove: 1175 $NegResults->{$_} = 1 foreach (@results); 1176 } elsif ($NegFilter eq '-') { 1177 # Filter result to filter from attribute result 1178 $results->{$attrKey} ||= {}; 1179 $results->{$attrKey}{$_} = -1 foreach (@results); 1180 } else { 1181 $results->{$attrKey} ||= {}; 1182 $results->{$attrKey}{$_} ||= 1 foreach (@results); 1183 } 1169 1184 } 1170 1185 … … 1176 1191 my @values = keys %mresults; 1177 1192 foreach my $value (sort(@values)) { 1178 if (!$results->{$attr}{$value}) { 1193 my $v = $results->{$attr}{$value} || 0; 1194 if ($v < 1 || $NegResults->{$value}) { 1179 1195 delete($mresults{$value}); 1180 1196 } -
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Cli.pm
r2386 r2393 129 129 } else { 130 130 return( 131 map { $_, "!$_", "-$_" } 131 132 map { ( $_ . '=', $_ . '~' ) } $_[0]->base->list_canonical_fields($_[2], 'r') 132 133 ); -
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Cli/Object.pm
r2375 r2393 118 118 completion => sub { 119 119 return( 120 map { $_, "!$_", "-$_" } 120 121 map { ( $_ . '=', $_ . '~' ) } $_[0]->base->list_canonical_fields($_[0]->{_otype}, 'r') 121 122 );
Note: See TracChangeset
for help on using the changeset viewer.