#hangar-dev

1 messages ยท Page 10 of 1

pallid yoke
#

ill show when I have done more work, lol

mental star
#

i don't know anything about the current state so I can't compare it to a previous state :p

random badger
#

noice

modest bisonBOT
#

why is that a thing?

pallid yoke
#

idk, why not?

#

doesnt cost anything, its a deferred script

random badger
#

iirc mini, you don't need to add nonce to scripts that load stuff from url's that are listed in the CSP header

#

only for script tags that you have plain javascript inside

pallid yoke
#

yeah idk why I did that, I had a bit of a fight

random badger
#

although, if you do add the nonce, do you have to include the hostname in the CSP header?

#

if you can just include the nonce in all the script tags, that might be better

mental star
#

He really did it

pallid yoke
#

at hangar, we take user request serious!

#

Even if it wasn't meant to be taken seriously ๐Ÿ˜‚

random badger
#

need skript support next...

pallid yoke
#

Brb, lemme compile script jar to wasm first

#

Or wait! I'll just use gwt!

#

Do we wanna bet if Skript works in gwt? ๐Ÿ˜‚ ๐Ÿ˜‚

#

On that note, i just saw on Twitter that somebody finished his wasm SMB impl, isn't the future great? ๐Ÿ˜‚

random badger
#

you just said a bunch of random letters that have no meaning to me ๐Ÿ˜†

modest forge
random badger
#

that'd be a totally awesome prank to play on someone... go into their pc and change all their fonts by just switching two letters

#

I think it'd take me a while to think of the font as the issue if I found that

mental star
#

||we did something like that with player messages on a server||

pallid yoke
#

ok, so am playing around with paypal a bit, its rather fun

safe harbor
#

Making you looking like a billionaire :3

random badger
#

So plan is you gotta donate $5 to create a new project right? Gotta charge for status changes as well. ๐Ÿ™‚ take the EA model.

modest forge
#

Nah gotta make it pay-to-approve

modest forge
#

No staff to actually approve the resources, either wait 2 weeks to approve, or receive Hangar crates for visiting daily then pay $37.99 for a pack of 5 approval keys to unlock the crates that might contain a free approval

pallid yoke
#

now I just gotta figure out how I can tell paypal to actually send IPN

#

and then do the whole backend ๐Ÿ˜‚

#
2021-01-07 19:14:14.118  INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService  : Receiver is: minidigger-author@hangar.minidigger.me
2021-01-07 19:14:14.118  INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService  : transaction id is 29V83400L18625404
2021-01-07 19:14:14.119  INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService  : Status was completed
2021-01-07 19:14:14.119  INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService  : Currency USD amount 20.00 fee 0.88
2021-01-07 19:14:14.119  INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService  : Was test ipn
2021-01-07 19:14:14.119  INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService  : Payer minidigger-buyer@hangar.minidigger.me
2021-01-07 19:14:14.119  INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService  : Custom 
#

that was easy

pallid yoke
modest forge
#

๐Ÿ‘€

pallid yoke
#

my IPN code broke for subscription tho

#

posting for future reference

#

2021-01-07 19:36:17.079 INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService : Verified ipn: {charset=UTF-8, business=minidigger-author@hangar.minidigger.me, payer_email=minidigger-buyer@hangar.minidigger.me, receiver_email=minidigger-author@hangar.minidigger.me, recurring=1, payer_status=verified, last_name=MiniDigger, mc_amount3=20.00, reattempt=1, subscr_date=11:35:31 Jan 07, 2021 PST, notify_version=3.9, residence_country=US, mc_currency=USD, test_ipn=1, amount3=20.00, txn_type=subscr_signup, subscr_id=I-22YKC67HNW3T, period3=1 M, payer_id=FHTXGJW2L68DN, verify_sign=AfZ0l8aEstwgUfENnMUNUA5tzTi7AFo-HaASfh4eu.7LF48ycmoO3e3E, first_name=Martin, ipn_track_id=93fa0be5e2600}
2021-01-07 19:36:17.080 INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService : Receiver is: minidigger-author@hangar.minidigger.me
2021-01-07 19:36:17.080 INFO 1 --- [onPool-worker-3] io.papermc.hangar.service.PaypalService : transaction id is null

random badger
#

ooo secrets!

pallid yoke
#

sandbox, lol

random badger
#

nah ik

#

is the husky git hook working to fix all ur formatting issues?

#

or nah.

#

I hoped it would prevent bad indentation

pallid yoke
#

I just need to install it properly

#

@mellow pebble return didnt work for donations

#

actually

#

nvm

#

as I was typing

#

thanks!

random badger
#

I was gonna say, strange you can return for payments but not donations

pallid yoke
#

tomorrow ill implement the backend

#

store transaction IDs, IPN and stuff

#

send notifications to authors

#

so much to do

#

but I think this is good enough for a POC

random badger
#

should get a list of possible perks going

#

unless I already did that... and forgot about it

safe harbor
#

Animated pfps ๐Ÿ‘€

random badger
#

yeah, that was def mentioned somewhere

safe harbor
#

lul

random badger
#

yeah, some issue sending that from hangarauth

pallid yoke
#

I wouldn't store donations in auth

#

That has nothing to do with auth

modest forge
#

I mean, it does if you make uploading of animated avatars a paid perk

#

But then you'd probably just want to have a boolean on auth for that

pallid yoke
#

That would be a role

#

Roles/perms are on auth

modest forge
#

I forgot roles existed

#

shh

random badger
#

but I thought auth kinda held the main user db row

#

and you'd want donations associated with that user, idk

pallid yoke
#

I don't have the model in kind, doesn't hangar itself have an author too?

#

To link projects?

#

Or are projects just linked to user id?

#

But like, donations could be linked to org, user or project

random badger
#

I meant the person who made the donation tho

pallid yoke
#

I would link donations to receiver, not sender

#

Sender is still in the table as a user id, so you can still query all donations of a user

#

But it makes more sense to attach them to the receiver i would say

pallid yoke
#

filled out a few more options

modest bisonBOT
#

Is this sandboxed or are you currently throwing out hundreds of dollars out of the window?

pallid yoke
#

commitment!

#

its a sandbox ๐Ÿ˜„

modest bisonBOT
#

Cool

midnight anchor
#

noice

narrow verge
#

Man Mini has either 50.128 or 03 EURs but it's hard to tell

modest bisonBOT
#

No, he has 148.400 USD

safe harbor
#

Imagine how many drinks you could get with that ๐Ÿฅบ

random badger
#

yeah, I think Europe messed up commas and periods in numbers...

mental star
#

I think that's a german thing

modest bisonBOT
#

It's only some parts of germany

mental star
#

it's the only thing that's wrong in germany!

modest bisonBOT
#

Eh

#

As long as you don't use 3 decimal places it's okay

#

Other things would be that many people in germany don't use an asterisk in multiplication (at least I was taught that)

narrow verge
solemn zenith
lusty cypress
#

e

mystic mountain
#

hi i'm am starting at plugin programming for spigot/bukkit and using eclipse IDE i didn't even made my first plugin and i need some tips, but i'm not here just to it, i don't know how to compile it and test my server, how do i do it?

narrow verge
sterile fable
pallid yoke
#

...

sterile fable
#

oh sorry, wrong channel

eternal vale
#

Curious: why donโ€™t you guys just use XenForo resources like spigot?

ivory ingot
#

Why pay for Xenforo if you can have a dedicated and better system for free (excluding time spent for development)

pallid yoke
#

Because xenforo is the reason spigots resource section is so bad

narrow verge
#
  1. XenForo expensive
  2. XenForo bad
sly mason
#

for support/maintance, yes iirc

#

xenforo doesn't have cool stuff like an API, not support for stuff like multiple resource owners, etc

pallid yoke
#

staging is back online again

#

moved servers and forgot to move hangar

wide wing
#

Will Hangar have multi-language support?

pallid yoke
#

๐Ÿคทโ€โ™‚๏ธ

#

Not sure that's worth the complexity, in theory it's possible tho

#

Both our server sided and the client sided message apis do support multiple locales

wide wing
#

I see

carmine heath
#

can i haz verification tnx.

modest forge
#

Not sure what you're asking for, but this channel is for discussion of Hangar

carmine heath
#

habgar email verfication is down

#

i made an account but it's not letting me

modest forge
#

Not sure if we're currently approving people, @pallid yoke ?

pallid yoke
#

Sure why not, if they wanna test

modest forge
#

@carmine heath If you DM me the email you used to sign up, I'll approve your account

pallid yoke
#

You gotta send her the link, you can't click it yourself

modest forge
#

Shh I remember

carmine heath
#

thanls!

sly mason
#

i 'member

crimson flower
#

mini how different will hangar be from the bukkit API?

modest bisonBOT
#

Wat

#

bukkit API? Bukkit dev or something else?

#

Do you understand what hangar is?

#

It's a replacement for spigots resource section

#

It has nothing to do with Bukkit

safe harbor
#

Worse than mini after lots of beer.

modest bisonBOT
#

Hey, i get better at api design when am drunk!

crimson flower
#

then I confused this with the independence of paper

random badger
#

this is a part of that

modest bisonBOT
#

Hangar will be the site where you get paper plugins

crimson flower
#

Figured out

modest bisonBOT
#

Making us independent of spigots resource section

safe harbor
#

The one doesn't exclude the other ๐Ÿ˜Œ

#

smh

modest bisonBOT
#

It's a requirement for all further steps

#

Revolutionary I see

#

Paperweight (the Gradle plugin that allows us to use mojang mappings) is another requirement, as it drastically reduces the maintenance burden

crimson flower
#

alright mini, gn

safe harbor
#

Better approve PlaceboRemover tmrw, it has almost as much views as essentials.

modest forge
#

is PlaceboRemover just a TruAntiLag ripoff?

safe harbor
#

Oh no, I actually called it LagRemover

modest bisonBOT
#

I think I should put EnchantmentsPlus on there to be the first CE plugin on Hangar

#

I like how the TOS redirects to google

#

I always use Google for dummy links, lol

carmine heath
#

Plugin meta file missing required field "id or version".

#

๐Ÿ˜ฆ

random badger
#

@carmine heath what are you uploading?

#

more specifically, can you post your plugin.yml (or equivalent)?

#

that error is when its missing something (or more likely, the validation is broken)

carmine heath
#

this is the jar

#

@random badger

narrow verge
#

lovely

cursive kraken
pallid yoke
#

It always looked like that ^^

#

We don't have a proper logo yet so I never replaced it

random badger
#

@carmine heath mmkay, should be all fixed. For some reason, an author field in plugin.yml was required, but it shouldn't be. Only required things are name and version now.

mild oasis
#

How does one get through the email verification for Hangar? It appears to not send a verification link via my email.

midnight anchor
#

someone will send it to you sooner or later

mild oasis
#

Okay cool

random badger
#

getting a weird issue

Blocked loading mixed active content โ€œhttp://hangar.minidigger.me/Narimm/Prism-Bukkit/versions/2.1.8-SNAPSHOT.4/reviewsโ€

which results from a simple location.reload() on a button click.

#

when I run location.reload() from the devtools, it reloads fine.

pallid yoke
#

Interesting that a reload uses the wrong protocol

#

Strange, since window.location does contain the protocol

#

But yeah, doesn't seem a bad change then

#

We don't loose much

mild oasis
#

@pallid yoke Gonna get a mock up started for the new logo, any ideas on how you'd like it to look?

mellow pebble
#

I'm sad to see my awesome logo get replaced

mild oasis
#

lol it is awesome for Ore!

random badger
#

well I think she is talking about the current one...

mild oasis
#

OHHH

mellow pebble
#

yea ๐Ÿ˜„

modest forge
mild oasis
#

Yeah thats awesome I didnt see that. @mellow pebble Do you have the bg for that hangar logo? The hangar part that is?

#

I could try and works something out for that

mellow pebble
#

That's just a fucked up non symetric curve i made in Illustrator

mild oasis
#

fair ยฏ_(ใƒ„)_/ยฏ

barren shale
#

I don't think anyone really has an idea of what exactly it should look like other than "hangar and paper planes" ๐Ÿ˜‚

mild oasis
#

ooo

#

I have an idea

#

hol up

#

gonna lofi and design

mellow pebble
#

no wait it actually is an ellipsoid with a white on layered on top since i dรญdn't know how to make it hollow

modest forge
#

I did try and make a proper logo at one point but gave up

#

Main idea was the Paper squares with something that looked like a hangar or had some sort of relevant symbolism instead of the plane

#

Also had the thought of changing the squares behind the grey square to be different shades of the same colour

#

(not saying you have to go with any of this, that's just ideas I had before I knew how to use illustrator)

mild oasis
#

There could be something like this or with a different hangar design in the background. Suggestions?

pallid yoke
#

Generally, am open to everything and I am sure we can brainstorm in here and stuff

#

Since the name hangar is a play on the paper plane logo, something like auroras mockup is a nice direction

mild oasis
stark verge
#

make it a star trek logo

#

that would be pog

#

just put paper icon there

#

and boom

mild oasis
stark verge
#

srsly try it once XD

mild oasis
#

ehhh im good

stark verge
#

lol ok

mellow pebble
mild oasis
#

sweet! Lemme know if you have any more ideas and Ill see what I can do for it

cinder silo
#

if i can add my singular cent, i like the more minimalistic direction silent is taking

mild oasis
#

๐Ÿ˜Š

#

minimalistic default darkmode? ๐Ÿ˜ฎ

ocean pagoda
#

I like it, but it seems to me like the paper plane is not centered. Or it is, but it looks strange because of the perspective of the plane? Idk. It's too far on the right

modest forge
#

Was thinking something along these lines (though obviously with a better hangar than that)

modest forge
#

Idk looks a bit scruffy to me

pallid yoke
#

Small paper plane in there maybe?

modest forge
#

Was thinking we could use the colours to differentiate between different projects under Paper's umbrella, but then idk how many Paper projects would get their own logos

solemn zenith
#

The shader one is also a nice concept

mellow pebble
modest forge
#

Could try a paper plane but feel like it might look a bit crowded

modest forge
solemn zenith
#

I still like the second one

fluid stratus
#

I like the middle one, but I agree the paper plane makes it too crowded.

solemn zenith
#

And could imply that hangar is limited to paper plugins, which it isn't iirc

mellow pebble
#

the second option with the gradient looks nice, but I think the gradient should be a bit more spread out maybe?

#

and yea, without the plane

#

if we go with the gradient we have to get logos for everything else as well ๐Ÿ˜„

pallid yoke
#

I like the second one too, but i also don't like the color paper stack in the first place

mellow pebble
#

PaperMC Org can have all the colors and every project gets one color

fluid stratus
#

Yeah, I like that, every project then has a "slice" of the organization logo.

#

Since the current logo has all the different colors.

solemn zenith
#

Nice idea

pallid yoke
#

And we still have the paper in the hangar logo, cause of the stack of rotated papers

mellow pebble
#

exactly

modest bisonBOT
#

what happens if paper runs out of colors?

mellow pebble
#

Oh and as a project overview you could have a nice animation with the paper sheets ๐Ÿ˜„

fluid stratus
#

I doubt that will happen

midnight anchor
#

then paper shuts down, we all have to move to spigot

fluid stratus
#

Running out of colors I mean

solid mirage
#

why not put the paper logo on the hangar in the white space? like it's paper's hangar but anything can go inside

ocean pagoda
mellow pebble
#

what is the difference between a hangar and a barn

#

like what is

modest bisonBOT
#

there isn't much of a difference between a barn and a hangar

modest forge
#

If pigs can fly, none

mellow pebble
#

besides what it's used for

ocean pagoda
#

the shape is a bit different usually

solemn zenith
#

It's a picture in your head that you associate with something. I can see what Malfrador means when I look at it

modest forge
#

I mean, idk about you but if someone says "hangar" to me I don't picture anything

mellow pebble
#

yeah. I think it gets too dark too fast

modest forge
#

Maybe instead of it going all the way to the gray of the "front" square, it could go like halfway?

mellow pebble
#

maybe like that

modest forge
#

Peak laziness is firing up IntelliJ and copying code from an Adventure PR to generate colours

modest forge
random badger
#

why orange? I think its a little close to sponge's yellowy-orange

solemn zenith
#

I liked the initial more, probably because the color difference was much more noticeable

modest forge
random badger
#

o i c

modest forge
#

hmm, could try a bit darker? I kinda prefer the distance in colours between the squares behind and the grey square compared to the initial one

solemn zenith
#

Yeah I understand, the initial one was too close

safe harbor
#

That looks like a hat

#

helmet

#

I like it

modest forge
#

Also this was another shot at incorporating the plane, but meh not really a fan of including the plane in general (as mini pointed out, the squares kinda already incorporate paper)

solemn zenith
random badger
#

idk, I like that except the plane looks off-center

#

ik it might be technically centered, but it looks like its to the right

modest forge
#

Gonna tweak the colours again

pallid yoke
#

Yeah that looks weird

#

Because the outer thing has hard corners, and the soft corners of the hangae

modest forge
solemn zenith
#

I'm certainly not a whiner, but it might be a bit too dark now xd
Idk why but I still like the initial version the most

modest forge
#

Which initial version? The initial orange->grey one was darker

solemn zenith
modest forge
#

Yeah, that's darker?

#

It doesn't have a background bc I exported that instead of screenshotting, this is what the initial one would look like on a while background
(1.1)

#

(also note that the last square is a weird colour bc I did the maths wrong and picked that one at random)

solemn zenith
#

Ah, yeah. Now it's looking worse.
Maybe the perfect version is between this and that one?

solemn zenith
modest forge
#

imo it looks weird fading exactly to the grey used in the frontmost square

solemn zenith
modest forge
solemn zenith
modest forge
#

I think I overwrote the source for that, hang on

mellow pebble
#

i like that

modest forge
#

god this is confusing

modest forge
mellow pebble
#

i'm not sure what the difference between the last 2 is but i like both

solemn zenith
#

I would personally go with 1.3 because 1.2 looks a bit more flat (less difference in color between them)

#

Or you have to add a little shadow to every paper

modest forge
#

I prefer 1.3 too tbh

#

Kinda wary of adding a shadow bc it'll probably look worse at smaller sizes

solemn zenith
#

Yeah prob.

modest forge
#

(willing to bet most people don't even know the paper logo is 10 squares, I didn't until I ran hangar without css once)

solemn zenith
#

But I like the concept of every paper in the stack being a different project

solemn zenith
modest forge
#

It's pretty hard to tell, I thought it was just some rainbow gradient until I saw it at full res lol

random badger
#

well its an svg right? not really a "full res"

solemn zenith
#

xd

random badger
#

but yeah, hangar w/o css its just a big logo

modest forge
#

Can't remember if the 500x500 PNG or the SVG was embedded, but either way it was considerably bigger than it was meant to be

modest forge
#

Any thoughts on that hangar shape? Looks a bit thin to me but idk

stiff token
#

I think it looks less like a barn like this.

#

But, idk.

modest forge
#

Yeah, that was my thought too

fluid stratus
#

I think this is better than the previous one

stiff token
#

Me too. I was wondering how more "rough" ceiling would look like though. Especially since it looks like most hangars are like that. And Paper logo doesn't have big rounded corners either.

#

So, like currently, but make the ceiling out of 2/4/6 straight lines, instead of half-dome.

pallid yoke
#

Instead of round, the top could be a triangle

#

Might look less weird than the round stuff in contrast to the square paper stack

stiff token
#

That's what I meant with sharper, 2-line ceiling.

devout nacelle
#

Does someone remember my pullrequest yesterday?
Iยดve discovered that it does not work if you are logged out ๐Ÿ™‚

modest forge
safe harbor
#

2 or 3

#

Pref. 3 since 2 still looks like a helmet

mental star
#

3 looks like a rj45

safe harbor
#

See no difference

fluid stratus
#

I prefer 2

safe harbor
#

ffs what is this

#

Thx discord, grabbing emojis at its best

#

I still want the helmet version of 2 ๐Ÿ˜ 

midnight anchor
#

3

stiff token
#

3 looks a bit too much like rj45. But I like it anyway.

#

Though I feel like door from 2 with ceiling from 3 could look better.

barren shale
#

3 do be looking dope

fluid stratus
#

Might be better than the current two imo

barren shale
#

pretty sure he already had a mockup of that, looks a bit boring imo

#

eh not quite, the ones before had slightly rounded roofs with a spike on top

modest forge
fluid stratus
#

3 looks better than 2 imo, but I still prefer 2 of the previous batch

modest forge
#

The top image of that screenshot is the same as the top-right from the previous screenshot

fluid stratus
#

Yeah, that one looks best imo

modest forge
#

I prefer it without the RJ45 door as well, but idk

solemn zenith
#

Same

mellow pebble
#

rj45 door lol

random badger
cinder silo
#

what's this

random badger
#

well we're pretty sure the entire frontend should probably just be moved to vue.

#

and therefore nuxt for that ssr goodness

#

so that was just a demo

#

I literally only just used default theme and made part of the main page

cinder silo
#

Vue aPES_HappyClap aPES_HappyClap aPES_HappyClap

random badger
#

I also went with typescript since if it happens, its a kinda "from scratch" thing, but idk if people like that or nah

#

it certainly makes writing the code easier

#

(once I figured out how to do it ๐Ÿ˜… )

cinder silo
#

ts is definitely more bearable than js

pallid yoke
#

I can tolerate js and vue

#

Typescript and vue was a mess in the beginning but tooling improved since then

random badger
#

take a look at the nuxt-frontend branch and let me know what you think

pallid yoke
#

Yeah i saw, have to do actual paid work first tho ^^

random badger
#

๐Ÿ‘

modest bisonBOT
#

seems generally fine, I think I understand everything

#

the $api took me a while, but its like the prototype stuff in normal vue

random badger
#

Yes. Difference is, just make sure you arenโ€™t using localStorage, or โ€œwindowโ€ or smth

#

Cause that isnโ€™t guaranteed to exist

modest bisonBOT
#

we do need to store stuff in local storage too (thats where the session stuff goes iirc)

#

but I assume we can tell a component to not server render, right?

random badger
#

Yes.

modest bisonBOT
#

just scrolled thru the nuxt docs, they say you just use the mounted and beforeMount hooks for that

random badger
#

How does spring put stuff in local storage tho? Cause thatโ€™s client side.

modest bisonBOT
#

I like the validate thing

#

localStorage is client

random badger
#

Well I just changed it to use cookies. So you donโ€™t need local storage

modest bisonBOT
#

I think thats the only place where we use that

#

cookies arent a good replacement for local storage, I would stick to local storage

random badger
#

Hmm, see, weโ€™d miss out on a good opportunity for ssr stuff tho...

#

Having the main page already list projects.

#

As an example, since getting the list of projects requires session stuff

modest bisonBOT
#

mmh

random badger
#

Like itโ€™s useful to have the users session server-side via cookies as well.

modest bisonBOT
#

we did that with headers before, right?

random badger
#

Well isnโ€™t that how cookies are sent around anyways?

modest bisonBOT
#

yeah, it seems like cookies are the solutions that ppl bring up

#

feels like a step back but oh well

#

its just that we have way more control over local storage than cookies

random badger
#

Yeah, for sure, but itโ€™s important I think to have access to the session server-side

modest bisonBOT
#

yeah for sure

#

nuxt has an auth module

#

interesting

#

lets see what that does

random badger
#

Yeah, I looked at that.

#

Iโ€™ve tried using it in the past for discord oauth, but Iโ€™ve just ended up writing the logic myself.

modest bisonBOT
#

it just removes some builerplate I guess

#

only other concern I have really is having to write types for stuff

#

but I guess theres no way around that

random badger
#

There is smth out there for auto generating types via swagger schema I think.

#

But the API is gonna need some serious expanding anyways

modest bisonBOT
#

yeah

#

we need to restructure ton of stuff

random badger
#

Yeah.

modest bisonBOT
#

but I am not opposed to that

#

we can focus on trying to replicate ores layout, but shouldn't spend time on style yet

#

and then we can just style vuetify

random badger
#

Me either. I almost want to just start completely over on the API and make sure there is access to everything.

modest bisonBOT
#

and dont have anything legacy

random badger
#

So you are fine with vuetify?

#

Itโ€™s just what Iโ€™ve used so I used it in the demo

modest bisonBOT
#

yeah, I used it before, I remember now seing all the types

#

unless you have other proposals for a component lib

random badger
#

I donโ€™t know any others, but other people might.

modest bisonBOT
#

I know bootstrap vue exist and I have used that before

#

but its constrained by bootstrap I think

#

I like vuetify more

random badger
#

But if we wanted a more material design like papermc.io... I donโ€™t think bootstrap is the way to go.

modest bisonBOT
#

we not talking about design here

#

I dont care how the components look

#

that we need to solve ourselves anyways

#

the default style will never work

random badger
#

Right ok. I seem to keep forgetting that.

modest bisonBOT
#

my company website is bootstrap and there is no way to tell that

#

but yeah, lets go with vuetify unless somebody disagrees

random badger
#

When I think bootstrap... I seem to just think โ€œthe default bootstrap feelโ€

modest bisonBOT
#

because many ppl are lazy to write the styles ^^

random badger
#

What did you use to generate the generated api models?

modest bisonBOT
#

ore and swagger

random badger
#

Oh swagger has something for making Java classes?

modest bisonBOT
#

if you want to restructure so much, lets have the new frontend in src/main/frontend, rename old frontend to frontend-old, do the same with the current controllers, move them to a controllersold and then copy stuff over

#

and do /api/v1 for external and /api/internal for the new internal apis

random badger
#

Ok yeah, that was gonna be another question, is all the API gonna be public api.

#

I think we can probably have some models for both, maybe internal models extend the public ones with more fields

modest bisonBOT
#

I dont think we need to restrict the internal api (and some we might even need to call from the client ourselves, like reloading projects on filter and stuff), but I would make a distintction between "this is stuff we guarantee is stable and is to be used by bots" and "this is our stuff for the website, no touchy"

#

yeah I hate how currently stuff is so weird and duplicated

random badger
#

Yeah, thatโ€™s bothered me for a while. Also, the lack of abstract classes and interfaces for stuff thatโ€™s in like half of the db/api models

modest bisonBOT
#

and see if one of the options fits

#

this is what TS fetch generated

#

ah the types are here

#

meh

#

lets just write it ourselves

#

the types arent really usable

random badger
#

I did some of the types for things, itโ€™s not that bad

#

Unless I did them wrong... idk,

modest bisonBOT
#

and code gen is the reason current api in hangar has this shitty model

#

man, vuetify got crazy new components

random badger
#

Thereโ€™s some fancy stuff

modest bisonBOT
#

was way less when I last tocuhed it

#

I wonder how much JS we ship when we do SSR

#

in theory the bundle size should be way smaller

#

but no clue how smart nuxt build system is

random badger
#

For vue ssr, itโ€™s just nuxt and quasar right?

modest bisonBOT
#

you can do ssr without a framework too

#

but nuxt is nice builerplate for the layout and pages shit

#

and has nice vuex stuff, we dev should use that more

#

kek

#

ppl at my company struggeld so hard to implement a stepper

#

this is nice for project setup and stuff

random badger
#

It looks sick on mobile, (the stepper)

#

I had only seen it on desktop

#

(A component lib will probably make making mobile-compatible pages way easier)

modest bisonBOT
#

well, you still have to check and set cols for mobile

#

but yes

#

if you want you can continue the setup I described above (if you agree) and then others can join

#

can prolly revive on of the github issues for the pages

#

else I can setup stuff after work, but its gonna be another 6 hours, long day ahead

modest bisonBOT
#

yeah

random badger
#

its super late for me, but I can work on it tmrw (6-8 hours)

modest bisonBOT
#

and the general moving of old stuff to old folders

#

in 6 hours or for 6 hours?

random badger
#

in 6 hours

modest bisonBOT
#

ah ok, we will see who is first then, have a good one

pallid yoke
#

One thing we need to keep in mind if we do ssr in this way is that we have stateful html and can't cache it

#

That's a potential downside

jagged anchor
#

@MiniDigger#0000 ั‚ั‹ ะบั‚ะพ?

pallid yoke
#

Idk who are you @jagged anchor?

#

Also, keep the chat in english

jagged anchor
#

@MiniDigger#0000 Who are you when you write if you're not here?

untold idol
#

that's the irc bridge

#

people who chat on irc will show as a bot

modest bisonBOT
#

Beep boop ๐Ÿค–

jagged anchor
#

@MiniDigger#0000 As?

#

@MiniDigger#0000

safe harbor
midnight anchor
#

wat

#

thats not even how you ping people

stark verge
#

@midnight anchor i love your profile picture

midnight anchor
#

:P

pallid yoke
#

ok, lets seeeeeee

#

time to give the nuxt branch a spin

random badger
#

WOW! I just turned on my pc to move the stuff

pallid yoke
#

heh

#

you can do it if you want, I wanna fuck around with nuxt in general a bit

#

do you run spring or port 80 or smth?

#

nuxt is trying to access port 80 on the server when I open localhost:3000 in the browser

#

ah backend url wasn't defined

random badger
#

Yes, gotta make that .env file.

pallid yoke
#

I just made it default to localhost:8080 for now

#

so do you wanna do stuff for should I?

random badger
#

You can. I decided to eat instead

pallid yoke
#

I moved frontend locally rn and IJ is killing my cpu while indexing ๐Ÿ˜„

#

ok

random badger
#

I didnโ€™t put the front end in the same place, since itโ€™s going to be running as a whole separate thing.

#

I just thought itโ€™d be better for it to be more separated from the backend.

#

Like, the maven-frontend-plugin isnโ€™t needed anymore, and you probably just have to add a bit to the deployment docker-compose

pallid yoke
#

meh I dont like polluting the project root so much

#

but I guess that makes sense

#

ill name it frontend tho

random badger
#

Yeah call it whatever. I also donโ€™t like cluttered roots (oreโ€™s root just makes me wanna die inside) but itโ€™s just one folder here

#

Oreโ€™s got like 200 modules in its root

pallid yoke
#

how do we wanna design the model?

#

we still need seperate model for db, right?

#

or can we make DB return the api/internal model already?

random badger
#

We already have the db returning api model stuff

#

All the api daoโ€™s do that

#

I think we should have separate models for db and api tho.

#

The db models are supposed to reflect exactly what is in the table

#

Where as api models can combine stuff

#

I donโ€™t think you have to refactor anything about the db models right now. I think naturally, as we add more api routes, theyโ€™ll get used less and less

pallid yoke
#

ok, so we can keep those then

#

ill go thru and create pages for everything now

#

I think we can add controllers on demand then

random badger
#

Yes. The one bit Iโ€™m not sure how itโ€™ll work is logging in.

#

Thatโ€™s not really an API thing. Hopefully you can just redirect to localhost:8080/login with the return url being like localhost:3000/where/you/were

pallid yoke
#

yeah that shouldnt be an issue

random badger
#

Will probably need a /api/users/@me route as well so we can store the user in vuex

pallid yoke
#

man we got so many pages, lol

random badger
#

yes, yes we do. ๐Ÿ™‚

#

make sure you are only doing actual pages tho, not just all routes

pallid yoke
#

yeah

random badger
pallid yoke
#

am gonna try remodeling the base layout in vuelidate now

#

pwa stuff

random badger
#

but why shouldn't it be in version control?

pallid yoke
#

its a service worker

#

idk

#

I got it too

random badger
#

oh so it generates it automatically... ok ๐Ÿคทโ€โ™‚๏ธ it was just left over when I pulled the move from git

#

erm... @pallid yoke can you open any of the .png files in frontend-old/?

#

I'm getting some Fatal error reading PNG image file: PNG file corrupted by ASCII conversion

pallid yoke
#

yes

random badger
#

huh... well idk what happened there

pallid yoke
#

interesting, broken on github too

random badger
#

but you can open them... maybe they got corrupted on your latest push or smth?

pallid yoke
#

maybe

#

strange

pallid yoke
#

nothing to see here, everything working like its planned

solemn zenith
#

xd

random badger
#

so looking at re-doing the models... is it an issue if they are mutable? keeping the non-final fields, and getter/setter methods?

pallid yoke
#

nah I dont mind them being mutable

random badger
#

what about JSON field naming? camelCase or snake_case?

#

cause that should be consistent throughout

modest forge
#

snamel_Case

random badger
#

or there is kebab-case

modest forge
#

cAPS-lOCK_cASE

pallid yoke
#

I would just do camelCase

#

there is no standard

#

but both in java and in js we name our vars camelCase

#

so json matching that is nice

mental star
#

PascalCase please

random badger
#

also, do we need to have builder methods for the api model?

#

I don't think its really necessary

#

also, pros and cons of using beanmappers vs constructor mappers in jdbi?

#

I don't have any experience outside of hangar with db stuff like this, so idk if one is better or not

modest forge
#

iirc beanmappers require both getters and setters

pallid yoke
#

hangar is my first jdbi project too

random badger
#

yeah, i know the difference, I just dont know if one is better or not

modest forge
#

If you're going immutable then you want constructor mappers, but meh

random badger
#

we dont need immutable, but I think using constructor mappers are just nicer? then you dont need to have an empty constructor for everything

pallid yoke
#

might need that for spring tho, when incoming requests contain models

random badger
#

if you are talking about jackson deserialization, iirc it can do constructor as well

#

basically, I was thinking the internal api model can just extend the public one and have additional stuff
that should be what we need in most cases

#

idk about calling all 3 User or the same name, that might be confusing later on

pallid yoke
#

IDed -> Identified

random badger
#

yeah, I knew that was a bad name

pallid yoke
#

I also wouldn't have two user classes, we can prefix internal stuff with Internal or Hangar or whatever

random badger
#

well rn its 3 User classes

pallid yoke
#

else it becomes a pain when importing stuff

#

model.db.User is UserTable?

random badger
#

yeah, that can change to that

#

I was thinking that, if setup right, they shouldn't ever need to be imported into the same file

#

(except for extending it)

pallid yoke
#

mmh

#

I guess

#

but its still confusing when you import it

random badger
#

well ok, it can be like HangarUser or smth

#

I am curious if we can get away with re-using jdbi queries for the public/internal api. or would that even be a good idea.
say the public model needed just a name, but the internal one a name and id. If we queried both and then used smth like <T> T getUser(String name); to be able to use the same query for both models

#

but that might not be a good idea, cause internal queries might be more complex and they'd get called for public queries where that info just is never used

#

idek if jdbi would even work w/that

pallid yoke
#

I thought about that too

#

we kinda need to down cast with loosing fields for that

#

should be possible in general

random badger
pallid yoke
#

down cast*

random badger
#

oh I see, yeah so just query the internal model and send the public one in the public api controller

#

how would you get jackson to only serialize fields that are in the right class?

pallid yoke
#

I hope it uses the right type and only looks at methods declared in that class?

#

๐Ÿ˜„

#

need to play with that

random badger
#

for the public API, do we wanna go the interface + controller route? I assume you did that the first time cause of the mountain of annotations

pallid yoke
#

yeah

#

I mean, if we remove nearly all code from the controllers and shove it into services, it might be not so bad

random badger
#

mini... I think you'd be better off defining a list of objects and iterating through it for the header menu thing

pallid yoke
#

yeah I thought about that too, its a mess

#

ill do that in a few

random badger
#

hmm @pallid yoke it looks like jackson doesnt care about the return type of the controller method, it includes all the fields

pallid yoke
#

no option for that?

random badger
#

I googled a bit and couldnt find one

pallid yoke
#

meh

#

so we have to do copy ctors then?

random badger
#

if we did indeed want to use the same DAOs for both

#

we could just do separate ones, and then forget about this issue

#
public static User fromHangar(HangarUser hangarUser) {
        return new User(
                hangarUser.getCreatedAt(),
                hangarUser.getName(),
                hangarUser.getTagline(),
                hangarUser.getJoinDate(),
                hangarUser.getRoles()
        );
    }
pallid yoke
#

thats how we have it now kinda

#

smth different, I fail to make a computed property, do you know how?

random badger
#

using get / set?

#

get propertyName() {} / set propertyName(value) {}

pallid yoke
#

ah

random badger
#

well actually, I think

public User toUser() {
        return new User(
                this.getCreatedAt(),
                this.getName(),
                this.getTagline(),
                this.getJoinDate(),
                this.getRoles()
        );
    }

is better, and have that in the HangarUser

#

its kinda like what we do now, but we are still getting rid of duplicate fields and stuff I think

pallid yoke
#

since we still have inheritance?

random badger
#

yeah

pallid yoke
#

I see

random badger
#

unless there is indeed a way to get jackson to use the class we want

#

hmm, there is JsonSerialize#as

#

Supertype (of declared type, which itself is supertype of runtime type) to use as type when locating serializer to use.

#

that is what we want

pallid yoke
#

ok that looks nicer than this hack

#

lol

random badger
#

ah, how did that one not show up for me...

#

but idk where to put that annotation...

#

we want the programatic version of that

#

yeah, I can put the JsonSerialize annotation on the sub class, but then anytime its serialized it uses the super class

#

we just want that some of the time

pallid yoke
#

almost looks like the old one ๐Ÿ˜„

#

thats it from me today

midnight anchor
#

when I click on the "view user on forums" button, it ends up being a 404. its going to users/notOM3GA when it should go to u/notOM3GA

pallid yoke
#

That was changed? I swear that worked before

random badger
#

well that isnt really done, it kinda assumes you have the same username

midnight anchor
#

it has the same

#

its going to users/{user} when it should to go u/{user} lol

random badger
#

@pallid yoke well JDBI had us covered with its MapTo annotation... can just do this now.
<T extends User> T getUser(String name, @MapTo Class<T> type);

#

and specify the type you want

#

yeah, that's exactly what we wanted

pallid yoke
#

Oh nice

#

I knew choosing jdbi was a good thing ^^

#

It surprises me every day

random badger
#

yeah, I'm liking it quite a bit

pallid yoke
#

Looks nice

#

The static accessor thing is a bit meh but I see why you did it

random badger
#

yeah... I wasn't sure how to handle that.

pallid yoke
#

Prolly fine

#

I have worse code at work for shit like that dw

random badger
#

also, just probably a good tip, try and keep the vue component class name similar to the file name.

#

like header.vue has a class name of NewPage

#

which makes it confusing while I use vue devtools

pallid yoke
#

That's a copy paste error

random badger
#

oh

pallid yoke
#

I am not confident in bootstrapping new vue classes, and intellij doesn't create class components, so i copy paste

random badger
#

im gonna see if I can get logging in to work

pallid yoke
#

Yeah if you can get the current user into a vuex store or smth and plug that into the nav, that's like all different layers we have covered and it should be easy to adapt for the rest of the stuff then

random badger
#

yeah, exactly what im gonna try to do

pallid yoke
#

Good luck then, I'll gonna sleep now

#

Sadly will have a rather long day at work tomorrow again

#

So I'll be at my pc in like 16 hours

random badger
#

so I think I have the user auth stuff in a good place

#

we will need to work out exactly how we want to handle permissions. Most of the permission stuff can still be in spring, but we'll need a solid way to handle those errors in nuxt.

pallid yoke
#

Sounds good!

#

I think we can just move the whole perm stuff to ja too, like on middlewares but also for the nav and prolly more stuff. Maybe we can find a way to not duplicate all roles and stuff

#

Why do I need that?

#

Went thru all the commits, looking great, can't wait to continue later

#

The last commit, i think we actually want to log out everywhere. Single sign on also means signals sign off

#

We will have one central account, one central wait to login, makes sense to also log out everywhere then

random badger
#

Pretty sure ! means nonnull

pallid yoke
#

Maybe I should actually learn TS for once, lol

random badger
#

Yeah, Iโ€™ve been doing a โ€œas-I-goโ€ thing for a while

random badger
#

Yeah, so rn, the users global permission is stored in vuex, and that can probably be used to change whatโ€™s displayed to the user. Thatโ€™s client-side only, but it doesnโ€™t matter cause weโ€™ll verify permission on the backend.

#

As for project perms, I think a middleware applied to all project pages can fetch and store the scoped project data (including perms) in vuex.

#

Yeah... Iโ€™m not sure what the best way of โ€œcopyingโ€ the Permission class is. Thereโ€™s a bunch of stuff like that which needs copying.

#

So, vuex has an asyncServerInit which is perfect for requesting that stuff from the server.

#

Well... see, some stuff like the stuff that are enums, isnโ€™t gonna change dynamically. Is there really a benefit to making an api request for it rather than just hard-coding it? I feel like there is either already a tool for โ€œcopyingโ€ it to typescript/JavaScript, or we can make one.

pallid yoke
#

But asyncServerInit is just called once, on initial request, and then the client has access to it, right?

#

Seems perfect for this

#

There is also stuff like categories, platforms, roles, etc, which we even have in db tables

random badger
#

Yeah I guess... in a few hours I can try to get all that stuff into the store.

pallid yoke
#

Ok, I'll hopefully be able to get a bit more layout down

random badger
#

Speaking of layout, I think the footer is too tall. Itโ€™s like 1/5 of the screen.

#

I think it should probably just be a bit taller than the default button height.

#

Maybe throw the paper logo in the corner position absolutely or smth

pallid yoke
#

It doesn't matter how tall it is really

#

Since it's at the bottom

#

It's just so in ya face right since we have no content

#

I'll first try to replicate what we had before, layout, not design, and then we can think about what to change layout wise and then paint it pretty

pallid yoke
#

heh, when I login, I get redirected to // and the page becomes unresponsive and chrome just kills it after a while

random badger
#

never had that?

#

im using firefox tho

pallid yoke
#

its fine we can investiage later, ill just do more layout

random badger
#

oh right, I can't log in on chrome... hangarauth is broken on chrome

pallid yoke
#

I dont use hangarauth

random badger
#

oh, are you using fake user?

pallid yoke
#

ye

#

maybe thats the issue

random badger
#

I didn't test w/that, something is prob off there

#

you get redirected to :3000//?

#

or like :8080//

pallid yoke
#

yes

random badger
#

... which one?

pallid yoke
#

first, sorry

random badger
#

on line 13 of plugins/auth.ts, remove the trailing / right after localhost:3000

#

I think the redirect variable includes a /

#

yeah, pretty sure that's it. firefox must not mind the double /

#

well, no, it doesn't like it. it freezes as well.

narrow verge
#

Spring itself doesn't like double slashes

random badger
#

but its not a spring thing here

narrow verge
#

For whatever reason it's considered its own route

random badger
#

if its hanging on :3000 its a nuxt thing

narrow verge
#

Yeah I don't know enough about the project to know what that is lol

pallid yoke
#

spring has a dedicated firewall to block double slash

#

and yes its it own route, why wouldn't it

random badger
#

I just added this

(req, res, next) => {
            if (/\/{2,}/.test(req.url)) {
                const url = req.url.replace(/\/{2,}/g, '/');
                res.writeHead(301, { Location: url });
                return res.end();
            }
            next();
        },
#

to serverMiddleware in nuxt.config.js

pallid yoke
#

thats nasty, lol

#

rather make the redirect check if it starts with a /

sly mason
#

are we surprised

#

seems like typical machine

#

runs

random badger
#

it'll always start with a /

pallid yoke
#

not a productive day :/

#

and I gtg already

random badger
#

๐Ÿ™‚

#

we don't need to have the same layout right?

pallid yoke
#

No, but my idea was to go to a layout we can use to reimpl the features and then easily iterate on the layout

#

And then later give it a fresh coat of paint

pallid yoke
#

Do we want/need font awesome?

#

The material design icons look fine and got everything too

random badger
#

I mean a ton of icons are from that

pallid yoke
#

Everything I touched i used mdi for

random badger
#

I mean just look at the old font-awesome.js file

pallid yoke
#

I just hate their website cause the search is slow as fuck

random badger
#

yes it is painful

pallid yoke
#

Yeah i know, but we got an icon lib already

#

One is enough, either is fine by me

random badger
#

I just added them cause they Categories have default icons

pallid yoke
#

If we decide to use mdi we would just replace them

random badger
#

wait, I think we have it reversed?

#

mdi search is super slow?

#

the font awesome one is fine

pallid yoke
#

That's what I meant yes

random badger
#

oh I thought you meant font awesome was slow, yeah OK, we can just do mdi then

#

so we probably need a $perm plugin as well...

pallid yoke
#

Oh btw what do you think of my utils plugin?

#

I didn't know what would be the best way to implement such "static" methods

random badger
#

yeah, I mean I think that's probably fine

pallid yoke
#

Good

random badger
#

should we do localization since we are rewriting everything?

pallid yoke
#

When I do bullshit just @ me, i don't have much experience with nuxt nor TS

random badger
#

like, a big hurdle for that was just going through and getting rid of all the english stuff

pallid yoke
#

I thought about that too and was lazy and didn't do it

random badger
#

I mean... if we are gonna do it. now is the time

pallid yoke
#

Should be easier now that all strings are frontend

random badger
#

like there isn't a better time than now

#

before we actually do much

pallid yoke
#

But the question is, do we need it?

#

Do we plan on having multiple languages?

#

Because else there is really not much point

random badger
#

I think it'd be cool to support multiple languages

pallid yoke
#

Let's do it then

#

Is there a nuxt lib or do we just use vue i18 again?

random badger
pallid yoke
#

I can handle that tomorrow for the shit i already did

#

Ah nice

#

Ah it's vue i18n at the core

random badger
#

I think it'd probably be best that we didn't just convert the whole .properties file too, since alot of that is unused

#

and just add as we go

pallid yoke
#

Yeah just add strings at we go

random badger
#

do we bother with localized urls?

#

apparently that's a thing

pallid yoke
#

I just use the old frontend as guideline and then look how it work work with vuetify

random badger
#

like changing /new to whatever new is in some other language

pallid yoke
#

We can figure that out later

random badger
#

oh I see...

pallid yoke
#

So we don't need to worry about that for now

#

(at least that's what I expect, i saw the docs too but didn't look too deep)

#

The big thing is getting the strings out of your code, and we should add the method for the urls too, and then we can see later

#

Cause you know, we actually need translations of we wanna go multilingual

#

Which is out of scope for mvp/1.0 i would say

random badger
#

ugh, I can't seem to get the typescript types to work for i18n... like its there, but typescript doesn't think it is

pallid yoke
#

Urg

#

The typescript fun begins

#

Maybe they don't have types and we need to add our own ones?

random badger
#

nah they do, im looking at the source rn

pallid yoke
#

Some libs also have types on npm, as their own package

#

Ah ok

random badger
#

all it says, is that you need to do that

#

and that is already done

pallid yoke
#

I can't really look, if you can't figure it out, commit current work and look at smth else and I can pickup tomorrow

random badger
#

ok, so I was able to manually finagle it

pallid yoke
#

Nice

#

You accidentally added package.json and package.lock in project root tho

random badger
#

... idk how that happened.

pallid yoke
#

You ran yarn add nuxt-i18n in the wrong dir

random badger
#

well you know what... I think that was the root cause of all the issues

#

yikes

#

yeah, that was it

#

๐Ÿคฆ

pallid yoke
#

Kek

#

Well, that's why this isn't a one person project, watching each other's commits helps

random badger
#

yeah, literally just one other set of eyes can really just see something you were blind to.

pallid yoke
#

Yeah

iron trench
#

I can't help with dev cuz I'm not that good, but if you still need testers like https://hangar.minidigger.me/ says I can poke random buttons and try to break things for you lol

random badger
#

well... somehow I caused a memory leak somewhere?

#

only time ive ever done that before is accidentally with vue mixins...

#

but we dont have any of those

random badger
#

ok, I think I narrowed it down to nuxt-i18n

#

if I include it, I can just keep refreshing the page, watching the memory usage keep going up until it crashes. remove it, and no such thing

#

yeah, ok, including it w/default configuration seems to still cause it

#

so idk

pallid yoke
#

Nice, lol

#

You forked it now?

#

Ah that looks like an easy fix

random badger
#

Iโ€™ve run into that problem with global mixins before

pallid yoke
#

didnt do nearly as much as I hoped for today

modest bisonBOT
#

hangar git repo?

random badger
#

Yes, itโ€™s in one. Itโ€™s in the PaperMC org

#

Also pinned

modest bisonBOT
#

I was talking about a git repo hosting site embedded in hangar

random badger
#

Oh

#

Lol

random badger
#

so mini, I think we can take advantage of the <NuxtChild> component for the project layout

#

basically, that is replaced by the child route of the current route

#

so it functions as a layout w/in a layout

pallid yoke
#

Ah I was searching for that and google told me child layouts aren't a thing and I should use a component

random badger
#

I've never used it before, but I think that's what its for

#

also, when you do internal links in vuetify components, I think we need to put the nuxt prop as well

#

idk exactly what it does, but it exists and the docs say to use it if you are using nuxt

#

maybe something to do with nuxt's pre-fetching

pallid yoke
#

I can't find any references of that

#

Prefetch works without that

random badger
#

says it specifies the link is a nuxt-link

pallid yoke
#

Ah on the button

#

Makes sense

random badger
#

Mini, I almost think the โ€œutilsโ€ would be better as a global mixin.

#

Since thatโ€™s just what the mixin stuff is for.

stark verge
#

you ppl are just grinding hangar development aren't you

pallid yoke
#

I am not really understand the difference in nuxt really

#

Since both are injected into the component

random badger
#

Yeah, Im totally wrong. Itโ€™s better to have it the current way, so itโ€™s injected into more places. Idk what I was thinking. :/

pallid yoke
#

Closed all the PRs, don't really need to let master and current head branch diverge even more

sly mason
#

fucking

#

rebel

#

m80

random badger
#

Iโ€™ll try and do some more new api stuff today.

modest bisonBOT
#

its monday so am super dead, no clue if I can look at stuff

random badger
#

(By that I mean re-doing the old api with new models)

#

Gonna be watching SpaceX tho... possible hop today.

modest bisonBOT
#

@all, now is the best time to contribute to hangar btw, just taking vuetify blocks, putting them together in something that kinda looks like ore, for all the pages

#

oh right, yeah

#

.wa time texas

#

(MiniDigger) Result: 7:29:03 am CST | Monday, January 25, 2021 - https://is.gd/o2zDPo

Wolfram|Alpha brings expert-level knowledge and capabilities to the broadest possible range of peopleโ€”spanning all professions and education levels.

#

so like 5 hours to go

random badger
narrow verge
pallid yoke
#

Still a couple hours out

random badger
#

do we think the Role enum is gonna stick around?

#

is there a reason in the future to make it dynamic?

#

cause I'd like to do a bit of refactoring where it uses the enum ordinal in the db instead of this random string

#

actually, it doesn't really matter, since I can just make a db mapper for it

pallid yoke
#

I mean, if we modify roles, we would modify the code too

#

Not changing ordinal is easy enough

random badger
#

well, I was just trying to avoid not changing the role column cause that would mess up the staging db

random badger
#

Hmm, so not convinced that re-using queries for api + internal models would really work for most cases.

#

Like just trying to replicate the ProjectData model, it doesnโ€™t really make sense to have it extend the public api model.

#

I am now thinking the internal models should extend the db models, and have separate queries for them, or sequences of queries for the more complicated ones.

pallid yoke
#

Yeah i don't really care we can write different queries

#

Prolly should split up the DAOs then?

random badger
#

Yeah.

fresh sorrel
#

sorry if this has been answered already

#

is there a list of stuff that needs to get done for hangar?

narrow verge
#

GitHub issues tab

pallid yoke
#

Currently easiest way is to look at the nuxt frontend branch

#

And implement new pages

fresh sorrel
#

okay cool

#

maybe I will contribute

#

if nuxt is not hard lol

pallid yoke
#

It's just vue

#

We use vuetify that's pretty easy

#

A nice component lib

fresh sorrel
#

*if vue is not hard lol

sly mason
#

I think a huge thing is somebody who isn't shit at design to look over at stuff

#

judgingly at mini

fresh sorrel
#

you mean the visual design or the

#

structure

sly mason
#

glares judgingly at mini

#

design

#

I mean, in part, I just throw shots at mini coz that's how I show I care about him, or something, but, if you have any UI improvements or suggestions, stuff like that's on the "would be nice" list

#

been meaning to ook myself but balancing paid work and paper and dying means that I ain't found the time to look over it properly yet

fresh sorrel
#

mood

pallid yoke
#

We currently completely redoing the UI layout

#

This is easy to help with

#

Then we go over everything and look if we can improve layout

#

Then we can start with the actual design, that's the hard part

#

Prolly begins with ppl drawing shit in Paint

#

Hopefully that's as collaborative as the quest to find a logo

mellow pebble
#

Alice uses Vue at work, maybe I can force her to look help with hangar >:D

mild oasis
#

Currently trying to come up with designs for the logo and to consult my artists on hand, is there any recommendations that I should mention when I talk to my artist about a design? Such as any description that I can provide them?

random badger
#

the supplier isn't called if the value is null, so it will always be nonnull

mild oasis
#

Not sure if this still works but try this @random badger

The check is done by the Constant conditions & exceptions and @NotNull/@Nullable problems inspections. You can configure the way these inspections work in the Settings/Preferences Ctrl+Alt+S dialog. Go to Editor | Inspections | Java | Probable bugs.

When you compile your project, the IDE adds assertions to all methods and parameters annotated with the @NotNull annotation. The assertions will fail if null is passed in code where @NotNull is expected. You can disable this option and configure the list of annotations in the Settings/Preferences dialog Ctrl+Alt+S. Go to Build, Execution, Deployment | Compiler.
random badger
#

I dont really want to disable the check tho, cause its useful. its just wrong here

#

I can just use comments to disable it for that I guess

mild oasis
#

Fair enough, is testString referencing anything that exists or is it a blank variable?

random badger
#

well I just threw that together as an example, it can either be null or not null

#

so it doesnt mean anything

sly mason
#

Java doesn't have the means to see the context there

#

You'd need to mark the supplier method as supporting a nullable value

narrow verge
random badger
#

well yeah, but it IS nullable

#

like I want it to be nullable

narrow verge
#

hmm

random badger
#

it just seems like IJ isn't understanding that yes, its nullable in the method, it just isn't in the supplier

#

bit of generics

#

ya, that works, just pass it back through

#

hmm ok @pallid yoke there's another decision to make here, so before, when spring was service the pages, we used spring's whole auth system for the user, but now that everything is moving to a more API oriented approach, how do we want to handle that? We have the api session stuff already in place from v1 api, do we just want to "get the current user" from the session token that is sent w/all requests?

#

well actually, on second thought, we don't want to get rid of spring's auth system, cause its still really useful for those custom annotations for permissions

#

And those should still work on internal api methods that need to be protected

#

but we are kinda now keeping track of the users two ways now, do we want that? once way is using our own session token/api key thing, and the other is spring's.
the api key is great for the public api, cause you don't have to be "logged in"

#

should we maybe not even use the auth header for internal requests? the Authorization: HangarApi session="xzxadsfasfas" thing

#

and solely rely on spring keeping track of the current user?

sly mason
#

you annotated testString as nullable, your supplier method which you're passing that string into is marked as NotNull, IJ doesn't have the means to see that that will be called if it's not null, the reason why that replacement works is because you're actually passing the value inside of it, which you've got correctly marked for NotNull

random badger
#

Is there a way to do nullability annotations on lambdas?

pallid yoke
#

We only need one auth scheme for any given request, so for internal relying on the session seems fine to me

gritty brook
#

@random badger afaik you can use Alt+Enter on a particular warning to suppress it. Not sure if it suppresses the entire warning type as such or just the specific one, pretty sure it was specific though.

gritty brook
# random badger Is there a way to do nullability annotations on lambdas?

Pretty sure that is still a no. Has been requested since '14 if not longer.
There were several ideas to workaround it like casting the lamba expression into a type and then annotate the type reference of the cast expression.
Which was maybe a good idea, but failed since the class will not be annotated with the annotation of the cast expression.

random badger
pallid yoke
#

Yeah

random badger
#

hey mini, why didnt we use java 15 for hangar? some spring requirement or smth?

pallid yoke
#

Was it out when we started? ๐Ÿ˜‚

#

Are we on 11?

random badger
#

I think so?

#

15 isnt LTS i guess

#

next LTS is 17? how do they chose those?

pallid yoke
#

Every 3rd year, every 6th release

#

Is there anything in particular you wanna use? I don't mind updating

random badger
#

I mean the switch expressions can probably be used in places. Records would also be used in a bunch of places probably but those are still preview in 15 I think

pallid yoke
#

Yeah i think they coming out of preview with 16 tho?

random badger
#

yes

gritty brook
#

September 2021, 17 LTS

random badger
#

well I hope we are at least done by then ๐Ÿ˜† but its taken longer than I thought initally

random badger
#

ok, so I'm no longer liking the way I setup projects having multiple versions with the same version strings.
in the URL/API its just the version string (1.3.2) concatenated with the row ID in the database (302) so it'd be 1.3.2.302