Initial import
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<div class="text-center">
|
||||
<h1>Page not found</h1>
|
||||
<img src='/logo.png'>
|
||||
<p>The page you were looking for could not be found. Maybe you should look for a different one instead.</p>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,94 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
|
||||
<ul class="nav nav-tabs mt-3 mb-2">
|
||||
<li class="nav-item">
|
||||
@if ($tab == "account")
|
||||
<a class="nav-link active" aria-current="page" href="#">Account</a>
|
||||
@else
|
||||
<a class="nav-link" aria-current="page" href="/account">Account</a>
|
||||
@endif
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
@if ($tab == "data")
|
||||
<a class="nav-link active" aria-current="page" href="#">Data</a>
|
||||
@else
|
||||
<a class="nav-link" aria-current="page" href="/account/data">Data</a>
|
||||
@endif
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@if ($tab == "account")
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-3"></div>
|
||||
<div class="col-12 col-lg-6">
|
||||
<h5>Change Password</h5>
|
||||
<form action='/account/chpass' method="POST">
|
||||
<div class="input-group">
|
||||
<span class="input-group-text w-25">Current password</span>
|
||||
<input class="form-control" name="current" type="password">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text w-25">New password</span>
|
||||
<input class="form-control" name="pass1" type="password">
|
||||
</div>
|
||||
<div class="input-group">
|
||||
<span class="input-group-text w-25">Confirm password</span>
|
||||
<input class="form-control w-50" name="pass2" type="password">
|
||||
<input class="form-control w-25 btn btn-primary" type="submit" value="Change">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-12 col-lg-3"></div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
|
||||
|
||||
@if ($tab == "data")
|
||||
|
||||
<p>Here is a list of all the data associated with your current session.</p>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Key</th>
|
||||
<th>Data</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($session as $k=>$v)
|
||||
<tr>
|
||||
<td>{{ $k }}</td>
|
||||
<td>{{ json_encode($v) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>And here is the contents of your user's database record.</p>
|
||||
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Key</th>
|
||||
<th>Data</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@foreach ($user->_data as $k=>$v)
|
||||
<tr>
|
||||
<td>{{ $k }}</td>
|
||||
<td>{{ json_encode($v) }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>And that's it. That's the sum total of the data we currently store.</p>
|
||||
|
||||
@endif
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,165 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
@if (Auth::can_moderate())
|
||||
<jobdisplay source="document:{{ $doc->id }}"></jobdisplay>
|
||||
@endif
|
||||
|
||||
@if (get_user())
|
||||
<div class="row">
|
||||
<div class="col text-end">
|
||||
<div class="dropdown">
|
||||
<div class="btn-group">
|
||||
@if (get_user()->is_favourite($doc->id))
|
||||
<a href='/document/unfavourite/{{ $doc->id }}' class="btn btn-success"><i class="fa-solid fa-heart"></i></a>
|
||||
@else
|
||||
<a href='/document/favourite/{{ $doc->id }}' class="btn btn-secondary"><i class="fa-regular fa-heart"></i></a>
|
||||
@endif
|
||||
<button class="btn btn-success dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
<i class="fa fa-plus"></i>
|
||||
</button>
|
||||
<ul class="dropdown-menu">
|
||||
<li><div class="text-center"><b>Add to system</b></div></li>
|
||||
@foreach (System::find([["owner", "=", get_user()->id]])->all() as $sys)
|
||||
<li><a class="dropdown-item" href="/system/{{ $sys->id }}/add/{{ $doc->id }}">{{ $sys->name }}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endif
|
||||
|
||||
<h1 class="text-center">{{ $doc->title }}</h1>
|
||||
<h2 class="text-center">{{ $doc->subtitle }}</h2>
|
||||
<h3 class="text-center">{{ $doc->subsubtitle }}</h3>
|
||||
|
||||
<div class="row" id="droppable">
|
||||
<div class="col-lg-6 col-12">
|
||||
@if (Auth::can_moderate())
|
||||
<div class="btn-group">
|
||||
<documentedit docid="{{ $doc->id }}"></documentedit>
|
||||
<a href="/upload/attachment/{{ $doc->id }}" class="btn btn-primary" title="Upload attachment"><i class="fa-solid fa-file-arrow-up"></i></a>
|
||||
<a href="/overview/create/{{ $doc->id }}/stay" class="btn btn-primary" title="Create Overview with AI"><i class="fa-solid fa-wand-magic"></i></a>
|
||||
<a href="/overview/create/{{ $doc->id }}/move" class="btn btn-primary" title="Create Overview with AI and move it"><i class="fa-solid fa-wand-magic-sparkles"></i></a>
|
||||
<a href="/merge/{{ $doc->id }}" class="btn btn-primary" title="Merge Revisions"><i class="fa fa-link"></i></a>
|
||||
<a href="/explode/{{ $doc->id }}" class="btn btn-primary" title="Separate Revisions"><i class="fa fa-unlink"></i></a>
|
||||
</div>
|
||||
@endif
|
||||
<h5 class="text-center">Order Number: {{ $doc->internal_id }}</h5>
|
||||
|
||||
@if (Auth::can_moderate())
|
||||
<table class="table">
|
||||
<tbody>
|
||||
@foreach ($doc->metadata as $meta)
|
||||
@php
|
||||
$meta->load("metadata");
|
||||
@endphp
|
||||
<tr>
|
||||
<td class="w-25">{{ $meta->metadata->name }}</td>
|
||||
<td class="w-75"><inlineedit value="{{ $meta->data }}" url="/api/document/{{ $doc->id }}/metadata/{{ $meta->metadata->id }}" field="data"/></td>
|
||||
<td style="width: 0"><a class="btn btn-danger px-1 py-0" href="/document/{{ $doc->id }}/metadata/{{ $meta->metadata->id }}/delete">
|
||||
<i class="fa fa-trash"></i></a></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
<itemadder list="/api/document/{{ $doc->id }}/available_metadata" target="/api/document/{{ $doc->id }}/metadata" method="PUT"></itemadder>
|
||||
@else
|
||||
<table class="table">
|
||||
<tbody>
|
||||
@foreach ($doc->metadata as $meta)
|
||||
@php
|
||||
$meta->load("metadata");
|
||||
@endphp
|
||||
<tr>
|
||||
<td class="w-25">{{ $meta->metadata->name }}</td>
|
||||
<td class="w-75">{{ $meta->data }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
<hr/>
|
||||
@if ($doc->attachments->count() > 0)
|
||||
<h5>Attachments</h5>
|
||||
<table class="table w-100">
|
||||
<thead>
|
||||
<th>Filename</th>
|
||||
<th>Size</th>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach ($doc->attachments as $f)
|
||||
<tr>
|
||||
<td><a href='/attachment/{{$doc->id}}/{{$f->basename()}}'>{{ $f->basename() }}</a></td>
|
||||
<td>{{ $f->size() }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
<ul class="list-group">
|
||||
@foreach ($doc->products as $prod)
|
||||
<li class="list-group-item">
|
||||
@if (Auth::can_moderate())
|
||||
<a class="btn btn-danger px-1 py-0" href='/del_docproduct/{{$doc->id}}/{{$prod->id}}'>
|
||||
<i class="fa fa-close"></i>
|
||||
</a>
|
||||
<a class="btn w-90 text-start" href='/documents/{{ $prod->id }}'>
|
||||
{{ $prod->full_path }}
|
||||
</a>
|
||||
@else
|
||||
<a class="btn w-100 text-start" href='/documents/{{ $prod->id }}'>
|
||||
{{ $prod->full_path }}
|
||||
</a>
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
@if ($doc->overview)
|
||||
<div class="overflow-y-auto p-3">
|
||||
{!! $doc->overview_md() !!}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-12">
|
||||
|
||||
<div class="row">
|
||||
@foreach ($doc->revisions as $rev)
|
||||
@component("thumbnail-50", ["rev" => $rev])
|
||||
@endcomponent
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@if (count($doc->related) > 0)
|
||||
<div class="col-12">
|
||||
<h5>Related Documents</h5>
|
||||
<table class="table">
|
||||
@foreach ($doc->related as $r)
|
||||
<tr>
|
||||
<td>
|
||||
<a href='/document/{{ $r->id }}'>
|
||||
<strong>{{ $r->title }}</strong>
|
||||
{{ $r->subtitle }}
|
||||
<small>{{ $r->subsubtitle }}</small>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href='/document/{{ $r->id }}'>
|
||||
{{ $r->internal_id }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
Executable
+140
@@ -0,0 +1,140 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<div class="my-4 btn-group">
|
||||
@foreach ($product->get_tree() as $p)
|
||||
<a href='/documents/{{ $p->id }}' class="btn btn-secondary"><strong>{{ $p->title }}</strong></a>
|
||||
@endforeach
|
||||
</div>
|
||||
<a href='<?php print($product->refurl) ?>'><?php print($product->refurl) ?></a><br/>
|
||||
|
||||
@if (Auth::can_moderate())
|
||||
<inlineedittext url='/api/product/{{$product->id}}' field='overview'>{{ $product->overview }}</inlineedittext>
|
||||
@else
|
||||
@if ($product->overview != "")
|
||||
<div class="blockquote">
|
||||
{!! $product->overview_md() !!}
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
<table class="table table-hover">
|
||||
|
||||
@if (Auth::can_moderate())
|
||||
<tr>
|
||||
<td colspan="{{ 3 + count($product->meta()) }}">
|
||||
<div class="w-100 text-end">
|
||||
<productcontrols pid="{{ $product->id }}"></productcontrols>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Title</th>
|
||||
@foreach ($product->meta() as $m)
|
||||
<th class="fit">{{ MetaType::name($m) }}</th>
|
||||
@endforeach
|
||||
<th>Order No</th>
|
||||
</tr>
|
||||
|
||||
|
||||
@if ($product->parent != null)
|
||||
<tr>
|
||||
<td class="fit"><a class="btn" href='/documents/{{ $product->parent->id }}'><i class="fa fa-level-up" aria-hidden="true"></a></td>
|
||||
@if (Auth::can_moderate())
|
||||
<td class="w-100" colspan="{{ 2 + count($product->meta()) }}">
|
||||
<dddiv droppable="true" object_id="{{$product->parent->id}}" object_type="product" callback="/api/document/dragdrop">
|
||||
<a class="btn w-100 text-start" href='/documents/{{ $product->parent->id }}'>Parent</a>
|
||||
</dddiv>
|
||||
</td>
|
||||
@else
|
||||
<td class="w-100" colspan="{{ 2 + count($product->meta()) }}"><a class="btn w-100 text-start" href='/documents/{{ $product->parent->id }}'>Parent</a></td>
|
||||
@endif
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
|
||||
@foreach ($product->children as $child)
|
||||
<tr>
|
||||
<td class="fit"><a class="btn" href='/documents/{{ $child->id }}'>
|
||||
@if ($child->title == "Trash")
|
||||
<i class="fa fa-trash" aria-hidden="true"></i>
|
||||
@else
|
||||
<i class="fa fa-folder" aria-hidden="true"></i>
|
||||
@endif
|
||||
</a></td>
|
||||
@if (Auth::can_moderate())
|
||||
<td class="w-100">
|
||||
<dddiv draggable="true" droppable="true" object_id="{{ $child->id }}" object_type="product" callback="/api/document/dragdrop">
|
||||
<a class="btn w-100 text-start" href='/documents/{{$child->id}}' >
|
||||
{{$child->title}}
|
||||
</a>
|
||||
</dddiv>
|
||||
</td>
|
||||
@else
|
||||
<td class="w-100"><a class="btn w-100 text-start" href='/documents/{{$child->id}}'>{{$child->title}}</a></td>
|
||||
@endif
|
||||
<td colspan="{{ 1 + count($product->meta()) }}" class="fit"></td>
|
||||
</tr>
|
||||
@endforeach
|
||||
|
||||
@foreach ($product->documents_sorted_by_meta() as $doc)
|
||||
<tr>
|
||||
<td class="fit">
|
||||
@if ($doc->attachments->count() > 0)
|
||||
<a class="btn" href='/document/{{$doc->id}}'><i class="fa fa-file-arrow-down text-success" aria-hidden="true"></i></a>
|
||||
@else
|
||||
<a class="btn" href='/document/{{$doc->id}}'><i class="fa fa-file-text" aria-hidden="true"></i></a>
|
||||
@endif
|
||||
</td>
|
||||
<td class="w-100">
|
||||
@if (Auth::can_moderate())
|
||||
<dddiv draggable="true" droppable="true" object_id="{{$doc->id}}" object_type="document" extra_data="{{$product->id}}" callback="/api/document/dragdrop">
|
||||
<a class="btn w-100 text-start" href='/document/{{$doc->id}}'>
|
||||
<strong>{{$doc->title}} </strong>
|
||||
<span>{{$doc->subtitle}} </span>
|
||||
<small>{{$doc->subsubtitle}}</small>
|
||||
@if ($doc->oneliner)
|
||||
<br/><small>{{ $doc->oneliner }}</small>
|
||||
@endif
|
||||
</a>
|
||||
</dddiv>
|
||||
@else
|
||||
<a class="btn w-100 text-start" href='/document/{{$doc->id}}'>
|
||||
<strong>{{$doc->title}} </strong>
|
||||
<span>{{$doc->subtitle}} <span>
|
||||
<small>{{$doc->subsubtitle}}</small>
|
||||
@if ($doc->oneliner)
|
||||
<br/><small>{{ $doc->oneliner }}</small>
|
||||
@endif
|
||||
</a>
|
||||
@endif
|
||||
|
||||
</td>
|
||||
|
||||
@foreach ($product->meta() as $m)
|
||||
<td class="fit">
|
||||
<small><a draggable="true" object_id="{{$doc->id}}" pid_from="{{$product->id}}" class="btn" href='/document/{{$doc->id}}'>
|
||||
{{ $doc->get_metadata_by_id($m) }}
|
||||
</a></small>
|
||||
</td>
|
||||
@endforeach
|
||||
<td class="fit">
|
||||
<a draggable="true" object_id="{{$doc->id}}" pid_from="{{$product->id}}" class="btn" href='/document/{{$doc->id}}'>
|
||||
{{ $doc->internal_id }}
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
|
||||
<div class="text-center">
|
||||
<small>
|
||||
<i>
|
||||
{{ count($product->documents) }} documents
|
||||
</i>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,4 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<downloadmanager></downloadmanager>
|
||||
@endsection
|
||||
@@ -0,0 +1,16 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<br/>
|
||||
|
||||
<h1>Your favourite documens</h1>
|
||||
<br/>
|
||||
|
||||
<ul class="list-group">
|
||||
@foreach ($docs as $doc)
|
||||
<li class="list-group-item">
|
||||
<a class="btn" href='/document/{{ $doc->id }}'><b>{{ $doc->title }}</b> {{ $doc->subtitle }} <small>{{ $doc->subsubtitle }}</small></a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,4 @@
|
||||
<div class="mb-3">
|
||||
<label for="{{$name}}" class="form-label">{{$title}}</label>
|
||||
<input class="form-control" id="{{$name}}" type="text" name="{{$name}}" value="{{$value}}" {{$attrs}}>
|
||||
</div>
|
||||
@@ -0,0 +1,4 @@
|
||||
<div class="mb-3">
|
||||
<label for="{{$name}}" class="form-label">{{$title}}</label>
|
||||
<input class="form-control" id="{{$name}}" type="password" name="{{$name}}" value="{{$value}}" {{$attrs}}>
|
||||
</div>
|
||||
@@ -0,0 +1,5 @@
|
||||
<div class="mb-3 text-end">
|
||||
<input class="btn btn-primary" type="submit" value="{{$title}}" {{$attrs}}>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<idmatch></idmatch>
|
||||
@endsection
|
||||
@@ -0,0 +1,4 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<imports></imports>
|
||||
@endsection
|
||||
@@ -0,0 +1,46 @@
|
||||
@extends('layout.main')
|
||||
@section('content')
|
||||
<p class="mt-3">Welcome to <i><b>DECPDF</b></i>, the searchable and organised repository of
|
||||
Digital Equipment Corporation (DEC) documentation, gathering together documents
|
||||
and manuals from around the internet and from users' personal archives.</p>
|
||||
|
||||
<p>We have strived to arrange the content of this site in a logical order
|
||||
so that it finally becomes easy to locate the documentation for your device
|
||||
or system that you need - be it a PDP-11 computer, or an obscure feature
|
||||
of VMS. It should all be there at your fingertips.</p>
|
||||
|
||||
<p>Do you have a document that we don't? Are we missing some vital information
|
||||
that you could provide us with? Then register for an account and request
|
||||
upload permissions, and you can help us to build the ultimate repository
|
||||
of DEC documentation.</p>
|
||||
|
||||
<h3>FAQ</h3>
|
||||
|
||||
<h5>Why do some documents have "Original" and "OCR" versions?</h5>
|
||||
<p>When a new document is uploaded it is tested to see if it has had OCR run on it
|
||||
already. If it has, we use that OCR data for our indexing. If it hasn't, we automatically
|
||||
run OCR on the document. This creates a new version of the document, the OCR version.
|
||||
We keep the original alongside the new OCR version and give you the choice of which
|
||||
version to download.</p>
|
||||
|
||||
<h5>I have a different copy of a document you already have. Can I upload it?</h5>
|
||||
<p>Absolutely. Document revisions with the same main document ID code will be grouped together
|
||||
within the document on the website. We actively seek out other versions of documents, or
|
||||
even other scans of existing revisions of documents, to try and make the archive as complete
|
||||
as possible.</p>
|
||||
|
||||
<h5>What's the Order Number and Revision when I upload?</h5>
|
||||
<p>The order number is DEC's internal document reference ID. It is typically of the format
|
||||
XX-YYYYY-ZZ-RRR, for example EK-3K370-TR-001. The first three sections are the document
|
||||
ID and the last section is the document revision. When you upload please split the document
|
||||
ID from the revision and enter them into the two separate boxes. That way the different
|
||||
revisions of the same document are properly grouped together. Note that not all documents
|
||||
(especially field maintenance print sets) use this format of document IDs, and not all documents
|
||||
even have an ID. In this case, just enter what you can in the document ID and leave the
|
||||
revision either empty or set to 000 (which indicates it's the original unrevised version).
|
||||
If there is no document ID then leave the Order Number blank. A new document ID will be
|
||||
generated as a placeholder for internal use.</p>
|
||||
|
||||
<h5>Will you ever host binary files like disk images and software?</h5>
|
||||
<p>No. That opens up a whole other kettle of worms, alongside a can of fish as well.</p>
|
||||
@endsection
|
||||
@@ -0,0 +1,123 @@
|
||||
<!doctype html>
|
||||
<html lang="en" data-bs-theme="dark">
|
||||
<head>
|
||||
<title>Digital PDFs</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<link rel="manifest" href="/manifest.webmanifest">
|
||||
<link rel="canonical" href="{{ Route::canonical() }}" />
|
||||
|
||||
<script src="/app.js"></script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" class="container">
|
||||
<nav class="navbar navbar-expand-lg bg-body-tertiary w-100">
|
||||
<div class="container">
|
||||
<div class="d-flex flex-row justify-content-between w-100">
|
||||
<a class="d-none d-lg-inline navbar-brand" href='/'>Digital PDFs</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<ul class="navbar-nav me-auto mb-2 mb-1g-0">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href='/documents'>Documents</a>
|
||||
</li>
|
||||
@if (Auth::can_moderate())
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Spider
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/spider_pdfs">Spidered PDFs</a></li>
|
||||
<li><a class="dropdown-item" href="/spider_pages">Potential Sites</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
System
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/status">System Status</a></li>
|
||||
<li><a class="dropdown-item" href="/idmatch">ID Matches</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
@if (Auth::logged_in())
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
{{ get_user()->username }}
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/account">My Account</a></li>
|
||||
|
||||
<li><a class="dropdown-item" href="/favourites">My Favourites</a></li>
|
||||
<li><a class="dropdown-item" href="/systems">My Systems</a></li>
|
||||
|
||||
<?php if (Auth::can_upload()) { ?>
|
||||
<li><a class="dropdown-item" href="/upload">Upload PDF</a></li>
|
||||
<li><a class="dropdown-item" href="/uploads">My Uploads</a></li>
|
||||
<?php } ?>
|
||||
|
||||
<li><hr></li>
|
||||
<li><a class="dropdown-item text-danger" href="/logout">Log Out</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@else
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Guest
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li><a class="dropdown-item" href="/register">Register</a></li>
|
||||
<li><hr></li>
|
||||
<li><a class="dropdown-item" href="/login">Log In</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<search/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="container">
|
||||
@if($flash_error)
|
||||
<div class="my-2 alert alert-danger">{{ $flash_error }}</div>
|
||||
@endif
|
||||
|
||||
@if($flash_warn)
|
||||
<div class="my-2 alert alert-warning">{{ $flash_warn }}</div>
|
||||
@endif
|
||||
|
||||
@if($flash_info)
|
||||
<div class="my-2 alert alert-info">{{ $flash_info }}</div>
|
||||
@endif
|
||||
|
||||
@if($flash_success)
|
||||
<div class="my-2 alert alert-success">{{ $flash_success }}</div>
|
||||
@endif
|
||||
</div>
|
||||
@yield('content')
|
||||
|
||||
<hr>
|
||||
<nav class="navbar">
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item"><a href='/' class="nav-link small p-0">Home</a></li>
|
||||
</ul>
|
||||
<ul class="navbar-nav">
|
||||
<li class="nav-item"><a href='/privacy' class="nav-link small p-0">Privacy and Data</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
<p class="text-center small text-secondary">Site structure and layout ©2026 Majenko Technologies</p>
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,4 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<h1>You are now logged in.</h1>
|
||||
@endsection
|
||||
Executable
+19
@@ -0,0 +1,19 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-12"></div>
|
||||
<div class="col-lg-4 col-12 m-3">
|
||||
<div class="card w-100 p-3">
|
||||
<h5 class="card-title">Log In</h5>
|
||||
<div class="card-body">
|
||||
<form action="/login" method="POST">
|
||||
{!!Form::input("Username or Email", "username", "")!!}
|
||||
{!!Form::password("Password", "password", "")!!}
|
||||
{!!Form::submit("Login")!!}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-12"></div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,23 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<h1>Privacy and Data</h1>
|
||||
|
||||
<h3>What cookies do you store?</h3>
|
||||
<p>One. Just one cookie. That is all we put on your computer. That cookie is a simple randomly generated session ID.</p>
|
||||
|
||||
<h3>What is it used for?</h3>
|
||||
<p>It is used to associate temporary runtime information about how you are using the site. Such things as which user ID you are
|
||||
currently logged into the site as, or what you are currently searching for.</p>
|
||||
|
||||
<h3>How long do you keep that information?</h3>
|
||||
<p>All information connected to your session is stored in a <i>memcached</i> database. This is a temporary data store which is never
|
||||
written to disk. The data expires after a month if not used, or if the storage system should get restarted. In other words, it's
|
||||
ephemeral and we don't store it past holding it in memory.</p>
|
||||
|
||||
<h3>What other data do you store about me?</h3>
|
||||
<p>Only what you provide when you register for an account - username, email and password (which is hashed so cannot be seen by anyone, ever).</p>
|
||||
|
||||
<h3>Will you ever sell or otherwise pass on my data to someone else?</h3>
|
||||
<p>No. Absolutely not. Since we don't really store any data of note, there's not really anything to sell, and even if there was we
|
||||
wouldn't sell it anyway. Selling people's data is just scummy and evil, and we don't want to be scummy and evil.</p>
|
||||
@endsection
|
||||
@@ -0,0 +1,21 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-12"></div>
|
||||
<div class="col-lg-4 col-12 m-3">
|
||||
<div class="card w-100 p-3">
|
||||
<h5 class="card-title">Register</h5>
|
||||
<div class="card-body">
|
||||
<form action="/register" method="POST">
|
||||
{!!Form::input("Username", "username", $username)!!}
|
||||
{!!Form::input("Email", "email", $email)!!}
|
||||
{!!Form::password("Password", "password", $password)!!}
|
||||
{!!Form::password("Password Confirmation", "confirm", $confirm)!!}
|
||||
{!!Form::submit("Register")!!}
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-4 col-12"></div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,89 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
|
||||
@if (Auth::can_moderate())
|
||||
<jobdisplay source="revision:{{ $rev->id }}"></jobdisplay>
|
||||
@endif
|
||||
|
||||
|
||||
<pdf rev="{{ $rev->id }}" pages="{{ $rev->info->Pages }}">></pdf>
|
||||
<div class="row">
|
||||
@component("thumbnail", ["rev" => $rev])
|
||||
@endcomponent
|
||||
|
||||
<div class="col-lg-9 col-12">
|
||||
@if (Auth::can_moderate())
|
||||
<div class="text-end btn-group">
|
||||
<a class="btn btn-primary" title="Split to new document" href='/extract/revision/{{ $rev->id }}'><i class='fa fa-unlink'></i></a>
|
||||
<a class="btn btn-primary" title="OCR" href='/ocr/revision/{{ $rev->id }}'><i class='fa-brands fa-searchengin'></i></a>
|
||||
<a class="btn btn-primary" title="Recompress" href='/recompress/revision/{{ $rev->id }}'><i class='fa fa-file-zipper'></i></a>
|
||||
<a class="btn btn-primary" title="Refresh images" href='/purge/revision/{{ $rev->id }}'><i class='fa fa-images'></i></a>
|
||||
<a class="btn btn-primary" title="Redownload from source" href='/redownload/revision/{{ $rev->id }}'><i class='fa fa-recycle'></i></a>
|
||||
<a class="btn btn-danger" title="Delete" href='/delete/revision/{{ $rev->id }}'><i class='fa fa-trash'></i></a>
|
||||
</div>
|
||||
@endif
|
||||
<table class="table">
|
||||
@if ($rev->document)
|
||||
<tr>
|
||||
<td>
|
||||
<b>Document:</b>
|
||||
</td>
|
||||
<td>
|
||||
<a href='/document/{{ $rev->document->id }}'>
|
||||
<strong>{{ $rev->document->title }}</strong>
|
||||
{{ $rev->document->subtitle }}
|
||||
<small>{{ $rev->document->subsubtitle }}</small>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<b>Order Number:</b>
|
||||
</td>
|
||||
<td>
|
||||
{{ $rev->document->internal_id }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<span class="my-auto align-middle"><b>Revision:</b></span>
|
||||
</td>
|
||||
<td>
|
||||
@if (Auth::can_moderate())
|
||||
<inlineedit value="{{ $rev->revno }}" url="/api/revision/{{ $rev->id }}" field="revno"/>
|
||||
@else
|
||||
{{ $rev->revno }}
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<b>Pages:</b>
|
||||
</td>
|
||||
<td>
|
||||
@isset ($rev->info->Pages)
|
||||
{{ $rev->info->Pages }}
|
||||
@else
|
||||
Unknown
|
||||
@endisset
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td>
|
||||
<b>Original Filename:</b>
|
||||
</td>
|
||||
<td>
|
||||
{{ $rev->origtitle }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,74 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
|
||||
|
||||
<nav>
|
||||
<ul class="pagination justify-content-center my-2">
|
||||
@if ($page > 0)
|
||||
<!--keyboardinteraction keyname="p" target='/search/{{ $page - 1 }}' ></keyboardinteraction-->
|
||||
<li class="page-item"><a class="page-link" href='/search/{{ $page - 1 }}'>Previous</a></li>
|
||||
@else
|
||||
<li class="page-item disabled"><a class="page-link" href='/search/{{ $page - 1 }}'>Previous</a></li>
|
||||
@endif
|
||||
|
||||
@for ($i = -4; $i <= 4; $i++)
|
||||
|
||||
@if ((($page + $i) < ($pages)) && (($page + $i) >= 0))
|
||||
@if ($i == 0)
|
||||
<li class="page-item active"><a class="page-link" href='/search/{{ $page + $i }}'>{{ $page + $i + 1}}</a></li>
|
||||
@else
|
||||
<li class="page-item"><a class="page-link" href='/search/{{ $page + $i }}'>{{ $page + $i + 1}}</a></li>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@endfor
|
||||
|
||||
@if ($page < $pages - 1)
|
||||
<li class="page-item"><a class="page-link" href='/search/{{ $page + 1 }}'>Next</a></li>
|
||||
<!--keyboardinteraction keyname="n" target='/search/{{ $page + 1 }}'></keyboardinteraction-->
|
||||
@else
|
||||
<li class="page-item disabled"><a class="page-link" href='/search/{{ $page + 1 }}'>Next</a></li>
|
||||
@endif
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
<div class="row">
|
||||
@foreach ($results as $rev)
|
||||
@if ($rev !== false)
|
||||
@component("thumbnail_title", ["rev" => $rev])
|
||||
@endcomponent
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
<nav>
|
||||
<ul class="pagination justify-content-center my-2">
|
||||
@if ($page > 0)
|
||||
<li class="page-item"><a class="page-link" href='/search/{{ $page - 1 }}'>Previous</a></li>
|
||||
@else
|
||||
<li class="page-item disabled"><a class="page-link" href='/search/{{ $page - 1 }}'>Previous</a></li>
|
||||
@endif
|
||||
|
||||
@for ($i = -4; $i <= 4; $i++)
|
||||
|
||||
@if ((($page + $i) < ($pages)) && (($page + $i) >= 0))
|
||||
@if ($i == 0)
|
||||
<li class="page-item active"><a class="page-link" href='/search/{{ $page + $i }}'>{{ $page + $i + 1}}</a></li>
|
||||
@else
|
||||
<li class="page-item"><a class="page-link" href='/search/{{ $page + $i }}'>{{ $page + $i + 1}}</a></li>
|
||||
@endif
|
||||
@endif
|
||||
|
||||
@endfor
|
||||
|
||||
@if ($page < $pages - 1)
|
||||
<li class="page-item"><a class="page-link" href='/search/{{ $page + 1 }}'>Next</a></li>
|
||||
@else
|
||||
<li class="page-item disabled"><a class="page-link" href='/search/{{ $page + 1 }}'>Next</a></li>
|
||||
@endif
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,10 @@
|
||||
<table class="table">
|
||||
<tbody>
|
||||
@foreach ($list as $k=>$v)
|
||||
<tr>
|
||||
<td>{{ $k }}</td>
|
||||
<td class="text-end">{{ $v }}</td>
|
||||
</tr>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -0,0 +1,20 @@
|
||||
<{!! '?xml version="1.0" encoding="UTF-8"?' !!}>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
@foreach ($docs as $doc)
|
||||
<url>
|
||||
<loc>{{ Config::get("URL") }}/document/{{ $doc->id }}</loc>
|
||||
<lastmod>{{ $doc->last_modified() }}</lastmod>
|
||||
</url>
|
||||
@endforeach
|
||||
|
||||
@foreach ($revs as $rev)
|
||||
<url>
|
||||
<loc>{{ Config::get("URL") }}/revision/{{ $rev->id }}</loc>
|
||||
<lastmod>{{ $rev->last_modified() }}</lastmod>
|
||||
</url>
|
||||
<url>
|
||||
<loc>{{ Config::get("URL") }}/pdf/{{ $rev->id }}/download/{{ $rev->filename() }}</loc>
|
||||
<lastmod>{{ $rev->last_modified() }}</lastmod>
|
||||
</url>
|
||||
@endforeach
|
||||
</urlset>
|
||||
@@ -0,0 +1,4 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<spiderpages></spiderpages>
|
||||
@endsection
|
||||
@@ -0,0 +1,4 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<pdflist></pdflist>
|
||||
@endsection
|
||||
@@ -0,0 +1,27 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-3 col-12">
|
||||
<h2 class="text-center">Spider</h2>
|
||||
@component("simple_table", ["list" => $spider]);
|
||||
@endcomponent
|
||||
</div>
|
||||
<div class="col-lg-3 col-12">
|
||||
<h2 class="text-center">PDF URLs</h2>
|
||||
@component("simple_table", ["list" => $pdf]);
|
||||
@endcomponent
|
||||
</div>
|
||||
<div class="col-lg-3 col-12">
|
||||
<h2 class="text-center">OCR</h2>
|
||||
@component("simple_table", ["list" => $ocr]);
|
||||
@endcomponent
|
||||
</div>
|
||||
<div class="col-lg-3 col-12">
|
||||
<h2 class="text-center">Index</h2>
|
||||
@component("simple_table", ["list" => $idx]);
|
||||
@endcomponent
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,32 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<br/>
|
||||
|
||||
<h1>{{ $sys->name }}</h1>
|
||||
<h2>{{ $sys->model }}</h2>
|
||||
<br/>
|
||||
<p>{{ $sys->notes }}</p>
|
||||
</br>
|
||||
<h5>Documents</h5>
|
||||
<table class="table table-hover">
|
||||
@foreach ($sys->documents as $doc)
|
||||
<tr>
|
||||
<td><a href='/system/{{ $sys->id }}/del/{{ $doc->id }}' class="btn btn-danger"><i class="fa fa-trash"><i></a></td>
|
||||
<td>
|
||||
<a href='/document/{{ $doc->id }}' class="btn">
|
||||
<b>{{ $doc->title }}</b>
|
||||
{{ $doc->subtitle }}
|
||||
<small>{{ $doc->subsubtitle }}</small>
|
||||
</a>
|
||||
</td>
|
||||
<td class="fit">
|
||||
<a href='/document/{{ $doc->id }}' class="btn">{{ $doc->internal_id }}</a>
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
@endforeach
|
||||
</table>
|
||||
<br/>
|
||||
<p>To add a document to this system first navigate to the document then
|
||||
click the Add To System <i class="btn btn-primary fa fa-plus"></i> button and select this system from the dropdown.</p>
|
||||
@endsection
|
||||
@@ -0,0 +1,18 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<br/>
|
||||
|
||||
<h1>Your systems</h1>
|
||||
<br/>
|
||||
|
||||
<ul class="list-group">
|
||||
@foreach ($systems as $system)
|
||||
<li class="list-group-item">
|
||||
<a class="btn" href='/system/{{ $system->id }}'><b>{{ $system->name }}</b> {{ $system->model }}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
|
||||
<a class="btn btn-secondary" href='/system/add'>Add a new system</a>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,34 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<br/>
|
||||
|
||||
<h1>Add system</h1>
|
||||
<p>Adding a system allows you to gather together all the documents you need
|
||||
for working with a specific computer you own, along with all the expansion
|
||||
cards that are inside that computer.</p>
|
||||
<br/>
|
||||
<form action='/system/add' method="POST">
|
||||
<label for="name" class="form-label">System Name</label>
|
||||
<input class="form-control" type="text" name="name"></input>
|
||||
<p>Give your system a friendly name. I'm sure you've already named all your computers.</p>
|
||||
|
||||
<label for="model" class="form-label">Model</label>
|
||||
<input class="form-control" type="text" name="model"></input>
|
||||
<p>What kind of computer is this system?</p>
|
||||
|
||||
<label for="notes" class="form-label">Notes</label>
|
||||
<textarea class="form-control" name="notes">
|
||||
</textarea>
|
||||
<p>Add any notes about the system you like here.</p>
|
||||
|
||||
<div class="text-end">
|
||||
<div class="btn-group">
|
||||
<a class="btn btn-danger" href="/systems">Cancel</a>
|
||||
<input class="btn btn-success" type="Submit" value="Add System"></input>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,95 @@
|
||||
@php
|
||||
$rev->load("document");
|
||||
@endphp
|
||||
<div class="card bg-body-secondary col-lg-6 col-12 p-0 mb-auto">
|
||||
<a href='/revision/{{ $rev->id }}'>
|
||||
<img class="card-img-top" src='{{ $rev->cover(320) }}'>
|
||||
</a>
|
||||
<div class="d-flex flex-column justify-content-between card-body h-100">
|
||||
<div>
|
||||
@if (($rev->revno != "") && ($rev->revno != "0"))
|
||||
<h5 class="card-title text-center">
|
||||
{{ $rev->document->internal_id }}-{{ $rev->revno }}
|
||||
</h5>
|
||||
@else
|
||||
<h5 class="card-title text-center">
|
||||
{{ $rev->document->internal_id }}
|
||||
</h5>
|
||||
@endif
|
||||
</div>
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
{{ fmt_date($rev->month, $rev->year) }}
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
@isset ($rev->info->Pages)
|
||||
{{ $rev->info->Pages }} pages
|
||||
@else
|
||||
Number of pages unknown
|
||||
@endisset
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>Quality</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
<StarRating rev="{{ $rev->id }}" rating="{{ $rev->rating }}"></StarRating>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<hr/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
Original
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
{{ format_size(stat($rev->path() . "/doc.pdf")["size"]) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group w-100">
|
||||
<a class="btn btn-primary w-50" href='/pdf/{{ $rev->id }}/view/{{ $rev->filename() }}'>
|
||||
view
|
||||
</a>
|
||||
<a class="btn btn-secondary w-50" href='/pdf/{{ $rev->id }}/download/{{ $rev->filename() }}'>
|
||||
download
|
||||
</a>
|
||||
</div>
|
||||
@if (file_exists($rev->path() . "/ocr.pdf"))
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<hr/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
OCR Version
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
{{ format_size(stat($rev->path() . "/ocr.pdf")["size"]) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group w-100">
|
||||
<a class="btn btn-primary w-50" href='/pdf/{{ $rev->id }}/viewocr/{{ $rev->filename() }}'>
|
||||
view
|
||||
</a>
|
||||
<a class="btn btn-secondary w-50" href='/pdf/{{ $rev->id }}/downloadocr/{{ $rev->filename() }}'>
|
||||
download
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,97 @@
|
||||
@php
|
||||
$rev->load("document");
|
||||
@endphp
|
||||
<div class="card bg-body-secondary col-lg-3 col-12 p-0 mb-auto">
|
||||
<a href='/revision/{{ $rev->id }}'>
|
||||
<img class="card-img-top" src='{{ $rev->cover(320) }}'>
|
||||
</a>
|
||||
<div class="d-flex flex-column justify-content-between card-body h-100">
|
||||
@if ($rev->document)
|
||||
<div>
|
||||
@if (($rev->revno != "") && ($rev->revno != "0"))
|
||||
<h5 class="card-title text-center">
|
||||
{{ $rev->document->internal_id }}-{{ $rev->revno }}
|
||||
</h5>
|
||||
@else
|
||||
<h5 class="card-title text-center">
|
||||
{{ $rev->document->internal_id }}
|
||||
</h5>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
{{ fmt_date($rev->month, $rev->year) }}
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
@isset ($rev->info->Pages)
|
||||
{{ $rev->info->Pages }} pages
|
||||
@else
|
||||
Number of pages unknown
|
||||
@endisset
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>Quality</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
<StarRating rev="{{ $rev->id }}" rating="{{ $rev->rating }}"></StarRating>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<hr/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
Original
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
{{ format_size(stat($rev->path() . "/doc.pdf")["size"]) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group w-100">
|
||||
<a class="btn btn-primary w-50" href='/pdf/{{ $rev->id }}/view/{{ $rev->filename() }}'>
|
||||
view
|
||||
</a>
|
||||
<a class="btn btn-secondary w-50" href='/pdf/{{ $rev->id }}/download/{{ $rev->filename() }}'>
|
||||
download
|
||||
</a>
|
||||
</div>
|
||||
@if (file_exists($rev->path() . "/ocr.pdf"))
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<hr/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
OCR Version
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
{{ format_size(stat($rev->path() . "/ocr.pdf")["size"]) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group w-100">
|
||||
<a class="btn btn-primary w-50" href='/pdf/{{ $rev->id }}/viewocr/{{ $rev->filename() }}'>
|
||||
view
|
||||
</a>
|
||||
<a class="btn btn-secondary w-50" href='/pdf/{{ $rev->id }}/downloadocr/{{ $rev->filename() }}'>
|
||||
download
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<hr/>
|
||||
<StarRating rev="{{ $rev->id }}" rating="{{ $rev->rating }}"></StarRating>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,84 @@
|
||||
@php
|
||||
$rev->load("document");
|
||||
@endphp
|
||||
<div class="card bg-body-secondary col-lg-3 col-12 p-0">
|
||||
<a href='/revision/{{ $rev->id }}'>
|
||||
<img class="card-img-top" src='{{ $rev->cover(320) }}'>
|
||||
</a>
|
||||
<div class="d-flex flex-column justify-content-between card-body h-100">
|
||||
<div>
|
||||
|
||||
@if (($rev->revno != "") && ($rev->revno != "0"))
|
||||
<h5 class="card-title text-center">
|
||||
{{ $rev->document->internal_id }}-{{ $rev->revno }}
|
||||
</h5>
|
||||
@else
|
||||
<h5 class="card-title text-center">
|
||||
{{ $rev->document->internal_id }}
|
||||
</h5>
|
||||
@endif
|
||||
|
||||
<div class="text-center"><strong>{{ $rev->document->title }}</strong></div>
|
||||
|
||||
@if ($rev->document->subtitle)
|
||||
<div class="text-center">{{ $rev->document->subtitle }}</div>
|
||||
@endif
|
||||
|
||||
@if ($rev->document->subsubtitle)
|
||||
<div class="text-center"><small>{{ $rev->document->subsubtitle }}</small></div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
{{ fmt_date($rev->month, $rev->year) }}
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
{{ $rev->info->Pages }} pages
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
Original
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
{{ format_size(stat($rev->path() . "/doc.pdf")["size"]) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group w-100">
|
||||
<a class="btn btn-primary w-50" href='/pdf/{{ $rev->id }}/view/{{ $rev->filename() }}'>
|
||||
view
|
||||
</a>
|
||||
<a class="btn btn-secondary w-50" href='/pdf/{{ $rev->id }}/download/{{ $rev->filename() }}'>
|
||||
download
|
||||
</a>
|
||||
</div>
|
||||
@if (file_exists($rev->path() . "/ocr.pdf"))
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<b>
|
||||
OCR Version
|
||||
</b>
|
||||
</div>
|
||||
<div class="col">
|
||||
{{ format_size(stat($rev->path() . "/ocr.pdf")["size"]) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="btn-group w-100">
|
||||
<a class="btn btn-primary w-50" href='/pdf/{{ $rev->id }}/viewocr/{{ $rev->filename() }}'>
|
||||
view
|
||||
</a>
|
||||
<a class="btn btn-secondary w-50" href='/pdf/{{ $rev->id }}/downloadocr/{{ $rev->filename() }}'>
|
||||
download
|
||||
</a>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,20 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
|
||||
<div class="row my-3">
|
||||
<div class="col-xl-3"></div>
|
||||
<div class="col-12 col-xl-6 text-center">
|
||||
|
||||
<form action="/upload/attachment/{{ $doc->id }}" method="POST" enctype="multipart/form-data">
|
||||
<label id="drop-zone">
|
||||
Drop files here, or click to upload. <br/>
|
||||
<input type="file" id="file-input" multiple accept="*/*" name="file[]" />
|
||||
</label>
|
||||
<br/>
|
||||
<input type="submit" class="btn btn-success" value="Upload"/>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-xl-3"></div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,20 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
|
||||
<div class="row my-3">
|
||||
<div class="col-xl-3"></div>
|
||||
<div class="col-12 col-xl-6 text-center">
|
||||
|
||||
<form action="/upload" method="POST" enctype="multipart/form-data">
|
||||
<label id="drop-zone">
|
||||
Drop files here, or click to upload. <br/>
|
||||
<input type="file" id="file-input" multiple accept="application/pdf" name="file[]" />
|
||||
</label>
|
||||
<br/>
|
||||
<input type="submit" class="btn btn-success" value="Upload"/>
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-xl-3"></div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,8 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
|
||||
<h1>Duplicate file detected.</h1>
|
||||
|
||||
<a href='/revision/{{ $rev->id }}' class="btn btn-secondary">Click here to view original</a>
|
||||
|
||||
@endsection
|
||||
@@ -0,0 +1,78 @@
|
||||
@extends("layout.main")
|
||||
@section("content")
|
||||
<br/>
|
||||
|
||||
@foreach ($uploads as $upload)
|
||||
<div class="row">
|
||||
<div class='col-lg-8 col-12'>
|
||||
<a href='/uploads/view/{{ $upload->id }}'>{{ $upload->filename }}</a> ({{ round($upload->getPDF()->size() / 1024 / 1024 * 100) / 100}} MB)
|
||||
</div>
|
||||
<div class='col-lg-4 col-12'>
|
||||
AI: {{ $upload->ai }}
|
||||
OCR: {{ $upload->ocr }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-11">
|
||||
@if ($upload->ai == 'Y')
|
||||
<h3>{{ $upload->ai_docid }} {{ $upload->title }} {{ $upload->subtitle }} {{ $upload->subsubtitle }}</h3>
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-1">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if ($upload->ai == 'Y')
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
{{ $upload->overview }}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 text-end">
|
||||
<div class="btn-group">
|
||||
@if (($upload->ai == 'Y') && ($upload->ocr == 'Y'))
|
||||
@if ($upload->ocr_docid)
|
||||
<a href='/uploads/import/{{$upload->id}}/ocr' class="btn btn-success"><small>Import</small><br/>{{ $upload->ocr_docid }}</a>
|
||||
@endif
|
||||
@if ($upload->ai_docid)
|
||||
<a href='/uploads/import/{{$upload->id}}/ai' class="btn btn-success"><small>Import</small><br/>{{ $upload->ai_docid }}</a>
|
||||
@endif
|
||||
|
||||
<a href='/uploads/import/{{$upload->id}}/none' class="btn btn-warning"><small>Import</small><br/>No Code</a>
|
||||
@endif
|
||||
@if (($upload->ai == "F") || ($upload->ocr == "F"))
|
||||
<a href='/uploads/import/{{$upload->id}}/none' class="btn btn-warning"><small>Import</small><br/>Regardless</a>
|
||||
<a href='/uploads/rerun/{{$upload->id}}' class="btn btn-primary">Reprocess</a>
|
||||
@endif
|
||||
<a href="/uploads/discard/{{ $upload->id }}" class="btn btn-danger">Discard</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<jobdisplay source="upload:{{ $upload->id }}"></jobdisplay>
|
||||
|
||||
|
||||
<hr/>
|
||||
@endforeach
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 text-center">
|
||||
<div class="btn-group">
|
||||
@if ($page > 0)
|
||||
<a class="btn btn-primary" href='/uploads/{{ $page - 1 }}'>< Prev</a>
|
||||
@else
|
||||
<a class="btn btn-secondary" href='#'>< Prev</a>
|
||||
@endif
|
||||
<a class="btn btn-primary" href='/uploads/{{ $page + 1 }}'>Next ></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr/>
|
||||
<br/>
|
||||
<!--jobdisplay source="download"></jobdisplay-->
|
||||
<br/>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user