New Frontend in Vue with drf interface (#72)

* frontend rewrite with vie initial commit

* got ComicCard.vue working nice.

* got TheComicList.vue working.

* added router and basic config

* getting jwt stuff working.

* login with jwt now working.

* implemented browse api call

* implemented browse api recievers

* jwt token is now updating automatically.

* removed code for jwt testing.

* enabled browsing

* breadcrumbs working

* adding django webpack loader

* linking up navigation

* fixes for ComicCard.vue stying

* added thumbnail view

* added thumbnail generation and handling.

* detached breadcrumbs

* fix breadcrumbs

* added first stages of reader

* reader view is working.

* reader is now working with keyboard shortcuts

* implemented setting read page.

* implemented pagination on comic reader.

* hide elements that shouldn't be shown.

* fixed the ComicCard.vue to use as little space as possible.

* fix navbar browse link

* added RecentView.vue and added manual option for breadcrumbs

* updated rest api to handle recent comics.

* most functionality of recent comics done

* modified comicstatus relation to use uuid relation and implemented mark read and unread for batches.

* added functions to TheRecentTable.vue

* added feed link to TheRecentTable.vue

* fixes for comicstatus updates.

* added constraints to comicstatus

* update to python packages.

* some changes for django 4, also removed django-recaptcha2 as it doesnt support django 4.

* some fixes and updates to ComicCard.vue

* cleaned up generate_directory. fixed bug where pages not visible on first call.

* cleaned up generate_directory. fixed bug where pages not visible on first call.

* cleaned up generate_directory. fixed bug where pages not visible on first call.

* cleaned up generate_directory.

* added silk stubs

* fix for re-requesting thumbnail after getting it already.

* fix for removing stale comics.
adding leeway to access token.

* mark read and unread

* added filtering to comic list.

* stored filtering state.

* stored filtering state.

* added next functionality to login.

* cleanup LoginView.vue

* bump font-awesome.

* working on AccountView.vue

* fixed form submission on LoginView.vue

* account page should now be working.

* hide users option if not superuser.

* added pdf support

* make pdf resize.

* added touch controls to pdf reader

* added touch controls to comic reader

* beginnings of routing between issues.

* fixes for navigating pages.

* fixes for navigating pages.

* fixes for navigating pages.

* renamed HomeView.vue to BrowseView.vue

* stubs for users page added. api ready

* users page further functinality

* fix for notification

* fix for notification

* moved messages to parent.

* form to add users

* added error handling

* removed console logging

* classification in base directory should be lowest

* renamed usermisc to classification to be more consistent with what it does.

* renamed usermisc to classification to be more consistent with what it does.

* added functionality to change classification of directories.

* merged rss_id api into account api.

* merged breadcrumbs api into browse api.

* clears some warnings from console.

* fixed read/unread rendering.

* added build script and starting lint

* fixing lint errors

* fixing lint errors

* fixing lint errors

* fixing lint errors

* fixing lint errors

* fixing lint errors

* fixing lint errors

* fixing lint errors

* fixing navigation bugs

* cleanup and fixes

* fixed generated tooltips over calling.

* fixed classifications.

* initial setup now working

* fix navbar branding

* fix favicon

* added beta build script.

* fixes to get ready for production

* optimisations for loading new comics.

* added loading indicators to TheComicList.vue

* lint fixes

* made two methods static. may use them elsewhere.

* fix for scanning files.

* version updates.

* fixes for production

* fixes for production

Co-authored-by: Peter Dwyer <peter.dwyer@clanwilliamhealth.com>
This commit is contained in:
2022-08-25 15:42:20 +01:00
committed by GitHub
parent 3be7d9cb5c
commit c5633bf54a
86 changed files with 25205 additions and 644 deletions

View File

@@ -0,0 +1,19 @@
# Generated by Django 3.2.14 on 2022-07-07 16:03
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('comic', '0028_alter_comicpage_options'),
]
operations = [
migrations.AddField(
model_name='comicbook',
name='directory2',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='directory2', to='comic.directory', to_field='selector'),
),
]

View File

@@ -0,0 +1,22 @@
# Generated by Django 3.2.14 on 2022-07-07 16:20
from django.db import migrations
def forwards_func(apps, schema_editor):
ComicBook = apps.get_model("comic", "ComicBook")
for comic in ComicBook.objects.all():
if comic.directory:
comic.directory2 = comic.directory
comic.save()
class Migration(migrations.Migration):
dependencies = [
('comic', '0029_comicbook_directory2'),
]
operations = [
migrations.RunPython(forwards_func),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 3.2.14 on 2022-07-07 16:25
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('comic', '0030_auto_20220707_1720'),
]
operations = [
migrations.RemoveField(
model_name='comicbook',
name='directory',
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.14 on 2022-07-07 16:25
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('comic', '0031_remove_comicbook_directory'),
]
operations = [
migrations.RenameField(
model_name='comicbook',
old_name='directory2',
new_name='directory',
),
]

View File

@@ -0,0 +1,19 @@
# Generated by Django 3.2.14 on 2022-07-07 16:32
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('comic', '0032_rename_directory2_comicbook_directory'),
]
operations = [
migrations.AlterField(
model_name='comicbook',
name='directory',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='comic.directory', to_field='selector'),
),
]

View File

@@ -0,0 +1,19 @@
# Generated by Django 3.2.14 on 2022-07-08 08:09
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('comic', '0033_alter_comicbook_directory'),
]
operations = [
migrations.AddField(
model_name='directory',
name='parent2',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='parent_new', to='comic.directory', to_field='selector'),
),
]

View File

@@ -0,0 +1,28 @@
# Generated by Django 3.2.14 on 2022-07-08 08:10
from django.db import migrations
def forwards_func(apps, schema_editor):
Directory = apps.get_model("comic", "Directory")
for directory in Directory.objects.all():
if directory.parent:
directory.parent2 = directory.parent
directory.save()
def backwards_func(apps, schema_editor):
return
Directory = apps.get_model("comic", "Directory")
for directory in Directory.objects.all():
if directory.parent:
directory.parent2 = directory.parent
directory.save()
class Migration(migrations.Migration):
dependencies = [
('comic', '0034_directory_parent2'),
]
operations = [
migrations.RunPython(forwards_func, backwards_func),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 3.2.14 on 2022-07-08 08:12
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('comic', '0035_auto_20220708_0910'),
]
operations = [
migrations.RemoveField(
model_name='directory',
name='parent',
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.14 on 2022-07-08 08:14
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('comic', '0036_remove_directory_parent'),
]
operations = [
migrations.RenameField(
model_name='directory',
old_name='parent2',
new_name='parent',
),
]

View File

@@ -0,0 +1,19 @@
# Generated by Django 3.2.14 on 2022-07-08 08:14
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('comic', '0037_rename_parent2_directory_parent'),
]
operations = [
migrations.AlterField(
model_name='directory',
name='parent',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='comic.directory', to_field='selector'),
),
]

View File

@@ -0,0 +1,19 @@
# Generated by Django 3.2.14 on 2022-07-21 10:26
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('comic', '0038_alter_directory_parent'),
]
operations = [
migrations.AddField(
model_name='comicstatus',
name='comic2',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='comic2', to='comic.comicbook', to_field='selector'),
),
]

View File

@@ -0,0 +1,28 @@
# Generated by Django 3.2.14 on 2022-07-21 10:21
from django.db import migrations
def forwards_func(apps, schema_editor):
ComicStatus = apps.get_model("comic", "ComicStatus")
for status in ComicStatus.objects.all():
status.comic2 = status.comic
status.save()
def backwards_func(apps, schema_editor):
ComicStatus = apps.get_model("comic", "ComicStatus")
for status in ComicStatus.objects.all():
status.comic = status.comic2
status.save()
class Migration(migrations.Migration):
dependencies = [
('comic', '0039_comicstatus_comic2'),
]
operations = [
migrations.RunPython(forwards_func, backwards_func),
]

View File

@@ -0,0 +1,19 @@
# Generated by Django 3.2.14 on 2022-07-21 10:27
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('comic', '0040_auto_20220721_1126'),
]
operations = [
migrations.AlterField(
model_name='comicstatus',
name='comic2',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comic2', to='comic.comicbook', to_field='selector'),
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 3.2.14 on 2022-07-21 10:29
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('comic', '0041_alter_comicstatus_comic2'),
]
operations = [
migrations.RemoveField(
model_name='comicstatus',
name='comic',
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 3.2.14 on 2022-07-21 10:29
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('comic', '0042_remove_comicstatus_comic'),
]
operations = [
migrations.RenameField(
model_name='comicstatus',
old_name='comic2',
new_name='comic',
),
]

View File

@@ -0,0 +1,19 @@
# Generated by Django 3.2.14 on 2022-07-21 10:29
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('comic', '0043_rename_comic2_comicstatus_comic'),
]
operations = [
migrations.AlterField(
model_name='comicstatus',
name='comic',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='comic.comicbook', to_field='selector'),
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 3.2.14 on 2022-07-22 08:40
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('comic', '0044_alter_comicstatus_comic'),
]
operations = [
migrations.AddConstraint(
model_name='comicstatus',
constraint=models.UniqueConstraint(fields=('user', 'comic'), name='one_per_user_per_comic'),
),
]

View File

@@ -0,0 +1,17 @@
# Generated by Django 4.0.6 on 2022-07-22 11:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('comic', '0045_comicstatus_one_per_user_per_comic'),
]
operations = [
migrations.AddConstraint(
model_name='comicbook',
constraint=models.UniqueConstraint(fields=('directory', 'file_name'), name='one_comic_name_per_directory'),
),
]