Optimized look and user experience; fixed errors
This commit is contained in:
parent
5aaff598d1
commit
6f19437901
10
TrsrDB.pm
10
TrsrDB.pm
@ -13,8 +13,16 @@ sub import {
|
||||
my ($class, $dbh_ref, $filename) = @_;
|
||||
return if @_ == 1;
|
||||
croak "use TrsrDB \$your_db_handle missing" if !defined $dbh_ref;
|
||||
my $filename //= $ENV{TRSRDB_SQLITE_FILE}
|
||||
// croak "No database to open: TRSRDB_SQLITE_FILE environment variable not set, "
|
||||
. "and no filename passed to ".__PACKAGE__."::import() / use";
|
||||
if ( !(-f $filename && -r $filename) ) {
|
||||
croak "Cannot read database file $filename";
|
||||
}
|
||||
|
||||
$$dbh_ref = $class->connect(
|
||||
"DBI:SQLite:" . ($filename // $ENV{TRSRDB_SQLITE_FILE} // ":memory:"),
|
||||
"DBI:SQLite:" . ($filename // $ENV{TRSRDB_SQLITE_FILE}
|
||||
// die "No database to open: TRSRDB_SQLITE_FILE environment variable not set\n"),
|
||||
"", "", {
|
||||
sqlite_unicode => 1,
|
||||
on_connect_call => 'use_foreign_keys',
|
||||
|
@ -11,14 +11,17 @@ __PACKAGE__->add_column("purpose");
|
||||
__PACKAGE__->add_column("value" => { data_type => 'INTEGER' });
|
||||
__PACKAGE__->add_column("paid" => { data_type => 'INTEGER', default => 0 });
|
||||
__PACKAGE__->set_primary_key("billId");
|
||||
__PACKAGE__->add_column("targetCredit" => { data_type => 'INTEGER' });
|
||||
__PACKAGE__->add_column("targetCredit" => {
|
||||
data_type => 'INTEGER',
|
||||
is_nullable => 1
|
||||
});
|
||||
|
||||
__PACKAGE__->belongs_to(
|
||||
account => 'TrsrDB::Account',
|
||||
{ 'foreign.ID' => 'self.debtor' }
|
||||
);
|
||||
|
||||
__PACKAGE__->might_have(
|
||||
__PACKAGE__->belongs_to(
|
||||
target => 'TrsrDB::Credit',
|
||||
{ 'foreign.credId' => 'self.targetCredit' }
|
||||
);
|
||||
|
@ -7,11 +7,22 @@ use Mojolicious::Sessions;
|
||||
use Mojo::Base 'Mojolicious';
|
||||
use POSIX qw(strftime);
|
||||
|
||||
has db => sub {
|
||||
my $db;
|
||||
eval q{use TrsrDB \$db} or $@ && die $@;
|
||||
return $db;
|
||||
};
|
||||
{ my $sql_trace;
|
||||
open my $dfh, '>', \$sql_trace;
|
||||
sub get_trace () {
|
||||
my $t = $sql_trace;
|
||||
$sql_trace = q{};
|
||||
seek $dfh, 0, 0;
|
||||
return \$t;
|
||||
}
|
||||
has db => sub {
|
||||
my $db;
|
||||
eval q{use TrsrDB \$db} or $@ && die $@;
|
||||
$db->storage->debugfh($dfh);
|
||||
return $db;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
# This method will run once at server start
|
||||
sub startup {
|
||||
@ -43,6 +54,16 @@ sub startup {
|
||||
pop =~ s{\n}{<br>}grms;
|
||||
});
|
||||
|
||||
if ( $ENV{DBIC_TRACE} ) {
|
||||
$self->helper(sql_trace => \&get_trace);
|
||||
}
|
||||
else {
|
||||
$self->helper(sql_trace => sub {
|
||||
return "No SQL trace shown here, because environment variable "
|
||||
. "DBIC_TRACE is not set."
|
||||
});
|
||||
}
|
||||
|
||||
if ( my $l = $ENV{LOG} ) {
|
||||
use Mojo::Log;
|
||||
open my $fh, '>', $l or die "Could not open logfile $l to write: $!";
|
||||
@ -63,21 +84,25 @@ sub startup {
|
||||
|
||||
$auth->get( '/logout' )->to("user#logout");
|
||||
|
||||
my $check = $auth->under(sub { shift->stash('grade') })->get('/');
|
||||
my $check = $auth->under(sub {
|
||||
my $c = shift;
|
||||
return $c->stash('grade') || undef;
|
||||
})->get('/');
|
||||
$check->get('/bankStatement' => sub {
|
||||
my $c = shift;
|
||||
$c->stash( records => $c->app->db->resultset("ReconstructedBankStatement") );
|
||||
$c->render('bankStatement');
|
||||
});
|
||||
|
||||
my $admin = $auth->under(sub { shift->stash('grade') > 1 });
|
||||
my $admin = $auth->under(sub {
|
||||
my $c = shift;
|
||||
return $c->stash('grade') > 1 || undef;
|
||||
});
|
||||
$admin->any('/admin')->to('admin#dash');
|
||||
$admin->any( [qw/GET POST/] => '/account/:account' => { account => undef })
|
||||
->to('account#upsert');
|
||||
$admin->post('/:account/in')->to('credit#upsert');
|
||||
$admin->post('/:account/out')->to('debit#upsert');
|
||||
$admin->get('/:account/credits')->to('credit#list');
|
||||
$admin->get('/:account/debits')->to('debit#list');
|
||||
$admin->any( [qw/GET POST/] => '/:account/in')->to('credit#upsert');
|
||||
$admin->any( [qw/GET POST/] => '/:account/out')->to('debit#upsert');
|
||||
$admin->post('/:account/transfer')->to('account#transfer');
|
||||
$admin->any( [qw/GET POST PATCH/] => '/credit/:id' )->to('credit#upsert');
|
||||
$admin->any( [qw/GET POST/] => '/credit')->to('credit#upsert');
|
||||
@ -90,6 +115,8 @@ sub startup {
|
||||
my $account = $auth->get('/:account')->under(sub {
|
||||
my $c = shift;
|
||||
|
||||
return 1 if $c->stash('grade');
|
||||
|
||||
my $account = $c->stash('account');
|
||||
if ( my $acc = $c->app->db->resultset('Account')->find($account) ) {
|
||||
$c->stash( account => $acc );
|
||||
@ -100,13 +127,20 @@ sub startup {
|
||||
return;
|
||||
}
|
||||
|
||||
return $account->type ? $c->stash('grade') : 1;
|
||||
return 1 if !$account->type;
|
||||
|
||||
return $account->ID eq $c->stash("user")->user_id || undef;
|
||||
|
||||
});
|
||||
$account->get('/in')->to("credit#upsert");
|
||||
$account->get('/out')->to("debit#upsert");
|
||||
$account->get('/credits')->to("credit#list");
|
||||
$account->get('/debits')->to("debit#list");
|
||||
$account->get('/:action')->to('account#');
|
||||
|
||||
$r->any('/*whatever' => {whatever => ''} => sub {
|
||||
my $c = shift;
|
||||
my $whatever = $c->param('whatever');
|
||||
$c->render(text => "/$whatever did not match.", status => 404);
|
||||
});
|
||||
}
|
||||
|
||||
my $started_time;
|
||||
|
@ -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 );
|
||||
|
||||
|
@ -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' ) {
|
||||
|
@ -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');
|
||||
|
@ -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' );
|
||||
|
||||
}
|
||||
|
@ -25,7 +25,7 @@ __PACKAGE__->set_primary_key('user_id');
|
||||
sub salted_password {
|
||||
my ($self, $password) = @_;
|
||||
if ( exists $_[1] ) {
|
||||
my $random_string = _randomstring(8);
|
||||
my $random_string = randomstring(8);
|
||||
return $self->password(
|
||||
$random_string."//".hmac_sha256_hex($password, $random_string)
|
||||
);
|
||||
@ -55,7 +55,7 @@ sub sqlt_deploy_hook {
|
||||
}
|
||||
|
||||
my @chars = ( 0..9, "a".."z", "A".."Z" );
|
||||
sub _randomstring {
|
||||
sub randomstring {
|
||||
my ($length) = @_;
|
||||
return join q{}, map { $chars[ int rand(62) ] } 1 .. $length;
|
||||
}
|
||||
|
47
httpuser
Normal file
47
httpuser
Normal file
@ -0,0 +1,47 @@
|
||||
#!/usr/bin/env perl
|
||||
use strict;
|
||||
|
||||
my $db;
|
||||
use TrsrDB \$db;
|
||||
|
||||
use Getopt::Long;
|
||||
|
||||
my %OPTS;
|
||||
GetOptions( \%OPTS, 'add|a', 'reset|r', 'grade|g:i', 'email|m:s', 'username|name|n:s' );
|
||||
|
||||
my $user = shift;
|
||||
if ( !$user ) {
|
||||
die 'No user_id given. Usage: httpuser [-a|-r] $USERNAME [-g 0|1|2] [-m $MAILADDR] [-n $FULL_NAME]', "\n";
|
||||
}
|
||||
|
||||
if ( $OPTS{add} ) {
|
||||
die "--add/-a and --reset/-r (reset password of existing account) contradict" if $OPTS{reset};
|
||||
$user = $db->resultset("User")->create({ user_id => $user, grade => delete $OPTS{grade} });
|
||||
}
|
||||
else {
|
||||
$user = $db->resultset("User")->find($user)
|
||||
// die "No user $user found";
|
||||
}
|
||||
|
||||
if ( delete $OPTS{add} || delete $OPTS{reset} ) {
|
||||
my $random_string = TrsrDB::User::randomstring(50);
|
||||
print "Load or send someone following link:\n",
|
||||
"------------------------------------\n",
|
||||
"<FQDN>/login?token=".$random_string."\n\n";
|
||||
$user->password($random_string);
|
||||
}
|
||||
|
||||
$user->update(\%OPTS);
|
||||
|
||||
print "User data:\n",
|
||||
"----------\n",
|
||||
"ID: ", $user->user_id, "\n",
|
||||
"Grade: ", [
|
||||
"0 - can read main accounts, or his own only when its ID equals his",
|
||||
"1 - can read all accounts and bank statement, but cannot add or change data",
|
||||
"2 - can read and update the database"
|
||||
]->[ $OPTS{grade} // $user->grade ]."\n" // die "Unsupported level: $OPTS{grade}",
|
||||
"E-Mail: ", $OPTS{email} // $user->email // "(none)",
|
||||
"Name: ", $OPTS{username} // $user->username // "(none)"
|
||||
;
|
||||
|
@ -1,5 +1,5 @@
|
||||
CREATE TRIGGER enforceImmutableTransfer
|
||||
BEFORE UPDATE ON Transfer
|
||||
BEFORE UPDATE OF timestamp, credId, billId, amount ON Transfer -- Allow update of note
|
||||
WHEN OLD.amount IS NOT NULL
|
||||
AND NOT EXISTS (SELECT * FROM __INTERNAL_TRIGGER_STACK)
|
||||
BEGIN
|
||||
|
12
server
Executable file
12
server
Executable file
@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env perl
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use FindBin;
|
||||
use lib "$FindBin::Bin";
|
||||
|
||||
$ENV{MOJO_LISTEN} //= "http://127.0.0.1:3000";
|
||||
|
||||
# Start command line interface for application
|
||||
require Mojolicious::Commands;
|
||||
my $app = Mojolicious::Commands->start_app("TrsrDB::HTTP");
|
187
site/add-credit.svg
Normal file
187
site/add-credit.svg
Normal file
@ -0,0 +1,187 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
version="1.1"
|
||||
width="100%"
|
||||
height="100%"
|
||||
viewBox="0 0 57.641069 51.866212"
|
||||
id="Capa_1"
|
||||
xml:space="preserve"><metadata
|
||||
id="metadata3196"><rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
|
||||
id="defs3194" /><g
|
||||
transform="matrix(0.96269008,0,0,0.96269008,0.90252195,-1.9855483)"
|
||||
id="XMLID_21_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"><path
|
||||
d="M 29,48 C 14.641,48 3,45.038 3,42 v 6.996 C 3.008,52.032 14.645,55 29,55 43.355,55 54.992,52.032 55,48.996 V 42 c 0,3.038 -11.641,6 -26,6"
|
||||
id="XMLID_148_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 26,37 C 11.641,37 0,34.038 0,31 v 6.996 C 0.008,41.032 11.645,44 26,44 40.355,44 51.992,41.032 52,37.996 V 31 c 0,3.038 -11.641,6 -26,6"
|
||||
id="XMLID_147_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 32,26 C 17.641,26 6,23.038 6,20 v 6.996 C 6.008,30.032 17.645,33 32,33 46.355,33 57.992,30.032 58,26.996 V 20 c 0,3.038 -11.641,6 -26,6"
|
||||
id="XMLID_146_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 52,8.13 C 52,11.167 40.359,14 26,14 11.641,14 0,11.167 0,8.13 0,5.092 11.641,3 26,3 40.359,3 52,5.092 52,8.13"
|
||||
id="XMLID_145_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 26,14 C 11.641,14 0,11.038 0,8 v 6.996 C 0.008,18.032 11.645,21 26,21 40.355,21 51.992,18.032 52,14.996 V 8 c 0,3.038 -11.641,6 -26,6"
|
||||
id="XMLID_144_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 4,11.074 v 6.995 c 0.608,0.224 1.274,0.44 2,0.646 V 11.719 C 5.274,11.513 4.608,11.297 4,11.074"
|
||||
id="XMLID_143_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 46,11.719 v 6.996 c 0.726,-0.206 1.392,-0.422 2,-0.646 v -6.995 c -0.608,0.224 -1.274,0.439 -2,0.645"
|
||||
id="XMLID_142_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 9,12.445 v 6.997 c 0.64,0.133 1.307,0.259 2,0.378 V 12.823 C 10.307,12.704 9.64,12.578 9,12.445"
|
||||
id="XMLID_141_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 41,12.823 v 6.998 c 0.693,-0.12 1.36,-0.246 2,-0.379 v -6.997 c -0.64,0.133 -1.307,0.259 -2,0.378"
|
||||
id="XMLID_140_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 14,13.269 v 6.998 c 0.652,0.084 1.317,0.162 2,0.232 v -6.998 c -0.683,-0.07 -1.348,-0.149 -2,-0.232"
|
||||
id="XMLID_139_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 36,13.502 V 20.5 c 0.683,-0.071 1.348,-0.149 2,-0.232 v -6.999 c -0.652,0.085 -1.317,0.163 -2,0.233"
|
||||
id="XMLID_138_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 19,13.759 v 6.999 c 0.657,0.046 1.323,0.087 2,0.12 v -7 c -0.677,-0.033 -1.343,-0.073 -2,-0.119"
|
||||
id="XMLID_137_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 31,13.878 v 7 c 0.677,-0.033 1.343,-0.074 2,-0.12 v -6.999 c -0.657,0.046 -1.323,0.086 -2,0.119"
|
||||
id="XMLID_136_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 26,14 c -0.335,0 -0.668,-0.003 -1,-0.006 v 7 c 0.332,0.003 0.665,0.006 1,0.006 0.335,0 0.668,-0.003 1,-0.006 v -7 C 26.668,13.997 26.335,14 26,14"
|
||||
id="XMLID_135_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 10,23.074 v 6.995 c 0.608,0.224 1.274,0.44 2,0.646 v -6.996 c -0.726,-0.206 -1.392,-0.422 -2,-0.645"
|
||||
id="XMLID_134_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 52,23.719 v 6.996 c 0.726,-0.206 1.392,-0.422 2,-0.646 v -6.995 c -0.608,0.224 -1.274,0.439 -2,0.645"
|
||||
id="XMLID_133_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 15,24.445 v 6.997 c 0.64,0.133 1.307,0.259 2,0.378 v -6.997 c -0.693,-0.119 -1.36,-0.245 -2,-0.378"
|
||||
id="XMLID_132_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 47,24.823 v 6.998 c 0.693,-0.12 1.36,-0.246 2,-0.379 v -6.997 c -0.64,0.133 -1.307,0.259 -2,0.378"
|
||||
id="XMLID_131_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 20,25.27 v 6.998 c 0.652,0.084 1.317,0.162 2,0.232 V 25.502 C 21.317,25.431 20.652,25.353 20,25.27"
|
||||
id="XMLID_130_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 42,25.501 V 32.5 c 0.683,-0.071 1.348,-0.149 2,-0.232 V 25.27 c -0.652,0.084 -1.317,0.162 -2,0.231"
|
||||
id="XMLID_129_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 25,25.759 v 6.999 c 0.657,0.046 1.323,0.087 2,0.12 v -7 c -0.677,-0.033 -1.343,-0.073 -2,-0.119"
|
||||
id="XMLID_128_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 37,25.878 v 7 c 0.677,-0.033 1.343,-0.074 2,-0.12 v -6.999 c -0.657,0.046 -1.323,0.086 -2,0.119"
|
||||
id="XMLID_127_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 32,26 c -0.335,0 -0.668,-0.003 -1,-0.006 v 7 c 0.332,0.003 0.665,0.006 1,0.006 0.335,0 0.668,-0.003 1,-0.006 v -7 C 32.668,25.997 32.335,26 32,26"
|
||||
id="XMLID_126_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 4,34.074 v 6.995 c 0.608,0.224 1.274,0.439 2,0.646 V 34.719 C 5.274,34.513 4.608,34.297 4,34.074"
|
||||
id="XMLID_125_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 46,34.719 v 6.996 c 0.726,-0.206 1.392,-0.422 2,-0.646 v -6.995 c -0.608,0.224 -1.274,0.439 -2,0.645"
|
||||
id="XMLID_124_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 9,35.445 v 6.997 c 0.64,0.133 1.307,0.259 2,0.378 V 35.823 C 10.307,35.704 9.64,35.578 9,35.445"
|
||||
id="XMLID_123_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 41,35.823 v 6.998 c 0.693,-0.12 1.36,-0.246 2,-0.379 v -6.997 c -0.64,0.133 -1.307,0.259 -2,0.378"
|
||||
id="XMLID_122_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 14,36.27 v 6.998 c 0.652,0.084 1.317,0.162 2,0.232 V 36.502 C 15.317,36.431 14.652,36.353 14,36.27"
|
||||
id="XMLID_121_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 36,36.501 V 43.5 c 0.683,-0.071 1.348,-0.149 2,-0.232 V 36.27 c -0.652,0.084 -1.317,0.162 -2,0.231"
|
||||
id="XMLID_120_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 19,36.759 v 6.999 c 0.657,0.046 1.323,0.087 2,0.12 v -7 c -0.677,-0.033 -1.343,-0.073 -2,-0.119"
|
||||
id="XMLID_119_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 31,36.878 v 7 c 0.677,-0.033 1.343,-0.074 2,-0.12 v -6.999 c -0.657,0.046 -1.323,0.086 -2,0.119"
|
||||
id="XMLID_118_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 26,37 c -0.335,0 -0.668,-0.003 -1,-0.006 v 7 c 0.332,0.003 0.665,0.006 1,0.006 0.335,0 0.668,-0.003 1,-0.006 v -7 C 26.668,36.997 26.335,37 26,37"
|
||||
id="XMLID_117_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 7,45.074 v 6.995 c 0.608,0.224 1.274,0.439 2,0.646 V 45.719 C 8.274,45.513 7.608,45.297 7,45.074"
|
||||
id="XMLID_116_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 49,45.719 v 6.996 c 0.726,-0.206 1.392,-0.422 2,-0.646 v -6.995 c -0.608,0.224 -1.274,0.439 -2,0.645"
|
||||
id="XMLID_115_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 12,46.445 v 6.997 c 0.64,0.133 1.307,0.259 2,0.378 v -6.997 c -0.693,-0.119 -1.36,-0.245 -2,-0.378"
|
||||
id="XMLID_114_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 44,46.823 v 6.998 c 0.693,-0.12 1.36,-0.246 2,-0.379 v -6.997 c -0.64,0.133 -1.307,0.259 -2,0.378"
|
||||
id="XMLID_113_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 17,47.27 v 6.998 c 0.652,0.084 1.317,0.162 2,0.232 V 47.502 C 18.317,47.431 17.652,47.353 17,47.27"
|
||||
id="XMLID_112_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 39,47.501 V 54.5 c 0.683,-0.071 1.348,-0.149 2,-0.232 V 47.27 c -0.652,0.084 -1.317,0.162 -2,0.231"
|
||||
id="XMLID_111_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 22,47.759 v 6.999 c 0.657,0.046 1.323,0.087 2,0.12 v -7 c -0.677,-0.033 -1.343,-0.073 -2,-0.119"
|
||||
id="XMLID_110_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 34,47.878 v 7 c 0.677,-0.033 1.343,-0.074 2,-0.12 v -6.999 c -0.657,0.046 -1.323,0.086 -2,0.119"
|
||||
id="XMLID_109_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="m 29,48 c -0.335,0 -0.668,-0.003 -1,-0.006 v 7 c 0.332,0.003 0.665,0.006 1,0.006 0.335,0 0.668,-0.003 1,-0.006 v -7 C 29.668,47.997 29.335,48 29,48"
|
||||
id="XMLID_108_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 51.212,39.372 C 48.372,41.87 38.163,44 26,44 16.49,44 8.177,42.697 3.644,40.935 3.227,41.313 3,41.713 3,42.13 3,45.168 14.641,48 29,48 c 14.36,0 26,-2.832 26,-5.87 0,-1.047 -1.385,-1.983 -3.788,-2.758"
|
||||
id="XMLID_107_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 32,33 C 18.787,33 7.884,30.485 6.226,27.717 2.347,28.596 0,29.767 0,31.13 0,34.167 11.641,37 26,37 40.359,37 52,34.167 52,31.13 52,30.996 51.97,30.865 51.925,30.735 47.156,32.077 40.002,33 32,33"
|
||||
id="XMLID_106_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /><path
|
||||
d="M 50.993,16.549 C 47.882,18.969 37.874,21 26,21 18.332,21 11.441,20.152 6.682,18.9 6.241,19.29 6,19.7 6,20.13 6,23.168 17.641,26 32,26 c 14.359,0 26,-2.832 26,-5.87 0,-1.452 -2.663,-2.687 -7.007,-3.581"
|
||||
id="XMLID_105_"
|
||||
style="fill:none;stroke:#575757;stroke-width:1.89999998;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" /></g><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3162" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3164" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3166" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3168" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3170" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3172" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3174" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3176" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3178" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3180" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3182" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3184" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3186" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3188" /><g
|
||||
transform="translate(-0.28094785,-4.0730385)"
|
||||
id="g3190" /><path
|
||||
d="m 15.449764,18.137746 0,11.814152 -11.7999524,0 0,10.678176 11.7999524,0 0,11.814151 10.692375,0 0,-11.814151 11.799952,0 0,-10.678176 -11.799952,0 0,-11.814152 -10.692375,0 z"
|
||||
id="rect3198"
|
||||
style="color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /></svg>
|
After Width: | Height: | Size: 14 KiB |
101
site/add-debit.svg
Normal file
101
site/add-debit.svg
Normal file
@ -0,0 +1,101 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
version="1.2"
|
||||
width="53.532574"
|
||||
height="58.111126"
|
||||
id="svg3223">
|
||||
<defs
|
||||
id="defs3225" />
|
||||
<metadata
|
||||
id="metadata3228">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(-400.42529,-306.97572)"
|
||||
id="layer1">
|
||||
<rect
|
||||
width="42.944054"
|
||||
height="49.870514"
|
||||
x="408.4845"
|
||||
y="309.50504"
|
||||
id="rect3231"
|
||||
style="color:#000000;fill:none;stroke:#545454;stroke-width:5.05862427;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<rect
|
||||
width="28.167603"
|
||||
height="1.3852918"
|
||||
x="415.87274"
|
||||
y="321.04913"
|
||||
id="rect4001"
|
||||
style="color:#000000;fill:none;stroke:#545454;stroke-width:5.05862427;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<rect
|
||||
width="14.858214"
|
||||
height="1.0052946"
|
||||
x="414.67746"
|
||||
y="331.85971"
|
||||
id="rect4001-6"
|
||||
style="color:#000000;fill:none;stroke:#545454;stroke-width:3.12980151;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<rect
|
||||
width="14.858214"
|
||||
height="1.0052946"
|
||||
x="414.67746"
|
||||
y="337.5163"
|
||||
id="rect4001-6-7"
|
||||
style="color:#000000;fill:none;stroke:#545454;stroke-width:3.12980151;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<rect
|
||||
width="14.858214"
|
||||
height="1.0052946"
|
||||
x="414.67746"
|
||||
y="343.17288"
|
||||
id="rect4001-6-5"
|
||||
style="color:#000000;fill:none;stroke:#545454;stroke-width:3.12980151;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<flowRoot
|
||||
id="flowRoot4565"
|
||||
xml:space="preserve"
|
||||
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"><flowRegion
|
||||
id="flowRegion4567"><rect
|
||||
width="157.14285"
|
||||
height="180"
|
||||
x="114.28571"
|
||||
y="758.07648"
|
||||
id="rect4569"
|
||||
style="font-size:12px" /></flowRegion><flowPara
|
||||
id="flowPara4571"></flowPara></flowRoot> <flowRoot
|
||||
id="flowRoot4573"
|
||||
xml:space="preserve"
|
||||
style="font-size:16px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"><flowRegion
|
||||
id="flowRegion4575"><rect
|
||||
width="180"
|
||||
height="194.28572"
|
||||
x="174.28572"
|
||||
y="769.50507"
|
||||
id="rect4577" /></flowRegion><flowPara
|
||||
id="flowPara4579"></flowPara></flowRoot> <g
|
||||
transform="matrix(0.31751038,0,0,0.31751038,381.44127,88.814217)"
|
||||
id="flowRoot4581"
|
||||
style="font-size:64px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#4e4e4e;fill-opacity:1;stroke:#545454;stroke-opacity:1;font-family:Sans;-inkscape-font-specification:Sans">
|
||||
<path
|
||||
d="m 203.09375,805.0107 c -1.9792,1.14583 -4.05212,2.01041 -6.21875,2.59375 -2.14587,0.58333 -4.38545,0.875 -6.71875,0.875 -5.45836,0 -10.06252,-1.35417 -13.8125,-4.0625 -3.72918,-2.72916 -6.37501,-6.64583 -7.9375,-11.75 l -6.78125,0 2.75,-6.09375 3.0625,0 c -0.0208,-0.29165 -0.0417,-0.59373 -0.0625,-0.90625 0,-0.33331 0,-0.79165 0,-1.375 0,-0.60415 0,-1.0729 0,-1.40625 0.0208,-0.33331 0.0417,-0.65623 0.0625,-0.96875 l -5.8125,0 2.75,-6.09375 4.03125,0 c 1.60416,-5.12497 4.26041,-9.03121 7.96875,-11.71875 3.72915,-2.68746 8.32289,-4.03121 13.78125,-4.03125 2.3333,4e-5 4.57288,0.29171 6.71875,0.875 2.16663,0.58338 4.23955,1.44796 6.21875,2.59375 l 0,9.65625 c -1.68754,-1.62497 -3.48962,-2.84372 -5.40625,-3.65625 -1.9167,-0.8333 -3.90628,-1.24996 -5.96875,-1.25 -2.64586,4e-5 -4.90627,0.64587 -6.78125,1.9375 -1.85419,1.27087 -3.25002,3.13545 -4.1875,5.59375 l 16.84375,0 -2.6875,6.09375 -15.40625,0 c -0.0417,0.33335 -0.0729,0.68752 -0.0937,1.0625 -2e-5,0.37502 -2e-5,0.93752 0,1.6875 -2e-5,0.27085 -2e-5,0.57294 0,0.90625 0.0208,0.31252 0.0417,0.64585 0.0625,1 l 13.40625,0 -2.78125,6.09375 -9.34375,0 c 1.04165,2.54168 2.46873,4.44792 4.28125,5.71875 1.83331,1.27084 4.06247,1.90625 6.6875,1.90625 2.06247,0 4.03122,-0.40625 5.90625,-1.21875 1.8958,-0.83333 3.71871,-2.07291 5.46875,-3.71875 l 0,9.65625"
|
||||
id="path4590"
|
||||
style="font-weight:bold;fill:#4e4e4e;fill-opacity:1;stroke:#545454;stroke-opacity:1;-inkscape-font-specification:Sans Bold" />
|
||||
</g>
|
||||
<path
|
||||
d="m 412.22524,330.78037 0,11.81415 -11.79995,0 0,10.67818 11.79995,0 0,11.81415 10.69238,0 0,-11.81415 11.79995,0 0,-10.67818 -11.79995,0 0,-11.81415 -10.69238,0 z"
|
||||
id="rect3198"
|
||||
style="color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 6.0 KiB |
63
site/even.svg
Normal file
63
site/even.svg
Normal file
@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg id="svg1306" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="48px" width="48px" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
<defs id="defs1308">
|
||||
<radialGradient id="radialGradient3976" gradientUnits="userSpaceOnUse" cy="40" cx="23.857" gradientTransform="matrix(1 0 0 .5 0 20)" r="17.143">
|
||||
<stop id="stop4128" offset="0"/>
|
||||
<stop id="stop4130" stop-opacity="0" offset="1"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="linearGradient3980" y2="-8.5627" gradientUnits="userSpaceOnUse" x2="20.065" y1="53.836" x1="43.936">
|
||||
<stop id="stop2481" stop-color="#ffe69b" offset="0"/>
|
||||
<stop id="stop2483" stop-color="#fff" offset="1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="linearGradient3982" y2="15.815" gradientUnits="userSpaceOnUse" x2="20.917" gradientTransform="matrix(1.003 0 0 1.003 -.071859 .019684)" y1="33.955" x1="21.994">
|
||||
<stop id="stop3959" stop-color="#fffeff" stop-opacity=".33333" offset="0"/>
|
||||
<stop id="stop3961" stop-color="#fffeff" stop-opacity=".21569" offset="1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<metadata id="metadata1311">
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Rodney Dawes</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Steiner, Garrett LeSage</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/"/>
|
||||
<dc:title/>
|
||||
</cc:Work>
|
||||
<cc:License rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
|
||||
<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
|
||||
<cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
|
||||
<cc:requires rdf:resource="http://web.resource.org/cc/Notice"/>
|
||||
<cc:requires rdf:resource="http://web.resource.org/cc/Attribution"/>
|
||||
<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
|
||||
<cc:requires rdf:resource="http://web.resource.org/cc/ShareAlike"/>
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g id="layer2">
|
||||
<path id="path6548" opacity=".6" style="color:#000000" d="m41 40a17.143 8.5714 0 1 1 -34.286 0 17.143 8.5714 0 1 1 34.286 0z" transform="matrix(1.0706 0 0 .525 -.89276 22.5)" display="block" fill="url(#radialGradient3976)"/>
|
||||
</g>
|
||||
<g id="layer1">
|
||||
<g id="g4006">
|
||||
<path id="path1314" d="m46.857 23.929c0 12.9-10.457 23.357-23.357 23.357s-23.357-10.457-23.357-23.357 10.457-23.357 23.357-23.357 23.357 10.457 23.357 23.357z" transform="matrix(.92049 0 0 .92049 2.3685 .97408)" stroke="#4e9a06" stroke-width="1.0864" fill="#73d216"/>
|
||||
<path id="path3560" opacity=".34659" d="m49.902 26.635c0 13.25-10.741 23.991-23.991 23.991s-23.991-10.741-23.991-23.991 10.741-23.991 23.991-23.991 23.991 10.741 23.991 23.991z" fill-opacity="0" transform="matrix(.85609 0 0 .85609 1.8183 .19777)" stroke="url(#linearGradient3980)" stroke-width="1.1681"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="layer3">
|
||||
<g id="text4967" fill="#eeeeec" stroke="#eeeeec">
|
||||
<path id="path4984" style="" d="m14.707 25.178c0.62921 0.000015 1.1052 0.5163 1.4278 1.5489 0.64534 1.9361 1.1052 2.9041 1.3794 2.9041 0.20973 0.000012 0.42753-0.16133 0.65342-0.48402 4.5336-7.2602 8.7284-13.133 12.584-17.618 1.0003-1.1616 2.5895-1.7424 4.7676-1.7425 0.51625 0.0000313 0.86313 0.048433 1.0406 0.1452 0.17744 0.096834 0.26618 0.21784 0.26621 0.36301-0.000033 0.2259-0.26624 0.66959-0.79863 1.331-6.2277 7.4861-12.004 15.392-17.328 23.717-0.37109 0.58082-1.1294 0.87124-2.2749 0.87123-1.1617 0.000005-1.8473-0.0484-2.0571-0.1452-0.54856-0.242-1.1939-1.4762-1.9361-3.7027-0.83897-2.4685-1.2585-4.0173-1.2584-4.6466-0.000008-0.67761 0.56468-1.331 1.6941-1.9603 0.69375-0.3872 1.3068-0.5808 1.8393-0.58082"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="layer4">
|
||||
<path id="path3955" fill="url(#linearGradient3982)" d="m43.429 21.8c0 10.863-10.386-6.285-18.731 0.388-8.151 6.517-20.659 12.227-20.659 1.364 0.0004-11.118 8.722-21.431 19.585-21.431 10.863-0.0002 19.805 8.816 19.805 19.679z"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.2 KiB |
68
site/list.svg
Normal file
68
site/list.svg
Normal file
@ -0,0 +1,68 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
version="1.1"
|
||||
width="51.552567"
|
||||
height="44.168541"
|
||||
id="svg3984">
|
||||
<defs
|
||||
id="defs3986" />
|
||||
<metadata
|
||||
id="metadata3989">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(-371.25452,-454.25138)"
|
||||
id="layer1">
|
||||
<g
|
||||
transform="matrix(0.1585623,0,0,0.1585623,360.7434,441.64285)"
|
||||
id="g3955">
|
||||
<path
|
||||
d="m 74.290179,89.517857 0,34.281253 40.000001,0 0,-34.281253 -40.000001,0 z m 85.718751,0 0,34.281253 231.40625,0 0,-34.281253 -231.40625,0 z"
|
||||
id="rect2985"
|
||||
style="opacity:0.37423317;color:#000000;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.9000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 74.290179,167.60953 0,34.28125 40.000001,0 0,-34.28125 -40.000001,0 z m 85.718751,0 0,34.28125 231.40625,0 0,-34.28125 -231.40625,0 z"
|
||||
id="rect2985-5"
|
||||
style="opacity:0.37423317;color:#000000;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.9000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 74.290179,323.79299 0,34.28125 40.000001,0 0,-34.28125 -40.000001,0 z m 85.718751,0 0,34.28125 231.40625,0 0,-34.28125 -231.40625,0 z"
|
||||
id="rect2985-3"
|
||||
style="opacity:0.37423317;color:#000000;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.9000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 74.290179,245.70126 0,34.28125 40.000001,0 0,-34.28125 -40.000001,0 z m 85.718751,0 0,34.28125 231.40625,0 0,-34.28125 -231.40625,0 z"
|
||||
id="rect2985-56"
|
||||
style="opacity:0.37423317;color:#000000;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.9000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 66.290179,79.517857 0,34.281253 40.000001,0 0,-34.281253 -40.000001,0 z m 85.718751,0 0,34.281253 231.40625,0 0,-34.281253 -231.40625,0 z"
|
||||
id="path3943"
|
||||
style="color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.9000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 66.290179,157.60953 0,34.28125 40.000001,0 0,-34.28125 -40.000001,0 z m 85.718751,0 0,34.28125 231.40625,0 0,-34.28125 -231.40625,0 z"
|
||||
id="path3945"
|
||||
style="color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.9000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 66.290179,313.79299 0,34.28125 40.000001,0 0,-34.28125 -40.000001,0 z m 85.718751,0 0,34.28125 231.40625,0 0,-34.28125 -231.40625,0 z"
|
||||
id="path3947"
|
||||
style="color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.9000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
<path
|
||||
d="m 66.290179,235.70126 0,34.28125 40.000001,0 0,-34.28125 -40.000001,0 z m 85.718751,0 0,34.28125 231.40625,0 0,-34.28125 -231.40625,0 z"
|
||||
id="path3949"
|
||||
style="color:#000000;fill:#000080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3.9000001;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.1 KiB |
@ -13,6 +13,14 @@ h1 {
|
||||
border-bottom: 5px double grey;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table td, table th {
|
||||
border: 1px solid darkgrey;
|
||||
}
|
||||
|
||||
table tr:nth-child(even) {
|
||||
background-color: #eee;
|
||||
}
|
||||
@ -68,3 +76,24 @@ select {
|
||||
color: lightgrey;
|
||||
font-size: .8em;
|
||||
}
|
||||
|
||||
img.icon {
|
||||
vertical-align:middle;
|
||||
height: 1.2em;
|
||||
}
|
||||
|
||||
.targettable { display:none }
|
||||
.targettable:target { display: block; }
|
||||
|
||||
#bottommenu {
|
||||
font-size:smaller;
|
||||
background-color: #eee;
|
||||
border-top: 5px double grey;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#footer {
|
||||
font-size:smaller;
|
||||
color: darkgrey;
|
||||
text-align: center;
|
||||
}
|
||||
|
665
site/transfer.svg
Normal file
665
site/transfer.svg
Normal file
@ -0,0 +1,665 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="48px"
|
||||
height="48px"
|
||||
id="svg1306"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48.0 r9654"
|
||||
sodipodi:docname="Emblem-conflicting.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs1308">
|
||||
<linearGradient
|
||||
id="linearGradient3957">
|
||||
<stop
|
||||
style="stop-color:#fffeff;stop-opacity:0.33333334;"
|
||||
offset="0"
|
||||
id="stop3959" />
|
||||
<stop
|
||||
style="stop-color:#fffeff;stop-opacity:0.21568628;"
|
||||
offset="1"
|
||||
id="stop3961" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2536">
|
||||
<stop
|
||||
style="stop-color:#a40000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2538" />
|
||||
<stop
|
||||
style="stop-color:#ff1717;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2540" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2479">
|
||||
<stop
|
||||
style="stop-color:#ffe69b;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2481" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop2483" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4126"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop4128"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4130"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4126"
|
||||
id="radialGradient2169"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.000000,0.000000,0.000000,0.500000,1.899196e-14,20.00000)"
|
||||
cx="23.857143"
|
||||
cy="40.000000"
|
||||
fx="23.857143"
|
||||
fy="40.000000"
|
||||
r="17.142857" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2479"
|
||||
id="linearGradient2485"
|
||||
x1="43.93581"
|
||||
y1="53.835983"
|
||||
x2="20.064686"
|
||||
y2="-8.5626707"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2536"
|
||||
id="linearGradient2542"
|
||||
x1="36.917976"
|
||||
y1="66.288063"
|
||||
x2="19.071495"
|
||||
y2="5.5410109"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2536"
|
||||
id="linearGradient3046"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="36.917976"
|
||||
y1="66.288063"
|
||||
x2="19.071495"
|
||||
y2="5.5410109" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2479"
|
||||
id="linearGradient3048"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="43.93581"
|
||||
y1="53.835983"
|
||||
x2="20.064686"
|
||||
y2="-8.5626707" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2536"
|
||||
id="linearGradient3064"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="36.917976"
|
||||
y1="66.288063"
|
||||
x2="19.071495"
|
||||
y2="5.5410109" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2479"
|
||||
id="linearGradient3066"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="43.93581"
|
||||
y1="53.835983"
|
||||
x2="20.064686"
|
||||
y2="-8.5626707" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3957"
|
||||
id="linearGradient3963"
|
||||
x1="21.993773"
|
||||
y1="33.955299"
|
||||
x2="20.917078"
|
||||
y2="15.814602"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4126"
|
||||
id="radialGradient3976"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.5,0,20)"
|
||||
cx="23.857143"
|
||||
cy="40.000000"
|
||||
fx="23.857143"
|
||||
fy="40.000000"
|
||||
r="17.142857" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3957"
|
||||
id="linearGradient3982"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="21.993773"
|
||||
y1="33.955299"
|
||||
x2="20.917078"
|
||||
y2="15.814602"
|
||||
gradientTransform="matrix(1.0316405,0,0,1.0139432,-0.62678087,-0.12022903)" />
|
||||
<linearGradient
|
||||
gradientTransform="translate(0,-2)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="35.05225"
|
||||
x2="24.30225"
|
||||
y1="15.80225"
|
||||
x1="21.75"
|
||||
id="linearGradient2262"
|
||||
xlink:href="#linearGradient2256"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(4.154957,0,0,3.198723,-52.84553,-23.50921)"
|
||||
r="21.25"
|
||||
fy="10.666344"
|
||||
fx="16.75"
|
||||
cy="10.666344"
|
||||
cx="16.75"
|
||||
id="radialGradient2254"
|
||||
xlink:href="#linearGradient2248"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
gradientTransform="matrix(0.988373,0.000000,0.000000,0.988373,0.279002,0.278984)"
|
||||
y2="37.959785"
|
||||
x2="41.047836"
|
||||
y1="20.105337"
|
||||
x1="23.995985"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="linearGradient2243"
|
||||
xlink:href="#linearGradient4981"
|
||||
inkscape:collect="always" />
|
||||
<radialGradient
|
||||
gradientTransform="matrix(1.693981,0,0,1.693981,-16.86529,-25.11111)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
r="12.30225"
|
||||
fy="33.30225"
|
||||
fx="24.30225"
|
||||
cy="33.30225"
|
||||
cx="24.30225"
|
||||
id="radialGradient2239"
|
||||
xlink:href="#linearGradient9647"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="28.394291"
|
||||
x2="32.166405"
|
||||
y1="16.285088"
|
||||
x1="15.578875"
|
||||
id="linearGradient7901"
|
||||
xlink:href="#linearGradient7895"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
gradientTransform="translate(0,-2)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="37.959785"
|
||||
x2="41.047836"
|
||||
y1="20.105337"
|
||||
x1="23.995985"
|
||||
id="linearGradient4987"
|
||||
xlink:href="#linearGradient4981"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
gradientTransform="translate(0,-2)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
y2="47.374317"
|
||||
x2="53.570126"
|
||||
y1="12.503600"
|
||||
x1="15.737001"
|
||||
id="linearGradient2057"
|
||||
xlink:href="#linearGradient11780"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient15762"
|
||||
id="linearGradient15772"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.000000,0.000000,0.000000,-1.000000,31.72170,31.29079)"
|
||||
x1="5.7365270"
|
||||
y1="5.3855424"
|
||||
x2="9.8940229"
|
||||
y2="9.6507530" />
|
||||
<linearGradient
|
||||
id="linearGradient11014">
|
||||
<stop
|
||||
id="stop11016"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#a80000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop13245"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#c60000;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop11018"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#e50000;stop-opacity:1.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient11780">
|
||||
<stop
|
||||
id="stop11782"
|
||||
offset="0.0000000"
|
||||
style="stop-color:#ff8b8b;stop-opacity:1.0000000;" />
|
||||
<stop
|
||||
id="stop11784"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#ec1b1b;stop-opacity:1.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient14236">
|
||||
<stop
|
||||
style="stop-color:#ed4040;stop-opacity:1.0000000;"
|
||||
offset="0.0000000"
|
||||
id="stop14238" />
|
||||
<stop
|
||||
style="stop-color:#a40000;stop-opacity:1.0000000;"
|
||||
offset="1.0000000"
|
||||
id="stop14240" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient15762">
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop15764" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop15766" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4981">
|
||||
<stop
|
||||
id="stop4983"
|
||||
offset="0"
|
||||
style="stop-color:#cc0000;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop4985"
|
||||
offset="1.0000000"
|
||||
style="stop-color:#b30000;stop-opacity:1.0000000;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient7895"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop7897"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop7899"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.595238,0,14.875)"
|
||||
r="15.75"
|
||||
fy="36.75"
|
||||
fx="25.125"
|
||||
cy="36.75"
|
||||
cx="25.125"
|
||||
id="radialGradient21650"
|
||||
xlink:href="#linearGradient21644"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient21644"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop21646"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop21648"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient9647">
|
||||
<stop
|
||||
id="stop9649"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop9651"
|
||||
offset="1"
|
||||
style="stop-color:#dbdbdb;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2248"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop2250"
|
||||
offset="0"
|
||||
style="stop-color:#ffffff;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop2252"
|
||||
offset="1"
|
||||
style="stop-color:#ffffff;stop-opacity:0;" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient2256">
|
||||
<stop
|
||||
id="stop2258"
|
||||
offset="0"
|
||||
style="stop-color:#ff0202;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop2260"
|
||||
offset="1"
|
||||
style="stop-color:#ff9b9b;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient9647"
|
||||
id="radialGradient2335"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.693981,0,0,1.693981,-16.86529,-23.715608)"
|
||||
cx="24.30225"
|
||||
cy="33.30225"
|
||||
fx="24.30225"
|
||||
fy="33.30225"
|
||||
r="12.30225" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2256"
|
||||
id="linearGradient2337"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-7.1723252e-7,-0.6044975)"
|
||||
x1="21.75"
|
||||
y1="15.80225"
|
||||
x2="24.30225"
|
||||
y2="35.05225" />
|
||||
<radialGradient
|
||||
r="9.6875"
|
||||
fy="25.53125"
|
||||
fx="17.3125"
|
||||
cy="25.53125"
|
||||
cx="17.3125"
|
||||
gradientTransform="matrix(2.182912,0,0,0.7675402,-19.531098,16.887937)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
id="radialGradient3605"
|
||||
xlink:href="#linearGradient3101-7"
|
||||
inkscape:collect="always" />
|
||||
<linearGradient
|
||||
id="linearGradient3101-7">
|
||||
<stop
|
||||
id="stop3103-2"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3105-7"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
gradientTransform="matrix(2.182912,0,0,0.7675402,-13.50372,21.786089)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3101"
|
||||
id="radialGradient7200"
|
||||
fy="25.53125"
|
||||
fx="17.3125"
|
||||
r="9.6875"
|
||||
cy="25.53125"
|
||||
cx="17.3125" />
|
||||
<radialGradient
|
||||
gradientTransform="matrix(1,0,0,0.351613,0,16.55413)"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
xlink:href="#linearGradient3101"
|
||||
id="radialGradient3107"
|
||||
fy="25.53125"
|
||||
fx="17.3125"
|
||||
r="9.6875"
|
||||
cy="25.53125"
|
||||
cx="17.3125" />
|
||||
<linearGradient
|
||||
id="linearGradient3101">
|
||||
<stop
|
||||
id="stop3103"
|
||||
offset="0"
|
||||
style="stop-color:#000000;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop3105"
|
||||
offset="1"
|
||||
style="stop-color:#000000;stop-opacity:0" />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="0.21568627"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="8"
|
||||
inkscape:cx="26.460609"
|
||||
inkscape:cy="40.949854"
|
||||
inkscape:current-layer="g2858"
|
||||
showgrid="false"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="1028"
|
||||
inkscape:window-x="1439"
|
||||
inkscape:window-y="0"
|
||||
inkscape:showpageshadow="false"
|
||||
fill="#ef2929"
|
||||
inkscape:window-maximized="1">
|
||||
<inkscape:grid
|
||||
id="GridFromPre046Settings"
|
||||
type="xygrid"
|
||||
originx="0px"
|
||||
originy="0px"
|
||||
spacingx="1px"
|
||||
spacingy="1px"
|
||||
color="#0000ff"
|
||||
empcolor="#0000ff"
|
||||
opacity="0.2"
|
||||
empopacity="0.4"
|
||||
empspacing="4" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata1311">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>Rodney Dawes</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>Jakub Steiner, Garrett LeSage</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
<cc:license
|
||||
rdf:resource="http://creativecommons.org/licenses/by-sa/2.0/" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
<cc:License
|
||||
rdf:about="http://creativecommons.org/licenses/by-sa/2.0/">
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/Attribution" />
|
||||
<cc:permits
|
||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
||||
<cc:requires
|
||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
||||
</cc:License>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Shadow">
|
||||
<path
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
transform="matrix(1.070555,0,0,0.525,-0.892755,22.5)"
|
||||
d="M 41 40 A 17.142857 8.5714283 0 1 1 6.7142868,40 A 17.142857 8.5714283 0 1 1 41 40 z"
|
||||
sodipodi:ry="8.5714283"
|
||||
sodipodi:rx="17.142857"
|
||||
sodipodi:cy="40"
|
||||
sodipodi:cx="23.857143"
|
||||
id="path6548"
|
||||
style="opacity:0.6;color:#000000;fill:url(#radialGradient3976);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:10;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:block;overflow:visible"
|
||||
sodipodi:type="arc" />
|
||||
</g>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
id="g4006"
|
||||
style="fill:#f57900;stroke:#8f5902">
|
||||
<path
|
||||
transform="matrix(0.920488,0,0,0.920488,2.368532,0.97408)"
|
||||
d="m 46.857143,23.928572 c 0,12.899794 -10.457349,23.357143 -23.357143,23.357143 -12.899794,0 -23.3571434,-10.457349 -23.3571434,-23.357143 0,-12.899794 10.4573494,-23.3571437 23.3571434,-23.3571437 12.899794,0 23.357143,10.4573497 23.357143,23.3571437 z"
|
||||
sodipodi:ry="23.357143"
|
||||
sodipodi:rx="23.357143"
|
||||
sodipodi:cy="23.928572"
|
||||
sodipodi:cx="23.5"
|
||||
id="path1314"
|
||||
style="fill:#f57900;fill-opacity:1;fill-rule:nonzero;stroke:#8f5902;stroke-width:1.08637999999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
sodipodi:type="arc"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true" />
|
||||
<path
|
||||
transform="matrix(0.85448271,0,0,0.85448271,1.8600011,0.24061972)"
|
||||
d="m 49.901535,26.635273 a 23.991123,23.991123 0 1 1 -47.9822464,0 23.991123,23.991123 0 1 1 47.9822464,0 z"
|
||||
sodipodi:ry="23.991123"
|
||||
sodipodi:rx="23.991123"
|
||||
sodipodi:cy="26.635273"
|
||||
sodipodi:cx="25.910412"
|
||||
id="path3560"
|
||||
style="opacity:0.35;fill:none;stroke:#ffffff;stroke-width:1.1702975;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
sodipodi:type="arc"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true" />
|
||||
<path
|
||||
style="opacity:0.25;fill:#ffffff;stroke:none;stroke-width:0.99999899000000003;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 24 3 C 12.954305 3 4 11.954305 4 23 C 4 24.686052 4.2321382 26.310816 4.625 27.875 C 7.8289734 32.668264 17.878522 27.754856 24.84375 22.28125 C 32.8518 15.988144 42.685779 30.640597 43.96875 23.71875 C 43.977181 23.480132 44 23.240675 44 23 C 44 11.954305 35.045695 3 24 3 z "
|
||||
id="path3684" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.38916735,0,0,0.38916735,-17.021226,9.4547752)"
|
||||
id="g2680">
|
||||
<g
|
||||
transform="matrix(0.2204089,0,0,0.2436455,61.760877,-3.3704482)"
|
||||
id="g2858">
|
||||
<g
|
||||
style="stroke:#ffffff;stroke-opacity:1;stroke-width:16.63263409"
|
||||
id="g2787"
|
||||
transform="matrix(0.965926,-0.258819,0.258819,0.965926,253.9719,6.7086436)">
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.49999997;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 13,18 9.037685,-2.464823 M 26.038958,14.443921 35,12"
|
||||
id="path4404"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="matrix(11.261032,3.0173834,-2.7296139,10.187062,-300.34003,-176.33132)"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:22.17684937;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 198.02648,93.408547 0,189.835623"
|
||||
id="path2794"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g4398">
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:11.875;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="M 279.63444,146.14066 326.26756,40.676429 372.90068,146.14066"
|
||||
id="path2850"
|
||||
sodipodi:nodetypes="ccc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||
id="path2852"
|
||||
sodipodi:cx="65"
|
||||
sodipodi:cy="188"
|
||||
sodipodi:rx="57"
|
||||
sodipodi:ry="57"
|
||||
d="M 122,188 A 57,57 0 1 1 8,188"
|
||||
transform="matrix(1.0226561,0,0,0.92512488,259.79491,-38.329236)"
|
||||
sodipodi:start="0"
|
||||
sodipodi:end="3.1415927"
|
||||
sodipodi:open="true" />
|
||||
</g>
|
||||
<path
|
||||
style="fill:none;stroke:#ffffff;stroke-width:33.26527405;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 279.63443,288.51738 -163.21591,0"
|
||||
id="path2846"
|
||||
inkscape:connector-curvature="0" />
|
||||
<use
|
||||
x="0"
|
||||
y="0"
|
||||
xlink:href="#g4398"
|
||||
id="use4402"
|
||||
transform="translate(-256.48216,63.278541)"
|
||||
width="48"
|
||||
height="48" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:1.49999996;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
id="path5174"
|
||||
sodipodi:cx="24"
|
||||
sodipodi:cy="15"
|
||||
sodipodi:rx="2"
|
||||
sodipodi:ry="2"
|
||||
d="m 26,15 a 2,2 0 1 1 -4,0 2,2 0 1 1 4,0 z"
|
||||
transform="matrix(11.65828,0,0,10.546424,-81.772234,-85.880653)" />
|
||||
<g
|
||||
transform="matrix(-0.28610498,-0.87380513,1.0677587,-0.2341353,125.50279,21.705825)"
|
||||
id="g5176"
|
||||
style="stroke:#ffffff;stroke-opacity:1;stroke-width:16.63263415">
|
||||
<path
|
||||
sodipodi:nodetypes="cc"
|
||||
transform="matrix(11.261032,3.0173834,-2.7296139,10.187062,-300.34003,-176.33132)"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5178"
|
||||
d="m 26.038958,14.443921 2.255573,-0.615156"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:1.49999998;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Error Box" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer4"
|
||||
inkscape:label="Glossy Shine" />
|
||||
</svg>
|
After Width: | Height: | Size: 22 KiB |
66
site/wait.svg
Normal file
66
site/wait.svg
Normal file
@ -0,0 +1,66 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
<svg
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
version="1.0"
|
||||
width="48"
|
||||
height="48"
|
||||
id="svg1800">
|
||||
<defs
|
||||
id="defs3">
|
||||
<linearGradient
|
||||
id="linearGradient3101">
|
||||
<stop
|
||||
id="stop3103"
|
||||
style="stop-color:#000000;stop-opacity:1"
|
||||
offset="0" />
|
||||
<stop
|
||||
id="stop3105"
|
||||
style="stop-color:#000000;stop-opacity:0"
|
||||
offset="1" />
|
||||
</linearGradient>
|
||||
<radialGradient
|
||||
cx="17.3125"
|
||||
cy="25.53125"
|
||||
r="9.6875"
|
||||
fx="17.3125"
|
||||
fy="25.53125"
|
||||
id="radialGradient3107"
|
||||
xlink:href="#linearGradient3101"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1,0,0,0.351613,0,16.55413)" />
|
||||
</defs>
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
d="M 27,25.53125 C 27,27.41247 22.662759,28.9375 17.3125,28.9375 C 11.962241,28.9375 7.625,27.41247 7.625,25.53125 C 7.625,23.65003 11.962241,22.125 17.3125,22.125 C 22.662759,22.125 27,23.65003 27,25.53125 z"
|
||||
transform="matrix(2.182912,0,0,2.182912,-13.50372,-14.35012)"
|
||||
id="path3099"
|
||||
style="opacity:0.40909089;fill:url(#radialGradient3107);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.10533953;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
|
||||
<path
|
||||
d="M 46.138718,23.42804 C 46.138718,35.143769 36.285088,44.641244 24.130018,44.641244 C 11.974949,44.641244 2.1213187,35.143769 2.1213188,23.42804 C 2.1213187,11.712311 11.974949,2.2148362 24.130018,2.2148362 C 36.285088,2.2148362 46.138718,11.712311 46.138718,23.42804 L 46.138718,23.42804 z"
|
||||
transform="matrix(0.94463,0,0,0.980053,1.504174,-1.556912)"
|
||||
id="path1650"
|
||||
style="opacity:1;fill:#edd400;fill-opacity:1;fill-rule:nonzero;stroke:#c4a000;stroke-width:0.98214942;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
d="M 46.138718,23.42804 C 46.138718,35.143769 36.285088,44.641244 24.130018,44.641244 C 11.974949,44.641244 2.1213187,35.143769 2.1213188,23.42804 C 2.1213187,11.712311 11.974949,2.2148362 24.130018,2.2148362 C 36.285088,2.2148362 46.138718,11.712311 46.138718,23.42804 L 46.138718,23.42804 z"
|
||||
transform="matrix(0.914086,0,0,0.948364,2.380576,-0.905815)"
|
||||
id="path3392"
|
||||
style="opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#fce94f;stroke-width:0.98214942;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
d="M 21.464926,10.373268 C 21.336952,10.373268 21.230316,10.547762 21.230316,10.757175 L 22.295085,25.197999 C 22.295085,25.407412 22.401721,25.581906 22.529695,25.581907 C 22.529695,25.581907 23.370516,25.59381 24.063684,25.581907 C 24.292022,25.577986 24.361898,25.602219 24.568998,25.581907 C 25.262166,25.59381 26.102987,25.581907 26.102987,25.581907 C 26.230961,25.581907 26.337597,25.407412 26.337597,25.197999 L 27.402366,10.757175 C 27.402366,10.547762 27.29573,10.402799 27.167755,10.402799 L 24.587044,10.402799 C 24.577532,10.400862 24.578842,10.373268 24.568998,10.373268 L 21.464926,10.373268 z"
|
||||
id="rect1872"
|
||||
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.12249994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
d="M -11.875,34.0625 C -11.875,36.168086 -13.917701,37.875 -16.4375,37.875 C -18.957299,37.875 -21,36.168086 -21,34.0625 C -21,31.956914 -18.957299,30.25 -16.4375,30.25 C -13.917701,30.25 -11.875,31.956914 -11.875,34.0625 z"
|
||||
transform="matrix(0.504864,0,0,0.604182,32.65935,9.608845)"
|
||||
id="path2062"
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:4.12249994;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
<path
|
||||
d="M 43.676426,20.47678 C 43.676426,31.307396 37.624257,16.170581 25.001688,20.863168 C 12.279172,25.592912 4.4350535,31.307396 4.4350535,20.47678 C 4.4350535,9.6461627 13.22512,0.85609769 24.05574,0.85609769 C 34.886359,0.85609769 43.676426,9.6461627 43.676426,20.47678 z"
|
||||
id="path3068"
|
||||
style="fill:#fffeff;fill-opacity:0.21390375;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 4.7 KiB |
@ -7,7 +7,7 @@
|
||||
% my $inter_header = begin
|
||||
% my $group = shift;
|
||||
<tr><th colspan="11"><%= $group || 'Club management accounts' %></th>
|
||||
<th colspan="2"><a href="/debit?group=<%= $group %>">Charge'm all</a></th></tr>
|
||||
<th colspan="2"><a href="/debit?group=<%= $group %>"><img class="icon" src="/add-debit.svg" alt="Charge">all</a></th></tr>
|
||||
% end
|
||||
% while ( my $account = $accounts->next ) {
|
||||
% my $bal = $account->balance;
|
||||
@ -18,24 +18,26 @@
|
||||
% }
|
||||
% my $u = $account->ID;
|
||||
<tr><th><a href="/account/<%= $u %>"><%= $u %></a></th>
|
||||
<td class="even_until"><%= $bal->even_until // "never" %></td><td class="number"><%== money $bal->arrears %></td><td><a href="<%= $u %>/debits">list</td><td><a href="<%= $u %>/out">Charge</a></td>
|
||||
<td class="even_until"><%= $bal->even_until // "never" %></td><td class="number"><%== money $bal->arrears %></td><td><a href="<%= $u %>/debits"><img class="icon" alt="List" src="/list.svg" alt="List"></td><td><a title="Add a debit" href="<%= $u %>/out"><img class="icon" src="/add-debit.svg" alt="Charge"></a></td>
|
||||
<td class="centered">
|
||||
% my $which = ($bal->arrears && 1) + ($bal->available && 1);
|
||||
% if ( $which == 2 ) {
|
||||
<a class="transfer-btn" href="<%= $u %>/transfer">C⇔D!</a>
|
||||
› <a href="<%= $u %>/transfer"><img class="icon" src="/transfer.svg"></a> ‹
|
||||
% }
|
||||
% elsif ( $which ) {
|
||||
<span style="background-color:rgba(224,224,0,0.4);"> N/A </span>
|
||||
<%== $bal->arrears ? q{›} : q{ } %>
|
||||
<img class="icon" src="/wait.svg" style="cursor:not-allowed;">
|
||||
<%== $bal->available ? q{‹} : q{ } %>
|
||||
% }
|
||||
% else {
|
||||
<span style="background-color:rgba(0,224,0,0.4);"> N/A </span>
|
||||
<img class="icon" src="/even.svg" style="cursor:not-allowed;">
|
||||
% }
|
||||
</td><td class="number"><%== money $bal->available %></td><td><a href="<%= $u %>/credits">list</a></td><td><a href="<%= $u %>/in">Credit</a></td><td class="number"><%== money $bal->earned %></td><td class="number"><%== money $bal->promised %></td><td><a href="<%= $u %>/history">History</a></td><td><a href="<%= $u %>/report">Report</a></td></tr>
|
||||
</td><td class="number"><%== money $bal->available %></td><td><a href="<%= $u %>/credits"><img class="icon" alt="List" src="/list.svg" alt="List"></a></td><td><a title="Add a credit" href="<%= $u %>/in"><img class="icon" src="/add-credit.svg" alt="Credit"></a></td><td class="number"><%== money $bal->earned %></td><td class="number"><%== money $bal->promised %></td><td><a href="<%= $u %>/history">History</a></td><td><a href="<%= $u %>/report">Report</a></td></tr>
|
||||
% } # while
|
||||
</table>
|
||||
|
||||
<p style="text-align:center;"><a href="/account/">Create account</a> ⋅ <a href="/bankStatement">Reconstructed bank statement</a></p>
|
||||
<div class="help">
|
||||
% stash links => [ '/account' => "Create account", '/bankStatement' => "Reconstructed bank statement" ];
|
||||
% my $help = begin
|
||||
<h2>Column explanation</h2>
|
||||
<dl>
|
||||
<dt>Even till:</dt>
|
||||
@ -51,4 +53,5 @@
|
||||
<dt>Promised:</dt>
|
||||
<dd><p>Unpaid or not fully paid debits targetting credits of that account.</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
% end
|
||||
% stash help => $help;
|
||||
|
35
templates/account/upsert.html.ep
Normal file
35
templates/account/upsert.html.ep
Normal file
@ -0,0 +1,35 @@
|
||||
% title $name ? "Account $name" : "Create account";
|
||||
|
||||
% my %r;
|
||||
% $r{ID} = begin
|
||||
<input id="ID" name="ID" value="<%= $account->ID %>">
|
||||
% end
|
||||
% $r{type} = begin
|
||||
<input id="type" name="type" value="<%= $account->type %>"> (<%= join(", ", @$types) %> or a new?)
|
||||
% end
|
||||
% $r{altId} = begin
|
||||
<input id="altId" name="altId" value="<%= $account->altId %>">
|
||||
% end
|
||||
% $r{IBAN} = begin
|
||||
<input id="IBAN" name="IBAN" value="<%= $account->IBAN %>">
|
||||
% end
|
||||
|
||||
<form method="post">
|
||||
|
||||
<dl class="upsert">
|
||||
% for my $f ( $account->result_source->columns ) {
|
||||
% my $renderer = $r{$f} // do {
|
||||
% my $value = $account->$f // next;
|
||||
% begin
|
||||
<%= $value %>
|
||||
% end
|
||||
% };
|
||||
<dt><label for="<%= $f %>"><%= $f %>: </label></dt>
|
||||
<dd><%= $renderer->() %></dd>
|
||||
% }
|
||||
</dl>
|
||||
|
||||
<button type="submit">Submit</button>
|
||||
</form>
|
||||
|
||||
|
@ -90,12 +90,13 @@ oops
|
||||
% if ( $credits->count() ) {
|
||||
<p>Check credits you want to <strong>pay this debit</strong> with.</p>
|
||||
<table>
|
||||
<tr><th>S</th><th>date</th><th>purpose</th><th>to spend</th></tr>
|
||||
<tr><th>S</th><th>date</th><th>purpose</th><th>to spend</th><th>note</th></tr>
|
||||
% while ( my $d = $credits->next ) {
|
||||
<tr><td><input type="checkbox" name="payWith" value="<%= $d->credId %>"></td>
|
||||
<td><%= $d->date %></td>
|
||||
<td><%== nl2br $d->purpose %></td>
|
||||
<td><%== money $d->difference %></td>
|
||||
<td><input type="text" name="note[<%= $d->credId %>]"></td>
|
||||
</tr>
|
||||
% }
|
||||
</table>
|
||||
|
@ -17,6 +17,33 @@
|
||||
% }
|
||||
<%= content %>
|
||||
|
||||
<p style="text-align:center;"><a href="<%= url_for "home" %>">Back home – Account List</p>
|
||||
</body>
|
||||
</html>
|
||||
<p id="bottommenu"><a href="<%= url_for "home" %>">Overview</a>
|
||||
% if ( my $links = stash 'links' ) {
|
||||
% while ( my ($link, $text) = splice @$links, 0, 2 ) {
|
||||
| <a href="<%= url_for $link %>"><%= $text %></a>
|
||||
% }
|
||||
% }
|
||||
% my $help = stash 'help';
|
||||
% if ( defined $help ) {
|
||||
| <a href="#help">Help</a>
|
||||
% }
|
||||
% my $sql = sql_trace;
|
||||
% if ( defined $$sql ) {
|
||||
| <a href="#sql">SQL</a>
|
||||
% }
|
||||
</p>
|
||||
% if ( defined $help ) {
|
||||
<div class="targettable" id="help">
|
||||
%== $help->()
|
||||
</div>
|
||||
% }
|
||||
% if ( defined $sql ) {
|
||||
<div class="targettable" id="sql">
|
||||
<p>In case you are interested, this is what is executed in the database in order to process your request and to render this page. All essential logic and consistency checking is done on database level via triggers and views, so you could execute these SQL statements e.g. in the console and would get the same results. Note that, if any POST requests redirected here, SQL commands of those come first:</p>
|
||||
<textarea rows="5" style="width:100%;border:1px inset lightgrey;" readonly="readonly">
|
||||
%== $$sql
|
||||
</textarea></div>
|
||||
% }
|
||||
|
||||
<p id="footer">Copyright 2016 Florian L. Heß | Treasure DB licensed under General Public License, version 3 | <a href="https://github.com/flowdy/treasuredb">Fork me on GitHub</a></p>
|
||||
</body></html>
|
||||
|
@ -14,6 +14,10 @@
|
||||
|
||||
User id: <input name="user" type="text" placeholder="user id or email" value="<%= param('user') %>"><br>
|
||||
Password: <input name="password" type="password"><br>
|
||||
<input type="submit" value="Login">
|
||||
% if ( my $token = param 'token' ) {
|
||||
Repeat: <input name="samepassword" type="password"><br>
|
||||
<input type="hidden" name="token" value="<%= $token %>"><br>
|
||||
% }
|
||||
<button type="submit">Login</button>
|
||||
|
||||
</p></form>
|
||||
|
Loading…
Reference in New Issue
Block a user