source: allow external website inclusion of json
[sheet.git] / writer.plp
index a97bbfae4ec4d60e74c6a32750d311f57e72e9e8..493f74534b3f5961253b6b4fe224a4e5451363fc 100644 (file)
@@ -5,98 +5,7 @@ Html({
        version => '1.0',
        nocache => 1,
        raw => <<'EOT',
-<style>
-dl {
-       display: inline-grid;
-       grid: auto-flow / min-content repeat(10, auto);
-}
-
-form > ul {
-       display: table;
-       border-spacing: 0 2px;
-}
-form > ul > li {
-       display: table-row;
-}
-form > ul > li > * {
-       display: table-cell;
-       padding-right: .5em;
-}
-form > ul > li > label {
-       /* th */
-       text-align: right;
-}
-form > ul > li > label + * {
-       /* td */
-       width: 40em;
-}
-
-.multiinput,
-input,select {
-       box-sizing: border-box;
-       flex-grow: 1;
-}
-input:not([type=submit]) {
-       padding: .4rem;
-       font-family: monospace;
-}
-input[type=number] {
-       max-width: 7em;
-}
-select {
-       padding: .3rem .2rem; /* TODO: input */
-}
-#thumbpreview {
-       width: 300px;
-       align-self: start;
-       flex-shrink: 0;
-}
-
-ul.popup {
-       display: flex;
-       flex-wrap: wrap;
-       align-items: end;
-       position: fixed;
-       left: 0;
-       top: 0;
-       margin: auto;
-       max-height: 90%;
-       max-width: 90%;
-       overflow: auto;
-       background: rgba(0, 0, 0, .8);
-       border: 1px solid #CCC;
-}
-
-h1 {
-       margin-bottom: 1ex;
-}
-.inline {
-       display: inline-flex;
-       align-items: baseline;
-       margin: 0 -1ex; /* inner gap */
-}
-.inline > * {
-       margin: 0 1ex;
-}
-.inline .inline {
-       display: flex;
-       margin: 0;
-}
-.inline.multiinput {
-       flex-wrap: wrap;
-}
-.multiinput > input {
-       width: 10em;
-}
-
-#nav > ul,
-#nav > ul strong,
-#nav form {
-       margin: 1ex 0;
-       display: inline-block;
-}
-</style>
-
+<link rel="stylesheet" type="text/css" media="all" href="/editor.css" />
 <script src="/writer.js"></script>
 EOT
 });
@@ -104,16 +13,9 @@ EOT
 use List::Util qw( pairs pairkeys );
 
 my $db = eval {
-       my @dbinfo = (
-               'DBI:Pg:dbname=sheet;host=localhost', 'sheetadmin', 'fairuse',
-       ) or die "database not configured\n";
-       require DBIx::Simple;
-       DBIx::Simple->new(@dbinfo[0..2], {
-               RaiseError => 1,
-               pg_enable_utf8 => 1,
-       });
+       require Shiar_Sheet::DB;
+       Shiar_Sheet::DB->connect;
 } or Abort('Database error', 501, $@);
-$db->abstract->{array_datatypes}++;
 
 my $user = eval {
        if (defined $post{username}) {
@@ -391,7 +293,7 @@ package Shiar_Sheet::FormRow {
        sub imagepath {
                my ($row, $col) = @_;
                return "data/word/org/$row->{id}.jpg"   if $col eq 'source';
-               return "data/word/en/$row->{form}.jpg"  if $col eq 'thumb';
+               return "data/word/en/$row->{id}.jpg"  if $col eq 'thumb';
                return;
        }
 }