diff --git a/lib/Pear/LocalLoop/Controller/Admin/Categories.pm b/lib/Pear/LocalLoop/Controller/Admin/Categories.pm index 529239c..cb86d6e 100644 --- a/lib/Pear/LocalLoop/Controller/Admin/Categories.pm +++ b/lib/Pear/LocalLoop/Controller/Admin/Categories.pm @@ -59,6 +59,7 @@ sub update { my $validation = $c->validation; $validation->required('id'); $validation->required('category', 'trim')->like(qr/^[\w]*$/); + $validation->optional('line_icon'); my $id = $c->param('id'); @@ -70,6 +71,7 @@ sub update { $category->update({ id => $validation->param('id'), name => $validation->param('category'), + line_icon => (defined $validation->param('line_icon') ? $validation->param('line_icon') : undef ), }); $c->flash( success => 'Category Updated' ); $c->redirect_to( '/admin/categories/' . $validation->param('id') ); diff --git a/lib/Pear/LocalLoop/Controller/Api/Stats.pm b/lib/Pear/LocalLoop/Controller/Api/Stats.pm index a467316..db46fd0 100644 --- a/lib/Pear/LocalLoop/Controller/Api/Stats.pm +++ b/lib/Pear/LocalLoop/Controller/Api/Stats.pm @@ -132,7 +132,8 @@ sub post_customer { $cat_total_list{$category_list->{$category}} += $value; } - my @cat_lists = map { { category => $_, value => $cat_total_list{$_} } } sort keys %cat_total_list; + my @cat_lists = map { { category => $_, value => $cat_total_list{$_}, + icon => $c->schema->resultset('Category')->as_hash_name_icon->{$_} || 'question'} } sort keys %cat_total_list; $data->{cat_list} = [ sort { $b->{value} <=> $a->{value} } @cat_lists ]; my $purchase_no_essential_rs = $purchase_rs->search({ diff --git a/lib/Pear/LocalLoop/Schema/ResultSet/Category.pm b/lib/Pear/LocalLoop/Schema/ResultSet/Category.pm index 59f9b98..7f05faa 100644 --- a/lib/Pear/LocalLoop/Schema/ResultSet/Category.pm +++ b/lib/Pear/LocalLoop/Schema/ResultSet/Category.pm @@ -19,4 +19,18 @@ sub as_hash { return \%category_list; } +sub as_hash_name_icon { + my ( $self ) = @_; + + my %category_list = ( + ( + map { + $_->name => $_->line_icon, + } $self->all + ), + 0 => 'Uncategorised', + ); + return \%category_list; +} + 1; diff --git a/t/api/stats.t b/t/api/stats.t index 0c35519..8ecf259 100644 --- a/t/api/stats.t +++ b/t/api/stats.t @@ -86,6 +86,7 @@ $t->post_ok('/api/stats/customer' => json => { }, cat_list => [{ category => "Uncategorised", + icon => 'question', value => 1180, }], essentials => { diff --git a/templates/admin/categories/read.html.ep b/templates/admin/categories/read.html.ep index 5e32820..219fec4 100644 --- a/templates/admin/categories/read.html.ep +++ b/templates/admin/categories/read.html.ep @@ -13,14 +13,19 @@ % }
- +
- +

Do not change the ID unless absolutely necessary.

+
+ + +

See here for all possible options http://simplelineicons.com/.

+