Optimized look and user experience; fixed errors

This commit is contained in:
Florian "flowdy" Heß
2017-01-28 14:00:20 +01:00
parent 5aaff598d1
commit 6f19437901
23 changed files with 1434 additions and 44 deletions

View File

@@ -8,9 +8,14 @@ sub list {
my $self = shift;
my $accounts = $self->app->db->resultset("Account");
my %args = $self->stash("user")->grade ? () : ( type => undef );
$accounts = $accounts->search(\%args, { order_by => { -asc => [qw/type ID/] } });
my $user = $self->stash("user");
my %args = $user->grade ? ()
: $accounts->find( $user->user_id ) ? ( 'me.ID' => $user->user_id )
: ( type => q{} );
$accounts = $accounts->search(\%args, {
order_by => { -asc => [qw/type balance.even_until me.ID/] },
prefetch => 'balance'
});
$self->stash( accounts => $accounts );

View File

@@ -3,6 +3,7 @@ use strict;
package TrsrDB::HTTP::Credit;
use Mojo::Base 'Mojolicious::Controller';
use Carp qw(croak);
use POSIX qw(strftime);
sub list {
my $self = shift;
@@ -33,9 +34,11 @@ sub upsert {
my $db = $self->app->db;
my $id = $self->stash("id");
my $method = $id ? 'find_or_new' : 'new';
my $credit = $db->resultset("Credit")->$method(
{ $id ? (credId => $id) : (), account => $self->stash("account") }
);
my $credit = $db->resultset("Credit")->$method({
$id ? (credId => $id) : (),
account => $self->stash("account"),
date => strftime("%Y-%m-%d", localtime)
});
$self->stash( credit => $credit );
if ( $self->req->method eq 'GET' ) {

View File

@@ -3,6 +3,7 @@ use strict;
package TrsrDB::HTTP::Debit;
use Mojo::Base 'Mojolicious::Controller';
use Carp qw(croak);
use POSIX qw(strftime);
sub list {
my $self = shift;
@@ -42,6 +43,7 @@ sub upsert {
while ( my $m = $group_members->next ) {
my %props = map { $_ => $self->param($_) } @FIELDS;
$props{targetCredit} ||= undef;
for ( $props{billId} ) {
s{\%u}{ $m->ID }e or $_ .= "-" . $m->ID;
}
@@ -53,9 +55,11 @@ sub upsert {
}
my $method = $id ? 'find_or_new' : 'new';
my $debit = $db->resultset("Debit")->$method(
{ $id ? (billId => $id) : (), debtor => $debtor }
);
my $debit = $db->resultset("Debit")->$method({
$id ? (billId => $id) : (),
debtor => $debtor,
date => strftime("%Y-%m-%d", localtime)
});
$self->stash( debit => $debit );
@@ -76,6 +80,7 @@ sub upsert {
for my $field ( @FIELDS ) {
my $value = $self->param($field);
$value = undef if !length $value;
$debit->$field($value);
}
$debit->update_or_insert();
@@ -89,7 +94,15 @@ sub upsert {
my $to_pay_with = $self->every_param("payWith");
if ( @$to_pay_with ) {
$db->make_transfers( $to_pay_with => $self->param("billId") );
my $billId = $self->param("billId");
$db->make_transfers( $to_pay_with => $billId );
for my $param ( grep { /^note\[/ } @{ $self->req->params->names } ) {
my $note = $self->param($param) || next;
s{^note\[}{} && s{\]$}{} for $param;
$db->resultset("Transfer")->find({
billId => $self->param("billId"), credId => $param
})->update({ note => $note });
}
}
$self->redirect_to('home');

View File

@@ -18,6 +18,21 @@ sub login {
$self->render( retry_msg => 'authfailure' );
return;
}
elsif ( my $token = $self->param('token') ) {
my $pw = $self->param("password") // q{};
if ( ($user->password//q{}) ne $token ) {
$self->render( retry_msg => 'authfailure' );
return;
}
elsif ( $pw ne ($self->param("samepassword") // q{}) ) {
$self->render( retry_msg => "Passwords are different" );
return;
}
$self->session("user_id" => $user_id );
$user->salted_password($pw);
$user->update();
$self->redirect_to("home");
}
elsif ( $password && $user->password_equals($password) ) {
$self->session("user_id" => $user_id );
$self->redirect_to("home");
@@ -33,6 +48,7 @@ sub logout {
$self->session(expires => 1);
$self->redirect_to('home');
# $self->stash( retry_msg => 'loggedOut' );
}