Skip to content

Commit

Permalink
Add timeframe filter for snippets
Browse files Browse the repository at this point in the history
  • Loading branch information
kraih committed Feb 27, 2024
1 parent 0f8e996 commit fc09c1c
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 10 deletions.
29 changes: 21 additions & 8 deletions assets/vue/ClassifySnippets.vue
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,26 @@
<label
>Confidence:&nbsp;
<select v-model="params.confidence" @change="refreshPage()" class="form-control cavil-pkg-confidence">
<option value="5">5% or less</option>
<option value="10">10% or less</option>
<option value="20">20% or less</option>
<option value="30">30% or less</option>
<option value="50">50% or less</option>
<option value="100">Any</option>
<option value="50">50% or less</option>
<option value="30">30% or less</option>
<option value="20">20% or less</option>
<option value="10">10% or less</option>
<option value="5">5% or less</option>
</select>
</label>
</div>
<div class="form-group mb-2 mr-sm-4">
<label
>Timeframe:&nbsp;
<select v-model="params.timeframe" @change="refreshPage()" class="form-control cavil-pkg-timeframe">
<option value="any">Any</option>
<option value="month">1 month</option>
<option value="week">1 week</option>
<option value="day">1 day</option>
<option value="hour">1 hour</option>
</select>
</label>
</label>
</div>
</form>
</div>
Expand Down Expand Up @@ -156,7 +168,8 @@ export default {
isClassified: true,
isApproved: false,
isLegal: true,
notLegal: true
notLegal: true,
timeframe: 'any'
});
return {
Expand Down Expand Up @@ -236,7 +249,7 @@ export default {
this.getSnippets();
}
},
watch: {...genParamWatchers('isClassified', 'isApproved', 'isLegal', 'notLegal', 'confidence')}
watch: {...genParamWatchers('isClassified', 'isApproved', 'isLegal', 'notLegal', 'confidence', 'timeframe')}
};
</script>
Expand Down
5 changes: 4 additions & 1 deletion lib/Cavil/Controller/Snippet.pm
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,15 @@ sub meta ($self) {
$v->optional('isLegal')->in('true', 'false');
$v->optional('notLegal')->in('true', 'false');
$v->optional('confidence')->num(0, 100);
$v->optional('timeframe')->in('any', 'month', 'week', 'day', 'hour');
$v->optional('before')->num;
return $self->reply->json_validation_error if $v->has_error;
my $is_classified = $v->param('isClassified') // 'true';
my $is_approved = $v->param('isApproved') // 'false';
my $is_legal = $v->param('isLegal') // 'true';
my $not_legal = $v->param('notLegal') // 'true';
my $confidence = $v->param('confidence') // 100;
my $timeframe = $v->param('timeframe') // 'any';
my $before = $v->param('before') // 0;

my $unclassified = $self->snippets->unclassified(
Expand All @@ -47,7 +49,8 @@ sub meta ($self) {
is_classified => $is_classified,
is_approved => $is_approved,
is_legal => $is_legal,
not_legal => $not_legal
not_legal => $not_legal,
timeframe => $timeframe
}
);

Expand Down
8 changes: 7 additions & 1 deletion lib/Cavil/Model/Snippets.pm
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ sub unclassified ($self, $options) {
$confidence = "AND confidence <= " . $options->{confidence};
}

my $timeframe = '';
if ($options->{timeframe} ne 'any') {
my $interval = "1 $options->{timeframe}";
$timeframe = "AND created > NOW() - INTERVAL '$interval'";
}

my $is_approved = 'approved = ' . uc($options->{is_approved});
my $is_classified = 'classified = ' . uc($options->{is_classified});

Expand All @@ -77,7 +83,7 @@ sub unclassified ($self, $options) {

my $snippets = $db->query(
"SELECT *, COUNT(*) OVER() AS total FROM snippets
WHERE $is_approved AND $is_classified $before $legal $confidence ORDER BY id DESC LIMIT 10"
WHERE $is_approved AND $is_classified $before $legal $confidence $timeframe ORDER BY id DESC LIMIT 10"
)->hashes;

my $total = 0;
Expand Down

0 comments on commit fc09c1c

Please sign in to comment.